X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fall.qh;h=a805ce5fd4210a014b938bcf41c7cf46df4ad034;hb=78a337e337b8f08759b210146cdb8d2fd534e923;hp=cdf78c924b2ef26190e55a0c4470bb77379b4157;hpb=66189615a05cc66dd0ee544a2bbc841c4f426193;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/weapons/all.qh b/qcsrc/common/weapons/all.qh index cdf78c924..a805ce5fd 100644 --- a/qcsrc/common/weapons/all.qh +++ b/qcsrc/common/weapons/all.qh @@ -1,12 +1,11 @@ -#ifndef WEAPONS_ALL_H -#define WEAPONS_ALL_H +#pragma once -#include +#include #include #include "config.qh" // weapon sets -typedef vector WepSet; +USING(WepSet, vector); #ifdef SVQC void WriteWepSet(float dest, WepSet w); #endif @@ -19,22 +18,22 @@ WepSet ReadWepSet(); #include "weapon.qh" -#ifndef MENUQC +#ifdef GAMEQC #include "calculations.qh" #include #endif #include -#ifdef SVQC -#include -#endif - REGISTRY(Weapons, 72) // Increase as needed. Can be up to 72. #define Weapons_from(i) _Weapons_from(i, WEP_Null) REGISTER_REGISTRY(Weapons) STATIC_INIT(WeaponPickup) { FOREACH(Weapons, true, it.m_pickup = NEW(WeaponPickup, it)); } +#ifdef SVQC +#include +#endif + .WepSet m_wepset; #define WEPSET(id) (WEP_##id.m_wepset) #define WepSet_FromWeapon(it) ((it).m_wepset) @@ -107,15 +106,15 @@ void W_PROP_reload(int chan, entity to) if (f) f(it, chan); }); } -void W_PROP_think() +void W_PROP_think(entity this) { W_PROP_reload(MSG_ALL, NULL); } STATIC_INIT_LATE(W_PROP_reloader) { - SELFPARAM(); entity e = W_PROP_reloader = new_pure(W_PROP_reloader); - WITH(entity, self, e, (e.think = W_PROP_think)()); + setthink(e, W_PROP_think); + W_PROP_think(e); } #endif @@ -144,10 +143,12 @@ X(weaponreplace, string) X(weaponstartoverride, float) X(weaponstart, float) X(weaponthrowable, float) +#ifdef SVQC X(reload_ammo, float) .float reloading_ammo = reload_ammo; X(reload_time, float) .float reloading_time = reload_time; +#endif #undef X @@ -299,6 +300,7 @@ REGISTRY_CHECK(Weapons) STATIC_INIT(register_weapons_done) { + string inaccessible = ""; FOREACH(Weapons, true, { WepSet set = it.m_wepset = _WepSet_FromWeapon(it.m_id = i); WEPSET_ALL |= set; @@ -309,8 +311,9 @@ STATIC_INIT(register_weapons_done) if (imp <= WEP_IMPULSE_END) localcmd(sprintf("alias weapon_%s \"impulse %d\"\n", it.netname, imp)); else - LOG_TRACEF("Impulse limit exceeded, weapon will not be directly accessible: %s\n", it.netname); + inaccessible = strcat(inaccessible, "\n", it.netname); }); + if (inaccessible) LOG_TRACEF("Impulse limit exceeded, weapon(s) will not be directly accessible: %s", inaccessible); #ifdef CSQC FOREACH(Weapons, true, it.wr_init(it)); #endif @@ -321,14 +324,14 @@ STATIC_INIT(register_weapons_done) weaponorder_byid = strzone(substring(weaponorder_byid, 1, -1)); } -#ifndef MENUQC +#ifdef GAMEQC .entity weaponchild; .entity exteriorweaponentity; -vector weaponentity_glowmod(Weapon wep, int c) +vector weaponentity_glowmod(Weapon wep, entity actor, int c) { vector g; - if (!(g = wep.wr_glow(wep))) g = colormapPaletteColor(c & 0x0F, true) * 2; + if (!(g = wep.wr_glow(wep, actor))) g = colormapPaletteColor(c & 0x0F, true) * 2; return g; } @@ -358,5 +361,3 @@ ENUMCLASS_END(WFRAME) vector shotorg_adjust_values(vector vecs, bool y_is_right, bool visual, int algn); void CL_WeaponEntity_SetModel(entity this, string name, bool _anim); #endif - -#endif