X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fweapons%2Fweaponsystem.qc;h=cbfba4c9f3ef4ae7b2b75d29b4bb559a53c7ab44;hb=0394852103d5d410a54f14daa6fc698d0cdbd74f;hp=59812425d674cbe83100c535b2e40b02a1d8dac7;hpb=0257ecb2eed69a4d4e871a51f1ccb4afc1bcdf1a;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/weapons/weaponsystem.qc b/qcsrc/server/weapons/weaponsystem.qc index 59812425d..cbfba4c9f 100644 --- a/qcsrc/server/weapons/weaponsystem.qc +++ b/qcsrc/server/weapons/weaponsystem.qc @@ -3,14 +3,16 @@ #include "selection.qh" #include "../command/common.qh" +#include +#include #include #include "../round_handler.qh" #include #include -#include #include #include #include +#include #include #include #include @@ -55,7 +57,7 @@ bool CL_Weaponentity_CustomizeEntityForClient(entity this, entity client) vector CL_Weapon_GetShotOrg(int wpn) { - entity wi = Weapons_from(wpn); + entity wi = REGISTRY_GET(Weapons, wpn); entity e = spawn(); CL_WeaponEntity_SetModel(e, wi.mdl, false); vector ret = e.movedir; @@ -366,6 +368,9 @@ void weapon_thinkf(entity actor, .entity weaponentity, WFRAME fr, float t, void( bool restartanim; if (fr == WFRAME_DONTCHANGE) { + // this can happen when the weapon entity is newly spawned, since it has a clear state and no previous weapon frame + if (this.wframe == WFRAME_DONTCHANGE) + this.wframe = WFRAME_IDLE; fr = this.wframe; restartanim = false; } @@ -843,7 +848,7 @@ void W_Reload(entity actor, .entity weaponentity, float sent_ammo_min, Sound sen void W_DropEvent(.void(Weapon, entity actor, .entity) event, entity player, float weapon_type, entity weapon_item, .entity weaponentity) { - Weapon w = Weapons_from(weapon_type); + Weapon w = REGISTRY_GET(Weapons, weapon_type); weapon_dropevent_item = weapon_item; w.event(w, player, weaponentity); }