core/logic/Translator.cpp
changeset 4057 9f9f98843ca8
parent 3366 d4afcec1be26
child 4090 06731c8a772e
     1.1 --- a/core/logic/Translator.cpp	Sun Aug 25 01:42:14 2013 -0700
     1.2 +++ b/core/logic/Translator.cpp	Sun Aug 25 01:42:15 2013 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /**
     1.5 - * vim: set ts=4 :
     1.6 + * vim: set ts=4 sw=4 tw=99 noet:
     1.7   * =============================================================================
     1.8   * SourceMod
     1.9   * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved.
    1.10 @@ -210,12 +210,7 @@
    1.11  		m_ParseState = PPS_InPhrase;
    1.12  		recognized = true;
    1.13  
    1.14 -		int *pvalue;
    1.15 -		if ((pvalue = m_PhraseLookup.retrieve(name)) != NULL)
    1.16 -		{
    1.17 -			m_CurPhrase = *pvalue;
    1.18 -		}
    1.19 -		else
    1.20 +		if (!m_PhraseLookup.retrieve(name, &m_CurPhrase))
    1.21  		{
    1.22  			phrase_t *pPhrase;
    1.23  
    1.24 @@ -659,11 +654,11 @@
    1.25  		return Trans_BadLanguage;
    1.26  	}
    1.27  
    1.28 -	int *pvalue;
    1.29 -	if ((pvalue = m_PhraseLookup.retrieve(szPhrase)) == NULL)
    1.30 +	int address;
    1.31 +	if (!m_PhraseLookup.retrieve(szPhrase, &address))
    1.32  		return Trans_BadPhrase;
    1.33  
    1.34 -	phrase_t *pPhrase = (phrase_t *)m_pMemory->GetAddress(*pvalue);
    1.35 +	phrase_t *pPhrase = (phrase_t *)m_pMemory->GetAddress(address);
    1.36  	trans_t *trans = (trans_t *)m_pMemory->GetAddress(pPhrase->trans_tbl);
    1.37  
    1.38  	trans = &trans[lang_id];
    1.39 @@ -769,15 +764,7 @@
    1.40  
    1.41  bool Translator::GetLanguageByCode(const char *code, unsigned int *index)
    1.42  {
    1.43 -	unsigned int *pindex;
    1.44 -
    1.45 -	if ((pindex = m_LCodeLookup.retrieve(code)) == NULL)
    1.46 -		return false;
    1.47 -
    1.48 -	if (index)
    1.49 -		*index = *pindex;
    1.50 -
    1.51 -	return true;
    1.52 +	return m_LCodeLookup.retrieve(code, index);
    1.53  }
    1.54  
    1.55  bool Translator::GetLanguageByName(const char *name, unsigned int *index)
    1.56 @@ -794,15 +781,7 @@
    1.57  	}
    1.58  	lower[len] = '\0';
    1.59  
    1.60 -	unsigned int *pIndex;
    1.61 -
    1.62 -	if ((pIndex = m_LAliases.retrieve(lower)) == NULL)
    1.63 -		return false;
    1.64 -
    1.65 -	if (index)
    1.66 -		*index = *pIndex;
    1.67 -
    1.68 -	return true;
    1.69 +	return m_LAliases.retrieve(lower, index);
    1.70  }
    1.71  
    1.72  unsigned int Translator::GetLanguageCount()
    1.73 @@ -863,19 +842,13 @@
    1.74  		smcore.LogError("[SM] Parse error (line %d, column %d): %s", states.line, states.col, str_err);
    1.75  	}
    1.76  
    1.77 -	unsigned int *pServerLang;
    1.78 -
    1.79 -	if ((pServerLang = m_LCodeLookup.retrieve(m_InitialLang)) == NULL)
    1.80 +	if (!m_LCodeLookup.retrieve(m_InitialLang, &m_ServerLang))
    1.81  	{
    1.82  		smcore.LogError("Server language was set to bad language \"%s\" -- reverting to English", m_InitialLang);
    1.83  
    1.84  		smcore.strncopy(m_InitialLang, "en", sizeof(m_InitialLang));
    1.85  		m_ServerLang = SOURCEMOD_LANGUAGE_ENGLISH;
    1.86  	}
    1.87 -	else
    1.88 -	{
    1.89 -		m_ServerLang = *pServerLang;
    1.90 -	}
    1.91  
    1.92  	if (!m_Languages.size())
    1.93  	{
    1.94 @@ -948,15 +921,11 @@
    1.95  	}
    1.96  	lower[len] = '\0';
    1.97  
    1.98 -	if (m_LAliases.retrieve(lower))
    1.99 +	if (m_LAliases.contains(lower))
   1.100  		return false;
   1.101  
   1.102  	unsigned int idx;
   1.103 -	if (unsigned int *pIdx = m_LCodeLookup.retrieve(langcode))
   1.104 -	{
   1.105 -		idx = *pIdx;
   1.106 -	}
   1.107 -	else
   1.108 +	if (!m_LCodeLookup.retrieve(langcode, &idx))
   1.109  	{
   1.110  		Language *pLanguage = new Language;
   1.111  		idx = m_Languages.size();