X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Ft_items.qc;h=e13df065a477b5f0f95a7370c484c5968a444ba4;hp=fa6d0f6f313510dd1bc6a8e1a6e921a425d7e1b0;hb=3c7ac3f983fcc360961822c570a713ede68453ad;hpb=2590bde8cc2b5bf0055224535ecd84fb2c02d091 diff --git a/qcsrc/common/t_items.qc b/qcsrc/common/t_items.qc index fa6d0f6f31..e13df065a4 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); @@ -1126,8 +1117,6 @@ float ammo_pickupevalfunc(entity player, entity item) return rating; } -.int item_group; -.int item_group_count; float healtharmor_pickupevalfunc(entity player, entity item) { float c = 0;