about summary refs log tree commit diff
path: root/src/game/client/components/countryflags.h
blob: ad24a76274de611d7361498bf0b24f4d0f375a0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
/* If you are missing that file, acquire a complete release at teeworlds.com.                */
#ifndef GAME_CLIENT_COMPONENTS_COUNTRYFLAGS_H
#define GAME_CLIENT_COMPONENTS_COUNTRYFLAGS_H
#include <base/vmath.h>
#include <base/tl/sorted_array.h>
#include <game/client/component.h>

class CCountryFlags : public CComponent
{
public:
	struct CCountryFlag
	{
		int m_CountryCode;
		char m_aCountryCodeString[8];
		int m_Texture;

		bool operator<(const CCountryFlag &Other) { return str_comp(m_aCountryCodeString, Other.m_aCountryCodeString) < 0; }
	};

	void OnInit();

	int Num() const;
	const CCountryFlag *GetByCountryCode(int CountryCode) const;
	const CCountryFlag *GetByIndex(int Index) const;
	//int Find(int CountryCode) const;

private:
	enum
	{
		CODE_LB=-1,
		CODE_UB=999,
		CODE_RANGE=CODE_UB-CODE_LB+1,
	};
	sorted_array<CCountryFlag> m_aCountryFlags;
	int m_CodeIndexLUT[CODE_RANGE];

	void LoadCountryflagsIndexfile();
};
#endif