From 964028a0fa60d5e513aa517e7be6335081668127 Mon Sep 17 00:00:00 2001 From: Samual Lenks Date: Tue, 11 Jun 2013 02:27:15 -0400 Subject: [PATCH] Now make the Devastator compile and run (mostly) --- qcsrc/client/Main.qc | 1 - qcsrc/client/View.qc | 4 +-- qcsrc/client/damage.qc | 7 ---- qcsrc/client/hud.qc | 4 +-- qcsrc/common/weapons/w_arc.qc | 2 ++ qcsrc/common/weapons/w_devastator.qc | 39 ++++++++++++++-------- qcsrc/common/weapons/weapons.qc | 4 +++ qcsrc/server/miscfunctions.qc | 14 +------- qcsrc/server/mutators/mutator_minstagib.qc | 2 +- qcsrc/server/t_items.qc | 5 --- qcsrc/server/t_quake3.qc | 2 +- 11 files changed, 39 insertions(+), 45 deletions(-) diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index cf6536901..07f21bc0c 100644 --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@ -177,7 +177,6 @@ void CSQC_Init(void) Hook_Precache(); GibSplash_Precache(); Casings_Precache(); - DamageInfo_Precache(); Vehicles_Precache(); turrets_precache(); Tuba_Precache(); diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index 13e41a416..661113666 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -270,7 +270,7 @@ float TrueAimCheck() ta = trueaim; mv = MOVE_NOMONSTERS; - switch(activeweapon) + switch(activeweapon) // WEAPONTODO { case WEP_TUBA: // no aim case WEP_PORTO: // shoots from eye @@ -290,7 +290,7 @@ float TrueAimCheck() return EnemyHitCheck(); } break; - case WEP_ROCKET_LAUNCHER: // projectile has a size! + case WEP_DEVASTATOR: // projectile has a size! mi = '-3 -3 -3'; ma = '3 3 3'; break; diff --git a/qcsrc/client/damage.qc b/qcsrc/client/damage.qc index bbc8f8804..0ac6363e1 100644 --- a/qcsrc/client/damage.qc +++ b/qcsrc/client/damage.qc @@ -353,10 +353,3 @@ void Ent_DamageInfo(float isNew) (get_weaponinfo(hitwep)).weapon_func(WR_IMPACTEFFECT); } } - -void DamageInfo_Precache() -{ - float i; - for(i = WEP_FIRST; i <= WEP_LAST; ++i) - (get_weaponinfo(i)).weapon_func(WR_PRECACHE); -} diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index 273f427e4..bc2334c8e 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -421,7 +421,7 @@ float GetAmmoStat(float i) } } -float GetAmmoTypeForWep(float i) +float GetAmmoTypeForWep(float i) // WEAPONTODO { switch(i) { @@ -436,7 +436,7 @@ float GetAmmoTypeForWep(float i) case WEP_NEX: return 3; case WEP_RIFLE: return 1; case WEP_HAGAR: return 2; - case WEP_ROCKET_LAUNCHER: return 2; + case WEP_DEVASTATOR: return 2; case WEP_SEEKER: return 2; case WEP_FIREBALL: return 4; case WEP_HOOK: return 3; diff --git a/qcsrc/common/weapons/w_arc.qc b/qcsrc/common/weapons/w_arc.qc index 0f5cc152c..dc72833e4 100644 --- a/qcsrc/common/weapons/w_arc.qc +++ b/qcsrc/common/weapons/w_arc.qc @@ -21,6 +21,8 @@ REGISTER_WEAPON( WEP_ADD_CVAR(weapon, MO_PRI, force) \ WEP_ADD_CVAR(weapon, MO_PRI, range) \ WEP_ADD_CVAR(weapon, MO_PRI, refire) \ + WEP_ADD_PROP(weapon, reloading_ammo, reload_ammo) \ + WEP_ADD_PROP(weapon, reloading_time, reload_time) \ WEP_ADD_PROP(weapon, switchdelay_raise, switchdelay_raise) \ WEP_ADD_PROP(weapon, switchdelay_drop, switchdelay_drop) diff --git a/qcsrc/common/weapons/w_devastator.qc b/qcsrc/common/weapons/w_devastator.qc index 5784b2b7c..ab023e479 100644 --- a/qcsrc/common/weapons/w_devastator.qc +++ b/qcsrc/common/weapons/w_devastator.qc @@ -35,16 +35,22 @@ REGISTER_WEAPON( WEP_ADD_CVAR(weapon, MO_NONE, speed) \ WEP_ADD_CVAR(weapon, MO_NONE, speedaccel) \ WEP_ADD_CVAR(weapon, MO_NONE, speedstart) \ + WEP_ADD_PROP(weapon, reloading_ammo, reload_ammo) \ + WEP_ADD_PROP(weapon, reloading_time, reload_time) \ WEP_ADD_PROP(weapon, switchdelay_raise, switchdelay_raise) \ WEP_ADD_PROP(weapon, switchdelay_drop, switchdelay_drop) #ifdef SVQC DEVASTATOR_SETTINGS(devastator) +.float rl_release; +.float rl_detonate_later; #endif #else #ifdef SVQC -.float rl_release; -.float rl_detonate_later; +void spawnfunc_weapon_rocketlauncher() +{ + weapon_defaultspawnfunc(WEP_DEVASTATOR); +} void W_Devastator_Unregister() { @@ -55,7 +61,7 @@ void W_Devastator_Unregister() } } -void W_Devastator_Explode () +void W_Devastator_Explode() { W_Devastator_Unregister(); @@ -83,7 +89,7 @@ void W_Devastator_Explode () remove (self); } -void W_Devastator_DoRemoteExplode () +void W_Devastator_DoRemoteExplode() { W_Devastator_Unregister(); @@ -306,8 +312,6 @@ void W_Devastator_Attack (void) other = missile; MUTATOR_CALLHOOK(EditProjectile); } -void spawnfunc_weapon_rocketlauncher (void); // defined in t_items.qc - float W_Devastator(float req) { entity rock; @@ -446,13 +450,22 @@ float W_Devastator(float req) } else if (req == WR_PRECACHE) { - precache_model ("models/flash.md3"); - precache_model ("models/weapons/g_rl.md3"); - precache_model ("models/weapons/v_rl.md3"); - precache_model ("models/weapons/h_rl.iqm"); - precache_sound ("weapons/rocket_det.wav"); - precache_sound ("weapons/rocket_fire.wav"); - precache_sound ("weapons/rocket_mode.wav"); + if(autocvar_sv_precacheweapons) + { + precache_model ("models/flash.md3"); + precache_model ("models/weapons/g_rl.md3"); + precache_model ("models/weapons/v_rl.md3"); + precache_model ("models/weapons/h_rl.iqm"); + precache_sound ("weapons/rocket_det.wav"); + precache_sound ("weapons/rocket_fire.wav"); + precache_sound ("weapons/rocket_mode.wav"); + } + + #define WEP_ADD_CVAR(weapon,mode,name) /*nothing*/ + #define WEP_ADD_PROP(weapon,prop,name) get_weaponinfo(WEP_DEVASTATOR).##prop = autocvar_g_balance_##weapon##_##name; + ARC_SETTINGS(devastator) + #undef WEP_ADD_CVAR + #undef WEP_ADD_PROP //precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound somewhere else } else if (req == WR_SETUP) diff --git a/qcsrc/common/weapons/weapons.qc b/qcsrc/common/weapons/weapons.qc index 6d4ac360b..4ed0549b5 100644 --- a/qcsrc/common/weapons/weapons.qc +++ b/qcsrc/common/weapons/weapons.qc @@ -36,6 +36,10 @@ void register_weapon(float id, float(float) func, float ammotype, float i, float e.ammo_field = ammo_fuel; else e.ammo_field = ammo_batteries; + + #ifndef MENUQC + func(WR_PRECACHE); + #endif } float w_null(float dummy) { diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index afc276d56..cccdc8ca4 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -458,7 +458,7 @@ void GetCvars_handleFloatOnce(string thisname, float f, .float field, string nam stuffcmd(self, strcat("cl_cmd sendcvar ", name, "\n")); } } -float w_getbestweapon(entity e); +float w_getbestweapon(entity e); // WEAPONTODO string W_FixWeaponOrder_ForceComplete_AndBuildImpulseList(string wo) { string o; @@ -1387,18 +1387,6 @@ void precache() precache_sound ("weapons/hook_impact.wav"); // hook } - if(autocvar_sv_precacheweapons) - { - //precache weapon models/sounds - float wep; - wep = WEP_FIRST; - while (wep <= WEP_LAST) - { - weapon_action(wep, WR_PRECACHE); - wep = wep + 1; - } - } - precache_model("models/elaser.mdl"); precache_model("models/laser.mdl"); precache_model("models/ebomb.mdl"); diff --git a/qcsrc/server/mutators/mutator_minstagib.qc b/qcsrc/server/mutators/mutator_minstagib.qc index a0786b7da..43f95a02d 100644 --- a/qcsrc/server/mutators/mutator_minstagib.qc +++ b/qcsrc/server/mutators/mutator_minstagib.qc @@ -291,7 +291,7 @@ MUTATOR_HOOKFUNCTION(minstagib_FilterItem) return FALSE; } - if(self.weapon == WEP_ROCKET_LAUNCHER || self.weapon == WEP_NEX) + if(self.weapon == WEP_DEVASTATOR || self.weapon == WEP_NEX) { entity e = spawn(); setorigin(e, self.origin); diff --git a/qcsrc/server/t_items.qc b/qcsrc/server/t_items.qc index 926a4ab9d..66676bf2f 100644 --- a/qcsrc/server/t_items.qc +++ b/qcsrc/server/t_items.qc @@ -1320,11 +1320,6 @@ void spawnfunc_weapon_minstanex (void) weapon_defaultspawnfunc(WEP_MINSTANEX); } -void spawnfunc_weapon_rocketlauncher (void) -{ - weapon_defaultspawnfunc(WEP_ROCKET_LAUNCHER); -} - void spawnfunc_item_rockets (void) { if(!self.ammo_rockets) self.ammo_rockets = g_pickup_rockets; diff --git a/qcsrc/server/t_quake3.qc b/qcsrc/server/t_quake3.qc index 50005d9c5..e31bcff07 100644 --- a/qcsrc/server/t_quake3.qc +++ b/qcsrc/server/t_quake3.qc @@ -72,7 +72,7 @@ void target_give_init() entity targ; for (targ = world; (targ = find(targ, targetname, self.target)); ) { if (targ.classname == "weapon_rocketlauncher") { - self.ammo_rockets += targ.count * autocvar_g_balance_rocketlauncher_ammo; + self.ammo_rockets += targ.count * WEP_CVAR(devastator, ammo); self.netname = "rocketlauncher"; } else if (targ.classname == "weapon_plasmagun") { -- 2.39.2