Fixed bugs

This commit is contained in:
Pavol Marko 2004-08-19 16:37:55 +00:00
parent 213694cccc
commit 3af9ae8927

View File

@ -233,7 +233,6 @@ CLangMngr::CLang::LangEntry::LangEntry(int pKey, uint32_t defHash, const char *p
{ {
Clear(); Clear();
key = pKey; key = pKey;
this->
m_DefHash = defHash; m_DefHash = defHash;
m_pDef.assign(pDef); m_pDef.assign(pDef);
} }
@ -295,7 +294,7 @@ void CLangMngr::CLang::Clear()
CLangMngr::CLang::LangEntry * CLangMngr::CLang::GetEntry(int pkey) CLangMngr::CLang::LangEntry * CLangMngr::CLang::GetEntry(int pkey)
{ {
unsigned int i = 0; unsigned int i;
for (i=0; i<m_LookUpTable.size(); i++) for (i=0; i<m_LookUpTable.size(); i++)
{ {
@ -308,6 +307,7 @@ CLangMngr::CLang::LangEntry * CLangMngr::CLang::GetEntry(int pkey)
LangEntry *e = new LangEntry(pkey); LangEntry *e = new LangEntry(pkey);
e->SetKey(pkey); e->SetKey(pkey);
m_LookUpTable.push_back(e); m_LookUpTable.push_back(e);
return e; return e;
} }
@ -333,7 +333,7 @@ void CLangMngr::CLang::MergeDefinitions(CQueue<sKeyDef*> &vec)
const char * CLangMngr::CLang::GetDef(const char *key) const char * CLangMngr::CLang::GetDef(const char *key)
{ {
static char nfind[1024] = "ML_NOTFOUND"; static char nfind[1024] = "ML_NOTFOUND";
int ikey = lman->GetKeyEntry(key); int ikey = m_LMan->GetKeyEntry(key);
if (ikey == -1) if (ikey == -1)
{ {
sprintf(nfind, "ML_NOTFOUND: %s", key); sprintf(nfind, "ML_NOTFOUND: %s", key);
@ -642,17 +642,17 @@ char * CLangMngr::FormatAmxString(AMX *amx, cell *params, int parm, int &len)
} }
case 'L': case 'L':
{ {
cell langName = params[parm]; cell langName = params[parm]; // "en" case (langName contains the address to the string)
cell *pLangName = get_amxaddr(amx, params[parm++]); cell *pAmxLangName = get_amxaddr(amx, params[parm++]); // other cases
const char *cpLangName=NULL; const char *cpLangName=NULL;
// Handle player ids (1-32) and server language // Handle player ids (1-32) and server language
if (*pLangName == LANG_PLAYER) if (*pAmxLangName == LANG_PLAYER) // LANG_PLAYER
*pLangName = m_CurGlobId; cpLangName = ENTITY_KEYVALUE(GET_PLAYER_POINTER_I(m_CurGlobId)->pEdict, "lang");
if (*pLangName == LANG_SERVER) else if (*pAmxLangName == LANG_SERVER) // LANG_SERVER
cpLangName = g_vault.get("server_language"); cpLangName = g_vault.get("server_language");
else if (*pLangName >= 1 && *pLangName <= 32) else if (*pAmxLangName >= 1 && *pAmxLangName <= 32) // Direct Client Id
cpLangName = ENTITY_KEYVALUE(GET_PLAYER_POINTER_I(*pLangName)->pEdict, "lang"); cpLangName = ENTITY_KEYVALUE(GET_PLAYER_POINTER_I(*pAmxLangName)->pEdict, "lang");
else else // Language Name
{ {
int len = 0; int len = 0;
cpLangName = get_amxstring(amx, langName, 2, len); cpLangName = get_amxstring(amx, langName, 2, len);
@ -664,7 +664,7 @@ char * CLangMngr::FormatAmxString(AMX *amx, cell *params, int parm, int &len)
const char *def = GetDef(cpLangName, key); const char *def = GetDef(cpLangName, key);
if (def == NULL) if (def == NULL)
{ {
if (*pLangName != LANG_SERVER) if (*pAmxLangName != LANG_SERVER)
{ {
def = GetDef(g_vault.get("server_language"), key); def = GetDef(g_vault.get("server_language"), key);
} }
@ -937,7 +937,11 @@ int CLangMngr::MergeDefinitionFile(const char *file)
} // if !multiline } // if !multiline
} //if - main } //if - main
} }
// merge last section
if (!Defq.empty())
{
MergeDefinitions(language, Defq);
}
return 1; return 1;
} }