]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Now make the Devastator compile and run (mostly)
authorSamual Lenks <samual@xonotic.org>
Tue, 11 Jun 2013 06:27:15 +0000 (02:27 -0400)
committerSamual Lenks <samual@xonotic.org>
Tue, 11 Jun 2013 06:27:15 +0000 (02:27 -0400)
qcsrc/client/Main.qc
qcsrc/client/View.qc
qcsrc/client/damage.qc
qcsrc/client/hud.qc
qcsrc/common/weapons/w_arc.qc
qcsrc/common/weapons/w_devastator.qc
qcsrc/common/weapons/weapons.qc
qcsrc/server/miscfunctions.qc
qcsrc/server/mutators/mutator_minstagib.qc
qcsrc/server/t_items.qc
qcsrc/server/t_quake3.qc

index cf6536901b0fbda6cf1f8adeab7c48b08298ef02..07f21bc0ce4ba415e1d0c88b2c65ed7eebc7fdd6 100644 (file)
@@ -177,7 +177,6 @@ void CSQC_Init(void)
        Hook_Precache();
        GibSplash_Precache();
        Casings_Precache();
-       DamageInfo_Precache();
        Vehicles_Precache();
        turrets_precache();
        Tuba_Precache();
index 13e41a4167c531dcbba9387dfca2af50cb29ab2b..6611136664f8138b488eb382e88edaa65f241c38 100644 (file)
@@ -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;
index bbc8f88043453a3e0338b02fccbfef6d00955ba2..0ac6363e17582f511bc214c4c55ca1a31ab6b7cf 100644 (file)
@@ -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);
-}
index 273f427e49d11b182662b0a9566c80734e1051f7..bc2334c8e0c1983e9244ccd1ee1f8cc923b0ff85 100644 (file)
@@ -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;
index 0f5cc152cbee56cb66cb904bea12d7857a1a196a..dc72833e42d17c3afc1e7105ecb762be988a3249 100644 (file)
@@ -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)
 
index 5784b2b7c83a5c9f52cc4839dfc6461e67de2e7e..ab023e479086b59b8074255060f4860c988af560 100644 (file)
@@ -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)
index 6d4ac360b31832567b192c18d04b569385bf5e6b..4ed0549b53d8b949a744edd6b6b2b6b0b795c4d3 100644 (file)
@@ -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)
 {
index afc276d5659346f52456fb30db913e03c81191ab..cccdc8ca4d532a08899ac2429aafed815b46ad0c 100644 (file)
@@ -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");
index a0786b7dabfee8c9369eef9f591cf33467075cd4..43f95a02d9be6de4f190b9c7ef89c9f0234fb6e9 100644 (file)
@@ -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);
index 926a4ab9df36a6faeec3214cab01510f72d7f274..66676bf2f4883e052e758585fc9833da9035fb85 100644 (file)
@@ -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;
index 50005d9c58ab0a8893785527d94f9cf42f407e64..e31bcff070b2479dea53874be515d1eb6b990d00 100644 (file)
@@ -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") {