#ifndef ROUND_HANDLER_H #define ROUND_HANDLER_H #if defined(CSQC) #elif defined(MENUQC) #elif defined(SVQC) #include "../common/util-pre.qh" #include "sys-pre.qh" #include "../dpdefs/progsdefs.qh" #include "../dpdefs/dpextensions.qh" #include "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 "../common/constants.qh" #include "../common/stats.qh" #include "../common/teams.qh" #include "../common/util.qh" #include "../common/nades.qh" #include "../common/buffs.qh" #include "../common/test.qh" #include "../common/counting.qh" #include "../common/urllib.qh" #include "../common/command/markup.qh" #include "../common/command/rpn.qh" #include "../common/command/generic.qh" #include "../common/command/shared_defs.qh" #include "../common/net_notice.qh" #include "../common/animdecide.qh" #include "../common/monsters/monsters.qh" #include "../common/monsters/sv_monsters.qh" #include "../common/monsters/spawn.qh" #include "../common/weapons/config.qh" #include "../common/weapons/weapons.qh" #include "weapons/accuracy.qh" #include "weapons/common.qh" #include "weapons/csqcprojectile.qh" #include "weapons/hitplot.qh" #include "weapons/selection.qh" #include "weapons/spawning.qh" #include "weapons/throwing.qh" #include "weapons/tracing.qh" #include "weapons/weaponstats.qh" #include "weapons/weaponsystem.qh" #include "t_items.qh" #include "autocvars.qh" #include "constants.qh" #include "defs.qh" #include "../common/notifications.qh" #include "../common/deathtypes.qh" #include "mutators/mutators_include.qh" #include "tturrets/include/turrets_early.qh" #include "vehicles/vehicles_def.qh" #include "campaign.qh" #include "../common/campaign_common.qh" #include "../common/mapinfo.qh" #include "command/common.qh" #include "command/banning.qh" #include "command/radarmap.qh" #include "command/vote.qh" #include "command/getreplies.qh" #include "command/cmd.qh" #include "command/sv_cmd.qh" #include "../common/csqcmodel_settings.qh" #include "../csqcmodellib/common.qh" #include "../csqcmodellib/sv_model.qh" #include "anticheat.qh" #include "cheats.qh" #include "../common/playerstats.qh" #include "portals.qh" #include "g_hook.qh" #include "scores.qh" #include "spawnpoints.qh" #include "mapvoting.qh" #include "ipban.qh" #include "race.qh" #include "antilag.qh" #include "playerdemo.qh" #endif entity round_handler; .float delay; // stores delay from round end to countdown start .float count; // stores initial number of the countdown .float wait; // it's set to true when round ends, to false when countdown starts .float cnt; // its initial value is .count + 1, then decreased while counting down // reaches 0 when the round starts .float round_timelimit; .float round_endtime; .float() canRoundStart; .float() canRoundEnd; .void() roundStart; void round_handler_Init(float the_delay, float the_count, float the_round_timelimit); void round_handler_Spawn(float() canRoundStart_func, float() canRoundEnd_func, void() roundStart_func); void round_handler_Reset(float next_think); void round_handler_Remove(); #define round_handler_IsActive() (round_handler != world) #define round_handler_AwaitingNextRound() (round_handler.wait) #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