Adjusted D1 Lifter collision damage according to D2 to scale with FPS as Melee combats can happen in every frame; Actually set velocity from movement when colliding with objects

This commit is contained in:
zicodxx 2009-01-13 01:19:19 +00:00
parent 680a1527a7
commit 8c4d0f62df
2 changed files with 8 additions and 2 deletions

View file

@ -1,8 +1,13 @@
D2X-Rebirth Changelog
20090113
--------
main/physics.c: Actually set velocity from movement when colliding with objects
20090108
--------
main/network.c: Fixed condition for protocol version checking when joining a game - must be allowed for both original and D2X version
20081230
--------
SConstruct: prefix is now an argument (useful for auto-builds)

View file

@ -745,7 +745,8 @@ void do_physics_sim(object *obj)
}
// After collision with objects and walls, set velocity from actual movement
if (!obj_stopped && !bounced && ((fate == HIT_WALL) || (fate == HIT_BAD_P0))) {
if (!obj_stopped && !bounced && ((fate == HIT_WALL) || (fate == HIT_OBJECT) || (fate == HIT_BAD_P0)))
{
vms_vector moved_vec;
vm_vec_sub(&moved_vec,&obj->pos,&start_pos);
vm_vec_copy_scale(&obj->mtype.phys_info.velocity,&moved_vec,fixdiv(f1_0,FrameTime));
@ -756,7 +757,7 @@ void do_physics_sim(object *obj)
and "bump" back by the value saying how far we are in already.
*/
if (
obj==ConsoleObject && (obj->mtype.phys_info.velocity.x==0 && obj->mtype.phys_info.velocity.y==0 && obj->mtype.phys_info.velocity.z==0) &&
obj==ConsoleObject && fate == HIT_WALL && (obj->mtype.phys_info.velocity.x==0 && obj->mtype.phys_info.velocity.y==0 && obj->mtype.phys_info.velocity.z==0) &&
!(obj->mtype.phys_info.thrust.x==0 && obj->mtype.phys_info.thrust.y==0 && obj->mtype.phys_info.thrust.z==0))
{
vms_vector center,bump_vec;