Merge pull request #436 from timakro/pr_other_gametype_entities_clear

added entities clear for other gametypes
This commit is contained in:
Dennis Felsing 2016-04-30 20:28:27 +02:00
commit f016a0eb1f
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: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View file

@ -51,9 +51,14 @@ public:
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 IsDDRace(const CServerInfo *pInfo);
bool IsDDNet(const CServerInfo *pInfo);
bool Is64Player(const CServerInfo *pInfo);
bool IsPlus(const CServerInfo *pInfo);

View file

@ -1,6 +1,32 @@
#include <engine/serverbrowser.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)
{
return str_find_nocase(pInfo->m_aGameType, "race")
@ -19,6 +45,8 @@ bool IsDDNet(const CServerInfo *pInfo)
|| str_find_nocase(pInfo->m_aGameType, "ddnet");
}
// other
bool Is64Player(const CServerInfo *pInfo)
{
return str_find(pInfo->m_aGameType, "64")

View file

@ -3,6 +3,7 @@
#include <engine/graphics.h>
#include <engine/map.h>
#include <engine/storage.h>
#include <engine/serverbrowser.h>
#include <game/client/component.h>
#include <game/mapitems.h>
@ -88,11 +89,26 @@ void CMapImages::LoadBackground(class IMap *pMap)
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);
if(m_EntitiesTextures == -1)
m_EntitiesTextures = Graphics()->LoadTexture("editor/entities.png", IStorage::TYPE_ALL, CImageInfo::FORMAT_AUTO, 0);
char file[64] = "vanilla";
if(IsDDNet(&Info))
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;
}

View file

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

View file

@ -432,24 +432,20 @@ void CMenus::RenderServerbrowserServerList(CUIRect View)
{
vec3 hsl = vec3(1.0f, 1.0f, 1.0f);
if (!str_comp(pItem->m_aGameType, "DM")
|| !str_comp(pItem->m_aGameType, "TDM")
|| !str_comp(pItem->m_aGameType, "CTF"))
hsl = vec3(0.33f, 1.0f, 0.75f); // Vanilla
else if (str_find_nocase(pItem->m_aGameType, "catch"))
hsl = vec3(0.17f, 1.0f, 0.75f); // Catch
else if (str_find_nocase(pItem->m_aGameType, "idm")
|| str_find_nocase(pItem->m_aGameType, "itdm")
|| 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
if (IsVanilla(pItem))
hsl = vec3(0.33f, 1.0f, 0.75f);
else if (IsCatch(pItem))
hsl = vec3(0.17f, 1.0f, 0.75f);
else if (IsInsta(pItem))
hsl = vec3(0.00f, 1.0f, 0.75f);
else if (IsFNG(pItem))
hsl = vec3(0.83f, 1.0f, 0.75f);
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))
hsl = vec3(0.75f, 1.0f, 0.75f); // DDRace
hsl = vec3(0.75f, 1.0f, 0.75f);
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);
TextRender()->TextColor(rgb.r, rgb.g, rgb.b, 1.0f);