36                        const char *szDefRanks,
 
   52         sprintf(keyname,
"Rank%03d",crank+1);
 
   53         rankname = GetRegistryString(
Register,keyname);
 
   74     if (!szDefRanks) 
return 0;
 
   79     for (
char * p = 
szRankNames; *p; ++p) 
if (*p == 
'|')
 
  101     assert(szFilenames); assert(szLanguage);
 
  106     if (!
iSize) 
return false;
 
  116     for (i=0; i<
iSize; ++i,++pPos)
 
  126                 else if (*pRank0 != 
'#')
 
  147     for (i=0; i<
iSize; ++i,++pPos)
 
  156                     *pszCurrRankExt++ = pRank0+1;
 
  159                 else if (*pRank0 != 
'#')
 
  166                         pRank0[iEqPos]=0; 
char *szValue=pRank0+iEqPos+1;
 
  167                         if (
SEqual(pRank0, 
"Base"))
 
  174                         *pszCurrRank++=pRank0;
 
  197             if (!fReturnLastIfOver) 
return StdStrBuf();
 
  204             int iExtension = iRank / 
iRankNum - 1;
 
  221         sprintf(keyname,
"Rank%03d",iRank+1);
 
  222         rankname = GetRegistryString(
Register,keyname);
 
  225         if (!fReturnLastIfOver) 
return StdStrBuf();
 
  234     if (iRank<0) 
return 0;
 
  235     return (
int) ( pow (
double(iRank), 1.5) * 
RankBase );
 
  249     sprintf(keyname,
"Rank%03d",iRank);
 
  250     if (!GetRegistryString(
Register,keyname).isNull())
 
  254     return SetRegistryString(
Register,keyname,szDefRankName);
 
  283     if (iRank<0) iRank = 0;
 
  285     int32_t iMaxRankSym,Q;
 
  288         if (!iMaxRankSym) iMaxRankSym=1;
 
  289         int32_t iBaseRank=iRank%iRankSymbolCount;
 
  290         if (iRank/iRankSymbolCount)
 
  295             if (iMaxRankSym > iRankSymbolCount)
 
  297                 int32_t iExtended = iRank / iRankSymbolCount - 1 + iRankSymbolCount;
 
  298                 if (iExtended >= iMaxRankSym)
 
  301                     iExtended = iMaxRankSym - 1;
 
  302                     iBaseRank = iRankSymbolCount - 1;
 
  304                 fctExtended = pfctRankSymbols->
GetPhase(iExtended);
 
  306             int32_t 
iSize = pfctRankSymbols->
Wdt;
 
  315                 pfctRankSymbols->
Draw(cgoDrawDirect->
Surface,cgoDrawDirect->
X+iXOff,cgoDrawDirect->
Y,iBaseRank);
 
  316                 fctExtended.
Draw(cgoDrawDirect->
Surface, cgoDrawDirect->
X+iXOff-4,cgoDrawDirect->
Y-3);
 
  324                 pfctRankSymbols->
Draw(cgoDrawDirect->
Surface, cgoDrawDirect->
X+iXOff,cgoDrawDirect->
Y,iBaseRank);
 
  326             else if (fOwnSurface)
 
  328                 int32_t 
iSize = pfctRankSymbols->
Wdt;
 
  334                 fctSymbol->
Set(pfctRankSymbols->
GetPhase(iBaseRank));
 
C4GraphicsResource GraphicsResource
 
C4RankSystem DefaultRanks
 
int SCharPos(char cTarget, const char *szInStr, int iIndex)
 
bool SCopySegment(const char *szString, int iSegment, char *sTarget, char cSeparator, int iMaxL, bool fSkipWhitespace)
 
void SCopy(const char *szSource, char *sTarget, size_t iMaxL)
 
bool SEqual(const char *szStr1, const char *szStr2)
 
size_t SLen(const char *sptr)
 
const char * GetData() const
 
size_t GetDataSize() const
 
C4Facet GetPhase(int iPhaseX=0, int iPhaseY=0)
 
void Draw(C4Facet &cgo, bool fAspect=true, int32_t iPhaseX=0, int32_t iPhaseY=0, bool fTransparent=true)
 
bool GetPhaseNum(int32_t &rX, int32_t &rY)
 
void DrawX(C4Surface *sfcTarget, float iX, float iY, float iWdt, float iHgt, int32_t iPhaseX=0, int32_t iPhaseY=0) const
 
bool Create(int iWdt, int iHgt, int iWdt2=C4FCT_Full, int iHgt2=C4FCT_Full)
 
void Set(const C4Facet &cpy)
 
static bool LoadComponentHost(C4ComponentHost *host, C4Group &hGroup, const char *szFilename, const char *szLanguage)
 
static bool DrawRankSymbol(C4FacetSurface *fctSymbol, int32_t iRank, C4Facet *pfctRankSymbols, int32_t iRankSymbolCount, bool fOwnSurface, int32_t iXOff=0, C4Facet *cgoDrawDirect=nullptr)
 
int Init(const char *szRegister, const char *szDefRanks, int iRankBase)
 
StdStrBuf GetRankName(int iRank, bool fReturnLastIfOver)
 
int RankByExperience(int iExp)
 
char RankName[C4MaxName+1]
 
int Experience(int iRank)
 
char ** pszRankExtensions
 
bool Check(int iRank, const char *szDefRankName)
 
bool Load(C4Group &hGroup, const char *szFilenames, int DefRankBase, const char *szLanguage)
 
void AppendChars(char cChar, size_t iCnt)
 
void Ref(const char *pnData)
 
const char * getData() const
 
void Format(const char *szFmt,...) GNUC_FORMAT_ATTRIBUTE_O