return;\r
\r
s = db_get(_MapInfo_Cache_DB_NameToIndex, MapInfo_Map_bspname);\r
- if(!s) // empty string is NOT valid here!\r
+ if(s == "")\r
{\r
i = buf_getsize(_MapInfo_Cache_Buf_IndexToMapData);\r
db_put(_MapInfo_Cache_DB_NameToIndex, MapInfo_Map_bspname, ftos(i));\r
return 0;\r
\r
s = db_get(_MapInfo_Cache_DB_NameToIndex, map);\r
- if(!s)\r
+ if(s == "")\r
return 0;\r
i = stof(s);\r
\r
MapInfo_Map_supportedGametypes = stof(bufstr_get(_MapInfo_Cache_Buf_IndexToMapData, ++i));\r
MapInfo_Map_supportedFeatures = stof(bufstr_get(_MapInfo_Cache_Buf_IndexToMapData, ++i));\r
MapInfo_Map_flags = stof(bufstr_get(_MapInfo_Cache_Buf_IndexToMapData, ++i));\r
+\r
return 1;\r
}\r
\r
string _MapInfo_GlobItem(float i)\r
{\r
string s;\r
+ if(!_MapInfo_globopen)\r
+ return string_null;\r
s = search_getfilename(_MapInfo_globhandle, i);\r
return substring(s, 5, strlen(s) - 9); // without maps/ and .bsp\r
}\r
void MapInfo_Enumerate()\r
{\r
if(_MapInfo_globopen)\r
+ {\r
search_end(_MapInfo_globhandle);\r
+ _MapInfo_globopen = 0;\r
+ }\r
MapInfo_Cache_Invalidate();\r
_MapInfo_globhandle = search_begin("maps/*.bsp", TRUE, TRUE);\r
- _MapInfo_globcount = search_getsize(_MapInfo_globhandle);\r
- _MapInfo_globopen = 1;\r
+ if(_MapInfo_globhandle >= 0)\r
+ {\r
+ _MapInfo_globcount = search_getsize(_MapInfo_globhandle);\r
+ _MapInfo_globopen = 1;\r
+ }\r
+ else\r
+ _MapInfo_globcount = 0;\r
}\r
\r
// filter the info by game type mask (updates MapInfo_count)\r