]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Weapons: require explicit pickup model
authorTimePath <andrew.hardaker1995@gmail.com>
Mon, 28 Sep 2015 02:44:57 +0000 (12:44 +1000)
committerTimePath <andrew.hardaker1995@gmail.com>
Mon, 28 Sep 2015 02:44:57 +0000 (12:44 +1000)
24 files changed:
qcsrc/common/weapons/all.qh
qcsrc/common/weapons/weapon/arc.qc
qcsrc/common/weapons/weapon/blaster.qc
qcsrc/common/weapons/weapon/crylink.qc
qcsrc/common/weapons/weapon/devastator.qc
qcsrc/common/weapons/weapon/electro.qc
qcsrc/common/weapons/weapon/fireball.qc
qcsrc/common/weapons/weapon/hagar.qc
qcsrc/common/weapons/weapon/hlac.qc
qcsrc/common/weapons/weapon/hmg.qc
qcsrc/common/weapons/weapon/hook.qc
qcsrc/common/weapons/weapon/machinegun.qc
qcsrc/common/weapons/weapon/minelayer.qc
qcsrc/common/weapons/weapon/mortar.qc
qcsrc/common/weapons/weapon/porto.qc
qcsrc/common/weapons/weapon/rifle.qc
qcsrc/common/weapons/weapon/rpc.qc
qcsrc/common/weapons/weapon/seeker.qc
qcsrc/common/weapons/weapon/shockwave.qc
qcsrc/common/weapons/weapon/shotgun.qc
qcsrc/common/weapons/weapon/tuba.qc
qcsrc/common/weapons/weapon/vaporizer.qc
qcsrc/common/weapons/weapon/vortex.qc
qcsrc/server/weapons/spawning.qc

index 1b7cc72724fb6ecae7ee77d3b96bc3b2b3bf5fbe..7bd56ede53132133753450712676d3aa139f867e 100644 (file)
@@ -3,12 +3,15 @@
 
 #ifndef MENUQC
 #include "calculations.qh"
+#include "../models/models.qh"
 #endif
 
 #include "../util.qh"
+
 #ifdef SVQC
 #include "../../server/bot/aim.qh"
 #endif
+
 const int MAX_SHOT_DISTANCE = 32768;
 
 // weapon pickup ratings for bot logic
@@ -96,6 +99,7 @@ void WepSet_AddStat();
 void WepSet_AddStat_InMap();
 void WriteWepSet(float dest, WepSet w);
 #endif
+
 #ifdef CSQC
 WepSet WepSet_GetFromStat();
 WepSet WepSet_GetFromStat_InMap();
@@ -208,8 +212,8 @@ CLASS(Weapon, Object)
     ATTRIB(Weapon, wpmodel, string, "");
     /** M: modelname : name of model (without g_ v_ or h_ prefixes) */
     ATTRIB(Weapon, mdl, string, "");
-    /** A: modelname : full path to g_ model */
-    ATTRIB(Weapon, model, string, "");
+    /** M: model MDL_id_ITEM */
+    ATTRIB(Weapon, m_model, entity, NULL);
     /** M: simplemdl : simpleitems weapon model/image */
     ATTRIB(Weapon, w_simplemdl, string, "foobar");
     /** M: crosshair : per-weapon crosshair: "CrosshairImage Size" */
@@ -235,6 +239,7 @@ CLASS(Weapon, Object)
                float pickupbasevalue,
                vector clr,
                string modelname,
+               entity m,
                string simplemdl,
                string crosshair,
                string wepimg,
@@ -249,7 +254,7 @@ CLASS(Weapon, Object)
                this.bot_pickupbasevalue = pickupbasevalue;
                this.wpcolor = clr;
                this.mdl = modelname;
-               this.model = strzone(W_Model(strcat("g_", modelname, ".md3")));
+               this.m_model = m;
                this.w_simplemdl = strzone(simplemdl); // simpleitems weapon model/image
                this.w_crosshair = strzone(car(crosshair));
                string s = cdr(crosshair);
@@ -288,16 +293,16 @@ entity dummy_weapon_info;
        } \
        REGISTER_INIT(WEP, id)
 
-#define _REGISTER_WEAPON(id, function, ammotype, impulse, flags, rating, color, modelname, simplemdl, crosshair, wepimg, refname, wepname) \
-       REGISTER_WEAPON_2(id, NEW(Weapon, function, ammotype, impulse, flags, rating, color, modelname, simplemdl, crosshair, wepimg, refname, wepname))
+#define _REGISTER_WEAPON(id, function, ammotype, impulse, flags, rating, color, modelname, mdl, simplemdl, crosshair, wepimg, refname, wepname) \
+       REGISTER_WEAPON_2(id, NEW(Weapon, function, ammotype, impulse, flags, rating, color, modelname, mdl, simplemdl, crosshair, wepimg, refname, wepname))
 
 #ifndef MENUQC
-       #define REGISTER_WEAPON_13(id, function, ammotype, impulse, flags, rating, color, modelname, simplemdl, crosshair, wepimg, refname, wepname) \
+       #define REGISTER_WEAPON_14(id, function, ammotype, impulse, flags, rating, color, modelname, mdl, simplemdl, crosshair, wepimg, refname, wepname) \
        bool function(entity this, int); \
-       _REGISTER_WEAPON(id, function, ammotype, impulse, flags, rating, color, modelname, simplemdl, crosshair, wepimg, refname, wepname)
+       _REGISTER_WEAPON(id, function, ammotype, impulse, flags, rating, color, modelname, mdl, simplemdl, crosshair, wepimg, refname, wepname)
 #else
-       #define REGISTER_WEAPON_13(id, function, ammotype, impulse, flags, rating, color, modelname, simplemdl, crosshair, wepimg, refname, wepname) \
-               _REGISTER_WEAPON(id, w_new,   ammotype, impulse, flags, rating, color, modelname, simplemdl, crosshair, wepimg, refname, wepname)
+       #define REGISTER_WEAPON_14(id, function, ammotype, impulse, flags, rating, color, modelname, mdl, simplemdl, crosshair, wepimg, refname, wepname) \
+               _REGISTER_WEAPON(id, w_new,   ammotype, impulse, flags, rating, color, modelname, NULL, simplemdl, crosshair, wepimg, refname, wepname)
 #endif
 
 #include "all.inc"
index 4de7814688a0706a5e970952721f1411490cdc4e..1a0b42de56fa66e582abb68af674952264957ec5 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_HIGH,
 /* color     */ '1 1 1',
 /* modelname */ "arc",
+/* model     */ MDL_ARC_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairhlac 0.7",
 /* wepimg    */ "weaponarc",
index b71ec598d641cabf89ba31608367f9b0622a0872..ae000e32ca517d1558195eaaaa7e693e6764e19c 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ 0,
 /* color     */ '1 0.5 0.5',
 /* modelname */ "laser",
+/* model     */ MDL_BLASTER_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairlaser 0.5",
 /* wepimg    */ "weaponlaser",
index 1120a184648b0bd9311f3b5af5946a1678668366..d6fefed7b723cfbbedb82e55a2309516ea80f42c 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '1 0.5 1',
 /* modelname */ "crylink",
+/* model     */ MDL_CRYLINK_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshaircrylink 0.5",
 /* wepimg    */ "weaponcrylink",
index 410dd246be37c084718e9ece0b5dbf3f8b6c6c3b..1faae844f9ad37240f2fef6b15243d38a9484c2d 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_HIGH,
 /* color     */ '1 1 0',
 /* modelname */ "rl",
+/* model     */ MDL_DEVASTATOR_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairrocketlauncher 0.7",
 /* wepimg    */ "weaponrocketlauncher",
index d0e300cc570f269d4b298dfcfa49faf002f5f2d8..f08ad101f1e103631d13040b4703b4cfb1b59220 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '0 0.5 1',
 /* modelname */ "electro",
+/* model     */ MDL_ELECTRO_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairelectro 0.6",
 /* wepimg    */ "weaponelectro",
index 89e421f727d6204a095ff661ec2248fb7c1ebf06..0cc765f955da106e7a36731059d16878a674884c 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '1 0.5 0',
 /* modelname */ "fireball",
+/* model     */ MDL_FIREBALL_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairfireball",
 /* wepimg    */ "weaponfireball",
index 84d7335869a633b5a64bf2638cbb159a088a9ff8..7f6b01008788048d12302926fffdf8e04fc759c7 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '1 1 0.5',
 /* modelname */ "hagar",
+/* model     */ MDL_HAGAR_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairhagar 0.8",
 /* wepimg    */ "weaponhagar",
index 1f69bb5ce92248c2d0bf5b25f3db5ee0e34d8a49..c3e9668addd0b38bc61f28168638cda7f69377f7 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '0 1 0',
 /* modelname */ "hlac",
+/* model     */ MDL_HLAC_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairhlac 0.6",
 /* wepimg    */ "weaponhlac",
index beeac392b913979668bd8c709f25213f49c24785..baf9647ebe718852c6ab9df929c63fd63578432c 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating       */ BOT_PICKUP_RATING_HIGH,
 /* color     */ '0.5 0.5 0',
 /* modelname */ "ok_hmg",
+/* model     */ MDL_HMG_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairuzi 0.6",
 /* wepimg    */ "weaponhmg",
index 65327f9c2dda238fcf45e7cbb22576b7bb9d6b8d..52ce4da71a5def5b79770898dac611348eee510d 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ 0,
 /* color     */ '0 0.5 0',
 /* modelname */ "hookgun",
+/* model     */ MDL_HOOK_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairhook 0.5",
 /* wepimg    */ "weaponhook",
index be1781a94bd7b159306de52d832aaceee6273ec7..33871060992d70e25b6769307d7127c25c97f52c 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '1 1 0',
 /* modelname */ "uzi",
+/* model     */ MDL_MACHINEGUN_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairuzi 0.6",
 /* wepimg    */ "weaponuzi",
index ce2ea7d3551c748bff7e2893b28f3ab58c91641d..759361420f641250cf035cd6421033f357ed3a91 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_HIGH,
 /* color     */ '0.75 1 0',
 /* modelname */ "minelayer",
+/* model     */ MDL_MINELAYER_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairminelayer 0.9",
 /* wepimg    */ "weaponminelayer",
index 77cb4602030b67a6cc755d91d1db06890d13ee43..4c276d1caa0593fbdd8c80459b296d049df11bd2 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '1 0 0',
 /* modelname */ "gl",
+/* model     */ MDL_MORTAR_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairgrenadelauncher 0.7",
 /* wepimg    */ "weapongrenadelauncher",
index 7e8b282188316659c1f9eefa898131b7b586f429..6b6e6252a2b89bb261d7615a98e22fe87448546a 100644 (file)
@@ -6,7 +6,9 @@ CLASS(PortoLaunch, Weapon)
 /* rating    */ ATTRIB(PortoLaunch, bot_pickupbasevalue, float, 0);
 /* color     */ ATTRIB(PortoLaunch, wpcolor, vector, '0.5 0.5 0.5');
 /* modelname */ ATTRIB(PortoLaunch, mdl, string, "porto");
-/* model     */ ATTRIB(PortoLaunch, model, string, strzone(W_Model(strcat("g_", this.mdl, ".md3"))));
+#ifndef MENUQC
+/* model     */ ATTRIB(PortoLaunch, m_model, Model, MDL_PORTO_ITEM);
+#endif
 /* simplemdl */ ATTRIB(PortoLaunch, w_simplemdl, string, "foobar");
 /* crosshair */ ATTRIB(PortoLaunch, w_crosshair, string, "gfx/crosshairporto");
 /* crosshair */ ATTRIB(PortoLaunch, w_crosshair_size, float, 0.6);
index a6f2649516e127f1fc9c9cc0da4955df8a8930c8..ef37d80ba912368a783eb92b9480e2ff80e9436d 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '0.5 1 0',
 /* modelname */ "campingrifle",
+/* model     */ MDL_RIFLE_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairrifle 0.6",
 /* wepimg    */ "weaponrifle",
index a91280874865c9df217e638c29a00ce0aff2c5dd..37e5c3cc41a396312393623d5c2b9828993cb31e 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating       */ BOT_PICKUP_RATING_HIGH,
 /* color     */ '0.5 0.5 0',
 /* modelname */ "ok_rl",
+/* model     */ MDL_RPC_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairrocketlauncher 0.7",
 /* wepimg    */ "weaponrpc",
index a81b460d54271c6c981bd72d141d142a9823b53b..0ebbf0b90ff8f1a7a5d4ee51c7c78daaaf55f3c9 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '0.5 1 0',
 /* modelname */ "seeker",
+/* model     */ MDL_SEEKER_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairseeker 0.8",
 /* wepimg    */ "weaponseeker",
index ec91b17b3b23c03a9e0c8c33473b3ead091d69c5..cc0da9418f3bf47d364338d0a1a7b5fa959760ba 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_LOW,
 /* color     */ '0.5 0.25 0',
 /* modelname */ "shotgun",
+/* model     */ MDL_SHOCKWAVE_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairshotgun 0.7",
 /* wepimg    */ "weaponshotgun",
index 1de326384c716a8ff6969f00429302bac0a9596e..b020223547db7d9316903fff506ea2f5e6f2a15c 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_LOW,
 /* color     */ '0.5 0.25 0',
 /* modelname */ "shotgun",
+/* model     */ MDL_SHOTGUN_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairshotgun 0.65",
 /* wepimg    */ "weaponshotgun",
index 2d88f3d2c3e4e3a1b6f9bf2a68cec50745f37ed8..72276a64699892f566e4d36fba2eec17435b55a4 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_MID,
 /* color     */ '0 1 0',
 /* modelname */ "tuba",
+/* model     */ MDL_TUBA_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairtuba",
 /* wepimg    */ "weapontuba",
index 8bf5f06ee099d6c1ae4bbd6384c42943d59b1ccf..c3dfad4af42d4dbfdb6cba8a50c9d4740ec9c200 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_HIGH,
 /* color     */ '0.5 1 1',
 /* modelname */ "minstanex",
+/* model     */ MDL_VAPORIZER_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairminstanex 0.6",
 /* wepimg    */ "weaponminstanex",
index 6f2b7012eba1aee6c94447459d2bac0a2cbe284f..6e2f7418da38a7012cf65c39b668e174e64bd66c 100644 (file)
@@ -8,6 +8,7 @@ REGISTER_WEAPON(
 /* rating    */ BOT_PICKUP_RATING_HIGH,
 /* color     */ '0.5 1 1',
 /* modelname */ "nex",
+/* model     */ MDL_VORTEX_ITEM,
 /* simplemdl */ "foobar",
 /* crosshair */ "gfx/crosshairnex 0.65",
 /* wepimg    */ "weaponnex",
index 4fb84744c9a9264b12f8e96625a479f6cdaee467..7079ee0c020334cd40a0449a0ccec2650fd6b138 100644 (file)
@@ -177,7 +177,7 @@ void weapon_defaultspawnfunc(float wpn)
        if(self.team)
                f |= FL_NO_WEAPON_STAY;
 
-       StartItem(e.model, string_null, self.respawntime, self.respawntimejitter, e.message, 0, e.weapon, f, weapon_pickupevalfunc, e.bot_pickupbasevalue);
+       StartItem(strzone(e.m_model.model_str()), string_null, self.respawntime, self.respawntimejitter, e.message, 0, e.weapon, f, weapon_pickupevalfunc, e.bot_pickupbasevalue);
        self.item_pickupsound_ent = SND_WEAPONPICKUP;
        #if 0 // WEAPONTODO
        if (self.modelindex) // don't precache if self was removed