r129 - trunk/progsqc

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Oct 20 10:40:51 EDT 2008


Author: vermeulen
Date: 2008-10-20 10:40:51 -0400 (Mon, 20 Oct 2008)
New Revision: 129

Modified:
   trunk/progsqc/actor.qc
   trunk/progsqc/inventory.qc
   trunk/progsqc/player.qc
Log:
Each character has their own iteminfo fields now

and now for the hard part...

Modified: trunk/progsqc/actor.qc
===================================================================
--- trunk/progsqc/actor.qc	2008-09-22 23:44:09 UTC (rev 128)
+++ trunk/progsqc/actor.qc	2008-10-20 14:40:51 UTC (rev 129)
@@ -278,25 +278,25 @@
 		{
 			if (time >= self.lowerguntime)
 			{				
-				actor_setviewmodeloffset(iteminfo_viewmodeloffset);
+				actor_setviewmodeloffset(self.iteminfo_viewmodeloffset);
 				self.viewmodelchange_x = 0;
 				self.viewmodelchange_z = -20;
 				self.weaponitem = self.switchweaponitem;
 				Inventory_GetItemInfo(self, self.weaponitem);
-				actor_setweaponmodel(iteminfo_model, iteminfo_weapon_viewmodel);
+				actor_setweaponmodel(self.iteminfo_model, self.iteminfo_weapon_viewmodel);
 
 				weapon_state(WS_RAISE);
 			}
 		}
 		else if (self.weaponstate == WS_RELOAD)
 		{
-			if (iteminfo_ammotype >= 0)
+			if (self.iteminfo_ammotype >= 0)
 			{
-				f1 = min(iteminfo_ammomax - iteminfo_ammo, iteminfo_ammoinventory);
+				f1 = min(self.iteminfo_ammomax - self.iteminfo_ammo, self.iteminfo_ammoinventory);
 				if (f1 > 0)
 				{
 					Inventory_ModifyItem(self, self.weaponitem, 0, f1);
-					Inventory_ModifyItem(self, iteminfo_ammotype, 0 - f1, 0);
+					Inventory_ModifyItem(self, self.iteminfo_ammotype, 0 - f1, 0);
 				}
 			}
 			weapon_state(WS_IDLE);
@@ -315,7 +315,7 @@
 	}
 	if (self.weaponstate == WS_IDLE)
 	{
-		if (!iteminfo_weapon_canraise)
+		if (!self.iteminfo_weapon_canraise)
 		{
 			f1 = Inventory_GetBestWeapon(self);
 			if (f1 >= 0)
@@ -328,13 +328,13 @@
 			//bprint("lowering\n");
 			weapon_state(WS_LOWER);
 		}
-		else if ((iteminfo_ammo <= iteminfo_ammo1minimumtofire) && (cvar("g_autoreload")) && (iteminfo_ammoinventory >= 1))
+		else if ((self.iteminfo_ammo <= self.iteminfo_ammo1minimumtofire) && (cvar("g_autoreload")) && (self.iteminfo_ammoinventory >= 1))
 			weapon_state(WS_RELOAD);
-		else if (self.button4 && ((iteminfo_ammo < iteminfo_ammomax && iteminfo_ammoinventory >= 1)))
+		else if (self.button4 && ((self.iteminfo_ammo < self.iteminfo_ammomax && self.iteminfo_ammoinventory >= 1)))
 			weapon_state(WS_RELOAD);
-		else if (self.button0 && self.weapon_canfire1 && (!self.weapon_oldbutton0 || !(iteminfo_ammo1fireflags & FIREFLAG_SEMIAUTOMATIC)))
+		else if (self.button0 && self.weapon_canfire1 && (!self.weapon_oldbutton0 || !(self.iteminfo_ammo1fireflags & FIREFLAG_SEMIAUTOMATIC)))
 			weapon_state(WS_FIRE1);
-		else if (self.button3 && self.weapon_canfire2 && (!self.weapon_oldbutton3 || !(iteminfo_ammo2fireflags & FIREFLAG_SEMIAUTOMATIC)))
+		else if (self.button3 && self.weapon_canfire2 && (!self.weapon_oldbutton3 || !(self.iteminfo_ammo2fireflags & FIREFLAG_SEMIAUTOMATIC)))
 			weapon_state(WS_FIRE2);
 	}
 	self.weapon_oldbutton0 = self.button0;
@@ -371,23 +371,23 @@
 			sound(self, CHAN_WEAPON2, "weapons/minigun_whirlend.wav", 0.5, ATTN_NORM); // templeofnoise
 			self.weaponsound_cycle = 0; // templeofnoise
 		}
-		anim_start(self.actorpart_viewweapon, iteminfo_weapon_viewmodelanim_idle, ANIMTYPE_IDLE, viewweapon_animframefunc);
+		anim_start(self.actorpart_viewweapon, self.iteminfo_weapon_viewmodelanim_idle, ANIMTYPE_IDLE, viewweapon_animframefunc);
 		//anim_start(self.actorpart_torso, self.playerclass.actoranim_TORSO_STAND, ANIMTYPE_IDLE, torso_animframefunc);
 	}
 	else if (newstate == WS_FIRE1)
 	{
-		anim_start(self.actorpart_viewweapon, iteminfo_weapon_viewmodelanim_fire1, ANIMTYPE_IDLE, viewweapon_animframefunc);
+		anim_start(self.actorpart_viewweapon, self.iteminfo_weapon_viewmodelanim_fire1, ANIMTYPE_IDLE, viewweapon_animframefunc);
 		anim_start(self.actorpart_torso, self.playerclass.actoranim_TORSO_ATTACK, ANIMTYPE_IDLE, torso_animframefunc);
-		self.viewmodelchange = self.viewmodelchange + iteminfo_ammo1viewmodelpush;
+		self.viewmodelchange = self.viewmodelchange + self.iteminfo_ammo1viewmodelpush;
 		self.viewmodelchange_y = self.viewmodelchange_y + crandom();
-		//bprint("weapon_state ");bprint(ftos(newstate));bprint(":");bprint(vtos(iteminfo_weapon_viewmodelanim_fire1));bprint(" ");bprint(ftos(self.actorpart_torso.anim_frametime));bprint("\n");
+		//bprint("weapon_state ");bprint(ftos(newstate));bprint(":");bprint(vtos(self.iteminfo_weapon_viewmodelanim_fire1));bprint(" ");bprint(ftos(self.actorpart_torso.anim_frametime));bprint("\n");
 		weapon_fire(FALSE);
 	}
 	else if (newstate == WS_FIRE2)
 	{
-		anim_start(self.actorpart_viewweapon, iteminfo_weapon_viewmodelanim_fire2, ANIMTYPE_IDLE, viewweapon_animframefunc);
+		anim_start(self.actorpart_viewweapon, self.iteminfo_weapon_viewmodelanim_fire2, ANIMTYPE_IDLE, viewweapon_animframefunc);
 		anim_start(self.actorpart_torso, self.playerclass.actoranim_TORSO_ATTACK, ANIMTYPE_IDLE, torso_animframefunc);
-		self.viewmodelchange = self.viewmodelchange + iteminfo_ammo2viewmodelpush;
+		self.viewmodelchange = self.viewmodelchange + self.iteminfo_ammo2viewmodelpush;
 		weapon_fire(TRUE);
 	}
 	else if (newstate == WS_FIRE3)
@@ -398,27 +398,27 @@
 	}
 	else if (newstate == WS_RELOAD)
 	{
-		anim_start(self.actorpart_viewweapon, iteminfo_weapon_viewmodelanim_reload, ANIMTYPE_IDLE, viewweapon_animframefunc);
+		anim_start(self.actorpart_viewweapon, self.iteminfo_weapon_viewmodelanim_reload, ANIMTYPE_IDLE, viewweapon_animframefunc);
 		anim_start(self.actorpart_torso, self.playerclass.actoranim_TORSO_RELOAD, ANIMTYPE_IDLE, torso_animframefunc);
 	}
 	else if (newstate == WS_LOWER)
 	{
-		anim_start(self.actorpart_viewweapon, iteminfo_weapon_viewmodelanim_lower, ANIMTYPE_IDLE, viewweapon_animframefunc);
+		anim_start(self.actorpart_viewweapon, self.iteminfo_weapon_viewmodelanim_lower, ANIMTYPE_IDLE, viewweapon_animframefunc);
 		anim_start(self.actorpart_torso, self.playerclass.actoranim_TORSO_DROP, ANIMTYPE_IDLE, torso_animframefunc);
 	}
 	else if (newstate == WS_RAISE)
 	{
-		anim_start(self.actorpart_viewweapon, iteminfo_weapon_viewmodelanim_raise, ANIMTYPE_IDLE, viewweapon_animframefunc);
+		anim_start(self.actorpart_viewweapon, self.iteminfo_weapon_viewmodelanim_raise, ANIMTYPE_IDLE, viewweapon_animframefunc);
 		anim_start(self.actorpart_torso, self.playerclass.actoranim_TORSO_RAISE, ANIMTYPE_IDLE, torso_animframefunc);
 	}
 	else if (newstate == WS_TURNON)
 	{
-		anim_start(self.actorpart_viewweapon, iteminfo_weapon_viewmodelanim_turnon, ANIMTYPE_IDLE, viewweapon_animframefunc);
+		anim_start(self.actorpart_viewweapon, self.iteminfo_weapon_viewmodelanim_turnon, ANIMTYPE_IDLE, viewweapon_animframefunc);
 		//anim_start(self.actorpart_torso, self.playerclass.actoranim_TORSO_IDLE, ANIMTYPE_IDLE, torso_animframefunc);
 	}
 	else if (newstate == WS_TURNOFF)
 	{
-		anim_start(self.actorpart_viewweapon, iteminfo_weapon_viewmodelanim_turnoff, ANIMTYPE_IDLE, viewweapon_animframefunc);
+		anim_start(self.actorpart_viewweapon, self.iteminfo_weapon_viewmodelanim_turnoff, ANIMTYPE_IDLE, viewweapon_animframefunc);
 		//anim_start(self.actorpart_torso, self.playerclass.actoranim_TORSO_IDLE, ANIMTYPE_IDLE, torso_animframefunc);
 	}
 };
@@ -460,65 +460,65 @@
 	if (secondary)
 	{
 		shotorg = muzzle2tagorigin; // overridden on hagar
-		shotdir = iteminfo_ammo2speeds;
-		shotdamage = iteminfo_ammo2damage;
-		shotdamagetype = iteminfo_ammo2damagetype;
-		shotlifetime = iteminfo_ammo2lifetime;
-		shotprojflags = iteminfo_ammo2projflags;
-		shotfireflags = iteminfo_ammo2fireflags;
-		shotexplflags = iteminfo_ammo2explflags;
-		shottrailflags = iteminfo_ammo2trailflags;
-		shoteffectflags = iteminfo_ammo2effectflags;
-		shotmodel = iteminfo_ammo2model;
-		shotfiresound = iteminfo_ammo2firesound;
-		shotexplodesound = iteminfo_ammo2explodesound;
-		shotbouncesound = iteminfo_ammo2bouncesound;
-		numberof = iteminfo_ammo2numberof;
-		recoil = iteminfo_ammo2recoil;
-		mintofire = iteminfo_ammo2minimumtofire;
-		tracer = iteminfo_ammo2tracer;
-		tracermodel = iteminfo_ammo2tracermodel;
-		modelscale = iteminfo_ammo2modelscale;
-		projhealth = iteminfo_ammo2health;
-		projmass = iteminfo_ammo2mass;
-		projcolormod = iteminfo_ammo2colormod;
+		shotdir = self.iteminfo_ammo2speeds;
+		shotdamage = self.iteminfo_ammo2damage;
+		shotdamagetype = self.iteminfo_ammo2damagetype;
+		shotlifetime = self.iteminfo_ammo2lifetime;
+		shotprojflags = self.iteminfo_ammo2projflags;
+		shotfireflags = self.iteminfo_ammo2fireflags;
+		shotexplflags = self.iteminfo_ammo2explflags;
+		shottrailflags = self.iteminfo_ammo2trailflags;
+		shoteffectflags = self.iteminfo_ammo2effectflags;
+		shotmodel = self.iteminfo_ammo2model;
+		shotfiresound = self.iteminfo_ammo2firesound;
+		shotexplodesound = self.iteminfo_ammo2explodesound;
+		shotbouncesound = self.iteminfo_ammo2bouncesound;
+		numberof = self.iteminfo_ammo2numberof;
+		recoil = self.iteminfo_ammo2recoil;
+		mintofire = self.iteminfo_ammo2minimumtofire;
+		tracer = self.iteminfo_ammo2tracer;
+		tracermodel = self.iteminfo_ammo2tracermodel;
+		modelscale = self.iteminfo_ammo2modelscale;
+		projhealth = self.iteminfo_ammo2health;
+		projmass = self.iteminfo_ammo2mass;
+		projcolormod = self.iteminfo_ammo2colormod;
 	}
 	else
 	{
 		shotorg = muzzle1tagorigin;
-		shotdir = iteminfo_ammo1speeds;
-		shotdamage = iteminfo_ammo1damage;
-		shotdamagetype = iteminfo_ammo1damagetype;
-		shotlifetime = iteminfo_ammo1lifetime;
-		shotprojflags = iteminfo_ammo1projflags;
-		shotfireflags = iteminfo_ammo1fireflags;
-		shotexplflags = iteminfo_ammo1explflags;
-		shottrailflags = iteminfo_ammo1trailflags;
-		shoteffectflags = iteminfo_ammo1effectflags;
-		shotmodel = iteminfo_ammo1model;
-		shotfiresound = iteminfo_ammo1firesound;
-		shotexplodesound = iteminfo_ammo1explodesound;
-		shotbouncesound = iteminfo_ammo1bouncesound;
-		numberof = iteminfo_ammo1numberof;
-		recoil = iteminfo_ammo1recoil;
-		mintofire = iteminfo_ammo1minimumtofire;
-		tracer = iteminfo_ammo1tracer;
-		tracermodel = iteminfo_ammo1tracermodel;
-		modelscale = iteminfo_ammo1modelscale;
-		projhealth = iteminfo_ammo1health;
-		projmass = iteminfo_ammo1mass;
-		projcolormod = iteminfo_ammo1colormod;
+		shotdir = self.iteminfo_ammo1speeds;
+		shotdamage = self.iteminfo_ammo1damage;
+		shotdamagetype = self.iteminfo_ammo1damagetype;
+		shotlifetime = self.iteminfo_ammo1lifetime;
+		shotprojflags = self.iteminfo_ammo1projflags;
+		shotfireflags = self.iteminfo_ammo1fireflags;
+		shotexplflags = self.iteminfo_ammo1explflags;
+		shottrailflags = self.iteminfo_ammo1trailflags;
+		shoteffectflags = self.iteminfo_ammo1effectflags;
+		shotmodel = self.iteminfo_ammo1model;
+		shotfiresound = self.iteminfo_ammo1firesound;
+		shotexplodesound = self.iteminfo_ammo1explodesound;
+		shotbouncesound = self.iteminfo_ammo1bouncesound;
+		numberof = self.iteminfo_ammo1numberof;
+		recoil = self.iteminfo_ammo1recoil;
+		mintofire = self.iteminfo_ammo1minimumtofire;
+		tracer = self.iteminfo_ammo1tracer;
+		tracermodel = self.iteminfo_ammo1tracermodel;
+		modelscale = self.iteminfo_ammo1modelscale;
+		projhealth = self.iteminfo_ammo1health;
+		projmass = self.iteminfo_ammo1mass;
+		projcolormod = self.iteminfo_ammo1colormod;
 	}
 
 	if (self.unlimitedinventory == 0)
-	if (iteminfo_ammotype < ITEMTYPE_AMMO1) // then it's an item
+	if (self.iteminfo_ammotype < ITEMTYPE_AMMO1) // then it's an item
 	{
 	   Inventory_ModifyItem(self, self.itemselected, 0 - mintofire, 0);
 	}
 	else
 	{
 	   Inventory_ModifyItem(self, self.weaponitem, 0, 0 - mintofire);
-	   if (((self.currentammo + iteminfo_ammoinventory) < mintofire) && (iteminfo_removewhennoammo))
+	   if (((self.currentammo + self.iteminfo_ammoinventory) < mintofire) && (self.iteminfo_removewhennoammo))
 	   {
 			Inventory_ModifyItem(self, self.weaponitem, 0 - 1, 0);
 	   }
@@ -541,10 +541,10 @@
 	self.weaponitem = weaponitemtype;
 	self.switchweaponitem = self.weaponitem;
 	
-	actor_setweaponmodel(iteminfo_model, iteminfo_weapon_viewmodel);
-	actor_setviewmodeloffset(iteminfo_viewmodeloffset);
-	self.viewmodelchange = iteminfo_viewmodeloffset;
-	//self.actorpart_weapon.scale = iteminfo_modelscale;
+	actor_setweaponmodel(character.iteminfo_model, character.iteminfo_weapon_viewmodel);
+	actor_setviewmodeloffset(character.iteminfo_viewmodeloffset);
+	character.viewmodelchange = character.iteminfo_viewmodeloffset;
+	//self.actorpart_weapon.scale = character.iteminfo_modelscale;
 	
 	weapon_state(WS_IDLE);
 };

Modified: trunk/progsqc/inventory.qc
===================================================================
--- trunk/progsqc/inventory.qc	2008-09-22 23:44:09 UTC (rev 128)
+++ trunk/progsqc/inventory.qc	2008-10-20 14:40:51 UTC (rev 129)
@@ -57,88 +57,88 @@
 .float switchweaponitem;
 
 // current item stats
-float iteminfo_quantity;
-float iteminfo_ammo;
-float iteminfo_ammoinventory; // how much ammo is in inventory (can be loaded into the gun)
+.float iteminfo_quantity;
+.float iteminfo_ammo;
+.float iteminfo_ammoinventory; // how much ammo is in inventory (can be loaded into the gun)
 
 // general information about the item
-string iteminfo_model;
-string iteminfo_pickupsound;
-string iteminfo_pickupmodel;
-vector iteminfo_viewmodeloffset;
-string iteminfo_name;
-float iteminfo_removewhennoammo;
-float iteminfo_itemtype;
-float iteminfo_quantitymax;
-float iteminfo_rechargerate;
-float iteminfo_ammomax;
-float iteminfo_ammoinventorymax;
-float iteminfo_ammotype;
-float iteminfo_modelscale;
-vector iteminfo_modelcolormod;
+.string iteminfo_model;
+.string iteminfo_pickupsound;
+.string iteminfo_pickupmodel;
+.vector iteminfo_viewmodeloffset;
+.string iteminfo_name;
+.float iteminfo_removewhennoammo;
+.float iteminfo_itemtype;
+.float iteminfo_quantitymax;
+.float iteminfo_rechargerate;
+.float iteminfo_ammomax;
+.float iteminfo_ammoinventorymax;
+.float iteminfo_ammotype;
+.float iteminfo_modelscale;
+.vector iteminfo_modelcolormod;
 
-float iteminfo_ammo1minimumtofire;
-float iteminfo_ammo2minimumtofire;
-float iteminfo_ammo1numberof;
-float iteminfo_ammo2numberof;
-float iteminfo_ammo1recoil;
-float iteminfo_ammo2recoil;
-vector iteminfo_ammo1damage;
-vector iteminfo_ammo2damage;
-float iteminfo_ammo1damagetype;
-float iteminfo_ammo2damagetype;
-vector iteminfo_ammo1speeds;
-vector iteminfo_ammo2speeds;
-float iteminfo_ammo1lifetime;
-float iteminfo_ammo2lifetime;
-float iteminfo_ammo1fireflags;
-float iteminfo_ammo2fireflags;
-float iteminfo_ammo1projflags;
-float iteminfo_ammo2projflags;
-float iteminfo_ammo1explflags;
-float iteminfo_ammo2explflags;
-float iteminfo_ammo1trailflags;
-float iteminfo_ammo2trailflags;
-float iteminfo_ammo1effectflags;
-float iteminfo_ammo2effectflags;
-string iteminfo_ammo1model;
-string iteminfo_ammo2model;
-string iteminfo_ammo1explodesound;
-string iteminfo_ammo2explodesound;
-string iteminfo_ammo1bouncesound;
-string iteminfo_ammo2bouncesound;
-string iteminfo_ammo1firesound;
-string iteminfo_ammo2firesound;
-float iteminfo_ammo1tracer;
-float iteminfo_ammo2tracer;
-string iteminfo_ammo1tracermodel;
-string iteminfo_ammo2tracermodel;
-float iteminfo_ammo1modelscale;
-float iteminfo_ammo2modelscale;
-float iteminfo_ammo1health;
-float iteminfo_ammo2health;
-float iteminfo_ammo1mass;
-float iteminfo_ammo2mass;
-vector iteminfo_ammo1colormod;
-vector iteminfo_ammo2colormod;
-vector iteminfo_ammo1viewmodelpush;
-vector iteminfo_ammo2viewmodelpush;
-float iteminfo_ammo1noprojectile;
-float iteminfo_ammo2noprojectile;
+.float iteminfo_ammo1minimumtofire;
+.float iteminfo_ammo2minimumtofire;
+.float iteminfo_ammo1numberof;
+.float iteminfo_ammo2numberof;
+.float iteminfo_ammo1recoil;
+.float iteminfo_ammo2recoil;
+.vector iteminfo_ammo1damage;
+.vector iteminfo_ammo2damage;
+.float iteminfo_ammo1damagetype;
+.float iteminfo_ammo2damagetype;
+.vector iteminfo_ammo1speeds;
+.vector iteminfo_ammo2speeds;
+.float iteminfo_ammo1lifetime;
+.float iteminfo_ammo2lifetime;
+.float iteminfo_ammo1fireflags;
+.float iteminfo_ammo2fireflags;
+.float iteminfo_ammo1projflags;
+.float iteminfo_ammo2projflags;
+.float iteminfo_ammo1explflags;
+.float iteminfo_ammo2explflags;
+.float iteminfo_ammo1trailflags;
+.float iteminfo_ammo2trailflags;
+.float iteminfo_ammo1effectflags;
+.float iteminfo_ammo2effectflags;
+.string iteminfo_ammo1model;
+.string iteminfo_ammo2model;
+.string iteminfo_ammo1explodesound;
+.string iteminfo_ammo2explodesound;
+.string iteminfo_ammo1bouncesound;
+.string iteminfo_ammo2bouncesound;
+.string iteminfo_ammo1firesound;
+.string iteminfo_ammo2firesound;
+.float iteminfo_ammo1tracer;
+.float iteminfo_ammo2tracer;
+.string iteminfo_ammo1tracermodel;
+.string iteminfo_ammo2tracermodel;
+.float iteminfo_ammo1modelscale;
+.float iteminfo_ammo2modelscale;
+.float iteminfo_ammo1health;
+.float iteminfo_ammo2health;
+.float iteminfo_ammo1mass;
+.float iteminfo_ammo2mass;
+.vector iteminfo_ammo1colormod;
+.vector iteminfo_ammo2colormod;
+.vector iteminfo_ammo1viewmodelpush;
+.vector iteminfo_ammo2viewmodelpush;
+.float iteminfo_ammo1noprojectile;
+.float iteminfo_ammo2noprojectile;
 
 // special information specific to weapon items
-string iteminfo_weapon_viewmodel;
-vector iteminfo_weapon_viewmodelanim_idle;
-vector iteminfo_weapon_viewmodelanim_fire1;
-vector iteminfo_weapon_viewmodelanim_fire2;
-vector iteminfo_weapon_viewmodelanim_reload;
-vector iteminfo_weapon_viewmodelanim_lower;
-vector iteminfo_weapon_viewmodelanim_raise;
-vector iteminfo_weapon_viewmodelanim_turnon;
-vector iteminfo_weapon_viewmodelanim_turnoff;
-float iteminfo_weapon_canreload;
-float iteminfo_weapon_canraise;
-float iteminfo_weapon_rank;
+.string iteminfo_weapon_viewmodel;
+.vector iteminfo_weapon_viewmodelanim_idle;
+.vector iteminfo_weapon_viewmodelanim_fire1;
+.vector iteminfo_weapon_viewmodelanim_fire2;
+.vector iteminfo_weapon_viewmodelanim_reload;
+.vector iteminfo_weapon_viewmodelanim_lower;
+.vector iteminfo_weapon_viewmodelanim_raise;
+.vector iteminfo_weapon_viewmodelanim_turnon;
+.vector iteminfo_weapon_viewmodelanim_turnoff;
+.float iteminfo_weapon_canreload;
+.float iteminfo_weapon_canraise;
+.float iteminfo_weapon_rank;
 
 // this array and functions depend on fteqcc arrays, but are easily replaced with a huge chunk of if else stuff if needed
 .vector inventory[ITEMTYPE_TOTAL];
@@ -159,92 +159,93 @@
 	local vector item;
 	local entity e;
 	local float d;
+	//bprint(character.iteminfo_name," : ",ftos(itemtype)," : ",character.model,"\n");
 	if (itemtype < 0)
 	{
-	    bprint(iteminfo_name);
+	    bprint(character.iteminfo_name);
 		//error("itemtype = ",ftos(itemtype),"\n");
 	}
 	if (itemtype >= ITEMTYPE_TOTAL)
 		bprint(ftos(itemtype)," ", ftos(ITEMTYPE_TOTAL), " : itemtype >= ITEMTYPE_TOTAL\n");
-	iteminfo_itemtype = itemtype;
+	character.iteminfo_itemtype = itemtype;
 	item = Inventory_GetItem(character, itemtype);
-	iteminfo_quantity = item_x;
-	iteminfo_ammo = item_y;
-	iteminfo_ammoinventory = 0;
+	character.iteminfo_quantity = item_x;
+	character.iteminfo_ammo = item_y;
+	character.iteminfo_ammoinventory = 0;
 	
-	iteminfo_model = "";
-	iteminfo_modelcolormod = '1 1 1';
-	iteminfo_pickupmodel = "";
-	iteminfo_viewmodeloffset = '0 0 0';
-	iteminfo_name = "unknown";
-	iteminfo_pickupsound = "";
-	iteminfo_removewhennoammo = 0;
-	iteminfo_quantitymax = 0;
-	iteminfo_rechargerate = 0;
-	iteminfo_ammomax = 0;
-	iteminfo_ammoinventorymax = 0;
-	iteminfo_ammotype = ITEMTYPE_NONE;
+	character.iteminfo_model = "";
+	character.iteminfo_modelcolormod = '1 1 1';
+	character.iteminfo_pickupmodel = "";
+	character.iteminfo_viewmodeloffset = '0 0 0';
+	character.iteminfo_name = "unknown";
+	character.iteminfo_pickupsound = "";
+	character.iteminfo_removewhennoammo = 0;
+	character.iteminfo_quantitymax = 0;
+	character.iteminfo_rechargerate = 0;
+	character.iteminfo_ammomax = 0;
+	character.iteminfo_ammoinventorymax = 0;
+	character.iteminfo_ammotype = ITEMTYPE_NONE;
 	
-	iteminfo_ammo1minimumtofire = 0;
-	iteminfo_ammo1damagetype = DAMAGETYPE_UNKNOWN;
-	iteminfo_ammo1damage = '0 0 0';
-	iteminfo_ammo1speeds = '0 0 0';
-	iteminfo_ammo1lifetime = 10;
-	iteminfo_ammo1projflags = PROJFLAG_ANYIMPACT;
-	iteminfo_ammo1explflags = 0;
-	iteminfo_ammo1trailflags = 0;
-	iteminfo_ammo1effectflags = 0;
-	iteminfo_ammo1fireflags = 0;
-	iteminfo_ammo1model = "";
-	iteminfo_ammo1firesound = "";
-	iteminfo_ammo1explodesound = "";
-	iteminfo_ammo1bouncesound = "";
-	iteminfo_ammo1numberof = 1;
-	iteminfo_ammo1recoil = 0;
-	iteminfo_ammo1tracer = 0;
-	iteminfo_ammo1tracermodel = "";
-	iteminfo_ammo1modelscale = 1;
-	iteminfo_ammo1health = 0;
-	iteminfo_ammo1mass = 0;
-	iteminfo_ammo1colormod = '0 0 0';
-	iteminfo_ammo1viewmodelpush = '0 0 0';
-	iteminfo_ammo1noprojectile = 0;
-	iteminfo_ammo2minimumtofire = 0;
-	iteminfo_ammo2damagetype = DAMAGETYPE_UNKNOWN;
-	iteminfo_ammo2damage = '0 0 0';
-	iteminfo_ammo2speeds = '0 0 0';
-	iteminfo_ammo2lifetime = 10;
-	iteminfo_ammo2projflags = PROJFLAG_ANYIMPACT;
-	iteminfo_ammo2explflags = 0;
-	iteminfo_ammo2trailflags = 0;
-	iteminfo_ammo2effectflags = 0;
-	iteminfo_ammo2fireflags = 0;
-	iteminfo_ammo2model = "";
-	iteminfo_ammo2firesound = "";
-	iteminfo_ammo2explodesound = "";
-	iteminfo_ammo2bouncesound = "";
-	iteminfo_ammo2numberof = 1;
-	iteminfo_ammo2recoil = 0;
-	iteminfo_ammo2tracer = 0;
-	iteminfo_ammo2tracermodel = "";
-	iteminfo_ammo2modelscale = 1;
-	iteminfo_ammo2health = 0;
-	iteminfo_ammo2mass = 0;
-	iteminfo_ammo2colormod = '0 0 0';
-	iteminfo_ammo2viewmodelpush =  '0 0 0';
-	iteminfo_ammo2noprojectile = 0;
-	iteminfo_weapon_viewmodel = "";
-	iteminfo_weapon_viewmodelanim_idle = '0 0 1';
-	iteminfo_weapon_viewmodelanim_fire1 = '0 0 2';
-	iteminfo_weapon_viewmodelanim_fire2 = '0 0 2';
-	iteminfo_weapon_viewmodelanim_reload = '0 0 0';
-	iteminfo_weapon_viewmodelanim_lower = '0 0 2';
-	iteminfo_weapon_viewmodelanim_raise = '0 0 2';
-	iteminfo_weapon_viewmodelanim_turnon = '0 0 2';
-	iteminfo_weapon_viewmodelanim_turnoff = '0 0 2';
-	iteminfo_weapon_canreload = FALSE;
-	iteminfo_weapon_canraise = FALSE;
-	iteminfo_weapon_rank = 0;
+	character.iteminfo_ammo1minimumtofire = 0;
+	character.iteminfo_ammo1damagetype = DAMAGETYPE_UNKNOWN;
+	character.iteminfo_ammo1damage = '0 0 0';
+	character.iteminfo_ammo1speeds = '0 0 0';
+	character.iteminfo_ammo1lifetime = 10;
+	character.iteminfo_ammo1projflags = PROJFLAG_ANYIMPACT;
+	character.iteminfo_ammo1explflags = 0;
+	character.iteminfo_ammo1trailflags = 0;
+	character.iteminfo_ammo1effectflags = 0;
+	character.iteminfo_ammo1fireflags = 0;
+	character.iteminfo_ammo1model = "";
+	character.iteminfo_ammo1firesound = "";
+	character.iteminfo_ammo1explodesound = "";
+	character.iteminfo_ammo1bouncesound = "";
+	character.iteminfo_ammo1numberof = 1;
+	character.iteminfo_ammo1recoil = 0;
+	character.iteminfo_ammo1tracer = 0;
+	character.iteminfo_ammo1tracermodel = "";
+	character.iteminfo_ammo1modelscale = 1;
+	character.iteminfo_ammo1health = 0;
+	character.iteminfo_ammo1mass = 0;
+	character.iteminfo_ammo1colormod = '0 0 0';
+	character.iteminfo_ammo1viewmodelpush = '0 0 0';
+	character.iteminfo_ammo1noprojectile = 0;
+	character.iteminfo_ammo2minimumtofire = 0;
+	character.iteminfo_ammo2damagetype = DAMAGETYPE_UNKNOWN;
+	character.iteminfo_ammo2damage = '0 0 0';
+	character.iteminfo_ammo2speeds = '0 0 0';
+	character.iteminfo_ammo2lifetime = 10;
+	character.iteminfo_ammo2projflags = PROJFLAG_ANYIMPACT;
+	character.iteminfo_ammo2explflags = 0;
+	character.iteminfo_ammo2trailflags = 0;
+	character.iteminfo_ammo2effectflags = 0;
+	character.iteminfo_ammo2fireflags = 0;
+	character.iteminfo_ammo2model = "";
+	character.iteminfo_ammo2firesound = "";
+	character.iteminfo_ammo2explodesound = "";
+	character.iteminfo_ammo2bouncesound = "";
+	character.iteminfo_ammo2numberof = 1;
+	character.iteminfo_ammo2recoil = 0;
+	character.iteminfo_ammo2tracer = 0;
+	character.iteminfo_ammo2tracermodel = "";
+	character.iteminfo_ammo2modelscale = 1;
+	character.iteminfo_ammo2health = 0;
+	character.iteminfo_ammo2mass = 0;
+	character.iteminfo_ammo2colormod = '0 0 0';
+	character.iteminfo_ammo2viewmodelpush =  '0 0 0';
+	character.iteminfo_ammo2noprojectile = 0;
+	character.iteminfo_weapon_viewmodel = "";
+	character.iteminfo_weapon_viewmodelanim_idle = '0 0 1';
+	character.iteminfo_weapon_viewmodelanim_fire1 = '0 0 2';
+	character.iteminfo_weapon_viewmodelanim_fire2 = '0 0 2';
+	character.iteminfo_weapon_viewmodelanim_reload = '0 0 0';
+	character.iteminfo_weapon_viewmodelanim_lower = '0 0 2';
+	character.iteminfo_weapon_viewmodelanim_raise = '0 0 2';
+	character.iteminfo_weapon_viewmodelanim_turnon = '0 0 2';
+	character.iteminfo_weapon_viewmodelanim_turnoff = '0 0 2';
+	character.iteminfo_weapon_canreload = FALSE;
+	character.iteminfo_weapon_canraise = FALSE;
+	character.iteminfo_weapon_rank = 0;
 
 	character.weapon_canfire1 = FALSE;
 	character.weapon_canfire2 = FALSE;	
@@ -252,155 +253,155 @@
 	if (itemtype < ITEMTYPE_AMMO1)
 	{
 	   	// set the settings for all weapons		  
-		iteminfo_quantitymax = 1;
-		iteminfo_pickupsound = "items/pickupweapon.wav";
-		iteminfo_weapon_viewmodelanim_idle = '0 0 30';
-		iteminfo_weapon_viewmodelanim_lower = '0 0 0';
-		iteminfo_weapon_viewmodelanim_raise = '0 0 0';
+		character.iteminfo_quantitymax = 1;
+		character.iteminfo_pickupsound = "items/pickupweapon.wav";
+		character.iteminfo_weapon_viewmodelanim_idle = '0 0 30';
+		character.iteminfo_weapon_viewmodelanim_lower = '0 0 0';
+		character.iteminfo_weapon_viewmodelanim_raise = '0 0 0';
 		
 		string wname;
 		if (itemtype < ITEMTYPE_AI_WEAP1)
 		{
 		   wname = strcat("g_weap",ftos(itemtype + 1));
-		   iteminfo_ammotype = cvar(wname,"_ammotype") + ITEMTYPE_AMMO1 - 1;
+		   character.iteminfo_ammotype = cvar(wname,"_ammotype") + ITEMTYPE_AMMO1 - 1;
 		}
 		else if (itemtype < ITEMTYPE_ITEM1)
 		{
 		   wname = strcat("g_ai_weap",ftos(itemtype - ITEMTYPE_AI_WEAP1 + 1)); 
-		   iteminfo_ammotype = cvar(wname,"_ammotype") + ITEMTYPE_AMMO1 - 1;
+		   character.iteminfo_ammotype = cvar(wname,"_ammotype") + ITEMTYPE_AMMO1 - 1;
 		}
 		else
 		{
 	 		wname = strcat("g_item",ftos(itemtype - ITEMTYPE_ITEM1 + 1)); 
-		 	iteminfo_quantitymax = cvar(wname,"_quantitymax");
-			iteminfo_ammotype = itemtype;					  // so the firing code knows it's a item
+		 	character.iteminfo_quantitymax = cvar(wname,"_quantitymax");
+			character.iteminfo_ammotype = itemtype;					  // so the firing code knows it's a item
 		}
 		
-		iteminfo_ammo1damagetype = DAMAGETYPE_WEAP1 + itemtype;
-		iteminfo_ammo2damagetype = DAMAGETYPE_WEAP1 + itemtype;
+		character.iteminfo_ammo1damagetype = DAMAGETYPE_WEAP1 + itemtype;
+		character.iteminfo_ammo2damagetype = DAMAGETYPE_WEAP1 + itemtype;
 		
-		iteminfo_name = cvar_string(wname);
-		iteminfo_model = cvar_string(wname,"_model");
-		iteminfo_weapon_viewmodel = cvar_string(wname,"_viewmodel");
-		iteminfo_pickupmodel = cvar_string(wname,"_pickupmodel");
-		iteminfo_viewmodeloffset = stov(cvar_string(wname,"_viewmodeloffset"));
-		iteminfo_modelcolormod = stov(cvar_string(wname,"_modelcolormod"));
+		character.iteminfo_name = cvar_string(wname);
+		character.iteminfo_model = cvar_string(wname,"_model");
+		character.iteminfo_weapon_viewmodel = cvar_string(wname,"_viewmodel");
+		character.iteminfo_pickupmodel = cvar_string(wname,"_pickupmodel");
+		character.iteminfo_viewmodeloffset = stov(cvar_string(wname,"_viewmodeloffset"));
+		character.iteminfo_modelcolormod = stov(cvar_string(wname,"_modelcolormod"));
 
-		iteminfo_removewhennoammo = cvar(wname,"_removewhennoammo");
+		character.iteminfo_removewhennoammo = cvar(wname,"_removewhennoammo");
 		
-		iteminfo_rechargerate = cvar(wname,"_rechargerate");
+		character.iteminfo_rechargerate = cvar(wname,"_rechargerate");
 
-		iteminfo_modelscale = cvar(wname,"_modelscale");
+		character.iteminfo_modelscale = cvar(wname,"_modelscale");
 		
-		iteminfo_ammomax = cvar(wname,"_ammomax");
-		iteminfo_ammoinventorymax = cvar(wname,"_ammoinventorymax");
+		character.iteminfo_ammomax = cvar(wname,"_ammomax");
+		character.iteminfo_ammoinventorymax = cvar(wname,"_ammoinventorymax");
 		
-		iteminfo_ammo1damage = stov(cvar_string(wname,"_ammo1damage"));
-		iteminfo_ammo1speeds = stov(cvar_string(wname,"_ammo1speeds"));
-		iteminfo_ammo1model = cvar_string(wname,"_ammo1model");
-		iteminfo_ammo1firesound = cvar_string(wname,"_ammo1firesound");
-		//iteminfo_ammo1explodesound = strzone(cvar_string(wname,"_ammo1explodesound"));
+		character.iteminfo_ammo1damage = stov(cvar_string(wname,"_ammo1damage"));
+		character.iteminfo_ammo1speeds = stov(cvar_string(wname,"_ammo1speeds"));
+		character.iteminfo_ammo1model = cvar_string(wname,"_ammo1model");
+		character.iteminfo_ammo1firesound = cvar_string(wname,"_ammo1firesound");
+		//character.iteminfo_ammo1explodesound = strzone(cvar_string(wname,"_ammo1explodesound"));
 		
-		iteminfo_ammo1projflags = cvar(wname,"_ammo1projflags");
-		iteminfo_ammo1explflags = cvar(wname,"_ammo1explflags");
-		iteminfo_ammo1fireflags = cvar(wname,"_ammo1fireflags");
-		iteminfo_ammo1trailflags = cvar(wname,"_ammo1trailflags");
-		iteminfo_ammo1effectflags = cvar(wname,"_ammo1effectflags");
+		character.iteminfo_ammo1projflags = cvar(wname,"_ammo1projflags");
+		character.iteminfo_ammo1explflags = cvar(wname,"_ammo1explflags");
+		character.iteminfo_ammo1fireflags = cvar(wname,"_ammo1fireflags");
+		character.iteminfo_ammo1trailflags = cvar(wname,"_ammo1trailflags");
+		character.iteminfo_ammo1effectflags = cvar(wname,"_ammo1effectflags");
 		
-		iteminfo_ammo1noprojectile = cvar(wname,"_ammo1noprojectile");
+		character.iteminfo_ammo1noprojectile = cvar(wname,"_ammo1noprojectile");
 		
-		iteminfo_ammo1numberof = cvar(wname,"_ammo1numberof");
-		iteminfo_ammo1recoil = cvar(wname,"_ammo1recoil");
-		iteminfo_ammo1minimumtofire = cvar(wname,"_ammo1mintofire");
-		iteminfo_ammo1lifetime = cvar(wname,"_ammo1lifetime");
-		iteminfo_ammo1tracer = cvar(wname,"_ammo1tracer");
-		iteminfo_ammo1tracermodel = cvar_string(wname,"_ammo1tracermodel");
-		iteminfo_ammo1modelscale = cvar(wname,"_ammo1modelscale");
-		iteminfo_ammo1health = cvar(wname,"_ammo1health");
-		iteminfo_ammo1mass = cvar(wname,"_ammo1mass");
-		iteminfo_ammo1colormod = stov(cvar_string(wname,"_ammo1colormod"));
-		iteminfo_ammo1viewmodelpush = stov(cvar_string(wname,"_ammo1viewmodelpush"));
-		iteminfo_weapon_viewmodelanim_fire1 = stov(cvar_string(wname,"_fire1"));
+		character.iteminfo_ammo1numberof = cvar(wname,"_ammo1numberof");
+		character.iteminfo_ammo1recoil = cvar(wname,"_ammo1recoil");
+		character.iteminfo_ammo1minimumtofire = cvar(wname,"_ammo1mintofire");
+		character.iteminfo_ammo1lifetime = cvar(wname,"_ammo1lifetime");
+		character.iteminfo_ammo1tracer = cvar(wname,"_ammo1tracer");
+		character.iteminfo_ammo1tracermodel = cvar_string(wname,"_ammo1tracermodel");
+		character.iteminfo_ammo1modelscale = cvar(wname,"_ammo1modelscale");
+		character.iteminfo_ammo1health = cvar(wname,"_ammo1health");
+		character.iteminfo_ammo1mass = cvar(wname,"_ammo1mass");
+		character.iteminfo_ammo1colormod = stov(cvar_string(wname,"_ammo1colormod"));
+		character.iteminfo_ammo1viewmodelpush = stov(cvar_string(wname,"_ammo1viewmodelpush"));
+		character.iteminfo_weapon_viewmodelanim_fire1 = stov(cvar_string(wname,"_fire1"));
 		
-		iteminfo_ammo2damage = stov(cvar_string(wname,"_ammo2damage"));
-		iteminfo_ammo2speeds = stov(cvar_string(wname,"_ammo2speeds"));
-		iteminfo_ammo2model = cvar_string(wname,"_ammo2model");
-		iteminfo_ammo2firesound = cvar_string(wname,"_ammo2firesound");
-		//iteminfo_ammo2explodesound = strzone(cvar_string(wname,"_ammo2explodesound"));
+		character.iteminfo_ammo2damage = stov(cvar_string(wname,"_ammo2damage"));
+		character.iteminfo_ammo2speeds = stov(cvar_string(wname,"_ammo2speeds"));
+		character.iteminfo_ammo2model = cvar_string(wname,"_ammo2model");
+		character.iteminfo_ammo2firesound = cvar_string(wname,"_ammo2firesound");
+		//character.iteminfo_ammo2explodesound = strzone(cvar_string(wname,"_ammo2explodesound"));
 		
-		iteminfo_ammo2projflags = cvar(wname,"_ammo2projflags");
-		iteminfo_ammo2explflags = cvar(wname,"_ammo2explflags");
-		iteminfo_ammo2fireflags = cvar(wname,"_ammo2fireflags");
-		iteminfo_ammo2trailflags = cvar(wname,"_ammo2trailflags");
-		iteminfo_ammo2effectflags = cvar(wname,"_ammo2effectflags");
+		character.iteminfo_ammo2projflags = cvar(wname,"_ammo2projflags");
+		character.iteminfo_ammo2explflags = cvar(wname,"_ammo2explflags");
+		character.iteminfo_ammo2fireflags = cvar(wname,"_ammo2fireflags");
+		character.iteminfo_ammo2trailflags = cvar(wname,"_ammo2trailflags");
+		character.iteminfo_ammo2effectflags = cvar(wname,"_ammo2effectflags");
 		
-		iteminfo_ammo2noprojectile = cvar(wname,"_ammo2noprojectile");
+		character.iteminfo_ammo2noprojectile = cvar(wname,"_ammo2noprojectile");
 		
-		iteminfo_ammo2numberof = cvar(wname,"_ammo2numberof");
-		iteminfo_ammo2recoil = cvar(wname,"_ammo2recoil");
-		iteminfo_ammo2minimumtofire = cvar(wname,"_ammo2mintofire");
-		iteminfo_ammo2lifetime = cvar(wname,"_ammo2lifetime");
-		iteminfo_ammo2tracer = cvar(wname,"_ammo2tracer");
-		iteminfo_ammo2tracermodel = cvar_string(wname,"_ammo2tracermodel");
-		iteminfo_ammo2modelscale = cvar(wname,"_ammo2modelscale");
-		iteminfo_ammo2health = cvar(wname,"_ammo2health");
-		iteminfo_ammo2mass = cvar(wname,"_ammo2mass");
-		iteminfo_ammo2colormod = stov(cvar_string(wname,"_ammo2colormod"));
-		iteminfo_ammo2viewmodelpush = stov(cvar_string(wname,"_ammo2viewmodelpush"));
-		iteminfo_weapon_viewmodelanim_fire2 = stov(cvar_string(wname,"_fire2"));
+		character.iteminfo_ammo2numberof = cvar(wname,"_ammo2numberof");
+		character.iteminfo_ammo2recoil = cvar(wname,"_ammo2recoil");
+		character.iteminfo_ammo2minimumtofire = cvar(wname,"_ammo2mintofire");
+		character.iteminfo_ammo2lifetime = cvar(wname,"_ammo2lifetime");
+		character.iteminfo_ammo2tracer = cvar(wname,"_ammo2tracer");
+		character.iteminfo_ammo2tracermodel = cvar_string(wname,"_ammo2tracermodel");
+		character.iteminfo_ammo2modelscale = cvar(wname,"_ammo2modelscale");
+		character.iteminfo_ammo2health = cvar(wname,"_ammo2health");
+		character.iteminfo_ammo2mass = cvar(wname,"_ammo2mass");
+		character.iteminfo_ammo2colormod = stov(cvar_string(wname,"_ammo2colormod"));
+		character.iteminfo_ammo2viewmodelpush = stov(cvar_string(wname,"_ammo2viewmodelpush"));
+		character.iteminfo_weapon_viewmodelanim_fire2 = stov(cvar_string(wname,"_fire2"));
 	}
 	else if (itemtype < ITEMTYPE_TOTAL)
 	{
 		wname = strcat("g_ammo",ftos(itemtype - ITEMTYPE_AMMO1 + 1));
-		iteminfo_name = cvar_string(wname,"_name");
-		iteminfo_pickupsound = cvar_string(wname,"_pickupsound");
-		iteminfo_pickupmodel = cvar_string(wname,"_pickupmodel");
-		iteminfo_quantitymax = cvar(wname,"_quantitymax");
-		iteminfo_modelcolormod =  stov(cvar_string(wname,"_modelcolormod"));
+		character.iteminfo_name = cvar_string(wname,"_name");
+		character.iteminfo_pickupsound = cvar_string(wname,"_pickupsound");
+		character.iteminfo_pickupmodel = cvar_string(wname,"_pickupmodel");
+		character.iteminfo_quantitymax = cvar(wname,"_quantitymax");
+		character.iteminfo_modelcolormod =  stov(cvar_string(wname,"_modelcolormod"));
 	}
 	else
 		bprint(ftos(itemtype)," Inventory_GetItemInfo: unknown itemtype\n");
 	
-	if (iteminfo_quantity >= 1)
+	if (character.iteminfo_quantity >= 1)
 	{
-		if (iteminfo_ammotype == itemtype)
+		if (character.iteminfo_ammotype == itemtype)
 		{
 			// usable items such as flares
-			iteminfo_ammo1minimumtofire = 1;
-			iteminfo_ammomax = iteminfo_ammo1minimumtofire;
-			if (iteminfo_quantity >= iteminfo_ammo1minimumtofire)
+			character.iteminfo_ammo1minimumtofire = 1;
+			character.iteminfo_ammomax = character.iteminfo_ammo1minimumtofire;
+			if (character.iteminfo_quantity >= character.iteminfo_ammo1minimumtofire)
 			{
-				iteminfo_ammo = iteminfo_ammo1minimumtofire;
-				iteminfo_ammoinventory = iteminfo_quantity - iteminfo_ammo1minimumtofire;
+				character.iteminfo_ammo = character.iteminfo_ammo1minimumtofire;
+				character.iteminfo_ammoinventory = character.iteminfo_quantity - character.iteminfo_ammo1minimumtofire;
 				character.weapon_canfire1 = TRUE;
 				character.weapon_canfire2 = TRUE;
-				iteminfo_weapon_canraise = character.weapon_canfire1 || character.weapon_canfire2;
-				iteminfo_weapon_rank = iteminfo_quantity * iteminfo_ammo1damage_x;
+				character.iteminfo_weapon_canraise = character.weapon_canfire1 || character.weapon_canfire2;
+				character.iteminfo_weapon_rank = character.iteminfo_quantity * character.iteminfo_ammo1damage_x;
 			}
 		}
-		else if (iteminfo_ammo1minimumtofire >= 0)
+		else if (character.iteminfo_ammo1minimumtofire >= 0)
 		{
 			// weapons
-			if (iteminfo_ammotype >= 0)
+			if (character.iteminfo_ammotype >= 0)
 			{
-				item = Inventory_GetItem(character, iteminfo_ammotype);
-				iteminfo_ammoinventory = item_x;
+				item = Inventory_GetItem(character, character.iteminfo_ammotype);
+				character.iteminfo_ammoinventory = item_x;
 			}
-			iteminfo_weapon_canreload = (iteminfo_ammo < iteminfo_ammomax && iteminfo_ammoinventory >= 1);
-			character.weapon_canfire1 = iteminfo_ammo >= iteminfo_ammo1minimumtofire;
-			character.weapon_canfire2 = iteminfo_ammo >= iteminfo_ammo2minimumtofire;
+			character.iteminfo_weapon_canreload = (character.iteminfo_ammo < character.iteminfo_ammomax && character.iteminfo_ammoinventory >= 1);
+			character.weapon_canfire1 = character.iteminfo_ammo >= character.iteminfo_ammo1minimumtofire;
+			character.weapon_canfire2 = character.iteminfo_ammo >= character.iteminfo_ammo2minimumtofire;
 	
 			// fteqcc bug:
 			// these work
-			iteminfo_weapon_canraise = character.weapon_canfire1 + character.weapon_canfire2 + iteminfo_weapon_canreload;
-			//if (iteminfo_weapon_canfire1 || iteminfo_weapon_canfire2 || iteminfo_weapon_canreload)
-			//	iteminfo_weapon_canraise = TRUE;
+			character.iteminfo_weapon_canraise = character.weapon_canfire1 + character.weapon_canfire2 + character.iteminfo_weapon_canreload;
+			//if (character.iteminfo_weapon_canfire1 || character.iteminfo_weapon_canfire2 || character.iteminfo_weapon_canreload)
+			//	character.iteminfo_weapon_canraise = TRUE;
 			// these don't work
-			//iteminfo_weapon_canraise = iteminfo_weapon_canfire1 || (iteminfo_weapon_canfire2 || iteminfo_weapon_canreload);
-			//iteminfo_weapon_canraise = (iteminfo_weapon_canfire1 || iteminfo_weapon_canfire2) || iteminfo_weapon_canreload;
-			//iteminfo_weapon_canraise = iteminfo_weapon_canfire1 || iteminfo_weapon_canfire2 || iteminfo_weapon_canreload;
-			if (iteminfo_weapon_canraise)
-				iteminfo_weapon_rank = (iteminfo_ammo + iteminfo_ammoinventory) * iteminfo_ammo1damage_x + (iteminfo_ammo + iteminfo_ammoinventory) * iteminfo_ammo2damage_x;
+			//character.iteminfo_weapon_canraise = character.iteminfo_weapon_canfire1 || (character.iteminfo_weapon_canfire2 || character.iteminfo_weapon_canreload);
+			//character.iteminfo_weapon_canraise = (character.iteminfo_weapon_canfire1 || character.iteminfo_weapon_canfire2) || character.iteminfo_weapon_canreload;
+			//character.iteminfo_weapon_canraise = character.iteminfo_weapon_canfire1 || character.iteminfo_weapon_canfire2 || character.iteminfo_weapon_canreload;
+			if (character.iteminfo_weapon_canraise)
+				character.iteminfo_weapon_rank = (character.iteminfo_ammo + character.iteminfo_ammoinventory) * character.iteminfo_ammo1damage_x + (character.iteminfo_ammo + character.iteminfo_ammoinventory) * character.iteminfo_ammo2damage_x;
 		}
 		else
 		{
@@ -414,22 +415,22 @@
 		//character.ammo_nails = 0;
 		//character.ammo_rockets = 0;
 		character.ammo_cells = character.itemselected - ITEMTYPE_ITEM1 + 1;
-		if (!(iteminfo_ammotype == ITEMTYPE_AMMO1))		// infinite ammo
-		if (iteminfo_ammomax + iteminfo_ammoinventorymax)
+		if (!(character.iteminfo_ammotype == ITEMTYPE_AMMO1))		// infinite ammo
+		if (character.iteminfo_ammomax + character.iteminfo_ammoinventorymax)
 		{
-			character.currentammo = iteminfo_ammo * 200 / (iteminfo_ammomax + iteminfo_ammoinventorymax);
-			character.ammo_shells = iteminfo_ammoinventory * 200 / (iteminfo_ammomax + iteminfo_ammoinventorymax);
+			character.currentammo = character.iteminfo_ammo * 200 / (character.iteminfo_ammomax + character.iteminfo_ammoinventorymax);
+			character.ammo_shells = character.iteminfo_ammoinventory * 200 / (character.iteminfo_ammomax + character.iteminfo_ammoinventorymax);
 		}
 		// character.ammo_nails is now set above as the item quantity when using items
-		//if (iteminfo_ammo2max + iteminfo_ammo2inventorymax)
+		//if (character.iteminfo_ammo2max + character.iteminfo_ammo2inventorymax)
 		//{
-		//	character.ammo_nails = character.jetpack_fuel; // iteminfo_ammo2 * 200 / (iteminfo_ammo2max + iteminfo_ammo2inventorymax);
-		//	character.ammo_rockets = 0; //iteminfo_ammo2inventory * 200 / (iteminfo_ammo2max + iteminfo_ammo2inventorymax);
+		//	character.ammo_nails = character.jetpack_fuel; // character.iteminfo_ammo2 * 200 / (character.iteminfo_ammo2max + character.iteminfo_ammo2inventorymax);
+		//	character.ammo_rockets = 0; //character.iteminfo_ammo2inventory * 200 / (character.iteminfo_ammo2max + character.iteminfo_ammo2inventorymax);
 		//}
 	}
 	else if (itemtype == character.itemselected)
 	{
-	 	character.ammo_nails = iteminfo_quantity * 200 / (iteminfo_quantitymax);
+	 	character.ammo_nails = character.iteminfo_quantity * 200 / (character.iteminfo_quantitymax);
 	}
 };
 
@@ -440,19 +441,19 @@
 	while (c < ITEMTYPE_TOTAL)
 	{
 		Inventory_GetItemInfo(world, c);
-		if (iteminfo_model != "") precache_model(iteminfo_model);
-		if (iteminfo_ammo1model != "") precache_model(iteminfo_ammo1model);
-		if (iteminfo_ammo2model != "") precache_model(iteminfo_ammo2model);
-		if (iteminfo_ammo1tracermodel != "") precache_model(iteminfo_ammo1tracermodel);
-		if (iteminfo_ammo2tracermodel != "") precache_model(iteminfo_ammo2tracermodel);
-		if (iteminfo_pickupsound != "") precache_sound(iteminfo_pickupsound);
-		if (iteminfo_ammo1firesound != "") precache_sound(iteminfo_ammo1firesound);
-		if (iteminfo_ammo1explodesound != "") precache_sound(iteminfo_ammo1explodesound);
-		if (iteminfo_ammo1bouncesound != "") precache_sound(iteminfo_ammo1bouncesound);
-		if (iteminfo_ammo2firesound != "") precache_sound(iteminfo_ammo2firesound);
-		if (iteminfo_ammo2explodesound != "") precache_sound(iteminfo_ammo2explodesound);
-		if (iteminfo_ammo2bouncesound != "") precache_sound(iteminfo_ammo2bouncesound);
-		if (iteminfo_weapon_viewmodel != "") precache_model(iteminfo_weapon_viewmodel);
+		if (self.iteminfo_model != "") precache_model(self.iteminfo_model);
+		if (self.iteminfo_ammo1model != "") precache_model(self.iteminfo_ammo1model);
+		if (self.iteminfo_ammo2model != "") precache_model(self.iteminfo_ammo2model);
+		if (self.iteminfo_ammo1tracermodel != "") precache_model(self.iteminfo_ammo1tracermodel);
+		if (self.iteminfo_ammo2tracermodel != "") precache_model(self.iteminfo_ammo2tracermodel);
+		if (self.iteminfo_pickupsound != "") precache_sound(self.iteminfo_pickupsound);
+		if (self.iteminfo_ammo1firesound != "") precache_sound(self.iteminfo_ammo1firesound);
+		if (self.iteminfo_ammo1explodesound != "") precache_sound(self.iteminfo_ammo1explodesound);
+		if (self.iteminfo_ammo1bouncesound != "") precache_sound(self.iteminfo_ammo1bouncesound);
+		if (self.iteminfo_ammo2firesound != "") precache_sound(self.iteminfo_ammo2firesound);
+		if (self.iteminfo_ammo2explodesound != "") precache_sound(self.iteminfo_ammo2explodesound);
+		if (self.iteminfo_ammo2bouncesound != "") precache_sound(self.iteminfo_ammo2bouncesound);
+		if (self.iteminfo_weapon_viewmodel != "") precache_model(self.iteminfo_weapon_viewmodel);
 		c = c + 1;
 	}
 
@@ -520,6 +521,10 @@
 	precache_model("models/gibs/m_gib5.md3");
 	precache_model("models/gibs/m_gib6.md3");
 	precache_model("models/gibs/chunk.mdl");
+
+	precache_model("models/structures/spawner/spawner.md3");
+	precache_model("models/structures/reactor/reactor.md3");
+	precache_model("models/structures/barrels/barrel.md2");
 };
 
 float(entity character) Inventory_GetBestWeapon =
@@ -533,10 +538,10 @@
 	while (c < ITEMTYPE_TOTAL)
 	{
 		Inventory_GetItemInfo(character, c);
-		if (iteminfo_weapon_canraise)
-		if (rank < iteminfo_weapon_rank)
+		if (character.iteminfo_weapon_canraise)
+		if (rank < character.iteminfo_weapon_rank)
 		{
-			rank = iteminfo_weapon_rank;
+			rank = character.iteminfo_weapon_rank;
 			best = c;
 		}
 		c = c + 1;
@@ -555,7 +560,7 @@
 	while (c < ITEMTYPE_AMMO1)
 	{
 		Inventory_GetItemInfo(character, c);
-		if (iteminfo_weapon_canraise)
+		if (character.iteminfo_weapon_canraise)
 			best = c;
 		c = c + 1;
 	}
@@ -572,13 +577,13 @@
 	if (adjustquantity == 0)
 	if (adjustammo == 0)
 		return '0 0 0';
-	olditemtype = iteminfo_itemtype;
+	olditemtype = character.iteminfo_itemtype;
 	Inventory_GetItemInfo(character, itemtype);
 	item = Inventory_GetItem(character, itemtype);
 	olditem = item;
-	item_x = bound(0, item_x + adjustquantity, iteminfo_quantitymax);
-	item_y = bound(0, item_y + adjustammo, iteminfo_ammomax);
-	//item_z = bound(0, item_z + adjustammo2, iteminfo_ammo2max);
+	item_x = bound(0, item_x + adjustquantity, character.iteminfo_quantitymax);
+	item_y = bound(0, item_y + adjustammo, character.iteminfo_ammomax);
+	//item_z = bound(0, item_z + adjustammo2, character.iteminfo_ammo2max);
 	Inventory_SetItem(character, itemtype, item);
 	// update iteminfo for olditemtype
 	// (if olditemtype == itemtype then we want to update it because the item
@@ -729,7 +734,7 @@
 	newmis.owner = own;
 	newmis.respawntime = respawntim;
 	newmis.classname = "item";
-	newmis.netname = strzone(iteminfo_name);
+	newmis.netname = strzone(world.iteminfo_name);
 	newmis.itemitemtype = itemtype;
 	newmis.ispointable = TRUE;
 	newmis.solid = SOLID_TRIGGER;
@@ -746,12 +751,12 @@
 	
 	if (cvar("g_itemtouchpickup"))
 		newmis.touch = Item_Pickup;
-	//newmis.noise = strzone(iteminfo_pickupsound);
+	//newmis.noise = strzone(character.iteminfo_pickupsound);
 	setorigin(newmis, org);
-	setmodel(newmis, iteminfo_pickupmodel);
+	setmodel(newmis, world.iteminfo_pickupmodel);
 	setsize(newmis, '-25 -25 -25', '8 8 8');
 	Inventory_ModifyItem(newmis, itemtype, quantity, ammo1);
-	newmis.colormod = iteminfo_modelcolormod;
+	newmis.colormod = world.iteminfo_modelcolormod;
 	
 	//newmis.effects = newmis.effects | EF_FULLBRIGHT;
 	newmis.scale = modelscale;

Modified: trunk/progsqc/player.qc
===================================================================
--- trunk/progsqc/player.qc	2008-09-22 23:44:09 UTC (rev 128)
+++ trunk/progsqc/player.qc	2008-10-20 14:40:51 UTC (rev 129)
@@ -181,7 +181,7 @@
 		 	 {
 		  		newweapon = cvar(cname,"_weapon",ftos(i)) - 1;
 		  		Inventory_GetItemInfo(pc, newweapon);
-		  		Inventory_ModifyItem(pc, newweapon, 1, iteminfo_ammomax);
+		  		Inventory_ModifyItem(pc, newweapon, 1, pc.iteminfo_ammomax);
 		 	 }
 		 }
 		 
@@ -191,7 +191,7 @@
 		 	 {
 		  		newweapon = cvar(cname,"_item",ftos(i)) - 1;
 		  		Inventory_GetItemInfo(pc, newweapon + ITEMTYPE_ITEM1);
-		  		Inventory_ModifyItem(pc, newweapon + ITEMTYPE_ITEM1, iteminfo_quantitymax, 0);
+		  		Inventory_ModifyItem(pc, newweapon + ITEMTYPE_ITEM1, pc.iteminfo_quantitymax, 0);
 		 	 }
 		 }
 		 
@@ -201,7 +201,7 @@
 		 	 {
 		  		newweapon = cvar(cname,"_aiweapon",ftos(i)) - 1 + ITEMTYPE_AI_WEAP1;
 		  		Inventory_GetItemInfo(pc, newweapon);
-		  		Inventory_ModifyItem(pc, newweapon, 1, iteminfo_ammomax);
+		  		Inventory_ModifyItem(pc, newweapon, 1, pc.iteminfo_ammomax);
 		 	 }
 		 }
 	}
@@ -522,7 +522,7 @@
 	   self.viewmodelchange_z = self.viewmodelchange_z - (self.velocity_z / 2000);
 	
 	   Inventory_GetItemInfo(self, self.weaponitem);
-	   self.viewmodeldiff = iteminfo_viewmodeloffset - self.viewmodelchange;
+	   self.viewmodeldiff = self.iteminfo_viewmodeloffset - self.viewmodelchange;
 	   self.viewmodelchange = self.viewmodelchange + self.viewmodeldiff * 0.1;
 	   actor_setviewmodeloffset(self.viewmodelchange);
 	}
@@ -530,36 +530,36 @@
 	if (self.flags & FL_CLIENT)
 	{
 		Inventory_GetItemInfo(self, self.itemselected);
-		Inventory_ModifyItem(self, self.itemselected, 0 + iteminfo_rechargerate, 0);
+		Inventory_ModifyItem(self, self.itemselected, 0 + self.iteminfo_rechargerate, 0);
 		Inventory_GetItemInfo(self, self.weaponitem);
-		Inventory_ModifyItem(self, self.weaponitem, 0, 0 + iteminfo_rechargerate);
+		Inventory_ModifyItem(self, self.weaponitem, 0, 0 + self.iteminfo_rechargerate);
 	}
 
 	if (self.button7)
 	{
 	 	Inventory_GetItemInfo(self, self.itemselected);
-		if ((!iteminfo_ammo1noprojectile) && self.weapon_canfire1 && self.weapon_canfire2 && (!self.weapon_oldbutton7 || !(iteminfo_ammo1fireflags & FIREFLAG_SEMIAUTOMATIC)))
+		if ((!self.iteminfo_ammo1noprojectile) && self.weapon_canfire1 && self.weapon_canfire2 && (!self.weapon_oldbutton7 || !(self.iteminfo_ammo1fireflags & FIREFLAG_SEMIAUTOMATIC)))
 		{
 		   	weapon_state(WS_FIRE3);
 		}
-		else if (iteminfo_ammo1fireflags & FIREFLAG_JETPACK)
+		else if (self.iteminfo_ammo1fireflags & FIREFLAG_JETPACK)
 		{
-		    Inventory_ModifyItem(self, self.itemselected, 0 - iteminfo_ammo1minimumtofire, 0);
-			self.jetpack_fuel = iteminfo_quantity;
+		    Inventory_ModifyItem(self, self.itemselected, 0 - self.iteminfo_ammo1minimumtofire, 0);
+			self.jetpack_fuel = self.iteminfo_quantity;
 		   	if (!self.jetpackactive && self.jetpack_fuel > 10)
 			{
 				sound(self, CHAN_BODY, "jetpack/low.wav", 0.2, ATTN_NORM);
 				self.jetpackactive = TRUE;
 			}
 		}
-		else if (iteminfo_ammo1fireflags & FIREFLAG_SHIELD)
+		else if (self.iteminfo_ammo1fireflags & FIREFLAG_SHIELD)
 		{
-		    Inventory_ModifyItem(self, self.itemselected, 0 - iteminfo_ammo1minimumtofire, 0);
+		    Inventory_ModifyItem(self, self.itemselected, 0 - self.iteminfo_ammo1minimumtofire, 0);
 			self.shieldactive = TRUE;
 		}
-		else if (iteminfo_ammo1fireflags & FIREFLAG_INVIS)
+		else if (self.iteminfo_ammo1fireflags & FIREFLAG_INVIS)
 		{
-		    Inventory_ModifyItem(self, self.itemselected, 0 - iteminfo_ammo1minimumtofire, 0);
+		    Inventory_ModifyItem(self, self.itemselected, 0 - self.iteminfo_ammo1minimumtofire, 0);
 			self.invisactive = TRUE;
 		}
 	}
@@ -611,7 +611,7 @@
 	   	if (self.button4)
 		{
 		    Inventory_GetItemInfo(self, self.weaponitem);
-		   	if (iteminfo_ammo1fireflags & FIREFLAG_ZOOM)
+		   	if (self.iteminfo_ammo1fireflags & FIREFLAG_ZOOM)
 		       self.viewzoom = 0.2;
 		}
 		else
@@ -1325,8 +1325,8 @@
 				   
 				Inventory_GetItemInfo(self, c);
 				item = Inventory_GetItem(self, c);
-				bprint(ftos(c),".  AT:", ftos(iteminfo_ammotype)," Q:",ftos(item_x)," A:",ftos(item_y));
-				bprint("  ", iteminfo_name,"\n");
+				bprint(ftos(c),".  AT:", ftos(self.iteminfo_ammotype)," Q:",ftos(item_x)," A:",ftos(item_y));
+				bprint("  ", self.iteminfo_name,"\n");
 				c = c + 1;
 			}
 		}
@@ -1336,7 +1336,7 @@
 			while (c < ITEMTYPE_AI_WEAP1)
 			{
 				Inventory_GetItemInfo(self, c);
-				Inventory_ModifyItem(self, c, iteminfo_quantitymax, iteminfo_ammomax);
+				Inventory_ModifyItem(self, c, self.iteminfo_quantitymax, self.iteminfo_ammomax);
 				c = c + 1;
 			}
 			self.switchweaponitem = Inventory_GetBestWeapon(self);
@@ -1351,14 +1351,14 @@
 			if (w >= ITEMTYPE_AI_WEAP1)
 				break;
 			Inventory_GetItemInfo(self, w);
-			if (iteminfo_weapon_canraise)
+			if (self.iteminfo_weapon_canraise)
 			{
 				select = select - 1;
 				if (select == 0)
 				{
 					self.switchweaponitem = w;
 					sound(self, CHAN_BODY, "misc/weapon_switch.ogg", 1, ATTN_NORM);
-					//bprint(iteminfo_name,"\n");
+					//bprint(character.iteminfo_name,"\n");
 					break;
 				}
 			}
@@ -1376,11 +1376,11 @@
 			if (w == self.switchweaponitem)
 				break;
 			Inventory_GetItemInfo(self, w);
-			if (iteminfo_weapon_canraise)
+			if (self.iteminfo_weapon_canraise)
 			{
 				self.switchweaponitem = w;
 				sound(self, CHAN_BODY, "misc/weapon_switch.ogg", 1, ATTN_NORM);
-				//bprint(iteminfo_name,"\n");
+				//bprint(character.iteminfo_name,"\n");
 				break;
 			}
 		}
@@ -1396,11 +1396,11 @@
 			if (w == self.switchweaponitem)
 				break;
 			Inventory_GetItemInfo(self, w);
-			if (iteminfo_weapon_canraise)
+			if (self.iteminfo_weapon_canraise)
 			{
 				self.switchweaponitem = w;
 				sound(self, CHAN_BODY, "misc/weapon_switch.ogg", 1, ATTN_NORM);
-				//bprint(iteminfo_name,"\n");
+				//bprint(character.iteminfo_name,"\n");
 				break;
 			}
 		}
@@ -1416,9 +1416,9 @@
 			if (w == self.itemselected)
 				break;
 			Inventory_GetItemInfo(self, w);
-			if (iteminfo_weapon_canraise)
+			if (self.iteminfo_weapon_canraise)
 			{
-			   	//bprint(iteminfo_name,"\n");
+			   	//bprint(character.iteminfo_name,"\n");
 				self.itemselected = w;
 				break;
 			}




More information about the zymotic-commits mailing list