-#ifndef CLIENT_ALL_H
-#define CLIENT_ALL_H
+#pragma once
#include <common/util.qh>
#include "defs.qh"
#include "main.qh"
#include "miscfunctions.qh"
-
-#endif
-#ifndef CLIENT_ANNOUNCER_H
-#define CLIENT_ANNOUNCER_H
+#pragma once
void Announcer();
string AnnouncerOption();
-
-#endif
-#ifndef CLIENT_AUTOCVARS_H
-#define CLIENT_AUTOCVARS_H
+#pragma once
bool autocvar__con_chat_maximized;
bool autocvar__hud_configure;
float autocvar_crosshair_rpc_size = 1;
int autocvar_cl_nade_timer;
bool autocvar_cl_items_nofade;
-#endif
-#ifndef CLIENT_BGMSCRIPT_H
-#define CLIENT_BGMSCRIPT_H
+#pragma once
entityclass(BGMScript);
class(BGMScript) .string bgmscript;
void BGMScript_InitEntity(entity e);
float doBGMScript(entity e);
#endif
-
-#endif
-#ifndef CLIENT_COMMANDS_ALL_H
-#define CLIENT_COMMANDS_ALL_H
+#pragma once
#include <common/command/all.qh>
#include "cl_cmd.qh"
-
-#endif
-#ifndef CLIENT_COMMANDS_CL_CMD_H
-#define CLIENT_COMMANDS_CL_CMD_H
+#pragma once
void Cmd_HUD_SetFields(int);
void Cmd_HUD_Help();
STATIC_INIT(CLIENT_COMMANDS_aliases) {
FOREACH(CLIENT_COMMANDS, true, localcmd(sprintf("alias %1$s \"%2$s %1$s ${* ?}\"\n", it.m_name, "qc_cmd_cl")));
}
-
-#endif
-#ifndef CLIENT_CSQC_CONSTANTS
-#define CLIENT_CSQC_CONSTANTS
+#pragma once
// Mask Constants (set .drawmask on entities; use R_AddEntities to add all entities based on mask)
const int MASK_ENGINE = BIT(0);
const int CAMERA_CHASE = 2;
const int EF_NOMODELFLAGS = BIT(23);
-
-#endif
-#ifndef CLIENT_DEFS_H
-#define CLIENT_DEFS_H
+#pragma once
// Additional OPTIONAL Fields and Globals
//float intermission;
.bool csqcmodel_isdead; // used by shownames and miscfunctions (entcs_IsDead) to know when a player is dead
#define player_currententnum (spectatee_status > 0 ? spectatee_status : player_localnum + 1)
-
-#endif
-#ifndef CLIENT_HUD_H
-#define CLIENT_HUD_H
+#pragma once
#include <common/weapons/all.qh>
var void HUD_ModIcons_GameType(vector pos, vector size);
void HUD_ModIcons_SetFunc();
-#endif
-#ifndef CLIENT_HUD_CONFIG_H
-#define CLIENT_HUD_CONFIG_H
+#pragma once
const int S_MOUSE1 = 1;
const int S_MOUSE2 = 2;
void HUD_Configure_PostDraw();
float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary);
-
-#endif
-#ifndef CLIENT_MAIN_H
-#define CLIENT_MAIN_H
+#pragma once
#include <common/constants.qh>
#include <common/weapons/all.qh>
float view_quality;
int framecount;
.float health;
-
-#endif
-#ifndef CLIENT_MAPVOTING_H
-#define CLIENT_MAPVOTING_H
+#pragma once
#include <common/constants.qh>
void MapVote_Draw();
void Net_MapVote_Picture();
float mv_active;
-#endif
-#ifndef CLIENT_MISCFUNCTIONS_H
-#define CLIENT_MISCFUNCTIONS_H
+#pragma once
entity players;
entity teams;
void Accuracy_LoadColors();
vector Accuracy_GetColor(float accuracy);
-
-#endif
-#ifndef CLIENT_MUTATORS_EVENTS_H
-#define CLIENT_MUTATORS_EVENTS_H
+#pragma once
#include <common/mutators/base.qh>
/** also, argv() can be used */ i(int, cmd_argc) \
/**/
MUTATOR_HOOKABLE(HUD_Command, EV_HUD_Command);
-
-#endif
-#ifndef CLIENT_PLAYER_SKELETON
-#define CLIENT_PLAYER_SKELETON
+#pragma once
void free_skeleton_from_frames(entity e);
void skeleton_from_frames(entity e, float is_dead);
class(Skeleton) .float bone_aim[MAX_AIM_BONES];
class(Skeleton) .float bone_aimweight[MAX_AIM_BONES];
class(Skeleton) .float fixbone;
-#endif
-#ifndef CLIENT_QUICKMENU_H
-#define CLIENT_QUICKMENU_H
+#pragma once
bool QuickMenu_InputEvent(float bInputType, float nPrimary, float nSecondary);
bool QuickMenu_IsOpened();
void QuickMenu_Mouse();
-
-#endif
-#ifndef CLIENT_SCOREBOARD_H
-#define CLIENT_SCOREBOARD_H
+#pragma once
float xmin, xmax, ymin, ymax, sbwidth;
void HUD_UpdatePlayerPos(entity pl);
void HUD_UpdateTeamPos(entity Team);
float HUD_WouldDrawScoreboard();
-#endif
-#ifndef CLIENT_SHOWNAMES_H
-#define CLIENT_SHOWNAMES_H
+#pragma once
entityclass(ShowNames);
class(ShowNames) .float healthvalue;
class(ShowNames) .float pointtime;
void Draw_ShowNames_All();
-
-#endif
-#ifndef CLIENT_TEAMRADAR_H
-#define CLIENT_TEAMRADAR_H
+#pragma once
const int MAX_TEAMRADAR_TIMES = 32;
void draw_teamradar_link(vector start, vector end, int colors);
void teamradar_loadcvars();
-
-#endif
-#ifndef CLIENT_WALL_H
-#define CLIENT_WALL_H
+#pragma once
entityclass(Wall);
class(Wall) .float lip;
void Ent_Wall_Draw(entity this);
void Ent_Wall_Remove(entity this);
-
-#endif
-#ifndef CLIENT_WEAPONS_PROJECTILE_H
-#define CLIENT_WEAPONS_PROJECTILE_H
+#pragma once
entityclass(Projectile);
class(Projectile).int traileffect;
void Ent_RemoveProjectile(entity this);
const int FL_PROJECTILE = BIT(15);
-
-#endif
-#ifndef MENU_ALL_H
-#define MENU_ALL_H
+#pragma once
#include "draw.qh"
#include "xonotic/util.qh"
-
-#endif
-#ifndef MENU_COMMANDS_ALL_H
-#define MENU_COMMANDS_ALL_H
+#pragma once
#include <common/command/command.qh>
#include "menu_cmd.qh"
-
-#endif
-#ifndef MENU_CMD_H
-#define MENU_CMD_H
+#pragma once
void GameCommand(string command);
-#endif
-#ifndef DRAW_H
-#define DRAW_H
+#pragma once
// from the engine
vector drawfontscale;
float draw_TextWidth_WithColors(string s, vector size);
float draw_TextWidth_WithoutColors(string s, vector size);
-#endif
-#ifndef MENU_H
-#define MENU_H
+#pragma once
#include "draw.qh"
#include "skin.qh"
void m_play_focus_sound();
void m_play_click_sound(string soundfile);
-#endif
-#ifndef MENU_MUTATORS_EVENTS_H
-#define MENU_MUTATORS_EVENTS_H
+#pragma once
#include <common/mutators/base.qh>
/** whole command, use only if you really have to */ i(string, cmd_string) \
/**/
MUTATOR_HOOKABLE(Menu_ConsoleCommand, EV_Menu_ConsoleCommand);
-#endif
-#ifndef SKIN_H
-#define SKIN_H
+#pragma once
#define SKINBEGIN
#define SKINVECTOR(name,def) vector SKIN##name = def
#undef SKINFLOAT
#undef SKINVECTOR
#undef SKINBEGIN
-#endif
-#ifndef MENU_UTIL_H
-#define MENU_UTIL_H
+#pragma once
float GL_CheckExtension(string ext);
float GL_Have_TextureCompression();
float _Nex_ExtResponseSystem_RecommendedServersNeedsRefresh;
void CheckSendCvars(entity me, string cvarnamestring);
-#endif
-#ifndef SERVER_ALL_H
-#define SERVER_ALL_H
+#pragma once
int maxclients;
#include "constants.qh"
#include "defs.qh"
#include "miscfunctions.qh"
-
-#endif
-#ifndef ANTICHEAT_H
-#define ANTICHEAT_H
+#pragma once
void anticheat_init(entity this);
void anticheat_report();
void anticheat_endframe();
void anticheat_fixangle(entity this);
-#endif
-#ifndef ANTILAG_H
-#define ANTILAG_H
+#pragma once
void antilag_record(entity e, entity store, float t);
vector antilag_takebackorigin(entity e, entity store, float t);
#define ANTILAG_LATENCY(e) min(0.4, e.ping * 0.001)
// add one ticrate?
-#endif
-#ifndef SERVER_AUTOCVARS_H
-#define SERVER_AUTOCVARS_H
+#pragma once
bool autocvar__notarget;
bool autocvar__campaign_testrun;
int autocvar_g_frozen_revive_falldamage_health;
bool autocvar_g_frozen_damage_trigger;
float autocvar_g_frozen_force;
-#endif
-#ifndef AIM_H
-#define AIM_H
+#pragma once
/*
* Globals and Fields
*/
vector bot_shotlead(vector targorigin, vector targvelocity, float shotspeed, float shotdelay);
.void(float t, float f1, float f2, entity e1, vector v1, vector v2, vector v3, vector v4) lag_func;
-#endif
-#ifndef BOT_H
-#define BOT_H
+#pragma once
/*
* Globals and Fields
*/
void() havocbot_setupbot;
void bot_calculate_stepheightvec();
-#endif
-#ifndef HAVOCBOT_H
-#define HAVOCBOT_H
+#pragma once
/*
* Globals and Fields
.entity draggedby;
.float ladder_time;
.entity ladder_entity;
-#endif
-#ifndef ROLES_H
-#define ROLES_H
+#pragma once
void havocbot_goalrating_controlpoints(float ratingscale, vector org, float sradius);
-#endif
-#ifndef HAVOCBOT_SCRIPTING_H
-#define HAVOCBOT_SCRIPTING_H
+#pragma once
void bot_clearqueue(entity bot);
-#endif
-#ifndef NAVIGATION_H
-#define NAVIGATION_H
+#pragma once
/*
* Globals and Fields
*/
entity navigation_findnearestwaypoint(entity ent, float walkfromwp);
float navigation_waypoint_will_link(vector v, vector org, entity ent, float walkfromwp, float bestdist);
-#endif
-#ifndef BOT_SCRIPTING_H
-#define BOT_SCRIPTING_H
+#pragma once
#define BOT_EXEC_STATUS_IDLE 0
#define BOT_EXEC_STATUS_PAUSED 1
float bot_execute_commands();
entity find_bot_by_name(string name);
entity find_bot_by_number(float number);
-#endif
-#ifndef WAYPOINTS_H
-#define WAYPOINTS_H
+#pragma once
/*
* Globals and Fields
*/
vector waypoint_fixorigin(vector position);
void botframe_autowaypoints();
-#endif
-#ifndef CAMPAIGN_H
-#define CAMPAIGN_H
+#pragma once
// this must be included BEFORE campaign_common.h to make this a memory saving
#define CAMPAIGN_MAX_ENTRIES 2
float campaign_bots_may_start;
// campaign mode: bots shall spawn but wait for the player to spawn before they do anything
// in other game modes, this is ignored
-#endif
-#ifndef CHEATS_H
-#define CHEATS_H
+#pragma once
#include "../common/impulses/all.qh"
const float CHRAME_DRAG = 8;
void Drag_MoveDrag(entity from, entity to); // call this from CopyBody
-#endif
-#ifndef CL_CLIENT_H
-#define CL_CLIENT_H
+#pragma once
+
float c1, c2, c3, c4;
void play_countdown(float finished, string samp);
#define SPECTATE_COPY() [[accumulate]] void SpectateCopy(entity this, entity spectatee)
#define SPECTATE_COPYFIELD(fld) SPECTATE_COPY() { this.(fld) = spectatee.(fld); }
-
-#endif
-#ifndef CL_IMPULSE_H
-#define CL_IMPULSE_H
+#pragma once
void ImpulseCommands(entity this);
-#endif
-#ifndef CL_PLAYER_H
-#define CL_PLAYER_H
+#pragma once
.entity pusher;
.float pushltime;
/** to be used by `prvm_edictset server playernumber muted 1` */
.float muted;
int Say(entity source, float teamsay, entity privatesay, string msgin, float floodcontrol);
-
-#endif
-#ifndef SERVER_COMMANDS_ALL_H
-#define SERVER_COMMANDS_ALL_H
+#pragma once
#include <common/command/command.qh>
REGISTRY(SERVER_COMMANDS, BITS(7))
#include "getreplies.qh"
#include "radarmap.qh"
#include "vote.qh"
-
-#endif
-#ifndef BANNING_H
-#define BANNING_H
+#pragma once
// ====================================
// Declarations for kick/ban commands
void BanCommand_macro_help();
float BanCommand_macro_usage(float argc);
-
-#endif
-#ifndef CMD_H
-#define CMD_H
+#pragma once
// =================================================
// Declarations for server side networked commands
// used by common/command/generic.qc:GenericCommand_dumpcommands to list all commands into a .txt file
void ClientCommand_macro_write_aliases(float fh);
-#endif
-#ifndef COMMAND_COMMON_H
-#define COMMAND_COMMON_H
+#pragma once
#include <common/command/command.qh>
REGISTRY(COMMON_COMMANDS, BITS(7))
{
FOREACH(COMMON_COMMANDS, true, LAMBDA(CMD_Write_Alias("qc_cmd_svcmd", it.m_name, it.m_description)));
}
-
-
-#endif
-#ifndef GETREPLIES_H
-#define GETREPLIES_H
+#pragma once
// ======================================================
// Declarations for reply messages, re-worked by Samual
string getmaplist();
string getlsmaps();
string getmonsterlist();
-#endif
-#ifndef RADARMAP_H
-#define RADARMAP_H
+#pragma once
// ===========================================
// Declarations for radarmap generation code
// removes the need to bound()
float RadarMap_Make(float argc);
-
-
-#endif
-#ifndef SV_CMD_H
-#define SV_CMD_H
+#pragma once
// =================================================
// Declarations for server side game commands
// used by common/command/generic.qc:GenericCommand_dumpcommands to list all commands into a .txt file
void GameCommand_macro_write_aliases(float fh);
-#endif
-#ifndef VOTE_H
-#define VOTE_H
+#pragma once
// ================================================
// Declarations for the vote system/vote commands
void ReadyCount();
void ReadyRestart_force();
void VoteCount(float first_count);
-#endif
-#ifndef SERVER_CONSTANTS_H
-#define SERVER_CONSTANTS_H
+#pragma once
const int FL_WEAPON = BIT(13);
const int FL_POWERUP = BIT(14);
const int NUM_PLAYERSKINS_TEAMPLAY = 3;
const int ASSAULT_VALUE_INACTIVE = 1000;
-
-#endif
-#ifndef SERVER_DEFS_H
-#define SERVER_DEFS_H
+#pragma once
#include "../common/weapons/all.qh"
#include "../common/stats.qh"
.float init_for_player_needed;
.void(entity) init_for_player;
-
-#endif
-#ifndef G_DAMAGE_H
-#define G_DAMAGE_H
+#pragma once
#if defined(CSQC)
#elif defined(MENUQC)
void Fire_ApplyEffect(entity e);
void fireburner_think();
-#endif
-#ifndef HOOK_H
-#define HOOK_H
+#pragma once
// Wazat's grappling hook
.entity hook;
void GrappleHookInit();
vector hook_shotorigin[4];
-#endif
-#ifndef G_SUBS_H
-#define G_SUBS_H
+#pragma once
void SUB_NullThink();
void InitSolidBSPTrigger();
float InitMovingBrushTrigger();
-#endif
-#ifndef G_WORLD_H
-#define G_WORLD_H
+#pragma once
float checkrules_equality;
float checkrules_suddendeathwarning;
void Map_Goto(float reinit);
float DoNextMapOverride(float reinit);
void CheckRules_World();
-
-#endif
-#ifndef IPBAN_H
-#define IPBAN_H
+#pragma once
void Ban_SaveBans();
void Ban_LoadBans();
float BanCommand(string command);
void OnlineBanList_URI_Get_Callback(float id, float status, string data);
-#endif
-#ifndef ITEM_KEY
-#define ITEM_KEY
+#pragma once
/**
* Returns the bit ID of a key
*/
string item_keys_keylist(float keylist);
#endif
-
-#endif
-#ifndef MAPVOTING_H
-#define MAPVOTING_H
+#pragma once
// definitions for functions used outside mapvoting.qc
void MapVote_Start();
float gametypevote;
string getmapname_stored;
float mapvote_initialized;
-#endif
-#ifndef MISCFUNCTIONS_H
-#define MISCFUNCTIONS_H
+#pragma once
#include "../common/t_items.qh"
float sound_allowed(float dest, entity e);
void InitializeEntity(entity e, void() func, float order);
void SetCustomizer(entity e, float() customizer, void() uncustomizer);
-
-#endif
+#pragma once
+
#include "mutator.qh"
#include "gamemode.qh"
-#ifndef SERVER_MUTATORS_H
-#define SERVER_MUTATORS_H
-
#include "all.inc"
-
-#endif
-#ifndef SERVER_MUTATORS_EVENTS_H
-#define SERVER_MUTATORS_EVENTS_H
+#pragma once
#include <common/mutators/base.qh>
float uricb_status;
string uricb_data;
MUTATOR_HOOKABLE(URI_GetCallback, EV_URI_GetCallback);
-#endif
-#ifndef GAMEMODE_H
-#define GAMEMODE_H
+#pragma once
#include "../cl_client.qh"
#include "../cl_player.qh"
.float bluealive_stat = _STAT(BLUEALIVE);
.float yellowalive_stat = _STAT(YELLOWALIVE);
.float pinkalive_stat = _STAT(PINKALIVE);
-
-#endif
-#ifndef MUTATOR_H
-#define MUTATOR_H
+#pragma once
#include <common/mutators/base.qh>
#include <lib/warpzone/anglestransform.qh>
#include <lib/warpzone/server.qh>
#include <lib/warpzone/util_server.qh>
-
-#endif
-#ifndef PATHLIB_MAIN_H
-#define PATHLIB_MAIN_H
+#pragma once
+
float buildpath_nodefilter_none(vector n,vector c,vector p);
entity path_build(entity next, vector where, entity prev, entity start);
-#endif
-#ifndef PATHLIB_H
-#define PATHLIB_H
+#pragma once
.entity pathlib_list;
.entity path_next;
var float buildpath_nodefilter(vector n,vector c,vector p);
var float pathlib_wpp_waypointcallback(entity wp, entity wp_prev);
-
-#endif
-#ifndef PATHLIB_UTILITY
-#define PATHLIB_UTILITY
+#pragma once
+
float fsnap(float val,float fsize);
entity pathlib_nodeatpoint(vector where);
float tile_check_plus2(vector where);
-#endif
-#ifndef PLAYERDEMO_H
-#define PLAYERDEMO_H
+#pragma once
void playerdemo_init(entity this);
void playerdemo_shutdown();
void playerdemo_open_read(string f);
void playerdemo_open_write(string f);
-#endif
-#ifndef PORTALS_H
-#define PORTALS_H
+#pragma once
.float portal_id;
.entity portal_in, portal_out;
vector Portal_ApplyTransformToPlayerAngle(vector transform, vector vangle);
void Portal_ClearAll_PortalsOnly(entity own);
-#endif
-#ifndef RACE_H
-#define RACE_H
+#pragma once
bool g_race_qualifying;
void race_RetractPlayer();
void race_InitSpectator();
-
-#endif
-#ifndef ROUND_HANDLER_H
-#define ROUND_HANDLER_H
+#pragma once
entity round_handler;
.float delay; // stores delay from round end to countdown start
#define round_handler_CountdownRunning() (!round_handler.wait && round_handler.cnt)
#define round_handler_IsRoundStarted() (!round_handler.wait && !round_handler.cnt)
#define round_handler_GetEndTime() (round_handler.round_endtime)
-
-#endif
-#ifndef SCORES_H
-#define SCORES_H
+#pragma once
#include "../common/constants.qh"
* nospectators: exclude spectators
*/
entity PlayerScore_Sort(.float field, float teams, float strict, float nospectators);
-#endif
-#ifndef SCORES_RULES_H
-#define SCORES_RULES_H
+#pragma once
void ScoreRules_basics(float teams, float sprio, float stprio, float score_enabled);
void ScoreRules_basics_end();
void ScoreRules_generic();
-
-#endif
-#ifndef SPAWNPOINTS_H
-#define SPAWNPOINTS_H
+#pragma once
.vector spawnpoint_score;
float spawnpoint_nag;
entity SelectSpawnPoint (float anypoint);
spawnfunc(info_player_deathmatch);
void spawnpoint_use();
-#endif
-#ifndef STEERLIB_H
-#define STEERLIB_H
+#pragma once
.vector steerto;
vector steerlib_arrive(vector point,float maximal_distance);
vector steerlib_attract2(entity this, vector point, float min_influense,float max_distance,float max_influense);
vector steerlib_pull(vector point);
-
-#endif
-#ifndef SERVER_SYS_POST_H
-#define SERVER_SYS_POST_H
+#pragma once
#undef objerror
#undef droptofloor
#undef IT_QUAD
#pragma noref 0
-
-#endif
-#ifndef SERVER_SYS_PRE_H
-#define SERVER_SYS_PRE_H
+#pragma once
#define objerror builtin_objerror
#define droptofloor builtin_droptofloor
#define IT_QUAD _IT_QUAD /* BIT(22) */
#pragma noref 1
-
-#endif
-#ifndef TEAMPLAY_H
-#define TEAMPLAY_H
+#pragma once
string cache_mutatormsg;
string cache_lastmutatormsg;
void SV_ChangeTeam(float _color);
void ShufflePlayerOutOfTeam (float source_team);
-#endif
-#ifndef ACCURACY_H
-#define ACCURACY_H
+#pragma once
.bool cvar_cl_accuracy_data_share;
REPLICATE(cvar_cl_accuracy_data_share, bool, "cl_accuracy_data_share");
// helper
bool accuracy_isgooddamage(entity attacker, entity targ);
bool accuracy_canbegooddamage(entity attacker);
-#endif
-#ifndef WEAPONS_COMMON_H
-#define WEAPONS_COMMON_H
+#pragma once
void W_GiveWeapon (entity e, float wep);
.float prevstrengthsound;
void W_PlayStrengthSound(entity player);
float W_CheckProjectileDamage(entity inflictor, entity projowner, int deathtype, float exception);
void W_PrepareExplosionByDamage(entity attacker, void() explode);
-#endif
-#ifndef CSQCPROJECTILE_H
-#define CSQCPROJECTILE_H
+#pragma once
.float csqcprojectile_clientanimate;
void UpdateCSQCProjectile(entity e);
void UpdateCSQCProjectileAfterTeleport(entity e);
void CSQCProjectile_Check(entity e);
-#endif
-#ifndef HITPLOT_H
-#define HITPLOT_H
+#pragma once
.float hitplotfh;
void W_HitPlotAnalysis(entity player, vector screenforward, vector screenright, vector screenup);
void W_HitPlotOpen(entity player);
void W_HitPlotClose(entity player);
-#endif
-#ifndef SELECTION_H
-#define SELECTION_H
+#pragma once
// switch between weapons
void Send_WeaponComplain(entity e, float wpn, float type);
// previously used if exists and has ammo, (second) best otherwise
void W_LastWeapon(entity this);
-#endif
-#ifndef SPAWNING_H
-#define SPAWNING_H
+#pragma once
string W_Apply_Weaponreplace(string in);
void weapon_defaultspawnfunc(entity this, Weapon e);
-#endif
-#ifndef THROWING_H
-#define THROWING_H
+#pragma once
.float savenextthink;
void thrown_wep_think();
void W_ThrowWeapon(vector velo, vector delta, float doreduce);
void SpawnThrownWeapon(entity this, vector org, float w);
-#endif
-#ifndef TRACING_H
-#define TRACING_H
+#pragma once
vector w_shotorg;
vector w_shotdir;
entity fireBullet_last_hit;
void fireBullet_trace_callback(vector start, vector hit, vector end);
void fireBullet(vector start, vector dir, float spread, float max_solid_penetration, float damage, float force, float dtype, int tracereffects);
-#endif
-#ifndef WEAPONSTATS_H
-#define WEAPONSTATS_H
+#pragma once
float weaponstats_buffer;
void WeaponStats_LogKill(float awep, float abot, float vwep, float vbot);
#define WEAPONSTATS_GETINDEX(awep,abot,vwep,vbot) (((vwep) + (awep) * (WEP_LAST - WEP_FIRST + 1) - (WEP_FIRST + WEP_FIRST * (WEP_LAST - WEP_FIRST + 1))) * 4 + (abot) * 2 + (vbot))
-#endif
-#ifndef WEAPONSYSTEM_H
-#define WEAPONSYSTEM_H
-
+#pragma once
float internalteam;
float weaponswapping;
void weapon_prepareattack_do(entity actor, .entity weaponentity, float secondary, float attacktime);
void weapon_thinkf(entity actor, .entity weaponentity, WFRAME fr, float t, void(Weapon thiswep, entity actor, .entity weaponentity, int fire) func);
-
-#endif