if(isSelected)
draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
- draw_Picture(me.columnIconOrigin * eX, strcat("gametype_", MapInfo_Type_ToString(GameType_GetID(i))), me.columnIconSize * eX + eY, '1 1 1', SKINALPHA_LISTBOX_SELECTED);
- s = MapInfo_Type_ToText(GameType_GetID(i));
+ draw_Picture(me.columnIconOrigin * eX, GameType_GetIcon(i), me.columnIconSize * eX + eY, '1 1 1', SKINALPHA_LISTBOX_SELECTED);
+ s = GameType_GetName(i);
draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 0.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
s = GameType_GetTeams(i);
draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 1.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
// note: include only those that should be in the menu!
#define GAMETYPES \
- GAMETYPE(MAPINFO_TYPE_ARENA, "ar", _("free for all")) \
- GAMETYPE(MAPINFO_TYPE_ASSAULT, "as", _("teamplay")) \
- GAMETYPE(MAPINFO_TYPE_CTF, "ctf", _("teamplay")) \
- GAMETYPE(MAPINFO_TYPE_CA, "ca", _("teamplay")) \
- GAMETYPE(MAPINFO_TYPE_DEATHMATCH, "dm", _("free for all")) \
- GAMETYPE(MAPINFO_TYPE_DOMINATION, "dom", _("teamplay")) \
- GAMETYPE(MAPINFO_TYPE_FREEZETAG, "ft", _("teamplay")) \
- GAMETYPE(MAPINFO_TYPE_KEEPAWAY, "ka", _("free for all")) \
- GAMETYPE(MAPINFO_TYPE_KEYHUNT, "kh", _("teamplay")) \
- GAMETYPE(MAPINFO_TYPE_LMS, "lms", _("free for all")) \
- GAMETYPE(MAPINFO_TYPE_NEXBALL, "nb", _("free/teamplay")) \
- GAMETYPE(MAPINFO_TYPE_ONSLAUGHT, "ons", _("teamplay")) \
- GAMETYPE(MAPINFO_TYPE_RACE, "race", _("free/teamplay")) \
- GAMETYPE(MAPINFO_TYPE_CTS, "cts", _("free for all")) \
- GAMETYPE(MAPINFO_TYPE_RUNEMATCH, "rune", _("free for all")) \
- GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH, "tdm", _("teamplay")) \
+ GAMETYPE(MAPINFO_TYPE_ARENA) \
+ GAMETYPE(MAPINFO_TYPE_ASSAULT) \
+ GAMETYPE(MAPINFO_TYPE_CTF) \
+ GAMETYPE(MAPINFO_TYPE_CA) \
+ GAMETYPE(MAPINFO_TYPE_DEATHMATCH) \
+ GAMETYPE(MAPINFO_TYPE_DOMINATION) \
+ GAMETYPE(MAPINFO_TYPE_FREEZETAG) \
+ GAMETYPE(MAPINFO_TYPE_KEEPAWAY) \
+ GAMETYPE(MAPINFO_TYPE_KEYHUNT) \
+ GAMETYPE(MAPINFO_TYPE_LMS) \
+ GAMETYPE(MAPINFO_TYPE_NEXBALL) \
+ GAMETYPE(MAPINFO_TYPE_ONSLAUGHT) \
+ GAMETYPE(MAPINFO_TYPE_RACE) \
+ GAMETYPE(MAPINFO_TYPE_CTS) \
+ GAMETYPE(MAPINFO_TYPE_RUNEMATCH) \
+ GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH) \
/* nothing */
float GameType_GetID(float cnt)
{
float i;
i = 0;
-#define GAMETYPE(id,icon,teams) if(i++ == cnt) return id;
+
+ #define GAMETYPE(id) if(i++ == cnt) return id;
GAMETYPES
-#undef GAMETYPE
+ #undef GAMETYPE
+
return 0;
}
-string GameType_GetIcon(float cnt)
+
+float GameType_GetCount()
{
float i;
i = 0;
-#define GAMETYPE(id,icon,teams) if(i++ == cnt) return icon;
+
+ #define GAMETYPE(id) ++i;
GAMETYPES
-#undef GAMETYPE
+ #undef GAMETYPE
+
+ return i;
+}
+
+string GameType_GetName(float cnt)
+{
+ float i = GameType_GetID(cnt);
+
+ if(i)
+ return MapInfo_Type_ToText(i);
+
return "";
}
-string GameType_GetTeams(float cnt)
+
+string GameType_GetIcon(float cnt)
{
- float i;
- i = 0;
-#define GAMETYPE(id,icon,teams) if(i++ == cnt) return teams;
- GAMETYPES
-#undef GAMETYPE
- return _("tuba for all");
+ float i = GameType_GetID(cnt);
+
+ if(i)
+ return strcat("gametype_", MapInfo_Type_ToString(i));
+
+ return "";
}
-float GameType_GetCount()
+
+string GameType_GetTeams(float cnt)
{
- float i;
- i = 0;
-#define GAMETYPE(id,icon,teams) ++i;
- GAMETYPES
-#undef GAMETYPE
- return i;
+ float i = GameType_GetID(cnt);
+ string s = _MapInfo_GetDefaultEx(i);
+
+ if(i)
+ {
+ if(strstrofs(s, "teams", 0) >= 0)
+ return _("teamplay");
+ else
+ return _("free for all");
+ }
+
+ return _("tuba for all");
}
void dialog_hudpanel_common_notoggle(entity me, string panelname)