X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fwall.qc;h=2f086eac2d2971eeff77e14e3c2e7cc73ca16503;hb=35e8f712933b0ebf9b163b7289cf975825b33803;hp=807b260ab2131eb57627aa564505898fdf9a50da;hpb=b47667e4835b470b10ac1875c5dddb766ddd16a3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/wall.qc b/qcsrc/client/wall.qc index 807b260ab..2f086eac2 100644 --- a/qcsrc/client/wall.qc +++ b/qcsrc/client/wall.qc @@ -1,6 +1,18 @@ +#if defined(CSQC) + #include "../dpdefs/csprogsdefs.qh" + #include "../common/util.qh" + #include "autocvars.qh" + #include "../csqcmodellib/interpolate.qh" + #include "bgmscript.qh" + #include "main.qh" + #include "../csqcmodellib/cl_model.qh" +#elif defined(MENUQC) +#elif defined(SVQC) +#endif + .float lip; .float bgmscriptangular; -.float lodmodelindex0, lodmodelindex1, lodmodelindex2; +.int lodmodelindex0, lodmodelindex1, lodmodelindex2; .float loddistance1, loddistance2; .vector saved; @@ -10,9 +22,10 @@ void Ent_Wall_Draw() var .vector fld; if(self.bgmscriptangular) - self.angles = self.saved; + fld = angles; else - self.origin = self.saved; + fld = origin; + self.fld = self.saved; if(self.lodmodelindex1) { @@ -41,10 +54,7 @@ void Ent_Wall_Draw() InterpolateOrigin_Do(); - if(self.bgmscriptangular) - self.saved = self.angles; - else - self.saved = self.origin; + self.saved = self.fld; f = BGMScript(self); if(f >= 0) @@ -73,14 +83,17 @@ void Ent_Wall_Remove() void Ent_Wall() { - float f; + int f; + var .vector fld; + InterpolateOrigin_Undo(); - self.iflags = IFLAG_ANGLES; + self.iflags = IFLAG_ANGLES | IFLAG_ORIGIN; if(self.bgmscriptangular) - self.angles = self.saved; + fld = angles; else - self.origin = self.saved; + fld = origin; + self.fld = self.saved; f = ReadByte(); @@ -97,6 +110,7 @@ void Ent_Wall() self.origin_x = ReadCoord(); self.origin_y = ReadCoord(); self.origin_z = ReadCoord(); + setorigin(self, self.origin); } if(f & 4) @@ -140,6 +154,7 @@ void Ent_Wall() } else self.mins = self.maxs = '0 0 0'; + setsize(self, self.mins, self.maxs); if(self.bgmscript) strunzone(self.bgmscript); @@ -170,10 +185,7 @@ void Ent_Wall() InterpolateOrigin_Note(); - if(self.bgmscriptangular) - self.saved = self.angles; - else - self.saved = self.origin; + self.saved = self.fld; self.entremove = Ent_Wall_Remove; self.draw = Ent_Wall_Draw;