Procházet zdrojové kódy

Fix neutral objects serializing

nordsoft před 2 roky
rodič
revize
d113168db4

+ 3 - 0
lib/mapObjects/CGObjectInstance.cpp

@@ -341,6 +341,9 @@ void CGObjectInstance::serializeJsonOptions(JsonSerializeFormat & handler)
 
 
 void CGObjectInstance::serializeJsonOwner(JsonSerializeFormat & handler)
 void CGObjectInstance::serializeJsonOwner(JsonSerializeFormat & handler)
 {
 {
+	if(handler.saving && tempOwner == PlayerColor::NEUTRAL)
+		return;
+	
 	ui8 temp = tempOwner.getNum();
 	ui8 temp = tempOwner.getNum();
 
 
 	handler.serializeEnum("owner", temp, PlayerColor::NEUTRAL.getNum(), GameConstants::PLAYER_COLOR_NAMES);
 	handler.serializeEnum("owner", temp, PlayerColor::NEUTRAL.getNum(), GameConstants::PLAYER_COLOR_NAMES);

+ 3 - 0
mapeditor/inspector/inspector.cpp

@@ -118,7 +118,10 @@ void Initializer::initialize(CGHeroInstance * o)
 	
 	
 	o->tempOwner = defaultPlayer;
 	o->tempOwner = defaultPlayer;
 	if(o->ID == Obj::PRISON)
 	if(o->ID == Obj::PRISON)
+	{
+		o->subID = 0;
 		o->tempOwner = PlayerColor::NEUTRAL;
 		o->tempOwner = PlayerColor::NEUTRAL;
+	}
 	
 	
 	if(o->ID == Obj::HERO)
 	if(o->ID == Obj::HERO)
 	{
 	{