X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fmutator_overkill.qc;h=d5b59d26ad9b31cc940d023c63abfb5563592db4;hb=9231345bfc303d3e7d9bd8a2df62e5aa26327638;hp=3bc1e79589355e376e712199ee3925e1105cff8d;hpb=c0582a52156c4e74e4c5313e5f360275493a8733;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/mutator_overkill.qc b/qcsrc/server/mutators/mutator_overkill.qc index 3bc1e7958..d5b59d26a 100644 --- a/qcsrc/server/mutators/mutator_overkill.qc +++ b/qcsrc/server/mutators/mutator_overkill.qc @@ -3,9 +3,9 @@ #include "mutator.qh" -void W_Blaster_Attack(float, float, float, float, float, float, float, float, float, float); -void spawnfunc_weapon_hmg(); -void spawnfunc_weapon_rpc(); +void W_Blaster_Attack(entity, float, float, float, float, float, float, float, float, float, float); +spawnfunc(weapon_hmg); +spawnfunc(weapon_rpc); void ok_DecreaseCharge(entity ent, int wep) { @@ -46,7 +46,7 @@ float ok_CheckWeaponCharge(entity ent, int wep) MUTATOR_HOOKFUNCTION(ok_PlayerDamage_Calculate) { if(IS_PLAYER(frag_attacker) && IS_PLAYER(frag_target)) - if(DEATH_ISWEAPON(frag_deathtype, WEP_BLASTER.m_id)) + if(DEATH_ISWEAPON(frag_deathtype, WEP_BLASTER)) { frag_damage = 0; @@ -84,7 +84,7 @@ MUTATOR_HOOKFUNCTION(ok_PlayerDies) self.ok_item = true; self.noalign = true; self.pickup_anyway = true; - spawnfunc_item_armor_small(); + spawnfunc_item_armor_small(this); self.movetype = MOVETYPE_TOSS; self.gravity = 1; self.reset = SUB_Remove; @@ -149,6 +149,7 @@ MUTATOR_HOOKFUNCTION(ok_PlayerPreThink) int oldwep = self.weapon; self.weapon = WEP_BLASTER.m_id; W_Blaster_Attack( + self, WEP_BLASTER.m_id | HITTYPE_SECONDARY, WEP_CVAR_SEC(vaporizer, shotangle), WEP_CVAR_SEC(vaporizer, damage), @@ -176,8 +177,9 @@ MUTATOR_HOOKFUNCTION(ok_PlayerPreThink) self.ok_notice_time = time + 2; play2(self, SND(DRYFIRE)); } + Weapon wpn = get_weaponinfo(self.weapon); if(self.weaponentity.state != WS_CLEAR) - w_ready(); + w_ready(wpn, self, self.BUTTON_ATCK, self.BUTTON_ATCK2); self.weapon_blocked = true; } @@ -205,6 +207,9 @@ MUTATOR_HOOKFUNCTION(ok_PlayerSpawn) return false; } +void _spawnfunc_weapon_hmg() { SELFPARAM(); spawnfunc_weapon_hmg(this); } +void _spawnfunc_weapon_rpc() { SELFPARAM(); spawnfunc_weapon_rpc(this); } + MUTATOR_HOOKFUNCTION(ok_OnEntityPreSpawn) {SELFPARAM(); if(autocvar_g_powerups) @@ -222,7 +227,7 @@ MUTATOR_HOOKFUNCTION(ok_OnEntityPreSpawn) wep.team = self.team; wep.respawntime = autocvar_g_overkill_superguns_respawn_time; wep.pickup_anyway = true; - wep.think = spawnfunc_weapon_hmg; + wep.think = _spawnfunc_weapon_hmg; wep.nextthink = time + 0.1; return true; } @@ -239,7 +244,7 @@ MUTATOR_HOOKFUNCTION(ok_OnEntityPreSpawn) wep.team = self.team; wep.respawntime = autocvar_g_overkill_superguns_respawn_time; wep.pickup_anyway = true; - wep.think = spawnfunc_weapon_rpc; + wep.think = _spawnfunc_weapon_rpc; wep.nextthink = time + 0.1; return true; } @@ -272,10 +277,10 @@ MUTATOR_HOOKFUNCTION(ok_SpectateCopy) MUTATOR_HOOKFUNCTION(ok_StartItems) { - WepSet ok_start_items = (WEPSET_MACHINEGUN | WEPSET_VORTEX | WEPSET_SHOTGUN); + WepSet ok_start_items = (WEPSET(MACHINEGUN) | WEPSET(VORTEX) | WEPSET(SHOTGUN)); - if(WEP_RPC.weaponstart > 0) { ok_start_items |= WEPSET_RPC; } - if(WEP_HMG.weaponstart > 0) { ok_start_items |= WEPSET_HMG; } + if(WEP_RPC.weaponstart > 0) { ok_start_items |= WEPSET(RPC); } + if(WEP_HMG.weaponstart > 0) { ok_start_items |= WEPSET(HMG); } start_items |= IT_UNLIMITED_WEAPON_AMMO; start_weapons = warmup_start_weapons = ok_start_items;