X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Ffunc_breakable.qc;h=44605ddeee793899a83ad425d6ed0182a4a856e2;hb=b55288f3d318b8d08eabf55d2bcacae4a511ab35;hp=a5e8dfa5897ce1c74deacce9b05351bbf8498700;hpb=41e8d2655665fa7b4dee661aaf74bb1cd5e26431;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/func_breakable.qc b/qcsrc/server/func_breakable.qc index a5e8dfa58..44605ddee 100644 --- a/qcsrc/server/func_breakable.qc +++ b/qcsrc/server/func_breakable.qc @@ -85,6 +85,9 @@ void func_breakable_look_destroyed() { local float floor_z; + if(self.solid == SOLID_BSP) // in case a misc_follow moved me, save the current origin first + self.dropped_origin = self.origin; + if(self.mdl_dead == "") self.model = ""; else { @@ -102,6 +105,8 @@ void func_breakable_look_destroyed() void func_breakable_look_restore() { setmodel(self, self.mdl); + if(self.mdl_dead != "") // only do this if we use mdl_dead, to behave better with misc_follow + setorigin(self, self.dropped_origin); self.solid = SOLID_BSP; } @@ -141,6 +146,7 @@ void func_breakable_destroy() { string oldmsg; activator = self.owner; + self.owner = world; // set by W_PrepareExplosionByDamage // now throw around the debris n = tokenize_console(self.debris); @@ -241,6 +247,7 @@ void spawnfunc_func_breakable() { precache_sound(self.noise); self.team_saved = self.team; + self.dropped_origin = self.origin; self.reset = func_breakable_reset; func_breakable_reset();