]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Use weaponinfo to get weapon sprite info
authorMario <mario.mario@y7mail.com>
Mon, 16 Dec 2013 22:16:28 +0000 (09:16 +1100)
committerMario <mario.mario@y7mail.com>
Mon, 16 Dec 2013 22:16:28 +0000 (09:16 +1100)
23 files changed:
qcsrc/client/waypointsprites.qc
qcsrc/common/weapons/w_arc.qc
qcsrc/common/weapons/w_blaster.qc
qcsrc/common/weapons/w_crylink.qc
qcsrc/common/weapons/w_devastator.qc
qcsrc/common/weapons/w_electro.qc
qcsrc/common/weapons/w_fireball.qc
qcsrc/common/weapons/w_hagar.qc
qcsrc/common/weapons/w_hlac.qc
qcsrc/common/weapons/w_hook.qc
qcsrc/common/weapons/w_machinegun.qc
qcsrc/common/weapons/w_minelayer.qc
qcsrc/common/weapons/w_mortar.qc
qcsrc/common/weapons/w_nex.qc
qcsrc/common/weapons/w_porto.qc
qcsrc/common/weapons/w_rifle.qc
qcsrc/common/weapons/w_seeker.qc
qcsrc/common/weapons/w_shockwave.qc
qcsrc/common/weapons/w_shotgun.qc
qcsrc/common/weapons/w_tuba.qc
qcsrc/common/weapons/w_vaporizer.qc
qcsrc/common/weapons/weapons.qc
qcsrc/common/weapons/weapons.qh

index dcf1656696e923a0f29d6c0dbb9e8d0e3813aecc..0dc9a7b5bb6c26423cd6d2c393c42b1e9aecf4b9 100644 (file)
@@ -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");
index 181a386adb07e64a5f6bf65110b09b74037c72fa..7288f7a59c6f95044f3d351cfbe81801d4cd6a8a 100644 (file)
@@ -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")
index af28155cb3bc3726b52a662ed7581f5f923072d0..30a2e437d86910872b8aa1d887c1c08a5bd1bc12 100644 (file)
@@ -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")
index 45675b28e4657c8b98280d389bb6a048627e3b40..66e06f6848a18331123bebb0e809e18a06643d1c 100644 (file)
@@ -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")
index d2424704c0aa90be586312b36428c6ab87f71155..0d0d48eb62fa26d0a66525e3f0c92ad4c34f4edf 100644 (file)
@@ -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")
index 2d33e602b365971f6d86f1042802a25d70d25bb3..eb2f5a4aa535a930f138c9990a2ee19ede243a3a 100644 (file)
@@ -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")
index 9269488f9d1f9b94773ae8bd92434367d346128c..46dca3460ecb3843a5f01db3c4b4cd9297065ece 100644 (file)
@@ -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")
index f7a7d5870c3960bb6b243d62c1f43fab5e3b8ae1..070832414161ed8727000ee33127fb734eac0710 100644 (file)
@@ -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")
index 126f922ad85b7ef0f54333d35a8a987ceaac6e00..071230bf412050a75473631e27633215ced57dd8 100644 (file)
@@ -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")
index 54f0cee0eb6317a037b9c83b06a5f826dbe4df63..11faefece59e39fd4ae74219f0ad5fc3ea7df82a 100644 (file)
@@ -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")
index 4ac5fe368cbec541e8e64762516ee4ffa01721bb..29bb8ee918fc67621672804e8bf5a888e94f2d3d 100644 (file)
@@ -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")
index 035c8ac6273252b242dab99ad800a3b4d253a7c3..884de13eb278b47844f352460d7a163a8ef3ea82 100644 (file)
@@ -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")
index ce4ea923a4f1f43b4199cc258dd1a11ce1ad7718..07b90d48279bc49dfa660902ebf4f2393e624dc3 100644 (file)
@@ -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")
index a8ee1dfe221236b3b43ce6bc9aa5c09c33b79bed..f6fe16dab6b6e8ca7b2862903e087d312f5c893b 100644 (file)
@@ -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")
index ee105610f82665f2f9f1d07f675265f85daa00a4..e986e030c42061e9f19d97279030665c28f17dfa 100644 (file)
@@ -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")
index e8d7ee3939207fe756208c34c46daef7651e9054..3f3755747e37fb600d26cdbc2eaddb04d1d62bf0 100644 (file)
@@ -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")
index 34b08410374a9a2c509e6caa4ccc7efac016096e..a8400e4ef40e9ae80f67073db460c8b0ff1d1ca6 100644 (file)
@@ -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")
index 4528351a67b3a89e644b9617663f4cac28b426ed..01c434267ffb356be97b74ffebcf1632798c7caf 100644 (file)
@@ -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")
index 31adb4a8bac30bc3c1cc4078b197c29ebef45a97..4878017d7f26f63303dae60969ca8d61ebe3a4a3 100644 (file)
@@ -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")
index 0023ad3a46603264d24838cba8dda784ee7299fa..df5bb97f90b2fe27c6c6b6f0b086676a2dd9f939 100644 (file)
@@ -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 */
index f0fc11f45004933299a552cd7dc7a156835df657..d267a58d11f33a0bccfb776b1ceb81770db96815 100644 (file)
@@ -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")
index e03475d4729897c37dc1012a910f61bf8cc08289..121df37b2129cce7f680ce5bdcdb90206d7461cf 100644 (file)
@@ -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;
index 40fa51f0654125903a171b045bedb3ebb81ddc0a..3e5197fce2070e8cd7cffe30bf298507e8d64dc8 100644 (file)
@@ -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"