added entities clear for other gametypes

This commit is contained in:
Tim Schumacher 2016-04-29 18:17:06 +02:00
parent e0e7f20196
commit 4a22e762ff
11 changed files with 66 additions and 19 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View file

@ -51,9 +51,14 @@ public:
CClient m_aClients[MAX_CLIENTS]; CClient m_aClients[MAX_CLIENTS];
}; };
bool IsVanilla(const CServerInfo *pInfo);
bool IsCatch(const CServerInfo *pInfo);
bool IsInsta(const CServerInfo *pInfo);
bool IsFNG(const CServerInfo *pInfo);
bool IsRace(const CServerInfo *pInfo); bool IsRace(const CServerInfo *pInfo);
bool IsDDRace(const CServerInfo *pInfo); bool IsDDRace(const CServerInfo *pInfo);
bool IsDDNet(const CServerInfo *pInfo); bool IsDDNet(const CServerInfo *pInfo);
bool Is64Player(const CServerInfo *pInfo); bool Is64Player(const CServerInfo *pInfo);
bool IsPlus(const CServerInfo *pInfo); bool IsPlus(const CServerInfo *pInfo);

View file

@ -1,6 +1,32 @@
#include <engine/serverbrowser.h> #include <engine/serverbrowser.h>
#include <base/system.h> #include <base/system.h>
// gametypes
bool IsVanilla(const CServerInfo *pInfo)
{
return !str_comp(pInfo->m_aGameType, "DM")
|| !str_comp(pInfo->m_aGameType, "TDM")
|| !str_comp(pInfo->m_aGameType, "CTF");
}
bool IsCatch(const CServerInfo *pInfo)
{
return str_find_nocase(pInfo->m_aGameType, "catch");
}
bool IsInsta(const CServerInfo *pInfo)
{
return str_find_nocase(pInfo->m_aGameType, "idm")
|| str_find_nocase(pInfo->m_aGameType, "itdm")
|| str_find_nocase(pInfo->m_aGameType, "ictf");
}
bool IsFNG(const CServerInfo *pInfo)
{
return str_find_nocase(pInfo->m_aGameType, "fng");
}
bool IsRace(const CServerInfo *pInfo) bool IsRace(const CServerInfo *pInfo)
{ {
return str_find_nocase(pInfo->m_aGameType, "race") return str_find_nocase(pInfo->m_aGameType, "race")
@ -19,6 +45,8 @@ bool IsDDNet(const CServerInfo *pInfo)
|| str_find_nocase(pInfo->m_aGameType, "ddnet"); || str_find_nocase(pInfo->m_aGameType, "ddnet");
} }
// other
bool Is64Player(const CServerInfo *pInfo) bool Is64Player(const CServerInfo *pInfo)
{ {
return str_find(pInfo->m_aGameType, "64") return str_find(pInfo->m_aGameType, "64")

View file

@ -3,6 +3,7 @@
#include <engine/graphics.h> #include <engine/graphics.h>
#include <engine/map.h> #include <engine/map.h>
#include <engine/storage.h> #include <engine/storage.h>
#include <engine/serverbrowser.h>
#include <game/client/component.h> #include <game/client/component.h>
#include <game/mapitems.h> #include <game/mapitems.h>
@ -88,11 +89,26 @@ void CMapImages::LoadBackground(class IMap *pMap)
int CMapImages::GetEntities() int CMapImages::GetEntities()
{ {
if(m_EntitiesTextures == -1) CServerInfo Info;
Client()->GetServerInfo(&Info);
if(m_EntitiesTextures == -1 || str_comp(m_aEntitiesGameType, Info.m_aGameType))
{ {
m_EntitiesTextures = Graphics()->LoadTexture("editor/entities_clear.png", IStorage::TYPE_ALL, CImageInfo::FORMAT_AUTO, 0); char file[64] = "vanilla";
if(m_EntitiesTextures == -1) if(IsDDNet(&Info))
m_EntitiesTextures = Graphics()->LoadTexture("editor/entities.png", IStorage::TYPE_ALL, CImageInfo::FORMAT_AUTO, 0); str_copy(file, "ddnet", sizeof(file));
else if(IsDDRace(&Info))
str_copy(file, "ddrace", sizeof(file));
else if(IsRace(&Info))
str_copy(file, "race", sizeof(file));
else if(IsFNG(&Info))
str_copy(file, "fng", sizeof(file));
char path[64];
str_format(path, sizeof(path), "editor/entities_clear/%s.png", file);
m_EntitiesTextures = Graphics()->LoadTexture(path, IStorage::TYPE_ALL, CImageInfo::FORMAT_AUTO, 0);
str_copy(m_aEntitiesGameType, Info.m_aGameType, sizeof(m_aEntitiesGameType));
} }
return m_EntitiesTextures; return m_EntitiesTextures;
} }

View file

@ -10,6 +10,8 @@ class CMapImages : public CComponent
int m_aTextures[64]; int m_aTextures[64];
int m_Count; int m_Count;
char m_aEntitiesGameType[16];
public: public:
CMapImages(); CMapImages();

View file

@ -432,24 +432,20 @@ void CMenus::RenderServerbrowserServerList(CUIRect View)
{ {
vec3 hsl = vec3(1.0f, 1.0f, 1.0f); vec3 hsl = vec3(1.0f, 1.0f, 1.0f);
if (!str_comp(pItem->m_aGameType, "DM") if (IsVanilla(pItem))
|| !str_comp(pItem->m_aGameType, "TDM") hsl = vec3(0.33f, 1.0f, 0.75f);
|| !str_comp(pItem->m_aGameType, "CTF")) else if (IsCatch(pItem))
hsl = vec3(0.33f, 1.0f, 0.75f); // Vanilla hsl = vec3(0.17f, 1.0f, 0.75f);
else if (str_find_nocase(pItem->m_aGameType, "catch")) else if (IsInsta(pItem))
hsl = vec3(0.17f, 1.0f, 0.75f); // Catch hsl = vec3(0.00f, 1.0f, 0.75f);
else if (str_find_nocase(pItem->m_aGameType, "idm") else if (IsFNG(pItem))
|| str_find_nocase(pItem->m_aGameType, "itdm") hsl = vec3(0.83f, 1.0f, 0.75f);
|| str_find_nocase(pItem->m_aGameType, "ictf"))
hsl = vec3(0.00f, 1.0f, 0.75f); // Instagib
else if (str_find_nocase(pItem->m_aGameType, "fng"))
hsl = vec3(0.83f, 1.0f, 0.75f); // FNG
else if (IsDDNet(pItem)) else if (IsDDNet(pItem))
hsl = vec3(0.58f, 1.0f, 0.75f); // DDNet hsl = vec3(0.58f, 1.0f, 0.75f);
else if (IsDDRace(pItem)) else if (IsDDRace(pItem))
hsl = vec3(0.75f, 1.0f, 0.75f); // DDRace hsl = vec3(0.75f, 1.0f, 0.75f);
else if (IsRace(pItem)) else if (IsRace(pItem))
hsl = vec3(0.46f, 1.0f, 0.75f); // Race hsl = vec3(0.46f, 1.0f, 0.75f);
vec3 rgb = HslToRgb(hsl); vec3 rgb = HslToRgb(hsl);
TextRender()->TextColor(rgb.r, rgb.g, rgb.b, 1.0f); TextRender()->TextColor(rgb.r, rgb.g, rgb.b, 1.0f);