From f10cfea573e39ff078d754fa5729da43727e9925 Mon Sep 17 00:00:00 2001 From: div0 Date: Fri, 28 Nov 2008 08:01:36 +0000 Subject: [PATCH] support "cnt" field in items as probability weight for teamed items; works like for spawns git-svn-id: svn://svn.icculus.org/nexuiz/trunk@5135 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/arena.qc | 2 +- data/qcsrc/server/t_items.qc | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/data/qcsrc/server/arena.qc b/data/qcsrc/server/arena.qc index 972d5d9d2..e19a6d81b 100644 --- a/data/qcsrc/server/arena.qc +++ b/data/qcsrc/server/arena.qc @@ -73,7 +73,7 @@ void reset_map() } else if(self.flags & FL_ITEM) // reset items { - if(self.cnt == 1) + if(self.state == 1) { self.model = string_null; self.solid = SOLID_NOT; diff --git a/data/qcsrc/server/t_items.qc b/data/qcsrc/server/t_items.qc index 49be7179a..0eecbd201 100644 --- a/data/qcsrc/server/t_items.qc +++ b/data/qcsrc/server/t_items.qc @@ -248,7 +248,7 @@ void Item_Touch (void) { RandomSelection_Init(); for(head = world; (head = findfloat(head, team, self.team)); ) if(head.flags & FL_ITEM) - RandomSelection_Add(head, 0, 1, 0); + RandomSelection_Add(head, 0, head.cnt, 0); e = RandomSelection_chosen_ent; } else @@ -268,9 +268,9 @@ void Item_FindTeam() dprint("Initializing item team ", ftos(self.team), "\n"); RandomSelection_Init(); for(head = world; (head = findfloat(head, team, self.team)); ) if(head.flags & FL_ITEM) - RandomSelection_Add(head, 0, 1, 0); + RandomSelection_Add(head, 0, head.cnt, 0); e = RandomSelection_chosen_ent; - e.cnt = 0; + e.state = 0; for(head = world; (head = findfloat(head, team, self.team)); ) if(head.flags & FL_ITEM) { @@ -279,7 +279,7 @@ void Item_FindTeam() // make it a non-spawned item head.solid = SOLID_NOT; head.model = string_null; - head.cnt = 1; // cnt 1 = initially hidden item + head.state = 1; // state 1 = initially hidden item } head.effects = head.effects - (head.effects & EF_NODRAW); } @@ -288,7 +288,7 @@ void Item_FindTeam() // Savage: used for item garbage-collection // TODO: perhaps nice special effect? -void RemoveItem(void) /*FIXDECL*/ +void RemoveItem(void) { remove(self); } @@ -506,8 +506,11 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime, if (cvar("g_fullbrightitems")) self.effects = self.effects | EF_FULLBRIGHT; + self.state = 0; if(self.team) { + if(!self.cnt) + self.cnt = 1; // item probability weight self.effects = self.effects | EF_NODRAW; // marker for item team search InitializeEntity(self, Item_FindTeam, INITPRIO_FINDTARGET); } -- 2.39.2