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