X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fmiscfunctions.qh;h=aa2f026e6d5c734388d9a18dbf126eeb7c50f7d2;hp=1c01a573797713c4fe39345da3f895e60717aad9;hb=2eeb83b158abb062ce25cb18da0bca0d9c9f28be;hpb=ecd018b0f2a99be972759503e3efea35b6717ee9 diff --git a/qcsrc/server/miscfunctions.qh b/qcsrc/server/miscfunctions.qh index 1c01a57379..aa2f026e6d 100644 --- a/qcsrc/server/miscfunctions.qh +++ b/qcsrc/server/miscfunctions.qh @@ -1,16 +1,17 @@ #pragma once #include +#include #include -#include "mutators/events.qh" +#include #include #include #include -#ifdef RELEASE +#if 1 #define cvar_string_normal builtin_cvar_string #define cvar_normal builtin_cvar #else @@ -29,7 +30,6 @@ float cvar_normal(string n) #define cvar_set_normal builtin_cvar_set .vector dropped_origin; -.float nottargeted; entity eliminatedPlayers; void EliminatedPlayers_Init(float(entity) isEliminated_func); @@ -62,6 +62,8 @@ void attach_sameorigin(entity e, entity to, string tag); void crosshair_trace(entity pl); void crosshair_trace_plusvisibletriggers(entity pl); +void WarpZone_crosshair_trace_plusvisibletriggers(entity pl); +void crosshair_trace_plusvisibletriggers__is_wz(entity pl, bool is_wz); void detach_sameorigin(entity e); @@ -69,6 +71,11 @@ void follow_sameorigin(entity e, entity to); string formatmessage(entity this, string msg); +/** print(), but only print if the server is not local */ +void dedicated_print(string input); + +string GameLog_ProcessIP(string s); + void GameLogEcho(string s); void GameLogInit(); @@ -85,7 +92,7 @@ float LostMovetypeFollow(entity ent); string uid2name(string myuid); -float MoveToRandomLocationWithinBounds(entity e, vector boundmin, vector boundmax, float goodcontents, float badcontents, float badsurfaceflags, float attempts, float maxaboveground, float minviewdistance); +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); @@ -169,8 +176,7 @@ float g_pickup_fuel_max; float g_pickup_weapons_anyway; float g_weaponarena; WepSet g_weaponarena_weapons; -float g_weaponarena_random; -float g_weaponarena_random_with_blaster; +float g_weaponarena_random; // TODO string g_weaponarena_list; float g_weaponspeedfactor; float g_weaponratefactor; @@ -188,6 +194,13 @@ 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; @@ -210,14 +223,11 @@ void readplayerstartcvars(); float sv_autotaunt; float sv_taunt; -string GetGametype(); // g_world.qc void readlevelcvars() { if(cvar("sv_allow_fullbright")) serverflags |= SERVERFLAG_ALLOW_FULLBRIGHT; - g_instagib = cvar("g_instagib"); - sv_clones = cvar("sv_clones"); sv_foginterval = cvar("sv_foginterval"); g_footsteps = cvar("g_footsteps"); @@ -228,6 +238,9 @@ void readlevelcvars() sv_maxidle_slots_countbots = cvar("sv_maxidle_slots_countbots"); sv_autotaunt = cvar("sv_autotaunt"); sv_taunt = cvar("sv_taunt"); + sv_ready_restart = cvar("sv_ready_restart"); + sv_ready_restart_after_countdown = cvar("sv_ready_restart_after_countdown"); + sv_ready_restart_repeatable = cvar("sv_ready_restart_repeatable"); warmup_stage = cvar("g_warmup"); warmup_limit = cvar("g_warmup_limit"); @@ -315,17 +328,17 @@ void readlevelcvars() //#NO AUTOCVARS END -const float INITPRIO_FIRST = 0; -const float INITPRIO_GAMETYPE = 0; -const float INITPRIO_GAMETYPE_FALLBACK = 1; -const float INITPRIO_FINDTARGET = 10; -const float INITPRIO_DROPTOFLOOR = 20; -const float INITPRIO_SETLOCATION = 90; -const float INITPRIO_LINKDOORS = 91; -const float INITPRIO_LAST = 99; +const int INITPRIO_FIRST = 0; +const int INITPRIO_GAMETYPE = 0; +const int INITPRIO_GAMETYPE_FALLBACK = 1; +const int INITPRIO_FINDTARGET = 10; +const int INITPRIO_DROPTOFLOOR = 20; +const int INITPRIO_SETLOCATION = 90; +const int INITPRIO_LINKDOORS = 91; +const int INITPRIO_LAST = 99; .void(entity this) initialize_entity; -.float initialize_entity_order; +.int initialize_entity_order; .entity initialize_entity_next; entity initialize_entity_first; @@ -333,8 +346,8 @@ entity initialize_entity_first; -float sound_allowed(float dest, entity e); -void InitializeEntity(entity e, void(entity this) func, float order); +bool sound_allowed(int dest, entity e); +void InitializeEntity(entity e, void(entity this) func, int order); IntrusiveList g_ctrace_changed; STATIC_INIT(g_ctrace_changed) { g_ctrace_changed = IL_NEW(); }