From: Mario Date: Sun, 14 Jan 2018 23:31:00 +0000 (+1000) Subject: Make simple items bob X-Git-Tag: xonotic-v0.8.5~2388 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=b5d301c452099f6c56f0def86444f593fea9d7b3;p=xonotic%2Fxonotic-data.pk3dir.git Make simple items bob --- diff --git a/qcsrc/common/t_items.qc b/qcsrc/common/t_items.qc index fa6d0f6f3..8469d1e3c 100644 --- a/qcsrc/common/t_items.qc +++ b/qcsrc/common/t_items.qc @@ -37,6 +37,7 @@ REGISTER_NET_LINKED(ENT_CLIENT_ITEM) #ifdef CSQC bool autocvar_cl_ghost_items_vehicle = true; .vector item_glowmod; +.bool item_simple; // probably not really needed, but better safe than sorry void Item_SetAlpha(entity this) { bool veh_hud = (hud && autocvar_cl_ghost_items_vehicle); @@ -96,14 +97,16 @@ void ItemDraw(entity this) { if(this.ItemStatus & ITS_ANIMATE1) { - this.angles += this.avelocity * frametime; + if(!this.item_simple) + this.angles += this.avelocity * frametime; float fade_in = bound(0, time - this.onground_time, 1); setorigin(this, this.oldorigin + fade_in * ('0 0 10' + '0 0 8' * sin((time - this.onground_time) * 2))); } if(this.ItemStatus & ITS_ANIMATE2) { - this.angles += this.avelocity * frametime; + if(!this.item_simple) + this.angles += this.avelocity * frametime; float fade_in = bound(0, time - this.onground_time, 1); setorigin(this, this.oldorigin + fade_in * ('0 0 8' + '0 0 4' * sin((time - this.onground_time) * 3))); } @@ -112,19 +115,6 @@ void ItemDraw(entity this) Item_SetAlpha(this); } -void ItemDrawSimple(entity this) -{ - if(this.gravity) - { - Movetype_Physics_MatchServer(this, false); - - if(IS_ONGROUND(this)) - this.gravity = 0; - } - - Item_SetAlpha(this); -} - void Item_PreDraw(entity this) { if(warpzone_warpzones_exist) @@ -228,11 +218,12 @@ NET_HANDLE(ENT_CLIENT_ITEM, bool isnew) this.mdl = ""; string _fn = ReadString(); + this.item_simple = false; // reset it! if(autocvar_cl_simple_items && (this.ItemStatus & ITS_ALLOWSI)) { string _fn2 = substring(_fn, 0 , strlen(_fn) -4); - this.draw = ItemDrawSimple; + this.item_simple = true; if(fexists(strcat(_fn2, autocvar_cl_simpleitems_postfix, ".md3"))) this.mdl = strzone(strcat(_fn2, autocvar_cl_simpleitems_postfix, ".md3")); @@ -244,12 +235,12 @@ NET_HANDLE(ENT_CLIENT_ITEM, bool isnew) this.mdl = strzone(strcat(_fn2, autocvar_cl_simpleitems_postfix, ".mdl")); else { - this.draw = ItemDraw; + this.item_simple = false; LOG_TRACE("Simple item requested for ", _fn, " but no model exists for it"); } } - if(this.draw != ItemDrawSimple) + if(!this.item_simple) this.mdl = strzone(_fn); diff --git a/qcsrc/common/t_items.qh b/qcsrc/common/t_items.qh index 3740c9a57..455952dd6 100644 --- a/qcsrc/common/t_items.qh +++ b/qcsrc/common/t_items.qh @@ -44,7 +44,6 @@ string autocvar_cl_simpleitems_postfix = "_simple"; .vector colormod; void ItemDraw(entity this); -void ItemDrawSimple(entity this); #endif #ifdef SVQC