X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fserver%2Fg_world.qc;h=42c2d7a8e4e74cad37e0a1cacc88f0b74361fd6e;hb=04ab0ff7c3c5fcfe9780eadccfd5abd03d25b181;hp=56200fe354b23c5c4b8372a96801c6427085f3af;hpb=8ced0314dc438d84e9d7e5e542027456fb8db759;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_world.qc b/qcsrc/server/g_world.qc index 56200fe35..42c2d7a8e 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -51,7 +51,7 @@ void PingPLReport_Spawn() pingplreport.nextthink = time; } -float SPAWNFLAG_NO_WAYPOINTS_FOR_ITEMS = 1; +const float SPAWNFLAG_NO_WAYPOINTS_FOR_ITEMS = 1; string redirection_target; float world_initialized; @@ -253,7 +253,6 @@ void cvar_changes_init() // mapinfo BADCVAR("fraglimit"); - BADCVAR("g_arena"); BADCVAR("g_assault"); BADCVAR("g_ca"); BADCVAR("g_ca_teams"); @@ -304,7 +303,6 @@ void cvar_changes_init() // does nothing visible BADCVAR("captureleadlimit_override"); - BADCVAR("g_arena_point_leadlimit"); BADCVAR("g_balance_kill_delay"); BADCVAR("g_ca_point_leadlimit"); BADCVAR("g_ctf_captimerecord_always"); @@ -323,7 +321,6 @@ void cvar_changes_init() BADCVAR("sv_fraginfo"); BADCVAR("sv_timeout"); BADPREFIX("sv_timeout_"); - BADCVAR("welcome_message_time"); BADPREFIX("crypto_"); BADPREFIX("g_chat_"); BADPREFIX("g_ctf_captimerecord_"); @@ -417,7 +414,6 @@ void cvar_changes_init() BADCVAR("sv_vote_master_commands"); BADCVAR("sv_vote_master_password"); BADCVAR("sv_vote_simple_majority_factor"); - BADCVAR("sys_ticrate"); BADCVAR("teamplay_mode"); BADCVAR("timelimit_override"); BADCVAR("g_spawnshieldtime"); @@ -430,7 +426,7 @@ void cvar_changes_init() BADCVAR("g_nix"); BADCVAR("g_grappling_hook"); BADCVAR("g_jetpack"); - + #undef BADPREFIX #undef BADCVAR @@ -769,7 +765,7 @@ void spawnfunc_worldspawn (void) WeaponStats_Init(); - WEPSET_ADDSTAT(); + WepSet_AddStat(); addstat(STAT_SWITCHWEAPON, AS_INT, switchweapon); addstat(STAT_SWITCHINGWEAPON, AS_INT, switchingweapon); addstat(STAT_GAMESTARTTIME, AS_FLOAT, stat_game_starttime); @@ -814,6 +810,7 @@ void spawnfunc_worldspawn (void) detect_maptype(); // set up information replies for clients and server to use + maplist_reply = strzone(getmaplist()); lsmaps_reply = strzone(getlsmaps()); for(i = 0; i < 10; ++i) { @@ -1049,6 +1046,8 @@ float() MaplistMethod_Iterate = // usual method { float pass, i; + dprint("Trying MaplistMethod_Iterate\n"); + for(pass = 1; pass <= 2; ++pass) { for(i = 1; i < Map_Count; ++i) @@ -1064,6 +1063,8 @@ float() MaplistMethod_Iterate = // usual method float() MaplistMethod_Repeat = // fallback method { + dprint("Trying MaplistMethod_Repeat\n"); + if(Map_Check(Map_Current, 2)) return Map_Current; return -2; @@ -1073,6 +1074,8 @@ float() MaplistMethod_Random = // random map selection { float i, imax; + dprint("Trying MaplistMethod_Random\n"); + imax = 42; for(i = 0; i <= imax; ++i) @@ -1091,6 +1094,8 @@ float(float exponent) MaplistMethod_Shuffle = // more clever shuffling { float i, j, imax, insertpos; + dprint("Trying MaplistMethod_Shuffle\n"); + imax = 42; for(i = 0; i <= imax; ++i) @@ -1125,10 +1130,14 @@ float(float exponent) MaplistMethod_Shuffle = // more clever shuffling void Maplist_Init() { Map_Count = tokenizebyseparator(autocvar_g_maplist, " "); - if(Map_Count == 0) + float i; + for (i = 0; i < Map_Count; ++i) + if (Map_Check(i, 2)) + break; + if (i == Map_Count) { - bprint( "Maplist is empty! Resetting it to default map list.\n" ); - cvar_set("g_maplist", MapInfo_ListAllAllowedMaps(MapInfo_RequiredFlags(), MapInfo_ForbiddenFlags())); + bprint( "Maplist contains no usable maps! Resetting it to default map list.\n" ); + cvar_set("g_maplist", MapInfo_ListAllAllowedMaps(MapInfo_RequiredFlags(), MapInfo_ForbiddenFlags() | MAPINFO_FLAG_NOAUTOMAPLIST)); if(autocvar_g_maplist_shuffle) ShuffleMaplist(); localcmd("\nmenu_cmd sync\n"); @@ -1231,31 +1240,12 @@ void GotoNextMap(float reinit) return; alreadychangedlevel = TRUE; - { - string nextMap; - float allowReset; + string nextMap; - for(allowReset = 1; allowReset >= 0; --allowReset) - { - nextMap = GetNextMap(); - if(nextMap != "") - break; - - if(allowReset) - { - bprint( "Maplist contains no single playable map! Resetting it to default map list.\n" ); - cvar_set("g_maplist", MapInfo_ListAllAllowedMaps(MapInfo_RequiredFlags(), MapInfo_ForbiddenFlags())); - if(autocvar_g_maplist_shuffle) - ShuffleMaplist(); - localcmd("\nmenu_cmd sync\n"); - } - else - { - error("Everything is broken - not even the default map list works. Please report this to the developers."); - } - } - Map_Goto(reinit); - } + nextMap = GetNextMap(); + if(nextMap == "") + error("Everything is broken - cannot find a next map. Please report this to the developers."); + Map_Goto(reinit); } @@ -1409,7 +1399,7 @@ void DumpStats(float final) { s = strcat(":player:see-labels:", GetPlayerScoreString(other, 0), ":"); s = strcat(s, ftos(rint(time - other.jointime)), ":"); - if(IS_PLAYER(other) || g_arena || other.caplayer == 1 || g_lms) + if(IS_PLAYER(other) || other.caplayer == 1 || g_lms) s = strcat(s, ftos(other.team), ":"); else s = strcat(s, "spectator:"); @@ -1522,7 +1512,7 @@ void NextLevel() PlayerStats_AddGlobalInfo(e); PlayerStats_Shutdown(); WeaponStats_Shutdown(); - + Kill_Notification(NOTIF_ALL, world, MSG_CENTER, 0); // kill all centerprints now if(autocvar_sv_eventlog) @@ -1568,10 +1558,10 @@ float checkrules_suddendeathwarning; float checkrules_suddendeathend; float checkrules_overtimesadded; //how many overtimes have been already added -float WINNING_NO = 0; // no winner, but time limits may terminate the game -float WINNING_YES = 1; // winner found -float WINNING_NEVER = 2; // no winner, enter overtime if time limit is reached -float WINNING_STARTSUDDENDEATHOVERTIME = 3; // no winner, enter suddendeath overtime NOW +const float WINNING_NO = 0; // no winner, but time limits may terminate the game +const float WINNING_YES = 1; // winner found +const float WINNING_NEVER = 2; // no winner, enter overtime if time limit is reached +const float WINNING_STARTSUDDENDEATHOVERTIME = 3; // no winner, enter suddendeath overtime NOW float InitiateSuddenDeath() { @@ -1665,7 +1655,7 @@ float WinningCondition_Onslaught() WinningConditionHelper(); // set worldstatus - if(inWarmupStage) + if(warmup_stage) return WINNING_NO; // first check if the game has ended @@ -1863,7 +1853,7 @@ float WinningCondition_Scores(float limit, float leadlimit) if(WinningConditionHelper_zeroisworst) leadlimit = 0; // not supported in this mode - if(g_dm || g_tdm || g_arena || g_ca || (g_race && !g_race_qualifying) || g_nexball) + if(g_dm || g_tdm || g_ca || (g_race && !g_race_qualifying) || g_nexball) // these modes always score in increments of 1, thus this makes sense { if(leaderfrags != WinningConditionHelper_topscore) @@ -2058,7 +2048,7 @@ void CheckRules_World() fraglimit = autocvar_fraglimit; leadlimit = autocvar_leadlimit; - if(inWarmupStage || time <= game_starttime) // NOTE: this is <= to prevent problems in the very tic where the game starts + if(warmup_stage || time <= game_starttime) // NOTE: this is <= to prevent problems in the very tic where the game starts { if(timelimit > 0) timelimit = 0; // timelimit is not made for warmup @@ -2246,7 +2236,7 @@ string MapVote_Suggest(string m) if(mapvote_initialized) return "Can't suggest - voting is already in progress!"; m = MapInfo_FixName(m); - if not(m) + if (!m) return "The map you suggested is not available on this server."; if(!autocvar_g_maplist_votable_suggestions_override_mostrecent) if(Map_IsRecent(m)) @@ -2398,7 +2388,7 @@ float MapVote_SendEntity(entity to, float sf) float i; if(sf & 1) - sf &~= 2; // if we send 1, we don't need to also send 2 + sf &= ~2; // if we send 1, we don't need to also send 2 WriteByte(MSG_ENTITY, ENT_CLIENT_MAPVOTE); WriteByte(MSG_ENTITY, sf);