mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Fixed crash on the new month when there are no creatures that can get double growth. (#1219, possibly #1217)
The list of double growth creatures will be serialized. Bumped format. MSVC: silenced that stupid C4275 warning. (senseless when using STL)
This commit is contained in:
		| @@ -12,6 +12,9 @@ | ||||
|     <Link> | ||||
|       <SubSystem>Console</SubSystem> | ||||
|     </Link> | ||||
|     <ClCompile> | ||||
|       <DisableSpecificWarnings>4275</DisableSpecificWarnings> | ||||
|     </ClCompile> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemGroup /> | ||||
| </Project> | ||||
| @@ -176,7 +176,7 @@ public: | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	{ | ||||
| 		//TODO: should be optimized, not all these informations needs to be serialized (same for ccreature) | ||||
| 		h & notUsedMonsters & creatures; | ||||
| 		h & notUsedMonsters & doubledCreatures & creatures; | ||||
| 		h & stackBonuses & expRanks & maxExpPerBattle & expAfterUpgrade; | ||||
| 		h & skillLevels & skillRequirements & commanderLevelPremy; | ||||
| 		h & allCreatures; | ||||
|   | ||||
| @@ -26,7 +26,7 @@ | ||||
| #include "CObjectHandler.h" //for CArmedInstance | ||||
| #include "Mapping/CCampaignHandler.h" //for CCampaignState | ||||
|  | ||||
| const ui32 version = 738; | ||||
| const ui32 version = 739; | ||||
|  | ||||
| class CConnection; | ||||
| class CGObjectInstance; | ||||
|   | ||||
| @@ -1209,12 +1209,17 @@ void CGameHandler::newTurn() | ||||
| 						std::pair<int,CreatureID> newMonster(54, VLC->creh->pickRandomMonster(boost::ref(rand))); | ||||
| 						n.creatureid = newMonster.second; | ||||
| 					} | ||||
| 					else | ||||
| 					else if(VLC->creh->doubledCreatures.size()) | ||||
| 					{ | ||||
| 						auto it = VLC->creh->doubledCreatures.cbegin(); | ||||
| 						std::advance (it, rand() % VLC->creh->doubledCreatures.size()); //picking random element of set is tiring | ||||
| 						n.creatureid = *it; | ||||
| 					} | ||||
| 					else | ||||
| 					{ | ||||
| 						complain("Cannot find creature that can be spawned!"); | ||||
| 						n.specialWeek = NewTurn::NORMAL; | ||||
| 					} | ||||
| 				} | ||||
| 				else if (monthType < 50) | ||||
| 					n.specialWeek = NewTurn::PLAGUE; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user