]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/w_nex.qc
Remove a debug print
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / w_nex.qc
index 4b03535903b53d49a8ba6383841e4ee803e69c50..f6fe16dab6b6e8ca7b2862903e087d312f5c893b 100644 (file)
@@ -1,56 +1,58 @@
 #ifdef REGISTER_WEAPON
 REGISTER_WEAPON(
-/* WEP_##id  */ NEX,
-/* function  */ w_nex,
-/* ammotype  */ IT_CELLS,
-/* impulse   */ 7,
-/* flags     */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN,
-/* rating    */ BOT_PICKUP_RATING_HIGH,
-/* model     */ "nex",
-/* shortname */ "nex",
-/* fullname  */ _("Nex")
+/* WEP_##id */ NEX,
+/* function */ w_nex,
+/* ammotype */ ammo_cells,
+/* 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")
 );
 
-#define NEX_SETTINGS(weapon) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, ammo) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, animtime) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damage) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, force) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damagefalloff_mindist) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damagefalloff_maxdist) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damagefalloff_halflife) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, damagefalloff_forcehalflife) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, ammo) \
-       WEP_ADD_CVAR(weapon, MO_BOTH, refire) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_mindmg) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_shot_multiplier) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_animlimit) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_limit) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_rate) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_rot_rate) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_rot_pause) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_start) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_minspeed) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_maxspeed) \
-       WEP_ADD_CVAR(weapon, MO_NONE, charge_velocity_rate) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  chargepool) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  chargepool_regen) \
-       WEP_ADD_CVAR(weapon, MO_SEC,  chargepool_pause_regen) \
-       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)
+#define NEX_SETTINGS(w_cvar,w_prop) NEX_SETTINGS_LIST(w_cvar, w_prop, NEX, nex)
+#define NEX_SETTINGS_LIST(w_cvar,w_prop,id,sn) \
+       w_cvar(id, sn, BOTH, ammo) \
+       w_cvar(id, sn, BOTH, animtime) \
+       w_cvar(id, sn, BOTH, damage) \
+       w_cvar(id, sn, BOTH, force) \
+       w_cvar(id, sn, BOTH, damagefalloff_mindist) \
+       w_cvar(id, sn, BOTH, damagefalloff_maxdist) \
+       w_cvar(id, sn, BOTH, damagefalloff_halflife) \
+       w_cvar(id, sn, BOTH, damagefalloff_forcehalflife) \
+       w_cvar(id, sn, BOTH, refire) \
+       w_cvar(id, sn, NONE, charge) \
+       w_cvar(id, sn, NONE, charge_mindmg) \
+       w_cvar(id, sn, NONE, charge_shot_multiplier) \
+       w_cvar(id, sn, NONE, charge_animlimit) \
+       w_cvar(id, sn, NONE, charge_limit) \
+       w_cvar(id, sn, NONE, charge_rate) \
+       w_cvar(id, sn, NONE, charge_rot_rate) \
+       w_cvar(id, sn, NONE, charge_rot_pause) \
+       w_cvar(id, sn, NONE, charge_start) \
+       w_cvar(id, sn, NONE, charge_minspeed) \
+       w_cvar(id, sn, NONE, charge_maxspeed) \
+       w_cvar(id, sn, NONE, charge_velocity_rate) \
+       w_cvar(id, sn, NONE, secondary) \
+       w_cvar(id, sn, SEC,  chargepool) \
+       w_cvar(id, sn, SEC,  chargepool_regen) \
+       w_cvar(id, sn, SEC,  chargepool_pause_regen) \
+       w_prop(id, sn, float,  reloading_ammo, reload_ammo) \
+       w_prop(id, sn, float,  reloading_time, reload_time) \
+       w_prop(id, sn, float,  switchdelay_raise, switchdelay_raise) \
+       w_prop(id, sn, float,  switchdelay_drop, switchdelay_drop) \
+       w_prop(id, sn, string, weaponreplace, weaponreplace) \
+       w_prop(id, sn, float,  weaponstart, weaponstart) \
+       w_prop(id, sn, float,  weaponstartoverride, weaponstartoverride)
 
 #ifdef SVQC
-NEX_SETTINGS(nex)
-void spawnfunc_weapon_nex (void)
-{
-       weapon_defaultspawnfunc(WEP_NEX);
-}
+NEX_SETTINGS(WEP_ADD_CVAR, WEP_ADD_PROP)
 #endif
 #else
 #ifdef SVQC
+void spawnfunc_weapon_nex (void) { weapon_defaultspawnfunc(WEP_NEX); }
 
 void SendCSQCNexBeamParticle(float charge) {
        vector v;
@@ -108,7 +110,7 @@ void W_Nex_Attack (float issecondary)
        //beam and muzzle flash done on client
        SendCSQCNexBeamParticle(charge);
 
-       W_DecreaseAmmo(ammo_cells, myammo, autocvar_g_balance_nex_reload_ammo);
+       W_DecreaseAmmo(myammo);
 }
 
 void spawnfunc_weapon_nex (void); // defined in t_items.qc
@@ -144,8 +146,8 @@ float w_nex(float req)
                                        self.pauseregen_finished = max(self.pauseregen_finished, time + WEP_CVAR_SEC(nex, chargepool_pause_regen));
                                }
 
-                       if(autocvar_g_balance_nex_reload_ammo && self.clip_load < min(autocvar_g_balance_nex_primary_ammo, autocvar_g_balance_nex_secondary_ammo)) // forced reload
-                               weapon_action(self.weapon, WR_RELOAD);
+                       if(autocvar_g_balance_nex_reload_ammo && self.clip_load < min(WEP_CVAR_PRI(nex, ammo), WEP_CVAR_SEC(nex, ammo))) // forced reload
+                               WEP_ACTION(self.weapon, WR_RELOAD);
                        else
                        {
                                if (self.BUTTON_ATCK)
@@ -156,7 +158,7 @@ float w_nex(float req)
                                                weapon_thinkf(WFRAME_FIRE1, WEP_CVAR_PRI(nex, animtime), w_ready);
                                        }
                                }
-                               if ((WEP_CVAR(nex, charge) && !autocvar_g_balance_nex_secondary) ? (self.BUTTON_ZOOM | self.BUTTON_ZOOMSCRIPT) : self.BUTTON_ATCK2)
+                               if ((WEP_CVAR(nex, charge) && !WEP_CVAR(nex, secondary)) ? (self.BUTTON_ZOOM | self.BUTTON_ZOOMSCRIPT) : self.BUTTON_ATCK2)
                                {
                                        if(WEP_CVAR(nex, charge))
                                        {
@@ -186,7 +188,7 @@ float w_nex(float req)
                                                                if(self.BUTTON_ATCK2) // only eat ammo when the button is pressed
                                                                {
                                                                        dt = min(dt, (1 - self.nex_charge) / WEP_CVAR(nex, charge_rate));
-                                                                       if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
+                                                                       if(!(self.items & IT_UNLIMITED_WEAPON_AMMO))
                                                                        {
                                                                                // if this weapon is reloadable, decrease its load. Else decrease the player's ammo
                                                                                if(autocvar_g_balance_nex_reload_ammo)
@@ -201,11 +203,11 @@ float w_nex(float req)
                                                                                }
                                                                                else
                                                                                {
-                                                                                       dt = min(dt, (self.ammo_cells - WEP_CVAR_PRI(nex, ammo)) / WEP_CVAR_SEC(nex, ammo));
+                                                                                       dt = min(dt, (self.AMMO_VAL(WEP_NEX) - WEP_CVAR_PRI(nex, ammo)) / WEP_CVAR_SEC(nex, ammo));
                                                                                        dt = max(0, dt);
                                                                                        if(dt > 0)
                                                                                        {
-                                                                                               self.ammo_cells = max(WEP_CVAR_SEC(nex, ammo), self.ammo_cells - WEP_CVAR_SEC(nex, ammo) * dt);
+                                                                                               self.AMMO_VAL(WEP_NEX) = max(WEP_CVAR_SEC(nex, ammo), self.AMMO_VAL(WEP_NEX) - WEP_CVAR_SEC(nex, ammo) * dt);
                                                                                        }
                                                                                }
                                                                        }
@@ -220,7 +222,7 @@ float w_nex(float req)
                                                        }
                                                }
                                        }
-                                       else if(autocvar_g_balance_nex_secondary)
+                                       else if(WEP_CVAR(nex, secondary))
                                        {
                                                if (weapon_prepareattack(0, WEP_CVAR_SEC(nex, refire)))
                                                {
@@ -233,7 +235,7 @@ float w_nex(float req)
                        
                        return TRUE;
                }
-               case WR_PRECACHE:
+               case WR_INIT:
                {
                        precache_model ("models/nexflash.md3");
                        precache_model ("models/weapons/g_nex.md3");
@@ -244,32 +246,22 @@ float w_nex(float req)
                        precache_sound ("weapons/nexwhoosh1.wav");
                        precache_sound ("weapons/nexwhoosh2.wav");
                        precache_sound ("weapons/nexwhoosh3.wav");
-                       #define WEP_ADD_CVAR(weapon,mode,name) /*nothing*/
-                       #define WEP_ADD_PROP(weapon,prop,name) get_weaponinfo(WEP_NEX).##prop = autocvar_g_balance_##weapon##_##name;
-                       NEX_SETTINGS(nex)
-                       #undef WEP_ADD_CVAR
-                       #undef WEP_ADD_PROP
-                       return TRUE;
-               }
-               case WR_SETUP:
-               {
-                       weapon_setup(WEP_NEX);
-                       self.current_ammo = ammo_cells;
+                       NEX_SETTINGS(WEP_SKIPCVAR, WEP_SET_PROP)
                        return TRUE;
                }
                case WR_CHECKAMMO1:
                {
-                       ammo_amount = self.ammo_cells >= WEP_CVAR_PRI(nex, ammo);
+                       ammo_amount = self.AMMO_VAL(WEP_NEX) >= WEP_CVAR_PRI(nex, ammo);
                        ammo_amount += (autocvar_g_balance_nex_reload_ammo && self.(weapon_load[WEP_NEX]) >= WEP_CVAR_PRI(nex, ammo));
                        return ammo_amount;
                }
                case WR_CHECKAMMO2:
                {
-                       if(autocvar_g_balance_nex_secondary)
+                       if(WEP_CVAR(nex, secondary))
                        {
                                // don't allow charging if we don't have enough ammo
-                               ammo_amount = self.ammo_cells >= WEP_CVAR_SEC(nex, ammo);
-                               ammo_amount += self.(weapon_load[WEP_NEX]) >= WEP_CVAR_SEC(nex, ammo);  
+                               ammo_amount = self.AMMO_VAL(WEP_NEX) >= WEP_CVAR_SEC(nex, ammo);
+                               ammo_amount += self.(weapon_load[WEP_NEX]) >= WEP_CVAR_SEC(nex, ammo);
                                return ammo_amount;
                        }
                        else
@@ -277,9 +269,14 @@ float w_nex(float req)
                                return FALSE; // zoom is not a fire mode
                        }
                }
+               case WR_CONFIG:
+               {
+                       NEX_SETTINGS(WEP_CONFIG_WRITE_CVARS, WEP_CONFIG_WRITE_PROPS)
+                       return TRUE;
+               }
                case WR_RELOAD:
                {
-                       W_Reload(min(WEP_CVAR_PRI(nex, ammo), WEP_CVAR_SEC(nex, ammo)), autocvar_g_balance_nex_reload_ammo, autocvar_g_balance_nex_reload_time, "weapons/reload.wav");
+                       W_Reload(min(WEP_CVAR_PRI(nex, ammo), WEP_CVAR_SEC(nex, ammo)), "weapons/reload.wav");
                        return TRUE;
                }
                case WR_SUICIDEMESSAGE:
@@ -309,7 +306,7 @@ float w_nex(float req)
                                
                        return TRUE;
                }
-               case WR_PRECACHE:
+               case WR_INIT:
                {
                        precache_sound("weapons/neximpact.wav");
                        return TRUE;