X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fserver%2Fcommand%2Fgetreplies.qc;h=e67625a307caac26580d06c7491f3299f8f5e255;hb=235e1cf920d59aca16a705699c45e6d83818d5cd;hp=2598724717a72b3b3bdf5d22fd3168895cb55fe1;hpb=f34fd47ee0a7f283ab60592a17399ec5a500416c;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/command/getreplies.qc b/qcsrc/server/command/getreplies.qc index 259872471..e67625a30 100644 --- a/qcsrc/server/command/getreplies.qc +++ b/qcsrc/server/command/getreplies.qc @@ -1,14 +1,19 @@ #include "getreplies.qh" + +#include +#include + #include #include "getreplies.qh" #include "../race.qh" #include +#include #include #include -#include +#include // ========================================================= // Reply messages for common commands, re-worked by Samual @@ -241,22 +246,24 @@ string getmaplist() return sprintf("^7Maps in list: %s\n", maplist); } - +const int LSMAPS_MAX = 250; string getlsmaps() { string lsmaps = "", col; - float i, newmaps = 0; + bool newmaps = false; + int added = 0; - for (i = 0; i < MapInfo_count; ++i) + for (int i = 0; i < MapInfo_count; ++i) { if ((MapInfo_Get_ByID(i)) && !(MapInfo_Map_flags & MapInfo_ForbiddenFlags())) { + ++added; + + if(added > LSMAPS_MAX) + continue; // we still get the added count, but skip the actual processing + // todo: Check by play count of maps for other game types? - if ( - (g_race && !stof(db_get(ServerProgsDB, strcat(MapInfo_Map_bspname, RACE_RECORD, "time")))) - || - (g_cts && !stof(db_get(ServerProgsDB, strcat(MapInfo_Map_bspname, CTS_RECORD, "time")))) - ) + if((g_race || g_cts) && !race_readTime(MapInfo_Map_bspname, 1)) { newmaps = true; if (i % 2) col = "^4*"; else col = "^5*"; @@ -270,19 +277,22 @@ string getlsmaps() } } + if(added > LSMAPS_MAX) + lsmaps = sprintf("%s^7(%d not listed)", lsmaps, added - LSMAPS_MAX); + MapInfo_ClearTemps(); - return sprintf("^7Maps available (%d)%s: %s\n", tokenize_console(lsmaps), (newmaps ? " (New maps have asterisks marked in blue)" : ""), lsmaps); + return sprintf("^7Maps available (%d)%s: %s\n", added, (newmaps ? " (New maps have asterisks marked in blue)" : ""), lsmaps); } string getmonsterlist() { - string monsterlist = "", col; + string monsterlist = ""; - for (int i = MON_FIRST; i <= MON_LAST; ++i) + FOREACH(Monsters, it != MON_Null && !(it.spawnflags & MON_FLAG_HIDDEN), { - if (i % 2) col = "^2"; else col = "^3"; - monsterlist = sprintf("%s%s%s ", monsterlist, col, (get_monsterinfo(i)).netname); - } + string col = ((i % 2) ? "^2" : "^3"); + monsterlist = sprintf("%s%s%s ", monsterlist, col, it.netname); + }); return sprintf("^7Monsters available: %s\n", monsterlist); }