X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fweapons%2Fweaponsystem.qc;h=13f32ee14d2a76e9cae1ec69dea3d01b3fa4c1e9;hp=3f372371bd3d1af12fd3e1518e434ffb9c6e5871;hb=4ee2807b2d8f808928ef14b3e814945b3edb4350;hpb=4f133bdb70d13143f2ce4b9de097744371c1f92a;ds=sidebyside diff --git a/qcsrc/server/weapons/weaponsystem.qc b/qcsrc/server/weapons/weaponsystem.qc index 3f372371b..13f32ee14 100644 --- a/qcsrc/server/weapons/weaponsystem.qc +++ b/qcsrc/server/weapons/weaponsystem.qc @@ -3,7 +3,7 @@ #include "selection.qh" #include "../command/common.qh" -#include "../mutators/all.qh" +#include "../mutators/_mod.qh" #include "../round_handler.qh" #include #include @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include @@ -412,16 +412,16 @@ bool forbidWeaponUse(entity player) if (gameover) return true; if (STAT(FROZEN, player)) return true; if (player.weapon_blocked) return true; + if (MUTATOR_CALLHOOK(ForbidWeaponUse, player)) return true; return false; } .bool hook_switchweapon; -void W_WeaponFrame(Player actor) +void W_WeaponFrame(Player actor, .entity weaponentity) { TC(Player, actor); TC(PlayerState, PS(actor)); - .entity weaponentity = weaponentities[0]; // TODO: unhardcode entity this = actor.(weaponentity); if (frametime) actor.weapon_frametime = frametime; @@ -459,7 +459,7 @@ void W_WeaponFrame(Player actor) switch (this.state) { default: - LOG_WARNINGF("unhandled weaponentity (%i) state for player (%i): %d\n", this, actor, this.state); + LOG_WARNF("unhandled weaponentity (%i) state for player (%i): %d", this, actor, this.state); break; case WS_INUSE: case WS_RAISE: @@ -570,7 +570,7 @@ void W_WeaponFrame(Player actor) } else if (e) { - e.wr_gonethink(e, actor); + e.wr_gonethink(e, actor, weaponentity); } } @@ -593,9 +593,8 @@ void W_WeaponFrame(Player actor) } } -void W_AttachToShotorg(entity actor, entity flash, vector offset) +void W_AttachToShotorg(entity actor, .entity weaponentity, entity flash, vector offset) { - .entity weaponentity = weaponentities[0]; flash.owner = actor; flash.angles_z = random() * 360; @@ -690,10 +689,9 @@ void W_ReloadedAndReady(Weapon thiswep, entity actor, .entity weaponentity, int w_ready(wpn, actor, weaponentity, PHYS_INPUT_BUTTON_ATCK(actor) | (PHYS_INPUT_BUTTON_ATCK2(actor) << 1)); } -void W_Reload(entity actor, float sent_ammo_min, Sound sent_sound) +void W_Reload(entity actor, .entity weaponentity, float sent_ammo_min, Sound sent_sound) { TC(Sound, sent_sound); - .entity weaponentity = weaponentities[0]; // set global values to work with Weapon e = PS(actor).m_weapon;