Xonotic
mapinfo.qh File Reference
#include "util.qh"
+ Include dependency graph for mapinfo.qh:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Gametype
 

Macros

#define IS_GAMETYPE(NAME)   (MapInfo_LoadedGametype == MAPINFO_TYPE_##NAME)
 
#define MAPINFO_SETTEMP_ACL_SYSTEM   "-g_mapinfo_* -rcon_* -_* -g_ban* +*"
 
#define MAPINFO_SETTEMP_ACL_USER   cvar_string("g_mapinfo_settemp_acl")
 
#define REGISTER_GAMETYPE(NAME, inst)   REGISTER(Gametypes, MAPINFO_TYPE, NAME, m_id, inst)
 

Functions

float _MapInfo_FilterGametype (int gametypeFlags, float features, float pFlagsRequired, float pFlagsForbidden, float pAbortOnGenerate)
 
string _MapInfo_GetDefaultEx (Gametype t)
 
float _MapInfo_GetTeamPlayBool (Gametype t)
 
void _MapInfo_Parse_Settemp (string pFilename, string acl, float type, string s, float recurse)
 
string MapInfo_BSPName_ByID (float i)
 
void MapInfo_Cache_Create ()
 
void MapInfo_Cache_Destroy ()
 
void MapInfo_Cache_Invalidate ()
 
float MapInfo_CheckMap (string s)
 
void MapInfo_ClearTemps ()
 
int MapInfo_CurrentFeatures ()
 
Gametype MapInfo_CurrentGametype ()
 
void MapInfo_Enumerate ()
 
float MapInfo_FilterGametype (Gametype gametypeFlags, float features, float pFlagsRequired, float pFlagsForbidden, float pAbortOnGenerate)
 
void MapInfo_FilterString (string sf)
 
float MapInfo_FindName (string s)
 
string MapInfo_FixName (string s)
 
int MapInfo_ForbiddenFlags ()
 
bool MapInfo_Get_ByID (int i)
 
int MapInfo_Get_ByName (string s, float allowGenerate, Gametype gametypeToSet)
 
string MapInfo_ListAllAllowedMaps (float pFlagsRequired, float pFlagsForbidden)
 
string MapInfo_ListAllowedMaps (Gametype type, float pFlagsRequired, float pFlagsForbidden)
 
void MapInfo_LoadMap (string s, float reinit)
 
void MapInfo_LoadMapSettings (string s)
 
int MapInfo_RequiredFlags ()
 
void MapInfo_Shutdown ()
 
void MapInfo_SwitchGameType (Gametype t)
 
string MapInfo_Type_Description (Gametype t)
 
Gametype MapInfo_Type_FromString (string t, bool dowarn)
 
string MapInfo_Type_ToString (Gametype t)
 
string MapInfo_Type_ToText (Gametype t)
 
 REGISTRY_SORT (Gametypes)
 
 STATIC_INIT (Gametypes_renumber)
 

Variables

const int GAMETYPE_FLAG_HIDELIMITS = BIT(4)
 
const int GAMETYPE_FLAG_PREFERRED = BIT(2)
 
const int GAMETYPE_FLAG_PRIORITY = BIT(3)
 
const int GAMETYPE_FLAG_TEAMPLAY = BIT(0)
 
const int GAMETYPE_FLAG_USEPOINTS = BIT(1)
 
const int GAMETYPE_FLAG_WEAPONARENA = BIT(5)
 
int m_flags
 
float MapInfo_count
 
const int MAPINFO_FEATURE_MONSTERS = 8
 
const int MAPINFO_FEATURE_TURRETS = 4
 
const int MAPINFO_FEATURE_VEHICLES = 2
 
const int MAPINFO_FEATURE_WEAPONS = 1
 
float MapInfo_FindName_firstResult
 
string MapInfo_FindName_match
 
const int MAPINFO_FLAG_FORBIDDEN = 2
 
const int MAPINFO_FLAG_FRUSTRATING = 4
 
const int MAPINFO_FLAG_HIDDEN = 1
 
const int MAPINFO_FLAG_NOAUTOMAPLIST = 8
 
Gametype MapInfo_LoadedGametype
 
string MapInfo_Map_author
 
string MapInfo_Map_bspname
 
string MapInfo_Map_clientstuff
 
string MapInfo_Map_description
 
int MapInfo_Map_flags
 
string MapInfo_Map_fog
 
vector MapInfo_Map_maxs
 
vector MapInfo_Map_mins
 
int MapInfo_Map_supportedFeatures
 
int MapInfo_Map_supportedGametypes
 
string MapInfo_Map_title
 
string MapInfo_Map_titlestring
 
float MapInfo_progress
 
int MAPINFO_TYPE_ALL
 

Macro Definition Documentation

◆ IS_GAMETYPE

#define IS_GAMETYPE (   NAME)    (MapInfo_LoadedGametype == MAPINFO_TYPE_##NAME)

Definition at line 131 of file mapinfo.qh.

◆ MAPINFO_SETTEMP_ACL_SYSTEM

#define MAPINFO_SETTEMP_ACL_SYSTEM   "-g_mapinfo_* -rcon_* -_* -g_ban* +*"

Definition at line 206 of file mapinfo.qh.

Referenced by _MapInfo_Parse_Settemp().

◆ MAPINFO_SETTEMP_ACL_USER

#define MAPINFO_SETTEMP_ACL_USER   cvar_string("g_mapinfo_settemp_acl")

Definition at line 205 of file mapinfo.qh.

Referenced by CampaignPreInit(), and MapInfo_Get_ByName_NoFallbacks().

◆ REGISTER_GAMETYPE

#define REGISTER_GAMETYPE (   NAME,
  inst 
)    REGISTER(Gametypes, MAPINFO_TYPE, NAME, m_id, inst)

Definition at line 127 of file mapinfo.qh.

Function Documentation

◆ _MapInfo_FilterGametype()

float _MapInfo_FilterGametype ( int  gametypeFlags,
float  features,
float  pFlagsRequired,
float  pFlagsForbidden,
float  pAbortOnGenerate 
)

◆ _MapInfo_GetDefaultEx()

string _MapInfo_GetDefaultEx ( Gametype  t)

Definition at line 502 of file mapinfo.qc.

Referenced by _MapInfo_Map_ApplyGametypeEx().

503 {
504  return t ? t.model2 : "";
505 }
+ Here is the caller graph for this function:

◆ _MapInfo_GetTeamPlayBool()

float _MapInfo_GetTeamPlayBool ( Gametype  t)

Definition at line 507 of file mapinfo.qc.

References Gametype::team.

Referenced by NET_HANDLE(), and XonoticGametypeList_drawListBoxItem().

508 {
509  return t ? t.team : false;
510 }
bool team
does this gametype support teamplay?
Definition: mapinfo.qh:40
+ Here is the caller graph for this function:

◆ _MapInfo_Parse_Settemp()

void _MapInfo_Parse_Settemp ( string  pFilename,
string  acl,
float  type,
string  s,
float  recurse 
)

Definition at line 627 of file mapinfo.qc.

References _MapInfo_Parse_Settemp(), car(), cdr(), cvar(), cvar_set(), cvar_settemp(), cvar_value_issafe(), fclose(), fgets(), FILE_READ, fopen(), LOG_TRACE, LOG_WARN, MapInfo_Map_clientstuff, MAPINFO_SETTEMP_ACL_SYSTEM, matchacl(), strcat(), strstrofs, substring(), and WARN_COND.

Referenced by _MapInfo_Parse_Settemp(), CampaignPreInit(), and MapInfo_Get_ByName_NoFallbacks().

628 {
629  string t;
630  float o;
631  // tabs are invalid, treat them as "empty"
632  s = strreplace("\t", "", s);
633 
634  t = car(s); s = cdr(s);
635 
636  // limited support of "" and comments
637  // remove trailing and leading " of t
638  if(substring(t, 0, 1) == "\"")
639  {
640  if(substring(t, -1, 1) == "\"")
641  t = substring(t, 1, -2);
642  }
643 
644  // remove leading " of s
645  if(substring(s, 0, 1) == "\"")
646  {
647  s = substring(s, 1, -1);
648  }
649  // remove trailing " of s, and all that follows (cvar description)
650  o = strstrofs(s, "\"", 0);
651  if(o >= 0)
652  s = substring(s, 0, o);
653 
654  // remove // comments
655  o = strstrofs(s, "//", 0);
656  if(o >= 0)
657  s = substring(s, 0, o);
658 
659  // remove trailing spaces
660  while(substring(s, -1, 1) == " ")
661  s = substring(s, 0, -2);
662 
663  if(t == "#include")
664  {
665  if(recurse > 0)
666  {
667  float fh = fopen(s, FILE_READ);
668  if(fh < 0)
669  {
670  if(WARN_COND)
671  LOG_WARN("Map ", pFilename, " references not existing config file ", s);
672  }
673  else
674  {
675  while((s = fgets(fh)))
676  {
677  s = strreplace("\t", "", s); // treat tabs as "empty", perform here first to ensure coments are detected
678  // catch different sorts of comments
679  if(s == "") // empty lines
680  continue;
681  if(substring(s, 0, 1) == "#") // UNIX style
682  continue;
683  if(substring(s, 0, 2) == "//") // C++ style
684  continue;
685  if(substring(s, 0, 1) == "_") // q3map style
686  continue;
687 
688  if(substring(s, 0, 4) == "set ")
689  s = substring(s, 4, -1);
690  if(substring(s, 0, 5) == "seta ")
691  s = substring(s, 5, -1);
692 
693  _MapInfo_Parse_Settemp(pFilename, acl, type, s, recurse - 1);
694  }
695  fclose(fh);
696  }
697  }
698  else if(WARN_COND)
699  LOG_WARN("Map ", pFilename, " uses too many levels of inclusion");
700  }
701  else if(t == ""
702  || !cvar_value_issafe(t)
703  || !cvar_value_issafe(s)
705  {
706  if (WARN_COND)
707  LOG_WARN("Map ", pFilename, " contains a potentially harmful setting, ignored");
708  }
709  else if(matchacl(acl, t) <= 0)
710  {
711  if (WARN_COND)
712  LOG_WARN("Map ", pFilename, " contains a denied setting, ignored");
713  }
714  else
715  {
716  if(type == 0) // server set
717  {
718  LOG_TRACE("Applying temporary setting ", t, " := ", s);
719  #if 0
720  if(cvar("g_campaign"))
721  cvar_set(t, s); // this is a wrapper and is always temporary anyway; no need to backup old values then
722  else
723  #endif
724  cvar_settemp(t, s);
725  }
726  else
727  {
728  LOG_TRACE("Applying temporary client setting ", t, " := ", s);
730  MapInfo_Map_clientstuff, "cl_cmd settemp \"", t, "\" \"", s, "\"\n"
731  );
732  }
733  }
734 }
#define WARN_COND
Definition: mapinfo.qc:15
#define LOG_WARN(...)
Definition: log.qh:66
string MapInfo_Map_clientstuff
Definition: mapinfo.qh:11
float cvar_settemp(string tmp_cvar, string tmp_value)
Definition: util.qc:696
ERASEABLE string cdr(string s)
returns all but first word
Definition: string.qh:249
const float FILE_READ
Definition: csprogsdefs.qc:231
ERASEABLE string car(string s)
returns first word
Definition: string.qh:240
float matchacl(string acl, string str)
Definition: util.qc:1203
spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 f1 s1 strcat(_("Level %s: "), "^BG%s\3\, _("^BGPress ^F2%s^BG to enter the game"))
#define strstrofs
Definition: dpextensions.qh:42
ERASEABLE bool cvar_value_issafe(string s)
Definition: cvar.qh:11
#define MAPINFO_SETTEMP_ACL_SYSTEM
Definition: mapinfo.qh:206
#define LOG_TRACE(...)
Definition: log.qh:81
void _MapInfo_Parse_Settemp(string pFilename, string acl, float type, string s, float recurse)
Definition: mapinfo.qc:627
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_BSPName_ByID()

string MapInfo_BSPName_ByID ( float  i)

Definition at line 231 of file mapinfo.qc.

References _MapInfo_GlobItem(), and MapInfo_FilterList_Lookup().

Referenced by InstantAction_LoadMap(), MapInfo_Get_ByID(), MapList_Add_All(), MapList_LoadMap(), XonoticMapList_g_maplistCacheToggle(), and XonoticMapList_refilter().

232 {
234 }
float MapInfo_FilterList_Lookup(float i)
Definition: mapinfo.qc:137
string _MapInfo_GlobItem(float i)
Definition: mapinfo.qc:106
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_Cache_Create()

void MapInfo_Cache_Create ( )

Definition at line 34 of file mapinfo.qc.

References _MapInfo_Cache_Active, _MapInfo_Cache_Buf_IndexToMapData, _MapInfo_Cache_DB_NameToIndex, buf_create, db_create(), and MapInfo_Cache_Destroy().

Referenced by MapInfo_Cache_Invalidate(), and preMenuInit().

35 {
40 }
ERASEABLE int db_create()
Definition: map.qh:25
int _MapInfo_Cache_Active
Definition: mapinfo.qc:20
int _MapInfo_Cache_DB_NameToIndex
Definition: mapinfo.qc:21
#define buf_create
Definition: dpextensions.qh:63
void MapInfo_Cache_Destroy()
Definition: mapinfo.qc:24
int _MapInfo_Cache_Buf_IndexToMapData
Definition: mapinfo.qc:22
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_Cache_Destroy()

void MapInfo_Cache_Destroy ( )

Definition at line 24 of file mapinfo.qc.

References _MapInfo_Cache_Active, _MapInfo_Cache_Buf_IndexToMapData, _MapInfo_Cache_DB_NameToIndex, and db_close().

Referenced by MapInfo_Cache_Create(), and MapInfo_Shutdown().

25 {
27  return;
28 
32 }
int _MapInfo_Cache_Active
Definition: mapinfo.qc:20
ERASEABLE void db_close(int db)
Definition: map.qh:84
int _MapInfo_Cache_DB_NameToIndex
Definition: mapinfo.qc:21
int _MapInfo_Cache_Buf_IndexToMapData
Definition: mapinfo.qc:22
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_Cache_Invalidate()

void MapInfo_Cache_Invalidate ( )

Definition at line 42 of file mapinfo.qc.

References _MapInfo_Cache_Active, and MapInfo_Cache_Create().

Referenced by MapInfo_Enumerate().

43 {
45  return;
46 
48 }
int _MapInfo_Cache_Active
Definition: mapinfo.qc:20
void MapInfo_Cache_Create()
Definition: mapinfo.qc:34
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_CheckMap()

float MapInfo_CheckMap ( string  s)

Definition at line 1170 of file mapinfo.qc.

References _MapInfo_CheckMap(), and MapInfo_ClearTemps().

Referenced by DoNextMapOverride(), GenericCommand_maplist(), getmaplist(), GotoMap(), Map_Check(), MapVote_AddVotable(), MapVote_Suggest(), and ValidateMap().

1171 {
1172  float r;
1173  r = _MapInfo_CheckMap(s, false);
1175  return r;
1176 }
float _MapInfo_CheckMap(string s, bool gametype_only)
Definition: mapinfo.qc:1157
void MapInfo_ClearTemps()
Definition: mapinfo.qc:1299
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_ClearTemps()

void MapInfo_ClearTemps ( )

Definition at line 1299 of file mapinfo.qc.

References MapInfo_Map_author, MapInfo_Map_bspname, MapInfo_Map_clientstuff, MapInfo_Map_description, MapInfo_Map_supportedFeatures, MapInfo_Map_supportedGametypes, MapInfo_Map_title, MapInfo_Map_titlestring, and string_null.

Referenced by _MapInfo_FilterGametype(), getladder(), getlsmaps(), getmaplist(), getrankings(), getrecords(), InitGameplayMode(), MapInfo_CheckMap(), MapInfo_FilterString(), MapInfo_Shutdown(), XonoticMapInfoDialog_loadMapInfo(), and XonoticMapList_drawListBoxItem().

1300 {
1309 }
string string_null
Definition: nil.qh:9
string MapInfo_Map_clientstuff
Definition: mapinfo.qh:11
int MapInfo_Map_supportedFeatures
Definition: mapinfo.qh:14
string MapInfo_Map_description
Definition: mapinfo.qh:9
string MapInfo_Map_author
Definition: mapinfo.qh:10
int MapInfo_Map_supportedGametypes
Definition: mapinfo.qh:13
string MapInfo_Map_title
Definition: mapinfo.qh:7
string MapInfo_Map_bspname
Definition: mapinfo.qh:6
string MapInfo_Map_titlestring
Definition: mapinfo.qh:8
+ Here is the caller graph for this function:

◆ MapInfo_CurrentFeatures()

int MapInfo_CurrentFeatures ( )

Definition at line 1140 of file mapinfo.qc.

References cvar(), and MAPINFO_FEATURE_WEAPONS.

Referenced by _MapInfo_CheckMap(), GameCommand_gametype(), GameTypeVote_SetGametype(), GenericCommand_maplist(), GotoFirstMap(), InstantAction_LoadMap(), make_mapinfo_Think(), MapInfo_ListAllAllowedMaps(), MapInfo_ListAllowedMaps(), MapVote_Start(), MapVote_Think(), RestoreGame(), spawnfunc(), and XonoticMapList_refilter().

1141 {
1142  int req = 0;
1143  // TODO: find a better way to check if weapons are required on the map
1144  if(!(cvar("g_instagib") || cvar("g_overkill") || cvar("g_nix") || cvar("g_weaponarena") || !cvar("g_pickup_items") || !cvar("g_melee_only")
1145  || cvar("g_race") || cvar("g_cts") || cvar("g_nexball") || cvar("g_ca") || cvar("g_freezetag") || cvar("g_lms")))
1146  req |= MAPINFO_FEATURE_WEAPONS;
1147  return req;
1148 }
const int MAPINFO_FEATURE_WEAPONS
Definition: mapinfo.qh:134
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_CurrentGametype()

Gametype MapInfo_CurrentGametype ( )

Definition at line 1150 of file mapinfo.qc.

References cvar(), cvar_string(), FOREACH, MapInfo_Type_FromString(), and prev.

Referenced by _MapInfo_CheckMap(), Campaign_Invalid(), GameCommand_gametype(), GameType_ConfigureSliders_for_CurrentGametype(), GameTypeVote_SetGametype(), GameTypeVote_Start(), GenericCommand_maplist(), GotoFirstMap(), InstantAction_LoadMap(), make_mapinfo_Think(), MapInfo_ListAllAllowedMaps(), MapInfo_LoadMapSettings(), MapVote_CheckRules_2(), MapVote_Init(), MapVote_SendEntity(), MapVote_Start(), MapVote_Think(), RestoreGame(), spawnfunc(), STATIC_INIT_LATE(), TeamBalance_FindBestTeam(), XonoticGametypeList_loadCvars(), XonoticGametypeList_saveCvars(), and XonoticMapList_refilter().

1151 {
1152  Gametype prev = MapInfo_Type_FromString(cvar_string("gamecfg"), false);
1153  FOREACH(Gametypes, cvar(it.netname) && it != prev, return it);
1154  return prev ? prev : MAPINFO_TYPE_DEATHMATCH;
1155 }
prev
Definition: all.qh:66
Gametype MapInfo_Type_FromString(string gtype, bool dowarn)
Definition: mapinfo.qc:589
#define FOREACH(list, cond, body)
Definition: iter.qh:19
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_Enumerate()

void MapInfo_Enumerate ( )

Definition at line 115 of file mapinfo.qc.

References _MapInfo_globcount, _MapInfo_globhandle, _MapInfo_globopen, MapInfo_Cache_Invalidate(), search_begin(), search_end(), and search_getsize().

Referenced by GameCommand_make_mapinfo(), GameTypeVote_MapInfo_FixName(), GameTypeVote_SetGametype(), GenericCommand_maplist(), GotoFirstMap(), MapInfo_ListAllAllowedMaps(), MapInfo_ListAllowedMaps(), MapVote_Start(), preMenuInit(), RestoreGame(), and spawnfunc().

116 {
118  {
120  _MapInfo_globopen = 0;
121  }
123  _MapInfo_globhandle = search_begin("maps/*.bsp", true, true);
124  if(_MapInfo_globhandle >= 0)
125  {
127  _MapInfo_globopen = 1;
128  }
129  else
130  _MapInfo_globcount = 0;
131 }
float _MapInfo_globopen
Definition: mapinfo.qc:103
float _MapInfo_globhandle
Definition: mapinfo.qc:105
float _MapInfo_globcount
Definition: mapinfo.qc:104
void MapInfo_Cache_Invalidate()
Definition: mapinfo.qc:42
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_FilterGametype()

float MapInfo_FilterGametype ( Gametype  gametypeFlags,
float  features,
float  pFlagsRequired,
float  pFlagsForbidden,
float  pAbortOnGenerate 
)

◆ MapInfo_FilterString()

void MapInfo_FilterString ( string  sf)

Definition at line 194 of file mapinfo.qc.

References _MapInfo_filtered, _MapInfo_FilterList_cmp(), _MapInfo_FilterList_swap(), heapsort(), MapInfo_ClearTemps(), MapInfo_count, MapInfo_Get_ByID(), MapInfo_Map_bspname, MapInfo_Map_title, NULL, and strstrofs.

Referenced by XonoticMapList_refilter().

195 {
196  // this function further filters _MapInfo_filtered, which is prepared by MapInfo_FilterGametype by string
197  float i, j;
198  string title;
199 
200  for(i = 0, j = -1; i < MapInfo_count; ++i)
201  {
202  if (MapInfo_Get_ByID(i))
203  {
204  // prepare for keyword filter
205  if (MapInfo_Map_title && strstrofs(MapInfo_Map_title, "<TITLE>", 0) == -1)
206  title = MapInfo_Map_title;
207  else
208  title = MapInfo_Map_bspname;
209  // keyword filter
210  if((strstrofs(strtolower(title), strtolower(sf), 0)) >= 0)
211  bufstr_set(_MapInfo_filtered, ++j, bufstr_get(_MapInfo_filtered, i));
212  }
213  }
214  MapInfo_count = j + 1;
216 
217  // sometimes the glob isn't sorted nicely, so fix it here...
219 }
ERASEABLE void heapsort(int n, swapfunc_t swap, comparefunc_t cmp, entity pass)
Definition: sort.qh:9
bool MapInfo_Get_ByID(int i)
Definition: mapinfo.qc:256
float MapInfo_count
Definition: mapinfo.qh:144
void _MapInfo_FilterList_swap(float i, float j, entity pass)
Definition: mapinfo.qc:142
#define NULL
Definition: post.qh:17
#define strstrofs
Definition: dpextensions.qh:42
void MapInfo_ClearTemps()
Definition: mapinfo.qc:1299
string MapInfo_Map_title
Definition: mapinfo.qh:7
float _MapInfo_filtered
Definition: mapinfo.qc:135
string MapInfo_Map_bspname
Definition: mapinfo.qh:6
float _MapInfo_FilterList_cmp(float i, float j, entity pass)
Definition: mapinfo.qc:150
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_FindName()

float MapInfo_FindName ( string  s)

Definition at line 1086 of file mapinfo.qc.

References _MapInfo_GlobItem(), floor(), MapInfo_count, MapInfo_FilterList_Lookup(), MapInfo_FindName_firstResult, MapInfo_FindName_match, startsWithNocase(), strcasecmp, and string_null.

Referenced by MapInfo_FixName(), XonoticMapList_keyDown(), and XonoticMapList_refilter().

1087 {
1088  // if there is exactly one map of prefix s, return it
1089  // if not, return the null string
1090  // note that DP sorts glob results... so I can use a binary search
1091  float l, r, m, cmp;
1092  l = 0;
1093  r = MapInfo_count;
1094  // invariants: r is behind s, l-1 is equal or before
1095  while(l != r)
1096  {
1097  m = floor((l + r) / 2);
1100  if(cmp == 0)
1101  return m; // found and good
1102  if(cmp < 0)
1103  l = m + 1; // l-1 is before s
1104  else
1105  r = m; // behind s
1106  }
1109  // r == l, so: l is behind s, l-1 is before
1110  // SO: if there is any, l is the one with the right prefix
1111  // and l+1 may be one too
1112  if(l == MapInfo_count)
1113  {
1116  return -1; // no MapInfo_FindName_match, behind last item
1117  }
1119  {
1122  return -1; // wrong prefix
1123  }
1124  if(l == MapInfo_count - 1)
1125  return l; // last one, nothing can follow => unique
1127  {
1129  return -1; // ambigous MapInfo_FindName_match
1130  }
1131  return l;
1132 }
string string_null
Definition: nil.qh:9
float MapInfo_FilterList_Lookup(float i)
Definition: mapinfo.qc:137
string _MapInfo_GlobItem(float i)
Definition: mapinfo.qc:106
string MapInfo_FindName_match
Definition: mapinfo.qh:168
float MapInfo_count
Definition: mapinfo.qh:144
ERASEABLE bool startsWithNocase(string haystack, string needle)
Definition: string.qh:220
float MapInfo_FindName_firstResult
Definition: mapinfo.qh:169
#define strcasecmp
Definition: dpextensions.qh:57
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_FixName()

string MapInfo_FixName ( string  s)

Definition at line 1134 of file mapinfo.qc.

References MapInfo_FindName(), and MapInfo_FindName_match.

Referenced by GameTypeVote_MapInfo_FixName(), and ValidateMap().

1135 {
1136  MapInfo_FindName(s);
1137  return MapInfo_FindName_match;
1138 }
string MapInfo_FindName_match
Definition: mapinfo.qh:168
float MapInfo_FindName(string s)
Definition: mapinfo.qc:1086
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_ForbiddenFlags()

int MapInfo_ForbiddenFlags ( )

Definition at line 1324 of file mapinfo.qc.

References cvar(), MAPINFO_FLAG_FORBIDDEN, MAPINFO_FLAG_FRUSTRATING, and MAPINFO_FLAG_HIDDEN.

Referenced by GameCommand_gametype(), GameTypeVote_MapInfo_FixName(), GameTypeVote_SetGametype(), GenericCommand_maplist(), getlsmaps(), GotoFirstMap(), InstantAction_LoadMap(), make_mapinfo_Think(), MapList_Add_All(), Maplist_Init(), MapVote_Init(), MapVote_Start(), MapVote_Think(), RestoreGame(), spawnfunc(), and XonoticMapList_refilter().

1325 {
1326  int f = MAPINFO_FLAG_FORBIDDEN;
1327 
1328 #ifdef GAMEQC
1329  if (!cvar("g_maplist_allow_hidden"))
1330 #endif
1331  f |= MAPINFO_FLAG_HIDDEN;
1332 
1333  if (!cvar("g_maplist_allow_frustrating"))
1335 
1336  return f;
1337 }
const int MAPINFO_FLAG_FORBIDDEN
Definition: mapinfo.qh:140
const int MAPINFO_FLAG_HIDDEN
Definition: mapinfo.qh:139
const int MAPINFO_FLAG_FRUSTRATING
Definition: mapinfo.qh:141
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_Get_ByID()

bool MapInfo_Get_ByID ( int  i)

Definition at line 256 of file mapinfo.qc.

References MapInfo_BSPName_ByID(), MapInfo_Get_ByName(), NULL, and true.

Referenced by getladder(), getlsmaps(), MapInfo_FilterString(), MUTATOR_HOOKFUNCTION(), XonoticMapInfoDialog_loadMapInfo(), and XonoticMapList_drawListBoxItem().

257 {
258  return MapInfo_Get_ByName(MapInfo_BSPName_ByID(i), 0, NULL) ? true : false;
259 }
int MapInfo_Get_ByName(string pFilename, float pAllowGenerate, Gametype pGametypeToSet)
Definition: mapinfo.qc:1067
#define NULL
Definition: post.qh:17
string MapInfo_BSPName_ByID(float i)
Definition: mapinfo.qc:231
#define true
Definition: csprogsdefs.qh:5
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_Get_ByName()

int MapInfo_Get_ByName ( string  s,
float  allowGenerate,
Gametype  gametypeToSet 
)

Definition at line 1067 of file mapinfo.qc.

References _MapInfo_Map_ApplyGametypeEx(), error(), FOREACH, MapInfo_Get_ByName_NoFallbacks(), and MapInfo_Map_supportedGametypes.

Referenced by _MapInfo_CheckMap(), _MapInfo_FilterGametype(), GameTypeVote_AvailabilityStatus(), MapInfo_Get_ByID(), MapInfo_LoadMapSettings(), and swapInPriorityList().

1068 {
1069  int r = MapInfo_Get_ByName_NoFallbacks(pFilename, pAllowGenerate, pGametypeToSet);
1070 
1071  FOREACH(Gametypes, it.m_isForcedSupported(it), _MapInfo_Map_ApplyGametypeEx("", pGametypeToSet, it));
1072 
1073  if(pGametypeToSet)
1074  {
1075  if(!(MapInfo_Map_supportedGametypes & pGametypeToSet.m_flags))
1076  {
1077  error("Can't select the requested game type. This should never happen as the caller should prevent it!\n");
1078  //_MapInfo_Map_ApplyGametypeEx("", pGametypeToSet, MAPINFO_TYPE_DEATHMATCH);
1079  //return;
1080  }
1081  }
1082 
1083  return r;
1084 }
float MapInfo_Get_ByName_NoFallbacks(string pFilename, int pAllowGenerate, Gametype pGametypeToSet)
Definition: mapinfo.qc:759
int MapInfo_Map_supportedGametypes
Definition: mapinfo.qh:13
void _MapInfo_Map_ApplyGametypeEx(string s, Gametype pWantedType, Gametype pThisType)
Definition: mapinfo.qc:512
#define FOREACH(list, cond, body)
Definition: iter.qh:19
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_ListAllAllowedMaps()

string MapInfo_ListAllAllowedMaps ( float  pFlagsRequired,
float  pFlagsForbidden 
)

Definition at line 1216 of file mapinfo.qc.

References _MapInfo_FilterGametype(), _MapInfo_GlobItem(), MapInfo_count, MapInfo_CurrentFeatures(), MapInfo_CurrentGametype(), MapInfo_Enumerate(), MapInfo_FilterGametype(), MapInfo_FilterList_Lookup(), MAPINFO_TYPE_ALL, strcat(), strlen(), and substring().

Referenced by Maplist_Init().

1217 {
1218  string out;
1219 
1220  // to make absolutely sure:
1222  _MapInfo_FilterGametype(MAPINFO_TYPE_ALL, 0, pRequiredFlags, pForbiddenFlags, 0);
1223 
1224  out = "";
1225  for(float i = 0; i < MapInfo_count; ++i)
1226  out = strcat(out, " ", _MapInfo_GlobItem(MapInfo_FilterList_Lookup(i)));
1227 
1228  MapInfo_FilterGametype(MapInfo_CurrentGametype(), MapInfo_CurrentFeatures(), pRequiredFlags, pForbiddenFlags, 0);
1229 
1230  return substring(out, 1, strlen(out) - 1);
1231 }
float MapInfo_FilterList_Lookup(float i)
Definition: mapinfo.qc:137
int MAPINFO_TYPE_ALL
Definition: mapinfo.qh:26
string _MapInfo_GlobItem(float i)
Definition: mapinfo.qc:106
float MapInfo_count
Definition: mapinfo.qh:144
Gametype MapInfo_CurrentGametype()
Definition: mapinfo.qc:1150
int MapInfo_CurrentFeatures()
Definition: mapinfo.qc:1140
spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 f1 s1 strcat(_("Level %s: "), "^BG%s\3\, _("^BGPress ^F2%s^BG to enter the game"))
float _MapInfo_FilterGametype(int pGametype, int pFeatures, int pFlagsRequired, int pFlagsForbidden, bool pAbortOnGenerate)
Definition: mapinfo.qc:162
float MapInfo_FilterGametype(Gametype pGametype, int pFeatures, int pFlagsRequired, int pFlagsForbidden, bool pAbortOnGenerate)
Definition: mapinfo.qc:158
void MapInfo_Enumerate()
Definition: mapinfo.qc:115
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_ListAllowedMaps()

string MapInfo_ListAllowedMaps ( Gametype  type,
float  pFlagsRequired,
float  pFlagsForbidden 
)

Definition at line 1202 of file mapinfo.qc.

References _MapInfo_GlobItem(), MapInfo_count, MapInfo_CurrentFeatures(), MapInfo_Enumerate(), MapInfo_FilterGametype(), MapInfo_FilterList_Lookup(), strcat(), strlen(), and substring().

Referenced by GameTypeVote_SetGametype(), and MapVote_Init().

1203 {
1204  string out;
1205 
1206  // to make absolutely sure:
1208  MapInfo_FilterGametype(type, MapInfo_CurrentFeatures(), pRequiredFlags, pForbiddenFlags, 0);
1209 
1210  out = "";
1211  for(float i = 0; i < MapInfo_count; ++i)
1212  out = strcat(out, " ", _MapInfo_GlobItem(MapInfo_FilterList_Lookup(i)));
1213  return substring(out, 1, strlen(out) - 1);
1214 }
float MapInfo_FilterList_Lookup(float i)
Definition: mapinfo.qc:137
string _MapInfo_GlobItem(float i)
Definition: mapinfo.qc:106
float MapInfo_count
Definition: mapinfo.qh:144
int MapInfo_CurrentFeatures()
Definition: mapinfo.qc:1140
spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 f1 s1 strcat(_("Level %s: "), "^BG%s\3\, _("^BGPress ^F2%s^BG to enter the game"))
float MapInfo_FilterGametype(Gametype pGametype, int pFeatures, int pFlagsRequired, int pFlagsForbidden, bool pAbortOnGenerate)
Definition: mapinfo.qc:158
void MapInfo_Enumerate()
Definition: mapinfo.qc:115
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_LoadMap()

void MapInfo_LoadMap ( string  s,
float  reinit 
)

Definition at line 1183 of file mapinfo.qc.

References cvar_settemp_restore(), localcmd, LOG_INFO, MapInfo_Map_supportedGametypes, and strcat().

Referenced by CampaignSetup(), InstantAction_LoadMap(), and Map_Goto().

1184 {
1186  // we shouldn't need this, as LoadMapSettings already fixes the gametype
1187  //if(!MapInfo_CheckMap(s))
1188  //{
1189  // print("EMERGENCY: can't play the selected map in the given game mode. Falling back to DM.\n");
1190  // MapInfo_SwitchGameType(MAPINFO_TYPE_DEATHMATCH.m_flags);
1191  //}
1192 
1193  LOG_INFO("Switching to map ", s);
1194 
1196  if(reinit)
1197  localcmd(strcat("\nmap ", s, "\n"));
1198  else
1199  localcmd(strcat("\nchangelevel ", s, "\n"));
1200 }
int MapInfo_Map_supportedGametypes
Definition: mapinfo.qh:13
spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 f1 s1 strcat(_("Level %s: "), "^BG%s\3\, _("^BGPress ^F2%s^BG to enter the game"))
#define LOG_INFO(...)
Definition: log.qh:70
int cvar_settemp_restore()
Definition: util.qc:736
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_LoadMapSettings()

void MapInfo_LoadMapSettings ( string  s)

Definition at line 1240 of file mapinfo.qc.

References _MapInfo_CheckMap(), _MapInfo_Map_ApplyGametypeEx(), cvar(), floor(), FOREACH, LOG_SEVERE, LOG_SEVEREF, LOG_WARNF, MapInfo_CurrentGametype(), MapInfo_Get_ByName(), MapInfo_LoadMapSettings_SaveGameType(), MapInfo_Map_supportedGametypes, RandomSelection_chosen_ent, and RandomSelection_Init().

Referenced by InitGameplayMode().

1241 {
1244 
1245  if(!_MapInfo_CheckMap(s, true)) // with underscore, it keeps temps
1246  {
1247  if(cvar("g_mapinfo_allow_unsupported_modes_and_let_stuff_break"))
1248  {
1249  LOG_SEVERE("can't play the selected map in the given game mode. Working with only the override settings.");
1250  _MapInfo_Map_ApplyGametypeEx("", t, t);
1251  return; // do not call Get_ByName!
1252  }
1253 
1255  {
1257  FOREACH(Gametypes, it.m_priority == 2,
1258  {
1259  MapInfo_Map_supportedGametypes |= it.m_flags;
1260  RandomSelection_AddEnt(it, 1, 1);
1261  });
1264  LOG_SEVEREF("Mapinfo system is not functional at all. Falling back to a preferred mode (%s).", t.mdl);
1266  _MapInfo_Map_ApplyGametypeEx("", t, t);
1267  return; // do not call Get_ByName!
1268  }
1269 
1270 #if 0
1271  // find the lowest bit in the supported gametypes
1272  // unnecessary now that we select one at random
1273  int _t = 1;
1274  while(!(MapInfo_Map_supportedGametypes & 1))
1275  {
1276  _t <<= 1;
1278  }
1279 #endif
1281  Gametype t_prev = t;
1282  FOREACH(Gametypes, MapInfo_Map_supportedGametypes & it.m_flags,
1283  {
1284  RandomSelection_AddEnt(it, 1, it.m_priority);
1285  });
1288 
1289  // t is now a supported mode!
1290  LOG_WARNF("can't play the selected map in the given game mode (%s). Falling back to a supported mode (%s).", t_prev.mdl, t.mdl);
1292  }
1293  if(!_MapInfo_CheckMap(s, false)) { // with underscore, it keeps temps
1294  LOG_WARNF("the selected map lacks features required by current settings; playing anyway.");
1295  }
1296  MapInfo_Get_ByName(s, 1, t);
1297 }
float _MapInfo_CheckMap(string s, bool gametype_only)
Definition: mapinfo.qc:1157
ERASEABLE void RandomSelection_Init()
Definition: random.qc:4
void MapInfo_LoadMapSettings_SaveGameType(Gametype t)
Definition: mapinfo.qc:1233
#define LOG_WARNF(...)
Definition: log.qh:67
#define LOG_SEVEREF(...)
Definition: log.qh:63
int MapInfo_Map_supportedGametypes
Definition: mapinfo.qh:13
Gametype MapInfo_CurrentGametype()
Definition: mapinfo.qc:1150
entity RandomSelection_chosen_ent
Definition: random.qh:5
int MapInfo_Get_ByName(string pFilename, float pAllowGenerate, Gametype pGametypeToSet)
Definition: mapinfo.qc:1067
void _MapInfo_Map_ApplyGametypeEx(string s, Gametype pWantedType, Gametype pThisType)
Definition: mapinfo.qc:512
#define LOG_SEVERE(...)
Definition: log.qh:62
#define FOREACH(list, cond, body)
Definition: iter.qh:19
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_RequiredFlags()

int MapInfo_RequiredFlags ( )

Definition at line 1339 of file mapinfo.qc.

References cvar(), and MAPINFO_FLAG_FRUSTRATING.

Referenced by GameCommand_gametype(), GameTypeVote_MapInfo_FixName(), GameTypeVote_SetGametype(), GenericCommand_maplist(), GotoFirstMap(), InstantAction_LoadMap(), make_mapinfo_Think(), Maplist_Init(), MapVote_Init(), MapVote_Start(), MapVote_Think(), RestoreGame(), spawnfunc(), and XonoticMapList_refilter().

1340 {
1341  int f = 0;
1342 
1343  if(cvar("g_maplist_allow_frustrating") > 1)
1345 
1346  return f;
1347 }
const int MAPINFO_FLAG_FRUSTRATING
Definition: mapinfo.qh:141
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_Shutdown()

void MapInfo_Shutdown ( )

Definition at line 1311 of file mapinfo.qc.

References _MapInfo_globhandle, _MapInfo_globopen, MapInfo_Cache_Destroy(), MapInfo_ClearTemps(), MapInfo_Filter_Free(), and search_end().

Referenced by __init_dedicated_server_shutdown(), RestoreGame(), Shutdown(), and XonoticMapList_destroy().

1312 {
1316  if(_MapInfo_globopen)
1317  {
1319  _MapInfo_globhandle = -1;
1320  _MapInfo_globopen = false;
1321  }
1322 }
float _MapInfo_globopen
Definition: mapinfo.qc:103
float _MapInfo_globhandle
Definition: mapinfo.qc:105
void MapInfo_Cache_Destroy()
Definition: mapinfo.qc:24
void MapInfo_Filter_Free()
Definition: mapinfo.qc:221
void MapInfo_ClearTemps()
Definition: mapinfo.qc:1299
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_SwitchGameType()

void MapInfo_SwitchGameType ( Gametype  t)

Definition at line 1178 of file mapinfo.qc.

References cvar_set(), and FOREACH.

Referenced by CampaignPreInit(), GameCommand_gametype(), GameTypeVote_SetGametype(), InstantAction_LoadMap(), MapInfo_LoadMapSettings_SaveGameType(), and XonoticGametypeList_saveCvars().

1179 {
1180  FOREACH(Gametypes, true, cvar_set(it.netname, (it == t) ? "1" : "0"));
1181 }
#define FOREACH(list, cond, body)
Definition: iter.qh:19
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MapInfo_Type_Description()

string MapInfo_Type_Description ( Gametype  t)

Definition at line 611 of file mapinfo.qc.

Referenced by GameTypeVote_ReadOption(), and XonoticGametypeList_focusedItemChangeNotify().

612 {
613  return t ? t.gametype_description : "";
614 }
+ Here is the caller graph for this function:

◆ MapInfo_Type_FromString()

Gametype MapInfo_Type_FromString ( string  t,
bool  dowarn 
)

Definition at line 589 of file mapinfo.qc.

References FOREACH, LOG_WARNF, MapInfo_Map_bspname, NULL, and WARN_COND.

Referenced by Campaign_Invalid(), CampaignPreInit(), GameCommand_gametype(), GameTypeVote_AvailabilityStatus(), GameTypeVote_ReadOption(), GameTypeVote_Type_FromString(), MapInfo_CurrentGametype(), and MapInfo_Get_ByName_NoFallbacks().

590 {
591  string replacement = "";
592  switch (gtype)
593  {
594  case "nexball": replacement = "nb"; break;
595  case "freezetag": replacement = "ft"; break;
596  case "keepaway": replacement = "ka"; break;
597  case "invasion": replacement = "inv"; break;
598  case "assault": replacement = "as"; break;
599  case "race": replacement = "rc"; break;
600  }
601  if (replacement != "")
602  {
603  if (dowarn && WARN_COND)
604  LOG_WARNF("MapInfo_Type_FromString (probably %s): using deprecated name '%s'. Should use '%s'.", MapInfo_Map_bspname, gtype, replacement);
605  gtype = replacement;
606  }
607  FOREACH(Gametypes, it.mdl == gtype, return it);
608  return NULL;
609 }
#define WARN_COND
Definition: mapinfo.qc:15
#define LOG_WARNF(...)
Definition: log.qh:67
#define NULL
Definition: post.qh:17
string MapInfo_Map_bspname
Definition: mapinfo.qh:6
#define FOREACH(list, cond, body)
Definition: iter.qh:19
+ Here is the caller graph for this function:

◆ MapInfo_Type_ToString()

string MapInfo_Type_ToString ( Gametype  t)

Definition at line 616 of file mapinfo.qc.

Referenced by _MapInfo_Map_ApplyGametypeEx(), Gamemode_Init(), GameType_GetIcon(), GameTypeVote_SetGametype(), GameTypeVote_Start(), GetGametype(), isGametypeInFilter(), MapVote_CheckRules_2(), ServerList_TypeSort_Click(), and TeamBalance_FindBestTeam().

617 {
618  return t ? t.mdl : "";
619 }
+ Here is the caller graph for this function:

◆ MapInfo_Type_ToText()

string MapInfo_Type_ToText ( Gametype  t)

Definition at line 621 of file mapinfo.qc.

Referenced by GameType_GetName(), GameTypeVote_ReadOption(), InitGameplayMode(), MapVote_SendEntity(), and Scoreboard_Draw().

622 {
623  /* xgettext:no-c-format */
624  return t ? t.message : _("@!#%'n Tuba Throwing");
625 }
+ Here is the caller graph for this function:

◆ REGISTRY_SORT()

REGISTRY_SORT ( Gametypes  )

Referenced by Gametype::Gametype ::gametype_init().

+ Here is the caller graph for this function:

◆ STATIC_INIT()

STATIC_INIT ( Gametypes_renumber  )

Definition at line 126 of file mapinfo.qh.

References FOREACH.

126 { FOREACH(Gametypes, true, it.m_id = i); }
#define FOREACH(list, cond, body)
Definition: iter.qh:19

Variable Documentation

◆ GAMETYPE_FLAG_HIDELIMITS

const int GAMETYPE_FLAG_HIDELIMITS = BIT(4)

Definition at line 23 of file mapinfo.qh.

Referenced by Gametype::Gametype ::gametype_init().

◆ GAMETYPE_FLAG_PREFERRED

const int GAMETYPE_FLAG_PREFERRED = BIT(2)

Definition at line 21 of file mapinfo.qh.

Referenced by Gametype::Gametype ::gametype_init().

◆ GAMETYPE_FLAG_PRIORITY

const int GAMETYPE_FLAG_PRIORITY = BIT(3)

Definition at line 22 of file mapinfo.qh.

Referenced by Gametype::Gametype ::gametype_init().

◆ GAMETYPE_FLAG_TEAMPLAY

const int GAMETYPE_FLAG_TEAMPLAY = BIT(0)

Definition at line 19 of file mapinfo.qh.

Referenced by Gametype::Gametype ::gametype_init().

◆ GAMETYPE_FLAG_USEPOINTS

const int GAMETYPE_FLAG_USEPOINTS = BIT(1)

Definition at line 20 of file mapinfo.qh.

Referenced by Gametype::Gametype ::gametype_init().

◆ GAMETYPE_FLAG_WEAPONARENA

const int GAMETYPE_FLAG_WEAPONARENA = BIT(5)

Definition at line 24 of file mapinfo.qh.

Referenced by Gametype::Gametype ::gametype_init().

◆ m_flags

◆ MapInfo_count

◆ MAPINFO_FEATURE_MONSTERS

const int MAPINFO_FEATURE_MONSTERS = 8

Definition at line 137 of file mapinfo.qh.

Referenced by _MapInfo_Generate(), and MapInfo_Get_ByName_NoFallbacks().

◆ MAPINFO_FEATURE_TURRETS

const int MAPINFO_FEATURE_TURRETS = 4

Definition at line 136 of file mapinfo.qh.

Referenced by _MapInfo_Generate(), and MapInfo_Get_ByName_NoFallbacks().

◆ MAPINFO_FEATURE_VEHICLES

const int MAPINFO_FEATURE_VEHICLES = 2

Definition at line 135 of file mapinfo.qh.

Referenced by _MapInfo_Generate(), and MapInfo_Get_ByName_NoFallbacks().

◆ MAPINFO_FEATURE_WEAPONS

const int MAPINFO_FEATURE_WEAPONS = 1

◆ MapInfo_FindName_firstResult

float MapInfo_FindName_firstResult

Definition at line 169 of file mapinfo.qh.

Referenced by MapInfo_FindName(), and XonoticMapList_keyDown().

◆ MapInfo_FindName_match

string MapInfo_FindName_match

Definition at line 168 of file mapinfo.qh.

Referenced by MapInfo_FindName(), and MapInfo_FixName().

◆ MAPINFO_FLAG_FORBIDDEN

const int MAPINFO_FLAG_FORBIDDEN = 2

Definition at line 140 of file mapinfo.qh.

Referenced by MapInfo_ForbiddenFlags(), and MapInfo_Get_ByName_NoFallbacks().

◆ MAPINFO_FLAG_FRUSTRATING

const int MAPINFO_FLAG_FRUSTRATING = 4

◆ MAPINFO_FLAG_HIDDEN

const int MAPINFO_FLAG_HIDDEN = 1

Definition at line 139 of file mapinfo.qh.

Referenced by MapInfo_ForbiddenFlags(), and MapInfo_Get_ByName_NoFallbacks().

◆ MAPINFO_FLAG_NOAUTOMAPLIST

const int MAPINFO_FLAG_NOAUTOMAPLIST = 8

Definition at line 142 of file mapinfo.qh.

Referenced by MapInfo_Get_ByName_NoFallbacks(), and Maplist_Init().

◆ MapInfo_LoadedGametype

◆ MapInfo_Map_author

◆ MapInfo_Map_bspname

◆ MapInfo_Map_clientstuff

◆ MapInfo_Map_description

◆ MapInfo_Map_flags

◆ MapInfo_Map_fog

string MapInfo_Map_fog

Definition at line 12 of file mapinfo.qh.

Referenced by _MapInfo_Map_Reset(), InitGameplayMode(), and MapInfo_Get_ByName_NoFallbacks().

◆ MapInfo_Map_maxs

vector MapInfo_Map_maxs

◆ MapInfo_Map_mins

vector MapInfo_Map_mins

◆ MapInfo_Map_supportedFeatures

◆ MapInfo_Map_supportedGametypes

◆ MapInfo_Map_title

◆ MapInfo_Map_titlestring

◆ MapInfo_progress

float MapInfo_progress

Definition at line 151 of file mapinfo.qh.

Referenced by _MapInfo_FilterGametype().

◆ MAPINFO_TYPE_ALL