1
0
forked from 0ad/0ad

Fixed regression caused by not understanding my code

This was SVN commit r2457.
This commit is contained in:
Ykkrosh 2005-07-03 01:37:49 +00:00
parent 580d0c7892
commit e84b8bd017
4 changed files with 11 additions and 7 deletions

View File

@ -36,8 +36,12 @@ CObjectEntry::~CObjectEntry()
delete m_Model;
}
bool CObjectEntry::BuildRandomVariant(const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator vars_it)
bool CObjectEntry::BuildRandomVariant(const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator& vars_it)
{
// vars_it is passed by reference so that the caller's iterator
// can be incremented by the appropriate amount, to point to the
// next object's set of variant choices (for propped models).
CStr chosenTexture;
CStr chosenModel;
CStr chosenColor;
@ -62,7 +66,7 @@ bool CObjectEntry::BuildRandomVariant(const CObjectBase::variation_key& vars, CO
u8 var_id = *vars_it++;
if (var_id < 0 || var_id >= grp->size())
{
LOG(ERROR, LOG_CATEGORY, "Internal error (BuildRandomVariant: %d not in 0..%d", var_id, grp->size()-1);
LOG(ERROR, LOG_CATEGORY, "Internal error (BuildRandomVariant: %d not in 0..%d)", var_id, grp->size()-1);
continue;
}
CObjectBase::Variant& var ((*grp)[var_id]);

View File

@ -18,7 +18,7 @@ public:
CObjectEntry(int type, CObjectBase* base);
~CObjectEntry();
bool BuildRandomVariant(const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator vars_it);
bool BuildRandomVariant(const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator& vars_it);
// Base actor. Contains all the things that don't change between
// different variations of the actor.

View File

@ -105,7 +105,7 @@ CObjectEntry* CObjectManager::FindObject(const char* objname)
return FindObjectVariation(base, var, vars_it);
}
CObjectEntry* CObjectManager::FindObjectVariation(const char* objname, const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator vars_it)
CObjectEntry* CObjectManager::FindObjectVariation(const char* objname, const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator& vars_it)
{
CObjectBase* base = FindObjectBase(objname);
@ -115,7 +115,7 @@ CObjectEntry* CObjectManager::FindObjectVariation(const char* objname, const COb
return FindObjectVariation(base, vars, vars_it);
}
CObjectEntry* CObjectManager::FindObjectVariation(CObjectBase* base, const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator vars_it)
CObjectEntry* CObjectManager::FindObjectVariation(CObjectBase* base, const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator& vars_it)
{
// Look to see whether this particular variation has already been loaded

View File

@ -67,8 +67,8 @@ public:
CObjectBase* FindObjectBase(const char* objname);
CObjectEntry* FindObjectVariation(const char* objname, const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator vars_it);
CObjectEntry* FindObjectVariation(CObjectBase* base, const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator vars_it);
CObjectEntry* FindObjectVariation(const char* objname, const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator& vars_it);
CObjectEntry* FindObjectVariation(CObjectBase* base, const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator& vars_it);
// Get all names, quite slowly. (Intended only for ScEd.)
void GetAllObjectNames(std::vector<CStr>& names);