r5633 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Thu Jan 22 07:45:41 EST 2009
Author: div0
Date: 2009-01-22 07:45:41 -0500 (Thu, 22 Jan 2009)
New Revision: 5633
Modified:
trunk/data/qcsrc/server/arena.qc
trunk/data/qcsrc/server/assault.qc
trunk/data/qcsrc/server/ctf.qc
trunk/data/qcsrc/server/defs.qh
trunk/data/qcsrc/server/domination.qc
trunk/data/qcsrc/server/func_breakable.qc
trunk/data/qcsrc/server/keyhunt.qc
trunk/data/qcsrc/server/mode_onslaught.qc
trunk/data/qcsrc/server/runematch.qc
trunk/data/qcsrc/server/t_teleporters.qc
trunk/data/qcsrc/server/w_electro.qc
trunk/data/qcsrc/server/w_hlac.qc
trunk/data/qcsrc/server/w_laser.qc
trunk/data/qcsrc/server/w_seeker.qc
Log:
make lots of stuff self-resetting
Modified: trunk/data/qcsrc/server/arena.qc
===================================================================
--- trunk/data/qcsrc/server/arena.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/arena.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -50,33 +50,12 @@
if(self.team_saved)
self.team = self.team_saved;
- if(self.classname == STR_ITEM_KH_KEY)
- {
- kh_Key_AssignTo(self, world);
- kh_Key_Remove(self);
- }
- else if(self.classname == "droppedweapon" // cleanup
+ if(self.classname == "droppedweapon" // cleanup
|| self.classname == "gib"
|| self.classname == "body")
{
remove(self);
}
- else if(self.items & (IT_KEY1 | IT_KEY2))
- {
- DropFlag(self, world, world);
- ReturnFlag(self);
- }
- else if(self.classname == "rune")
- {
- if(self.owner)
- if(self.owner.classname != "runematch_spawn_point")
- DropAllRunes(self.owner);
- rune_respawn();
- }
- else if(self.classname == "dom_controlpoint")
- {
- dom_controlpoint_setup();
- }
else if(self.flags & FL_ITEM) // reset items
{
if(self.state == 1)
@@ -95,35 +74,9 @@
}
else if(self.flags & FL_PROJECTILE) // remove any projectiles left
{
- stopsound(self, CHAN_PROJECTILE);
+ stopsound(self, CHAN_PAIN);
remove(self);
}
- else if(self.classname == "onslaught_generator")
- {
- onslaught_generator_reset();
- }
- else if(self.classname == "onslaught_controlpoint")
- {
- onslaught_controlpoint_reset();
- }
- // TODO properly reset Assault
- // General teambased game modes
- else if(self.classname == "func_breakable")
- {
- func_breakable_reset();
- }
- else if(self.classname == "func_assault_destructible")
- {
- func_breakable_reset();
- }
- else if(self.classname == "target_objective")
- {
- assault_objective_reset();
- }
- else if(self.classname == "target_assault_roundend")
- {
- target_assault_roundend_reset();
- }
}
// Waypoints and assault start come LAST
@@ -132,7 +85,7 @@
{
if(self.classname == "sprite_waypoint")
{
- if(self.health | g_keyhunt)
+ if(self.health || g_keyhunt)
WaypointSprite_Kill(self);
}
else if(self.classname == "target_assault_roundstart")
Modified: trunk/data/qcsrc/server/assault.qc
===================================================================
--- trunk/data/qcsrc/server/assault.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/assault.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -54,6 +54,7 @@
self.classname = "target_objective";
self.use = assault_objective_use;
assault_objective_reset();
+ self.reset = assault_objective_reset;
}
@@ -212,6 +213,7 @@
self.classname = "target_assault_roundend";
self.use = target_assault_roundend_use;
self.cnt = 0; // first round
+ self.reset = target_assault_roundend_reset;
}
void assault_roundstart_use() {
Modified: trunk/data/qcsrc/server/ctf.qc
===================================================================
--- trunk/data/qcsrc/server/ctf.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/ctf.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -639,9 +639,13 @@
spawnfunc_info_player_deathmatch();
};
+void item_flag_reset()
+{
+ DropFlag(self, world, world);
+ ReturnFlag(self);
+}
-
/*QUAKED spawnfunc_item_flag_team1 (0 0.5 0.8) (-48 -48 -37) (48 48 37)
CTF flag for team one (Red).
Multiple are allowed.
@@ -737,6 +741,8 @@
WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_FLAG, '1 0 0');
precache_model("models/onslaught/generator_shield.md3");
+
+ self.reset = item_flag_reset;
};
/*QUAKED spawnfunc_item_flag_team2 (0 0.5 0.8) (-48 -48 -24) (48 48 64)
@@ -833,6 +839,8 @@
WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_FLAG, '0 0 1');
precache_model("models/onslaught/generator_shield.md3");
+
+ self.reset = item_flag_reset;
};
Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/defs.qh 2009-01-22 12:45:41 UTC (rev 5633)
@@ -305,8 +305,6 @@
.vector death_origin;
.vector killer_origin;
-.float isdecor;
-
float default_player_alpha;
float default_weapon_alpha;
Modified: trunk/data/qcsrc/server/domination.qc
===================================================================
--- trunk/data/qcsrc/server/domination.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/domination.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -490,6 +490,7 @@
}
self.think = dom_controlpoint_setup;
self.nextthink = time + 0.1;
+ self.reset = dom_controlpoint_setup;
if(!self.scale)
self.scale = 0.6;
Modified: trunk/data/qcsrc/server/func_breakable.qc
===================================================================
--- trunk/data/qcsrc/server/func_breakable.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/func_breakable.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -159,6 +159,7 @@
void func_breakable_reset()
{
+ self.team = self.team_saved;
func_breakable_look_restore();
if(self.spawnflags & 1)
func_breakable_behave_destroyed();
@@ -205,5 +206,6 @@
self.team_saved = self.team;
+ self.reset = func_breakable_reset;
func_breakable_reset();
}
Modified: trunk/data/qcsrc/server/keyhunt.qc
===================================================================
--- trunk/data/qcsrc/server/keyhunt.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/keyhunt.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -367,6 +367,12 @@
self.team = attacker.team;
}
+void key_reset()
+{
+ kh_Key_AssignTo(self, world);
+ kh_Key_Remove(self);
+}
+
void kh_Key_Spawn(entity initial_owner, float angle) // runs every time a new flag is created, ie after all the keys have been collected
{
entity key;
@@ -386,6 +392,7 @@
key.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_PLAYERCLIP;
setsize(key, KH_KEY_MIN, KH_KEY_MAX);
key.colormod = TeamColor(initial_owner.team) * KH_KEY_BRIGHTNESS;
+ key.reset = key_reset;
switch(initial_owner.team)
{
Modified: trunk/data/qcsrc/server/mode_onslaught.qc
===================================================================
--- trunk/data/qcsrc/server/mode_onslaught.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/mode_onslaught.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -560,6 +560,20 @@
}
}
+void onslaught_generator_reset()
+{
+ self.team = self.team_saved;
+ self.lasthealth = self.max_health = self.health = cvar("g_onslaught_gen_health");
+ self.takedamage = DAMAGE_AIM;
+ self.bot_attack = TRUE;
+ self.iscaptured = TRUE;
+ self.islinked = TRUE;
+ self.isshielded = TRUE;
+ self.enemy.solid = SOLID_NOT;
+ self.think = onslaught_generator_delayed;
+ self.nextthink = time + 0.2;
+}
+
/*QUAKED spawnfunc_onslaught_generator (0 .5 .8) (-32 -32 -24) (32 32 64)
Base generator.
@@ -618,22 +632,10 @@
WaypointSprite_UpdateRule(self.sprite, COLOR_TEAM2, SPRITERULE_TEAMPLAY);
onslaught_updatelinks();
+
+ self.reset = onslaught_generator_reset;
};
-void onslaught_generator_reset()
-{
- self.team = self.team_saved;
- self.lasthealth = self.max_health = self.health = cvar("g_onslaught_gen_health");
- self.takedamage = DAMAGE_AIM;
- self.bot_attack = TRUE;
- self.iscaptured = TRUE;
- self.islinked = TRUE;
- self.isshielded = TRUE;
- self.enemy.solid = SOLID_NOT;
- self.think = onslaught_generator_delayed;
- self.nextthink = time + 0.2;
-}
-
.float waslinked;
void onslaught_controlpoint_icon_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
{
@@ -797,6 +799,27 @@
self.colormap = e.colormap;
};
+void onslaught_controlpoint_reset()
+{
+ if(self.goalentity && self.goalentity != world)
+ remove(self.goalentity);
+ self.goalentity = world;
+ self.team = 0;
+ self.colormap = 1024;
+ self.iscaptured = FALSE;
+ self.islinked = FALSE;
+ self.isshielded = TRUE;
+ self.enemy.solid = SOLID_NOT;
+ self.enemy.colormap = self.colormap;
+ self.think = self.enemy.think = SUB_Null;
+ self.nextthink = 0; // don't like SUB_Null :P
+
+ onslaught_updatelinks();
+
+ activator = self;
+ SUB_UseTargets(); // to reset the structures, playerspawns etc.
+}
+
/*QUAKED spawnfunc_onslaught_controlpoint (0 .5 .8) (-32 -32 0) (32 32 128)
Control point. Be sure to give this enough clearance so that the shootable part has room to exist
@@ -851,29 +874,10 @@
WaypointSprite_UpdateRule(self.sprite, COLOR_TEAM2, SPRITERULE_TEAMPLAY);
onslaught_updatelinks();
+
+ self.reset = onslaught_controlpoint_reset;
};
-void onslaught_controlpoint_reset()
-{
- if(self.goalentity && self.goalentity != world)
- remove(self.goalentity);
- self.goalentity = world;
- self.team = 0;
- self.colormap = 1024;
- self.iscaptured = FALSE;
- self.islinked = FALSE;
- self.isshielded = TRUE;
- self.enemy.solid = SOLID_NOT;
- self.enemy.colormap = self.colormap;
- self.think = self.enemy.think = SUB_Null;
- self.nextthink = 0; // don't like SUB_Null :P
-
- onslaught_updatelinks();
-
- activator = self;
- SUB_UseTargets(); // to reset the structures, playerspawns etc.
-}
-
float onslaught_link_send(entity to, float sendflags)
{
WriteByte(MSG_ENTITY, ENT_CLIENT_RADARLINK);
Modified: trunk/data/qcsrc/server/runematch.qc
===================================================================
--- trunk/data/qcsrc/server/runematch.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/runematch.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -446,6 +446,14 @@
}
}
+void rune_reset()
+{
+ if(self.owner)
+ if(self.owner.classname != "runematch_spawn_point")
+ DropAllRunes(self.owner);
+ rune_respawn();
+}
+
void spawn_runes()
{
float r, num, max_num, rn, cs, numrunes, runes_left, curses_left, tries, prevent_same;
@@ -581,6 +589,7 @@
e.movetype = MOVETYPE_TOSS;
e.solid = SOLID_TRIGGER;
e.flags = FL_ITEM;
+ e.reset = rune_reset;
setmodel(e, "models/runematch/rune.mdl"); // precision set below
setorigin(e, spot.origin);
setsize(e, '0 0 -35', '0 0 0');
Modified: trunk/data/qcsrc/server/t_teleporters.qc
===================================================================
--- trunk/data/qcsrc/server/t_teleporters.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/t_teleporters.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -38,7 +38,6 @@
.entity pusher;
void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angles, vector to_velocity, vector telefragmin, vector telefragmax)
{
- entity head;
entity oldself;
entity telefragger;
vector from;
Modified: trunk/data/qcsrc/server/w_electro.qc
===================================================================
--- trunk/data/qcsrc/server/w_electro.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/w_electro.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -1,8 +1,6 @@
void W_Plasma_Explode (void)
{
- vector org2;
-
if(other.takedamage == DAMAGE_AIM)
if(other.classname == "player")
if(IsDifferentTeam(self.owner, other))
Modified: trunk/data/qcsrc/server/w_hlac.qc
===================================================================
--- trunk/data/qcsrc/server/w_hlac.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/w_hlac.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -55,7 +55,7 @@
missile.movetype = MOVETYPE_FLY;
missile.solid = SOLID_BBOX;
- setmodel (missile, "models/hlac_bullet.md3"); // precision set below
+ setmodel (missile, "null"); // precision set below
setsize (missile, '0 0 0', '0 0 0');
setorigin (missile, w_shotorg);
@@ -100,7 +100,7 @@
missile.movetype = MOVETYPE_FLY;
missile.solid = SOLID_BBOX;
- setmodel (missile, "models/hlac_bullet.md3"); // precision set below
+ setmodel (missile, "null"); // precision set below
setsize (missile, '0 0 0', '0 0 0');
setorigin (missile, w_shotorg);
Modified: trunk/data/qcsrc/server/w_laser.qc
===================================================================
--- trunk/data/qcsrc/server/w_laser.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/w_laser.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -2,15 +2,8 @@
void W_Laser_Touch (void)
{
- vector dir;
- vector org2;
- vector normal;
-
PROJECTILE_TOUCH;
- normal = trace_plane_normal;
- dir = normalize (self.owner.origin - self.origin);
-
self.event_damage = SUB_Null;
if (self.dmg)
RadiusDamage (self, self.owner, cvar("g_balance_laser_secondary_damage"), cvar("g_balance_laser_secondary_edgedamage"), cvar("g_balance_laser_secondary_radius"), world, cvar("g_balance_laser_secondary_force"), self.projectiledeathtype, other);
Modified: trunk/data/qcsrc/server/w_seeker.qc
===================================================================
--- trunk/data/qcsrc/server/w_seeker.qc 2009-01-22 12:34:10 UTC (rev 5632)
+++ trunk/data/qcsrc/server/w_seeker.qc 2009-01-22 12:45:41 UTC (rev 5633)
@@ -257,9 +257,6 @@
void Seeker_Tag_Explode ()
{
- vector org2;
- float b;
-
//if(other==self.owner)
// return;
Damage_DamageInfo(self.origin, 0, 0, 0, self.velocity, WEP_SEEKER | HITTYPE_BOUNCE);
More information about the nexuiz-commits
mailing list