r4130 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Aug 13 07:15:47 EDT 2008


Author: div0
Date: 2008-08-13 07:15:42 -0400 (Wed, 13 Aug 2008)
New Revision: 4130

Modified:
   trunk/data/qcsrc/server/g_subs.qc
   trunk/data/qcsrc/server/g_triggers.qc
   trunk/data/qcsrc/server/t_halflife.qc
   trunk/data/qcsrc/server/t_items.qc
   trunk/data/qcsrc/server/t_jumppads.qc
   trunk/data/qcsrc/server/t_plats.qc
   trunk/data/qcsrc/server/t_teleporters.qc
Log:
refactor common setmodel calls for moving brushes and triggers; ALWAYS support .mins/.maxs explicitly set instead of using an actual model (good for ent files)


Modified: trunk/data/qcsrc/server/g_subs.qc
===================================================================
--- trunk/data/qcsrc/server/g_subs.qc	2008-08-13 10:02:37 UTC (rev 4129)
+++ trunk/data/qcsrc/server/g_subs.qc	2008-08-13 11:15:42 UTC (rev 4130)
@@ -344,6 +344,16 @@
 	return a;
 }
 
+void SetBrushEntityModel()
+{
+	if(self.model != "")
+	{
+		precache_model(self.model);
+		setmodel(self, self.model); // no precision needed
+	}
+	setorigin(self, self.origin);
+	setsize(self, self.mins, self.maxs);
+}
 
 /*
 ================
@@ -379,14 +389,7 @@
 	if (self.angles != '0 0 0')
 		SetMovedir ();
 	self.solid = SOLID_TRIGGER;
-	if(self.model != "")
-		setmodel (self, self.model);	// set size and link into world, no precision needed
-	else
-	{
-		// force relinking
-		setorigin(self, self.origin);
-		setsize (self, self.mins, self.maxs);
-	}
+	SetBrushEntityModel();
 	self.movetype = MOVETYPE_NONE;
 	self.modelindex = 0;
 	self.model = "";
@@ -400,15 +403,17 @@
 	if (self.angles != '0 0 0')
 		SetMovedir ();
 	self.solid = SOLID_BSP;
-	if(self.model != "")
-		setmodel (self, self.model);	// set size and link into world, no precision needed
-	else
-	{
-		// force relinking
-		setorigin(self, self.origin);
-		setsize (self, self.mins, self.maxs);
-	}
+	SetBrushEntityModel();
 	self.movetype = MOVETYPE_PUSH;
 //	self.modelindex = 0;
 	self.model = "";
 };
+
+void InitMovingBrushTrigger()
+{
+// trigger angles are used for one-way touches.  An angle of 0 is assumed
+// to mean no restrictions, so use a yaw of 360 instead.
+	self.solid = SOLID_BSP;
+	SetBrushEntityModel();
+	self.movetype = MOVETYPE_PUSH;
+};

Modified: trunk/data/qcsrc/server/g_triggers.qc
===================================================================
--- trunk/data/qcsrc/server/g_triggers.qc	2008-08-13 10:02:37 UTC (rev 4129)
+++ trunk/data/qcsrc/server/g_triggers.qc	2008-08-13 11:15:42 UTC (rev 4130)
@@ -544,10 +544,7 @@
 	self.angles = '0 0 0';
 	self.movetype = MOVETYPE_NONE;
 	self.solid = SOLID_NOT;
-	if(self.model != "")
-		setmodel(self, self.model); // no precision needed
-	setorigin(self, self.origin);
-	setsize(self, self.mins, self.maxs);
+	SetBrushEntityModel();
 	self.model = "";
 	if (!self.cnt)
 		self.cnt = 12;
@@ -599,10 +596,7 @@
 	self.angles = '0 0 0';
 	self.movetype = MOVETYPE_NONE;
 	self.solid = SOLID_NOT;
-	if(self.model != "")
-		setmodel(self, self.model); // no precision needed
-	setorigin(self, self.origin);
-	setsize(self, self.mins, self.maxs);
+	SetBrushEntityModel();
 	self.model = "";
 	if (!self.cnt)
 		self.cnt = 12;

Modified: trunk/data/qcsrc/server/t_halflife.qc
===================================================================
--- trunk/data/qcsrc/server/t_halflife.qc	2008-08-13 10:02:37 UTC (rev 4129)
+++ trunk/data/qcsrc/server/t_halflife.qc	2008-08-13 11:15:42 UTC (rev 4130)
@@ -51,8 +51,7 @@
 
 void spawnfunc_func_water()
 {
-	self.solid = SOLID_TRIGGER;
-	setmodel (self, self.model);	// set size and link into world, precision set by mapper
+	InitTrigger ();
 	self.touch = func_ladder_touch;
 };
 

Modified: trunk/data/qcsrc/server/t_items.qc
===================================================================
--- trunk/data/qcsrc/server/t_items.qc	2008-08-13 10:02:37 UTC (rev 4129)
+++ trunk/data/qcsrc/server/t_items.qc	2008-08-13 11:15:42 UTC (rev 4130)
@@ -792,9 +792,7 @@
 
 void spawnfunc_misc_models (void)
 {
-	precache_model (self.model);
-	setmodel (self, self.model); // precision set by mapper
-	setsize (self, self.mins, self.maxs);
+	SetBrushEntityModel();
 }
 
 void func_wall_use (void)
@@ -813,9 +811,7 @@
 
 void spawnfunc_func_wall (void)
 {
-	precache_model (self.model);
-	setmodel (self, self.model); // precision set by mapper
-	setsize (self, self.mins, self.maxs);
+	SetBrushEntityModel();
 	self.solid = SOLID_BSP;
 	self.use = func_wall_use;
 }

Modified: trunk/data/qcsrc/server/t_jumppads.qc
===================================================================
--- trunk/data/qcsrc/server/t_jumppads.qc	2008-08-13 10:02:37 UTC (rev 4129)
+++ trunk/data/qcsrc/server/t_jumppads.qc	2008-08-13 11:15:42 UTC (rev 4130)
@@ -239,11 +239,7 @@
 	if (self.angles != '0 0 0')
 		SetMovedir ();
 
-	self.solid = SOLID_TRIGGER;
-	setmodel (self, self.model); // no precision needed
-	self.movetype = MOVETYPE_NONE;
-	self.modelindex = 0;
-	self.model = "";
+	InitTrigger();
 
 	self.touch = trigger_push_touch;
 

Modified: trunk/data/qcsrc/server/t_plats.qc
===================================================================
--- trunk/data/qcsrc/server/t_plats.qc	2008-08-13 10:02:37 UTC (rev 4129)
+++ trunk/data/qcsrc/server/t_plats.qc	2008-08-13 11:15:42 UTC (rev 4130)
@@ -191,10 +191,7 @@
 	self.angles = '0 0 0';
 
 	self.classname = "plat";
-	self.solid = SOLID_BSP;
-	self.movetype = MOVETYPE_PUSH;
-	setorigin (self, self.origin);
-	setmodel (self, self.model); // precision set below
+	InitMovingBrushTrigger();
 	self.effects |= EF_LOWPRECISION;
 	setsize (self, self.mins , self.maxs);
 
@@ -308,16 +305,12 @@
 		precache_sound ("plats/train1.wav");
 	}
 
-	self.solid = SOLID_BSP;
-	self.movetype = MOVETYPE_PUSH;
 	self.blocked = train_blocked;
 	self.use = train_use;
 	self.classname = "train";
 
-	setmodel (self, self.model); // precision set below
+	InitMovingBrushTrigger();
 	self.effects |= EF_LOWPRECISION;
-	setsize (self, self.mins , self.maxs);
-	setorigin (self, self.origin);
 	self.nextthink = self.ltime + 0.1;
 	self.think = func_train_find;
 };
@@ -368,13 +361,8 @@
 	if (!self.speed)
 		self.speed = 100;
 
-	self.solid = SOLID_BSP;
-	self.movetype = MOVETYPE_PUSH;
-
-	setmodel(self, self.model); // precision set below
+	InitMovingBrushTrigger();
 	self.effects |= EF_LOWPRECISION;
-	setsize(self, self.mins, self.maxs);
-	setorigin(self, self.origin);
 
 	// wait for targets to spawn
 	self.nextthink = self.ltime + 0.1;
@@ -436,14 +424,9 @@
 
     self.dmgtime2 = time;
 
+	InitMovingBrushTrigger();
+	// no EF_LOWPRECISION here, as rounding angles is bad
 
-	self.solid = SOLID_BSP;
-	self.movetype = MOVETYPE_PUSH;
-
-	setmodel(self, self.model); // no lowprecision here! evil!
-	setsize(self, self.mins, self.maxs);
-	setorigin(self, self.origin);
-
     self.blocked = rotating_blocked;
 
 	// wait for targets to spawn
@@ -512,13 +495,8 @@
 	else // Z
 		self.movedir = '0 0 1' * self.height;
 
-	self.solid = SOLID_BSP;
-	self.movetype = MOVETYPE_PUSH;
+	InitMovingBrushTrigger();
 
-	setmodel(self, self.model); // precision set below
-	setsize(self, self.mins, self.maxs);
-	setorigin(self, self.origin);
-
 	// wait for targets to spawn
 	controller = spawn();
 	controller.classname = "func_bobbing_controller";
@@ -647,9 +625,7 @@
 {
 	SetMovedir ();
 
-	self.movetype = MOVETYPE_PUSH;
-	self.solid = SOLID_BSP;
-	setmodel (self, self.model); // precision set below
+	InitMovingBrushTrigger();
 	self.effects |= EF_LOWPRECISION;
 
 	self.blocked = button_blocked;
@@ -1087,10 +1063,7 @@
 	SetMovedir ();
 
 	self.max_health = self.health;
-	self.solid = SOLID_BSP;
-	self.movetype = MOVETYPE_PUSH;
-	setorigin (self, self.origin);
-	setmodel (self, self.model); // precision set below
+	InitMovingBrushTrigger();
 	self.effects |= EF_LOWPRECISION;
 	self.classname = "door";
 
@@ -1355,12 +1328,9 @@
 	// Magic formula...
 	self.mangle = self.angles;
 	self.angles = '0 0 0';
-	self.solid = SOLID_BSP;
-	self.movetype = MOVETYPE_PUSH;
 	self.classname = "door";
-	setmodel (self, self.model); // precision set below
+	InitMovingBrushTrigger();
 	self.effects |= EF_LOWPRECISION;
-	setorigin (self, self.origin);
 
 	self.touch = secret_touch;
 	self.blocked = secret_blocked;

Modified: trunk/data/qcsrc/server/t_teleporters.qc
===================================================================
--- trunk/data/qcsrc/server/t_teleporters.qc	2008-08-13 10:02:37 UTC (rev 4129)
+++ trunk/data/qcsrc/server/t_teleporters.qc	2008-08-13 11:15:42 UTC (rev 4130)
@@ -125,21 +125,8 @@
 {
 	self.angles = '0 0 0';
 
-	self.solid = SOLID_TRIGGER;
-	self.movetype = MOVETYPE_NONE;
+	InitTrigger();
 
-	if(self.model != "")
-		setmodel (self, self.model); // no precision needed
-	else
-	{
-		// force relinking
-		setorigin(self, self.origin);
-		setsize (self, self.mins, self.maxs);
-	}
-
-	self.model = "";
-	self.modelindex = 0;
-
 	self.think = teleport_findtarget;
 	self.nextthink = time + 0.2;
 




More information about the nexuiz-commits mailing list