From 8c24bad1afeccde39828a5902cf96a858146c8cd Mon Sep 17 00:00:00 2001 From: Samual Lenks Date: Fri, 3 Jan 2014 09:49:28 -0500 Subject: [PATCH] On second thought, undo all that shit... this system is WAYYY too hacky to fix in this branch. --- qcsrc/common/weapons/w_arc.qc | 4 +--- qcsrc/common/weapons/w_blaster.qc | 4 +--- qcsrc/common/weapons/w_crylink.qc | 4 +--- qcsrc/common/weapons/w_devastator.qc | 4 +--- qcsrc/common/weapons/w_electro.qc | 4 +--- qcsrc/common/weapons/w_fireball.qc | 4 +--- qcsrc/common/weapons/w_hagar.qc | 4 +--- qcsrc/common/weapons/w_hlac.qc | 4 +--- qcsrc/common/weapons/w_hook.qc | 4 +--- qcsrc/common/weapons/w_machinegun.qc | 4 +--- qcsrc/common/weapons/w_minelayer.qc | 4 +--- qcsrc/common/weapons/w_mortar.qc | 4 +--- qcsrc/common/weapons/w_porto.qc | 4 +--- qcsrc/common/weapons/w_rifle.qc | 4 +--- qcsrc/common/weapons/w_seeker.qc | 4 +--- qcsrc/common/weapons/w_shockwave.qc | 4 +--- qcsrc/common/weapons/w_shotgun.qc | 4 +--- qcsrc/common/weapons/w_tuba.qc | 4 +--- qcsrc/common/weapons/w_vaporizer.qc | 4 +--- qcsrc/common/weapons/w_vortex.qc | 4 +--- qcsrc/common/weapons/weapons.qc | 13 +++++------- qcsrc/common/weapons/weapons.qh | 26 ++++++++--------------- qcsrc/server/defs.qh | 2 +- qcsrc/server/miscfunctions.qc | 2 +- qcsrc/server/weapons/weaponsystem.qc | 31 ++++++++++++---------------- 25 files changed, 49 insertions(+), 105 deletions(-) diff --git a/qcsrc/common/weapons/w_arc.qc b/qcsrc/common/weapons/w_arc.qc index 8aed10da6..7fe270d2b 100644 --- a/qcsrc/common/weapons/w_arc.qc +++ b/qcsrc/common/weapons/w_arc.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_NORMAL, /* rating */ BOT_PICKUP_RATING_HIGH, /* color */ '1 1 1', -/* firstpmdl */ "models/weapons/h_hlac.iqm", -/* thirdpmdl */ "models/weapons/v_hlac.md3", -/* pickupmdl */ "models/weapons/g_hlac.md3", +/* modelname */ "hlac", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairhlac 0.7", /* refname */ "arc", diff --git a/qcsrc/common/weapons/w_blaster.qc b/qcsrc/common/weapons/w_blaster.qc index d14b55535..b61afa391 100644 --- a/qcsrc/common/weapons/w_blaster.qc +++ b/qcsrc/common/weapons/w_blaster.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ 0, /* color */ '1 0.5 0.5', -/* firstpmdl */ "models/weapons/h_laser.iqm", -/* thirdpmdl */ "models/weapons/v_laser.md3", -/* pickupmdl */ "models/weapons/g_laser.md3", +/* modelname */ "laser", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairlaser 0.4", /* refname */ "laser", diff --git a/qcsrc/common/weapons/w_crylink.qc b/qcsrc/common/weapons/w_crylink.qc index 8f94f20fb..c211ff48e 100644 --- a/qcsrc/common/weapons/w_crylink.qc +++ b/qcsrc/common/weapons/w_crylink.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '1 0.5 1', -/* firstpmdl */ "models/weapons/h_crylink.iqm", -/* thirdpmdl */ "models/weapons/v_crylink.md3", -/* pickupmdl */ "models/weapons/g_crylink.md3", +/* modelname */ "crylink", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshaircrylink 0.4", /* refname */ "crylink", diff --git a/qcsrc/common/weapons/w_devastator.qc b/qcsrc/common/weapons/w_devastator.qc index dfebd6a9c..52f43062c 100644 --- a/qcsrc/common/weapons/w_devastator.qc +++ b/qcsrc/common/weapons/w_devastator.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_HIGH, /* color */ '1 1 0', -/* firstpmdl */ "models/weapons/h_rl.iqm", -/* thirdpmdl */ "models/weapons/v_rl.md3", -/* pickupmdl */ "models/weapons/g_rl.md3", +/* modelname */ "rl", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairrocketlauncher 0.5875", /* refname */ "devastator", diff --git a/qcsrc/common/weapons/w_electro.qc b/qcsrc/common/weapons/w_electro.qc index f5720ed64..8826bd4a0 100644 --- a/qcsrc/common/weapons/w_electro.qc +++ b/qcsrc/common/weapons/w_electro.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '0 0.5 1', -/* firstpmdl */ "models/weapons/h_electro.iqm", -/* thirdpmdl */ "models/weapons/v_electro.md3", -/* pickupmdl */ "models/weapons/g_electro.md3", +/* modelname */ "electro", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairelectro 0.5", /* refname */ "electro", diff --git a/qcsrc/common/weapons/w_fireball.qc b/qcsrc/common/weapons/w_fireball.qc index c0391259f..ab90c38b7 100644 --- a/qcsrc/common/weapons/w_fireball.qc +++ b/qcsrc/common/weapons/w_fireball.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_SUPERWEAPON | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '1 0.5 0', -/* firstpmdl */ "models/weapons/h_fireball.iqm", -/* thirdpmdl */ "models/weapons/v_fireball.md3", -/* pickupmdl */ "models/weapons/g_fireball.md3", +/* modelname */ "fireball", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairfireball", /* refname */ "fireball", diff --git a/qcsrc/common/weapons/w_hagar.qc b/qcsrc/common/weapons/w_hagar.qc index f311d17eb..22d835e47 100644 --- a/qcsrc/common/weapons/w_hagar.qc +++ b/qcsrc/common/weapons/w_hagar.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '1 1 0.5', -/* firstpmdl */ "models/weapons/h_hagar.iqm", -/* thirdpmdl */ "models/weapons/v_hagar.md3", -/* pickupmdl */ "models/weapons/g_hagar.md3", +/* modelname */ "hagar", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairhagar 0.8", /* refname */ "hagar", diff --git a/qcsrc/common/weapons/w_hlac.qc b/qcsrc/common/weapons/w_hlac.qc index 46431cee8..91aee6344 100644 --- a/qcsrc/common/weapons/w_hlac.qc +++ b/qcsrc/common/weapons/w_hlac.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '0 1 0', -/* firstpmdl */ "models/weapons/h_hlac.iqm", -/* thirdpmdl */ "models/weapons/v_hlac.md3", -/* pickupmdl */ "models/weapons/g_hlac.md3", +/* modelname */ "hlac", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairhlac 0.6", /* refname */ "hlac", diff --git a/qcsrc/common/weapons/w_hook.qc b/qcsrc/common/weapons/w_hook.qc index 9e20f3615..9d47011e7 100644 --- a/qcsrc/common/weapons/w_hook.qc +++ b/qcsrc/common/weapons/w_hook.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ 0, /* color */ '0 0.5 0', -/* firstpmdl */ "models/weapons/h_hookgun.iqm", -/* thirdpmdl */ "models/weapons/v_hookgun.md3", -/* pickupmdl */ "models/weapons/g_hookgun.md3", +/* modelname */ "hookgun", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairhook 0.5", /* refname */ "hook", diff --git a/qcsrc/common/weapons/w_machinegun.qc b/qcsrc/common/weapons/w_machinegun.qc index 471261b95..8753819be 100644 --- a/qcsrc/common/weapons/w_machinegun.qc +++ b/qcsrc/common/weapons/w_machinegun.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '1 1 0', -/* firstpmdl */ "models/weapons/h_uzi.iqm", -/* thirdpmdl */ "models/weapons/v_uzi.md3", -/* pickupmdl */ "models/weapons/g_uzi.md3", +/* modelname */ "uzi", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairuzi 0.6", /* refname */ "uzi", diff --git a/qcsrc/common/weapons/w_minelayer.qc b/qcsrc/common/weapons/w_minelayer.qc index 6838f42ef..1443b4ff9 100644 --- a/qcsrc/common/weapons/w_minelayer.qc +++ b/qcsrc/common/weapons/w_minelayer.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_HIGH, /* color */ '0.75 1 0', -/* firstpmdl */ "models/weapons/h_minelayer.iqm", -/* thirdpmdl */ "models/weapons/v_minelayer.md3", -/* pickupmdl */ "models/weapons/g_minelayer.md3", +/* modelname */ "minelayer", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairminelayer 0.9", /* refname */ "minelayer", diff --git a/qcsrc/common/weapons/w_mortar.qc b/qcsrc/common/weapons/w_mortar.qc index f6326acae..0e69ed9cd 100644 --- a/qcsrc/common/weapons/w_mortar.qc +++ b/qcsrc/common/weapons/w_mortar.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '1 0 0', -/* firstpmdl */ "models/weapons/h_gl.iqm", -/* thirdpmdl */ "models/weapons/v_gl.md3", -/* pickupmdl */ "models/weapons/g_gl.md3", +/* modelname */ "gl", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairgrenadelauncher 0.7", /* refname */ "grenadelauncher", diff --git a/qcsrc/common/weapons/w_porto.qc b/qcsrc/common/weapons/w_porto.qc index 512a923ec..c127e0db8 100644 --- a/qcsrc/common/weapons/w_porto.qc +++ b/qcsrc/common/weapons/w_porto.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_TYPE_OTHER | WEP_FLAG_SUPERWEAPON, /* rating */ 0, /* color */ '0.5 0.5 0.5', -/* firstpmdl */ "models/weapons/h_porto.iqm", -/* thirdpmdl */ "models/weapons/v_porto.md3", -/* pickupmdl */ "models/weapons/g_porto.md3", +/* modelname */ "porto", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairporto 0.6", /* refname */ "porto", diff --git a/qcsrc/common/weapons/w_rifle.qc b/qcsrc/common/weapons/w_rifle.qc index 1f6581a49..25e9cc4d2 100644 --- a/qcsrc/common/weapons/w_rifle.qc +++ b/qcsrc/common/weapons/w_rifle.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '0.5 1 0', -/* firstpmdl */ "models/weapons/h_campingrifle.iqm", -/* thirdpmdl */ "models/weapons/v_campingrifle.md3", -/* pickupmdl */ "models/weapons/g_campingrifle.md3", +/* modelname */ "campingrifle", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairrifle 0.5", /* refname */ "rifle", diff --git a/qcsrc/common/weapons/w_seeker.qc b/qcsrc/common/weapons/w_seeker.qc index 9bc01accd..b7ad7235d 100644 --- a/qcsrc/common/weapons/w_seeker.qc +++ b/qcsrc/common/weapons/w_seeker.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '0.5 1 0', -/* firstpmdl */ "models/weapons/h_seeker.iqm", -/* thirdpmdl */ "models/weapons/v_seeker.md3", -/* pickupmdl */ "models/weapons/g_seeker.md3", +/* modelname */ "seeker", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairseeker 0.8", /* refname */ "seeker", diff --git a/qcsrc/common/weapons/w_shockwave.qc b/qcsrc/common/weapons/w_shockwave.qc index 6acbc2c64..574e99683 100644 --- a/qcsrc/common/weapons/w_shockwave.qc +++ b/qcsrc/common/weapons/w_shockwave.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_NORMAL | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_LOW, /* color */ '0.5 0.25 0', -/* firstpmdl */ "models/weapons/h_shotgun.iqm", -/* thirdpmdl */ "models/weapons/v_shotgun.md3", -/* pickupmdl */ "models/weapons/g_shotgun.md3", +/* modelname */ "shotgun", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairshotgun 0.7", /* refname */ "shockwave", diff --git a/qcsrc/common/weapons/w_shotgun.qc b/qcsrc/common/weapons/w_shotgun.qc index 246a4825a..f056078ec 100644 --- a/qcsrc/common/weapons/w_shotgun.qc +++ b/qcsrc/common/weapons/w_shotgun.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_MUTATORBLOCKED, /* rating */ BOT_PICKUP_RATING_LOW, /* color */ '0.5 0.25 0', -/* firstpmdl */ "models/weapons/h_shotgun.iqm", -/* thirdpmdl */ "models/weapons/v_shotgun.md3", -/* pickupmdl */ "models/weapons/g_shotgun.md3", +/* modelname */ "shotgun", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairshotgun 0.65", /* refname */ "shotgun", diff --git a/qcsrc/common/weapons/w_tuba.qc b/qcsrc/common/weapons/w_tuba.qc index 64feb675b..bb57ce9b6 100644 --- a/qcsrc/common/weapons/w_tuba.qc +++ b/qcsrc/common/weapons/w_tuba.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_HIDDEN | WEP_TYPE_SPLASH, /* rating */ BOT_PICKUP_RATING_MID, /* color */ '0 1 0', -/* firstpmdl */ "models/weapons/h_tuba.iqm", -/* thirdpmdl */ "models/weapons/v_tuba.md3", -/* pickupmdl */ "models/weapons/g_tuba.md3", +/* modelname */ "tuba", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairtuba", /* refname */ "tuba", diff --git a/qcsrc/common/weapons/w_vaporizer.qc b/qcsrc/common/weapons/w_vaporizer.qc index 2b754395e..8286ba3a0 100644 --- a/qcsrc/common/weapons/w_vaporizer.qc +++ b/qcsrc/common/weapons/w_vaporizer.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_FLAG_SUPERWEAPON | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_HIGH, /* color */ '0.5 1 1', -/* firstpmdl */ "models/weapons/h_minstanex.iqm", -/* thirdpmdl */ "models/weapons/v_minstanex.md3", -/* pickupmdl */ "models/weapons/g_minstanex.md3", +/* modelname */ "minstanex", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairminstanex 0.4", /* refname */ "minstanex", diff --git a/qcsrc/common/weapons/w_vortex.qc b/qcsrc/common/weapons/w_vortex.qc index b9722b445..4f713b3dd 100644 --- a/qcsrc/common/weapons/w_vortex.qc +++ b/qcsrc/common/weapons/w_vortex.qc @@ -7,9 +7,7 @@ REGISTER_WEAPON( /* flags */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN, /* rating */ BOT_PICKUP_RATING_HIGH, /* color */ '0.5 1 1', -/* firstpmdl */ "models/weapons/h_nex.iqm", -/* thirdpmdl */ "models/weapons/v_nex.md3", -/* pickupmdl */ "models/weapons/g_nex.md3", +/* modelname */ "nex", /* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairnex 0.65", /* refname */ "nex", diff --git a/qcsrc/common/weapons/weapons.qc b/qcsrc/common/weapons/weapons.qc index 7767ac916..1166ab2cc 100644 --- a/qcsrc/common/weapons/weapons.qc +++ b/qcsrc/common/weapons/weapons.qc @@ -83,7 +83,7 @@ void register_weapon( float weapontype, float pickupbasevalue, vector clr, - string firstpmdl, + string modelname, string thirdpmdl, string pickupmdl, string simplemdl, @@ -103,9 +103,8 @@ void register_weapon( e.bot_pickupbasevalue = pickupbasevalue; e.wpcolor = clr; e.wpmodel = strzone(strcat("wpn-", ftos(id))); - e.w_firstpmdl = strzone(firstpmdl); // first person view weapon model (h_) - e.w_thirdpmdl = strzone(thirdpmdl); // third person weapon model (v_) - e.w_pickupmdl = strzone(pickupmdl); // pickup weapon model (g_) + e.mdl = modelname; + e.model = strzone(strcat("models/weapons/g_", modelname, ".md3")); e.w_simplemdl = strzone(simplemdl); // simpleitems weapon model/image e.w_crosshair = strzone(car(crosshair)); string s = cdr(crosshair); @@ -131,10 +130,8 @@ void register_weapons_done() dummy_weapon_info.message = "AOL CD Thrower"; dummy_weapon_info.weapon_func = w_null; dummy_weapon_info.wpmodel = ""; - dummy_weapon_info.w_firstpmdl = ""; - dummy_weapon_info.w_thirdpmdl = ""; - dummy_weapon_info.w_pickupmdl = ""; - dummy_weapon_info.w_simplemdl = ""; + dummy_weapon_info.mdl = ""; + dummy_weapon_info.model = ""; dummy_weapon_info.spawnflags = 0; dummy_weapon_info.impulse = -1; dummy_weapon_info.bot_pickupbasevalue = 0; diff --git a/qcsrc/common/weapons/weapons.qh b/qcsrc/common/weapons/weapons.qh index b0a23b832..31f79dafd 100644 --- a/qcsrc/common/weapons/weapons.qh +++ b/qcsrc/common/weapons/weapons.qh @@ -138,9 +138,7 @@ void register_weapon( float weapontype, float pickupbasevalue, vector clr, - string firstpmdl, - string thirdpmdl, - string pickupmdl, + string modelname, string simplemdl, string crosshair, string refname, @@ -159,23 +157,17 @@ void register_weapons_done(); .float bot_pickupbasevalue; // M: rating // bot weapon priority .vector wpcolor; // M: color // waypointsprite color .string wpmodel; // A: wpn-id // wpn- sprite name -.string w_firstpmdl; // M: firstpmdl // first person view weapon model (h_) -.string w_thirdpmdl; // M: thirdpmdl // third person weapon model (v_) -.string w_pickupmdl; // M: pickupmdl // pickup weapon model (g_) +.string mdl; // M: modelname // name of model (without g_ v_ or h_ prefixes) +.string model; // A: modelname // full path to g_ model .string w_simplemdl; // M: simplemdl // simpleitems weapon model/image .string w_crosshair; // M: crosshair // per-weapon crosshair: "CrosshairImage Size" .float w_crosshair_size; // A: crosshair // per-weapon crosshair size (argument two of "crosshair" field) .string netname; // M: refname // reference name name .string message; // M: wepname // human readable name -#define WEP_MODEL_FIRSTPERSON model -#define WEP_MODEL_THIRDPERSON model2 -#define WEP_MODEL_PICKUP model3 -#define WEP_MODEL_SIMPLE mdl - // note: the fabs call is just there to hide "if result is constant" warning -#define REGISTER_WEAPON_2(id,bit,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname) \ +#define REGISTER_WEAPON_2(id,bit,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,refname,wepname) \ float id; \ WepSet bit; \ float function(float); \ @@ -187,15 +179,15 @@ void register_weapons_done(); if((flags) & WEP_FLAG_SUPERWEAPON) \ WEPSET_SUPERWEAPONS |= bit; \ ++WEP_COUNT; \ - register_weapon(id,bit,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname); \ + register_weapon(id,bit,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,refname,wepname); \ } \ ACCUMULATE_FUNCTION(RegisterWeapons, RegisterWeapons_##id) #ifdef MENUQC -#define REGISTER_WEAPON(id,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname) \ - REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,w_null,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname) +#define REGISTER_WEAPON(id,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,refname,wepname) \ + REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,w_null,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,refname,wepname) #else -#define REGISTER_WEAPON(id,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname) \ - REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,function,ammotype,impulse,flags,rating,color,firstpmdl,thirdpmdl,pickupmdl,simplemdl,crosshair,refname,wepname) +#define REGISTER_WEAPON(id,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,refname,wepname) \ + REGISTER_WEAPON_2(WEP_##id,WEPSET_##id,function,ammotype,impulse,flags,rating,color,modelname,simplemdl,crosshair,refname,wepname) #endif #include "all.qh" diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index b07aec818..f35dc4043 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -173,7 +173,7 @@ void setanim(entity e, vector anim, float looping, float override, float restart .string item_pickupsound; // definitions for weaponsystem - +// more WEAPONTODO: move these to their proper files .entity weaponentity; .entity exteriorweaponentity; .vector weaponentity_glowmod; diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index eb3781647..c09921e53 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -624,7 +624,7 @@ float warmup_start_health; float warmup_start_armorvalue; float g_weapon_stay; -float want_weapon(entity weaponinfo, float allguns) // WEAPONTODO +float want_weapon(entity weaponinfo, float allguns) // WEAPONTODO: what still needs done? { var float i = weaponinfo.weapon; var float d = 0; diff --git a/qcsrc/server/weapons/weaponsystem.qc b/qcsrc/server/weapons/weaponsystem.qc index 548649db3..b4c46ca6f 100644 --- a/qcsrc/server/weapons/weaponsystem.qc +++ b/qcsrc/server/weapons/weaponsystem.qc @@ -6,7 +6,7 @@ =========================================================================== */ -// WEAPONTODO: move to the .qh file + .float weapon_frametime; float W_WeaponRateFactor() @@ -87,25 +87,20 @@ float CL_Weaponentity_CustomizeEntityForClient() // to free: // call again with "" // remove the ent - -//#define WEP_MODEL_FIRSTPERSON model // h_ // wep.WEP_MODEL_FIRSTPERSON -//#define WEP_MODEL_THIRDPERSON model2 // v_ // wep.WEP_MODEL_THIRDPERSON -//#define WEP_MODEL_PICKUP model3 // g_ // wep.WEP_MODEL_PICKUP -//#define WEP_MODEL_SIMPLE mdl -void CL_WeaponEntity_SetModel(entity wep) +void CL_WeaponEntity_SetModel(string name) { float v_shot_idx; - if(wep) + if (name != "") { // if there is a child entity, hide it until we're sure we use it if (self.weaponentity) self.weaponentity.model = ""; - setmodel(self, wep.WEP_MODEL_THIRDPERSON); // precision set below + setmodel(self, strcat("models/weapons/v_", name, ".md3")); // precision set below v_shot_idx = gettagindex(self, "shot"); // used later if(!v_shot_idx) v_shot_idx = gettagindex(self, "tag_shot"); - setmodel(self, wep.WEP_MODEL_FIRSTPERSON); // precision set below + setmodel(self, strcat("models/weapons/h_", name, ".iqm")); // precision set below // preset some defaults that work great for renamed zym files (which don't need an animinfo) self.anim_fire1 = animfixfps(self, '0 1 0.01', '0 0 0'); self.anim_fire2 = animfixfps(self, '1 1 0.01', '0 0 0'); @@ -118,14 +113,14 @@ void CL_WeaponEntity_SetModel(entity wep) { if (!self.weaponentity) self.weaponentity = spawn(); - setmodel(self.weaponentity, wep.WEP_MODEL_THIRDPERSON); // precision does not matter + setmodel(self.weaponentity, strcat("models/weapons/v_", name, ".md3")); // precision does not matter setattachment(self.weaponentity, self, "weapon"); } else if(gettagindex(self, "tag_weapon")) { if (!self.weaponentity) self.weaponentity = spawn(); - setmodel(self.weaponentity, wep.WEP_MODEL_THIRDPERSON); // precision does not matter + setmodel(self.weaponentity, strcat("models/weapons/v_", name, ".md3")); // precision does not matter setattachment(self.weaponentity, self, "tag_weapon"); } else @@ -253,13 +248,14 @@ void CL_WeaponEntity_SetModel(entity wep) vector CL_Weapon_GetShotOrg(float wpn) { - entity oldself; + entity wi, oldself; vector ret; + wi = get_weaponinfo(wpn); oldself = self; self = spawn(); - CL_WeaponEntity_SetModel(get_weaponinfo(wpn)); + CL_WeaponEntity_SetModel(wi.mdl); ret = self.movedir; - CL_WeaponEntity_SetModel(world); + CL_WeaponEntity_SetModel(""); remove(self); self = oldself; return ret; @@ -285,14 +281,13 @@ void CL_Weaponentity_Think() self.weaponentity.model = ""; return; } - if (self.weaponname != self.owner.weaponname || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag) // WEAPONTODO: get rid of .weaponname, handle model directly + if (self.weaponname != self.owner.weaponname || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag) { self.weaponname = self.owner.weaponname; self.dmg = self.owner.modelindex; self.deadflag = self.owner.deadflag; - // WEAPONTODO: get weapon entity from here! - //CL_WeaponEntity_SetModel(self.owner.weaponname); + CL_WeaponEntity_SetModel(self.owner.weaponname); } tb = (self.effects & (EF_TELEPORT_BIT | EF_RESTARTANIM_BIT)); -- 2.39.2