r4288 - in trunk/data: . qcsrc/client qcsrc/common qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Tue Sep 2 09:34:11 EDT 2008
Author: div0
Date: 2008-09-02 09:34:10 -0400 (Tue, 02 Sep 2008)
New Revision: 4288
Modified:
trunk/data/defaultNexuiz.cfg
trunk/data/qcsrc/client/csqc_constants.qc
trunk/data/qcsrc/client/sbar.qc
trunk/data/qcsrc/common/constants.qh
trunk/data/qcsrc/server/cl_client.qc
trunk/data/qcsrc/server/cl_impulse.qc
trunk/data/qcsrc/server/cl_player.qc
trunk/data/qcsrc/server/cl_weapons.qc
trunk/data/qcsrc/server/cl_weaponsystem.qc
trunk/data/qcsrc/server/clientcommands.qc
trunk/data/qcsrc/server/constants.qh
trunk/data/qcsrc/server/defs.qh
trunk/data/qcsrc/server/g_damage.qc
trunk/data/qcsrc/server/g_world.qc
trunk/data/qcsrc/server/miscfunctions.qc
trunk/data/qcsrc/server/t_items.qc
trunk/data/qcsrc/server/w_common.qc
trunk/data/qcsrc/server/w_crylink.qc
trunk/data/qcsrc/server/w_electro.qc
trunk/data/qcsrc/server/w_grenadelauncher.qc
trunk/data/qcsrc/server/w_hagar.qc
trunk/data/qcsrc/server/w_laser.qc
trunk/data/qcsrc/server/w_nex.qc
trunk/data/qcsrc/server/w_rocketlauncher.qc
trunk/data/qcsrc/server/w_shotgun.qc
trunk/data/qcsrc/server/w_uzi.qc
Log:
huge patch that breaks everything: add a new stat "weapons", network weapon bits using that, allowing for up to 24 weapons (although their item entities are yet to be defined, maybe with an automatic replacement system)
Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/defaultNexuiz.cfg 2008-09-02 13:34:10 UTC (rev 4288)
@@ -1077,3 +1077,18 @@
set g_jump_grunt 0 // Do you make a grunting noise every time you jump? Is it the same grunting noise every time?
alias allready "sv_cmd allready"
+
+seta cl_weaponpriority "9 8 7 6 5 4 3 2 1"
+// impulse 200, 210, 220:
+seta cl_weaponpriority0 "9 8 4" // explosives (RL Hagar Mortar)
+// impulse 201, 211, 221:
+seta cl_weaponpriority1 "7 6 5 1" // energy (Nex Crylink Electro Laser)
+seta cl_weaponpriority2 "7 3" // hitscan exact (Nex MG)
+seta cl_weaponpriority3 "7 3 2" // hitscan all (Nex MG Shotgun)
+seta cl_weaponpriority4 "8 6 5 2" // spam (Hagar Crylink Electro Shotgun)
+seta cl_weaponpriority5 ""
+seta cl_weaponpriority6 ""
+seta cl_weaponpriority7 ""
+seta cl_weaponpriority8 ""
+// impulse 209, 219, 229:
+seta cl_weaponpriority9 ""
Modified: trunk/data/qcsrc/client/csqc_constants.qc
===================================================================
--- trunk/data/qcsrc/client/csqc_constants.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/client/csqc_constants.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -164,24 +164,6 @@
const float BUTTON_16 = 262144;
-const float NEX_IT_UZI = 1;
-const float NEX_IT_SHOTGUN = 2;
-const float NEX_IT_GRENADE_LAUNCHER = 4;
-const float NEX_IT_ELECTRO = 8;
-const float NEX_IT_CRYLINK = 16;
-const float NEX_IT_NEX = 32;
-const float NEX_IT_HAGAR = 64;
-const float NEX_IT_ROCKET_LAUNCHER = 128;
-const float NEX_IT_SHELLS = 256;
-const float NEX_IT_BULLETS = 512;
-const float NEX_IT_ROCKETS = 1024;
-const float NEX_IT_CELLS = 2048;
-const float NEX_IT_LASER = 4094;
-const float NEX_IT_STRENGTH = 8192;
-const float NEX_IT_INVINCIBLE = 16384;
-const float NEX_IT_SPEED = 32768;
-const float NEX_IT_SLOWMO = 65536;
-
const float DRAWFLAG_NORMAL = 0;
const float DRAWFLAG_ADDITIVE = 1;
const float DRAWFLAG_MODULATE = 2;
Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/client/sbar.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -1296,7 +1296,7 @@
{
float i;
float x, fade;
- float stat_items;
+ float stat_items, stat_weapons;
sbar_fontsize = Sbar_GetFontsize();
@@ -1402,6 +1402,7 @@
if (sb_lines && sbar_hudselector == 1)
{
stat_items = getstati(STAT_ITEMS);
+ stat_weapons = getstati(STAT_WEAPONS);
sbar_x = (vid_conwidth - 320.0)*0.5;
sbar_y = vid_conheight - 24.0 - 16.0;
@@ -1411,19 +1412,14 @@
fade = bound(0.7, fade, 1);
x = 1.0;
- for(i = 0; i < 8; ++i)
+ for(i = WEP_FIRST; i <= WEP_LAST; ++i)
{
- if(stat_items & x)
+ if(stat_weapons & x)
{
- Sbar_DrawWeapon(i+1, fade, (i + 2 == activeweapon));
+ Sbar_DrawWeapon(i-1, fade, (i == activeweapon));
}
x *= 2;
}
- x *= 2*2*2*2;
- if(stat_items & x)
- {
- Sbar_DrawWeapon(0, fade, (activeweapon == 1));
- }
// armor
x = getstati(STAT_ARMOR);
@@ -1465,15 +1461,15 @@
// ammo
x = getstati(STAT_AMMO);
- if ((stat_items & (NEX_IT_SHELLS | NEX_IT_BULLETS | NEX_IT_ROCKETS | NEX_IT_CELLS)) || x != 0)
+ if ((stat_items & IT_AMMO) || x != 0)
{
- if (stat_items & NEX_IT_SHELLS)
+ if (stat_items & IT_SHELLS)
drawpic(sbar + '296 0 0', "gfx/sb_shells", '24 24 0', '1 1 1', sbar_alpha_fg, 0);
- else if (stat_items & NEX_IT_BULLETS)
+ else if (stat_items & IT_NAILS)
drawpic(sbar + '296 0 0', "gfx/sb_bullets", '24 24 0', '1 1 1', sbar_alpha_fg, 0);
- else if (stat_items & NEX_IT_ROCKETS)
+ else if (stat_items & IT_ROCKETS)
drawpic(sbar + '296 0 0', "gfx/sb_rocket", '24 24 0', '1 1 1', sbar_alpha_fg, 0);
- else if (stat_items & NEX_IT_CELLS)
+ else if (stat_items & IT_CELLS)
drawpic(sbar + '296 0 0', "gfx/sb_cells", '24 24 0', '1 1 1', sbar_alpha_fg, 0);
if(x > 10)
Sbar_DrawXNum('224 0 0', x, 3, 24, '0.6 0.7 0.8', 1, 0);
@@ -1492,6 +1488,7 @@
{
stat_items = getstati(STAT_ITEMS);
+ stat_weapons = getstati(STAT_ITEMS);
sbar_x = (vid_conwidth - 640.0)*0.5;
sbar_y = vid_conheight - 47;
@@ -1500,19 +1497,14 @@
fade = 3 - 2 * (time - weapontime);
x = 1.0;
- for(i = 0; i < 8; ++i)
+ for(i = WEP_FIRST; i <= WEP_LAST; ++i)
{
- if(stat_items & x)
+ if(stat_weapons & x)
{
- Sbar_DrawWeapon(i+1, fade, (i + 2 == activeweapon));
+ Sbar_DrawWeapon(i-1, fade, (i == activeweapon));
}
x *= 2;
}
- x *= 2*2*2*2;
- if(stat_items & x)
- {
- Sbar_DrawWeapon(0, fade, (activeweapon == 1));
- }
if (sb_lines > 24)
drawpic(sbar, "gfx/sbar", '0 0 0', '1 1 1', sbar_alpha_fg, 0);
@@ -1538,13 +1530,13 @@
if(activeweapon != 12)
{
// (519-3*24) = 447
- if (stat_items & NEX_IT_SHELLS)
+ if (stat_items & IT_SHELLS)
drawpic(sbar + '519 0 0', "gfx/sb_shells", '0 0 0', '1 1 1', sbar_alpha_fg, 0);
- else if (stat_items & NEX_IT_BULLETS)
+ else if (stat_items & IT_NAILS)
drawpic(sbar + '519 0 0', "gfx/sb_bullets", '0 0 0', '1 1 1', sbar_alpha_fg, 0);
- else if (stat_items & NEX_IT_ROCKETS)
+ else if (stat_items & IT_ROCKETS)
drawpic(sbar + '519 0 0', "gfx/sb_rocket", '0 0 0', '1 1 1', sbar_alpha_fg, 0);
- else if (stat_items & NEX_IT_CELLS)
+ else if (stat_items & IT_CELLS)
drawpic(sbar + '519 0 0', "gfx/sb_cells", '0 0 0', '1 1 1', sbar_alpha_fg, 0);
if(x > 10)
Sbar_DrawXNum('447 12 0', x, 3, 24, '0.6 0.7 0.8', 1, 0);
Modified: trunk/data/qcsrc/common/constants.qh
===================================================================
--- trunk/data/qcsrc/common/constants.qh 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/common/constants.qh 2008-09-02 13:34:10 UTC (rev 4288)
@@ -14,7 +14,8 @@
// Revision 13: pointparticles
// Revision 14: laser
// Revision 15: zoom
-#define CSQC_REVISION 15
+// Revision 16: multi-weapons
+#define CSQC_REVISION 16
// probably put these in common/
// so server/ and client/ can be synced better
@@ -204,6 +205,7 @@
const float STAT_KH_KEYS = 32;
const float STAT_CTF_STATE = 33;
const float STAT_SYS_TICRATE = 34;
+const float STAT_WEAPONS = 35;
const float CTF_STATE_ATTACK = 1;
const float CTF_STATE_DEFEND = 2;
const float CTF_STATE_COMMANDER = 3;
@@ -270,3 +272,42 @@
#define SP_SUICIDES 2
#define SP_SCORE 3
// game mode specific indices are not in common/, but in server/scores_rules.qc!
+
+// Weapon indexes
+float WEP_FIRST = 1;
+float WEP_LASER = 1; float WEPBIT_LASER = 1; // always: 2^(w-1)
+float WEP_SHOTGUN = 2; float WEPBIT_SHOTGUN = 2;
+float WEP_UZI = 3; float WEPBIT_UZI = 4;
+float WEP_GRENADE_LAUNCHER = 4; float WEPBIT_GRENADE_LAUNCHER = 8;
+float WEP_ELECTRO = 5; float WEPBIT_ELECTRO = 16;
+float WEP_CRYLINK = 6; float WEPBIT_CRYLINK = 32;
+float WEP_NEX = 7; float WEPBIT_NEX = 64;
+float WEP_HAGAR = 8; float WEPBIT_HAGAR = 128;
+float WEP_ROCKET_LAUNCHER = 9; float WEPBIT_ROCKET_LAUNCHER = 256;
+float WEP_LAST = 9; float WEPBIT_ALL = 511;
+float WEP_COUNT = 10;
+
+float IT_SHELLS = 256;
+float IT_NAILS = 512;
+float IT_ROCKETS = 1024;
+float IT_CELLS = 2048;
+float IT_AMMO = 3840;
+float IT_STRENGTH = 8192;
+float IT_INVINCIBLE = 16384;
+float IT_HEALTH = 32768;
+// union:
+ // for items:
+ float IT_KEY1 = 131072;
+ float IT_KEY2 = 262144;
+ // for players:
+ float IT_RED_FLAG_TAKEN = 32768;
+ float IT_RED_FLAG_LOST = 65536;
+ float IT_RED_FLAG_CARRING = 98304;
+ float IT_BLUE_FLAG_TAKEN = 131072;
+ float IT_BLUE_FLAG_LOST = 262144;
+ float IT_BLUE_FLAG_CARRING = 393216;
+// end
+float IT_5HP = 524288;
+float IT_25HP = 1048576;
+float IT_ARMOR_SHARD = 2097152;
+float IT_ARMOR = 4194304;
Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/cl_client.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -461,6 +461,7 @@
setsize (self, '0 0 0', '0 0 0');
self.oldorigin = self.origin;
self.items = 0;
+ self.weapons = 0;
self.model = "";
self.modelindex = 0;
self.weapon = 0;
@@ -630,7 +631,8 @@
self.ammo_cells = start_ammo_cells;
self.health = start_health;
self.armorvalue = start_armorvalue;
- self.items = start_items;
+ self.items = 0;
+ self.weapons = start_weapons;
self.switchweapon = start_switchweapon;
self.cnt = start_switchweapon;
self.weapon = 0;
@@ -1123,15 +1125,6 @@
// get version info from player
stuffcmd(self, "cmd clientversion $gameversion\n");
- // send all weapon info strings
- stuffcmd(self, "register_bestweapon clear\n"); // clear the Quake stuff
- wep = WEP_FIRST;
- while (wep <= WEP_LAST)
- {
- weapon_action(wep, WR_REGISTER);
- wep = wep + 1;
- }
-
// get other cvars from player
GetCvars(0);
@@ -1683,6 +1676,7 @@
self.health = spectatee.health;
self.impulse = 0;
self.items = spectatee.items;
+ self.weapons = spectatee.weapons;
self.punchangle = spectatee.punchangle;
self.view_ofs = spectatee.view_ofs;
self.v_angle = spectatee.v_angle;
Modified: trunk/data/qcsrc/server/cl_impulse.qc
===================================================================
--- trunk/data/qcsrc/server/cl_impulse.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/cl_impulse.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -264,7 +264,7 @@
switch(imp)
{
case 99:
- self.items |= (IT_LASER | IT_UZI | IT_SHOTGUN | IT_GRENADE_LAUNCHER | IT_ELECTRO | IT_CRYLINK | IT_NEX | IT_HAGAR | IT_ROCKET_LAUNCHER);
+ self.weapons |= WEPBIT_ALL;
self.ammo_shells = g_pickup_shells_max;
self.ammo_nails = g_pickup_nails_max;
self.ammo_rockets = g_pickup_rockets_max;
@@ -317,7 +317,7 @@
self.ammo_shells = 999;
self.health = start_health;
self.armorvalue = start_armorvalue;
- self.items |= itemsInMap & (IT_LASER | IT_SHOTGUN | IT_UZI | IT_GRENADE_LAUNCHER | IT_ELECTRO | IT_CRYLINK | IT_NEX | IT_HAGAR | IT_ROCKET_LAUNCHER);
+ self.weapons |= weaponsInMap;
self.pauserotarmor_finished = time + cvar("g_balance_pause_armor_rot_spawn");
self.pauserothealth_finished = time + cvar("g_balance_pause_health_rot_spawn");
self.pauseregen_finished = time + cvar("g_balance_pause_health_regen_spawn");
Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/cl_player.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -413,7 +413,7 @@
else
player_setanim(self.anim_pain2, FALSE, TRUE, TRUE);
- if(deathtype != IT_LASER || attacker != self || self.health < 2 * cvar("g_balance_laser_primary_damage") * cvar("g_balance_selfdamagepercent") + 1)
+ if(deathtype != WEP_LASER || attacker != self || self.health < 2 * cvar("g_balance_laser_primary_damage") * cvar("g_balance_selfdamagepercent") + 1)
// exclude pain sounds for laserjumps as long as you aren't REALLY low on health and would die of the next two
{
if(self.health > 75) // TODO make a "gentle" version?
Modified: trunk/data/qcsrc/server/cl_weapons.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weapons.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/cl_weapons.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -165,19 +165,19 @@
return "@!#%'n Tuba";
}
-float W_ItemCode(float wpn)
+float W_WeaponBit(float wpn)
{
switch(wpn)
{
- case WEP_LASER: return IT_LASER;
- case WEP_SHOTGUN: return IT_SHOTGUN;
- case WEP_UZI: return IT_UZI;
- case WEP_GRENADE_LAUNCHER: return IT_GRENADE_LAUNCHER;
- case WEP_ELECTRO: return IT_ELECTRO;
- case WEP_CRYLINK: return IT_CRYLINK;
- case WEP_NEX: return IT_NEX;
- case WEP_HAGAR: return IT_HAGAR;
- case WEP_ROCKET_LAUNCHER: return IT_ROCKET_LAUNCHER;
+ case WEP_LASER: return WEPBIT_LASER;
+ case WEP_SHOTGUN: return WEPBIT_SHOTGUN;
+ case WEP_UZI: return WEPBIT_UZI;
+ case WEP_GRENADE_LAUNCHER: return WEPBIT_GRENADE_LAUNCHER;
+ case WEP_ELECTRO: return WEPBIT_ELECTRO;
+ case WEP_CRYLINK: return WEPBIT_CRYLINK;
+ case WEP_NEX: return WEPBIT_NEX;
+ case WEP_HAGAR: return WEPBIT_HAGAR;
+ case WEP_ROCKET_LAUNCHER: return WEPBIT_ROCKET_LAUNCHER;
default: return 0;
}
}
@@ -210,7 +210,7 @@
// toss current weapon
void W_ThrowWeapon(vector velo, vector delta, float doreduce)
{
- local float w, ammo;
+ local float w, ammo, wb;
local entity wep, e;
local .float ammofield;
@@ -227,7 +227,7 @@
return;
if (g_nixnex)
return;
- if (!cvar("g_pickup_items"))
+ if (!cvar("g_pickup_weapons"))
return;
e = self;
@@ -241,13 +241,13 @@
SUB_SetFade(wep, time + 20, 1);
ammofield = Item_CounterField(W_AmmoItemCode(w));
- w = W_ItemCode(w);
- if(!(e.items & w))
+ wb = W_WeaponBit(w);
+ if(!(e.weapons & wb))
{
remove(wep);
goto leave;
}
- Item_SpawnByItemCode(w);
+ Item_SpawnByWeaponCode(w);
if(startitem_failed)
goto leave;
if(doreduce)
@@ -257,7 +257,7 @@
e.ammofield -= ammo;
}
- if(e.items & w)
+ if(e.weapons & wb)
if(e.health >= 1)
sprint(e, strcat("You dropped the ^2", wep.netname, " with ", ftos(wep.ammofield), " ammo", "\n"));
@@ -267,7 +267,7 @@
wep.think = thrown_wep_think;
wep.classname = "droppedweapon";
wep.flags = wep.flags | FL_TOSSED;
- e.items = e.items - (e.items & w);
+ e.weapons = e.weapons - (e.weapons & wb);
e.switchweapon = w_getbestweapon(e);
wep.colormap = e.colormap;
if (e.switchweapon != e.weapon)
@@ -451,10 +451,10 @@
self.nixnex_nextincr = time + cvar("g_balance_nixnex_incrtime");
}
- self.items = self.items - (self.items & (IT_LASER | IT_SHOTGUN | IT_UZI | IT_GRENADE_LAUNCHER | IT_ELECTRO | IT_CRYLINK | IT_NEX | IT_HAGAR | IT_ROCKET_LAUNCHER));
+ self.weapons = 0;
if(g_nixnex_with_laser)
- self.items = self.items | IT_LASER;
- self.items = self.items | W_ItemCode(nixnex_weapon);
+ self.weapons = self.weapons | WEPBIT_LASER;
+ self.weapons = self.weapons | W_WeaponBit(nixnex_weapon);
if(self.switchweapon != nixnex_weapon)
if(!client_hasweapon(self, self.switchweapon, TRUE, FALSE))
Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -324,7 +324,7 @@
float client_hasweapon(entity cl, float wpn, float andammo, float complain)
{
- local float itemcode, f;
+ local float weaponbit, f;
local entity oldself;
if (wpn < WEP_FIRST || wpn > WEP_LAST)
@@ -333,8 +333,8 @@
sprint(self, "Invalid weapon\n");
return FALSE;
}
- itemcode = W_ItemCode(wpn);
- if (cl.items & itemcode)
+ weaponbit = W_WeaponBit(wpn);
+ if (cl.weapons & weaponbit)
{
if (andammo)
{
@@ -356,7 +356,7 @@
{
// DRESK - 3/16/07
// Report Proper Weapon Status / Modified Weapon Ownership Message
- if(itemsInMap & itemcode)
+ if(weaponsInMap & weaponbit)
sprint(cl, strcat("You do not have the ^2", W_Name(wpn), "\n") );
else
sprint(cl, strcat("The ^2", W_Name(wpn), "^7 is ^1NOT AVAILABLE^7 in this map\n") );
@@ -576,28 +576,3 @@
missile.velocity = W_CalculateProjectileVelocity(missile.owner.velocity, missile.velocity);
}
-
-void weapon_register(float wepcode, float minammo)
-{
- string s;
- float itemcode;
- s = strcat("register_bestweapon ", ftos(wepcode), " "); // char for bestweapon
- s = strcat(s, ftos(wepcode), " "); // impulse
- s = strcat(s, ftos(W_ItemCode(wepcode)), " "); // item code
- s = strcat(s, ftos(wepcode), " "); // self.weapon code
-
- // ammo stat
- itemcode = W_AmmoItemCode(wepcode);
- if(itemcode == IT_SHELLS)
- s = strcat(s, "6 ");
- else if(itemcode == IT_NAILS)
- s = strcat(s, "7 ");
- else if(itemcode == IT_ROCKETS)
- s = strcat(s, "8 ");
- else // if(itemcode == IT_CELLS)
- s = strcat(s, "9 ");
-
- s = strcat(s, ftos(minammo), "\n");
- //dprint(s);
- stuffcmd(self, s);
-}
Modified: trunk/data/qcsrc/server/clientcommands.qc
===================================================================
--- trunk/data/qcsrc/server/clientcommands.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/clientcommands.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -401,7 +401,7 @@
if(g_tourney) {
tourneyInMatchStage = 1; //once the game is restarted the game is in match stage
//reset weapons and ammo, health and armor to default:
- start_items = IT_LASER | IT_SHOTGUN;
+ start_weapons = WEPBIT_LASER | WEPBIT_SHOTGUN;
start_switchweapon = WEP_SHOTGUN;
start_ammo_shells = cvar("g_start_ammo_shells");
start_ammo_nails = cvar("g_start_ammo_nails");
Modified: trunk/data/qcsrc/server/constants.qh
===================================================================
--- trunk/data/qcsrc/server/constants.qh 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/constants.qh 2008-09-02 13:34:10 UTC (rev 4288)
@@ -154,43 +154,6 @@
float DEATH_MIRRORDAMAGE = 10014;
float DEATH_TURRET = 10100;
-
-
-
-float IT_LASER = 4096;
-float IT_SHOTGUN = 1;
-float IT_UZI = 2;
-float IT_GRENADE_LAUNCHER = 4;
-float IT_ELECTRO = 8;
-float IT_CRYLINK = 16;
-float IT_NEX = 32;
-float IT_HAGAR = 64;
-float IT_ROCKET_LAUNCHER = 128;
-
-float IT_SHELLS = 256;
-float IT_NAILS = 512;
-float IT_ROCKETS = 1024;
-float IT_CELLS = 2048;
-
-float IT_STRENGTH = 8192;
-float IT_INVINCIBLE = 16384;
-float IT_HEALTH = 32768;
-
-float IT_KEY1 = 131072;
-float IT_KEY2 = 262144;
-
-float IT_RED_FLAG_TAKEN = 32768;
-float IT_RED_FLAG_LOST = 65536;
-float IT_RED_FLAG_CARRING = 98304;
-float IT_BLUE_FLAG_TAKEN = 131072;
-float IT_BLUE_FLAG_LOST = 262144;
-float IT_BLUE_FLAG_CARRING = 393216;
-
-float IT_5HP = 524288;
-float IT_25HP = 1048576;
-float IT_ARMOR_SHARD = 2097152;
-float IT_ARMOR = 4194304;
-
vector PL_VIEW_OFS = '0 0 35';
vector PL_MIN = '-16 -16 -24';
vector PL_MAX = '16 16 45';
Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/defs.qh 2008-09-02 13:34:10 UTC (rev 4288)
@@ -202,23 +202,7 @@
float WR_CHECKAMMO2 = 4; // checks ammo for weapon
float WR_AIM = 5; // runs bot aiming code for this weapon
float WR_PRECACHE = 6; // precaches models/sounds used by this weapon
-float WR_REGISTER = 7; // send data about the weapon to the client self (for ClientConnect)
-// Weapon indexes
-float WEP_LASER = 1; // float IT_LASER = 4096;
-float WEP_SHOTGUN = 2; // float IT_SHOTGUN = 1;
-float WEP_UZI = 3; // float IT_UZI = 2;
-float WEP_GRENADE_LAUNCHER = 4; // float IT_GRENADE_LAUNCHER = 4;
-float WEP_ELECTRO = 5; // float IT_ELECTRO = 8;
-float WEP_CRYLINK = 6; // float IT_CRYLINK = 16;
-float WEP_NEX = 7; // float IT_NEX = 32;
-float WEP_HAGAR = 8; // float IT_HAGAR = 64;
-float WEP_ROCKET_LAUNCHER = 9; // float IT_ROCKET_LAUNCHER = 128;
-// For weapon cycling commands
-float WEP_FIRST = 1;
-float WEP_LAST = 9;
-float WEP_COUNT = 10;
-
void(entity client, string s) centerprint_builtin = #73;
.vector dest1, dest2;
@@ -372,11 +356,10 @@
typedef .float floatfield;
floatfield Item_CounterField(float it);
-float Item_WeaponCode(float it);
-void Item_SpawnByItemCode(float it);
+void Item_SpawnByWeaponCode(float it);
float W_AmmoItemCode(float wpn);
-float W_ItemCode(float wpn);
+float W_WeaponBit(float wpn);
string W_Name(float weaponid);
void UpdateSelectedPlayer();
@@ -391,7 +374,7 @@
void FixIntermissionClient(entity e);
void FixClientCvars(entity e);
-float itemsInMap;
+float weaponsInMap;
void centerprint_atprio(entity e, float prio, string s);
void centerprint_expire(entity e, float prio);
@@ -494,3 +477,4 @@
string clientstuff;
.float stat_sys_ticrate;
.float phase;
+.float weapons;
Modified: trunk/data/qcsrc/server/g_damage.qc
===================================================================
--- trunk/data/qcsrc/server/g_damage.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/g_damage.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -105,7 +105,7 @@
// w = player.switchweapon;
if(w == 0)
w = player.cnt; // previous weapon!
- s = strcat(s, ftos(W_ItemCode(w)));
+ s = strcat(s, ftos(w));
if(time < player.strength_finished)
s = strcat(s, "S");
if(time < player.invincible_finished)
@@ -203,11 +203,11 @@
bprint ("^1",s,"^1 ended it all with a ",ftos(targ.killcount)," scoring spree\n");
} else {
- if (deathtype == IT_GRENADE_LAUNCHER)
+ if (deathtype == WEP_GRENADE_LAUNCHER)
bprint ("^1",s, "^1 detonated\n");
- else if (deathtype == IT_ELECTRO)
+ else if (deathtype == WEP_ELECTRO)
bprint ("^1",s, "^1 played with plasma\n");
- else if (deathtype == IT_ROCKET_LAUNCHER)
+ else if (deathtype == WEP_ROCKET_LAUNCHER)
bprint ("^1",s, "^1 exploded\n");
else if (deathtype == DEATH_KILL)
bprint ("^1",s, "^1 couldn't take it anymore\n");
@@ -283,23 +283,23 @@
if(sv_gentle) {
bprint ("^1",s, "^1 needs a restart thanks to ", a, "\n");
} else {
- if (deathtype == IT_LASER)
+ if (deathtype == WEP_LASER)
bprint ("^1",s, "^1 was blasted by ", a, "\n");
- else if (deathtype == IT_UZI)
+ else if (deathtype == WEP_UZI)
bprint ("^1",s, "^1 was riddled full of holes by ", a, "\n");
- else if (deathtype == IT_SHOTGUN)
+ else if (deathtype == WEP_SHOTGUN)
bprint ("^1",s, "^1 was gunned by ", a, "\n");
- else if (deathtype == IT_GRENADE_LAUNCHER)
+ else if (deathtype == WEP_GRENADE_LAUNCHER)
bprint ("^1", s, "^1 was blasted by ", a, "\n");
- else if (deathtype == IT_ELECTRO)
+ else if (deathtype == WEP_ELECTRO)
bprint ("^1",s, "^1 was blasted by ", a, "\n");
- else if (deathtype == IT_CRYLINK)
+ else if (deathtype == WEP_CRYLINK)
bprint ("^1",s, "^1 was blasted by ", a, "\n");
- else if (deathtype == IT_NEX)
+ else if (deathtype == WEP_NEX)
bprint ("^1",s, "^1 has been vaporized by ", a, "\n");
- else if (deathtype == IT_HAGAR)
+ else if (deathtype == WEP_HAGAR)
bprint ("^1",s, "^1 was pummeled by ", a, "\n");
- else if (deathtype == IT_ROCKET_LAUNCHER)
+ else if (deathtype == WEP_ROCKET_LAUNCHER)
bprint ("^1",s, "^1 was blasted by ", a, "\n");
else if (deathtype == DEATH_TELEFRAG)
bprint ("^1",s, "^1 was telefragged by ", a, "\n");
@@ -572,20 +572,20 @@
(deathtype == DEATH_SLIME) ||
(deathtype == DEATH_LAVA))
return;
- if (targ.armorvalue && (deathtype == IT_NEX) && damage)
+ if (targ.armorvalue && (deathtype == WEP_NEX) && damage)
{
targ.armorvalue -= 1;
centerprint(targ, strcat("^3Remaining extra lives: ",ftos(targ.armorvalue),"\n"));
damage = 0;
targ.hitsound += 1;
}
- else if (deathtype == IT_NEX && targ.items & IT_STRENGTH)
+ else if (deathtype == WEP_NEX && targ.items & IT_STRENGTH)
{
if(clienttype(attacker) == CLIENTTYPE_REAL)
if(IsDifferentTeam(targ, attacker))
yoda = 1;
}
- if (deathtype == IT_LASER)
+ if (deathtype == WEP_LASER)
{
damage = 0;
if (targ != attacker)
Modified: trunk/data/qcsrc/server/g_world.qc
===================================================================
--- trunk/data/qcsrc/server/g_world.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/g_world.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -353,6 +353,7 @@
}
addstat(STAT_SYS_TICRATE, AS_FLOAT, stat_sys_ticrate);
+ addstat(STAT_WEAPONS, AS_INT, weapons);
next_pingtime = time + 5;
world_initialized = 1;
Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/miscfunctions.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -697,7 +697,7 @@
float g_pickup_healthmega;
float g_pickup_healthmega_max;
-float start_items;
+float start_weapons;
float start_switchweapon;
float start_ammo_shells;
float start_ammo_nails;
@@ -758,7 +758,7 @@
g_pickup_healthmega_max = cvar("g_pickup_healthmega_max");
// initialize starting values for players
- start_items = 0;
+ start_weapons = 0;
start_switchweapon = 0;
start_ammo_shells = 0;
start_ammo_nails = 0;
@@ -769,28 +769,28 @@
if(g_instagib)
{
- start_items = IT_NEX;
+ start_weapons = WEPBIT_NEX;
start_switchweapon = WEP_NEX;
weapon_action(start_switchweapon, WR_PRECACHE);
start_ammo_cells = 999;
}
else if(g_rocketarena)
{
- start_items = IT_ROCKET_LAUNCHER;
+ start_weapons = WEPBIT_ROCKET_LAUNCHER;
start_switchweapon = WEP_ROCKET_LAUNCHER;
weapon_action(start_switchweapon, WR_PRECACHE);
start_ammo_rockets = 999;
}
else if(g_nixnex)
{
- start_items = 0;
+ start_weapons = 0;
// will be done later
}
else if(g_minstagib)
{
start_health = 100;
start_armorvalue = 0;
- start_items = IT_NEX;
+ start_weapons = WEPBIT_NEX;
start_switchweapon = WEP_NEX;
weapon_action(start_switchweapon, WR_PRECACHE);
start_ammo_cells = cvar("g_minstagib_ammo_start");
@@ -829,55 +829,55 @@
if (cvar("g_start_weapon_laser") || g_lms)
{
- start_items = start_items | IT_LASER;
+ start_weapons = start_weapons | WEPBIT_LASER;
start_switchweapon = WEP_LASER;
weapon_action(start_switchweapon, WR_PRECACHE);
}
if (cvar("g_start_weapon_shotgun") || g_lms)
{
- start_items = start_items | IT_SHOTGUN;
+ start_weapons = start_weapons | WEPBIT_SHOTGUN;
start_switchweapon = WEP_SHOTGUN;
weapon_action(start_switchweapon, WR_PRECACHE);
}
if (cvar("g_start_weapon_uzi") || g_lms || g_tourney)
{
- start_items = start_items | IT_UZI;
+ start_weapons = start_weapons | WEPBIT_UZI;
start_switchweapon = WEP_UZI;
weapon_action(start_switchweapon, WR_PRECACHE);
}
if (cvar("g_start_weapon_grenadelauncher") || g_lms || g_tourney)
{
- start_items = start_items | IT_GRENADE_LAUNCHER;
+ start_weapons = start_weapons | WEPBIT_GRENADE_LAUNCHER;
start_switchweapon = WEP_GRENADE_LAUNCHER;
weapon_action(start_switchweapon, WR_PRECACHE);
}
if (cvar("g_start_weapon_electro") || g_lms || g_tourney)
{
- start_items = start_items | IT_ELECTRO;
+ start_weapons = start_weapons | WEPBIT_ELECTRO;
start_switchweapon = WEP_ELECTRO;
weapon_action(start_switchweapon, WR_PRECACHE);
}
if (cvar("g_start_weapon_crylink") || g_lms || g_tourney)
{
- start_items = start_items | IT_CRYLINK;
+ start_weapons = start_weapons | WEPBIT_CRYLINK;
start_switchweapon = WEP_CRYLINK;
weapon_action(start_switchweapon, WR_PRECACHE);
}
if (cvar("g_start_weapon_nex") || g_lms || g_tourney)
{
- start_items = start_items | IT_NEX;
+ start_weapons = start_weapons | WEPBIT_NEX;
start_switchweapon = WEP_NEX;
weapon_action(start_switchweapon, WR_PRECACHE);
}
if (cvar("g_start_weapon_hagar") || g_lms || g_tourney)
{
- start_items = start_items | IT_HAGAR;
+ start_weapons = start_weapons | WEPBIT_HAGAR;
start_switchweapon = WEP_HAGAR;
weapon_action(start_switchweapon, WR_PRECACHE);
}
if (cvar("g_start_weapon_rocketlauncher") || g_lms || g_tourney)
{
- start_items = start_items | IT_ROCKET_LAUNCHER;
+ start_weapons = start_weapons | WEPBIT_ROCKET_LAUNCHER;
start_switchweapon = WEP_ROCKET_LAUNCHER;
weapon_action(start_switchweapon, WR_PRECACHE);
}
Modified: trunk/data/qcsrc/server/t_items.qc
===================================================================
--- trunk/data/qcsrc/server/t_items.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/t_items.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -54,8 +54,8 @@
// else if(self.items == IT_CELLS)
// play2(other, "announce/robotic/ammo.ogg");
- if (self.items & IT_NEX)
- W_GiveWeapon (other, IT_NEX, "Nex");
+ if (self.weapons & WEPBIT_NEX)
+ W_GiveWeapon (other, WEP_NEX, "Nex");
if (self.ammo_cells)
other.ammo_cells = min (other.ammo_cells + cvar("g_minstagib_ammo_drop"), 999);
other.health = 100;
@@ -93,9 +93,9 @@
{
if (cvar("deathmatch") == 2 || cvar("g_weapon_stay"))
{
- if (self.flags & FL_WEAPON && other.items & self.items && self.classname != "droppedweapon")
+ if (self.flags & FL_WEAPON && other.weapons & self.weapons && self.classname != "droppedweapon")
return;
- if (other.items & self.items && self.flags & FL_TOSSED) // don't let players stack ammo by tossing weapons
+ if (other.weapons & self.weapons && self.flags & FL_TOSSED) // don't let players stack ammo by tossing weapons
return;
}
@@ -132,17 +132,18 @@
}
if (self.flags & FL_WEAPON)
- if ((it = self.items - (self.items & other.items)))
+ if ((it = self.weapons - (self.weapons & other.weapons)))
{
pickedup = TRUE;
- if (it & IT_UZI) W_GiveWeapon (other, IT_UZI, self.netname);
- if (it & IT_SHOTGUN) W_GiveWeapon (other, IT_SHOTGUN, self.netname);
- if (it & IT_GRENADE_LAUNCHER) W_GiveWeapon (other, IT_GRENADE_LAUNCHER, self.netname);
- if (it & IT_ELECTRO) W_GiveWeapon (other, IT_ELECTRO, self.netname);
- if (it & IT_NEX) W_GiveWeapon (other, IT_NEX, self.netname);
- if (it & IT_HAGAR) W_GiveWeapon (other, IT_HAGAR, self.netname);
- if (it & IT_ROCKET_LAUNCHER) W_GiveWeapon (other, IT_ROCKET_LAUNCHER, self.netname);
- if (it & IT_CRYLINK) W_GiveWeapon (other, IT_CRYLINK, self.netname);
+ if (it & WEPBIT_UZI) W_GiveWeapon (other, WEP_UZI, self.netname);
+ if (it & WEPBIT_SHOTGUN) W_GiveWeapon (other, WEP_SHOTGUN, self.netname);
+ if (it & WEPBIT_GRENADE_LAUNCHER) W_GiveWeapon (other, WEP_GRENADE_LAUNCHER, self.netname);
+ if (it & WEPBIT_ELECTRO) W_GiveWeapon (other, WEP_ELECTRO, self.netname);
+ if (it & WEPBIT_NEX) W_GiveWeapon (other, WEP_NEX, self.netname);
+ if (it & WEPBIT_HAGAR) W_GiveWeapon (other, WEP_HAGAR, self.netname);
+ if (it & WEPBIT_ROCKET_LAUNCHER) W_GiveWeapon (other, WEP_ROCKET_LAUNCHER, self.netname);
+ if (it & WEPBIT_CRYLINK) W_GiveWeapon (other, WEP_CRYLINK, self.netname);
+ // %weaponaddpoint
}
if (self.strength_finished)
@@ -226,7 +227,7 @@
float weapon_pickupevalfunc(entity player, entity item)
{
// if we already have the weapon, rate it 1/5th normal value
- if ((player.items & item.items) == item.items)
+ if ((player.weapons & item.weapons) == item.weapons)
return item.bot_pickupbasevalue * 0.2;
return item.bot_pickupbasevalue;
};
@@ -257,18 +258,12 @@
if (player.health < item.max_health)
c = c + max(0, 1 - player.health / item.max_health);
- if (cvar("deathmatch") == 2) // weapon stay is on, so weapons the player already has are of no interest
- if (item.flags & FL_WEAPON)
- if (self.items & item.items)
- if (item.classname != "droppedweapon")
- c = 0;
-
return item.bot_pickupbasevalue * c;
};
.float is_item;
-void StartItem (string itemmodel, string pickupsound, float defaultrespawntime, string itemname, float itemid, float itemflags, float(entity player, entity item) pickupevalfunc, float pickupbasevalue)
+void StartItem (string itemmodel, string pickupsound, float defaultrespawntime, string itemname, float itemid, float weaponid, float itemflags, float(entity player, entity item) pickupevalfunc, float pickupbasevalue)
{
startitem_failed = FALSE;
@@ -374,7 +369,7 @@
self.is_item = TRUE;
}
- itemsInMap |= itemid;
+ weaponsInMap |= weaponid;
if(g_lms || g_instagib || g_rocketarena)
{
@@ -403,9 +398,7 @@
precache_sound (pickupsound);
precache_sound ("misc/itemrespawn.wav");
- if(itemid & (IT_STRENGTH | IT_INVINCIBLE | IT_HEALTH | IT_ARMOR | IT_KEY1 | IT_KEY2 |
- IT_ROCKET_LAUNCHER | IT_HAGAR | IT_NEX | IT_CRYLINK | IT_ELECTRO |
- IT_GRENADE_LAUNCHER | IT_UZI | IT_SHOTGUN | IT_LASER))
+ if((itemid & (IT_STRENGTH | IT_INVINCIBLE | IT_HEALTH | IT_ARMOR | IT_KEY1 | IT_KEY2)) || (weaponid & WEPBIT_ALL))
self.target = "###item###"; // for finding the nearest item using find()
}
@@ -419,6 +412,7 @@
self.respawntime = defaultrespawntime;
self.netname = itemname;
self.items = itemid;
+ self.weapons = weaponid;
self.flags = FL_ITEM | itemflags;
self.touch = Item_Touch;
setmodel (self, self.mdl); // precision set below
@@ -450,7 +444,7 @@
self.ammo_cells = 25;
StartItem ("models/weapons/g_nex.md3",
"weapons/weaponpickup.wav", 15,
- "Nex Gun", IT_NEX, FL_WEAPON, generic_pickupevalfunc, 1000);
+ "Nex Gun", 0, WEPBIT_NEX, FL_WEAPON, generic_pickupevalfunc, 1000);
return;
}
@@ -463,7 +457,7 @@
self.ammo_cells = 1;
StartItem ("models/items/a_cells.md3",
"misc/itempickup.wav", 45,
- "Nex Ammo", IT_CELLS, 0, generic_pickupevalfunc, 100);
+ "Nex Ammo", IT_CELLS, 0, 0, generic_pickupevalfunc, 100);
return;
}
@@ -483,7 +477,7 @@
self.strength_finished = 30;
StartItem ("models/items/g_strength.md3",
"misc/powerup.wav", 120,
- "Invisibility", IT_STRENGTH, FL_POWERUP, generic_pickupevalfunc, 1000);
+ "Invisibility", IT_STRENGTH, 0, FL_POWERUP, generic_pickupevalfunc, 1000);
}
// replace with extra lives
if (itemid == IT_NAILS)
@@ -491,7 +485,7 @@
self.max_health = 1;
StartItem ("models/items/g_h100.md3",
"misc/megahealth.wav", 120,
- "Extralife", IT_NAILS, FL_POWERUP, generic_pickupevalfunc, 1000);
+ "Extralife", IT_NAILS, 0, FL_POWERUP, generic_pickupevalfunc, 1000);
}
// replace with speed
@@ -501,7 +495,7 @@
self.invincible_finished = 30;
StartItem ("models/items/g_invincible.md3",
"misc/powerup_shield.wav", 120,
- "Speed", IT_INVINCIBLE, FL_POWERUP, generic_pickupevalfunc, 1000);
+ "Speed", IT_INVINCIBLE, 0, FL_POWERUP, generic_pickupevalfunc, 1000);
}
}
@@ -528,7 +522,7 @@
if(!self.ammo_nails)
self.ammo_nails = cvar("g_pickup_nails");
- StartItem ("models/weapons/g_uzi.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_UZI), IT_UZI, FL_WEAPON, weapon_pickupevalfunc, 5000);
+ StartItem ("models/weapons/g_uzi.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_UZI), 0, WEPBIT_UZI, FL_WEAPON, weapon_pickupevalfunc, 5000);
if (self.modelindex) // don't precache if self was removed
weapon_action(WEP_UZI, WR_PRECACHE);
}
@@ -546,7 +540,7 @@
if(!self.ammo_shells)
self.ammo_shells = cvar("g_pickup_shells");
- StartItem ("models/weapons/g_shotgun.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_SHOTGUN), IT_SHOTGUN, FL_WEAPON, weapon_pickupevalfunc, 2500);
+ StartItem ("models/weapons/g_shotgun.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_SHOTGUN), 0, WEPBIT_SHOTGUN, FL_WEAPON, weapon_pickupevalfunc, 2500);
if (self.modelindex) // don't precache if self was removed
weapon_action(WEP_SHOTGUN, WR_PRECACHE);
}
@@ -555,7 +549,7 @@
{
if(!self.ammo_rockets)
self.ammo_rockets = cvar("g_pickup_rockets");
- StartItem ("models/weapons/g_gl.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_GRENADE_LAUNCHER), IT_GRENADE_LAUNCHER, FL_WEAPON, weapon_pickupevalfunc, 5000);
+ StartItem ("models/weapons/g_gl.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_GRENADE_LAUNCHER), 0, WEPBIT_GRENADE_LAUNCHER, FL_WEAPON, weapon_pickupevalfunc, 5000);
if (self.modelindex) // don't precache if self was removed
weapon_action(WEP_GRENADE_LAUNCHER, WR_PRECACHE);
}
@@ -564,7 +558,7 @@
{
if(!self.ammo_cells)
self.ammo_cells = cvar("g_pickup_cells");
- StartItem ("models/weapons/g_electro.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_ELECTRO), IT_ELECTRO, FL_WEAPON, weapon_pickupevalfunc, 5000);
+ StartItem ("models/weapons/g_electro.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_ELECTRO), 0, WEPBIT_ELECTRO, FL_WEAPON, weapon_pickupevalfunc, 5000);
if (self.modelindex) // don't precache if self was removed
weapon_action(WEP_ELECTRO, WR_PRECACHE);
}
@@ -573,7 +567,7 @@
{
if(!self.ammo_cells)
self.ammo_cells = cvar("g_pickup_cells");
- StartItem ("models/weapons/g_crylink.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_CRYLINK), IT_CRYLINK, FL_WEAPON, weapon_pickupevalfunc, 2500);
+ StartItem ("models/weapons/g_crylink.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_CRYLINK), 0, WEPBIT_CRYLINK, FL_WEAPON, weapon_pickupevalfunc, 2500);
if (self.modelindex) // don't precache if self was removed
weapon_action(WEP_CRYLINK, WR_PRECACHE);
}
@@ -595,7 +589,7 @@
nextime = 15 * nextime;
else
nextime = 15;
- StartItem ("models/weapons/g_nex.md3", "weapons/weaponpickup.wav", nextime, W_Name(WEP_NEX), IT_NEX, FL_WEAPON, weapon_pickupevalfunc, 10000);
+ StartItem ("models/weapons/g_nex.md3", "weapons/weaponpickup.wav", nextime, W_Name(WEP_NEX), 0, WEPBIT_NEX, FL_WEAPON, weapon_pickupevalfunc, 10000);
if (self.modelindex) // don't precache if self was removed
weapon_action(WEP_NEX, WR_PRECACHE);
}
@@ -604,7 +598,7 @@
{
if(!self.ammo_rockets)
self.ammo_rockets = cvar("g_pickup_rockets");
- StartItem ("models/weapons/g_hagar.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_HAGAR), IT_HAGAR, FL_WEAPON, weapon_pickupevalfunc, 5000);
+ StartItem ("models/weapons/g_hagar.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_HAGAR), 0, WEPBIT_HAGAR, FL_WEAPON, weapon_pickupevalfunc, 5000);
if (self.modelindex) // don't precache if self was removed
weapon_action(WEP_HAGAR, WR_PRECACHE);
}
@@ -620,7 +614,7 @@
}
if(!self.ammo_rockets)
self.ammo_rockets = g_pickup_rockets;
- StartItem ("models/weapons/g_rl.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_ROCKET_LAUNCHER), IT_ROCKET_LAUNCHER, FL_WEAPON, weapon_pickupevalfunc, 10000);
+ StartItem ("models/weapons/g_rl.md3", "weapons/weaponpickup.wav", 15, W_Name(WEP_ROCKET_LAUNCHER), 0, WEPBIT_ROCKET_LAUNCHER, FL_WEAPON, weapon_pickupevalfunc, 10000);
if (self.modelindex) // don't precache if self was removed
weapon_action(WEP_ROCKET_LAUNCHER, WR_PRECACHE);
}
@@ -628,7 +622,7 @@
void spawnfunc_item_rockets (void) {
if(!self.ammo_rockets)
self.ammo_rockets = g_pickup_rockets;
- StartItem ("models/items/a_rockets.md3", "misc/itempickup.wav", 15, "rockets", IT_ROCKETS, 0, commodity_pickupevalfunc, 3000);
+ StartItem ("models/items/a_rockets.md3", "misc/itempickup.wav", 15, "rockets", IT_ROCKETS, 0, 0, commodity_pickupevalfunc, 3000);
}
void spawnfunc_item_shells (void);
@@ -645,13 +639,13 @@
if(!self.ammo_nails)
self.ammo_nails = g_pickup_nails;
- StartItem ("models/items/a_bullets.mdl", "misc/itempickup.wav", 15, "bullets", IT_NAILS, 0, commodity_pickupevalfunc, 2000);
+ StartItem ("models/items/a_bullets.mdl", "misc/itempickup.wav", 15, "bullets", IT_NAILS, 0, 0, commodity_pickupevalfunc, 2000);
}
void spawnfunc_item_cells (void) {
if(!self.ammo_cells)
self.ammo_cells = g_pickup_cells;
- StartItem ("models/items/a_cells.md3", "misc/itempickup.wav", 15, "cells", IT_CELLS, 0, commodity_pickupevalfunc, 2000);
+ StartItem ("models/items/a_cells.md3", "misc/itempickup.wav", 15, "cells", IT_CELLS, 0, 0, commodity_pickupevalfunc, 2000);
}
void spawnfunc_item_shells (void) {
@@ -667,7 +661,7 @@
if(!self.ammo_shells)
self.ammo_shells = g_pickup_shells;
- StartItem ("models/items/a_shells.md3", "misc/itempickup.wav", 15, "shells", IT_SHELLS, 0, commodity_pickupevalfunc, 500);
+ StartItem ("models/items/a_shells.md3", "misc/itempickup.wav", 15, "shells", IT_SHELLS, 0, 0, commodity_pickupevalfunc, 500);
}
void spawnfunc_item_armor_small (void) {
@@ -675,7 +669,7 @@
self.armorvalue = g_pickup_armorsmall;
if(!self.max_armorvalue)
self.max_armorvalue = g_pickup_armorsmall_max;
- StartItem ("models/items/g_a1.md3", "misc/armor1.wav", 15, "5 Armor", IT_ARMOR_SHARD, 0, commodity_pickupevalfunc, 1000);
+ StartItem ("models/items/g_a1.md3", "misc/armor1.wav", 15, "5 Armor", IT_ARMOR_SHARD, 0, 0, commodity_pickupevalfunc, 1000);
}
void spawnfunc_item_armor_medium (void) {
@@ -683,7 +677,7 @@
self.armorvalue = g_pickup_armormedium;
if(!self.max_armorvalue)
self.max_armorvalue = g_pickup_armormedium_max;
- StartItem ("models/items/g_armormedium.md3", "misc/armor1.wav", 20, "25 Armor", IT_ARMOR, 0, commodity_pickupevalfunc, 20000);
+ StartItem ("models/items/g_armormedium.md3", "misc/armor1.wav", 20, "25 Armor", IT_ARMOR, 0, 0, commodity_pickupevalfunc, 20000);
}
void spawnfunc_item_armor_large (void) {
@@ -691,7 +685,7 @@
self.armorvalue = g_pickup_armorlarge;
if(!self.max_armorvalue)
self.max_armorvalue = g_pickup_armorlarge_max;
- StartItem ("models/items/g_a25.md3", "misc/armor25.wav", 30, "100 Armor", IT_ARMOR, 0, commodity_pickupevalfunc, 20000);
+ StartItem ("models/items/g_a25.md3", "misc/armor25.wav", 30, "100 Armor", IT_ARMOR, 0, 0, commodity_pickupevalfunc, 20000);
}
void spawnfunc_item_health_small (void) {
@@ -699,7 +693,7 @@
self.max_health = g_pickup_healthsmall_max;
if(!self.health)
self.health = g_pickup_healthsmall;
- StartItem ("models/items/g_h1.md3", "misc/minihealth.wav", 15, "5 Health", IT_5HP, 0, commodity_pickupevalfunc, 20000);
+ StartItem ("models/items/g_h1.md3", "misc/minihealth.wav", 15, "5 Health", IT_5HP, 0, 0, commodity_pickupevalfunc, 20000);
}
void spawnfunc_item_health_medium (void) {
@@ -707,7 +701,7 @@
self.max_health = g_pickup_healthmedium_max;
if(!self.health)
self.health = g_pickup_healthmedium;
- StartItem ("models/items/g_h25.md3", "misc/mediumhealth.wav", 15, "25 Health", IT_25HP, 0, commodity_pickupevalfunc, 20000);
+ StartItem ("models/items/g_h25.md3", "misc/mediumhealth.wav", 15, "25 Health", IT_25HP, 0, 0, commodity_pickupevalfunc, 20000);
}
void spawnfunc_item_health_large (void) {
@@ -715,7 +709,7 @@
self.max_health = g_pickup_healthlarge_max;
if(!self.health)
self.health = g_pickup_healthlarge;
- StartItem ("models/items/g_h50.md3", "misc/mediumhealth.wav", 20, "50 Health", IT_25HP, 0, commodity_pickupevalfunc, 20000);
+ StartItem ("models/items/g_h50.md3", "misc/mediumhealth.wav", 20, "50 Health", IT_25HP, 0, 0, commodity_pickupevalfunc, 20000);
}
void spawnfunc_item_health_mega (void) {
@@ -732,7 +726,7 @@
self.max_health = g_pickup_healthmega_max;
if(!self.health)
self.health = g_pickup_healthmega;
- StartItem ("models/items/g_h100.md3", "misc/megahealth.wav", 30, "100 Health", IT_HEALTH, 0, commodity_pickupevalfunc, 20000);
+ StartItem ("models/items/g_h100.md3", "misc/megahealth.wav", 30, "100 Health", IT_HEALTH, 0, 0, commodity_pickupevalfunc, 20000);
}
}
@@ -755,7 +749,8 @@
} else {
precache_sound("weapons/strength_fire.wav");
self.strength_finished = 30;
- self.effects = EF_ADDITIVE;StartItem ("models/items/g_strength.md3", "misc/powerup.wav", 120, "Strength Powerup", IT_STRENGTH, FL_POWERUP, generic_pickupevalfunc, 100000);
+ self.effects = EF_ADDITIVE;
+ StartItem ("models/items/g_strength.md3", "misc/powerup.wav", 120, "Strength Powerup", IT_STRENGTH, 0, FL_POWERUP, generic_pickupevalfunc, 100000);
}
}
@@ -771,7 +766,7 @@
} else {
self.invincible_finished = 30;
self.effects = EF_ADDITIVE;
- StartItem ("models/items/g_invincible.md3", "misc/powerup_shield.wav", 120, "Invulnerability", IT_INVINCIBLE, FL_POWERUP, generic_pickupevalfunc, 100000);
+ StartItem ("models/items/g_invincible.md3", "misc/powerup_shield.wav", 120, "Invulnerability", IT_INVINCIBLE, 0, FL_POWERUP, generic_pickupevalfunc, 100000);
}
}
//void item_speed (void) {self.speed_finished = 30;StartItem ("models/items/g_speed.md3", "misc/powerup.wav", 120, "Speed Powerup", IT_SPEED, FL_POWERUP, generic_pickupevalfunc, 10000);}
@@ -834,35 +829,18 @@
}
}
-float Item_WeaponCode(float it)
+void Item_SpawnByWeaponCode(float it)
{
switch(it)
{
- case IT_LASER: return WEP_LASER;
- case IT_SHOTGUN: return WEP_SHOTGUN;
- case IT_UZI: return WEP_UZI;
- case IT_GRENADE_LAUNCHER: return WEP_GRENADE_LAUNCHER;
- case IT_ELECTRO: return WEP_ELECTRO;
- case IT_CRYLINK: return WEP_CRYLINK;
- case IT_NEX: return WEP_NEX;
- case IT_HAGAR: return WEP_HAGAR;
- case IT_ROCKET_LAUNCHER: return WEP_ROCKET_LAUNCHER;
- default: return 0;
- }
-}
-
-void Item_SpawnByItemCode(float it)
-{
- switch(it)
- {
- case IT_SHOTGUN: spawnfunc_weapon_shotgun(); break;
- case IT_UZI: spawnfunc_weapon_uzi(); break;
- case IT_GRENADE_LAUNCHER: spawnfunc_weapon_grenadelauncher(); break;
- case IT_ELECTRO: spawnfunc_weapon_electro(); break;
- case IT_CRYLINK: spawnfunc_weapon_crylink(); break;
- case IT_NEX: spawnfunc_weapon_nex(); break;
- case IT_HAGAR: spawnfunc_weapon_hagar(); break;
- case IT_ROCKET_LAUNCHER: spawnfunc_weapon_rocketlauncher(); break;
+ case WEP_SHOTGUN: spawnfunc_weapon_shotgun(); break;
+ case WEP_UZI: spawnfunc_weapon_uzi(); break;
+ case WEP_GRENADE_LAUNCHER: spawnfunc_weapon_grenadelauncher(); break;
+ case WEP_ELECTRO: spawnfunc_weapon_electro(); break;
+ case WEP_CRYLINK: spawnfunc_weapon_crylink(); break;
+ case WEP_NEX: spawnfunc_weapon_nex(); break;
+ case WEP_HAGAR: spawnfunc_weapon_hagar(); break;
+ case WEP_ROCKET_LAUNCHER: spawnfunc_weapon_rocketlauncher(); break;
// add all other item spawn functions here
default:
error("requested item can't be spawned");
Modified: trunk/data/qcsrc/server/w_common.qc
===================================================================
--- trunk/data/qcsrc/server/w_common.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_common.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -6,7 +6,7 @@
if (!wep)
return;
- e.items = e.items | wep;
+ e.weapons = e.weapons | wep;
oldself = self;
self = e;
@@ -141,7 +141,7 @@
{
if (trace_ent.solid == SOLID_BSP && !(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT))
{
- if (dtype == IT_SHOTGUN)
+ if (dtype == WEP_SHOTGUN)
pointparticles(particleeffectnum("shotgun_impact"), trace_endpos, trace_plane_normal * 1000, 1);
else
pointparticles(particleeffectnum("machinegun_impact"), trace_endpos, trace_plane_normal * 1000, 1);
Modified: trunk/data/qcsrc/server/w_crylink.qc
===================================================================
--- trunk/data/qcsrc/server/w_crylink.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_crylink.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -20,7 +20,7 @@
f = cvar("g_balance_crylink_primary_bouncedamagefactor");
if(self.alpha)
f *= self.alpha;
- RadiusDamage (self, self.realowner, cvar("g_balance_crylink_primary_damage") * f, cvar("g_balance_crylink_primary_edgedamage") * f, cvar("g_balance_crylink_primary_radius"), world, cvar("g_balance_crylink_primary_force") * f, IT_CRYLINK);
+ RadiusDamage (self, self.realowner, cvar("g_balance_crylink_primary_damage") * f, cvar("g_balance_crylink_primary_edgedamage") * f, cvar("g_balance_crylink_primary_radius"), world, cvar("g_balance_crylink_primary_force") * f, WEP_CRYLINK);
if (finalhit)
{
remove (self);
@@ -49,7 +49,7 @@
f = cvar("g_balance_crylink_secondary_bouncedamagefactor");
if(self.alpha)
f *= self.alpha;
- RadiusDamage (self, self.realowner, cvar("g_balance_crylink_secondary_damage") * f, cvar("g_balance_crylink_secondary_edgedamage") * f, cvar("g_balance_crylink_secondary_radius"), world, cvar("g_balance_crylink_secondary_force") * f, IT_CRYLINK);
+ RadiusDamage (self, self.realowner, cvar("g_balance_crylink_secondary_damage") * f, cvar("g_balance_crylink_secondary_edgedamage") * f, cvar("g_balance_crylink_secondary_radius"), world, cvar("g_balance_crylink_secondary_force") * f, WEP_CRYLINK);
if (finalhit)
{
remove (self);
@@ -191,7 +191,7 @@
trailparticles(world, particleeffectnum("lightning_beam", w_shotorg, trace_endpos);
if (trace_fraction < 1)
- Damage(trace_ent, self, self, cvar("g_balance_crylink_primary_damage"), IT_CRYLINK, trace_endpos, '0 0 0');
+ Damage(trace_ent, self, self, cvar("g_balance_crylink_primary_damage"), WEP_CRYLINK, trace_endpos, '0 0 0');
}
*/
@@ -234,7 +234,5 @@
return self.ammo_cells >= cvar("g_balance_crylink_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_cells >= cvar("g_balance_crylink_secondary_ammo");
- else if (req == WR_REGISTER)
- weapon_register(WEP_CRYLINK, min(cvar("g_balance_crylink_primary_ammo"), cvar("g_balance_crylink_secondary_ammo")));
return TRUE;
};
Modified: trunk/data/qcsrc/server/w_electro.qc
===================================================================
--- trunk/data/qcsrc/server/w_electro.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_electro.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -8,12 +8,12 @@
if (self.movetype == MOVETYPE_BOUNCE)
{
pointparticles(particleeffectnum("electro_ballexplode"), org2, '0 0 0', 1);
- RadiusDamage (self, self.owner, cvar("g_balance_electro_secondary_damage"), cvar("g_balance_electro_secondary_edgedamage"), cvar("g_balance_electro_secondary_radius"), world, cvar("g_balance_electro_secondary_force"), IT_ELECTRO);
+ RadiusDamage (self, self.owner, cvar("g_balance_electro_secondary_damage"), cvar("g_balance_electro_secondary_edgedamage"), cvar("g_balance_electro_secondary_radius"), world, cvar("g_balance_electro_secondary_force"), WEP_ELECTRO);
}
else
{
pointparticles(particleeffectnum("electro_impact"), org2, '0 0 0', 1);
- RadiusDamage (self, self.owner, cvar("g_balance_electro_primary_damage"), cvar("g_balance_electro_primary_edgedamage"), cvar("g_balance_electro_primary_radius"), world, cvar("g_balance_electro_primary_force"), IT_ELECTRO);
+ RadiusDamage (self, self.owner, cvar("g_balance_electro_primary_damage"), cvar("g_balance_electro_primary_edgedamage"), cvar("g_balance_electro_primary_radius"), world, cvar("g_balance_electro_primary_force"), WEP_ELECTRO);
}
sound (self, CHAN_PROJECTILE, "weapons/electro_impact.wav", VOL_BASE, ATTN_NORM);
@@ -29,7 +29,7 @@
sound (self, CHAN_PROJECTILE, "weapons/electro_impact_combo.wav", VOL_BASE, ATTN_NORM);
self.event_damage = SUB_Null;
- RadiusDamage (self, self.owner, cvar("g_balance_electro_combo_damage"), cvar("g_balance_electro_combo_edgedamage"), cvar("g_balance_electro_combo_radius"), world, cvar("g_balance_electro_combo_force"), IT_ELECTRO);
+ RadiusDamage (self, self.owner, cvar("g_balance_electro_combo_damage"), cvar("g_balance_electro_combo_edgedamage"), cvar("g_balance_electro_combo_radius"), world, cvar("g_balance_electro_combo_force"), WEP_ELECTRO);
remove (self);
}
@@ -225,7 +225,5 @@
return self.ammo_cells >= cvar("g_balance_electro_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_cells >= cvar("g_balance_electro_secondary_ammo");
- else if (req == WR_REGISTER)
- weapon_register(WEP_ELECTRO, min(cvar("g_balance_electro_primary_ammo"), cvar("g_balance_electro_secondary_ammo")));
return TRUE;
};
Modified: trunk/data/qcsrc/server/w_grenadelauncher.qc
===================================================================
--- trunk/data/qcsrc/server/w_grenadelauncher.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_grenadelauncher.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -11,7 +11,7 @@
sound (self, CHAN_PROJECTILE, "weapons/grenade_impact.wav", VOL_BASE, ATTN_NORM);
self.event_damage = SUB_Null;
- RadiusDamage (self, self.owner, cvar("g_balance_grenadelauncher_primary_damage"), cvar("g_balance_grenadelauncher_primary_edgedamage"), cvar("g_balance_grenadelauncher_primary_radius"), world, cvar("g_balance_grenadelauncher_primary_force"), IT_GRENADE_LAUNCHER);
+ RadiusDamage (self, self.owner, cvar("g_balance_grenadelauncher_primary_damage"), cvar("g_balance_grenadelauncher_primary_edgedamage"), cvar("g_balance_grenadelauncher_primary_radius"), world, cvar("g_balance_grenadelauncher_primary_force"), WEP_GRENADE_LAUNCHER);
remove (self);
}
@@ -24,7 +24,7 @@
sound (self, CHAN_PROJECTILE, "weapons/grenade_impact.wav", VOL_BASE, ATTN_NORM);
self.event_damage = SUB_Null;
- RadiusDamage (self, self.owner, cvar("g_balance_grenadelauncher_secondary_damage"), cvar("g_balance_grenadelauncher_secondary_edgedamage"), cvar("g_balance_grenadelauncher_secondary_radius"), world, cvar("g_balance_grenadelauncher_secondary_force"), IT_GRENADE_LAUNCHER);
+ RadiusDamage (self, self.owner, cvar("g_balance_grenadelauncher_secondary_damage"), cvar("g_balance_grenadelauncher_secondary_edgedamage"), cvar("g_balance_grenadelauncher_secondary_radius"), world, cvar("g_balance_grenadelauncher_secondary_force"), WEP_GRENADE_LAUNCHER);
remove (self);
}
@@ -236,7 +236,5 @@
return self.ammo_rockets >= cvar("g_balance_grenadelauncher_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_rockets >= cvar("g_balance_grenadelauncher_secondary_ammo");
- else if (req == WR_REGISTER)
- weapon_register(WEP_GRENADE_LAUNCHER, min(cvar("g_balance_grenadelauncher_primary_ammo"), cvar("g_balance_grenadelauncher_secondary_ammo")));
return TRUE;
};
Modified: trunk/data/qcsrc/server/w_hagar.qc
===================================================================
--- trunk/data/qcsrc/server/w_hagar.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_hagar.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -13,7 +13,7 @@
sound (self, CHAN_PROJECTILE, "weapons/hagexp3.wav", VOL_BASE, ATTN_NORM);
self.event_damage = SUB_Null;
- RadiusDamage (self, self.realowner, cvar("g_balance_hagar_primary_damage"), cvar("g_balance_hagar_primary_edgedamage"), cvar("g_balance_hagar_primary_radius"), world, cvar("g_balance_hagar_primary_force"), IT_HAGAR);
+ RadiusDamage (self, self.realowner, cvar("g_balance_hagar_primary_damage"), cvar("g_balance_hagar_primary_edgedamage"), cvar("g_balance_hagar_primary_radius"), world, cvar("g_balance_hagar_primary_force"), WEP_HAGAR);
remove (self);
}
@@ -33,7 +33,7 @@
sound (self, CHAN_PROJECTILE, "weapons/hagexp3.wav", VOL_BASE, ATTN_NORM);
self.event_damage = SUB_Null;
- RadiusDamage (self, self.realowner, cvar("g_balance_hagar_secondary_damage"), cvar("g_balance_hagar_secondary_edgedamage"), cvar("g_balance_hagar_secondary_radius"), world, cvar("g_balance_hagar_secondary_force"), IT_HAGAR);
+ RadiusDamage (self, self.realowner, cvar("g_balance_hagar_secondary_damage"), cvar("g_balance_hagar_secondary_edgedamage"), cvar("g_balance_hagar_secondary_radius"), world, cvar("g_balance_hagar_secondary_force"), WEP_HAGAR);
remove (self);
}
@@ -198,7 +198,5 @@
return self.ammo_rockets >= cvar("g_balance_hagar_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_rockets >= cvar("g_balance_hagar_secondary_ammo");
- else if (req == WR_REGISTER)
- weapon_register(WEP_HAGAR, min(cvar("g_balance_hagar_primary_ammo"), cvar("g_balance_hagar_secondary_ammo")));
return TRUE;
};
Modified: trunk/data/qcsrc/server/w_laser.qc
===================================================================
--- trunk/data/qcsrc/server/w_laser.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_laser.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -24,9 +24,9 @@
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"), IT_LASER);
+ 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"), WEP_LASER);
else
- RadiusDamage (self, self.owner, cvar("g_balance_laser_primary_damage"), cvar("g_balance_laser_primary_edgedamage"), cvar("g_balance_laser_primary_radius"), world, cvar("g_balance_laser_primary_force"), IT_LASER);
+ RadiusDamage (self, self.owner, cvar("g_balance_laser_primary_damage"), cvar("g_balance_laser_primary_edgedamage"), cvar("g_balance_laser_primary_radius"), world, cvar("g_balance_laser_primary_force"), WEP_LASER);
sound (self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM);
remove (self);
@@ -133,7 +133,5 @@
return TRUE;
else if (req == WR_CHECKAMMO2)
return TRUE;
- else if (req == WR_REGISTER)
- weapon_register(WEP_LASER, 0);
return TRUE;
};
Modified: trunk/data/qcsrc/server/w_nex.qc
===================================================================
--- trunk/data/qcsrc/server/w_nex.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_nex.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -10,11 +10,11 @@
// assure that nexdamage is high enough in minstagib
if (g_minstagib || g_instagib)
- FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, 1000, 800, IT_NEX);
+ FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, 1000, 800, WEP_NEX);
else
{
yoda = 0;
- FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, cvar("g_balance_nex_damage"), cvar("g_balance_nex_force"), IT_NEX);
+ FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, cvar("g_balance_nex_damage"), cvar("g_balance_nex_force"), WEP_NEX);
if(yoda)
if(flying)
@@ -178,12 +178,5 @@
}
else if (req == WR_CHECKAMMO2)
return FALSE;
- else if (req == WR_REGISTER)
- {
- if(g_minstagib)
- weapon_register(WEP_NEX, 1);
- else
- weapon_register(WEP_NEX, cvar("g_balance_nex_ammo"));
- }
return TRUE;
};
Modified: trunk/data/qcsrc/server/w_rocketlauncher.qc
===================================================================
--- trunk/data/qcsrc/server/w_rocketlauncher.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_rocketlauncher.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -12,7 +12,7 @@
//effect (org2, "models/sprites/rockexpl.spr", 0, 12, 35);
self.event_damage = SUB_Null;
- RadiusDamage (self, self.owner, cvar("g_balance_rocketlauncher_damage"), cvar("g_balance_rocketlauncher_edgedamage"), cvar("g_balance_rocketlauncher_radius"), world, cvar("g_balance_rocketlauncher_force"), IT_ROCKET_LAUNCHER);
+ RadiusDamage (self, self.owner, cvar("g_balance_rocketlauncher_damage"), cvar("g_balance_rocketlauncher_edgedamage"), cvar("g_balance_rocketlauncher_radius"), world, cvar("g_balance_rocketlauncher_force"), WEP_ROCKET_LAUNCHER);
if (self.owner.weapon == WEP_ROCKET_LAUNCHER)
{
@@ -428,7 +428,5 @@
}
else if (req == WR_CHECKAMMO2)
return FALSE;
- else if (req == WR_REGISTER)
- weapon_register(WEP_ROCKET_LAUNCHER, cvar("g_balance_rocketlauncher_ammo"));
return TRUE;
};
Modified: trunk/data/qcsrc/server/w_shotgun.qc
===================================================================
--- trunk/data/qcsrc/server/w_shotgun.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_shotgun.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -15,7 +15,7 @@
W_SetupShot (self, '25 8 -8', TRUE, 5, "weapons/shotgun_fire.wav");
for (sc = 0;sc < bullets;sc = sc + 1)
- fireBullet (w_shotorg, w_shotdir, spread, d, f, IT_SHOTGUN, sc < 3);
+ fireBullet (w_shotorg, w_shotdir, spread, d, f, WEP_SHOTGUN, sc < 3);
if (cvar("g_use_ammunition"))
self.ammo_shells = self.ammo_shells - cvar("g_balance_shotgun_primary_ammo");
@@ -58,7 +58,7 @@
W_SetupShot (self, '25 8 -8', TRUE, 5, "weapons/shotgun_fire.wav");
for (sc = 0;sc < bullets;sc = sc + 1)
- fireBullet (w_shotorg, w_shotdir, spread, d, f, IT_SHOTGUN, sc < 3);
+ fireBullet (w_shotorg, w_shotdir, spread, d, f, WEP_SHOTGUN, sc < 3);
if (cvar("g_use_ammunition"))
self.ammo_shells = self.ammo_shells - cvar("g_balance_shotgun_secondary_ammo");
@@ -139,7 +139,5 @@
return self.ammo_shells >= cvar("g_balance_shotgun_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_shells >= cvar("g_balance_shotgun_secondary_ammo") * 3;
- else if (req == WR_REGISTER)
- weapon_register(WEP_SHOTGUN, min(cvar("g_balance_shotgun_primary_ammo"), cvar("g_balance_shotgun_secondary_ammo")));
return TRUE;
};
Modified: trunk/data/qcsrc/server/w_uzi.qc
===================================================================
--- trunk/data/qcsrc/server/w_uzi.qc 2008-09-02 12:28:21 UTC (rev 4287)
+++ trunk/data/qcsrc/server/w_uzi.qc 2008-09-02 13:34:10 UTC (rev 4288)
@@ -34,9 +34,9 @@
ATTACK_FINISHED(self) = time + cvar("g_balance_uzi_first_refire");
if (self.uzi_bulletcounter == 1)
- fireBullet (w_shotorg, w_shotdir, cvar("g_balance_uzi_first_spread"), cvar("g_balance_uzi_first_damage"), cvar("g_balance_uzi_first_force"), IT_UZI, TRUE);
+ fireBullet (w_shotorg, w_shotdir, cvar("g_balance_uzi_first_spread"), cvar("g_balance_uzi_first_damage"), cvar("g_balance_uzi_first_force"), WEP_UZI, TRUE);
else
- fireBullet (w_shotorg, w_shotdir, cvar("g_balance_uzi_sustained_spread"), cvar("g_balance_uzi_sustained_damage"), cvar("g_balance_uzi_sustained_force"), IT_UZI, (self.uzi_bulletcounter & 3) == 0);
+ fireBullet (w_shotorg, w_shotdir, cvar("g_balance_uzi_sustained_spread"), cvar("g_balance_uzi_sustained_damage"), cvar("g_balance_uzi_sustained_force"), WEP_UZI, (self.uzi_bulletcounter & 3) == 0);
pointparticles(particleeffectnum("uzi_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -147,7 +147,5 @@
return self.ammo_nails >= cvar("g_balance_uzi_first_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_nails >= cvar("g_balance_uzi_first_ammo");
- else if (req == WR_REGISTER)
- weapon_register(WEP_UZI, cvar("g_balance_uzi_first_ammo"));
return TRUE;
};
More information about the nexuiz-commits
mailing list