r5629 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Thu Jan 22 07:24:12 EST 2009
Author: div0
Date: 2009-01-22 07:24:11 -0500 (Thu, 22 Jan 2009)
New Revision: 5629
Modified:
trunk/data/qcsrc/server/t_plats.qc
Log:
make all plats reset themselves on ready restart (PLEASE TEST, this may be broken)
Modified: trunk/data/qcsrc/server/t_plats.qc
===================================================================
--- trunk/data/qcsrc/server/t_plats.qc 2009-01-22 12:03:34 UTC (rev 5628)
+++ trunk/data/qcsrc/server/t_plats.qc 2009-01-22 12:24:11 UTC (rev 5629)
@@ -153,14 +153,24 @@
plat_go_down();
};
-void plat_init_movedown()
+.string sound1, sound2;
+
+void plat_reset()
{
- setorigin (self, self.pos2);
- self.state = 2;
+ IFTARGETED
+ {
+ setorigin (self, self.pos1);
+ self.state = 4;
+ self.use = plat_use;
+ }
+ else
+ {
+ setorigin (self, self.pos2);
+ self.state = 2;
+ self.use = plat_trigger_use;
+ }
}
-.string sound1, sound2;
-
void spawnfunc_path_corner() { };
void spawnfunc_func_plat()
{
@@ -225,17 +235,10 @@
self.pos2 = self.origin;
self.pos2_z = self.origin_z - self.size_z + 8;
- self.use = plat_trigger_use;
-
plat_spawn_inside_trigger (); // the "start moving" trigger
- IFTARGETED
- {
- self.state = 4;
- self.use = plat_use;
- }
- else
- InitializeEntity(self, plat_init_movedown, INITPRIO_SETLOCATION);
+ self.reset = plat_reset;
+ plat_reset();
};
@@ -320,6 +323,8 @@
if(self.dmg && (!self.dmgtime))
self.dmgtime = 0.25;
self.dmgtime2 = time;
+
+ // TODO make a reset function for this one
};
/*QUAKED spawnfunc_func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS
@@ -369,6 +374,8 @@
// wait for targets to spawn
self.nextthink = self.ltime + 999999999;
self.think = SUB_Null;
+
+ // TODO make a reset function for this one
};
.float height;
@@ -447,6 +454,8 @@
// Savage: Reduce bandwith, critical on e.g. nexdm02
self.effects |= EF_LOWPRECISION;
+
+ // TODO make a reset function for this one
};
// button and multiple button
@@ -500,6 +509,15 @@
SUB_CalcMove (self.pos2, self.speed, button_wait);
};
+void button_reset()
+{
+ self.health = self.max_health;
+ setorigin(self, self.pos1);
+ self.frame = 0; // use normal textures
+ self.state = STATE_BOTTOM;
+ if (self.health)
+ self.takedamage = DAMAGE_YES; // can be shot again
+}
void button_use()
{
@@ -594,10 +612,10 @@
if(self.noise != "")
precache_sound(self.noise);
- self.state = STATE_BOTTOM;
-
self.pos1 = self.origin;
self.pos2 = self.pos1 + self.movedir*(fabs(self.movedir*self.size) - self.lip);
+
+ button_reset();
};
@@ -1160,6 +1178,13 @@
self.pos1 = self.origin;
}
+void door_reset()
+{
+ setorigin(self, self.pos1);
+ self.state = STATE_BOTTOM;
+ self.think = SUB_Null;
+}
+
void spawnfunc_func_door()
{
//if (!self.deathtype) // map makers can override this
@@ -1222,6 +1247,8 @@
// LinkDoors can't be done until all of the doors have been spawned, so
// the sizes can be detected properly.
InitializeEntity(self, LinkDoors, INITPRIO_LINKDOORS);
+
+ self.reset = door_reset;
};
/*QUAKED spawnfunc_func_door_rotating (0 .5 .8) ? START_OPEN BIDIR DOOR_DONT_LINK BIDIR_IN_DOWN x TOGGLE X_AXIS Y_AXIS
@@ -1252,6 +1279,13 @@
FIXME: only one sound set available at the time being
*/
+void door_rotating_reset()
+{
+ self.angles = self.pos1;
+ self.state = STATE_BOTTOM;
+ self.think = SUB_Null;
+}
+
void door_rotating_init_startopen()
{
self.angles = self.movedir;
@@ -1334,6 +1368,8 @@
// LinkDoors can't be done until all of the doors have been spawned, so
// the sizes can be detected properly.
InitializeEntity(self, LinkDoors, INITPRIO_LINKDOORS);
+
+ self.reset = door_rotating_reset;
};
/*
@@ -1506,6 +1542,16 @@
}
};
+void secret_reset()
+{
+ if (self.spawnflags&SECRET_YES_SHOOT)
+ {
+ self.health = 10000;
+ self.takedamage = DAMAGE_YES;
+ }
+ setorigin(self, self.oldorigin);
+ self.think = SUB_Null;
+}
/*QUAKED spawnfunc_func_door_secret (0 .5 .8) ? open_once 1st_left 1st_down no_shoot always_shoot
Basic secret door. Slides back, then to the side. Angle determines direction.
@@ -1559,6 +1605,9 @@
self.oldorigin = self.origin;
if (!self.wait)
self.wait = 5; // 5 seconds before closing
+
+ self.reset = secret_reset;
+ secret_reset();
};
/*QUAKED spawnfunc_func_fourier (0 .5 .8) ?
@@ -1636,6 +1685,8 @@
// Savage: Reduce bandwith, critical on e.g. nexdm02
self.effects |= EF_LOWPRECISION;
+
+ // TODO make a reset function for this one
};
// reusing some fields havocbots declared
More information about the nexuiz-commits
mailing list