X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fcontrolpoint.qc;h=a83260b1049c7dfcabcb04926e9b6c817fe1dd23;hp=0eb49899d35a69e3f4e592f566a241d85e68a5c1;hb=96e1acc3050bcb718e2f06702e5b88a60459a015;hpb=15a18e8ca7c55ac8187b9ea266d15c2d6e0cb869 diff --git a/qcsrc/client/controlpoint.qc b/qcsrc/client/controlpoint.qc index 0eb49899d..a83260b10 100644 --- a/qcsrc/client/controlpoint.qc +++ b/qcsrc/client/controlpoint.qc @@ -1,8 +1,9 @@ #include "controlpoint.qh" #include "gibs.qh" #include "teamradar.qh" +#include "../common/movetypes/movetypes.qh" -bool cpicon_precached; +.float alpha; .int count; .float pain_finished; @@ -19,21 +20,8 @@ bool cpicon_precached; .entity icon_realmodel; -void cpicon_precache() -{ - if(cpicon_precached) - return; // already precached - - precache_model("models/onslaught/controlpoint_icon_dmg3.md3"); - precache_model("models/onslaught/controlpoint_icon_dmg2.md3"); - precache_model("models/onslaught/controlpoint_icon_dmg1.md3"); - precache_model("models/onslaught/controlpoint_icon.md3"); - - cpicon_precached = true; -} - void cpicon_draw() -{ +{SELFPARAM(); if(time < self.move_time) { return; } if(self.cp_bob_dmg_z > 0) @@ -43,9 +31,9 @@ void cpicon_draw() self.cp_bob_origin_z = 4 * PI * (1 - cos(self.cp_bob_spd)); self.cp_bob_spd = self.cp_bob_spd + 1.875 * frametime; self.colormod = '1 1 1' * (2 - bound(0, (self.pain_finished - time) / 10, 1)); - + if(!self.iscaptured) self.alpha = self.health / self.max_health; - + if(self.iscaptured) { if (self.punchangle_x > 0) @@ -92,23 +80,23 @@ void cpicon_draw() self.angles_z = self.punchangle_z; self.move_angles_y = self.move_angles_y + 45 * frametime; } - + setorigin(self, self.cp_origin + self.cp_bob_origin + self.cp_bob_dmg); } void cpicon_damage(float hp) -{ +{SELFPARAM(); if(!self.iscaptured) { return; } if(hp < self.max_health * 0.25) - setmodel(self, "models/onslaught/controlpoint_icon_dmg3.md3"); + setmodel(self, MDL_ONS_CP3); else if(hp < self.max_health * 0.50) - setmodel(self, "models/onslaught/controlpoint_icon_dmg2.md3"); + setmodel(self, MDL_ONS_CP2); else if(hp < self.max_health * 0.75) - setmodel(self, "models/onslaught/controlpoint_icon_dmg1.md3"); + setmodel(self, MDL_ONS_CP1); else if(hp <= self.max_health || hp >= self.max_health) - setmodel(self, "models/onslaught/controlpoint_icon.md3"); - + setmodel(self, MDL_ONS_CP); + self.punchangle = (2 * randomvec() - '1 1 1') * 45; self.cp_bob_dmg_z = (2 * random() - 1) * 15; @@ -119,23 +107,23 @@ void cpicon_damage(float hp) } void cpicon_construct() -{ +{SELFPARAM(); self.netname = "Control Point Icon"; - setmodel(self, "models/onslaught/controlpoint_icon.md3"); + setmodel(self, MDL_ONS_CP); setsize(self, CPICON_MIN, CPICON_MAX); - + if(self.icon_realmodel == world) { self.icon_realmodel = spawn(); - setmodel(self.icon_realmodel, "null"); + setmodel(self.icon_realmodel, MDL_Null); setorigin(self.icon_realmodel, self.origin); setsize(self.icon_realmodel, CPICON_MIN, CPICON_MAX); self.icon_realmodel.movetype = MOVETYPE_NOCLIP; self.icon_realmodel.solid = SOLID_NOT; self.icon_realmodel.move_origin = self.icon_realmodel.origin; } - + if(self.iscaptured) { self.icon_realmodel.solid = SOLID_BBOX; } self.move_movetype = MOVETYPE_NOCLIP; @@ -153,7 +141,7 @@ void cpicon_construct() .vector glowmod; void cpicon_changeteam() -{ +{SELFPARAM(); if(self.team) { self.glowmod = Team_ColorRGB(self.team - 1); @@ -169,7 +157,7 @@ void cpicon_changeteam() } void ent_cpicon() -{ +{SELFPARAM(); int sf = ReadByte(); if(sf & CPSF_SETUP) @@ -189,7 +177,6 @@ void ent_cpicon() self.count = (self.health - self.max_health) * frametime; cpicon_changeteam(); - cpicon_precache(); cpicon_construct(); }