void PhysApplyForce (tObject *objP, vmsVector *vForce) { // Put in by MK on 2/13/96 for force getting applied to Omega blobs, which have 0 mass, // in collision with crazy reactor robot thing on d2levf-s. if (objP->mType.physInfo.mass == 0) return; if (objP->movementType != MT_PHYSICS) return; #ifdef TACTILE if (TactileStick && obj==&gameData.objs.objects [gameData.multi.players [gameData.multi.nLocalPlayer].nObject]) Tactile_apply_force (vForce, &objP->orient); #endif //Add in acceleration due to force if (!gameData.objs.speedBoost [OBJ_IDX (objP)].bBoosted || (objP != gameData.objs.console)) VmVecScaleInc (&objP->mType.physInfo.velocity, vForce, FixDiv (f1_0, objP->mType.physInfo.mass)); }
//Applies an instantaneous force on an object, resulting in an instantaneous //change in velocity. void phys_apply_force(object *obj,vms_vector *force_vec) { // Put in by MK on 2/13/96 for force getting applied to Omega blobs, which have 0 mass, // in collision with crazy reactor robot thing on d2levf-s. if (obj->mtype.phys_info.mass == 0) return; if (obj->movement_type != MT_PHYSICS) return; #ifdef TACTILE if (TactileStick && obj==&Objects[Players[Player_num].objnum]) Tactile_apply_force (force_vec,&obj->orient); #endif //Add in acceleration due to force vm_vec_scale_add2(&obj->mtype.phys_info.velocity,force_vec,fixdiv(f1_0,obj->mtype.phys_info.mass)); }