From 72496c0c862f19ccf8607189c6dfd4ee7351a157 Mon Sep 17 00:00:00 2001 From: Mario Date: Tue, 17 Dec 2013 09:16:28 +1100 Subject: [PATCH] Use weaponinfo to get weapon sprite info --- qcsrc/client/waypointsprites.qc | 41 ++++++---------------------- qcsrc/common/weapons/w_arc.qc | 1 + qcsrc/common/weapons/w_blaster.qc | 1 + qcsrc/common/weapons/w_crylink.qc | 1 + qcsrc/common/weapons/w_devastator.qc | 1 + qcsrc/common/weapons/w_electro.qc | 1 + qcsrc/common/weapons/w_fireball.qc | 1 + qcsrc/common/weapons/w_hagar.qc | 1 + qcsrc/common/weapons/w_hlac.qc | 1 + qcsrc/common/weapons/w_hook.qc | 1 + qcsrc/common/weapons/w_machinegun.qc | 1 + qcsrc/common/weapons/w_minelayer.qc | 1 + qcsrc/common/weapons/w_mortar.qc | 1 + qcsrc/common/weapons/w_nex.qc | 1 + qcsrc/common/weapons/w_porto.qc | 1 + qcsrc/common/weapons/w_rifle.qc | 1 + qcsrc/common/weapons/w_seeker.qc | 1 + qcsrc/common/weapons/w_shockwave.qc | 1 + qcsrc/common/weapons/w_shotgun.qc | 1 + qcsrc/common/weapons/w_tuba.qc | 1 + qcsrc/common/weapons/w_vaporizer.qc | 1 + qcsrc/common/weapons/weapons.qc | 5 ++-- qcsrc/common/weapons/weapons.qh | 15 +++++----- 23 files changed, 40 insertions(+), 41 deletions(-) diff --git a/qcsrc/client/waypointsprites.qc b/qcsrc/client/waypointsprites.qc index dcf165669..0dc9a7b5b 100644 --- a/qcsrc/client/waypointsprites.qc +++ b/qcsrc/client/waypointsprites.qc @@ -225,30 +225,23 @@ float spritelookupblinkvalue(string s) } vector spritelookupcolor(string s, vector def) { + if(substring(s, 0, 4) == "wpn-") + return (get_weaponinfo(stof(substring(s, 4, strlen(s)))).wpcolor); + switch(s) { case "keycarrier-friend": return '0 1 0'; - case "wpn-laser": return '1 0.5 0.5'; - case "wpn-shotgun": return '0.5 0.25 0'; - case "wpn-uzi": return '1 1 0'; - case "wpn-gl": return '1 0 0'; - case "wpn-electro": return '0 0.5 1'; - case "wpn-crylink": return '1 0.5 1'; - case "wpn-nex": return '0.5 1 1'; - case "wpn-hagar": return '1 1 0.5'; - case "wpn-rl": return '1 1 0'; - case "wpn-porto": return '0.5 0.5 0.5'; - case "wpn-vaporizer": return '0.5 1 1'; - case "wpn-hookgun": return '0 0.5 0'; - case "wpn-fireball": return '1 0.5 0'; - case "wpn-hlac": return '0 1 0'; - case "wpn-campingrifle": return '0.5 1 0'; - case "wpn-minelayer": return '0.75 1 0'; default: return def; } } string spritelookuptext(string s) { + if(substring(s, 0, 4) == "wpn-") + { + print(s, "\n"); + return (get_weaponinfo(stof(substring(s, 4, strlen(s)))).message); + } + switch(s) { case "as-push": return _("Push"); @@ -288,22 +281,6 @@ string spritelookuptext(string s) case "nb-ball": return _("Ball"); case "ka-ball": return _("Ball"); case "ka-ballcarrier": return _("Ball carrier"); - case "wpn-laser": return _("Laser"); - case "wpn-shotgun": return _("Shotgun"); - case "wpn-uzi": return _("Machine Gun"); - case "wpn-gl": return _("Mortar"); - case "wpn-electro": return _("Electro"); - case "wpn-crylink": return _("Crylink"); - case "wpn-nex": return _("Nex"); - case "wpn-hagar": return _("Hagar"); - case "wpn-rl": return _("Rocket Launcher"); - case "wpn-porto": return _("Port-O-Launch"); - case "wpn-vaporizer": return _("Vaporizer"); - case "wpn-hookgun": return _("Hook"); - case "wpn-fireball": return _("Fireball"); - case "wpn-hlac": return _("HLAC"); - case "wpn-campingrifle": return _("Rifle"); - case "wpn-minelayer": return _("Mine Layer"); case "dom-neut": return _("Control point"); case "dom-red": return _("Control point"); case "dom-blue": return _("Control point"); diff --git a/qcsrc/common/weapons/w_arc.qc b/qcsrc/common/weapons/w_arc.qc index 181a386ad..7288f7a59 100644 --- a/qcsrc/common/weapons/w_arc.qc +++ b/qcsrc/common/weapons/w_arc.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 3, /* flags */ WEP_FLAG_NORMAL, /* rating */ BOT_PICKUP_RATING_HIGH, +/* color */ '1 1 1', /* model */ "arc", /* netname */ "arc", /* fullname */ _("Arc") diff --git a/qcsrc/common/weapons/w_blaster.qc b/qcsrc/common/weapons/w_blaster.qc index af28155cb..30a2e437d 100644 --- a/qcsrc/common/weapons/w_blaster.qc +++ b/qcsrc/common/weapons/w_blaster.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 1, /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ 0, +/* color */ '1 0.5 0.5', /* model */ "laser", /* netname */ "laser", /* fullname */ _("Blaster") diff --git a/qcsrc/common/weapons/w_crylink.qc b/qcsrc/common/weapons/w_crylink.qc index 45675b28e..66e06f684 100644 --- a/qcsrc/common/weapons/w_crylink.qc +++ b/qcsrc/common/weapons/w_crylink.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 6, /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '1 0.5 1', /* model */ "crylink", /* netname */ "crylink", /* fullname */ _("Crylink") diff --git a/qcsrc/common/weapons/w_devastator.qc b/qcsrc/common/weapons/w_devastator.qc index d2424704c..0d0d48eb6 100644 --- a/qcsrc/common/weapons/w_devastator.qc +++ b/qcsrc/common/weapons/w_devastator.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 9, /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_HIGH, +/* color */ '1 1 0', /* model */ "rl", /* netname */ "devastator", /* fullname */ _("Devastator") diff --git a/qcsrc/common/weapons/w_electro.qc b/qcsrc/common/weapons/w_electro.qc index 2d33e602b..eb2f5a4aa 100644 --- a/qcsrc/common/weapons/w_electro.qc +++ b/qcsrc/common/weapons/w_electro.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 5, /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '0 0.5 1', /* model */ "electro", /* netname */ "electro", /* fullname */ _("Electro") diff --git a/qcsrc/common/weapons/w_fireball.qc b/qcsrc/common/weapons/w_fireball.qc index 9269488f9..46dca3460 100644 --- a/qcsrc/common/weapons/w_fireball.qc +++ b/qcsrc/common/weapons/w_fireball.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 9, /* flags */ WEP_FLAG_SUPERWEAPON | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '1 0.5 0', /* model */ "fireball", /* netname */ "fireball", /* fullname */ _("Fireball") diff --git a/qcsrc/common/weapons/w_hagar.qc b/qcsrc/common/weapons/w_hagar.qc index f7a7d5870..070832414 100644 --- a/qcsrc/common/weapons/w_hagar.qc +++ b/qcsrc/common/weapons/w_hagar.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 8, /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '1 1 0.5', /* model */ "hagar", /* netname */ "hagar", /* fullname */ _("Hagar") diff --git a/qcsrc/common/weapons/w_hlac.qc b/qcsrc/common/weapons/w_hlac.qc index 126f922ad..071230bf4 100644 --- a/qcsrc/common/weapons/w_hlac.qc +++ b/qcsrc/common/weapons/w_hlac.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 6, /* flags */ WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '0 1 0', /* model */ "hlac", /* netname */ "hlac", /* fullname */ _("Heavy Laser Assault Cannon") diff --git a/qcsrc/common/weapons/w_hook.qc b/qcsrc/common/weapons/w_hook.qc index 54f0cee0e..11faefece 100644 --- a/qcsrc/common/weapons/w_hook.qc +++ b/qcsrc/common/weapons/w_hook.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 0, /* flags */ WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ 0, +/* color */ '0 0.5 0', /* model */ "hookgun", /* netname */ "hook", /* fullname */ _("Grappling Hook") diff --git a/qcsrc/common/weapons/w_machinegun.qc b/qcsrc/common/weapons/w_machinegun.qc index 4ac5fe368..29bb8ee91 100644 --- a/qcsrc/common/weapons/w_machinegun.qc +++ b/qcsrc/common/weapons/w_machinegun.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 3, /* flags */ WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '1 1 0', /* model */ "uzi", /* netname */ "uzi", /* fullname */ _("Machine Gun") diff --git a/qcsrc/common/weapons/w_minelayer.qc b/qcsrc/common/weapons/w_minelayer.qc index 035c8ac62..884de13eb 100644 --- a/qcsrc/common/weapons/w_minelayer.qc +++ b/qcsrc/common/weapons/w_minelayer.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 4, /* flags */ WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_HIGH, +/* color */ '0.75 1 0', /* model */ "minelayer", /* netname */ "minelayer", /* fullname */ _("Mine Layer") diff --git a/qcsrc/common/weapons/w_mortar.qc b/qcsrc/common/weapons/w_mortar.qc index ce4ea923a..07b90d482 100644 --- a/qcsrc/common/weapons/w_mortar.qc +++ b/qcsrc/common/weapons/w_mortar.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 4, /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '1 0 0', /* model */ "gl", /* netname */ "grenadelauncher", /* fullname */ _("Mortar") diff --git a/qcsrc/common/weapons/w_nex.qc b/qcsrc/common/weapons/w_nex.qc index a8ee1dfe2..f6fe16dab 100644 --- a/qcsrc/common/weapons/w_nex.qc +++ b/qcsrc/common/weapons/w_nex.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 7, /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_HIGH, +/* color */ '0.5 1 1', /* model */ "nex", /* netname */ "nex", /* fullname */ _("Vortex") diff --git a/qcsrc/common/weapons/w_porto.qc b/qcsrc/common/weapons/w_porto.qc index ee105610f..e986e030c 100644 --- a/qcsrc/common/weapons/w_porto.qc +++ b/qcsrc/common/weapons/w_porto.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 0, /* flags */ WEP_TYPE_OTHER | WEP_FLAG_SUPERWEAPON, /* rating */ 0, +/* color */ '0.5 0.5 0.5', /* model */ "porto" , /* netname */ "porto", /* fullname */ _("Port-O-Launch") diff --git a/qcsrc/common/weapons/w_rifle.qc b/qcsrc/common/weapons/w_rifle.qc index e8d7ee393..3f3755747 100644 --- a/qcsrc/common/weapons/w_rifle.qc +++ b/qcsrc/common/weapons/w_rifle.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 7, /* flags */ WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '0.5 1 0', /* model */ "campingrifle", /* netname */ "rifle", /* fullname */ _("Rifle") diff --git a/qcsrc/common/weapons/w_seeker.qc b/qcsrc/common/weapons/w_seeker.qc index 34b084103..a8400e4ef 100644 --- a/qcsrc/common/weapons/w_seeker.qc +++ b/qcsrc/common/weapons/w_seeker.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 8, /* flags */ WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '0.5 1 0', /* model */ "seeker", /* netname */ "seeker", /* fullname */ _("T.A.G. Seeker") diff --git a/qcsrc/common/weapons/w_shockwave.qc b/qcsrc/common/weapons/w_shockwave.qc index 4528351a6..01c434267 100644 --- a/qcsrc/common/weapons/w_shockwave.qc +++ b/qcsrc/common/weapons/w_shockwave.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 2, /* flags */ WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_LOW, +/* color */ '0.5 0.25 0', /* model */ "shotgun", /* netname */ "shockwave", /* fullname */ _("Shockwave") diff --git a/qcsrc/common/weapons/w_shotgun.qc b/qcsrc/common/weapons/w_shotgun.qc index 31adb4a8b..4878017d7 100644 --- a/qcsrc/common/weapons/w_shotgun.qc +++ b/qcsrc/common/weapons/w_shotgun.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 2, /* flags */ WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_MUTATORBLOCKED, /* rating */ BOT_PICKUP_RATING_LOW, +/* color */ '0.5 0.25 0', /* model */ "shotgun", /* shortname */ "shotgun", /* fullname */ _("Shotgun") diff --git a/qcsrc/common/weapons/w_tuba.qc b/qcsrc/common/weapons/w_tuba.qc index 0023ad3a4..df5bb97f9 100644 --- a/qcsrc/common/weapons/w_tuba.qc +++ b/qcsrc/common/weapons/w_tuba.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 1, /* flags */ WEP_FLAG_HIDDEN | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, +/* color */ '0 1 0', /* model */ "tuba", /* netname */ "tuba", /* xgettext:no-c-format */ diff --git a/qcsrc/common/weapons/w_vaporizer.qc b/qcsrc/common/weapons/w_vaporizer.qc index f0fc11f45..d267a58d1 100644 --- a/qcsrc/common/weapons/w_vaporizer.qc +++ b/qcsrc/common/weapons/w_vaporizer.qc @@ -6,6 +6,7 @@ REGISTER_WEAPON( /* impulse */ 7, /* flags */ WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_FLAG_SUPERWEAPON | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_HIGH, +/* color */ '0.5 1 1', /* model */ "minstanex", /* netname */ "minstanex", /* fullname */ _("Vaporizer") diff --git a/qcsrc/common/weapons/weapons.qc b/qcsrc/common/weapons/weapons.qc index e03475d47..121df37b2 100644 --- a/qcsrc/common/weapons/weapons.qc +++ b/qcsrc/common/weapons/weapons.qc @@ -74,7 +74,7 @@ WepSet ReadWepSet() } #endif -void register_weapon(float id, WepSet bit, float(float) func, .float ammotype, float i, float weapontype, float pickupbasevalue, string modelname, string shortname, string wname) +void register_weapon(float id, WepSet bit, float(float) func, .float ammotype, float i, float weapontype, float pickupbasevalue, vector clr, string modelname, string shortname, string wname) { entity e; weapon_info[id - 1] = e = spawn(); @@ -85,10 +85,11 @@ void register_weapon(float id, WepSet bit, float(float) func, .float ammotype, f e.message = wname; //e.items = ammotype; e.weapon_func = func; + e.wpcolor = clr; e.mdl = modelname; e.model = strzone(strcat("models/weapons/g_", modelname, ".md3")); e.spawnflags = weapontype; - e.model2 = strzone(strcat("wpn-", e.mdl)); + e.model2 = strzone(strcat("wpn-", ftos(id))); e.impulse = i; e.bot_pickupbasevalue = pickupbasevalue; e.current_ammo = ammotype; diff --git a/qcsrc/common/weapons/weapons.qh b/qcsrc/common/weapons/weapons.qh index 40fa51f06..3e5197fce 100644 --- a/qcsrc/common/weapons/weapons.qh +++ b/qcsrc/common/weapons/weapons.qh @@ -131,6 +131,7 @@ float W_AmmoItemCode(float wpn); .string message; // human readable name .float items; // IT_... .float(float) weapon_func; // w_... +.vector wpcolor; // waypointsprite color .string mdl; // modelname without g_, v_, w_ .string model; // full name of g_ model .float spawnflags; // WEPSPAWNFLAG_... combined @@ -174,11 +175,11 @@ float W_AmmoItemCode(float wpn); #define WEP_SET_PROP(wepid,wepname,type,prop,name) get_weaponinfo(WEP_##wepid).##prop = autocvar_g_balance_##wepname##_##name; float w_null(float dummy); -void register_weapon(float id, WepSet bit, float(float) func, .float ammotype, float i, float weapontype, float pickupbasevalue, string modelname, string shortname, string wname); +void register_weapon(float id, WepSet bit, float(float) func, .float ammotype, float i, float weapontype, float pickupbasevalue, vector clr, string modelname, string shortname, string wname); void register_weapons_done(); // note: the fabs call is just there to hide "if result is constant" warning -#define REGISTER_WEAPON_2(id,bit,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname) \ +#define REGISTER_WEAPON_2(id,bit,func,ammotype,i,weapontype,pickupbasevalue,clr,modelname,shortname,wname) \ float id; \ WepSet bit; \ float func(float); \ @@ -190,15 +191,15 @@ void register_weapons_done(); if((weapontype) & WEP_FLAG_SUPERWEAPON) \ WEPSET_SUPERWEAPONS |= bit; \ ++WEP_COUNT; \ - register_weapon(id,bit,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname); \ + register_weapon(id,bit,func,ammotype,i,weapontype,pickupbasevalue,clr,modelname,shortname,wname); \ } \ ACCUMULATE_FUNCTION(RegisterWeapons, RegisterWeapons_##id) #ifdef MENUQC -#define REGISTER_WEAPON(id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname) \ - REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,w_null,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname) +#define REGISTER_WEAPON(id,func,ammotype,i,weapontype,pickupbasevalue,clr,modelname,shortname,wname) \ + REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,w_null,ammotype,i,weapontype,pickupbasevalue,clr,modelname,shortname,wname) #else -#define REGISTER_WEAPON(id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname) \ - REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,func,ammotype,i,weapontype,pickupbasevalue,modelname,shortname,wname) +#define REGISTER_WEAPON(id,func,ammotype,i,weapontype,pickupbasevalue,clr,modelname,shortname,wname) \ + REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,func,ammotype,i,weapontype,pickupbasevalue,clr,modelname,shortname,wname) #endif #include "all.qh" -- 2.39.2