// Power_Monster.wdl
// .WMB inladen
string level_str = <Power_Monster.WMB>;
var speed;
var speed_molen;
var video_mode = 7;
var video_depth = 32;
var earthGravity[3] = 0,0,-368;
var gondel1;
entity* kruis01;
entity* ondermolen1;
entity* arm01;
entity* gondel001;
// Hoofdfunctie
function main()
{
//laad het level
level_load(level_str);
}
action gondel01 {
gondel001 = my;
my.passable = on;
my.scale_x = 0.5;
my.scale_y = 0.5;
my.scale_z = 0.5;
//Physics on
phent_settype(my,PH_RIGID,PH_BOX);
//Set a weight
phent_setmass(my,50,PH_BOX);
//Set a friction
phent_setfriction(my,100);
//Set a damping
phent_setdamping(my,10,10);
//Set a gravity
ph_setgravity(earthGravity);
gondel1 = phcon_add(PH_HINGE,my,kruis01);
phcon_setparams1(gondel1,my.x,vector(0,0,1),nullvector);
phcon_setparams2(gondel1,vector(-360,360,0),nullvector,nullvector);
while(my) {
vec_for_vertex(temp,kruis01,875);
phent_addvelcentral(my,vector(temp.pan*time_step,temp.tilt*time_step,temp.roll*time_step));
my.x = temp.x;
my.y = temp.y;
my.z = temp.z;
wait(1);
}
}
action kruis {
kruis01 = my;
my.passable = on;
my.scale_x = 0.25;
my.scale_y = 0.25;
my.scale_z = 0.25;
//Gondel erop zetten, hier dus alleen ent_create
vec_for_vertex(temp,my,875);
ent_create("gondel.mdl",temp,gondel01);
while(my)
{
vec_for_vertex(temp,arm01,124);
my.x = temp.x;
my.y = temp.y;
my.z = temp.z;
my.pan += speed;
if(key_w == 1) {
if(speed < 0.5) {
speed += 0.025*time_step;
}
}
if(key_s == 1) {
if(speed > 0) {
speed -= 0.025*time_step;
}
}
wait(1);
}
}
action arm1 {
arm01 = my;
my.passable = on;
my.scale_x = 1.7;
my.scale_y = 1.7;
my.scale_z = 1.7;
vec_for_vertex(temp,my,124);
ent_create("kruis.mdl",temp,kruis);
while(my) {
vec_for_vertex(temp,ondermolen1,91);
my.pan = ondermolen1.pan;
my.x = ondermolen1.x;
my.y = ondermolen1.y;
my.z = ondermolen1.z+5;
wait(1);
}
}
action ondermolen {
my.passable = on;
ondermolen1 = my;
vec_for_vertex(temp,my,91);
ent_create("arm01.mdl",temp,arm1);
while(my)
{
my.pan -= speed_molen;
if(key_q == 1) {
if(speed_molen < 0.3) {
speed_molen += 0.025*time_step;
}
}
if(key_a == 1) {
if(speed_molen > 0) {
speed_molen -= 0.025*time_step;
}
}
wait(1);
}
}