[nexuiz-commits] r6145 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Mar 14 09:30:15 EDT 2009


Author: lordhavoc
Date: 2009-03-14 09:30:14 -0400 (Sat, 14 Mar 2009)
New Revision: 6145

Modified:
   trunk/data/qcsrc/server/cl_weaponsystem.qc
Log:
added support for models/weapons/h_name.zym models


Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc	2009-03-14 13:03:39 UTC (rev 6144)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc	2009-03-14 13:30:14 UTC (rev 6145)
@@ -308,6 +308,7 @@
 
 		string animfilename;
 		float animfile;
+		float modelfile;
 		if (self.owner.weaponname != "")
 		{
 			// if there is a child entity, hide it until we're sure we use it
@@ -317,10 +318,16 @@
 				setmodel(self, strcat("models/weapons/v_", self.owner.weaponname, ".md3")); // precision set below
 			else
 			{
-				animfilename = strcat("models/weapons/h_", self.owner.weaponname, ".dpm.animinfo");
-				animfile = fopen(animfilename, FILE_READ);
-				if (animfile >= 0)
+				animfilename = strcat("models/weapons/h_", self.owner.weaponname, ".zym");
+				modelfile = fopen(animfilename, FILE_READ);
+				if (modelfile >= 0)
 				{
+					fclose(modelfile);
+					self.anim_fire1  = '0 1 10';
+					self.anim_fire2  = '1 1 10';
+					self.anim_idle   = '2 1 10';
+					self.anim_reload = '3 1 10';
+					setmodel(self, strcat("models/weapons/h_", self.owner.weaponname, ".zym")); // precision set below
 					if (!self.weaponentity)
 						self.weaponentity = spawn();
 					setmodel(self, strcat("models/weapons/h_", self.owner.weaponname, ".dpm")); // precision set below
@@ -329,30 +336,43 @@
 				}
 				else
 				{
-					animfilename = strcat("models/weapons/w_", self.owner.weaponname, ".dpm.animinfo");
+					animfilename = strcat("models/weapons/h_", self.owner.weaponname, ".dpm.animinfo");
 					animfile = fopen(animfilename, FILE_READ);
 					if (animfile >= 0)
-						setmodel(self, strcat("models/weapons/w_", self.owner.weaponname, ".dpm")); // precision set below
+					{
+						if (!self.weaponentity)
+							self.weaponentity = spawn();
+						setmodel(self, strcat("models/weapons/h_", self.owner.weaponname, ".dpm")); // precision set below
+						setmodel(self.weaponentity, strcat("models/weapons/v_", self.owner.weaponname, ".md3")); // precision does not matter
+						setattachment(self.weaponentity, self, "weapon");
+					}
+					else
+					{
+						animfilename = strcat("models/weapons/w_", self.owner.weaponname, ".dpm.animinfo");
+						animfile = fopen(animfilename, FILE_READ);
+						if (animfile >= 0)
+							setmodel(self, strcat("models/weapons/w_", self.owner.weaponname, ".dpm")); // precision set below
+					}
+					if (animfile >= 0)
+					{
+						animparseerror = FALSE;
+						self.anim_fire1  = animparseline(animfile);
+						self.anim_fire2  = animparseline(animfile);
+						self.anim_idle   = animparseline(animfile);
+						self.anim_reload = animparseline(animfile);
+						fclose(animfile);
+						if (animparseerror)
+							print("Parse error in ", animfilename, ", some player animations are broken\n");
+					}
+					else
+					{
+						self.anim_fire1  = '0 1 10';
+						self.anim_fire2  = '1 1 10';
+						self.anim_idle   = '2 1 10';
+						self.anim_reload = '3 1 10';
+						setmodel(self, strcat("models/weapons/w_", self.owner.weaponname, ".zym")); // precision set below
+					}
 				}
-				if (animfile >= 0)
-				{
-					animparseerror = FALSE;
-					self.anim_fire1  = animparseline(animfile);
-					self.anim_fire2  = animparseline(animfile);
-					self.anim_idle   = animparseline(animfile);
-					self.anim_reload = animparseline(animfile);
-					fclose(animfile);
-					if (animparseerror)
-						print("Parse error in ", animfilename, ", some player animations are broken\n");
-				}
-				else
-				{
-					self.anim_fire1  = '0 1 10';
-					self.anim_fire2  = '1 1 10';
-					self.anim_idle   = '2 1 10';
-					self.anim_reload = '3 1 10';
-					setmodel(self, strcat("models/weapons/w_", self.owner.weaponname, ".zym")); // precision set below
-				}
 			}
 		}
 		else



More information about the nexuiz-commits mailing list