1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-20 20:23:03 +02:00

gcc 4.5 compatibility fixes. Mostly due to lack of fully finctional nullptr class

This commit is contained in:
Ivan Savenko 2013-06-19 21:26:27 +00:00
parent 6a88604937
commit 6737c270c9
7 changed files with 11 additions and 10 deletions

View File

@ -575,7 +575,7 @@ namespace vstd
if(c.size()) if(c.size())
return c.back(); return c.back();
else else
return nullptr; return typename Container::value_type();
} }
template <typename Container> template <typename Container>

View File

@ -670,7 +670,7 @@ void processCommand(const std::string &message)
for (size_t i=0; i<cde->ourImages.size(); i++) for (size_t i=0; i<cde->ourImages.size(); i++)
{ {
std::string filename = outPath + outName + '/' + boost::lexical_cast<std::string>(i); std::string filename = outPath + outName + '/' + boost::lexical_cast<std::string>(i) + ".bmp";
SDL_SaveBMP(cde->ourImages[i].bitmap, filename.c_str()); SDL_SaveBMP(cde->ourImages[i].bitmap, filename.c_str());
} }
} }

View File

@ -750,7 +750,7 @@ void CArtifactInstance::removeFrom(ArtifactLocation al)
bool CArtifactInstance::canBeDisassembled() const bool CArtifactInstance::canBeDisassembled() const
{ {
return artType->constituents != nullptr; return bool(artType->constituents);
} }
std::vector<const CArtifact *> CArtifactInstance::assemblyPossibilities(const CArtifactSet *h) const std::vector<const CArtifact *> CArtifactInstance::assemblyPossibilities(const CArtifactSet *h) const

View File

@ -327,9 +327,9 @@ CTerrainViewPatternConfig::CTerrainViewPatternConfig()
// Read pattern data // Read pattern data
const JsonVector & data = ptrnNode["data"].Vector(); const JsonVector & data = ptrnNode["data"].Vector();
assert(data.size() == 9); assert(data.size() == 9);
for(int i = 0; i < data.size(); ++i) for(int j = 0; j < data.size(); ++j)
{ {
std::string cell = data[i].String(); std::string cell = data[j].String();
boost::algorithm::erase_all(cell, " "); boost::algorithm::erase_all(cell, " ");
std::vector<std::string> rules; std::vector<std::string> rules;
boost::split(rules, cell, boost::is_any_of(",")); boost::split(rules, cell, boost::is_any_of(","));
@ -344,7 +344,7 @@ CTerrainViewPatternConfig::CTerrainViewPatternConfig()
{ {
rule.points = boost::lexical_cast<int>(ruleParts[1]); rule.points = boost::lexical_cast<int>(ruleParts[1]);
} }
pattern.data[i].push_back(rule); pattern.data[j].push_back(rule);
} }
} }

View File

@ -137,7 +137,8 @@ public:
void addOperation(unique_ptr<CMapOperation> && operation); /// Client code does not need to call this method. void addOperation(unique_ptr<CMapOperation> && operation); /// Client code does not need to call this method.
private: private:
typedef std::list<unique_ptr<CMapOperation> > TStack; // FIXME: switch back to unique_ptr once gcc 4.5 is abandoned
typedef std::list<shared_ptr<CMapOperation> > TStack;
void doOperation(TStack & fromStack, TStack & toStack, bool doUndo); void doOperation(TStack & fromStack, TStack & toStack, bool doUndo);
const CMapOperation * peek(const TStack & stack) const; const CMapOperation * peek(const TStack & stack) const;

View File

@ -685,7 +685,7 @@ CArtifactInstance * CMapLoaderH3M::createArtifact(int aid, int spellID /*= -1*/)
map->addNewArtifactInstance(a); map->addNewArtifactInstance(a);
//TODO make it nicer //TODO make it nicer
if(a->artType && a->artType->constituents != nullptr) if(a->artType && (!!a->artType->constituents))
{ {
CCombinedArtifactInstance * comb = dynamic_cast<CCombinedArtifactInstance *>(a); CCombinedArtifactInstance * comb = dynamic_cast<CCombinedArtifactInstance *>(a);
BOOST_FOREACH(CCombinedArtifactInstance::ConstituentInfo & ci, comb->constituentsInfo) BOOST_FOREACH(CCombinedArtifactInstance::ConstituentInfo & ci, comb->constituentsInfo)

View File

@ -432,7 +432,7 @@ void CGameHandler::endBattle(int3 tile, const CGHeroInstance *hero1, const CGHer
if(bq->bi == gs->curB) if(bq->bi == gs->curB)
return bq; return bq;
} }
return nullptr; return shared_ptr<CBattleQuery>();
}; };
auto battleQuery = findBattleQuery(); auto battleQuery = findBattleQuery();
@ -1710,7 +1710,7 @@ bool CGameHandler::moveHero( ObjectInstanceID hid, int3 dst, ui8 teleporting, Pl
tmh.result = result; tmh.result = result;
sendAndApply(&tmh); sendAndApply(&tmh);
if(lookForGuards == CHECK_FOR_GUARDS && isInTheMap(guardPos)) if(lookForGuards == CHECK_FOR_GUARDS && this->isInTheMap(guardPos))
{ {
tmh.attackedFrom = guardPos; tmh.attackedFrom = guardPos;