X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_world.qc;h=a31871d8648ed90339637a28096e7b1167710b42;hb=1bc3ab0285f65c7ed0c75cbba00da2460921c973;hp=0a2708340dd007993e0e4f409615a3748c14276a;hpb=77f03e6ce033bef39ac19e0e7cb6e606ffcb26db;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_world.qc b/qcsrc/server/g_world.qc index 0a2708340..a31871d86 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -1,39 +1,40 @@ #include "g_world.qh" - +#include "_all.qh" + +#include "anticheat.qh" +#include "antilag.qh" +#include "bot/bot.qh" +#include "campaign.qh" +#include "cheats.qh" +#include "cl_client.qh" +#include "command/common.qh" +#include "command/getreplies.qh" +#include "command/sv_cmd.qh" +#include "command/vote.qh" +#include "g_hook.qh" +#include "ipban.qh" +#include "mapvoting.qh" +#include "mutators/mutators_include.qh" +#include "race.qh" +#include "scores.qh" +#include "secret.qh" +#include "teamplay.qh" +#include "waypointsprites.qh" +#include "weapons/weaponstats.qh" #include "../common/buffs.qh" - -#if defined(CSQC) -#elif defined(MENUQC) -#elif defined(SVQC) - #include "../common/constants.qh" - #include "../common/stats.qh" - #include "../common/teams.qh" - #include "../common/util.qh" - #include "../common/monsters/sv_monsters.qh" - #include "../common/weapons/weapons.qh" - #include "weapons/weaponstats.qh" - #include "autocvars.qh" - #include "constants.qh" - #include "defs.qh" - #include "../common/notifications.qh" - #include "mutators/mutators_include.qh" - #include "campaign.qh" - #include "../common/mapinfo.qh" - #include "command/common.qh" - #include "command/vote.qh" - #include "command/getreplies.qh" - #include "command/sv_cmd.qh" - #include "anticheat.qh" - #include "cheats.qh" - #include "../common/playerstats.qh" - #include "g_hook.qh" - #include "scores.qh" - #include "mapvoting.qh" - #include "ipban.qh" - #include "race.qh" - #include "antilag.qh" - #include "secret.qh" -#endif +#include "../common/constants.qh" +#include "../common/deathtypes.qh" +#include "../common/mapinfo.qh" +#include "../common/monsters/all.qh" +#include "../common/monsters/sv_monsters.qh" +#include "../common/vehicles/vehicles.qh" +#include "../common/notifications.qh" +#include "../common/playerstats.qh" +#include "../common/stats.qh" +#include "../common/teams.qh" +#include "../common/util.qh" +#include "../common/items/all.qh" +#include "../common/weapons/all.qh" const float LATENCY_THINKRATE = 10; .float latency_sum; @@ -93,9 +94,7 @@ string redirection_target; float world_initialized; string GetGametype(); -void GotoNextMap(float reinit); void ShuffleMaplist(); -float(float reinit) DoNextMapOverride; void SetDefaultAlpha() { @@ -191,6 +190,8 @@ void cvar_changes_init() BADCVAR("g_configversion"); BADCVAR("g_maplist_index"); BADCVAR("halflifebsp"); + BADCVAR("sv_mapformat_is_quake2"); + BADCVAR("sv_mapformat_is_quake3"); BADPREFIX("sv_world"); // client @@ -273,6 +274,7 @@ void cvar_changes_init() BADCVAR("g_domination_default_teams"); BADCVAR("g_freezetag"); BADCVAR("g_freezetag_teams"); + BADCVAR("g_invasion_teams"); BADCVAR("g_keepaway"); BADCVAR("g_keyhunt"); BADCVAR("g_keyhunt_teams"); @@ -314,15 +316,21 @@ void cvar_changes_init() // does nothing visible BADCVAR("captureleadlimit_override"); BADCVAR("g_balance_kill_delay"); + BADCVAR("g_ca_point_limit"); BADCVAR("g_ca_point_leadlimit"); BADCVAR("g_ctf_captimerecord_always"); BADCVAR("g_ctf_flag_glowtrails"); BADCVAR("g_ctf_flag_pickup_verbosename"); BADCVAR("g_domination_point_leadlimit"); BADCVAR("g_forced_respawn"); + BADCVAR("g_freezetag_point_limit"); + BADCVAR("g_freezetag_point_leadlimit"); BADCVAR("g_keyhunt_point_leadlimit"); BADPREFIX("g_mod_"); + BADCVAR("g_invasion_point_limit"); BADCVAR("g_nexball_goalleadlimit"); + BADCVAR("g_tdm_point_limit"); + BADCVAR("g_tdm_point_leadlimit"); BADCVAR("leadlimit_and_fraglimit"); BADCVAR("leadlimit_override"); BADCVAR("pausable"); @@ -370,6 +378,7 @@ void cvar_changes_init() BADCVAR("g_ca_teams_override"); BADCVAR("g_ctf_ignore_frags"); BADCVAR("g_domination_point_limit"); + BADCVAR("g_domination_teams_override"); BADCVAR("g_freezetag_teams_override"); BADCVAR("g_friendlyfire"); BADCVAR("g_fullbrightitems"); @@ -390,6 +399,7 @@ void cvar_changes_init() BADCVAR("g_nexball_goallimit"); BADCVAR("g_powerups"); BADCVAR("g_start_delay"); + BADCVAR("g_tdm_teams_override"); BADCVAR("g_warmup"); BADCVAR("g_weapon_stay"); BADPRESUFFIX("g_", "_weapon_stay"); BADCVAR("hostname"); @@ -503,7 +513,7 @@ void detect_maptype() } entity randomseed; -float RandomSeed_Send(entity to, float sf) +float RandomSeed_Send(entity to, int sf) { WriteByte(MSG_ENTITY, ENT_CLIENT_RANDOMSEED); WriteShort(MSG_ENTITY, self.cnt); @@ -552,7 +562,9 @@ void spawnfunc___init_dedicated_server(void) // needs to be done so early because of the constants they create CALL_ACCUMULATED_FUNCTION(RegisterWeapons); + CALL_ACCUMULATED_FUNCTION(RegisterVehicles); CALL_ACCUMULATED_FUNCTION(RegisterMonsters); + CALL_ACCUMULATED_FUNCTION(RegisterItems); CALL_ACCUMULATED_FUNCTION(RegisterGametypes); CALL_ACCUMULATED_FUNCTION(RegisterNotifications); CALL_ACCUMULATED_FUNCTION(RegisterDeathtypes); @@ -570,7 +582,7 @@ void WeaponStats_Init(); void WeaponStats_Shutdown(); void spawnfunc_worldspawn (void) { - float fd, l, i, j, n; + float fd, l, j, n; string s; cvar = cvar_normal; @@ -600,7 +612,9 @@ void spawnfunc_worldspawn (void) // needs to be done so early because of the constants they create CALL_ACCUMULATED_FUNCTION(RegisterWeapons); + CALL_ACCUMULATED_FUNCTION(RegisterVehicles); CALL_ACCUMULATED_FUNCTION(RegisterMonsters); + CALL_ACCUMULATED_FUNCTION(RegisterItems); CALL_ACCUMULATED_FUNCTION(RegisterGametypes); CALL_ACCUMULATED_FUNCTION(RegisterNotifications); CALL_ACCUMULATED_FUNCTION(RegisterDeathtypes); @@ -680,7 +694,7 @@ void spawnfunc_worldspawn (void) // character set: ASCII 33-126 without the following characters: : ; ' " \ $ if(autocvar_sv_eventlog) { - s = sprintf("%d.%s.%06d", ftos(autocvar_sv_eventlog_files_counter), strftime(false, "%s"), floor(random() * 1000000)); + s = sprintf("%d.%s.%06d", itos(autocvar_sv_eventlog_files_counter), strftime(false, "%s"), floor(random() * 1000000)); matchid = strzone(s); GameLogEcho(strcat(":gamestart:", GetGametype(), "_", GetMapname(), ":", s)); @@ -814,6 +828,27 @@ void spawnfunc_worldspawn (void) addstat(STAT_MOVEVARS_AIRACCEL_QW, AS_FLOAT, stat_sv_airaccel_qw); addstat(STAT_MOVEVARS_AIRSTRAFEACCEL_QW, AS_FLOAT, stat_sv_airstrafeaccel_qw); + // new properties + addstat(STAT_MOVEVARS_JUMPVELOCITY, AS_FLOAT, stat_sv_jumpvelocity); + addstat(STAT_MOVEVARS_AIRACCEL_QW_STRETCHFACTOR, AS_FLOAT, stat_sv_airaccel_qw_stretchfactor); + addstat(STAT_MOVEVARS_MAXAIRSTRAFESPEED, AS_FLOAT, stat_sv_maxairstrafespeed); + addstat(STAT_MOVEVARS_MAXAIRSPEED, AS_FLOAT, stat_sv_maxairspeed); + addstat(STAT_MOVEVARS_AIRSTRAFEACCELERATE, AS_FLOAT, stat_sv_airstrafeaccelerate); + addstat(STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL, AS_FLOAT, stat_sv_warsowbunny_turnaccel); + addstat(STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION, AS_FLOAT, stat_sv_airaccel_sideways_friction); + addstat(STAT_MOVEVARS_AIRCONTROL, AS_FLOAT, stat_sv_aircontrol); + addstat(STAT_MOVEVARS_AIRCONTROL_POWER, AS_FLOAT, stat_sv_aircontrol_power); + addstat(STAT_MOVEVARS_AIRCONTROL_PENALTY, AS_FLOAT, stat_sv_aircontrol_penalty); + addstat(STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL, AS_FLOAT, stat_sv_warsowbunny_airforwardaccel); + addstat(STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED, AS_FLOAT, stat_sv_warsowbunny_topspeed); + addstat(STAT_MOVEVARS_WARSOWBUNNY_ACCEL, AS_FLOAT, stat_sv_warsowbunny_accel); + addstat(STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO, AS_FLOAT, stat_sv_warsowbunny_backtosideratio); + addstat(STAT_MOVEVARS_FRICTION, AS_FLOAT, stat_sv_friction); + addstat(STAT_MOVEVARS_ACCELERATE, AS_FLOAT, stat_sv_accelerate); + addstat(STAT_MOVEVARS_STOPSPEED, AS_FLOAT, stat_sv_stopspeed); + addstat(STAT_MOVEVARS_AIRACCELERATE, AS_FLOAT, stat_sv_airaccelerate); + addstat(STAT_MOVEVARS_AIRSTOPACCELERATE, AS_FLOAT, stat_sv_airstopaccelerate); + // secrets addstat(STAT_SECRETS_TOTAL, AS_FLOAT, stat_secrets_total); addstat(STAT_SECRETS_FOUND, AS_FLOAT, stat_secrets_found); @@ -833,7 +868,7 @@ void spawnfunc_worldspawn (void) maplist_reply = strzone(getmaplist()); lsmaps_reply = strzone(getlsmaps()); monsterlist_reply = strzone(getmonsterlist()); - for(i = 0; i < 10; ++i) + for(int i = 0; i < 10; ++i) { s = getrecords(i); if (s) @@ -856,7 +891,7 @@ void spawnfunc_worldspawn (void) { s = ""; n = tokenize_console(cvar_string("sv_curl_serverpackages")); - for(i = 0; i < n; ++i) + for(int i = 0; i < n; ++i) if(substring(argv(i), -18, -1) != "-serverpackage.txt") if(substring(argv(i), -14, -1) != ".serverpackage") // OLD legacy s = strcat(s, " ", argv(i)); @@ -864,7 +899,7 @@ void spawnfunc_worldspawn (void) if(fd >= 0) { j = search_getsize(fd); - for(i = 0; i < j; ++i) + for(int i = 0; i < j; ++i) s = strcat(s, " ", search_getfilename(fd, i)); search_end(fd); } @@ -872,7 +907,7 @@ void spawnfunc_worldspawn (void) if(fd >= 0) { j = search_getsize(fd); - for(i = 0; i < j; ++i) + for(int i = 0; i < j; ++i) s = strcat(s, " ", search_getfilename(fd, i)); search_end(fd); } @@ -1644,7 +1679,7 @@ void SetWinners(.float field, float value) { entity head; FOR_EACH_PLAYER(head) - head.winning = (head.field == value); + head.winning = (head.(field) == value); } // set the .winning flag for those players with a given field value @@ -1652,7 +1687,7 @@ void AddWinners(.float field, float value) { entity head; FOR_EACH_PLAYER(head) - if(head.field == value) + if (head.(field) == value) head.winning = 1; } @@ -1958,7 +1993,7 @@ float WinningCondition_RanOutOfSpawns() if(have_team_spawns <= 0) return WINNING_NO; - if(autocvar_g_spawn_useallspawns <= 0) + if(!autocvar_g_spawn_useallspawns) return WINNING_NO; if(!some_spawn_has_been_used) @@ -2030,7 +2065,6 @@ CheckRules_World Exit deathmatch games upon conditions ============ */ -void ReadyRestart(); void CheckRules_World() { float timelimit;