X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fweapons.qh;h=00ee68b4ea6dd4facb6aa1569764feff3bdd9eb2;hp=af031086a18a66a0377533b696318e86ed3b9b13;hb=ba0988ca930f50286f8cf3b6c114ebc6584964af;hpb=bf825a0dada529d1288564e23223061429d01f31 diff --git a/qcsrc/common/weapons/weapons.qh b/qcsrc/common/weapons/weapons.qh index af031086a..00ee68b4e 100644 --- a/qcsrc/common/weapons/weapons.qh +++ b/qcsrc/common/weapons/weapons.qh @@ -1,42 +1,115 @@ +#ifndef WEAPONS_H +#define WEAPONS_H + +#if defined(CSQC) + #include "../util-pre.qh" + #include "../../client/sys-pre.qh" + #include "../../dpdefs/csprogsdefs.qc" + #include "../../client/sys-post.qh" + #include "../../client/Defs.qc" + #include "../../dpdefs/keycodes.qc" + #include "../constants.qh" + #include "../stats.qh" + #include "../../warpzonelib/anglestransform.qh" + #include "../../warpzonelib/mathlib.qh" + #include "../../warpzonelib/common.qh" + #include "../../warpzonelib/client.qh" + #include "../playerstats.qh" + #include "../teams.qh" + #include "../util.qh" + #include "../nades.qh" + #include "../buffs.qh" + #include "../test.qh" + #include "../counting.qh" +#elif defined(MENUQC) + #include "../util-pre.qh" + #include "../../menu/sys-pre.qh" + #include "../../dpdefs/menudefs.qc" + #include "../../dpdefs/keycodes.qc" + #include "../../menu/sys-post.qh" + #include "../../menu/config.qh" + #include "../../warpzonelib/mathlib.qh" + #include "../util.qh" + #include "../test.qh" + #include "../../menu/oo/base.qh" + #include "../playerstats.qh" + #include "../teams.qh" + #include "../constants.qh" + #include "../mapinfo.qh" + #include "../campaign_common.qh" +#elif defined(SVQC) + #include "../util-pre.qh" + #include "../../server/sys-pre.qh" + #include "../../dpdefs/progsdefs.qc" + #include "../../dpdefs/dpextensions.qc" + #include "../../server/sys-post.qh" + #include "../../warpzonelib/anglestransform.qh" + #include "../../warpzonelib/mathlib.qh" + #include "../../warpzonelib/common.qh" + #include "../../warpzonelib/util_server.qh" + #include "../../warpzonelib/server.qh" + #include "../constants.qh" + #include "../stats.qh" + #include "../teams.qh" + #include "../util.qh" + #include "../nades.qh" + #include "../buffs.qh" + #include "../test.qh" + #include "../counting.qh" + #include "../urllib.qh" + #include "../command/markup.qh" + #include "../command/rpn.qh" + #include "../command/generic.qh" + #include "../command/shared_defs.qh" + #include "../net_notice.qh" + #include "../animdecide.qh" + #include "../monsters/monsters.qh" + #include "../monsters/sv_monsters.qh" + #include "../monsters/spawn.qh" + #include "config.qh" +#endif + #ifndef MENUQC #include "calculations.qh" #endif -const float MAX_SHOT_DISTANCE = 32768; +const int MAX_SHOT_DISTANCE = 32768; // weapon pickup ratings for bot logic -const float BOT_PICKUP_RATING_LOW = 2500; -const float BOT_PICKUP_RATING_MID = 5000; -const float BOT_PICKUP_RATING_HIGH = 10000; +const int BOT_PICKUP_RATING_LOW = 2500; +const int BOT_PICKUP_RATING_MID = 5000; +const int BOT_PICKUP_RATING_HIGH = 10000; // weapon flags -const float WEP_TYPE_OTHER = 0x00; // not for damaging people -const float WEP_TYPE_SPLASH = 0x01; // splash damage -const float WEP_TYPE_HITSCAN = 0x02; // hitscan -const float WEP_TYPEMASK = 0x0F; -const float WEP_FLAG_CANCLIMB = 0x10; // can be used for movement -const float WEP_FLAG_NORMAL = 0x20; // in "most weapons" set -const float WEP_FLAG_HIDDEN = 0x40; // hides from menu -const float WEP_FLAG_RELOADABLE = 0x80; // can has reload -const float WEP_FLAG_SUPERWEAPON = 0x100; // powerup timer -const float WEP_FLAG_MUTATORBLOCKED = 0x200; // hides from impulse 99 etc. (mutators are allowed to clear this flag) +const int WEP_TYPE_OTHER = 0x00; // not for damaging people +const int WEP_TYPE_SPLASH = 0x01; // splash damage +const int WEP_TYPE_HITSCAN = 0x02; // hitscan +const int WEP_TYPEMASK = 0x0F; +const int WEP_FLAG_CANCLIMB = 0x10; // can be used for movement +const int WEP_FLAG_NORMAL = 0x20; // in "most weapons" set +const int WEP_FLAG_HIDDEN = 0x40; // hides from menu +const int WEP_FLAG_RELOADABLE = 0x80; // can has reload +const int WEP_FLAG_SUPERWEAPON = 0x100; // powerup timer +const int WEP_FLAG_MUTATORBLOCKED = 0x200; // hides from impulse 99 etc. (mutators are allowed to clear this flag) // weapon requests -const float WR_SETUP = 1; // (SERVER) setup weapon data -const float WR_THINK = 2; // (SERVER) logic to run every frame -const float WR_CHECKAMMO1 = 3; // (SERVER) checks ammo for weapon primary -const float WR_CHECKAMMO2 = 4; // (SERVER) checks ammo for weapon second -const float WR_AIM = 5; // (SERVER) runs bot aiming code for this weapon -const float WR_INIT = 6; // (BOTH) precaches models/sounds used by this weapon, also sets up weapon properties -const float WR_SUICIDEMESSAGE = 7; // (SERVER) notification number for suicide message (may inspect w_deathtype for details) -const float WR_KILLMESSAGE = 8; // (SERVER) notification number for kill message (may inspect w_deathtype for details) -const float WR_RELOAD = 9; // (SERVER) handles reloading for weapon -const float WR_RESETPLAYER = 10; // (SERVER) clears fields that the weapon may use -const float WR_IMPACTEFFECT = 11; // (CLIENT) impact effect for weapon explosion -const float WR_PLAYERDEATH = 12; // (SERVER) called whenever a player dies -const float WR_GONETHINK = 13; // (SERVER) logic to run when weapon is lost -const float WR_CONFIG = 14; // (ALL) dump weapon cvars to config in data directory (see: sv_cmd dumpweapons) -const float WR_ZOOMRETICLE = 15; // (CLIENT) weapon specific zoom reticle +const int WR_SETUP = 1; // (SERVER) setup weapon data +const int WR_THINK = 2; // (SERVER) logic to run every frame +const int WR_CHECKAMMO1 = 3; // (SERVER) checks ammo for weapon primary +const int WR_CHECKAMMO2 = 4; // (SERVER) checks ammo for weapon second +const int WR_AIM = 5; // (SERVER) runs bot aiming code for this weapon +const int WR_INIT = 6; // (BOTH) precaches models/sounds used by this weapon, also sets up weapon properties +const int WR_SUICIDEMESSAGE = 7; // (SERVER) notification number for suicide message (may inspect w_deathtype for details) +const int WR_KILLMESSAGE = 8; // (SERVER) notification number for kill message (may inspect w_deathtype for details) +const int WR_RELOAD = 9; // (SERVER) handles reloading for weapon +const int WR_RESETPLAYER = 10; // (SERVER) clears fields that the weapon may use +const int WR_IMPACTEFFECT = 11; // (CLIENT) impact effect for weapon explosion +const int WR_PLAYERDEATH = 12; // (SERVER) called whenever a player dies +const int WR_GONETHINK = 13; // (SERVER) logic to run when weapon is lost +const int WR_CONFIG = 14; // (ALL) dump weapon cvars to config in data directory (see: sv_cmd dumpweapons) +const int WR_ZOOMRETICLE = 15; // (CLIENT) weapon specific zoom reticle +const int WR_DROP = 16; // (SERVER) the weapon is dropped +const int WR_PICKUP = 17; // (SERVER) a weapon is picked up // variables: string weaponorder_byid; @@ -56,8 +129,8 @@ WepSet ReadWepSet(); // weapon name macros #define WEP_FIRST 1 #define WEP_MAXCOUNT 24 // Increase as needed. Can be up to three times as much. -float WEP_COUNT; -float WEP_LAST; +int WEP_COUNT; +int WEP_LAST; WepSet WEPSET_ALL; WepSet WEPSET_SUPERWEAPONS; @@ -154,7 +227,7 @@ void register_weapons_done(); .WepSet weapons; // A: WEPSET_id // WEPSET_... .float(float) weapon_func; // M: function // w_... ..float ammo_field; // M: ammotype // main ammo field -.float impulse; // M: impulse // weapon impulse +.int impulse; // M: impulse // weapon impulse .float spawnflags; // M: flags // WEPSPAWNFLAG_... combined .float bot_pickupbasevalue; // M: rating // bot weapon priority .vector wpcolor; // M: color // waypointsprite color @@ -204,3 +277,4 @@ void register_weapons_done(); #undef REGISTER_WEAPON ACCUMULATE_FUNCTION(RegisterWeapons, register_weapons_done); +#endif \ No newline at end of file