mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Update CTownHandler.cpp
Corrected hadling of null "produce" section for legacy mod to make it more readable
This commit is contained in:
		| @@ -309,35 +309,32 @@ void CTownHandler::loadBuilding(CTown &town, const std::string & stringID, const | ||||
| 	ret->produce =   TResources(source["produce"]); | ||||
|  | ||||
| 	//for compatibility with older town mods | ||||
| 	if ((ret->bid == BuildingID::VILLAGE_HALL) && (ret->produce[Res::WOOD] == 0) && (ret->produce[Res::MERCURY] == 0) && (ret->produce[Res::ORE] == 0) | ||||
| 		&& (ret->produce[Res::SULFUR] == 0) && (ret->produce[Res::CRYSTAL] == 0) && (ret->produce[Res::GEMS] == 0) && (ret->produce[Res::GOLD] == 0)) ret->produce[Res::GOLD] = 500; | ||||
|  | ||||
| 	if ((ret->bid == BuildingID::TOWN_HALL) && (ret->produce[Res::WOOD] == 0) && (ret->produce[Res::MERCURY] == 0) && (ret->produce[Res::ORE] == 0) | ||||
| 		&& (ret->produce[Res::SULFUR] == 0) && (ret->produce[Res::CRYSTAL] == 0) && (ret->produce[Res::GEMS] == 0) && (ret->produce[Res::GOLD] == 0)) ret->produce[Res::GOLD] = 1000; | ||||
|  | ||||
| 	if ((ret->bid == BuildingID::CITY_HALL) && (ret->produce[Res::WOOD] == 0) && (ret->produce[Res::MERCURY] == 0) && (ret->produce[Res::ORE] == 0) | ||||
| 		&& (ret->produce[Res::SULFUR] == 0) && (ret->produce[Res::CRYSTAL] == 0) && (ret->produce[Res::GEMS] == 0) && (ret->produce[Res::GOLD] == 0)) ret->produce[Res::GOLD] = 2000; | ||||
|  | ||||
| 	if ((ret->bid == BuildingID::CAPITOL) && (ret->produce[Res::WOOD] == 0) && (ret->produce[Res::MERCURY] == 0) && (ret->produce[Res::ORE] == 0) | ||||
| 		&& (ret->produce[Res::SULFUR] == 0) && (ret->produce[Res::CRYSTAL] == 0) && (ret->produce[Res::GEMS] == 0) && (ret->produce[Res::GOLD] == 0)) ret->produce[Res::GOLD] = 4000; | ||||
|  | ||||
| 	if ((ret->bid == BuildingID::GRAIL) && (ret->produce[Res::WOOD] == 0) && (ret->produce[Res::MERCURY] == 0) && (ret->produce[Res::ORE] == 0) | ||||
| 		&& (ret->produce[Res::SULFUR] == 0) && (ret->produce[Res::CRYSTAL] == 0) && (ret->produce[Res::GEMS] == 0) && (ret->produce[Res::GOLD] == 0)) ret->produce[Res::GOLD] = 5000; | ||||
| 	// | ||||
| 	if ((ret->bid == BuildingID::RESOURCE_SILO) && (ret->produce[Res::WOOD] == 0) && (ret->produce[Res::MERCURY] == 0) && (ret->produce[Res::ORE] == 0) | ||||
| 		&& (ret->produce[Res::SULFUR] == 0) && (ret->produce[Res::CRYSTAL] == 0) && (ret->produce[Res::GEMS] == 0) && (ret->produce[Res::GOLD] == 0)) | ||||
| 	if(!ret->produce.nonZero()) | ||||
| 	{ | ||||
| 	if (ret->bid == BuildingID::VILLAGE_HALL) ret->produce[Res::GOLD] = 500; | ||||
|  | ||||
| 	if (ret->bid == BuildingID::TOWN_HALL) ret->produce[Res::GOLD] = 1000; | ||||
|  | ||||
| 	if (ret->bid == BuildingID::CITY_HALL) ret->produce[Res::GOLD] = 2000; | ||||
|  | ||||
| 	if (ret->bid == BuildingID::CAPITOL) ret->produce[Res::GOLD] = 4000; | ||||
|  | ||||
| 	if (ret->bid == BuildingID::GRAIL) ret->produce[Res::GOLD] = 5000; | ||||
| 	// | ||||
| 	if (ret->bid == BuildingID::RESOURCE_SILO) | ||||
| 		{ | ||||
| 		if ((ret->town->primaryRes != Res::WOOD) && (ret->town->primaryRes != Res::ORE) && (ret->town->primaryRes != Res::GOLD)) | ||||
| 			ret->produce[ret->town->primaryRes] = 1; | ||||
| 		else | ||||
| 		{ | ||||
| 			if (ret->town->primaryRes == Res::GOLD) ret->produce[ret->town->primaryRes] = 500; | ||||
| 			if ((ret->town->primaryRes == Res::WOOD) || (ret->town->primaryRes == Res::ORE)) | ||||
| 			else | ||||
| 			{ | ||||
| 				ret->produce[Res::WOOD] = 1; | ||||
| 				ret->produce[Res::ORE] = 1; | ||||
| 			} | ||||
| 		} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	loadBuildingRequirements(town, *ret, source["requires"]); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user