var ph_nForceX = 450000; // a bit high?
var ph_nForceXn = -25000;
var ph_nForceY = 4000;
var ph_nForceYn = -6000;
var ph_vForce[3];
STRING lapTx_s = "checker1";
var ct_nMode = 0;
var ct_nDown = 5; // * entity height
function phf_force(_nX, _nY, _nZ) {
ph_vForce.x = _nX;
ph_vForce.y = _nY;
ph_vForce.z = _nZ;
}
action boat {
player = me;
phent_settype(me, PH_RIGID, PH_BOX);
ph_setgravity( earth_gravity );
phent_setmass(my, 70, PH_POLY);
phent_setfriction(me, 0); // ERROR??? NO FRICTION?
phent_setelasticity(my, 25, 1);
phent_setdamping(my, 90, 90);
var bLapped; bLapped = 0;
while(me != NULL) {
phent_getvelocity(my, velocity3, nullvector);
velocity = vec_length(velocity3);
vec_set(temp, nullvector);
if(key_cuu == 1) {
//vec_set(temp.x, my); // ERROR??? // set v to e, temp, my.x
//vec_normalize(temp, 450000); // a bit high?
phf_force(ph_nForceX, 0, 0);
phent_addforcelocal(me, ph_vForce, nullvector);
fire();
}
if(key_cud == 1) {
//vec_set(temp.x, my); // ERROR??? // set v to e, temp, my.x
phf_force(ph_nForceXn, 0, 0);
phent_addforcelocal(me, ph_vForce, nullvector);
}
if(key_cul == 1 && velocity > 60) {
phf_force(0, 0, ph_nForceY);
phent_addtorqueglobal (me, ph_vForce);
// does angular damping slow it down
}
if(key_cur == 1 && velocity > 60) {
phf_force(0, 0, ph_nForceYn);
phent_addtorqueglobal (me, ph_vForce);
}
vec_set(temp, my.x);
temp.z -= ((my.max_z - my.min_z) * ct_nDown);
ct_nMode = IGNORE_ME | SCAN_TEXTURE | IGNORE_PASSABLE;
c_trace (my.x, temp, ct_nMode); // just temp, temp.x not needed
// that won't stop cheating
if (str_cmpi (tex_name, lapTx_s)) {
if (bLapped == 0) {
add_laps();
error("add_laps()");
}
bLapped = 1;
} else {
bLapped = 0;
}
boat_camera();
wait(1);
}
}