mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-12 02:28:11 +02:00
Fix stackinstance deserialization
This commit is contained in:
parent
bebe0dd86c
commit
9fb5d0e726
@ -859,9 +859,6 @@ PlayerColor CStackInstance::getOwner() const
|
||||
|
||||
void CStackInstance::deserializationFix()
|
||||
{
|
||||
const CCreature *backup = type;
|
||||
type = nullptr;
|
||||
setType(backup);
|
||||
const CArmedInstance *armyBackup = _armyObj;
|
||||
_armyObj = nullptr;
|
||||
setArmyObj(armyBackup);
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "HeroBonus.h"
|
||||
#include "GameConstants.h"
|
||||
#include "CArtHandler.h"
|
||||
#include "CCreatureHandler.h"
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
@ -40,7 +41,20 @@ public:
|
||||
|
||||
template <typename Handler> void serialize(Handler &h, const int version)
|
||||
{
|
||||
h & type;
|
||||
if(h.saving)
|
||||
{
|
||||
CreatureID idNumber = type ? type->idNumber : CreatureID(CreatureID::NONE);
|
||||
h & idNumber;
|
||||
}
|
||||
else
|
||||
{
|
||||
CreatureID idNumber;
|
||||
h & idNumber;
|
||||
if(idNumber != CreatureID::NONE)
|
||||
setType(VLC->creh->objects[idNumber]);
|
||||
else
|
||||
type = nullptr;
|
||||
}
|
||||
h & count;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user