X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fworld.qh;h=e351624701a7c6370b0dd6ed49c838b93e83b332;hb=c859a2a87cbeb3dd30f402782cf7e59d132b1b81;hp=2894299d619beee64fd0dbfa9b9510c4dacea443;hpb=3ae8500149d8fabdaa032dfc2b2d61a41ba9ea6c;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/world.qh b/qcsrc/server/world.qh index 2894299d6..e35162470 100644 --- a/qcsrc/server/world.qh +++ b/qcsrc/server/world.qh @@ -1,5 +1,7 @@ #pragma once +#include + float checkrules_equality; float checkrules_suddendeathwarning; float checkrules_suddendeathend; @@ -22,9 +24,7 @@ string matchid; .string fog; -float intermission_running; -float intermission_exittime; -float alreadychangedlevel; +string redirection_target; string cache_mutatormsg; string cache_lastmutatormsg; @@ -32,6 +32,67 @@ string cache_lastmutatormsg; float default_player_alpha; float default_weapon_alpha; +float g_pickup_shells_max; +float g_pickup_nails_max; +float g_pickup_rockets_max; +float g_pickup_cells_max; +float g_pickup_plasma_max; +float g_pickup_fuel_max; +float g_pickup_weapons_anyway; +float g_weaponarena; +WepSet g_weaponarena_weapons; +float g_weaponarena_random; // TODO +string g_weaponarena_list; + +WepSet start_weapons; +WepSet start_weapons_default; +WepSet start_weapons_defaultmask; +int start_items; +float start_ammo_shells; +float start_ammo_nails; +float start_ammo_rockets; +float start_ammo_cells; +float start_ammo_plasma; +float start_ammo_fuel; +/// \brief Number of random start weapons to give to players. +int random_start_weapons_count; +/// \brief Holds a list of possible random start weapons. +string autocvar_g_random_start_weapons; +/// \brief Entity that contains amount of ammo to give with random start +/// weapons. +entity random_start_ammo; +float start_health; +float start_armorvalue; +WepSet warmup_start_weapons; +WepSet warmup_start_weapons_default; +WepSet warmup_start_weapons_defaultmask; +#define WARMUP_START_WEAPONS ((autocvar_g_warmup_allguns == 1) ? (warmup_start_weapons & (weaponsInMap | start_weapons)) : warmup_start_weapons) +float warmup_start_ammo_shells; +float warmup_start_ammo_nails; +float warmup_start_ammo_rockets; +float warmup_start_ammo_cells; +float warmup_start_ammo_plasma; +float warmup_start_ammo_fuel; +float warmup_start_health; +float warmup_start_armorvalue; +float g_weapon_stay; + +float want_weapon(entity weaponinfo, float allguns); // WEAPONTODO: what still needs done? + +float g_grappling_hook; +float warmup_stage; + +bool sv_ready_restart_after_countdown; + +.void(entity this) initialize_entity; +.int initialize_entity_order; +.entity initialize_entity_next; +entity initialize_entity_first; + +void InitializeEntitiesRun(); + +void InitializeEntity(entity e, void(entity this) func, int order); + // database float ServerProgsDB; float TemporaryDB; @@ -44,20 +105,14 @@ const int WINNING_STARTSUDDENDEATHOVERTIME = 3; // no winner, enter suddendeath float WinningCondition_Scores(float limit, float leadlimit); void SetWinners(.float field, float value); -void IntermissionThink(entity this); -void GotoNextMap(float reinit); void ReadyRestart(); -string GetGametype(); - void DumpStats(float final); -float Map_IsRecent(string m); -string GetNextMap(); -void ShuffleMaplist(); -void Map_Goto_SetStr(string nextmapname); -void Map_Goto(float reinit); -void Map_MarkAsRecent(string m); -float DoNextMapOverride(float reinit); + +bool MoveToRandomLocationWithinBounds(entity e, vector boundmin, vector boundmax, float goodcontents, float badcontents, float badsurfaceflags, int attempts, float maxaboveground, float minviewdistance); + +float MoveToRandomMapLocation(entity e, float goodcontents, float badcontents, float badsurfaceflags, float attempts, float maxaboveground, float minviewdistance); + void CheckRules_World(); float RedirectionThink(); @@ -65,5 +120,12 @@ float RedirectionThink(); .string music; .string noise; +void readplayerstartcvars(); + +void readlevelcvars(); + +.vector dropped_origin; +void droptofloor(entity this); + IntrusiveList g_moveables; STATIC_INIT(g_moveables) { g_moveables = IL_NEW(); }