From: Mircea Kitsune Date: Mon, 3 May 2010 01:03:47 +0000 (+0300) Subject: Attempt to implement untouch detection, but I didn't figure the correct maths yet... X-Git-Tag: xonotic-v0.1.0preview~640^2~11^2~14 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c88d37a1c6aace63fae1cc4fb08b5aeb3d199b8d;p=xonotic%2Fxonotic-data.pk3dir.git Attempt to implement untouch detection, but I didn't figure the correct maths yet (so it doesn't work). --- diff --git a/qcsrc/server/g_triggers.qc b/qcsrc/server/g_triggers.qc index fdcd0ad3e..1ef07d490 100644 --- a/qcsrc/server/g_triggers.qc +++ b/qcsrc/server/g_triggers.qc @@ -533,7 +533,19 @@ void spawnfunc_trigger_heal() // ////////////////////////////////////////////////////////////// -.float triggergravitytime; +.float triggergravity, triggergravitytime; +.entity trigger_gravity_check; +void trigger_gravity_check_think() +{ + if(self.owner.triggergravitytime < time + 0.1) // need to figure out a correct formula here + { + dprint("XXXXXXXXXXXXXXXXXXXXXXXXXX "); + self.owner.gravity = 0; + self.nextthink = self.owner.triggergravity = 0; + remove(self); + } +} + void trigger_gravity_touch() { if(sv_gravity != 800) @@ -544,6 +556,15 @@ void trigger_gravity_touch() EXACTTRIGGER_TOUCH; other.triggergravitytime = time + 1; + if(!other.triggergravity) + { + other.triggergravity = 1; + other.trigger_gravity_check = spawn(); + other.trigger_gravity_check.owner = other; + other.trigger_gravity_check.think = trigger_gravity_check_think; + other.trigger_gravity_check.nextthink = time; + } + if (other.gravity != self.gravity) { other.gravity = self.gravity;