diff --git a/src/OpenSHC/AI/AIC/AICSpecification.hpp b/src/OpenSHC/AI/AIC/AICSpecification.hpp index e7d673df..4726ebb6 100644 --- a/src/OpenSHC/AI/AIC/AICSpecification.hpp +++ b/src/OpenSHC/AI/AIC/AICSpecification.hpp @@ -21,17 +21,17 @@ namespace AI { typedef struct AICSpecification { dword flagType; // 0x00000000 length: 4 - dword unknown001; // 0x00000004 length: 4 - dword unknown002; // 0x00000008 length: 4 - dword unknown003; // 0x0000000C length: 4 - dword unknown004; // 0x00000010 length: 4 - dword unknown005; // 0x00000014 length: 4 + dword aicReserved0; // 0x00000004 length: 4 + dword aicReserved1; // 0x00000008 length: 4 + dword aicReserved2; // 0x0000000C length: 4 + dword aicPerLordFlag4; // 0x00000010 length: 4 + dword aicPerLordFlag5; // 0x00000014 length: 4 dword criticalPopularity; // 0x00000018 length: 4 dword lowestPopularity; // 0x0000001C length: 4 dword highestPopularity; // 0x00000020 length: 4 dword taxesMin; // 0x00000024 length: 4 dword taxesMax; // 0x00000028 length: 4 - dword unknown011; // 0x0000002C length: 4 + dword aicPerLordParam11; // 0x0000002C length: 4 dword farm1; // 0x00000030 length: 4 dword farm2; // 0x00000034 length: 4 dword farm3; // 0x00000038 length: 4 @@ -92,8 +92,8 @@ namespace AI { dword defWallPatrolGroups; // 0x00000114 length: 4 dword defSiegeEngineGoldThreshold; // 0x00000118 length: 4 dword defSiegeEngineBuildDelay; // 0x0000011C length: 4 - dword unknown072; // 0x00000120 length: 4 - dword unknown073; // 0x00000124 length: 4 + dword aicPerLordParam72; // 0x00000120 length: 4 + dword aicPerLordParam73; // 0x00000124 length: 4 dword recruitProbDefDefault; // 0x00000128 length: 4 dword recruitProbDefWeak; // 0x0000012C length: 4 dword recruitProbDefStrong; // 0x00000130 length: 4 @@ -149,10 +149,10 @@ namespace AI { dword AttForceRandom; // 0x000001F8 length: 4 dword AttForceSupportAllyThreshold; // 0x000001FC length: 4 dword AttForceRallyPercentage; // 0x00000200 length: 4 - dword Unknown129; // 0x00000204 length: 4 + dword dwMinRalliedTribesPercent; // 0x00000204 length: 4 dword AttAssaultDelay; // 0x00000208 length: 4 dword AttUnitPatrolRecommandDelay; // 0x0000020C length: 4 - dword Unknown132; // 0x00000210 length: 4 + dword dwAttackWillingnessBase; // 0x00000210 length: 4 dword SiegeEngine1; // 0x00000214 length: 4 dword SiegeEngine2; // 0x00000218 length: 4 dword SiegeEngine3; // 0x0000021C length: 4 @@ -162,7 +162,7 @@ namespace AI { dword SiegeEngine7; // 0x0000022C length: 4 dword SiegeEngine8; // 0x00000230 length: 4 dword CowThrowInterval; // 0x00000234 length: 4 - dword Unknown142; // 0x00000238 length: 4 + dword aicUnused142; // 0x00000238 length: 4 dword AttMaxEngineers; // 0x0000023C length: 4 dword AttDiggingUnit; // 0x00000240 length: 4 dword AttDiggingUnitMax; // 0x00000244 length: 4 diff --git a/src/OpenSHC/AI/AICState.func.hpp b/src/OpenSHC/AI/AICState.func.hpp index 43dbb074..27fe7e0f 100644 --- a/src/OpenSHC/AI/AICState.func.hpp +++ b/src/OpenSHC/AI/AICState.func.hpp @@ -3,25 +3,25 @@ */ #include "OpenSHC/AI/AICState.hpp" -#include "OpenSHC/AI/AINervousDestroyBuildingCategory.hpp" -#include "OpenSHC/AI/AIUnitBehaviourType.hpp" -#include "OpenSHC/AI/AIVUnitType.hpp" -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/AI/AINervousDestroyBuildingCategoryInt.hpp" +#include "OpenSHC/AI/AIUnitBehaviourTypeInt.hpp" +#include "OpenSHC/AI/AIVUnitTypeInt.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/Game/Player/PlayerID.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace AI { namespace AICState_Func { - using OpenSHC::AI::AINervousDestroyBuildingCategory; - using OpenSHC::AI::AIUnitBehaviourType; - using OpenSHC::AI::AIVUnitType; - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::AI::AINervousDestroyBuildingCategoryInt; + using OpenSHC::AI::AIUnitBehaviourTypeInt; + using OpenSHC::AI::AIVUnitTypeInt; + using OpenSHC::Commands::CommandBuildingTypeInt; using OpenSHC::Game::Player::PlayerID; - using OpenSHC::Game::Resources::ResourceType; - using OpenSHC::Map::Units::UnitType; + using OpenSHC::Game::Resources::ResourceTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(void (AICState::*)(), false, Address::SHC_3BB0A8C1_0x004C6D30, &AICState::wipeAICMemory) @@ -147,15 +147,15 @@ namespace AI { uint (AICState::*)(PlayerID), false, Address::SHC_3BB0A8C1_0x004CB540, &AICState::aiShouldBuildPitchrig) aiShouldBuildPitchrig; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(PlayerID, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(PlayerID, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004CB5B0, &AICState::shouldNotBeBuildingHovel) shouldNotBeBuildingHovel; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004CB610, &AICState::shouldWaitWithBuildingNegativeFearFactor) shouldWaitWithBuildingNegativeFearFactor; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004CB700, &AICState::shouldWaitWithBuildingAPositiveFearFactor) shouldWaitWithBuildingAPositiveFearFactor; @@ -164,14 +164,14 @@ namespace AI { destroyHouse; MACRO_FUNCTION_RESOLVER(undefined4 (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CB890, - &AICState::shouldDestroyWoodCutterUnk) - shouldDestroyWoodCutterUnk; + &AICState::aiMaybeDestroyWoodcutterHut) + aiMaybeDestroyWoodcutterHut; MACRO_FUNCTION_RESOLVER(undefined4 (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CB940, &AICState::destroyBuildingIfNoWorker) destroyBuildingIfNoWorker; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004CB9F0, &AICState::shouldNotBuildMarketArmoryGranaryBarracksMercenarypost) shouldNotBuildMarketArmoryGranaryBarracksMercenarypost; @@ -183,19 +183,19 @@ namespace AI { &AICState::setupWorkshopProductionType) setupWorkshopProductionType; - MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int, ResourceType, int), false, Address::SHC_3BB0A8C1_0x004CBFA0, &AICState::sellGoods) + MACRO_FUNCTION_RESOLVER(void (AICState::*)(int, ResourceTypeInt, int), false, Address::SHC_3BB0A8C1_0x004CBFA0, + &AICState::sellGoods) sellGoods; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, ResourceType, int), false, Address::SHC_3BB0A8C1_0x004CC000, - &AICState::buyGoods) + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, ResourceTypeInt, int), false, + Address::SHC_3BB0A8C1_0x004CC000, &AICState::buyGoods) buyGoods; - MACRO_FUNCTION_RESOLVER(AIUnitBehaviourType (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CC070, + MACRO_FUNCTION_RESOLVER(AIUnitBehaviourTypeInt (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CC070, &AICState::randomlySelectAttackUnitTypeToRecruit) randomlySelectAttackUnitTypeToRecruit; - MACRO_FUNCTION_RESOLVER(UnitType (AICState::*)(int, AIUnitBehaviourType), false, + MACRO_FUNCTION_RESOLVER(UnitTypeInt (AICState::*)(int, AIUnitBehaviourTypeInt), false, Address::SHC_3BB0A8C1_0x004CC250, &AICState::getUnitTypeForUnitBehaviourType) getUnitTypeForUnitBehaviourType; @@ -223,9 +223,9 @@ namespace AI { void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CC7B0, &AICState::syncBehaviourType7UnitTribes) syncBehaviourType7UnitTribes; - MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CC840, - &AICState::addUnitToTribeType10_moatdiggersUnk) - addUnitToTribeType10_moatdiggersUnk; + MACRO_FUNCTION_RESOLVER( + void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CC840, &AICState::aiAddUnitToMoatDiggerTribe) + aiAddUnitToMoatDiggerTribe; MACRO_FUNCTION_RESOLVER( undefined4 (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CC8D0, &AICState::unitIDIsRangedOrArmored) @@ -320,8 +320,8 @@ namespace AI { setAttackPrimeInfo; MACRO_FUNCTION_RESOLVER(void (AICState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004CE040, - &AICState::recomputeDistancesToAttackedKeepRelated) - recomputeDistancesToAttackedKeepRelated; + &AICState::recomputeAIPathCostToAttackedKeep) + recomputeAIPathCostToAttackedKeep; MACRO_FUNCTION_RESOLVER( void (AICState::*)(), false, Address::SHC_3BB0A8C1_0x004CE110, &AICState::recomputeAttackAIZone) @@ -331,9 +331,9 @@ namespace AI { void (AICState::*)(), false, Address::SHC_3BB0A8C1_0x004CE1A0, &AICState::recomputeAIZonerLayer) recomputeAIZonerLayer; - MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CE200, - &AICState::computeAndStoreShortestDistanceToKeepUnk) - computeAndStoreShortestDistanceToKeepUnk; + MACRO_FUNCTION_RESOLVER( + void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CE200, &AICState::computeEnemyKeepApproachTile) + computeEnemyKeepApproachTile; MACRO_FUNCTION_RESOLVER( void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CE3B0, &AICState::setNextMoveLocationForUnits) @@ -352,8 +352,8 @@ namespace AI { sendUnitsToPlayerIDsKeepIfPossible; MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CE790, - &AICState::setRallyRelatedFlagOnAllAIAttackTribes) - setRallyRelatedFlagOnAllAIAttackTribes; + &AICState::clearRallyFlagOnAllAIAttackTribes) + clearRallyFlagOnAllAIAttackTribes; MACRO_FUNCTION_RESOLVER( void (AICState::*)(short*), false, Address::SHC_3BB0A8C1_0x004CE830, &AICState::moveAttackTribesToLocations) @@ -383,7 +383,7 @@ namespace AI { &AICState::processAttForceRallyPercentage) processAttForceRallyPercentage; - MACRO_FUNCTION_RESOLVER(void (AICState::*)(CommandBuildingType), false, Address::SHC_3BB0A8C1_0x004CEFD0, + MACRO_FUNCTION_RESOLVER(void (AICState::*)(CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004CEFD0, &AICState::useAITribe_0x12_toPlaceSiegeTentsAndAssignEngineers) useAITribe_0x12_toPlaceSiegeTentsAndAssignEngineers; @@ -392,20 +392,20 @@ namespace AI { useAITribe_0xe_toPlaceTunnels; MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF270, &AICState::aiAttackWave_tribe13Unk) - aiAttackWave_tribe13Unk; + void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF270, &AICState::aiCommandTribe13DefensiveWave) + aiCommandTribe13DefensiveWave; - MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF2E0, &AICState::aiAttackWave_tribe12Unk) - aiAttackWave_tribe12Unk; + MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF2E0, + &AICState::aiCommandTribe12AggressiveApproach) + aiCommandTribe12AggressiveApproach; MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF400, &AICState::setTribe0xCtoAggressiveAndAttack) setTribe0xCtoAggressiveAndAttack; - MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF470, &AICState::aiAttackWave_tribe11Unk) - aiAttackWave_tribe11Unk; + MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF470, + &AICState::aiCommandTribe11StandGroundToGate) + aiCommandTribe11StandGroundToGate; MACRO_FUNCTION_RESOLVER( void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF4F0, &AICState::sendAITribe_0xf_toAttackPatrol) @@ -420,8 +420,8 @@ namespace AI { setEightTribe0xc0TribesToAggressiveAndAttack; MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF660, &AICState::aiAttackWallsSmthUnk) - aiAttackWallsSmthUnk; + void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF660, &AICState::aiCommandWallAssaultTribes) + aiCommandWallAssaultTribes; MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CF6E0, &AICState::setTribe0xbToAggressiveAndAttack) @@ -456,8 +456,8 @@ namespace AI { countSiegeEngineUnits; MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CFCD0, &AICState::aiAttackWaveSiegeUnitsUnk) - aiAttackWaveSiegeUnitsUnk; + void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CFCD0, &AICState::aiCommandSiegeEngineTribes) + aiCommandSiegeEngineTribes; MACRO_FUNCTION_RESOLVER( BOOLEnum (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004CFF60, &AICState::yieldCowThrow) @@ -472,19 +472,19 @@ namespace AI { hasNotEnoughSupplies; MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D0110, &AICState::setAttackWillingnessUnk) - setAttackWillingnessUnk; + void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D0110, &AICState::aiRollAttackWillingness) + aiRollAttackWillingness; MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, BOOLEnum), false, Address::SHC_3BB0A8C1_0x004D0190, &AICState::teamIsWeakRelativeToEnemy) teamIsWeakRelativeToEnemy; - MACRO_FUNCTION_RESOLVER(void (AICState::*)(int, AINervousDestroyBuildingCategory), false, + MACRO_FUNCTION_RESOLVER(void (AICState::*)(int, AINervousDestroyBuildingCategoryInt), false, Address::SHC_3BB0A8C1_0x004D0280, &AICState::destroyAnyBuildingInCategory) destroyAnyBuildingInCategory; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, ResourceType, int), false, Address::SHC_3BB0A8C1_0x004D0520, - &AICState::isResourceLargerOrEqualThanMinimumGoodsRequiredAfterTrade) + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, ResourceTypeInt, int), false, + Address::SHC_3BB0A8C1_0x004D0520, &AICState::isResourceLargerOrEqualThanMinimumGoodsRequiredAfterTrade) isResourceLargerOrEqualThanMinimumGoodsRequiredAfterTrade; MACRO_FUNCTION_RESOLVER( @@ -567,7 +567,7 @@ namespace AI { void (AICState::*)(), false, Address::SHC_3BB0A8C1_0x004D10B0, &AICState::someChatMessageSelection) someChatMessageSelection; - MACRO_FUNCTION_RESOLVER(int (AICState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004D12A0, + MACRO_FUNCTION_RESOLVER(undefined (AICState::*)(), false, Address::SHC_3BB0A8C1_0x004D12A0, &AICState::getCurrentDesiredAttackRaidUnitCount) getCurrentDesiredAttackRaidUnitCount; @@ -579,18 +579,14 @@ namespace AI { setInitialAIC; MACRO_FUNCTION_RESOLVER(void (AICState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004D1950, - &AICState::aiGiveCommandToOutpostTribesUnk) - aiGiveCommandToOutpostTribesUnk; + &AICState::aiRegisterTribeAndAssignTarget) + aiRegisterTribeAndAssignTarget; MACRO_FUNCTION_RESOLVER( void (AICState::*)(uint), false, Address::SHC_3BB0A8C1_0x004D1A00, &AICState::decideOnTribeAttackLocation) decideOnTribeAttackLocation; - MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D1D60, &AICState::sellExcessGoods) - sellExcessGoods; - - MACRO_FUNCTION_RESOLVER(void (AICState::*)(int, ResourceType, undefined4), false, + MACRO_FUNCTION_RESOLVER(void (AICState::*)(int, ResourceTypeInt, undefined4), false, Address::SHC_3BB0A8C1_0x004D1F00, &AICState::requestGoods) requestGoods; @@ -610,9 +606,9 @@ namespace AI { void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D2730, &AICState::addUnitToSmallestPatrolTribe) addUnitToSmallestPatrolTribe; - MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D2790, - &AICState::addUnitToDefensiveTroopsTribeUnk) - addUnitToDefensiveTroopsTribeUnk; + MACRO_FUNCTION_RESOLVER( + void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D2790, &AICState::aiAssignUnitToDefensiveTribe) + aiAssignUnitToDefensiveTribe; MACRO_FUNCTION_RESOLVER( void (AICState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004D27E0, &AICState::addUnitToItsTribe) @@ -634,7 +630,7 @@ namespace AI { void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D2A70, &AICState::aiGiveRaidInstructions) aiGiveRaidInstructions; - MACRO_FUNCTION_RESOLVER(void (AICState::*)(int, AIVUnitType, int), false, Address::SHC_3BB0A8C1_0x004D2E00, + MACRO_FUNCTION_RESOLVER(void (AICState::*)(int, AIVUnitTypeInt, int), false, Address::SHC_3BB0A8C1_0x004D2E00, &AICState::sendTribeToAIVLocationSlot) sendTribeToAIVLocationSlot; @@ -670,25 +666,21 @@ namespace AI { void (AICState::*)(), false, Address::SHC_3BB0A8C1_0x004D3960, &AICState::makeOutpostTribesAttack) makeOutpostTribesAttack; - MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D39B0, &AICState::buyRequiredGoods) - buyRequiredGoods; - MACRO_FUNCTION_RESOLVER( void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D3AE0, &AICState::aiRecruitUnits) aiRecruitUnits; - MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D3F20, &AICState::assignMoatDiggersUnk) - assignMoatDiggersUnk; + MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D3F20, + &AICState::aiAssignCombatUnitsToTribesOrMoat) + aiAssignCombatUnitsToTribesOrMoat; MACRO_FUNCTION_RESOLVER( void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D4040, &AICState::addEngineersToTribe) addEngineersToTribe; MACRO_FUNCTION_RESOLVER( - void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D40B0, &AICState::redirectTunnelersUnk) - redirectTunnelersUnk; + void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D40B0, &AICState::aiReassignTunnelersToTribe) + aiReassignTunnelersToTribe; MACRO_FUNCTION_RESOLVER(void (AICState::*)(int), false, Address::SHC_3BB0A8C1_0x004D4130, &AICState::sendRangedUnitTribesToAIVSlotsOrKeepIfNervous) @@ -734,19 +726,19 @@ namespace AI { void (AICState::*)(), false, Address::SHC_3BB0A8C1_0x004D53E0, &AICState::updateAIBehaviour) updateAIBehaviour; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004ECA30, &AICState::shouldNotBeBuildingGranary) shouldNotBeBuildingGranary; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(PlayerID, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(PlayerID, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004ECA60, &AICState::shouldNotBeBuildingArmoury) shouldNotBeBuildingArmoury; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(int, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004ECA90, &AICState::shouldNotBuildKillingPits) shouldNotBuildKillingPits; - MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(undefined4, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (AICState::*)(undefined4, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004ECAB0, &AICState::woodCuttersHutWhileNoWoodAvailable) woodCuttersHutWhileNoWoodAvailable; diff --git a/src/OpenSHC/AI/AICState.hpp b/src/OpenSHC/AI/AICState.hpp index fa69a0ea..14113deb 100644 --- a/src/OpenSHC/AI/AICState.hpp +++ b/src/OpenSHC/AI/AICState.hpp @@ -9,28 +9,28 @@ #pragma once #include "OpenSHC/AI/AIC/AICSpecification.hpp" -#include "OpenSHC/AI/AINervousDestroyBuildingCategory.hpp" -#include "OpenSHC/AI/AIUnitBehaviourType.hpp" -#include "OpenSHC/AI/AIVUnitType.hpp" +#include "OpenSHC/AI/AINervousDestroyBuildingCategoryInt.hpp" +#include "OpenSHC/AI/AIUnitBehaviourTypeInt.hpp" +#include "OpenSHC/AI/AIVUnitTypeInt.hpp" #include "OpenSHC/AI/TileDistancePair.hpp" -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/Game/Player/PlayerID.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace AI { - using OpenSHC::AI::AINervousDestroyBuildingCategory; - using OpenSHC::AI::AIUnitBehaviourType; - using OpenSHC::AI::AIVUnitType; + using OpenSHC::AI::AINervousDestroyBuildingCategoryInt; + using OpenSHC::AI::AIUnitBehaviourTypeInt; + using OpenSHC::AI::AIVUnitTypeInt; using OpenSHC::AI::TileDistancePair; using OpenSHC::AI::AIC::AICSpecification; - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::Commands::CommandBuildingTypeInt; using OpenSHC::Game::Player::PlayerID; - using OpenSHC::Game::Resources::ResourceType; - using OpenSHC::Map::Units::UnitType; + using OpenSHC::Game::Resources::ResourceTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -120,31 +120,31 @@ namespace AI { uint aiShouldBuildPitchrig(PlayerID param_1); - BOOLEnum shouldNotBeBuildingHovel(PlayerID playerID, CommandBuildingType param_2); + BOOLEnum shouldNotBeBuildingHovel(PlayerID playerID, CommandBuildingTypeInt param_2); - BOOLEnum shouldWaitWithBuildingNegativeFearFactor(int param_1, CommandBuildingType param_2); + BOOLEnum shouldWaitWithBuildingNegativeFearFactor(int param_1, CommandBuildingTypeInt param_2); - BOOLEnum shouldWaitWithBuildingAPositiveFearFactor(int playerID, CommandBuildingType param_2); + BOOLEnum shouldWaitWithBuildingAPositiveFearFactor(int playerID, CommandBuildingTypeInt param_2); BOOLEnum destroyHouse(int playerID); - undefined4 shouldDestroyWoodCutterUnk(int playerID); + undefined4 aiMaybeDestroyWoodcutterHut(int playerID); undefined4 destroyBuildingIfNoWorker(int buildingID); - BOOLEnum shouldNotBuildMarketArmoryGranaryBarracksMercenarypost(int playerID, CommandBuildingType param_2); + BOOLEnum shouldNotBuildMarketArmoryGranaryBarracksMercenarypost(int playerID, CommandBuildingTypeInt param_2); void planToBuyWhenLowOnResourceAndSnoozeBuildings(int playerID); void setupWorkshopProductionType(int playerID, int buildingID); - void sellGoods(int playerID, ResourceType resourceType, int amount); + void sellGoods(int playerID, ResourceTypeInt resourceType, int amount); - BOOLEnum buyGoods(int playerID, ResourceType resourceType, int amount); + BOOLEnum buyGoods(int playerID, ResourceTypeInt resourceType, int amount); - AIUnitBehaviourType randomlySelectAttackUnitTypeToRecruit(int playerID); + AIUnitBehaviourTypeInt randomlySelectAttackUnitTypeToRecruit(int playerID); - UnitType getUnitTypeForUnitBehaviourType(int playerID, AIUnitBehaviourType unitBehaviourType); + UnitTypeInt getUnitTypeForUnitBehaviourType(int playerID, AIUnitBehaviourTypeInt unitBehaviourType); void generateSiegeCreationInformation(int playerID, int buildingID, int unitID); @@ -158,7 +158,7 @@ namespace AI { void syncBehaviourType7UnitTribes(int param_1); - void addUnitToTribeType10_moatdiggersUnk(int unitID); + void aiAddUnitToMoatDiggerTribe(int unitID); undefined4 unitIDIsRangedOrArmored(int unitID); @@ -207,13 +207,13 @@ namespace AI { void setAttackPrimeInfo(int playerID, int attackedPlayerID); - void recomputeDistancesToAttackedKeepRelated(int playerID, int useBorderDistance); + void recomputeAIPathCostToAttackedKeep(int playerID, int useBorderDistance); void recomputeAttackAIZone(); void recomputeAIZonerLayer(); - void computeAndStoreShortestDistanceToKeepUnk(int playerID); + void computeEnemyKeepApproachTile(int playerID); void setNextMoveLocationForUnits(int playerID); @@ -223,7 +223,7 @@ namespace AI { void sendUnitsToPlayerIDsKeepIfPossible(int playerID1, short* playerID2); - void setRallyRelatedFlagOnAllAIAttackTribes(int param_1); + void clearRallyFlagOnAllAIAttackTribes(int param_1); void moveAttackTribesToLocations(short* playerID); @@ -239,17 +239,17 @@ namespace AI { BOOLEnum processAttForceRallyPercentage(int playerID); - void useAITribe_0x12_toPlaceSiegeTentsAndAssignEngineers(CommandBuildingType playerID); + void useAITribe_0x12_toPlaceSiegeTentsAndAssignEngineers(CommandBuildingTypeInt playerID); void useAITribe_0xe_toPlaceTunnels(int playerID); - void aiAttackWave_tribe13Unk(int param_1); + void aiCommandTribe13DefensiveWave(int param_1); - void aiAttackWave_tribe12Unk(int param_1); + void aiCommandTribe12AggressiveApproach(int param_1); void setTribe0xCtoAggressiveAndAttack(int playerID); - void aiAttackWave_tribe11Unk(int playerID); + void aiCommandTribe11StandGroundToGate(int playerID); void sendAITribe_0xf_toAttackPatrol(int playerID); @@ -257,7 +257,7 @@ namespace AI { void setEightTribe0xc0TribesToAggressiveAndAttack(int playerID); - void aiAttackWallsSmthUnk(int param_1); + void aiCommandWallAssaultTribes(int param_1); void setTribe0xbToAggressiveAndAttack(int playerID); @@ -275,7 +275,7 @@ namespace AI { int countSiegeEngineUnits(int playerID); - void aiAttackWaveSiegeUnitsUnk(int playerID); + void aiCommandSiegeEngineTribes(int playerID); BOOLEnum yieldCowThrow(int playerID); @@ -283,14 +283,14 @@ namespace AI { BOOLEnum hasNotEnoughSupplies(int playerID); - void setAttackWillingnessUnk(int param_1); + void aiRollAttackWillingness(int param_1); BOOLEnum teamIsWeakRelativeToEnemy(int playerID, BOOLEnum param_2); - void destroyAnyBuildingInCategory(int playerID, AINervousDestroyBuildingCategory buildingCategory); + void destroyAnyBuildingInCategory(int playerID, AINervousDestroyBuildingCategoryInt buildingCategory); BOOLEnum isResourceLargerOrEqualThanMinimumGoodsRequiredAfterTrade( - int playerID, ResourceType resourceType, int buffer); + int playerID, ResourceTypeInt resourceType, int buffer); BOOLEnum aiOfTypeInCurrentGame(int param_1); @@ -332,19 +332,17 @@ namespace AI { void someChatMessageSelection(); - int getCurrentDesiredAttackRaidUnitCount(int aiType, int playerID); + undefined getCurrentDesiredAttackRaidUnitCount(); void renderDebugDataAiInfo(int x, int y, int width, int height); void setInitialAIC(); - void aiGiveCommandToOutpostTribesUnk(int tribeID, int tribeUID); + void aiRegisterTribeAndAssignTarget(int tribeID, int tribeUID); void decideOnTribeAttackLocation(uint tribeID__moatWasHit); - void sellExcessGoods(int param_1); - - void requestGoods(int playerID, ResourceType resourceType, undefined4 amount); + void requestGoods(int playerID, ResourceTypeInt resourceType, undefined4 amount); void aiCreateSiegeUnits(int playerID); @@ -354,7 +352,7 @@ namespace AI { void addUnitToSmallestPatrolTribe(int unitID); - void addUnitToDefensiveTroopsTribeUnk(int unitID); + void aiAssignUnitToDefensiveTribe(int unitID); void addUnitToItsTribe(int unitID, int aiUnitBehaviourType); @@ -366,7 +364,7 @@ namespace AI { void aiGiveRaidInstructions(int playerID); - void sendTribeToAIVLocationSlot(int tribeID, AIVUnitType aivUnitType, int slotIndex); + void sendTribeToAIVLocationSlot(int tribeID, AIVUnitTypeInt aivUnitType, int slotIndex); void computeAttackPossibilities(int playerID); @@ -384,15 +382,13 @@ namespace AI { void makeOutpostTribesAttack(); - void buyRequiredGoods(int param_1); - void aiRecruitUnits(int playerID); - void assignMoatDiggersUnk(int playerID); + void aiAssignCombatUnitsToTribesOrMoat(int playerID); void addEngineersToTribe(int playerID); - void redirectTunnelersUnk(int param_1); + void aiReassignTunnelersToTribe(int param_1); void sendRangedUnitTribesToAIVSlotsOrKeepIfNervous(int playerID); @@ -416,13 +412,13 @@ namespace AI { void updateAIBehaviour(); - BOOLEnum shouldNotBeBuildingGranary(int playerID, CommandBuildingType param_2); + BOOLEnum shouldNotBeBuildingGranary(int playerID, CommandBuildingTypeInt param_2); - BOOLEnum shouldNotBeBuildingArmoury(PlayerID playerID, CommandBuildingType param_2); + BOOLEnum shouldNotBeBuildingArmoury(PlayerID playerID, CommandBuildingTypeInt param_2); - BOOLEnum shouldNotBuildKillingPits(int playerID, CommandBuildingType commandBuildingType); + BOOLEnum shouldNotBuildKillingPits(int playerID, CommandBuildingTypeInt commandBuildingType); - BOOLEnum woodCuttersHutWhileNoWoodAvailable(undefined4 playerID, CommandBuildingType param_2); + BOOLEnum woodCuttersHutWhileNoWoodAvailable(undefined4 playerID, CommandBuildingTypeInt param_2); }; static_assert_cpp98_obj(sizeof(AICState) == 28048, AICState); diff --git a/src/OpenSHC/AI/AIVState.func.hpp b/src/OpenSHC/AI/AIVState.func.hpp index fb16a048..a5bad73e 100644 --- a/src/OpenSHC/AI/AIVState.func.hpp +++ b/src/OpenSHC/AI/AIVState.func.hpp @@ -2,19 +2,19 @@ path: 'OpenSHC/AI/AIVState.func.hpp' */ -#include "OpenSHC/AI/AIGridComputationResourceType.hpp" -#include "OpenSHC/AI/AIV/AIVBuildingType2.hpp" +#include "OpenSHC/AI/AIGridComputationResourceTypeInt.hpp" +#include "OpenSHC/AI/AIV/AIVBuildingType2Int.hpp" #include "OpenSHC/AI/AIVState.hpp" -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/Game/Player/PlayerID.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace AI { namespace AIVState_Func { - using OpenSHC::AI::AIGridComputationResourceType; - using OpenSHC::AI::AIV::AIVBuildingType2; - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::AI::AIGridComputationResourceTypeInt; + using OpenSHC::AI::AIV::AIVBuildingType2Int; + using OpenSHC::Commands::CommandBuildingTypeInt; using OpenSHC::Game::Player::PlayerID; using OpenSHC::WindowsHelper::Enums::BOOLEnum; @@ -42,7 +42,7 @@ namespace AI { &AIVState::setKeepOffsetAndOrientation) setKeepOffsetAndOrientation; - MACRO_FUNCTION_RESOLVER(CommandBuildingType (AIVState::*)(AIVBuildingType2), false, + MACRO_FUNCTION_RESOLVER(CommandBuildingTypeInt (AIVState::*)(AIVBuildingType2Int), false, Address::SHC_3BB0A8C1_0x004ECFE0, &AIVState::convertAIVBuildingTypeToCommandBuildingType) convertAIVBuildingTypeToCommandBuildingType; @@ -73,7 +73,7 @@ namespace AI { void (AIVState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004EDCB0, &AIVState::set0x13ValueTo10InHeatMap) set0x13ValueTo10InHeatMap; - MACRO_FUNCTION_RESOLVER(int (AIVState::*)(PlayerID, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(int (AIVState::*)(PlayerID, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004EDDF0, &AIVState::findSuitableLocationCloseToKeepAndPlaceBuilding) findSuitableLocationCloseToKeepAndPlaceBuilding; @@ -81,7 +81,7 @@ namespace AI { &AIVState::findAppropriateWoodCutterLocation) findAppropriateWoodCutterLocation; - MACRO_FUNCTION_RESOLVER(void (AIVState::*)(int, AIGridComputationResourceType), false, + MACRO_FUNCTION_RESOLVER(void (AIVState::*)(int, AIGridComputationResourceTypeInt), false, Address::SHC_3BB0A8C1_0x004EE430, &AIVState::findAppropriateBuildingLocationForResourceType) findAppropriateBuildingLocationForResourceType; @@ -109,7 +109,7 @@ namespace AI { int (AIVState::*)(int), false, Address::SHC_3BB0A8C1_0x004EF8C0, &AIVState::computeAIVPlacementFit) computeAIVPlacementFit; - MACRO_FUNCTION_RESOLVER(int (AIVState::*)(int, CommandBuildingType), false, Address::SHC_3BB0A8C1_0x004EFA60, + MACRO_FUNCTION_RESOLVER(int (AIVState::*)(int, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004EFA60, &AIVState::aiPlaceFarm) aiPlaceFarm; diff --git a/src/OpenSHC/AI/AIVState.hpp b/src/OpenSHC/AI/AIVState.hpp index 5560dba1..c14152b3 100644 --- a/src/OpenSHC/AI/AIVState.hpp +++ b/src/OpenSHC/AI/AIVState.hpp @@ -8,12 +8,12 @@ #pragma once -#include "OpenSHC/AI/AIGridComputationResourceType.hpp" +#include "OpenSHC/AI/AIGridComputationResourceTypeInt.hpp" #include "OpenSHC/AI/AIMapExtraInfo.hpp" -#include "OpenSHC/AI/AIV/AIVBuildingType2.hpp" +#include "OpenSHC/AI/AIV/AIVBuildingType2Int.hpp" #include "OpenSHC/AI/AIV/AIVBuildingType2Short.hpp" #include "OpenSHC/AI/AIV/AIVSpec.hpp" -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/Game/Player/PlayerID.hpp" #include "OpenSHC/Map/HeatMap.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -21,12 +21,12 @@ namespace OpenSHC { namespace AI { - using OpenSHC::AI::AIGridComputationResourceType; + using OpenSHC::AI::AIGridComputationResourceTypeInt; using OpenSHC::AI::AIMapExtraInfo; - using OpenSHC::AI::AIV::AIVBuildingType2; + using OpenSHC::AI::AIV::AIVBuildingType2Int; using OpenSHC::AI::AIV::AIVBuildingType2Short; using OpenSHC::AI::AIV::AIVSpec; - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::Commands::CommandBuildingTypeInt; using OpenSHC::Game::Player::PlayerID; using OpenSHC::Map::HeatMap; using OpenSHC::WindowsHelper::Enums::BOOLEnum; @@ -96,7 +96,7 @@ namespace AI { void setKeepOffsetAndOrientation(int aiID, int keepX, int keepY); - CommandBuildingType convertAIVBuildingTypeToCommandBuildingType(AIVBuildingType2 param_1); + CommandBuildingTypeInt convertAIVBuildingTypeToCommandBuildingType(AIVBuildingType2Int param_1); void rotateAIV(int orientation); @@ -112,12 +112,13 @@ namespace AI { void set0x13ValueTo10InHeatMap(int x, int y); - int findSuitableLocationCloseToKeepAndPlaceBuilding(PlayerID playerID, CommandBuildingType commandBuildingType); + int findSuitableLocationCloseToKeepAndPlaceBuilding( + PlayerID playerID, CommandBuildingTypeInt commandBuildingType); void findAppropriateWoodCutterLocation(int playerID); void findAppropriateBuildingLocationForResourceType( - int playerID, AIGridComputationResourceType resourceTypeNumber); + int playerID, AIGridComputationResourceTypeInt resourceTypeNumber); void recomputeAIAvailableGridTiles(int playerID); @@ -131,7 +132,7 @@ namespace AI { int computeAIVPlacementFit(int playerID); - int aiPlaceFarm(int playerID, CommandBuildingType buildingType); + int aiPlaceFarm(int playerID, CommandBuildingTypeInt buildingType); void aiPlaceWoodcuttershut(int playerID); diff --git a/src/OpenSHC/Audio/MissingResourceState.func.hpp b/src/OpenSHC/Audio/MissingResourceState.func.hpp index 073de087..b57412b8 100644 --- a/src/OpenSHC/Audio/MissingResourceState.func.hpp +++ b/src/OpenSHC/Audio/MissingResourceState.func.hpp @@ -3,14 +3,14 @@ */ #include "OpenSHC/Audio/MissingResourceState.hpp" -#include "OpenSHC/Audio/SFX/ResourceLackSFX.hpp" +#include "OpenSHC/Audio/SFX/ResourceLackSFXInt.hpp" namespace OpenSHC { namespace Audio { namespace MissingResourceState_Func { - using OpenSHC::Audio::SFX::ResourceLackSFX; + using OpenSHC::Audio::SFX::ResourceLackSFXInt; - MACRO_FUNCTION_RESOLVER(void (MissingResourceState::*)(int, ResourceLackSFX), false, + MACRO_FUNCTION_RESOLVER(void (MissingResourceState::*)(int, ResourceLackSFXInt), false, Address::SHC_3BB0A8C1_0x00471720, &MissingResourceState::playResourceLackSFX) playResourceLackSFX; diff --git a/src/OpenSHC/Audio/MissingResourceState.hpp b/src/OpenSHC/Audio/MissingResourceState.hpp index 4ed7e34e..b8a93e25 100644 --- a/src/OpenSHC/Audio/MissingResourceState.hpp +++ b/src/OpenSHC/Audio/MissingResourceState.hpp @@ -8,12 +8,12 @@ #pragma once -#include "OpenSHC/Audio/SFX/ResourceLackSFX.hpp" +#include "OpenSHC/Audio/SFX/ResourceLackSFXInt.hpp" namespace OpenSHC { namespace Audio { - using OpenSHC::Audio::SFX::ResourceLackSFX; + using OpenSHC::Audio::SFX::ResourceLackSFXInt; #pragma pack(push, 1) @@ -30,7 +30,7 @@ namespace Audio { MissingResourceState() {}; ~MissingResourceState() {}; - void playResourceLackSFX(int resourceTextElement, ResourceLackSFX resourceType); + void playResourceLackSFX(int resourceTextElement, ResourceLackSFXInt resourceType); void renderResourceMissingText(int posX, int posY, dword textGroup, dword unusedUnk); }; diff --git a/src/OpenSHC/Audio/SFX/SFXDefinedData.hpp b/src/OpenSHC/Audio/SFX/SFXDefinedData.hpp index 4912bd23..7f45258e 100644 --- a/src/OpenSHC/Audio/SFX/SFXDefinedData.hpp +++ b/src/OpenSHC/Audio/SFX/SFXDefinedData.hpp @@ -26,10 +26,10 @@ namespace Audio { MusicSfx DAT_SFX_Pointers[116]; // 0x00000004 length: 928 int field2_0x3a4[8][8]; // 0x000003A4 length: 256 int field3_0x4a4[8]; // 0x000004A4 length: 32 - uint field4_0x4c4[6]; // 0x000004C4 length: 24 + int field4_0x4c4[6]; // 0x000004C4 length: 24 int DAT_LastUsedSpeechStream; // 0x000004DC length: 4 - int field6_0x4e0; // 0x000004E0 length: 4 - int field7_0x4e4; // 0x000004E4 length: 4 + undefined4 field6_0x4e0; // 0x000004E0 length: 4 + undefined4 field7_0x4e4; // 0x000004E4 length: 4 undefined1 padding_0x4e8[4]; // 0x000004E8 length: 4 } SFXDefinedData; diff --git a/src/OpenSHC/Audio/SFX/SFXState.func.hpp b/src/OpenSHC/Audio/SFX/SFXState.func.hpp index e5861b5b..72f57c72 100644 --- a/src/OpenSHC/Audio/SFX/SFXState.func.hpp +++ b/src/OpenSHC/Audio/SFX/SFXState.func.hpp @@ -2,22 +2,20 @@ path: 'OpenSHC/Audio/SFX/SFXState.func.hpp' */ -#include "OpenSHC/Audio/SFX/AmbientSFXType.hpp" +#include "OpenSHC/Audio/SFX/AmbientSFXTypeInt.hpp" #include "OpenSHC/Audio/SFX/SFXState.hpp" -#include "OpenSHC/Audio/SFX/SoundEffectID.hpp" -#include "OpenSHC/Audio/SFX/SpeechEffectID.hpp" -#include "OpenSHC/DE/SHCDE/eSFX.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Audio/SFX/SoundEffectIDInt.hpp" +#include "OpenSHC/Audio/SFX/SpeechEffectIDInt.hpp" +#include "OpenSHC/DE/SHCDE/eSFXInt.hpp" namespace OpenSHC { namespace Audio { namespace SFX { namespace SFXState_Func { - using OpenSHC::Audio::SFX::AmbientSFXType; - using OpenSHC::Audio::SFX::SoundEffectID; - using OpenSHC::Audio::SFX::SpeechEffectID; - using OpenSHC::DE::SHCDE::eSFX; - using OpenSHC::Map::Units::UnitType; + using OpenSHC::Audio::SFX::AmbientSFXTypeInt; + using OpenSHC::Audio::SFX::SoundEffectIDInt; + using OpenSHC::Audio::SFX::SpeechEffectIDInt; + using OpenSHC::DE::SHCDE::eSFXInt; MACRO_FUNCTION_RESOLVER( void (SFXState::*)(int), false, Address::SHC_3BB0A8C1_0x00449B20, &SFXState::freeMemoryAt) @@ -27,9 +25,9 @@ namespace Audio { void (SFXState::*)(char*), false, Address::SHC_3BB0A8C1_0x00449B30, &SFXState::loadWavSounds) loadWavSounds; - MACRO_FUNCTION_RESOLVER(void (SFXState::*)(SoundEffectID), false, Address::SHC_3BB0A8C1_0x00449C40, - &SFXState::setUpSFXToPlayUnk) - setUpSFXToPlayUnk; + MACRO_FUNCTION_RESOLVER(void (SFXState::*)(SoundEffectIDInt), false, Address::SHC_3BB0A8C1_0x00449C40, + &SFXState::scheduleSFXWithVariation) + scheduleSFXWithVariation; MACRO_FUNCTION_RESOLVER( void (SFXState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00449CC0, &SFXState::setSoundWithVariation) @@ -39,7 +37,7 @@ namespace Audio { void (SFXState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00449D50, &SFXState::scheduleSFXVariation) scheduleSFXVariation; - MACRO_FUNCTION_RESOLVER(void (SFXState::*)(int, int, eSFX), false, Address::SHC_3BB0A8C1_0x00449DC0, + MACRO_FUNCTION_RESOLVER(void (SFXState::*)(int, int, eSFXInt), false, Address::SHC_3BB0A8C1_0x00449DC0, &SFXState::playSFXAtLocation) playSFXAtLocation; @@ -47,25 +45,21 @@ namespace Audio { &SFXState::someVolumeAdjustmentFunction) someVolumeAdjustmentFunction; - MACRO_FUNCTION_RESOLVER( - void (SFXState::*)(), false, Address::SHC_3BB0A8C1_0x00449FF0, &SFXState::resetScheduledSoundRequests) - resetScheduledSoundRequests; - - MACRO_FUNCTION_RESOLVER( - void (SFXState::*)(), false, Address::SHC_3BB0A8C1_0x0044A050, &SFXState::resetAmbientEventCounters) - resetAmbientEventCounters; + MACRO_FUNCTION_RESOLVER(undefined (SFXState::*)(), false, Address::SHC_3BB0A8C1_0x0044A050, + &SFXState::resetAmbientSoundCounters) + resetAmbientSoundCounters; MACRO_FUNCTION_RESOLVER( void (SFXState::*)(int), false, Address::SHC_3BB0A8C1_0x0044A0D0, &SFXState::notifyAmbientSoundEvent) notifyAmbientSoundEvent; - MACRO_FUNCTION_RESOLVER(void (SFXState::*)(AmbientSFXType), false, Address::SHC_3BB0A8C1_0x0044A0F0, - &SFXState::playAmbientSoundStreamUnk) - playAmbientSoundStreamUnk; + MACRO_FUNCTION_RESOLVER(void (SFXState::*)(AmbientSFXTypeInt), false, Address::SHC_3BB0A8C1_0x0044A0F0, + &SFXState::playAmbientSFXStream) + playAmbientSFXStream; MACRO_FUNCTION_RESOLVER( - void (SFXState::*)(int), false, Address::SHC_3BB0A8C1_0x0044A1B0, &SFXState::playAmbientSoundStream2Unk) - playAmbientSoundStream2Unk; + void (SFXState::*)(int), false, Address::SHC_3BB0A8C1_0x0044A1B0, &SFXState::playAmbientSFXStream2) + playAmbientSFXStream2; MACRO_FUNCTION_RESOLVER( int (SFXState::*)(char*), false, Address::SHC_3BB0A8C1_0x0044A240, &SFXState::getSoundVolumeForFilename) @@ -75,12 +69,12 @@ namespace Audio { void (SFXState::*)(uint), false, Address::SHC_3BB0A8C1_0x0044A290, &SFXState::playUnitSpeechEffect) playUnitSpeechEffect; - MACRO_FUNCTION_RESOLVER( - void (SFXState::*)(SpeechEffectID), false, Address::SHC_3BB0A8C1_0x0044A3A0, &SFXState::PlaySpeechSFX) + MACRO_FUNCTION_RESOLVER(void (SFXState::*)(SpeechEffectIDInt), false, Address::SHC_3BB0A8C1_0x0044A3A0, + &SFXState::PlaySpeechSFX) PlaySpeechSFX; MACRO_FUNCTION_RESOLVER( - void (SFXState::*)(char const*), false, Address::SHC_3BB0A8C1_0x0044A460, &SFXState::playWAVSFX) + void (SFXState::*)(char*), false, Address::SHC_3BB0A8C1_0x0044A460, &SFXState::playWAVSFX) playWAVSFX; MACRO_FUNCTION_RESOLVER( @@ -91,10 +85,6 @@ namespace Audio { void (SFXState::*)(char*), false, Address::SHC_3BB0A8C1_0x0044A5A0, &SFXState::playSpeechSFX) playSpeechSFX; - MACRO_FUNCTION_RESOLVER( - void (SFXState::*)(), false, Address::SHC_3BB0A8C1_0x0044A620, &SFXState::playVictoryMusic678) - playVictoryMusic678; - MACRO_FUNCTION_RESOLVER( void (SFXState::*)(), false, Address::SHC_3BB0A8C1_0x0044A6E0, &SFXState::playSFXWeAreUnderAttack) playSFXWeAreUnderAttack; @@ -107,10 +97,6 @@ namespace Audio { &SFXState::readVolumeFileAndSetupSoundVolumes) readVolumeFileAndSetupSoundVolumes; - MACRO_FUNCTION_RESOLVER( - void (SFXState::*)(UnitType, int), false, Address::SHC_3BB0A8C1_0x0044B210, &SFXState::playUnitSpeech) - playUnitSpeech; - MACRO_FUNCTION_RESOLVER(void (SFXState::*)(), false, Address::SHC_3BB0A8C1_0x0044BCA0, &SFXState::loadSFX) loadSFX; @@ -119,8 +105,8 @@ namespace Audio { updateAmbientSoundStream; MACRO_FUNCTION_RESOLVER( - void (SFXState::*)(), false, Address::SHC_3BB0A8C1_0x0044C740, &SFXState::soundRelatedMethod1) - soundRelatedMethod1; + void (SFXState::*)(), false, Address::SHC_3BB0A8C1_0x0044C740, &SFXState::updateSFXAndPlayQueuedSounds) + updateSFXAndPlayQueuedSounds; } // namespace SFXState_Func } // namespace SFX diff --git a/src/OpenSHC/Audio/SFX/SFXState.hpp b/src/OpenSHC/Audio/SFX/SFXState.hpp index b55e1976..f279eb06 100644 --- a/src/OpenSHC/Audio/SFX/SFXState.hpp +++ b/src/OpenSHC/Audio/SFX/SFXState.hpp @@ -8,25 +8,23 @@ #pragma once -#include "OpenSHC/Audio/SFX/AmbientSFXType.hpp" -#include "OpenSHC/Audio/SFX/SoundEffectID.hpp" +#include "OpenSHC/Audio/SFX/AmbientSFXTypeInt.hpp" +#include "OpenSHC/Audio/SFX/SoundEffectIDInt.hpp" #include "OpenSHC/Audio/SFX/SoundStructure1.hpp" #include "OpenSHC/Audio/SFX/SoundStructure2.hpp" -#include "OpenSHC/Audio/SFX/SpeechEffectID.hpp" -#include "OpenSHC/DE/SHCDE/eSFX.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Audio/SFX/SpeechEffectIDInt.hpp" +#include "OpenSHC/DE/SHCDE/eSFXInt.hpp" namespace OpenSHC { namespace Audio { namespace SFX { - using OpenSHC::Audio::SFX::AmbientSFXType; - using OpenSHC::Audio::SFX::SoundEffectID; + using OpenSHC::Audio::SFX::AmbientSFXTypeInt; + using OpenSHC::Audio::SFX::SoundEffectIDInt; using OpenSHC::Audio::SFX::SoundStructure1; using OpenSHC::Audio::SFX::SoundStructure2; - using OpenSHC::Audio::SFX::SpeechEffectID; - using OpenSHC::DE::SHCDE::eSFX; - using OpenSHC::Map::Units::UnitType; + using OpenSHC::Audio::SFX::SpeechEffectIDInt; + using OpenSHC::DE::SHCDE::eSFXInt; #pragma pack(push, 1) @@ -58,53 +56,47 @@ namespace Audio { void loadWavSounds(char* param_1); - void setUpSFXToPlayUnk(SoundEffectID sfxOffsetInArray); + void scheduleSFXWithVariation(SoundEffectIDInt sfxOffsetInArray); void setSoundWithVariation(int unknownSfxID, int volumePercentage); void scheduleSFXVariation(int sfxGroupID, int variationIndex); - void playSFXAtLocation(int xPosition, int yPosition, eSFX sfxOffsetInArray); + void playSFXAtLocation(int xPosition, int yPosition, eSFXInt sfxOffsetInArray); void someVolumeAdjustmentFunction(int param_1, int param_2, int param_3); - void resetScheduledSoundRequests(); - - void resetAmbientEventCounters(); + undefined resetAmbientSoundCounters(); void notifyAmbientSoundEvent(int ambientSoundType); - void playAmbientSoundStreamUnk(AmbientSFXType ambientSoundIndexUnk); + void playAmbientSFXStream(AmbientSFXTypeInt ambientSoundIndexUnk); - void playAmbientSoundStream2Unk(int ambientSoundIndexUnk); + void playAmbientSFXStream2(int ambientSoundIndexUnk); int getSoundVolumeForFilename(char* soundFileName); void playUnitSpeechEffect(uint speechEffectID); - void PlaySpeechSFX(SpeechEffectID speechID); + void PlaySpeechSFX(SpeechEffectIDInt speechID); - void playWAVSFX(char const* wav_filename); + void playWAVSFX(char* wav_filename); void playOnSpeechSfxStream(char* filename); void playSpeechSFX(char* filename); - void playVictoryMusic678(); - void playSFXWeAreUnderAttack(); void tweakVolume(int param_1, float param_2); void readVolumeFileAndSetupSoundVolumes(); - void playUnitSpeech(UnitType unitType, int actionID); - void loadSFX(); void updateAmbientSoundStream(); - void soundRelatedMethod1(); + void updateSFXAndPlayQueuedSounds(); }; static_assert_cpp98_obj(sizeof(SFXState) == 36496, SFXState); diff --git a/src/OpenSHC/Audio/SoundEffectsHelperData1.hpp b/src/OpenSHC/Audio/SoundEffectsHelperData1.hpp index 1134c146..ee6a4319 100644 --- a/src/OpenSHC/Audio/SoundEffectsHelperData1.hpp +++ b/src/OpenSHC/Audio/SoundEffectsHelperData1.hpp @@ -24,8 +24,8 @@ namespace Audio { // SIZE: 0x00000088 typedef struct SoundEffectsHelperData1 { - int DAT_NegativeCountdownMin1ToMin4Becomes0; // 0x00000000 length: 4 - int DAT_Music_TotalTroopValue; // 0x00000004 length: 4 + undefined4 DAT_NegativeCountdownMin1ToMin4Becomes0; // 0x00000000 length: 4 + undefined4 DAT_Music_TotalTroopValue; // 0x00000004 length: 4 int field2_0x8; // 0x00000008 length: 4 MusicControl SEC_Section1079; // 0x0000000C length: 32 int field4_0x2c; // 0x0000002C length: 4 @@ -36,14 +36,14 @@ namespace Audio { int DAT_RandomVariationCurrentPlayingMusic_01; // 0x00000040 length: 4 int DAT_SomeSoundTime2; // 0x00000044 length: 4 int DAT_RandomVariationCurrentPlayingMusic_02; // 0x00000048 length: 4 - int field12_0x4c; // 0x0000004C length: 4 - int field13_0x50; // 0x00000050 length: 4 + undefined4 field12_0x4c; // 0x0000004C length: 4 + undefined4 field13_0x50; // 0x00000050 length: 4 BOOLEnum field14_0x54; // 0x00000054 length: 4 BOOLEnum field15_0x58; // 0x00000058 length: 4 - int field16_0x5c; // 0x0000005C length: 4 - int DAT_WinMusicVariation; // 0x00000060 length: 4 - int field18_0x64; // 0x00000064 length: 4 - int DAT_LossMusicVariation; // 0x00000068 length: 4 + undefined4 field16_0x5c; // 0x0000005C length: 4 + undefined4 DAT_WinMusicVariation; // 0x00000060 length: 4 + undefined4 field18_0x64; // 0x00000064 length: 4 + undefined4 DAT_LossMusicVariation; // 0x00000068 length: 4 DWORD DAT_enemyInsideCastleSoundWarningCooldownTimer; // 0x0000006C length: 4 undefined4 field21_0x70; // 0x00000070 length: 4 WAVEFORMATEX SND_Waveformat; // 0x00000074 length: 18 diff --git a/src/OpenSHC/Audio/mss/SoundSystem.func.hpp b/src/OpenSHC/Audio/mss/SoundSystem.func.hpp index 8496bc6a..aebbed10 100644 --- a/src/OpenSHC/Audio/mss/SoundSystem.func.hpp +++ b/src/OpenSHC/Audio/mss/SoundSystem.func.hpp @@ -2,60 +2,56 @@ path: 'OpenSHC/Audio/MSS/SoundSystem.func.hpp' */ -#include "OpenSHC/Audio/MSS/SoundFlagsAndLoopCount.hpp" #include "OpenSHC/Audio/MSS/SoundSystem.hpp" -#include "OpenSHC/Audio/MSS/enums/SHC_SoundStream.hpp" -#include "OpenSHC/DE/SHCDE/eMusicIDs.hpp" +#include "OpenSHC/Audio/MSS/UnkSoundFlagsAndLoopCount.hpp" +#include "OpenSHC/Audio/MSS/enums/SHC_SoundStreamInt.hpp" +#include "OpenSHC/DE/SHCDE/eMusicIDsInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Audio { namespace MSS { namespace SoundSystem_Func { - using OpenSHC::Audio::MSS::SoundFlagsAndLoopCount; - using OpenSHC::Audio::MSS::enums::SHC_SoundStream; - using OpenSHC::DE::SHCDE::eMusicIDs; + using OpenSHC::Audio::MSS::UnkSoundFlagsAndLoopCount; + using OpenSHC::Audio::MSS::enums::SHC_SoundStreamInt; + using OpenSHC::DE::SHCDE::eMusicIDsInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00424700, - &SoundSystem::endSpeechStreamsAndResetLoopFlags) - endSpeechStreamsAndResetLoopFlags; + MACRO_FUNCTION_RESOLVER( + void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00424700, &SoundSystem::stopSpeechStreams) + stopSpeechStreams; MACRO_FUNCTION_RESOLVER( void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00467810, &SoundSystem::stopMusicPlayback) stopMusicPlayback; MACRO_FUNCTION_RESOLVER( - void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00467830, &SoundSystem::endSoundStreamsUnk) - endSoundStreamsUnk; + void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00467830, &SoundSystem::endAllSoundStreams) + endAllSoundStreams; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(SHC_SoundStream), false, Address::SHC_3BB0A8C1_0x004799A0, + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(SHC_SoundStreamInt), false, Address::SHC_3BB0A8C1_0x004799A0, &SoundSystem::endSoundStream) endSoundStream; - MACRO_FUNCTION_RESOLVER(BOOLEnum (SoundSystem::*)(SHC_SoundStream), false, Address::SHC_3BB0A8C1_0x00479A60, - &SoundSystem::isSampleOrStreamPlaying) + MACRO_FUNCTION_RESOLVER(BOOLEnum (SoundSystem::*)(SHC_SoundStreamInt), false, + Address::SHC_3BB0A8C1_0x00479A60, &SoundSystem::isSampleOrStreamPlaying) isSampleOrStreamPlaying; MACRO_FUNCTION_RESOLVER(BOOLEnum (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00479AB0, &SoundSystem::shouldSoundXNotBePlaying) shouldSoundXNotBePlaying; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(SHC_SoundStream, int), false, - Address::SHC_3BB0A8C1_0x00479AF0, &SoundSystem::setStreamAndSampleVolumeUnk) - setStreamAndSampleVolumeUnk; - - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00479B70, - &SoundSystem::restoreMusicVolumeAfterSpeechEnds) - restoreMusicVolumeAfterSpeechEnds; + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(SHC_SoundStreamInt, int), false, + Address::SHC_3BB0A8C1_0x00479AF0, &SoundSystem::setSoundStreamVolume) + setSoundStreamVolume; - MACRO_FUNCTION_RESOLVER(int (SoundSystem::*)(char*), false, Address::SHC_3BB0A8C1_0x00479C20, - &SoundSystem::loadSoundFileAndGetIndex) - loadSoundFileAndGetIndex; + MACRO_FUNCTION_RESOLVER( + void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00479B70, &SoundSystem::updateMusicStreamVolume) + updateMusicStreamVolume; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(int), false, Address::SHC_3BB0A8C1_0x00479C80, - &SoundSystem::findSamplePlaceForSoundUnk) - findSamplePlaceForSoundUnk; + &SoundSystem::allocateSampleSlotForSound) + allocateSampleSlotForSound; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x00479CF0, &SoundSystem::setupSampleForNextSound) @@ -69,13 +65,13 @@ namespace Audio { void (SoundSystem::*)(int), false, Address::SHC_3BB0A8C1_0x00479DF0, &SoundSystem::playSound) playSound; - MACRO_FUNCTION_RESOLVER( - void (SoundSystem::*)(int, int), false, Address::SHC_3BB0A8C1_0x00479E60, &SoundSystem::setVolumeUnk) - setVolumeUnk; + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(int, int), false, Address::SHC_3BB0A8C1_0x00479E60, + &SoundSystem::setStreamOrSampleVolume) + setStreamOrSampleVolume; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00479F30, - &SoundSystem::deactivateSoundFromMenuFuncUnk) - deactivateSoundFromMenuFuncUnk; + MACRO_FUNCTION_RESOLVER( + void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00479F30, &SoundSystem::deactivateAllSound) + deactivateAllSound; MACRO_FUNCTION_RESOLVER( void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x00479FC0, &SoundSystem::pauseAudioSample) @@ -86,20 +82,20 @@ namespace Audio { resumeAudioSample; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A130, - &SoundSystem::mapLoadingAndLaunchGameRelated1) - mapLoadingAndLaunchGameRelated1; + &SoundSystem::resetSoundAndBattleStateOnLaunch) + resetSoundAndBattleStateOnLaunch; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(eMusicIDs), false, Address::SHC_3BB0A8C1_0x0047A1B0, + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(eMusicIDsInt), false, Address::SHC_3BB0A8C1_0x0047A1B0, &SoundSystem::setupVolumeAndSoundID) setupVolumeAndSoundID; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(eMusicIDs, int), false, Address::SHC_3BB0A8C1_0x0047A220, + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(eMusicIDsInt, int), false, Address::SHC_3BB0A8C1_0x0047A220, &SoundSystem::setupVolumeAndSoundIDWithMultiplier) setupVolumeAndSoundIDWithMultiplier; MACRO_FUNCTION_RESOLVER( - void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A290, &SoundSystem::markMusicChangePending) - markMusicChangePending; + void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A290, &SoundSystem::setSoundSystemFlag) + setSoundSystemFlag; MACRO_FUNCTION_RESOLVER( void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A2A0, &SoundSystem::setSomeSoundTime) @@ -109,17 +105,13 @@ namespace Audio { &SoundSystem::setupVolumeAndSoundID0xF0_100) setupVolumeAndSoundID0xF0_100; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A340, - &SoundSystem::selectAndPlayMoodBasedMusic) - selectAndPlayMoodBasedMusic; - MACRO_FUNCTION_RESOLVER( void (SoundSystem::*)(int), false, Address::SHC_3BB0A8C1_0x0047A570, &SoundSystem::setSection1079_28_4_) setSection1079_28_4_; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A580, - &SoundSystem::playBattleGloryMusicIfConditionsMet) - playBattleGloryMusicIfConditionsMet; + MACRO_FUNCTION_RESOLVER( + void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A580, &SoundSystem::playBattleGloryMusic) + playBattleGloryMusic; MACRO_FUNCTION_RESOLVER( void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A5E0, &SoundSystem::playDarMehqOrGlory) @@ -137,13 +129,13 @@ namespace Audio { void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A690, &SoundSystem::shutdownSoundSystem) shutdownSoundSystem; - MACRO_FUNCTION_RESOLVER( - void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A790, &SoundSystem::playMusicUnk) - playMusicUnk; + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A790, + &SoundSystem::serviceMusicStreamBuffer) + serviceMusicStreamBuffer; MACRO_FUNCTION_RESOLVER( - void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A9E0, &SoundSystem::stopAllActiveSounds) - stopAllActiveSounds; + void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047A9E0, &SoundSystem::stopAllSpeechAndSamples) + stopAllSpeechAndSamples; MACRO_FUNCTION_RESOLVER( void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047AA70, &SoundSystem::endSpeechSoundStreams) @@ -157,29 +149,29 @@ namespace Audio { &SoundSystem::handleBattleEndMusicTransition) handleBattleEndMusicTransition; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(SHC_SoundStream, char*, SoundFlagsAndLoopCount), false, - Address::SHC_3BB0A8C1_0x0047B060, &SoundSystem::playSoundStreamUnk) - playSoundStreamUnk; + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(SHC_SoundStreamInt, char*, UnkSoundFlagsAndLoopCount), false, + Address::SHC_3BB0A8C1_0x0047B060, &SoundSystem::playSoundStreamOnSlot) + playSoundStreamOnSlot; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*), false, Address::SHC_3BB0A8C1_0x0047B250, - &SoundSystem::playMusicFileByName) - playMusicFileByName; + &SoundSystem::setCurrentSoundFile) + setCurrentSoundFile; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, int), false, Address::SHC_3BB0A8C1_0x0047B2F0, - &SoundSystem::playOrSetupMusicUnk) - playOrSetupMusicUnk; + &SoundSystem::playMusicOnceWithVolume) + playMusicOnceWithVolume; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, int), false, Address::SHC_3BB0A8C1_0x0047B3C0, - &SoundSystem::playOrEndMusicUnk) - playOrEndMusicUnk; + &SoundSystem::playMusicLoopingWithVolume) + playMusicLoopingWithVolume; MACRO_FUNCTION_RESOLVER( void (SoundSystem::*)(char*), false, Address::SHC_3BB0A8C1_0x0047B490, &SoundSystem::openSound) openSound; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*), false, Address::SHC_3BB0A8C1_0x0047B590, - &SoundSystem::playOnSfx1SoundStreamOnceOrOnRepeatUnk) - playOnSfx1SoundStreamOnceOrOnRepeatUnk; + &SoundSystem::playSfx1StreamLooping) + playSfx1StreamLooping; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*), false, Address::SHC_3BB0A8C1_0x0047B5C0, &SoundSystem::playSoundOnSoundStream2) @@ -194,36 +186,36 @@ namespace Audio { playSpeechSfx; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*), false, Address::SHC_3BB0A8C1_0x0047B700, - &SoundSystem::playAmbientStreamWithLoop) - playAmbientStreamWithLoop; + &SoundSystem::playSoundStreamFile) + playSoundStreamFile; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, SoundFlagsAndLoopCount), false, - Address::SHC_3BB0A8C1_0x0047B760, &SoundSystem::playSomeMusicUnk) - playSomeMusicUnk; + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, UnkSoundFlagsAndLoopCount), false, + Address::SHC_3BB0A8C1_0x0047B760, &SoundSystem::playMusicFile) + playMusicFile; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, SoundFlagsAndLoopCount), false, - Address::SHC_3BB0A8C1_0x0047B7D0, &SoundSystem::playOnSfx1SoundStreamUnk) - playOnSfx1SoundStreamUnk; + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, UnkSoundFlagsAndLoopCount), false, + Address::SHC_3BB0A8C1_0x0047B7D0, &SoundSystem::playSfx1Stream) + playSfx1Stream; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, SoundFlagsAndLoopCount), false, + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, UnkSoundFlagsAndLoopCount), false, Address::SHC_3BB0A8C1_0x0047B800, &SoundSystem::playSoundOnSfxSoundStream2) playSoundOnSfxSoundStream2; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, SoundFlagsAndLoopCount), false, - Address::SHC_3BB0A8C1_0x0047B830, &SoundSystem::playSoundOnStream3Unk) - playSoundOnStream3Unk; + MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(char*, UnkSoundFlagsAndLoopCount), false, + Address::SHC_3BB0A8C1_0x0047B830, &SoundSystem::playSpeechOnStream) + playSpeechOnStream; - MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047B870, - &SoundSystem::activateSoundFromMenuFuncUnk) - activateSoundFromMenuFuncUnk; + MACRO_FUNCTION_RESOLVER( + void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047B870, &SoundSystem::resumeMusicPlayback) + resumeMusicPlayback; MACRO_FUNCTION_RESOLVER( void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047B890, &SoundSystem::playRandomAmbientMusic) playRandomAmbientMusic; MACRO_FUNCTION_RESOLVER(void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047BF20, - &SoundSystem::playRandomBackgroundMusicUnk) - playRandomBackgroundMusicUnk; + &SoundSystem::chooseNextBattleMusicTrack) + chooseNextBattleMusicTrack; MACRO_FUNCTION_RESOLVER( void (SoundSystem::*)(), false, Address::SHC_3BB0A8C1_0x0047C400, &SoundSystem::initMiles) diff --git a/src/OpenSHC/Audio/mss/SoundSystem.hpp b/src/OpenSHC/Audio/mss/SoundSystem.hpp index 118f99fd..8edcfa7e 100644 --- a/src/OpenSHC/Audio/mss/SoundSystem.hpp +++ b/src/OpenSHC/Audio/mss/SoundSystem.hpp @@ -8,9 +8,9 @@ #pragma once -#include "OpenSHC/Audio/MSS/SoundFlagsAndLoopCount.hpp" -#include "OpenSHC/Audio/MSS/enums/SHC_SoundStream.hpp" -#include "OpenSHC/DE/SHCDE/eMusicIDs.hpp" +#include "OpenSHC/Audio/MSS/UnkSoundFlagsAndLoopCount.hpp" +#include "OpenSHC/Audio/MSS/enums/SHC_SoundStreamInt.hpp" +#include "OpenSHC/DE/SHCDE/eMusicIDsInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "Mss32.h" @@ -20,9 +20,9 @@ namespace OpenSHC { namespace Audio { namespace MSS { - using OpenSHC::Audio::MSS::SoundFlagsAndLoopCount; - using OpenSHC::Audio::MSS::enums::SHC_SoundStream; - using OpenSHC::DE::SHCDE::eMusicIDs; + using OpenSHC::Audio::MSS::UnkSoundFlagsAndLoopCount; + using OpenSHC::Audio::MSS::enums::SHC_SoundStreamInt; + using OpenSHC::DE::SHCDE::eMusicIDsInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -35,7 +35,7 @@ namespace Audio { BOOLEnum waveOutOpenUnk_0x8; // 0x00000008 length: 4 HSTREAM stream_0xc[5]; // 0x0000000C length: 20 int streamActiveUnk_0x20[5]; // 0x00000020 length: 20 - SoundFlagsAndLoopCount streamFlagsUnkAndLoopCount_0x34[5]; // 0x00000034 length: 20 + UnkSoundFlagsAndLoopCount streamFlagsUnkAndLoopCount_0x34[5]; // 0x00000034 length: 20 int streamFileVolumeNextUnk_0x48[5]; // 0x00000048 length: 20 int streamFileVolumeCurrentUnk_0x5c[5]; // 0x0000005C length: 20 int streamVolume[5]; // 0x00000070 length: 20 @@ -51,7 +51,8 @@ namespace Audio { void* sampleBufferPtrUnk_0x17c[2]; // 0x0000017C length: 8 int sampleBufferSizeUnk_0x184; // 0x00000184 length: 4 dword mbr_0x188; // 0x00000188 length: 4 - HSAMPLE sample[32]; // 0x0000018C length: 128 + dword mbr_0x18c; // 0x0000018C length: 4 + HSAMPLE sample_0x190[31]; // 0x00000190 length: 124 int sampleSoundIndex_0x20c[32]; // 0x0000020C length: 128 int soundFileCurrSampleNum_0x28c[1000]; // 0x0000028C length: 4000 void* soundFileDataPointerArray_0x122c[1000]; // 0x0000122C length: 4000 @@ -75,25 +76,23 @@ namespace Audio { SoundSystem() {}; ~SoundSystem() {}; - void endSpeechStreamsAndResetLoopFlags(); + void stopSpeechStreams(); void stopMusicPlayback(); - void endSoundStreamsUnk(); + void endAllSoundStreams(); - void endSoundStream(SHC_SoundStream sndStreamIndex); + void endSoundStream(SHC_SoundStreamInt sndStreamIndex); - BOOLEnum isSampleOrStreamPlaying(SHC_SoundStream streamIndex); + BOOLEnum isSampleOrStreamPlaying(SHC_SoundStreamInt streamIndex); BOOLEnum shouldSoundXNotBePlaying(); - void setStreamAndSampleVolumeUnk(SHC_SoundStream sndStreamIndex, int volumeParam); + void setSoundStreamVolume(SHC_SoundStreamInt sndStreamIndex, int volumeParam); - void restoreMusicVolumeAfterSpeechEnds(); + void updateMusicStreamVolume(); - int loadSoundFileAndGetIndex(char* fileName); - - void findSamplePlaceForSoundUnk(int soundIndex); + void allocateSampleSlotForSound(int soundIndex); void setupSampleForNextSound(int soundIndex, int sampleVolumePercentage, int samplePan); @@ -101,31 +100,29 @@ namespace Audio { void playSound(int soundIndex); - void setVolumeUnk(int streamIndex, int volume); + void setStreamOrSampleVolume(int streamIndex, int volume); - void deactivateSoundFromMenuFuncUnk(); + void deactivateAllSound(); void pauseAudioSample(); void resumeAudioSample(); - void mapLoadingAndLaunchGameRelated1(); + void resetSoundAndBattleStateOnLaunch(); - void setupVolumeAndSoundID(eMusicIDs soundID); + void setupVolumeAndSoundID(eMusicIDsInt soundID); - void setupVolumeAndSoundIDWithMultiplier(eMusicIDs soundID, int soundMultiplier); + void setupVolumeAndSoundIDWithMultiplier(eMusicIDsInt soundID, int soundMultiplier); - void markMusicChangePending(); + void setSoundSystemFlag(); void setSomeSoundTime(); void setupVolumeAndSoundID0xF0_100(); - void selectAndPlayMoodBasedMusic(); - void setSection1079_28_4_(int param_1); - void playBattleGloryMusicIfConditionsMet(); + void playBattleGloryMusic(); void playDarMehqOrGlory(); @@ -135,9 +132,9 @@ namespace Audio { void shutdownSoundSystem(); - void playMusicUnk(); + void serviceMusicStreamBuffer(); - void stopAllActiveSounds(); + void stopAllSpeechAndSamples(); void endSpeechSoundStreams(); @@ -145,18 +142,18 @@ namespace Audio { void handleBattleEndMusicTransition(); - void playSoundStreamUnk( - SHC_SoundStream sndStreamIndex, char* filename, SoundFlagsAndLoopCount flagsAndLoopCount); + void playSoundStreamOnSlot( + SHC_SoundStreamInt sndStreamIndex, char* filename, UnkSoundFlagsAndLoopCount flagsAndLoopCount); - void playMusicFileByName(char* filename); + void setCurrentSoundFile(char* filename); - void playOrSetupMusicUnk(char* filename, int someVolumeUnk); + void playMusicOnceWithVolume(char* filename, int someVolumeUnk); - void playOrEndMusicUnk(char* filename, int volume); + void playMusicLoopingWithVolume(char* filename, int volume); void openSound(char* filePath); - void playOnSfx1SoundStreamOnceOrOnRepeatUnk(char* filename); + void playSfx1StreamLooping(char* filename); void playSoundOnSoundStream2(char* filename); @@ -164,21 +161,21 @@ namespace Audio { void playSpeechSfx(char* soundFileName); - void playAmbientStreamWithLoop(char* param_1); + void playSoundStreamFile(char* param_1); - void playSomeMusicUnk(char* filename, SoundFlagsAndLoopCount flagsAndLoop); + void playMusicFile(char* filename, UnkSoundFlagsAndLoopCount flagsAndLoop); - void playOnSfx1SoundStreamUnk(char* soundFileName, SoundFlagsAndLoopCount flagsAndLoopCount); + void playSfx1Stream(char* soundFileName, UnkSoundFlagsAndLoopCount flagsAndLoopCount); - void playSoundOnSfxSoundStream2(char* filename, SoundFlagsAndLoopCount flagsAndLoopCount); + void playSoundOnSfxSoundStream2(char* filename, UnkSoundFlagsAndLoopCount flagsAndLoopCount); - void playSoundOnStream3Unk(char* filename, SoundFlagsAndLoopCount flagsAndLoopCount); + void playSpeechOnStream(char* filename, UnkSoundFlagsAndLoopCount flagsAndLoopCount); - void activateSoundFromMenuFuncUnk(); + void resumeMusicPlayback(); void playRandomAmbientMusic(); - void playRandomBackgroundMusicUnk(); + void chooseNextBattleMusicTrack(); void initMiles(); }; diff --git a/src/OpenSHC/Audio/mss/UnkSoundFlagsAndLoopCount.hpp b/src/OpenSHC/Audio/mss/UnkSoundFlagsAndLoopCount.hpp new file mode 100644 index 00000000..6488f5fd --- /dev/null +++ b/src/OpenSHC/Audio/mss/UnkSoundFlagsAndLoopCount.hpp @@ -0,0 +1,29 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Audio/MSS/UnkSoundFlagsAndLoopCount.hpp' +*/ + +#pragma once + +namespace OpenSHC { +namespace Audio { + namespace MSS { + +#pragma pack(push, 1) + // SIZE: 0x00000004 + typedef struct UnkSoundFlagsAndLoopCount { + + ushort loopCount; // 0x00000000 length: 2 + undefined1 padding_0x2[1]; // 0x00000002 length: 1 + byte flagsUnk; // 0x00000003 length: 1 + + } UnkSoundFlagsAndLoopCount; +#pragma pack(pop) + + static_assert_cpp98_obj(sizeof(UnkSoundFlagsAndLoopCount) == 4, UnkSoundFlagsAndLoopCount); + } // namespace MSS +} // namespace Audio +} // namespace OpenSHC diff --git a/src/OpenSHC/Commands.func.hpp b/src/OpenSHC/Commands.func.hpp index 3d7a55f7..59e483fa 100644 --- a/src/OpenSHC/Commands.func.hpp +++ b/src/OpenSHC/Commands.func.hpp @@ -92,8 +92,8 @@ namespace Commands_Func { ClickPlaceRockOrTree; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00481C80, &OpenSHC::Commands::ClickRaiseLand2Unk) - ClickRaiseLand2Unk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00481C80, &OpenSHC::Commands::commandRaiseLand) + commandRaiseLand; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00481D90, &OpenSHC::Commands::ClickPlaceBuilding) @@ -127,9 +127,9 @@ namespace Commands_Func { void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00482420, &OpenSHC::Commands::ClickGiveUnitsInstruction) ClickGiveUnitsInstruction; - MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00482550, - &OpenSHC::Commands::ClickSomethingWithDrawBridgeUnk) - ClickSomethingWithDrawBridgeUnk; + MACRO_FUNCTION_RESOLVER( + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00482550, &OpenSHC::Commands::commandToggleDrawbridge) + commandToggleDrawbridge; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00482620, &OpenSHC::Commands::ClickBuyOrSell) @@ -192,8 +192,8 @@ namespace Commands_Func { ResyncStatus2; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484450, &OpenSHC::Commands::ResetSyncStatusUnk) - ResetSyncStatusUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484450, &OpenSHC::Commands::resetSyncStatus) + resetSyncStatus; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004844A0, &OpenSHC::Commands::ClickRepairTower) @@ -212,12 +212,12 @@ namespace Commands_Func { ClickExtendRallyPoint; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484960, &OpenSHC::Commands::SiegeEngineRelated) - SiegeEngineRelated; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484960, &OpenSHC::Commands::marshalSiegeEngineCommand) + marshalSiegeEngineCommand; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484A00, &OpenSHC::Commands::TribeRelated1) - TribeRelated1; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484A00, &OpenSHC::Commands::marshalTribeUnitCommand) + marshalTribeUnitCommand; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484A70, &OpenSHC::Commands::ReleaseDogs) @@ -236,31 +236,31 @@ namespace Commands_Func { DeselectUnit; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484E10, &OpenSHC::Commands::SetField45To100) - SetField45To100; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484E10, &OpenSHC::Commands::marshalSetMapTimeFlagCommand) + marshalSetMapTimeFlagCommand; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484E70, &OpenSHC::Commands::ResyncZone) ResyncZone; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484F30, &OpenSHC::Commands::KickPlayerUnk) - KickPlayerUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00484F30, &OpenSHC::Commands::commandKickPlayer) + commandKickPlayer; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485020, &OpenSHC::Commands::CommandSelectionReplenishAmmo) CommandSelectionReplenishAmmo; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004850E0, &OpenSHC::Commands::BroadCastSyncRelatedStatus) - BroadCastSyncRelatedStatus; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004850E0, &OpenSHC::Commands::commandBroadcastSyncStatus) + commandBroadcastSyncStatus; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485140, &OpenSHC::Commands::VoteKick_K_D_B_G_J) VoteKick_K_D_B_G_J; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485210, &OpenSHC::Commands::SyncPacketSizeAnnouncement) - SyncPacketSizeAnnouncement; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485210, &OpenSHC::Commands::marshalNetworkSyncCommand) + marshalNetworkSyncCommand; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004852D0, &OpenSHC::Commands::ShareAnnouncementWithHost) @@ -275,16 +275,16 @@ namespace Commands_Func { SomePlayerNameUpdateCommand; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485520, &OpenSHC::Commands::FlagsAndBraziersCommandUnk) - FlagsAndBraziersCommandUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485520, &OpenSHC::Commands::commandFlagsBraziers) + commandFlagsBraziers; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004855C0, &OpenSHC::Commands::NotifyLaggingPlayer) - NotifyLaggingPlayer; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004855C0, &OpenSHC::Commands::marshalLaggingPlayerCommand) + marshalLaggingPlayerCommand; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485650, &OpenSHC::Commands::SomeKindOfMultiplayerPingUnk) - SomeKindOfMultiplayerPingUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485650, &OpenSHC::Commands::commandReportLaggingPlayerPing) + commandReportLaggingPlayerPing; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004856E0, &OpenSHC::Commands::ShareGameStatePartialHashes) @@ -307,8 +307,8 @@ namespace Commands_Func { StartReceivingMapFile; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485E80, &OpenSHC::Commands::MapSendingRelated) - MapSendingRelated; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485E80, &OpenSHC::Commands::commandMapFileTransferControl) + commandMapFileTransferControl; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00485F20, &OpenSHC::Commands::HostAnnounceRoundTable) @@ -355,8 +355,8 @@ namespace Commands_Func { AutoSaveTriggered; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00489AC0, &OpenSHC::Commands::SetPlayerNameUnk) - SetPlayerNameUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00489AC0, &OpenSHC::Commands::commandSyncMapNameAndBeginLoad) + commandSyncMapNameAndBeginLoad; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00489C80, &OpenSHC::Commands::CommandLoadMapHeader) @@ -387,8 +387,8 @@ namespace Commands_Func { SendResyncPlayerData; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0048A510, &OpenSHC::Commands::SendResyncUnknown) - SendResyncUnknown; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0048A510, &OpenSHC::Commands::commandSendResyncGlobals) + commandSendResyncGlobals; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0048A710, &OpenSHC::Commands::SendResyncEntity) @@ -418,8 +418,8 @@ namespace Commands_Func { CommandSwitchTeams; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0048B170, &OpenSHC::Commands::SyncRelatedSomething) - SyncRelatedSomething; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0048B170, &OpenSHC::Commands::commandSyncStatusExchange) + commandSyncStatusExchange; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0048B280, &OpenSHC::Commands::SendQuitGameQuestion) diff --git a/src/OpenSHC/Commands.hpp b/src/OpenSHC/Commands.hpp index 80711b65..a83c29f2 100644 --- a/src/OpenSHC/Commands.hpp +++ b/src/OpenSHC/Commands.hpp @@ -51,7 +51,7 @@ namespace Commands { void __stdcall ClickPlaceRockOrTree(); - void __stdcall ClickRaiseLand2Unk(); + void __stdcall commandRaiseLand(); void __stdcall ClickPlaceBuilding(); @@ -69,7 +69,7 @@ namespace Commands { void __stdcall ClickGiveUnitsInstruction(); - void __stdcall ClickSomethingWithDrawBridgeUnk(); + void __stdcall commandToggleDrawbridge(); void __stdcall ClickBuyOrSell(); @@ -101,7 +101,7 @@ namespace Commands { void __stdcall ResyncStatus2(); - void __stdcall ResetSyncStatusUnk(); + void __stdcall resetSyncStatus(); void __stdcall ClickRepairTower(); @@ -111,9 +111,9 @@ namespace Commands { void __stdcall ClickExtendRallyPoint(); - void __stdcall SiegeEngineRelated(); + void __stdcall marshalSiegeEngineCommand(); - void __stdcall TribeRelated1(); + void __stdcall marshalTribeUnitCommand(); void __stdcall ReleaseDogs(); @@ -123,19 +123,19 @@ namespace Commands { void __stdcall DeselectUnit(); - void __stdcall SetField45To100(); + void __stdcall marshalSetMapTimeFlagCommand(); void __stdcall ResyncZone(); - void __stdcall KickPlayerUnk(); + void __stdcall commandKickPlayer(); void __stdcall CommandSelectionReplenishAmmo(); - void __stdcall BroadCastSyncRelatedStatus(); + void __stdcall commandBroadcastSyncStatus(); void __stdcall VoteKick_K_D_B_G_J(); - void __stdcall SyncPacketSizeAnnouncement(); + void __stdcall marshalNetworkSyncCommand(); void __stdcall ShareAnnouncementWithHost(); @@ -143,11 +143,11 @@ namespace Commands { void __stdcall SomePlayerNameUpdateCommand(); - void __stdcall FlagsAndBraziersCommandUnk(); + void __stdcall commandFlagsBraziers(); - void __stdcall NotifyLaggingPlayer(); + void __stdcall marshalLaggingPlayerCommand(); - void __stdcall SomeKindOfMultiplayerPingUnk(); + void __stdcall commandReportLaggingPlayerPing(); void __stdcall ShareGameStatePartialHashes(); @@ -159,7 +159,7 @@ namespace Commands { void __stdcall StartReceivingMapFile(); - void __stdcall MapSendingRelated(); + void __stdcall commandMapFileTransferControl(); void __stdcall HostAnnounceRoundTable(); @@ -183,7 +183,7 @@ namespace Commands { void __stdcall AutoSaveTriggered(); - void __stdcall SetPlayerNameUnk(); + void __stdcall commandSyncMapNameAndBeginLoad(); void __stdcall CommandLoadMapHeader(); @@ -199,7 +199,7 @@ namespace Commands { void __stdcall SendResyncPlayerData(); - void __stdcall SendResyncUnknown(); + void __stdcall commandSendResyncGlobals(); void __stdcall SendResyncEntity(); @@ -215,7 +215,7 @@ namespace Commands { void __stdcall CommandSwitchTeams(); - void __stdcall SyncRelatedSomething(); + void __stdcall commandSyncStatusExchange(); void __stdcall SendQuitGameQuestion(); diff --git a/src/OpenSHC/Game/GameCore.func.hpp b/src/OpenSHC/Game/GameCore.func.hpp index 54e34131..685e9627 100644 --- a/src/OpenSHC/Game/GameCore.func.hpp +++ b/src/OpenSHC/Game/GameCore.func.hpp @@ -3,29 +3,29 @@ */ #include "OpenSHC/Game/GameCore.hpp" -#include "OpenSHC/UI/Enums/MenuViewType.hpp" +#include "OpenSHC/UI/Enums/MenuViewTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Game { namespace GameCore_Func { - using OpenSHC::UI::Enums::MenuViewType; + using OpenSHC::UI::Enums::MenuViewTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER( - void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046B2F0, &GameCore::setViewOnExitUnk) - setViewOnExitUnk; + void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046B2F0, &GameCore::setMenuViewOnExit) + setMenuViewOnExit; MACRO_FUNCTION_RESOLVER( void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046B300, &GameCore::setTabToSwitchTo) setTabToSwitchTo; MACRO_FUNCTION_RESOLVER( - void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046B320, &GameCore::swapBuildMenuTab) - swapBuildMenuTab; + void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046B320, &GameCore::toggleSiegeTentBuildTab) + toggleSiegeTentBuildTab; - MACRO_FUNCTION_RESOLVER( - void (GameCore::*)(MenuViewType, int), false, Address::SHC_3BB0A8C1_0x0046B340, &GameCore::switchToMenuView) + MACRO_FUNCTION_RESOLVER(void (GameCore::*)(MenuViewTypeInt, int), false, Address::SHC_3BB0A8C1_0x0046B340, + &GameCore::switchToMenuView) switchToMenuView; MACRO_FUNCTION_RESOLVER( @@ -33,8 +33,8 @@ namespace Game { processMenuViewSwitch; MACRO_FUNCTION_RESOLVER( - void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046BB20, &GameCore::viewportAndScrollingRelated) - viewportAndScrollingRelated; + void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046BB20, &GameCore::updateViewportScrollCountdown) + updateViewportScrollCountdown; MACRO_FUNCTION_RESOLVER( BOOLEnum (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046BB60, &GameCore::getAreWeInAInGameMenu) @@ -49,16 +49,16 @@ namespace Game { removeJesterAndLadyUnitsInCertainMissions; MACRO_FUNCTION_RESOLVER( - void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046BC90, &GameCore::removeLadyAndJester) - removeLadyAndJester; + void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046BC90, &GameCore::removePlayerLadyAndJester) + removePlayerLadyAndJester; MACRO_FUNCTION_RESOLVER( BOOLEnum (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x0046BD20, &GameCore::isGameHaltingMenuOpen) isGameHaltingMenuOpen; MACRO_FUNCTION_RESOLVER( - void (GameCore::*)(int), false, Address::SHC_3BB0A8C1_0x0046BD50, &GameCore::setStartDateUnk) - setStartDateUnk; + void (GameCore::*)(int), false, Address::SHC_3BB0A8C1_0x0046BD50, &GameCore::computeTrailMissionStartDates) + computeTrailMissionStartDates; MACRO_FUNCTION_RESOLVER( void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x004718F0, &GameCore::incrementMissionProgress) @@ -69,8 +69,8 @@ namespace Game { switchToScenarioDescriptionMenuView; MACRO_FUNCTION_RESOLVER( - void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x00471A00, &GameCore::incrementMission) - incrementMission; + void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x00471A00, &GameCore::advanceToNextMission) + advanceToNextMission; MACRO_FUNCTION_RESOLVER( void (GameCore::*)(), false, Address::SHC_3BB0A8C1_0x00471AA0, &GameCore::hideOrUnhideUI) diff --git a/src/OpenSHC/Game/GameCore.hpp b/src/OpenSHC/Game/GameCore.hpp index c71a81c2..9d6fb3b4 100644 --- a/src/OpenSHC/Game/GameCore.hpp +++ b/src/OpenSHC/Game/GameCore.hpp @@ -15,7 +15,6 @@ #include "OpenSHC/Rendering/Enums/DirectDrawStatusInt.hpp" #include "OpenSHC/UI/ActiveMenuTab.hpp" #include "OpenSHC/UI/Enums/BuildMenuTabTypeShort.hpp" -#include "OpenSHC/UI/Enums/MenuViewType.hpp" #include "OpenSHC/UI/Enums/MenuViewTypeInt.hpp" #include "OpenSHC/UI/MenuItemActionHandler.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -33,7 +32,6 @@ namespace Game { using OpenSHC::UI::ActiveMenuTab; using OpenSHC::UI::MenuItemActionHandler; using OpenSHC::UI::Enums::BuildMenuTabTypeShort; - using OpenSHC::UI::Enums::MenuViewType; using OpenSHC::UI::Enums::MenuViewTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; @@ -54,8 +52,8 @@ namespace Game { ActiveMenuTab buildmenuMenuTabToSwitchTo; // 0x00000024 length: 4 dword buildingandstatusmenuMenuTabToSwitchTo; // 0x00000028 length: 4 dword landscapingmenuMenuTabToSwitchTo; // 0x0000002C length: 4 - dword field12_0x30; // 0x00000030 length: 4 - ActiveMenuTab secondaryActiveMenuTabToSwitchTo; // 0x00000034 length: 4 + dword dwPreviousMenuTabType; // 0x00000030 length: 4 + ActiveMenuTab unknownActiveMenuTabToSwitchTo; // 0x00000034 length: 4 BuildMenuTabTypeShort tabTypeSiegeSubset; // 0x00000038 length: 4 dword historicCampaignNumber; // 0x0000003C length: 4 int missionNumber1to20; // 0x00000040 length: 4 @@ -71,7 +69,7 @@ namespace Game { GameMode2Int gameMode_2; // 0x00000068 length: 4 int field27_0x6c; // 0x0000006C length: 4 dword specialMultiplayerState; // 0x00000070 length: 4 - dword field29_0x74; // 0x00000074 length: 4 + dword dwMissionSelectedFlag; // 0x00000074 length: 4 int mapU4Int1; // 0x00000078 length: 4 int mapU4Int1_2; // 0x0000007C length: 4 dword field32_0x80; // 0x00000080 length: 4 @@ -82,7 +80,7 @@ namespace Game { int battleLevel2; // 0x00000094 length: 4 dword mapTimeInTicks; // 0x00000098 length: 4 dword section1127; // 0x0000009C length: 4 - dword field40_0xa0; // 0x000000A0 length: 4 + dword dwSavedMapLoadTime; // 0x000000A0 length: 4 BOOLEnum currentlyInGameUnk_0xa4; // 0x000000A4 length: 4 dword gameSpeedMultiplicator; // 0x000000A8 length: 4 dword performedGameTicksThisLoop; // 0x000000AC length: 4 @@ -106,7 +104,7 @@ namespace Game { int missionDifficulty_0; // 0x000000F4 length: 4 dword field62_0xf8; // 0x000000F8 length: 4 BOOLEnum solitaryAllBuildingsAreFree; // 0x000000FC length: 4 - int field64_0x100; // 0x00000100 length: 4 + int nMarketMenuSelection; // 0x00000100 length: 4 dword field65_0x104; // 0x00000104 length: 4 dword field66_0x108; // 0x00000108 length: 4 dword unknownAlwaysZero; // 0x0000010C length: 4 @@ -122,13 +120,13 @@ namespace Game { int scribeAnimationFrame2; // 0x00000138 length: 4 int taxestimeUnk; // 0x0000013C length: 4 byte unused_0x140[4]; // 0x00000140 length: 4 - int field80_0x144; // 0x00000144 length: 4 - int field81_0x148; // 0x00000148 length: 4 + int nPopularityMenuPage; // 0x00000144 length: 4 + int nPopularityMenuMode; // 0x00000148 length: 4 dword isBinkVideoPlaying; // 0x0000014C length: 4 dword section1095; // 0x00000150 length: 4 dword newPlayerID; // 0x00000154 length: 4 dword hasMenuRenderedUnk; // 0x00000158 length: 4 - dword field86_0x15c; // 0x0000015C length: 4 + dword dwPeasantMenuFlag; // 0x0000015C length: 4 int xbowProducible_logic; // 0x00000160 length: 4 int pikeProducible_logic; // 0x00000164 length: 4 int swordProducible_logic; // 0x00000168 length: 4 @@ -201,7 +199,7 @@ namespace Game { int selectedLordTypeUnk; // 0x00002314 length: 4 int selectedLordType_2Unk; // 0x00002318 length: 4 int selectedLordTypes[9]; // 0x0000231C length: 36 - dword field159_0x2340; // 0x00002340 length: 4 + dword dwSkirmishSetupValue; // 0x00002340 length: 4 dword gamePausedLogical; // 0x00002344 length: 4 int viewportFocusBeforeBarracksHotkey; // 0x00002348 length: 4 int viewportFocusBeforeMercenaryHotkey; // 0x0000234C length: 4 @@ -233,17 +231,17 @@ namespace Game { // Constructor GameCore* Constructor_GameCore(); - void setViewOnExitUnk(); + void setMenuViewOnExit(); void setTabToSwitchTo(); - void swapBuildMenuTab(); + void toggleSiegeTentBuildTab(); - void switchToMenuView(MenuViewType menuID, int delay); + void switchToMenuView(MenuViewTypeInt menuID, int delay); void processMenuViewSwitch(); - void viewportAndScrollingRelated(); + void updateViewportScrollCountdown(); BOOLEnum getAreWeInAInGameMenu(); @@ -251,17 +249,17 @@ namespace Game { void removeJesterAndLadyUnitsInCertainMissions(); - void removeLadyAndJester(); + void removePlayerLadyAndJester(); BOOLEnum isGameHaltingMenuOpen(); - void setStartDateUnk(int param_1); + void computeTrailMissionStartDates(int param_1); void incrementMissionProgress(); void switchToScenarioDescriptionMenuView(); - void incrementMission(); + void advanceToNextMission(); void hideOrUnhideUI(); }; diff --git a/src/OpenSHC/Game/GameStateStructures.func.hpp b/src/OpenSHC/Game/GameStateStructures.func.hpp index 08460b76..abf008d7 100644 --- a/src/OpenSHC/Game/GameStateStructures.func.hpp +++ b/src/OpenSHC/Game/GameStateStructures.func.hpp @@ -2,18 +2,18 @@ path: 'OpenSHC/Game/GameStateStructures.func.hpp' */ -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/Game/GameStateStructures.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Game { namespace GameStateStructures_Func { - using OpenSHC::Commands::CommandBuildingType; - using OpenSHC::Game::Resources::ResourceType; - using OpenSHC::IO::PackagedFileMagicNum; + using OpenSHC::Commands::CommandBuildingTypeInt; + using OpenSHC::Game::Resources::ResourceTypeInt; + using OpenSHC::IO::PackagedFileMagicNumInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(bool (GameStateStructures::*)(int, int), false, Address::SHC_3BB0A8C1_0x00401090, @@ -25,8 +25,8 @@ namespace Game { clearMapAndTimeAndPlayerData; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00455D90, - &GameStateStructures::clearCurrentResourcesAndStrongWalls) - clearCurrentResourcesAndStrongWalls; + &GameStateStructures::resetAllPlayerResources) + resetAllPlayerResources; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00455E10, &GameStateStructures::resetVariousCountsAndStatisticsAndStartGoodsAndResources) @@ -57,8 +57,8 @@ namespace Game { setMonthAndYear; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x004567A0, - &GameStateStructures::clearSignpostData) - clearSignpostData; + &GameStateStructures::resetSignpostState) + resetSignpostState; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00456810, &GameStateStructures::computeSignPostEntryData) @@ -77,12 +77,12 @@ namespace Game { countActiveSignposts; MACRO_FUNCTION_RESOLVER(BOOLEnum (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x004569E0, - &GameStateStructures::hasAnySignpost) - hasAnySignpost; + &GameStateStructures::hasAnyActiveSignpost) + hasAnyActiveSignpost; MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00456AD0, - &GameStateStructures::pickRandomAccessibleSignpostEntry) - pickRandomAccessibleSignpostEntry; + &GameStateStructures::pickRandomSignpostInLargeZone) + pickRandomSignpostInLargeZone; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00456C50, &GameStateStructures::clearDataAndSignpostDataIfNecessary) @@ -93,12 +93,12 @@ namespace Game { addSignpostToBuildingEntryData; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(uint, int, int), false, Address::SHC_3BB0A8C1_0x00456FD0, - &GameStateStructures::computeBuildingCategoryEntryPoint) - computeBuildingCategoryEntryPoint; + &GameStateStructures::setPlayerKeyBuildingRef) + setPlayerKeyBuildingRef; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(int, int), false, Address::SHC_3BB0A8C1_0x004572A0, - &GameStateStructures::validateBuildingCategoryReference) - validateBuildingCategoryReference; + &GameStateStructures::validatePlayerKeyBuildingRef) + validatePlayerKeyBuildingRef; MACRO_FUNCTION_RESOLVER(BOOLEnum (GameStateStructures::*)(int), false, Address::SHC_3BB0A8C1_0x004574C0, &GameStateStructures::checkKeepEnclosed) @@ -117,12 +117,12 @@ namespace Game { unitsCanMoveFromKeepOfPlayerToAnotherArea; MACRO_FUNCTION_RESOLVER(BOOLEnum (GameStateStructures::*)(int, int, int), false, - Address::SHC_3BB0A8C1_0x00457870, &GameStateStructures::canKeepReachSignpostZone) - canKeepReachSignpostZone; + Address::SHC_3BB0A8C1_0x00457870, &GameStateStructures::canReachSignpostFromKeep) + canReachSignpostFromKeep; MACRO_FUNCTION_RESOLVER(bool (GameStateStructures::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004578F0, - &GameStateStructures::canKeepReachSignpostZoneViaPathfinder) - canKeepReachSignpostZoneViaPathfinder; + &GameStateStructures::canReachSignpostFromKeepWithClimb) + canReachSignpostFromKeepWithClimb; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(uint), false, Address::SHC_3BB0A8C1_0x00457960, &GameStateStructures::updatePrimaryBuildingPlayerDataReferences) @@ -140,7 +140,7 @@ namespace Game { &GameStateStructures::destroyPlayerCompletely) destroyPlayerCompletely; - MACRO_FUNCTION_RESOLVER(undefined4 (GameStateStructures::*)(CommandBuildingType, int, BOOLEnum), false, + MACRO_FUNCTION_RESOLVER(undefined4 (GameStateStructures::*)(CommandBuildingTypeInt, int, BOOLEnum), false, Address::SHC_3BB0A8C1_0x00457B80, &GameStateStructures::checkRequiredResourcesForBuildingOrPlanToBuy) checkRequiredResourcesForBuildingOrPlanToBuy; @@ -177,18 +177,18 @@ namespace Game { moveUnitAroundCampfire; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x004586D0, - &GameStateStructures::activateTraderState) - activateTraderState; + &GameStateStructures::enableTraderVisits) + enableTraderVisits; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x004586F0, - &GameStateStructures::resetTraderState) - resetTraderState; + &GameStateStructures::disableTraderVisits) + disableTraderVisits; MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(int), false, Address::SHC_3BB0A8C1_0x00458700, &GameStateStructures::findNextPlayerWithMarketplace) findNextPlayerWithMarketplace; - MACRO_FUNCTION_RESOLVER(BOOLEnum (GameStateStructures::*)(ResourceType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (GameStateStructures::*)(ResourceTypeInt), false, Address::SHC_3BB0A8C1_0x00458740, &GameStateStructures::isResourceTypeTradeable) isResourceTypeTradeable; @@ -196,11 +196,11 @@ namespace Game { &GameStateStructures::anyGoodsAreAllowedForSale) anyGoodsAreAllowedForSale; - MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(ResourceType), false, Address::SHC_3BB0A8C1_0x004587A0, + MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(ResourceTypeInt), false, Address::SHC_3BB0A8C1_0x004587A0, &GameStateStructures::getNextGoodFilteringUnallowed) getNextGoodFilteringUnallowed; - MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(ResourceType), false, Address::SHC_3BB0A8C1_0x00458820, + MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(ResourceTypeInt), false, Address::SHC_3BB0A8C1_0x00458820, &GameStateStructures::getPreviousGoodsFilteringUnallowed) getPreviousGoodsFilteringUnallowed; @@ -213,10 +213,10 @@ namespace Game { getBuyPrice; MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(int), false, Address::SHC_3BB0A8C1_0x004588D0, - &GameStateStructures::getBuyPriceForOneUnit) - getBuyPriceForOneUnit; + &GameStateStructures::getResourceSellPrice) + getResourceSellPrice; - MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(ResourceType), false, Address::SHC_3BB0A8C1_0x004588F0, + MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(ResourceTypeInt), false, Address::SHC_3BB0A8C1_0x004588F0, &GameStateStructures::getSalePriceOfGood) getSalePriceOfGood; @@ -224,7 +224,7 @@ namespace Game { &GameStateStructures::getSellPrice) getSellPrice; - MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(int, int), false, Address::SHC_3BB0A8C1_0x00458940, + MACRO_FUNCTION_RESOLVER(undefined (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00458940, &GameStateStructures::getSellResourceAmount) getSellResourceAmount; @@ -236,7 +236,7 @@ namespace Game { &GameStateStructures::processPeasantsForBuildings) processPeasantsForBuildings; - MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00458A70, + MACRO_FUNCTION_RESOLVER(undefined (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00458A70, &GameStateStructures::updateFoodTypesInStockForAllPlayers) updateFoodTypesInStockForAllPlayers; @@ -305,20 +305,20 @@ namespace Game { findAITeamMate; MACRO_FUNCTION_RESOLVER(uint (GameStateStructures::*)(int), false, Address::SHC_3BB0A8C1_0x00459740, - &GameStateStructures::TeamToBitFlagsUnk) - TeamToBitFlagsUnk; + &GameStateStructures::getUnitTeammatesBitmask) + getUnitTeammatesBitmask; MACRO_FUNCTION_RESOLVER(BOOLEnum (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x004597D0, - &GameStateStructures::areActivePlayersMostlySameTeam) - areActivePlayersMostlySameTeam; + &GameStateStructures::isOnlyOneTeamRemaining) + isOnlyOneTeamRemaining; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x004598B0, &GameStateStructures::recountStablesAndHorses) recountStablesAndHorses; MACRO_FUNCTION_RESOLVER(int (GameStateStructures::*)(int, int), false, Address::SHC_3BB0A8C1_0x00459930, - &GameStateStructures::linkageBetweenHorseUnitAndStableUnk) - linkageBetweenHorseUnitAndStableUnk; + &GameStateStructures::assignHorseUnitToStable) + assignHorseUnitToStable; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(int), false, Address::SHC_3BB0A8C1_0x00459A20, &GameStateStructures::spawnPoisonCloudsAroundBuilding) @@ -329,8 +329,8 @@ namespace Game { playSFXNoSpaceInTheStockPile; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(int), false, Address::SHC_3BB0A8C1_0x00459BB0, - &GameStateStructures::clearTribeHotKey) - clearTribeHotKey; + &GameStateStructures::clearUnitSelectionHotkeyGroup) + clearUnitSelectionHotkeyGroup; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00459BE0, &GameStateStructures::fillWith0xFF) @@ -340,10 +340,6 @@ namespace Game { &GameStateStructures::assignSelectionToKey) assignSelectionToKey; - MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x00459D80, - &GameStateStructures::computeArmySizeLimit) - computeArmySizeLimit; - MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x00459E40, &GameStateStructures::HandleActivateTacticalPowers) HandleActivateTacticalPowers; @@ -365,20 +361,20 @@ namespace Game { selectARandomBuildingOwnedByPlayer; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x0045AF00, - &GameStateStructures::resetSomethingBuildingRelatedForAllPlayers) - resetSomethingBuildingRelatedForAllPlayers; + &GameStateStructures::revalidateAllPlayerKeyBuildings) + revalidateAllPlayerKeyBuildings; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x0045AF30, &GameStateStructures::computePopulationStatistics) computePopulationStatistics; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x0045B1C0, - &GameStateStructures::clearEnemyRelatedStructures) - clearEnemyRelatedStructures; + &GameStateStructures::resetGameStateForNewMap) + resetGameStateForNewMap; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(), false, Address::SHC_3BB0A8C1_0x0045B3E0, - &GameStateStructures::initializeGameStateAfterMapLoad) - initializeGameStateAfterMapLoad; + &GameStateStructures::initGameStateAfterMapLoad) + initGameStateAfterMapLoad; MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(int), false, Address::SHC_3BB0A8C1_0x0045B460, &GameStateStructures::switchPlayerOwnership) @@ -404,7 +400,7 @@ namespace Game { &GameStateStructures::spawnPoisonCloudsAtRandomStorageOrArmyBuilding) spawnPoisonCloudsAtRandomStorageOrArmyBuilding; - MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, + MACRO_FUNCTION_RESOLVER(void (GameStateStructures::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, Address::SHC_3BB0A8C1_0x0045C1C0, &GameStateStructures::migrateGameStateForMapVersion) migrateGameStateForMapVersion; diff --git a/src/OpenSHC/Game/GameStateStructures.hpp b/src/OpenSHC/Game/GameStateStructures.hpp index d9efca68..93bb21aa 100644 --- a/src/OpenSHC/Game/GameStateStructures.hpp +++ b/src/OpenSHC/Game/GameStateStructures.hpp @@ -8,23 +8,23 @@ #pragma once -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/Game/Player/PlayerData.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" #include "OpenSHC/Game/State/MapAndTimeState.hpp" #include "OpenSHC/Game/State/UnitSelectionHotKeyEntry.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Game { - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::Commands::CommandBuildingTypeInt; using OpenSHC::Game::Player::PlayerData; - using OpenSHC::Game::Resources::ResourceType; + using OpenSHC::Game::Resources::ResourceTypeInt; using OpenSHC::Game::State::MapAndTimeState; using OpenSHC::Game::State::UnitSelectionHotKeyEntry; - using OpenSHC::IO::PackagedFileMagicNum; + using OpenSHC::IO::PackagedFileMagicNumInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -51,7 +51,7 @@ namespace Game { void clearMapAndTimeAndPlayerData(); - void clearCurrentResourcesAndStrongWalls(); + void resetAllPlayerResources(); void resetVariousCountsAndStatisticsAndStartGoodsAndResources(); @@ -67,7 +67,7 @@ namespace Game { void setMonthAndYear(int month, int year); - void clearSignpostData(); + void resetSignpostState(); void computeSignPostEntryData(); @@ -77,17 +77,17 @@ namespace Game { int countActiveSignposts(); - BOOLEnum hasAnySignpost(); + BOOLEnum hasAnyActiveSignpost(); - int pickRandomAccessibleSignpostEntry(); + int pickRandomSignpostInLargeZone(); void clearDataAndSignpostDataIfNecessary(); void addSignpostToBuildingEntryData(int buildingID); - void computeBuildingCategoryEntryPoint(uint param_1, int param_2, int param_3); + void setPlayerKeyBuildingRef(uint param_1, int param_2, int param_3); - void validateBuildingCategoryReference(int playerID, int param_2); + void validatePlayerKeyBuildingRef(int playerID, int param_2); BOOLEnum checkKeepEnclosed(int playerID); @@ -97,9 +97,9 @@ namespace Game { BOOLEnum unitsCanMoveFromKeepOfPlayerToAnotherArea(int playerID); - BOOLEnum canKeepReachSignpostZone(int param_1, int param_2, int param_3); + BOOLEnum canReachSignpostFromKeep(int param_1, int param_2, int param_3); - bool canKeepReachSignpostZoneViaPathfinder(int param_1, int param_2, int param_3); + bool canReachSignpostFromKeepWithClimb(int param_1, int param_2, int param_3); void updatePrimaryBuildingPlayerDataReferences(uint buildingID); @@ -110,7 +110,7 @@ namespace Game { void destroyPlayerCompletely(int playerID); undefined4 checkRequiredResourcesForBuildingOrPlanToBuy( - CommandBuildingType commandBuildingType, int playerID, BOOLEnum playResourceLackMsgUnk); + CommandBuildingTypeInt commandBuildingType, int playerID, BOOLEnum playResourceLackMsgUnk); int getWallTilesThatCanBeBuilt(int playerID, int wallMaterial); @@ -128,37 +128,37 @@ namespace Game { int moveUnitAroundCampfire(int unitID, int availablePeasants); - void activateTraderState(); + void enableTraderVisits(); - void resetTraderState(); + void disableTraderVisits(); int findNextPlayerWithMarketplace(int param_1); - BOOLEnum isResourceTypeTradeable(ResourceType resourceType); + BOOLEnum isResourceTypeTradeable(ResourceTypeInt resourceType); BOOLEnum anyGoodsAreAllowedForSale(); - int getNextGoodFilteringUnallowed(ResourceType param_1); + int getNextGoodFilteringUnallowed(ResourceTypeInt param_1); - int getPreviousGoodsFilteringUnallowed(ResourceType param_1); + int getPreviousGoodsFilteringUnallowed(ResourceTypeInt param_1); int getBatchBuyPrice(undefined4 playerID, int resourceType); int getBuyPrice(undefined4 playerID, int resourceType, int amount); - int getBuyPriceForOneUnit(int param_1); + int getResourceSellPrice(int param_1); - int getSalePriceOfGood(ResourceType param_1); + int getSalePriceOfGood(ResourceTypeInt param_1); int getSellPrice(int playerID, int resourceType, int amount); - int getSellResourceAmount(int playerID, int resourceType); + undefined getSellResourceAmount(); void setVariousGameStateToInitialValues(); void processPeasantsForBuildings(); - void updateFoodTypesInStockForAllPlayers(); + undefined updateFoodTypesInStockForAllPlayers(); void processFoodConsumption(); @@ -192,26 +192,24 @@ namespace Game { int findAITeamMate(int playerID1); - uint TeamToBitFlagsUnk(int unitID); + uint getUnitTeammatesBitmask(int unitID); - BOOLEnum areActivePlayersMostlySameTeam(); + BOOLEnum isOnlyOneTeamRemaining(); void recountStablesAndHorses(); - int linkageBetweenHorseUnitAndStableUnk(int playerID, int unitID); + int assignHorseUnitToStable(int playerID, int unitID); void spawnPoisonCloudsAroundBuilding(int buildingID); void playSFXNoSpaceInTheStockPile(int playerID); - void clearTribeHotKey(int hotkeyID); + void clearUnitSelectionHotkeyGroup(int param_1); void fillWith0xFF(); void assignSelectionToKey(int number, int tribeID); - void computeArmySizeLimit(); - void HandleActivateTacticalPowers(int param_1, int powerType, int param_3); void renderDebugDataCurrentPlayerData(int x, int y, int width, int height); @@ -222,13 +220,13 @@ namespace Game { int selectARandomBuildingOwnedByPlayer(int playerID); - void resetSomethingBuildingRelatedForAllPlayers(); + void revalidateAllPlayerKeyBuildings(); void computePopulationStatistics(); - void clearEnemyRelatedStructures(); + void resetGameStateForNewMap(); - void initializeGameStateAfterMapLoad(); + void initGameStateAfterMapLoad(); void switchPlayerOwnership(int playerID); @@ -243,7 +241,7 @@ namespace Game { void spawnPoisonCloudsAtRandomStorageOrArmyBuilding(int playerID, int count); void migrateGameStateForMapVersion( - PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); void processSingleTimeTick(); diff --git a/src/OpenSHC/Game/MissionAestheticsDefinedData.hpp b/src/OpenSHC/Game/MissionAestheticsDefinedData.hpp index 9710f39c..a54cf826 100644 --- a/src/OpenSHC/Game/MissionAestheticsDefinedData.hpp +++ b/src/OpenSHC/Game/MissionAestheticsDefinedData.hpp @@ -19,22 +19,22 @@ namespace Game { // SIZE: 0x00005504 typedef struct MissionAestheticsDefinedData { - char** field0_0x0; // 0x00000000 length: 4 - char** field1_0x4; // 0x00000004 length: 4 - char** field2_0x8; // 0x00000008 length: 4 - char** field3_0xc; // 0x0000000C length: 4 - char** field4_0x10; // 0x00000010 length: 4 - char** field5_0x14; // 0x00000014 length: 4 - char** field6_0x18; // 0x00000018 length: 4 + char** processSingleplayerEventsCfg_0x0; // 0x00000000 length: 4 + char** processSingleplayerEventsCfg_0x4; // 0x00000004 length: 4 + char** processSingleplayerEventsCfg_0x8; // 0x00000008 length: 4 + char** processSingleplayerEventsCfg_0xc; // 0x0000000C length: 4 + char** processSingleplayerEventsCfg_0x10; // 0x00000010 length: 4 + char** processSingleplayerEventsCfg_0x14; // 0x00000014 length: 4 + char** processSingleplayerEventsCfg_0x18; // 0x00000018 length: 4 char** field7_0x1c; // 0x0000001C length: 4 - char** field8_0x20; // 0x00000020 length: 4 - char** field9_0x24; // 0x00000024 length: 4 - char** field10_0x28; // 0x00000028 length: 4 - char** field11_0x2c; // 0x0000002C length: 4 - char** field12_0x30; // 0x00000030 length: 4 - char** field13_0x34; // 0x00000034 length: 4 - char** field14_0x38; // 0x00000038 length: 4 - char** field15_0x3c; // 0x0000003C length: 4 + char** processSingleplayerEventsCfg_0x20; // 0x00000020 length: 4 + char** processSingleplayerEventsCfg_0x24; // 0x00000024 length: 4 + char** processSingleplayerEventsCfg_0x28; // 0x00000028 length: 4 + char** processSingleplayerEventsCfg_0x2c; // 0x0000002C length: 4 + char** processSingleplayerEventsCfg_0x30; // 0x00000030 length: 4 + char** processSingleplayerEventsCfg_0x34; // 0x00000034 length: 4 + char** processSingleplayerEventsCfg_0x38; // 0x00000038 length: 4 + char** loadMissionMapByNumberCfg_0x3c; // 0x0000003C length: 4 char** field16_0x40; // 0x00000040 length: 4 char** field17_0x44; // 0x00000044 length: 4 char** field18_0x48; // 0x00000048 length: 4 @@ -78,7 +78,7 @@ namespace Game { char** field56_0xe0; // 0x000000E0 length: 4 char** field57_0xe4; // 0x000000E4 length: 4 char** field58_0xe8; // 0x000000E8 length: 4 - char** field59_0xec; // 0x000000EC length: 4 + char** processSingleplayerEventsCfg_0xec; // 0x000000EC length: 4 char** field60_0xf0; // 0x000000F0 length: 4 char** field61_0xf4; // 0x000000F4 length: 4 char** field62_0xf8; // 0x000000F8 length: 4 @@ -94,12 +94,12 @@ namespace Game { char** field72_0x120; // 0x00000120 length: 4 char** field73_0x124; // 0x00000124 length: 4 char** field74_0x128; // 0x00000128 length: 4 - char** field75_0x12c; // 0x0000012C length: 4 + char** playBikVideoFromPlayerCfg_0x12c; // 0x0000012C length: 4 char** field76_0x130; // 0x00000130 length: 4 char** field77_0x134; // 0x00000134 length: 4 char** field78_0x138; // 0x00000138 length: 4 char** field79_0x13c; // 0x0000013C length: 4 - char** field80_0x140; // 0x00000140 length: 4 + char** playMissionAestheticSFXCfg_0x140; // 0x00000140 length: 4 char** field81_0x144; // 0x00000144 length: 4 char** field82_0x148; // 0x00000148 length: 4 char** field83_0x14c; // 0x0000014C length: 4 @@ -111,8 +111,8 @@ namespace Game { char** field89_0x164; // 0x00000164 length: 4 char** field90_0x168; // 0x00000168 length: 4 char** field91_0x16c; // 0x0000016C length: 4 - int field92_0x170[5]; // 0x00000170 length: 20 - char** field93_0x184; // 0x00000184 length: 4 + int newEventCondition_MainCfg_0x170[5]; // 0x00000170 length: 20 + char** playBikVideoFromPlayerCfg_0x184; // 0x00000184 length: 4 char** field94_0x188; // 0x00000188 length: 4 char** field95_0x18c; // 0x0000018C length: 4 char** field96_0x190; // 0x00000190 length: 4 @@ -633,7 +633,7 @@ namespace Game { char** field611_0x99c; // 0x0000099C length: 4 char** field612_0x9a0; // 0x000009A0 length: 4 char** field613_0x9a4; // 0x000009A4 length: 4 - char** field614_0x9a8; // 0x000009A8 length: 4 + char** siegeAttackingForceAndStarCfg_0x9a8; // 0x000009A8 length: 4 char** field615_0x9ac; // 0x000009AC length: 4 char** field616_0x9b0; // 0x000009B0 length: 4 char** field617_0x9b4; // 0x000009B4 length: 4 @@ -680,7 +680,7 @@ namespace Game { int field658_0xa58; // 0x00000A58 length: 4 int field659_0xa5c; // 0x00000A5C length: 4 int field660_0xa60; // 0x00000A60 length: 4 - char** field661_0xa64; // 0x00000A64 length: 4 + char** playBikVideoFromPlayerCfg_0xa64; // 0x00000A64 length: 4 char** field662_0xa68; // 0x00000A68 length: 4 char** field663_0xa6c; // 0x00000A6C length: 4 char** field664_0xa70; // 0x00000A70 length: 4 @@ -1201,7 +1201,7 @@ namespace Game { char** field1179_0x127c; // 0x0000127C length: 4 char** field1180_0x1280; // 0x00001280 length: 4 char** field1181_0x1284; // 0x00001284 length: 4 - char** field1182_0x1288; // 0x00001288 length: 4 + char** siegeAttackingForceAndStarCfg_0x1288; // 0x00001288 length: 4 char** field1183_0x128c; // 0x0000128C length: 4 char** field1184_0x1290; // 0x00001290 length: 4 char** field1185_0x1294; // 0x00001294 length: 4 @@ -1243,31 +1243,31 @@ namespace Game { char** field1221_0x1324; // 0x00001324 length: 4 int field1222_0x1328[7]; // 0x00001328 length: 28 int unknown3[914]; // 0x00001344 length: 3656 - int field1224_0x218c[6]; // 0x0000218C length: 24 - int field1225_0x21a4[4]; // 0x000021A4 length: 16 + int buildingAvailability_ButtoCfg_0x218c[6]; // 0x0000218C length: 24 + int someKindOfMissionCompletioCfg_0x21a4[4]; // 0x000021A4 length: 16 int DAT_DifficultyEventMultipliers[4]; // 0x000021B4 length: 16 - int field1227_0x21c4[40]; // 0x000021C4 length: 160 - int field1228_0x2264[40]; // 0x00002264 length: 160 - int field1229_0x2304[40]; // 0x00002304 length: 160 - int field1230_0x23a4[40]; // 0x000023A4 length: 160 - byte field1231_0x2444[32][100]; // 0x00002444 length: 3200 + int newEventCondition_MainCfg_0x21c4[40]; // 0x000021C4 length: 160 + int newEventCondition_MainCfg_0x2264[40]; // 0x00002264 length: 160 + int newEventCondition_MainCfg_0x2304[40]; // 0x00002304 length: 160 + int newEventCondition_MainCfg_0x23a4[40]; // 0x000023A4 length: 160 + byte newEventCondition_MainCfg_0x2444[32][100]; // 0x00002444 length: 3200 int field1232_0x30c4[25]; // 0x000030C4 length: 100 int field1233_0x3128; // 0x00003128 length: 4 - int field1234_0x312c[174]; // 0x0000312C length: 696 - int field1235_0x33e4[25]; // 0x000033E4 length: 100 - int field1236_0x3448[5]; // 0x00003448 length: 20 - int field1237_0x345c[22]; // 0x0000345C length: 88 - int field1238_0x34b4[40]; // 0x000034B4 length: 160 - int field1239_0x3554[30]; // 0x00003554 length: 120 + int buildingAvailability_ButtoCfg_0x312c[174]; // 0x0000312C length: 696 + int newEventCondition_MainCfg_0x33e4[25]; // 0x000033E4 length: 100 + int editScenario_BaseMenuButtoCfg_0x3448[5]; // 0x00003448 length: 20 + int traderSettingsCfg_0x345c[22]; // 0x0000345C length: 88 + int siegeAttackingForceAndStarCfg_0x34b4[40]; // 0x000034B4 length: 160 + int siegeAttackingForceAndStarCfg_0x3554[30]; // 0x00003554 length: 120 int DAT_InvasionUnitLimits[24]; // 0x000035CC length: 96 int field1241_0x362c[10]; // 0x0000362C length: 40 BuildingNameRelatedStruct DAT_BuildingNameRelatedStructArray[67]; // 0x00003654 length: 2680 int ARRAY_BuildingAvailabilityStructIndexForName[69]; // 0x000040CC length: 276 undefined1 padding_0x41e0[4]; // 0x000041E0 length: 4 - char field1248_0x41e4[46][3][32]; // 0x000041E4 length: 4416 - int field1249_0x5324[40]; // 0x00005324 length: 160 - int field1250_0x53c4[40]; // 0x000053C4 length: 160 - int field1251_0x5464[40]; // 0x00005464 length: 160 + char updateTutorialStateMachineCfg_0x41e4[46][3][32]; // 0x000041E4 length: 4416 + int updateTutorialStateMachineCfg_0x5324[40]; // 0x00005324 length: 160 + int updateTutorialStateMachineCfg_0x53c4[40]; // 0x000053C4 length: 160 + int updateTutorialStateMachineCfg_0x5464[40]; // 0x00005464 length: 160 } MissionAestheticsDefinedData; #pragma pack(pop) diff --git a/src/OpenSHC/Game/MissionDefinedData.hpp b/src/OpenSHC/Game/MissionDefinedData.hpp index 636e51c8..357197e0 100644 --- a/src/OpenSHC/Game/MissionDefinedData.hpp +++ b/src/OpenSHC/Game/MissionDefinedData.hpp @@ -29,8 +29,8 @@ namespace Game { char** field7_0x1c; // 0x0000001C length: 4 char** field8_0x20; // 0x00000020 length: 4 undefined1 padding_0x24[4]; // 0x00000024 length: 4 - CampaignInfoStruct1 field13_0x28; // 0x00000028 length: 88 - int field14_0x80[461]; // 0x00000080 length: 1844 + CampaignInfoStruct1 campaignUnk_PrepareCfg_0x28; // 0x00000028 length: 88 + int campaignUnk_PrepareCfg_0x80[461]; // 0x00000080 length: 1844 char** field15_0x7b4; // 0x000007B4 length: 4 char** field16_0x7b8; // 0x000007B8 length: 4 char** field17_0x7bc; // 0x000007BC length: 4 @@ -39,24 +39,24 @@ namespace Game { char** field20_0x7c8; // 0x000007C8 length: 4 char** field21_0x7cc; // 0x000007CC length: 4 char** field22_0x7d0; // 0x000007D0 length: 4 - int field23_0x7d4[18][2]; // 0x000007D4 length: 144 - char field24_0x864[20][32]; // 0x00000864 length: 640 + int greatestLordScreenCfg_0x7d4[18][2]; // 0x000007D4 length: 144 + char scenarioDescription_DoEverCfg_0x864[20][32]; // 0x00000864 length: 640 int field25_0xae4[5]; // 0x00000AE4 length: 20 - int field26_0xaf8[2]; // 0x00000AF8 length: 8 + int crusadeMissionIntro_DoEverCfg_0xaf8[2]; // 0x00000AF8 length: 8 int field27_0xb00[20]; // 0x00000B00 length: 80 int sortColumn; // 0x00000B50 length: 4 - int field29_0xb54[26]; // 0x00000B54 length: 104 - int field30_0xbbc[50][2]; // 0x00000BBC length: 400 - int field31_0xd4c[30][2]; // 0x00000D4C length: 240 - int field32_0xe3c[30][2]; // 0x00000E3C length: 240 - int field33_0xf2c[50]; // 0x00000F2C length: 200 - int field34_0xff4[50][4]; // 0x00000FF4 length: 800 - int field35_0x1314[22]; // 0x00001314 length: 88 + int scenarioDescription_DoEverCfg_0xb54[26]; // 0x00000B54 length: 104 + int crusadeMap_DoEveryFrameCfg_0xbbc[50][2]; // 0x00000BBC length: 400 + int crusadeMap_DoEveryFrameCfg_0xd4c[30][2]; // 0x00000D4C length: 240 + int crusadeMap_DoEveryFrameCfg_0xe3c[30][2]; // 0x00000E3C length: 240 + int crusadeMap_DoEveryFrameCfg_0xf2c[50]; // 0x00000F2C length: 200 + int crusadeMap_DoEveryFrameCfg_0xff4[50][4]; // 0x00000FF4 length: 800 + int crusadeMap_DoEveryFrameCfg_0x1314[22]; // 0x00001314 length: 88 undefined4 descending; // 0x0000136C length: 4 - int field37_0x1370; // 0x00001370 length: 4 + int tacticalPowerBar_MainCfg_0x1370; // 0x00001370 length: 4 undefined1 padding_0x1374[8]; // 0x00001374 length: 8 - int field46_0x137c[50]; // 0x0000137C length: 200 - char field47_0x1444[20][32]; // 0x00001444 length: 640 + int historyBookEdgeUnkCfg_0x137c[50]; // 0x0000137C length: 200 + char historicMissionIntro_DoEveCfg_0x1444[20][32]; // 0x00001444 length: 640 } MissionDefinedData; #pragma pack(pop) diff --git a/src/OpenSHC/Game/Player/PlayerData.hpp b/src/OpenSHC/Game/Player/PlayerData.hpp index 4755f585..7a20d1ac 100644 --- a/src/OpenSHC/Game/Player/PlayerData.hpp +++ b/src/OpenSHC/Game/Player/PlayerData.hpp @@ -43,14 +43,14 @@ namespace Game { int rationsSetting2; // 0x00000024 length: 4 ResourceTypeInt marketSelectedResourceType; // 0x00000028 length: 4 int storageAlmostFullOrEmptyUnk; // 0x0000002C length: 4 - int field21_0x30; // 0x00000030 length: 4 + int storageNotificationState; // 0x00000030 length: 4 int someCount47; // 0x00000034 length: 4 int someCount45; // 0x00000038 length: 4 int textYOffset; // 0x0000003C length: 4 short field25_0x40; // 0x00000040 length: 2 short field26_0x42; // 0x00000042 length: 2 - int field27_0x44; // 0x00000044 length: 4 - short field28_0x48; // 0x00000048 length: 2 + int lastKeepMenuEventTime; // 0x00000044 length: 4 + short dogCageStatusFlag; // 0x00000048 length: 2 undefined2 someCount32; // 0x0000004A length: 2 undefined2 someCount33; // 0x0000004C length: 2 undefined1 padding_0x4e[2]; // 0x0000004E length: 2 @@ -73,7 +73,7 @@ namespace Game { uint keepBuildingID; // 0x00000094 length: 4 int someKeepRelatedX; // 0x00000098 length: 4 int someKeepRelatedY; // 0x0000009C length: 4 - int field65_0xa0; // 0x000000A0 length: 4 + int nKeyBuildingRefArray; // 0x000000A0 length: 4 int field66_0xa4; // 0x000000A4 length: 4 undefined1 padding_0xa8[20]; // 0x000000A8 length: 20 int firstStockpileRef; // 0x000000BC length: 4 @@ -164,10 +164,10 @@ namespace Game { int armySize; // 0x0000053C length: 4 undefined1 padding_0x540[24]; // 0x00000540 length: 24 XYPairShort campgroundLocationsUnk[6][72]; // 0x00000558 length: 1728 - int field866_0xc18; // 0x00000C18 length: 4 + int barracksParadePosIndex; // 0x00000C18 length: 4 undefined1 padding_0xc1c[4]; // 0x00000C1C length: 4 XYPairShort engineersCampgroundArray[25]; // 0x00000C20 length: 100 - int field872_0xc84; // 0x00000C84 length: 4 + int engineersCampgroundPosIndex; // 0x00000C84 length: 4 undefined1 padding_0xc88[4]; // 0x00000C88 length: 4 undefined4 someCount27; // 0x00000C8C length: 4 XYPairShort buildingRelatedXYArray_1[25]; // 0x00000C90 length: 100 @@ -239,7 +239,7 @@ namespace Game { int populationRelatedCrowdingCountUnk; // 0x00002184 length: 4 int taxesSetting; // 0x00002188 length: 4 int rationsSetting; // 0x0000218C length: 4 - int field979_0x2190; // 0x00002190 length: 4 + int granaryMenuStateFlag; // 0x00002190 length: 4 bool snoozedBuildings[100]; // 0x00002194 length: 100 int lordID; // 0x000021F8 length: 4 int lordUID; // 0x000021FC length: 4 @@ -301,7 +301,7 @@ namespace Game { short someCount59; // 0x000022C2 length: 2 int someCount60; // 0x000022C4 length: 4 int someUnitID01; // 0x000022C8 length: 4 - int field1041_0x22cc; // 0x000022CC length: 4 + int courtUnitUidTracker; // 0x000022CC length: 4 int countInns; // 0x000022D0 length: 4 int lastlastEncounteredEnemyPlayerID; // 0x000022D4 length: 4 undefined1 padding_0x22d8[4]; // 0x000022D8 length: 4 @@ -363,10 +363,10 @@ namespace Game { int defWallPatrolRallyTimeHits; // 0x00002B54 length: 4 int field1179_0x2b58; // 0x00002B58 length: 4 int engineerCountRelated; // 0x00002B5C length: 4 - int field1181_0x2b60; // 0x00002B60 length: 4 + int aiSiegeRecruitFlag; // 0x00002B60 length: 4 int closestEnemyDistanceToTheLord; // 0x00002B64 length: 4 undefined1 padding_0x2b68[4]; // 0x00002B68 length: 4 - int field1187_0x2b6c; // 0x00002B6C length: 4 + int pendingUnitCounter_0x2b6c; // 0x00002B6C length: 4 int outerPatrolRallyDelayTracker; // 0x00002B70 length: 4 int aiStrengthState; // 0x00002B74 length: 4 int raidRetargetDelayCounter; // 0x00002B78 length: 4 @@ -407,7 +407,7 @@ namespace Game { int totalAttackTroops; // 0x000030F0 length: 4 AIStrengthTypeInt aiStrengthFeeling; // 0x000030F4 length: 4 AIRecruitUnitChoiceInt aiRecruitUnitChoiceState; // 0x000030F8 length: 4 - int field1250_0x30fc; // 0x000030FC length: 4 + int aiRecruitCounter; // 0x000030FC length: 4 int aiDefUnitChoiceIndex; // 0x00003100 length: 4 int aiRaidUnitChoiceIndex; // 0x00003104 length: 4 int aiAttUnitMainChoiceIndex; // 0x00003108 length: 4 @@ -425,7 +425,7 @@ namespace Game { int requestedAttackTargetUnk; // 0x00003850 length: 4 int unitPatrolRecommandRelatedDelayValue; // 0x00003854 length: 4 int aiCowThrowCounter; // 0x00003858 length: 4 - int field1268_0x385c; // 0x0000385C length: 4 + int aiTaxRationSetting; // 0x0000385C length: 4 int aiResourceBuildingFocusIndicator; // 0x00003860 length: 4 int aivCurrentPauseIndex; // 0x00003864 length: 4 int aivCurrentPause; // 0x00003868 length: 4 @@ -461,7 +461,7 @@ namespace Game { int currentAttackWave; // 0x00003924 length: 4 int countFarms; // 0x00003928 length: 4 int someCountdown01; // 0x0000392C length: 4 - int field1310_0x3930; // 0x00003930 length: 4 + int nAiPlayerStateFlag; // 0x00003930 length: 4 int someXPosition; // 0x00003934 length: 4 int someYPosition; // 0x00003938 length: 4 int totalTroopsType6; // 0x0000393C length: 4 diff --git a/src/OpenSHC/Game/RenderingDefinedData.hpp b/src/OpenSHC/Game/RenderingDefinedData.hpp index 444c3e59..f7dd1584 100644 --- a/src/OpenSHC/Game/RenderingDefinedData.hpp +++ b/src/OpenSHC/Game/RenderingDefinedData.hpp @@ -149,7 +149,7 @@ namespace Game { MenuItem MenuItems_TriggerEventSlider[5]; // 0x0005081C length: 400 MenuIDMenuElementAddressPair DAT_MenuViewIDMenuMapping[51]; // 0x000509AC length: 408 TextMessageBLLookupStruct DAT_TextMessageLookupTable[422]; // 0x00050B44 length: 6752 - int field114_0x525a4[27]; // 0x000525A4 length: 108 + int currentlyDisplayedTextConsCfg_0x525a4[27]; // 0x000525A4 length: 108 uint DAT_ColorTable1[9]; // 0x00052610 length: 36 undefined1 padding_0x52634[100]; // 0x00052634 length: 100 BGR24 DAT_ColorArray[9]; // 0x00052698 length: 36 @@ -172,9 +172,9 @@ namespace Game { undefined1 padding_0x53bac[8]; // 0x00053BAC length: 8 int field451_0x53bb4[24]; // 0x00053BB4 length: 96 int DAT_StartGoldPerFairnessLevel[3][5][2]; // 0x00053C14 length: 120 - int field453_0x53c8c[20][20]; // 0x00053C8C length: 1600 + int skirmishBalanceAndOrIntensCfg_0x53c8c[20][20]; // 0x00053C8C length: 1600 undefined1 padding_0x542cc[440]; // 0x000542CC length: 440 - int field894_0x54484[18][10]; // 0x00054484 length: 720 + int skirmishBalanceAndOrIntensCfg_0x54484[18][10]; // 0x00054484 length: 720 int DAT_BuyPricePerResource[26]; // 0x00054754 length: 104 int DAT_SalesPricePerResource[25]; // 0x000547BC length: 100 int DAT_NoRushTicks[5]; // 0x00054820 length: 20 @@ -200,10 +200,10 @@ namespace Game { int TROOP_VALUE_FIRETHROWER; // 0x000548D0 length: 4 int TROOP_VALUE_S_FBALLISTA; // 0x000548D4 length: 4 int TROOP_VALUE_CATAPULT; // 0x000548D8 length: 4 - int field1003_0x548dc; // 0x000548DC length: 4 - int field1004_0x548e0; // 0x000548E0 length: 4 - int field1005_0x548e4; // 0x000548E4 length: 4 - int field1006_0x548e8; // 0x000548E8 length: 4 + int someSiegeUnitsComputationCfg_0x548dc; // 0x000548DC length: 4 + int someSiegeUnitsComputationCfg_0x548e0; // 0x000548E0 length: 4 + int someSiegeUnitsComputationCfg_0x548e4; // 0x000548E4 length: 4 + int someSiegeUnitsComputationCfg_0x548e8; // 0x000548E8 length: 4 int field1007_0x548ec; // 0x000548EC length: 4 int field1008_0x548f0; // 0x000548F0 length: 4 int field1009_0x548f4; // 0x000548F4 length: 4 @@ -224,10 +224,10 @@ namespace Game { int field1024_0x54930; // 0x00054930 length: 4 int field1025_0x54934; // 0x00054934 length: 4 int field1026_0x54938; // 0x00054938 length: 4 - int field1027_0x5493c[24]; // 0x0005493C length: 96 - int field1028_0x5499c[24]; // 0x0005499C length: 96 - int field1029_0x549fc[24]; // 0x000549FC length: 96 - UnitTypeInt field1030_0x54a5c[28]; // 0x00054A5C length: 112 + int inGameMenu_ProcessScribeAnCfg_0x5493c[24]; // 0x0005493C length: 96 + int inGameMenu_ProcessScribeAnCfg_0x5499c[24]; // 0x0005499C length: 96 + int inGameMenu_ProcessScribeAnCfg_0x549fc[24]; // 0x000549FC length: 96 + UnitTypeInt buildMenu_CurrentlySelecteCfg_0x54a5c[28]; // 0x00054A5C length: 112 char* DAT_ChimpTgxArray[70]; // 0x00054ACC length: 280 char* DAT_ChimpTgxSketchArray[80]; // 0x00054BE4 length: 320 char* DAT_ChimpHelpArray[70]; // 0x00054D24 length: 280 @@ -235,22 +235,22 @@ namespace Game { char* DAT_BuildingHelpArray[108]; // 0x00054F54 length: 432 char* DAT_BuildingBikArray[108]; // 0x00055104 length: 432 char* DAT_BuildingTgxSketchArray[108]; // 0x000552B4 length: 432 - ResourceTypeInt field1038_0x55464[8]; // 0x00055464 length: 32 - int field1039_0x55484[8]; // 0x00055484 length: 32 + ResourceTypeInt statusMenu_ResourcesCfg_0x55464[8]; // 0x00055464 length: 32 + int statusMenu_ResourcesCfg_0x55484[8]; // 0x00055484 length: 32 Position DAT_StockpileIconsPositionNudges[8]; // 0x000554A4 length: 64 - int field1041_0x554e4[8]; // 0x000554E4 length: 32 - int field1042_0x55504[8]; // 0x00055504 length: 32 - Position field1043_0x55524[8]; // 0x00055524 length: 64 + int statusMenu_WeaponsCfg_0x554e4[8]; // 0x000554E4 length: 32 + int statusMenu_WeaponsCfg_0x55504[8]; // 0x00055504 length: 32 + Position statusMenu_WeaponsCfg_0x55524[8]; // 0x00055524 length: 64 int DAT_MarketStonksOrder[20]; // 0x00055564 length: 80 ResourceTypeInt DAT_FoodTypes[8]; // 0x000555B4 length: 32 int DAT_RawResourceTypes[4]; // 0x000555D4 length: 16 - int field1047_0x555e4[8]; // 0x000555E4 length: 32 - Position field1048_0x55604[25]; // 0x00055604 length: 200 - int field1049_0x556cc[7][3]; // 0x000556CC length: 84 - int field1050_0x55720[4]; // 0x00055720 length: 16 + int buildingMenu_Marketplace_WCfg_0x555e4[8]; // 0x000555E4 length: 32 + Position buildingMenu_Marketplace_TCfg_0x55604[25]; // 0x00055604 length: 200 + int statusMenu_PopularityCfg_0x556cc[7][3]; // 0x000556CC length: 84 + int statusMenu_FoodCfg_0x55720[4]; // 0x00055720 length: 16 undefined1 padding_0x55730[68]; // 0x00055730 length: 68 UnitTypeInt DAT_UnitTypeGroups[3][9]; // 0x00055774 length: 108 - int field1120_0x557e0; // 0x000557E0 length: 4 + int buildingMenu_ChapelAndChurCfg_0x557e0; // 0x000557E0 length: 4 } RenderingDefinedData; #pragma pack(pop) diff --git a/src/OpenSHC/Game/Siege/SiegeGameModeRelatedSection.hpp b/src/OpenSHC/Game/Siege/SiegeGameModeRelatedSection.hpp index 84ec8c6f..6a0005e6 100644 --- a/src/OpenSHC/Game/Siege/SiegeGameModeRelatedSection.hpp +++ b/src/OpenSHC/Game/Siege/SiegeGameModeRelatedSection.hpp @@ -16,13 +16,13 @@ namespace Game { // SIZE: 0x0000001C typedef struct SiegeGameModeRelatedSection { - int field0_0x0; // 0x00000000 length: 4 - int field1_0x4; // 0x00000004 length: 4 - int field2_0x8; // 0x00000008 length: 4 - int field3_0xc; // 0x0000000C length: 4 - int field4_0x10; // 0x00000010 length: 4 - int field5_0x14; // 0x00000014 length: 4 - int field6_0x18; // 0x00000018 length: 4 + int siegeConfigValue0; // 0x00000000 length: 4 + int siegeConfigValue1; // 0x00000004 length: 4 + int siegeConfigValue2; // 0x00000008 length: 4 + int siegeConfigValue3; // 0x0000000C length: 4 + int siegeConfigValue4; // 0x00000010 length: 4 + int siegeConfigValue5; // 0x00000014 length: 4 + int siegeStartTroopValue; // 0x00000018 length: 4 } SiegeGameModeRelatedSection; #pragma pack(pop) diff --git a/src/OpenSHC/Game/Skirmish/SkirmishDefinedData.hpp b/src/OpenSHC/Game/Skirmish/SkirmishDefinedData.hpp index 7542610a..409db090 100644 --- a/src/OpenSHC/Game/Skirmish/SkirmishDefinedData.hpp +++ b/src/OpenSHC/Game/Skirmish/SkirmishDefinedData.hpp @@ -41,7 +41,7 @@ namespace Game { char** field6_0xb4; // 0x000000B4 length: 4 char** field7_0xb8; // 0x000000B8 length: 4 char** field8_0xbc; // 0x000000BC length: 4 - char** field9_0xc0; // 0x000000C0 length: 4 + char** addUnitToSmallestBehaviourCfg_0xc0; // 0x000000C0 length: 4 char** field10_0xc4; // 0x000000C4 length: 4 char** field11_0xc8; // 0x000000C8 length: 4 char** field12_0xcc; // 0x000000CC length: 4 @@ -67,9 +67,9 @@ namespace Game { AIVUnitTypeMaxLocationPair AIVUnitTypeMaxLocationPairArray_GroundUnits[6]; // 0x00003C14 length: 48 AIVUnitTypeMaxLocationPair AIVUnitTypeMaxLocationPairArray_PatrolUnits[3]; // 0x00003C44 length: 24 int DAT_TribeTypeID[6]; // 0x00003C5C length: 24 - BuildingTypeInt field35_0x3c74[46]; // 0x00003C74 length: 184 - BuildingTypeInt field36_0x3d2c[46]; // 0x00003D2C length: 184 - BuildingTypeInt field37_0x3de4[46]; // 0x00003DE4 length: 184 + BuildingTypeInt targetableBuildingForPlayeCfg_0x3c74[46]; // 0x00003C74 length: 184 + BuildingTypeInt chooseRandomBuildingIDFromCfg_0x3d2c[46]; // 0x00003D2C length: 184 + BuildingTypeInt chooseRandomBuildingIDFromCfg_0x3de4[46]; // 0x00003DE4 length: 184 int DAT_AttackTribes_AITribeType_MaxTribeCount_Mapping[11][2]; // 0x00003E9C length: 88 int DAT_SiegeEngineCommandBuildingTypes[6]; // 0x00003EF4 length: 24 int DAT_SiegeEngineUnitType[6]; // 0x00003F0C length: 24 diff --git a/src/OpenSHC/Game/State/MapAndTimeState.hpp b/src/OpenSHC/Game/State/MapAndTimeState.hpp index 04ed65a0..478ec8e1 100644 --- a/src/OpenSHC/Game/State/MapAndTimeState.hpp +++ b/src/OpenSHC/Game/State/MapAndTimeState.hpp @@ -77,7 +77,7 @@ namespace Game { int emenyHitArray[9]; // 0x000000CC length: 36 int field43_0xf0; // 0x000000F0 length: 4 int field44_0xf4; // 0x000000F4 length: 4 - int field45_0xf8; // 0x000000F8 length: 4 + int nMapTimeFlag; // 0x000000F8 length: 4 DWORD gameOverTime; // 0x000000FC length: 4 int drunkenManStatus; // 0x00000100 length: 4 undefined1 padding_0x104[148]; // 0x00000104 length: 148 @@ -93,7 +93,7 @@ namespace Game { int yearChanged; // 0x0000033C length: 4 int weekChanged; // 0x00000340 length: 4 int strongWalls2; // 0x00000344 length: 4 - int field601_0x348; // 0x00000348 length: 4 + int nAdvancedOption1InGame; // 0x00000348 length: 4 int counterForUpdatingSeparateAreaTileMaps; // 0x0000034C length: 4 int totalGameTicksUnk; // 0x00000350 length: 4 int treeSpreadCounter; // 0x00000354 length: 4 @@ -107,7 +107,7 @@ namespace Game { undefined1 padding_0x528[312]; // 0x00000528 length: 312 int startGoods[25]; // 0x00000660 length: 100 undefined1 padding_0x6c4[4]; // 0x000006C4 length: 4 - int field1364_0x6c8; // 0x000006C8 length: 4 + int nSiegeInformationArray; // 0x000006C8 length: 4 int field1365_0x6cc; // 0x000006CC length: 4 int field1366_0x6d0; // 0x000006D0 length: 4 int field1367_0x6d4; // 0x000006D4 length: 4 @@ -134,14 +134,14 @@ namespace Game { int traderRelatedCounter2; // 0x00000728 length: 4 int traderRelatedCounter1; // 0x0000072C length: 4 int traderRelated2; // 0x00000730 length: 4 - int field1394_0x734; // 0x00000734 length: 4 + int nTraderUpdateTimer; // 0x00000734 length: 4 undefined1 padding_0x738[72]; // 0x00000738 length: 72 BuySellPair copyOfBuyAndSalesPrice[25]; // 0x00000780 length: 200 BuySellPair buyAndSalesPriceArray[25]; // 0x00000848 length: 200 int unknownResouceFlagArray1[25]; // 0x00000910 length: 100 int unknownResourceFlagArray2[25]; // 0x00000974 length: 100 int isResourceTradeable[25]; // 0x000009D8 length: 100 - int field1472_0xa3c; // 0x00000A3C length: 4 + int nDeerRespawnCounter; // 0x00000A3C length: 4 short deerSpawnLocationsXY[4][2]; // 0x00000A40 length: 16 int field1474_0xa50; // 0x00000A50 length: 4 undefined1 padding_0xa54[800]; // 0x00000A54 length: 800 @@ -163,7 +163,7 @@ namespace Game { short scenarioTaxesSetting; // 0x00000DE6 length: 2 short scenarioGold; // 0x00000DE8 length: 2 short editScenarioExtraOptions; // 0x00000DEA length: 2 - short field2293_0xdec; // 0x00000DEC length: 2 + short nEventTimer; // 0x00000DEC length: 2 short field2294_0xdee; // 0x00000DEE length: 2 short field2295_0xdf0[4][2]; // 0x00000DF0 length: 16 short field2296_0xe00; // 0x00000E00 length: 2 @@ -204,7 +204,7 @@ namespace Game { int field3146_0x26c8; // 0x000026C8 length: 4 int field3147_0x26cc; // 0x000026CC length: 4 int field3148_0x26d0; // 0x000026D0 length: 4 - int field3149_0x26d4; // 0x000026D4 length: 4 + int nSavedGameStateBackup; // 0x000026D4 length: 4 int field3150_0x26d8; // 0x000026D8 length: 4 int field3151_0x26dc; // 0x000026DC length: 4 int field3152_0x26e0; // 0x000026E0 length: 4 @@ -246,28 +246,28 @@ namespace Game { int field3188_0x2770; // 0x00002770 length: 4 int gameEventRelatedCountdown; // 0x00002774 length: 4 int unk_signpostDistance; // 0x00002778 length: 4 - int field3191_0x277c; // 0x0000277C length: 4 + int nSpawnLocationCount; // 0x0000277C length: 4 short rabbitSpawnXY[4][2]; // 0x00002780 length: 16 int field3193_0x2790; // 0x00002790 length: 4 short camelSpawnXY[4][2]; // 0x00002794 length: 16 - int field3195_0x27a4; // 0x000027A4 length: 4 - int field3196_0x27a8; // 0x000027A8 length: 4 - int field3197_0x27ac; // 0x000027AC length: 4 + int lordActionCounterA_0x27a4; // 0x000027A4 length: 4 + int singleplayerEventFlag_0x27a8; // 0x000027A8 length: 4 + int lordActionCounterB_0x27ac; // 0x000027AC length: 4 int somePlayerID; // 0x000027B0 length: 4 short playerIsAlive[9]; // 0x000027B4 length: 18 short field3200_0x27c6; // 0x000027C6 length: 2 - int field3201_0x27c8; // 0x000027C8 length: 4 + int nTreeFireCounter; // 0x000027C8 length: 4 int deerCount; // 0x000027CC length: 4 int armySizeLimit; // 0x000027D0 length: 4 - short field3204_0x27d4; // 0x000027D4 length: 2 - short field3205_0x27d6; // 0x000027D6 length: 2 + short victoryDefeatFlag_0x27d4; // 0x000027D4 length: 2 + short victoryDefeatBitflags_0x27d6; // 0x000027D6 length: 2 short yearCopy; // 0x000027D8 length: 2 short monthCopy; // 0x000027DA length: 2 - short field3208_0x27dc; // 0x000027DC length: 2 + short victoryDefeatFlag2_0x27dc; // 0x000027DC length: 2 short field3209_0x27de; // 0x000027DE length: 2 int noDogs; // 0x000027E0 length: 4 - int field3211_0x27e4; // 0x000027E4 length: 4 - int field3212_0x27e8; // 0x000027E8 length: 4 + int nAdvancedOption2InGame; // 0x000027E4 length: 4 + int nAdvancedOption3InGame; // 0x000027E8 length: 4 int noCowThrowing; // 0x000027EC length: 4 int totalNoRushTicks; // 0x000027F0 length: 4 int noRushTicksLeftUnk; // 0x000027F4 length: 4 diff --git a/src/OpenSHC/Global.func.hpp b/src/OpenSHC/Global.func.hpp index 8785bb27..71b170ea 100644 --- a/src/OpenSHC/Global.func.hpp +++ b/src/OpenSHC/Global.func.hpp @@ -8,16 +8,17 @@ #pragma once -#include "OpenSHC/AI/AIVUnitType.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" +#include "OpenSHC/AI/AIVUnitTypeInt.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" #include "OpenSHC/Global.hpp" -#include "OpenSHC/Map/Buildings/BuildingType.hpp" +#include "OpenSHC/Map/Buildings/BuildingTypeInt.hpp" #include "OpenSHC/Map/Buildings/BuildingTypeShort.hpp" -#include "OpenSHC/Map/Units/EuroRecruitableState.hpp" -#include "OpenSHC/Map/Units/States/UnitState.hpp" -#include "OpenSHC/Rendering/Enums/DirectDrawStatus.hpp" +#include "OpenSHC/Map/Units/EuroRecruitableStateInt.hpp" +#include "OpenSHC/Map/Units/States/UnitStateShort.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" +#include "OpenSHC/Rendering/Enums/DirectDrawStatusInt.hpp" #include "OpenSHC/UI/DisplayElement.hpp" -#include "OpenSHC/UI/Enums/DisplayElementID.hpp" +#include "OpenSHC/UI/Enums/DisplayElementIDInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "WinDef.h" @@ -28,15 +29,16 @@ namespace OpenSHC { namespace Global_Func { - using OpenSHC::AI::AIVUnitType; - using OpenSHC::Game::Resources::ResourceType; - using OpenSHC::Map::Buildings::BuildingType; + using OpenSHC::AI::AIVUnitTypeInt; + using OpenSHC::Game::Resources::ResourceTypeInt; + using OpenSHC::Map::Buildings::BuildingTypeInt; using OpenSHC::Map::Buildings::BuildingTypeShort; - using OpenSHC::Map::Units::EuroRecruitableState; - using OpenSHC::Map::Units::States::UnitState; - using OpenSHC::Rendering::Enums::DirectDrawStatus; + using OpenSHC::Map::Units::EuroRecruitableStateInt; + using OpenSHC::Map::Units::UnitTypeInt; + using OpenSHC::Map::Units::States::UnitStateShort; + using OpenSHC::Rendering::Enums::DirectDrawStatusInt; using OpenSHC::UI::DisplayElement; - using OpenSHC::UI::Enums::DisplayElementID; + using OpenSHC::UI::Enums::DisplayElementIDInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER( @@ -249,9 +251,9 @@ namespace Global_Func { MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00418C80, &OpenSHC::Global::UpdateTower1) UpdateTower1; - MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00418F70, - &OpenSHC::Global::UpdateBadBuildingCessPitOrDancingBearUnk) - UpdateBadBuildingCessPitOrDancingBearUnk; + MACRO_FUNCTION_RESOLVER( + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00418F70, &OpenSHC::Global::resetBuildingDisplayAnimation) + resetBuildingDisplayAnimation; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00418F90, &OpenSHC::Global::UpdateBadBuildingBurningStake) @@ -381,8 +383,8 @@ namespace Global_Func { DrawOuterMenuBorder; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00427180, &OpenSHC::Global::MainMenu_Unknown21_Prepare) - MainMenu_Unknown21_Prepare; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00427180, &OpenSHC::Global::MenuView_MainMenuModal21_Prepare) + MenuView_MainMenuModal21_Prepare; MACRO_FUNCTION_RESOLVER(BOOLEnum(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00427210, &OpenSHC::Global::AModalDialogIsActiveButIsNotQuitting) @@ -424,17 +426,21 @@ namespace Global_Func { void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0042C190, &OpenSHC::Global::ClearSiegeInformationArray2) ClearSiegeInformationArray2; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x0042C620, - &OpenSHC::Global::LaunchSinglePlayerGameUnk) - LaunchSinglePlayerGameUnk; + MACRO_FUNCTION_RESOLVER( + void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x0042C620, &OpenSHC::Global::launchSinglePlayerGame) + launchSinglePlayerGame; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0042F010, &OpenSHC::Global::InitializeBasicMap) InitializeBasicMap; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00431990, &OpenSHC::Global::ResetSomeValuesFunctionUnk) - ResetSomeValuesFunctionUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00431990, &OpenSHC::Global::resetGameUIStateOnMenuSwitch) + resetGameUIStateOnMenuSwitch; + + MACRO_FUNCTION_RESOLVER( + undefined(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x004341D9, &OpenSHC::Global::AdjustViewPortAndMore) + AdjustViewPortAndMore; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(undefined4 param_1), false, Address::SHC_3BB0A8C1_0x004380E0, &OpenSHC::Global::PlayPlacementWarning) @@ -463,6 +469,10 @@ namespace Global_Func { int(__cdecl*)(int playerID), false, Address::SHC_3BB0A8C1_0x0044A830, &OpenSHC::Global::ComputePlayerPoints1) ComputePlayerPoints1; + MACRO_FUNCTION_RESOLVER(void(__stdcall*)(UnitTypeInt unitType, int actionID), false, + Address::SHC_3BB0A8C1_0x0044B210, &OpenSHC::Global::PlayUnitSpeech) + PlayUnitSpeech; + MACRO_FUNCTION_RESOLVER( int(__cdecl*)(int playerID), false, Address::SHC_3BB0A8C1_0x0044B680, &OpenSHC::Global::ComputePlayerRanking) ComputePlayerRanking; @@ -488,16 +498,16 @@ namespace Global_Func { PlaySFXVoices; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0044E510, &OpenSHC::Global::InitBlendFilterArraysUnk) - InitBlendFilterArraysUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0044E510, &OpenSHC::Global::initBlendFilterTables) + initBlendFilterTables; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(wchar_t* destination, wchar_t* format, ...), false, Address::SHC_3BB0A8C1_0x0045D060, &OpenSHC::Global::PrintToDestination) PrintToDestination; - MACRO_FUNCTION_RESOLVER(EuroRecruitableState(__cdecl*)(int barrackUnitIdUnk), false, - Address::SHC_3BB0A8C1_0x00464DA0, &OpenSHC::Global::IsEuroUnitRecruitableUnk) - IsEuroUnitRecruitableUnk; + MACRO_FUNCTION_RESOLVER(EuroRecruitableStateInt(__cdecl*)(int barrackUnitIdUnk), false, + Address::SHC_3BB0A8C1_0x00464DA0, &OpenSHC::Global::getEuroUnitRecruitableState) + getEuroUnitRecruitableState; MACRO_FUNCTION_RESOLVER( int(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x00464E80, &OpenSHC::Global::GetUnitRecruitPermission) @@ -536,11 +546,11 @@ namespace Global_Func { &OpenSHC::Global::ChangeRations) ChangeRations; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int state, ResourceType resourceTypePlus1), false, - Address::SHC_3BB0A8C1_0x00465DB0, &OpenSHC::Global::SetPlayerBuyingResultStateUnk) - SetPlayerBuyingResultStateUnk; + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int state, ResourceTypeInt resourceTypePlus1), false, + Address::SHC_3BB0A8C1_0x00465DB0, &OpenSHC::Global::setStorageFullEmptyNotification) + setStorageFullEmptyNotification; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int playerID, int buyOrSell, ResourceType resourceType), false, + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int playerID, int buyOrSell, ResourceTypeInt resourceType), false, Address::SHC_3BB0A8C1_0x00465E60, &OpenSHC::Global::ProcessBuyOrSell) ProcessBuyOrSell; @@ -565,20 +575,19 @@ namespace Global_Func { Address::SHC_3BB0A8C1_0x00466430, &OpenSHC::Global::ReleaseDogs2) ReleaseDogs2; - MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00466E00, - &OpenSHC::Global::SetEnoughGoldForRequestedUnitToTrueUnk) - SetEnoughGoldForRequestedUnitToTrueUnk; + MACRO_FUNCTION_RESOLVER( + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00466E00, &OpenSHC::Global::setEnoughGoldForRequestedUnit) + setEnoughGoldForRequestedUnit; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00467890, &OpenSHC::Global::SetSomeColorsUnk) - SetSomeColorsUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00467890, &OpenSHC::Global::initNamedColorsForColorMode) + initNamedColorsForColorMode; MACRO_FUNCTION_RESOLVER(HRESULT(__stdcall*)(DDSURFACEDESC* displayDesc, LPVOID userParam), false, Address::SHC_3BB0A8C1_0x00467BC0, &OpenSHC::Global::EnumDisplayModesCallback) EnumDisplayModesCallback; - MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00469F10, &OpenSHC::Global::DoNothing) - DoNothing; + MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00469F10, &OpenSHC::Global::noOp) noOp; MACRO_FUNCTION_RESOLVER(byte(__stdcall*)(byte value, int bits), false, Address::SHC_3BB0A8C1_0x0046CE30, &OpenSHC::Global::RotateByteLeft) @@ -588,7 +597,7 @@ namespace Global_Func { Address::SHC_3BB0A8C1_0x0046D390, &OpenSHC::Global::GetStringBasedOnHardcodedMaps) GetStringBasedOnHardcodedMaps; - MACRO_FUNCTION_RESOLVER(DirectDrawStatus(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0046F4F0, + MACRO_FUNCTION_RESOLVER(DirectDrawStatusInt(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0046F4F0, &OpenSHC::Global::DetectDXVersionByLoadingDDRAW) DetectDXVersionByLoadingDDRAW; @@ -607,12 +616,12 @@ namespace Global_Func { EnumSessionsCallback_addSession_async; MACRO_FUNCTION_RESOLVER(BOOLEnum(__stdcall*)(int* param_1, undefined4 param_2, char* param_3), false, - Address::SHC_3BB0A8C1_0x0047E160, &OpenSHC::Global::DirectPlayModemRelated_MemoryAllocationFunction) - DirectPlayModemRelated_MemoryAllocationFunction; + Address::SHC_3BB0A8C1_0x0047E160, &OpenSHC::Global::enumModemAddressCallback) + enumModemAddressCallback; MACRO_FUNCTION_RESOLVER(int(__stdcall*)(int size, char* src, void* dst), false, Address::SHC_3BB0A8C1_0x0047E7E0, - &OpenSHC::Global::CompressOrCreateLengthPrefixedPacketUnk) - CompressOrCreateLengthPrefixedPacketUnk; + &OpenSHC::Global::compressOrCreateLengthPrefixedPacket) + compressOrCreateLengthPrefixedPacket; MACRO_FUNCTION_RESOLVER( int(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0047EEB0, &OpenSHC::Global::ComputeSomeHashOnUnitArray) @@ -627,12 +636,12 @@ namespace Global_Func { MemCopyFromParameter; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00493050, &OpenSHC::Global::SetupPreviewMinimapDataUnk) - SetupPreviewMinimapDataUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00493050, &OpenSHC::Global::loadSelectedMapHeaderForPreview) + loadSelectedMapHeaderForPreview; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00495840, &OpenSHC::Global::ProgressBarRelated) - ProgressBarRelated; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00495840, &OpenSHC::Global::showLoadSaveProgressBar) + showLoadSaveProgressBar; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00496E40, &OpenSHC::Global::ClearPathFindingTileMaps) @@ -674,7 +683,7 @@ namespace Global_Func { Address::SHC_3BB0A8C1_0x004AD7C0, &OpenSHC::Global::ProcessAllyRequestingGoods) ProcessAllyRequestingGoods; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ResourceType param_2, int param_3, int param_4), false, + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ResourceTypeInt param_2, int param_3, int param_4), false, Address::SHC_3BB0A8C1_0x004ADDD0, &OpenSHC::Global::ProcessAllyGoodsRequest) ProcessAllyGoodsRequest; @@ -686,15 +695,15 @@ namespace Global_Func { &OpenSHC::Global::FindDisplayElementWithID) FindDisplayElementWithID; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(DisplayElementID displayElementID, dword elementState), false, + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(DisplayElementIDInt displayElementID, dword elementState), false, Address::SHC_3BB0A8C1_0x004AF650, &OpenSHC::Global::CheckDisplayElementByIDAndSetForUnlimitedDisplay) CheckDisplayElementByIDAndSetForUnlimitedDisplay; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(DisplayElementID elementId, dword elementState, int displayDuration), false, - Address::SHC_3BB0A8C1_0x004AF680, &OpenSHC::Global::ActivateGameSpeedAndResourceLackDisplayElementUnk) - ActivateGameSpeedAndResourceLackDisplayElementUnk; + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(DisplayElementIDInt elementId, dword elementState, int displayDuration), + false, Address::SHC_3BB0A8C1_0x004AF680, &OpenSHC::Global::activateDisplayElementForDuration) + activateDisplayElementForDuration; - MACRO_FUNCTION_RESOLVER(BOOLEnum(__cdecl*)(DisplayElementID displayElementID), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum(__cdecl*)(DisplayElementIDInt displayElementID), false, Address::SHC_3BB0A8C1_0x004AF6E0, &OpenSHC::Global::GetIfDisplayElementStateNotZero) GetIfDisplayElementStateNotZero; @@ -709,13 +718,13 @@ namespace Global_Func { MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x004B8200, &OpenSHC::Global::SumUnitPoints) SumUnitPoints; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, BuildingType buildingType), false, - Address::SHC_3BB0A8C1_0x004BC690, &OpenSHC::Global::SetTutorialBuildingActionState) - SetTutorialBuildingActionState; + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, BuildingTypeInt buildingType), false, + Address::SHC_3BB0A8C1_0x004BC690, &OpenSHC::Global::recordTutorialBuildingAction) + recordTutorialBuildingAction; - MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004BC770, - &OpenSHC::Global::SetTutorialHintActiveWithTimestamp) - SetTutorialHintActiveWithTimestamp; + MACRO_FUNCTION_RESOLVER( + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004BC770, &OpenSHC::Global::triggerTutorialHighlight) + triggerTutorialHighlight; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int skirmishTrailMission), false, Address::SHC_3BB0A8C1_0x004C68D0, &OpenSHC::Global::SetupSkirmishMode) @@ -728,8 +737,8 @@ namespace Global_Func { MACRO_FUNCTION_RESOLVER(int(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004C6CD0, &OpenSHC::Global::StoreTime) StoreTime; - MACRO_FUNCTION_RESOLVER(AIVUnitType(__stdcall*)(int unitID, int param_2), false, Address::SHC_3BB0A8C1_0x004CC390, - &OpenSHC::Global::GetUnitTypeIndexForUnitID) + MACRO_FUNCTION_RESOLVER(AIVUnitTypeInt(__stdcall*)(int unitID, int param_2), false, + Address::SHC_3BB0A8C1_0x004CC390, &OpenSHC::Global::GetUnitTypeIndexForUnitID) GetUnitTypeIndexForUnitID; MACRO_FUNCTION_RESOLVER(int(__stdcall*)(int playerID, int maxAmount, BOOLEnum checkOnly), false, @@ -776,9 +785,9 @@ namespace Global_Func { int(__cdecl*)(int playerID), false, Address::SHC_3BB0A8C1_0x004D5780, &OpenSHC::Global::ComputeSkMasterScore) ComputeSkMasterScore; - MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x004D7200, &OpenSHC::Global::ResetEventStatusUnk) - ResetEventStatusUnk; + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x004D7200, + &OpenSHC::Global::resetAndLoadScenarioEventConditions) + resetAndLoadScenarioEventConditions; MACRO_FUNCTION_RESOLVER( void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x004D9D90, &OpenSHC::Global::TacticalPowersFill) @@ -831,8 +840,8 @@ namespace Global_Func { WriteMissionToScoresFile; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(int param_1, int param_2, int param_3, undefined4 param_4, int param_5), - false, Address::SHC_3BB0A8C1_0x004E3870, &OpenSHC::Global::renderSomethingMap3) - renderSomethingMap3; + false, Address::SHC_3BB0A8C1_0x004E3870, &OpenSHC::Global::renderBuildingAnimationSprite) + renderBuildingAnimationSprite; MACRO_FUNCTION_RESOLVER( int(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004EDD00, &OpenSHC::Global::SomeComputationWithSeparateAreas) @@ -843,8 +852,8 @@ namespace Global_Func { VersioningFixTrees; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004F3840, &OpenSHC::Global::RemoveCertainRockTypesUnk) - RemoveCertainRockTypesUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004F3840, &OpenSHC::Global::removeStaleRocks) + removeStaleRocks; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004F3900, &OpenSHC::Global::RemoveRocksBeyond1000) @@ -895,8 +904,8 @@ namespace Global_Func { DecrementTileMap1104; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x005232E0, &OpenSHC::Global::ClearAnimalSpawnLocationsUnk) - ClearAnimalSpawnLocationsUnk; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x005232E0, &OpenSHC::Global::clearAnimalSpawnLocations) + clearAnimalSpawnLocations; MACRO_FUNCTION_RESOLVER( void(__cdecl*)(int unitID), false, Address::SHC_3BB0A8C1_0x00530720, &OpenSHC::Global::updateLogicAndClimbData) @@ -919,36 +928,36 @@ namespace Global_Func { UpdateBurningAnimal2; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int unitID, BOOLEnum updateAV), false, Address::SHC_3BB0A8C1_0x00530B40, - &OpenSHC::Global::IncrementAndOptionalUpdateAVValueRelated) - IncrementAndOptionalUpdateAVValueRelated; + &OpenSHC::Global::incrementWorkTimerAndAverageAV) + incrementWorkTimerAndAverageAV; - MACRO_FUNCTION_RESOLVER(BOOLEnum(__cdecl*)(int unitID, UnitState nextUnitState), false, - Address::SHC_3BB0A8C1_0x00530C40, &OpenSHC::Global::ConsiderHavingABreakNowUnk) - ConsiderHavingABreakNowUnk; + MACRO_FUNCTION_RESOLVER(BOOLEnum(__cdecl*)(int unitID, UnitStateShort nextUnitState), false, + Address::SHC_3BB0A8C1_0x00530C40, &OpenSHC::Global::checkWorkerTakesRestBreak) + checkWorkerTakesRestBreak; MACRO_FUNCTION_RESOLVER(undefined4(__cdecl*)(int unitID, int shouldFindNewGoodThing, int param_3), false, Address::SHC_3BB0A8C1_0x00530CF0, &OpenSHC::Global::SetStateToFreetimeWalking) SetStateToFreetimeWalking; - MACRO_FUNCTION_RESOLVER(bool(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x00530D50, - &OpenSHC::Global::CheckUnitProductionPaused) - CheckUnitProductionPaused; + MACRO_FUNCTION_RESOLVER( + bool(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x00530D50, &OpenSHC::Global::checkUnitField2fe) + checkUnitField2fe; MACRO_FUNCTION_RESOLVER(int(__cdecl*)(int unitID, int goodsCount, BOOLEnum boost), false, Address::SHC_3BB0A8C1_0x00530D70, &OpenSHC::Global::ComputeGoodsProduced) ComputeGoodsProduced; MACRO_FUNCTION_RESOLVER(BuildingTypeShort*(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00530E00, - &OpenSHC::Global::WarnIfPlayerLacksGranary) - WarnIfPlayerLacksGranary; + &OpenSHC::Global::checkPlayerGranaryPeriodicWarning) + checkPlayerGranaryPeriodicWarning; MACRO_FUNCTION_RESOLVER( - uint(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00530EB0, &OpenSHC::Global::TryPlayStockpileIsFullNoiseUnk) - TryPlayStockpileIsFullNoiseUnk; + uint(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00530EB0, &OpenSHC::Global::playStockpileFullWarningSfx) + playStockpileFullWarningSfx; MACRO_FUNCTION_RESOLVER(BuildingTypeShort*(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00530F20, - &OpenSHC::Global::PlaySound_StockpileIsFullMyLordUnk) - PlaySound_StockpileIsFullMyLordUnk; + &OpenSHC::Global::playArmouryFullWarningVoice) + playArmouryFullWarningVoice; MACRO_FUNCTION_RESOLVER( BOOLEnum(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0053A020, &OpenSHC::Global::CurrentUnitHasHealer) @@ -965,8 +974,8 @@ namespace Global_Func { UpdateShield; MACRO_FUNCTION_RESOLVER(BOOLEnum(__cdecl*)(int unitID), false, Address::SHC_3BB0A8C1_0x0053CAC0, - &OpenSHC::Global::ConsiderTakingABreakUnk) - ConsiderTakingABreakUnk; + &OpenSHC::Global::considerUnitTakingBreak) + considerUnitTakingBreak; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0053EAA0, &OpenSHC::Global::UpdatePeasant) diff --git a/src/OpenSHC/Global.hpp b/src/OpenSHC/Global.hpp index ccd91e8d..dc8bc0d9 100644 --- a/src/OpenSHC/Global.hpp +++ b/src/OpenSHC/Global.hpp @@ -8,15 +8,16 @@ #pragma once -#include "OpenSHC/AI/AIVUnitType.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" -#include "OpenSHC/Map/Buildings/BuildingType.hpp" +#include "OpenSHC/AI/AIVUnitTypeInt.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" +#include "OpenSHC/Map/Buildings/BuildingTypeInt.hpp" #include "OpenSHC/Map/Buildings/BuildingTypeShort.hpp" -#include "OpenSHC/Map/Units/EuroRecruitableState.hpp" -#include "OpenSHC/Map/Units/States/UnitState.hpp" -#include "OpenSHC/Rendering/Enums/DirectDrawStatus.hpp" +#include "OpenSHC/Map/Units/EuroRecruitableStateInt.hpp" +#include "OpenSHC/Map/Units/States/UnitStateShort.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" +#include "OpenSHC/Rendering/Enums/DirectDrawStatusInt.hpp" #include "OpenSHC/UI/DisplayElement.hpp" -#include "OpenSHC/UI/Enums/DisplayElementID.hpp" +#include "OpenSHC/UI/Enums/DisplayElementIDInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "WinDef.h" @@ -27,15 +28,16 @@ namespace OpenSHC { namespace Global { - using OpenSHC::AI::AIVUnitType; - using OpenSHC::Game::Resources::ResourceType; - using OpenSHC::Map::Buildings::BuildingType; + using OpenSHC::AI::AIVUnitTypeInt; + using OpenSHC::Game::Resources::ResourceTypeInt; + using OpenSHC::Map::Buildings::BuildingTypeInt; using OpenSHC::Map::Buildings::BuildingTypeShort; - using OpenSHC::Map::Units::EuroRecruitableState; - using OpenSHC::Map::Units::States::UnitState; - using OpenSHC::Rendering::Enums::DirectDrawStatus; + using OpenSHC::Map::Units::EuroRecruitableStateInt; + using OpenSHC::Map::Units::UnitTypeInt; + using OpenSHC::Map::Units::States::UnitStateShort; + using OpenSHC::Rendering::Enums::DirectDrawStatusInt; using OpenSHC::UI::DisplayElement; - using OpenSHC::UI::Enums::DisplayElementID; + using OpenSHC::UI::Enums::DisplayElementIDInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; void __stdcall SetCurrentEntityID3000(); @@ -147,7 +149,7 @@ namespace Global { void __stdcall UpdateTower1(); - void __stdcall UpdateBadBuildingCessPitOrDancingBearUnk(); + void __stdcall resetBuildingDisplayAnimation(); void __stdcall UpdateBadBuildingBurningStake(); @@ -215,7 +217,7 @@ namespace Global { void __stdcall DrawOuterMenuBorder(); - void __stdcall MainMenu_Unknown21_Prepare(); + void __stdcall MenuView_MainMenuModal21_Prepare(); BOOLEnum __stdcall AModalDialogIsActiveButIsNotQuitting(); @@ -237,11 +239,13 @@ namespace Global { void __stdcall ClearSiegeInformationArray2(); - void __cdecl LaunchSinglePlayerGameUnk(int param_1); + void __cdecl launchSinglePlayerGame(int param_1); void __stdcall InitializeBasicMap(); - void __stdcall ResetSomeValuesFunctionUnk(); + void __stdcall resetGameUIStateOnMenuSwitch(); + + undefined __cdecl AdjustViewPortAndMore(); void __cdecl PlayPlacementWarning(undefined4 param_1); @@ -257,6 +261,8 @@ namespace Global { int __cdecl ComputePlayerPoints1(int playerID); + void __stdcall PlayUnitSpeech(UnitTypeInt unitType, int actionID); + int __cdecl ComputePlayerRanking(int playerID); int __cdecl GetPlayerAtRank(int rankingPosition); @@ -269,11 +275,11 @@ namespace Global { void __stdcall PlaySFXVoices(); - void __stdcall InitBlendFilterArraysUnk(); + void __stdcall initBlendFilterTables(); void __cdecl PrintToDestination(wchar_t* destination, wchar_t* format, ...); - EuroRecruitableState __cdecl IsEuroUnitRecruitableUnk(int barrackUnitIdUnk); + EuroRecruitableStateInt __cdecl getEuroUnitRecruitableState(int barrackUnitIdUnk); int __cdecl GetUnitRecruitPermission(int param_1); @@ -294,9 +300,9 @@ namespace Global { void __cdecl ChangeRations(int playerID, int rationsSetting); - void __cdecl SetPlayerBuyingResultStateUnk(int state, ResourceType resourceTypePlus1); + void __cdecl setStorageFullEmptyNotification(int state, ResourceTypeInt resourceTypePlus1); - void __cdecl ProcessBuyOrSell(int playerID, int buyOrSell, ResourceType resourceType); + void __cdecl ProcessBuyOrSell(int playerID, int buyOrSell, ResourceTypeInt resourceType); void __cdecl TryAcquireAmmunitionOrPlanToBuyStone(int param_1, int param_2); @@ -309,19 +315,19 @@ namespace Global { void __cdecl ReleaseDogs2(int param_1, int buildingID, int buildingUID); - void __stdcall SetEnoughGoldForRequestedUnitToTrueUnk(); + void __stdcall setEnoughGoldForRequestedUnit(); - void __stdcall SetSomeColorsUnk(); + void __stdcall initNamedColorsForColorMode(); HRESULT __stdcall EnumDisplayModesCallback(DDSURFACEDESC* displayDesc, LPVOID userParam); - void __stdcall DoNothing(); + void __stdcall noOp(); byte __stdcall RotateByteLeft(byte value, int bits); char* __cdecl GetStringBasedOnHardcodedMaps(char* mapName, int* hardcodedMapDescriptionGroupNum); - DirectDrawStatus __stdcall DetectDXVersionByLoadingDDRAW(); + DirectDrawStatusInt __stdcall DetectDXVersionByLoadingDDRAW(); byte __stdcall TestOSVersion(); @@ -331,9 +337,9 @@ namespace Global { bool __stdcall EnumSessionsCallback_addSession_async( DPSESSIONDESC2* lpThisSD, LPDWORD lpdwTimeOut, DWORD dwFlags, LPVOID lpContext); - BOOLEnum __stdcall DirectPlayModemRelated_MemoryAllocationFunction(int* param_1, undefined4 param_2, char* param_3); + BOOLEnum __stdcall enumModemAddressCallback(int* param_1, undefined4 param_2, char* param_3); - int __stdcall CompressOrCreateLengthPrefixedPacketUnk(int size, char* src, void* dst); + int __stdcall compressOrCreateLengthPrefixedPacket(int size, char* src, void* dst); int __stdcall ComputeSomeHashOnUnitArray(); @@ -341,9 +347,9 @@ namespace Global { void __cdecl MemCopyFromParameter(char* dest, size_t size, undefined4 playerID); - void __stdcall SetupPreviewMinimapDataUnk(); + void __stdcall loadSelectedMapHeaderForPreview(); - void __stdcall ProgressBarRelated(); + void __stdcall showLoadSaveProgressBar(); void __stdcall ClearPathFindingTileMaps(); @@ -366,19 +372,19 @@ namespace Global { void __cdecl ProcessAllyRequestingGoods(int askedPlayerID, int param_2, int amount, int askee); - void __cdecl ProcessAllyGoodsRequest(int param_1, ResourceType param_2, int param_3, int param_4); + void __cdecl ProcessAllyGoodsRequest(int param_1, ResourceTypeInt param_2, int param_3, int param_4); void __cdecl ProcessAllyDeniesRequest(int param_1, int param_2); DisplayElement* __cdecl FindDisplayElementWithID(int elementID); void __cdecl CheckDisplayElementByIDAndSetForUnlimitedDisplay( - DisplayElementID displayElementID, dword elementState); + DisplayElementIDInt displayElementID, dword elementState); - void __cdecl ActivateGameSpeedAndResourceLackDisplayElementUnk( - DisplayElementID elementId, dword elementState, int displayDuration); + void __cdecl activateDisplayElementForDuration( + DisplayElementIDInt elementId, dword elementState, int displayDuration); - BOOLEnum __cdecl GetIfDisplayElementStateNotZero(DisplayElementID displayElementID); + BOOLEnum __cdecl GetIfDisplayElementStateNotZero(DisplayElementIDInt displayElementID); LRESULT __stdcall WindowMsgProcessingFunc(HWND windowHandle, UINT message, WPARAM wParam, LPARAM lParam); @@ -386,9 +392,9 @@ namespace Global { void __cdecl SumUnitPoints(); - void __cdecl SetTutorialBuildingActionState(int param_1, BuildingType buildingType); + void __cdecl recordTutorialBuildingAction(int param_1, BuildingTypeInt buildingType); - void __stdcall SetTutorialHintActiveWithTimestamp(); + void __stdcall triggerTutorialHighlight(); void __cdecl SetupSkirmishMode(int skirmishTrailMission); @@ -396,7 +402,7 @@ namespace Global { int __stdcall StoreTime(); - AIVUnitType __stdcall GetUnitTypeIndexForUnitID(int unitID, int param_2); + AIVUnitTypeInt __stdcall GetUnitTypeIndexForUnitID(int unitID, int param_2); int __stdcall ChecksAndGenerateAITribesForPlayerIfNotExisting(int playerID, int maxAmount, BOOLEnum checkOnly); @@ -420,7 +426,7 @@ namespace Global { int __cdecl ComputeSkMasterScore(int playerID); - void __cdecl ResetEventStatusUnk(); + void __cdecl resetAndLoadScenarioEventConditions(); void __cdecl TacticalPowersFill(); @@ -449,13 +455,14 @@ namespace Global { void __cdecl WriteMissionToScoresFile(char* param_1, int param_2); - void __stdcall renderSomethingMap3(int param_1, int param_2, int param_3, undefined4 param_4, int param_5); + void __stdcall renderBuildingAnimationSprite( + int param_1, int param_2, int param_3, undefined4 param_4, int param_5); int __stdcall SomeComputationWithSeparateAreas(); void __stdcall VersioningFixTrees(); - void __stdcall RemoveCertainRockTypesUnk(); + void __stdcall removeStaleRocks(); void __stdcall RemoveRocksBeyond1000(); @@ -481,7 +488,7 @@ namespace Global { void __cdecl DecrementTileMap1104(); - void __stdcall ClearAnimalSpawnLocationsUnk(); + void __stdcall clearAnimalSpawnLocations(); void __cdecl updateLogicAndClimbData(int unitID); @@ -493,21 +500,21 @@ namespace Global { void __stdcall UpdateBurningAnimal2(); - void __cdecl IncrementAndOptionalUpdateAVValueRelated(int unitID, BOOLEnum updateAV); + void __cdecl incrementWorkTimerAndAverageAV(int unitID, BOOLEnum updateAV); - BOOLEnum __cdecl ConsiderHavingABreakNowUnk(int unitID, UnitState nextUnitState); + BOOLEnum __cdecl checkWorkerTakesRestBreak(int unitID, UnitStateShort nextUnitState); undefined4 __cdecl SetStateToFreetimeWalking(int unitID, int shouldFindNewGoodThing, int param_3); - bool __cdecl CheckUnitProductionPaused(int param_1); + bool __cdecl checkUnitField2fe(int param_1); int __cdecl ComputeGoodsProduced(int unitID, int goodsCount, BOOLEnum boost); - BuildingTypeShort* __stdcall WarnIfPlayerLacksGranary(); + BuildingTypeShort* __stdcall checkPlayerGranaryPeriodicWarning(); - uint __stdcall TryPlayStockpileIsFullNoiseUnk(); + uint __stdcall playStockpileFullWarningSfx(); - BuildingTypeShort* __stdcall PlaySound_StockpileIsFullMyLordUnk(); + BuildingTypeShort* __stdcall playArmouryFullWarningVoice(); BOOLEnum __cdecl CurrentUnitHasHealer(); @@ -517,7 +524,7 @@ namespace Global { void __stdcall UpdateShield(); - BOOLEnum __cdecl ConsiderTakingABreakUnk(int unitID); + BOOLEnum __cdecl considerUnitTakingBreak(int unitID); void __stdcall UpdatePeasant(); diff --git a/src/OpenSHC/Global/Init.func.hpp b/src/OpenSHC/Global/Init.func.hpp index cf863828..00ca93a9 100644 --- a/src/OpenSHC/Global/Init.func.hpp +++ b/src/OpenSHC/Global/Init.func.hpp @@ -34,8 +34,8 @@ namespace Global { Constructor_MenuView_UnusedEconomicMissionSelect; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A220, - &OpenSHC::Global::Init::Constructor_MenuView_UnusedSomeMissionStartUnk) - Constructor_MenuView_UnusedSomeMissionStartUnk; + &OpenSHC::Global::Init::Constructor_MenuView_UnusedMissionStart) + Constructor_MenuView_UnusedMissionStart; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A250, &OpenSHC::Global::Init::Constructor_MenuView_UnusedOldTitleMenu) @@ -46,28 +46,28 @@ namespace Global { Constructor_MenuView_MpConnection; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A2B0, - &OpenSHC::Global::Init::Constructor_MenuView_Unknown21) - Constructor_MenuView_Unknown21; + &OpenSHC::Global::Init::Constructor_MenuView_MainMenuModal21) + Constructor_MenuView_MainMenuModal21; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A2E0, &OpenSHC::Global::Init::Constructor_MenuView_LobbyMenu) Constructor_MenuView_LobbyMenu; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A310, - &OpenSHC::Global::Init::Constructor_MenuView_Unknown33) - Constructor_MenuView_Unknown33; + &OpenSHC::Global::Init::Constructor_MenuView_LobbyReadyLaunch33) + Constructor_MenuView_LobbyReadyLaunch33; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A340, - &OpenSHC::Global::Init::Constructor_MenuView_Unknown61ReturnToSkrimishMenuUnk) - Constructor_MenuView_Unknown61ReturnToSkrimishMenuUnk; + &OpenSHC::Global::Init::Constructor_MenuView_ReturnToSkirmishMenu61) + Constructor_MenuView_ReturnToSkirmishMenu61; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A370, &OpenSHC::Global::Init::Constructor_MenuView_SingleplayerMapChoice) Constructor_MenuView_SingleplayerMapChoice; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A3A0, - &OpenSHC::Global::Init::Constructor_MenuView_Unknown49DoesNothingUnk) - Constructor_MenuView_Unknown49DoesNothingUnk; + &OpenSHC::Global::Init::Constructor_MenuView_Placeholder49DoesNothing) + Constructor_MenuView_Placeholder49DoesNothing; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A3D0, &OpenSHC::Global::Init::Constructor_MenuView_MapEditorLandscaping) @@ -110,12 +110,12 @@ namespace Global { Constructor_MenuView_UnusedCreateSiege; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A5B0, - &OpenSHC::Global::Init::Constructor_MenuView_Unknown26_CampaignRelatedUnk) - Constructor_MenuView_Unknown26_CampaignRelatedUnk; + &OpenSHC::Global::Init::Constructor_MenuView_CampaignCredits26) + Constructor_MenuView_CampaignCredits26; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A5E0, - &OpenSHC::Global::Init::Constructor_MenuView_CampaignUnk) - Constructor_MenuView_CampaignUnk; + &OpenSHC::Global::Init::Constructor_MenuView_Campaign27) + Constructor_MenuView_Campaign27; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059A610, &OpenSHC::Global::Init::Constructor_MenuView_ScenarioDescription) @@ -210,8 +210,8 @@ namespace Global { Constructor_MenuView_CrusadeEndscreen; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059AA60, - &OpenSHC::Global::Init::Constructor_Menu_Unknown_ManyThings) - Constructor_Menu_Unknown_ManyThings; + &OpenSHC::Global::Init::Constructor_Menu_MultiItemShared) + Constructor_Menu_MultiItemShared; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059AA70, &OpenSHC::Global::Init::Constructor_Menu_IntroLogos) @@ -242,8 +242,8 @@ namespace Global { Constructor_Menu_CustomScenarios; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059AAE0, - &OpenSHC::Global::Init::Constructor_Menu_UnusedSomeMissionStartUnk) - Constructor_Menu_UnusedSomeMissionStartUnk; + &OpenSHC::Global::Init::Constructor_Menu_UnusedMissionStart) + Constructor_Menu_UnusedMissionStart; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059AAF0, &OpenSHC::Global::Init::Constructor_Menu_HistoricMissionSelect) @@ -342,12 +342,12 @@ namespace Global { Constructor_Menu_UnusedCreateSiege; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059AC70, - &OpenSHC::Global::Init::Constructor_Menu_Unknown26CampaignRelatedUnk) - Constructor_Menu_Unknown26CampaignRelatedUnk; + &OpenSHC::Global::Init::Constructor_Menu_CampaignCredits26) + Constructor_Menu_CampaignCredits26; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059AC80, - &OpenSHC::Global::Init::Constructor_Menu_Unknown27CampaignUnk) - Constructor_Menu_Unknown27CampaignUnk; + &OpenSHC::Global::Init::Constructor_Menu_Campaign27) + Constructor_Menu_Campaign27; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059AC90, &OpenSHC::Global::Init::Constructor_Menu_UnusedExtremeAd) @@ -386,8 +386,8 @@ namespace Global { Constructor_Menu_MissionFinishedTransition; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059AD20, - &OpenSHC::Global::Init::Constructor_Menu_GameLostUnk) - Constructor_Menu_GameLostUnk; + &OpenSHC::Global::Init::Constructor_Menu_GameLost) + Constructor_Menu_GameLost; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059AD30, &OpenSHC::Global::Init::Constructor_Menu_ChooseNetworkServiceProvider) @@ -582,8 +582,8 @@ namespace Global { Constructor_Menu_StartGoods; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059B030, - &OpenSHC::Global::Init::Constructor_Menu_UnusedSiegeAttackingForceUnk) - Constructor_Menu_UnusedSiegeAttackingForceUnk; + &OpenSHC::Global::Init::Constructor_Menu_UnusedSiegeAttackingForce) + Constructor_Menu_UnusedSiegeAttackingForce; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059B040, &OpenSHC::Global::Init::Constructor_Menu_NewInvasion) @@ -662,8 +662,8 @@ namespace Global { Constructor_MenuModal_DebugDataUnitData; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059B260, - &OpenSHC::Global::Init::Constructor_MenuModal_DebugDataZoneDataUnk) - Constructor_MenuModal_DebugDataZoneDataUnk; + &OpenSHC::Global::Init::Constructor_MenuModal_DebugDataZoneData) + Constructor_MenuModal_DebugDataZoneData; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059B2A0, &OpenSHC::Global::Init::Constructor_MenuModal_DebugDataNetwork) @@ -782,8 +782,8 @@ namespace Global { Constructor_MenuModal_StartGoods; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059B9E0, - &OpenSHC::Global::Init::Constructor_MenuModal_UnusedSiegeAttackingForceUnk) - Constructor_MenuModal_UnusedSiegeAttackingForceUnk; + &OpenSHC::Global::Init::Constructor_MenuModal_UnusedSiegeAttackingForce) + Constructor_MenuModal_UnusedSiegeAttackingForce; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059BA20, &OpenSHC::Global::Init::Constructor_MenuModal_NewInvasion) @@ -934,20 +934,20 @@ namespace Global { Constructor_MenuModal_TacticalPowerBar; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C380, - &OpenSHC::Global::Init::Constructor_MenuModal_DebugDataAivStateUnk) - Constructor_MenuModal_DebugDataAivStateUnk; + &OpenSHC::Global::Init::Constructor_MenuModal_DebugDataAivState) + Constructor_MenuModal_DebugDataAivState; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C3C0, - &OpenSHC::Global::Init::CreateUnknownDisplayElement0) - CreateUnknownDisplayElement0; + &OpenSHC::Global::Init::CreateChatAnchorPlaceholderDisplayElement0) + CreateChatAnchorPlaceholderDisplayElement0; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C3E0, &OpenSHC::Global::Init::CreateBottomLeftDateDisplayElement) CreateBottomLeftDateDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C400, - &OpenSHC::Global::Init::CreateUnknownDisplayElement18) - CreateUnknownDisplayElement18; + &OpenSHC::Global::Init::CreateTopAnchorPlaceholderDisplayElement18) + CreateTopAnchorPlaceholderDisplayElement18; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C420, &OpenSHC::Global::Init::CreateInGameStartingGoodsCounterDisplayElement) @@ -958,8 +958,8 @@ namespace Global { CreateConnectAndPathLinkageInfoTextDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C460, - &OpenSHC::Global::Init::CreateInGameChatDisplayElementUnk) - CreateInGameChatDisplayElementUnk; + &OpenSHC::Global::Init::CreateInGameChatDisplayElement) + CreateInGameChatDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C480, &OpenSHC::Global::Init::CreateResourceMissing1DisplayElement) @@ -974,12 +974,12 @@ namespace Global { CreateDebugNumbersDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C4E0, - &OpenSHC::Global::Init::CreateUnknownDisplayElement7) - CreateUnknownDisplayElement7; + &OpenSHC::Global::Init::CreateStopwatchDurationDisplayElement) + CreateStopwatchDurationDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C500, - &OpenSHC::Global::Init::CreateSomeMissionNumberUnkDisplayElement9) - CreateSomeMissionNumberUnkDisplayElement9; + &OpenSHC::Global::Init::CreateMissionNumberDisplayElement) + CreateMissionNumberDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C520, &OpenSHC::Global::Init::CreateNoTreeGrowthTextDisplayElement) @@ -994,8 +994,8 @@ namespace Global { CreateMissionWinDefeatBannerDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C580, - &OpenSHC::Global::Init::CreateSomeMultiplayerInfoUnkDisplayElement19) - CreateSomeMultiplayerInfoUnkDisplayElement19; + &OpenSHC::Global::Init::CreateMultiplayerResyncOverlayDisplayElement) + CreateMultiplayerResyncOverlayDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C5A0, &OpenSHC::Global::Init::CreateKeepAndGranaryPlacementInfoDisplayElement) @@ -1006,8 +1006,8 @@ namespace Global { CreatePlayerInfoOnHoverDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C5E0, - &OpenSHC::Global::Init::CreatePlayerPingUnkDisplayElement22) - CreatePlayerPingUnkDisplayElement22; + &OpenSHC::Global::Init::CreatePlayerPingDisplayElement) + CreatePlayerPingDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C600, &OpenSHC::Global::Init::CreateGamePausedTextDisplayElement) @@ -1018,32 +1018,32 @@ namespace Global { CreateGameSpeedTextDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C640, - &OpenSHC::Global::Init::CreateUnknownDisplayElement25) - CreateUnknownDisplayElement25; + &OpenSHC::Global::Init::CreateSkirmishPointsPerPlayerDebugOverlayElement) + CreateSkirmishPointsPerPlayerDebugOverlayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C660, &OpenSHC::Global::Init::CreateTimeUntilVictoryDisplayElement) CreateTimeUntilVictoryDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C680, - &OpenSHC::Global::Init::CreateNoRushDisplayElementUnk) - CreateNoRushDisplayElementUnk; + &OpenSHC::Global::Init::CreateNoRushDisplayElement) + CreateNoRushDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C6A0, &OpenSHC::Global::Init::CreateTimeUntilDefeatDisplayElement) CreateTimeUntilDefeatDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C6C0, - &OpenSHC::Global::Init::CreateSomeMultiplayerInfoUnkDisplayElement28) - CreateSomeMultiplayerInfoUnkDisplayElement28; + &OpenSHC::Global::Init::CreateLaggingPlayerEjectOverlayDisplayElement) + CreateLaggingPlayerEjectOverlayDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C6E0, &OpenSHC::Global::Init::CreatePeopleLeftToPlaceDisplayElement) CreatePeopleLeftToPlaceDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C700, - &OpenSHC::Global::Init::Constructor_UnknownClass1) - Constructor_UnknownClass1; + &OpenSHC::Global::Init::staticInit_emptyGlobalCtorA) + staticInit_emptyGlobalCtorA; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C720, &OpenSHC::Global::Init::Constructor_WindowAndDirectDraw) @@ -1082,8 +1082,8 @@ namespace Global { Constructor_TextManagerObj; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C840, - &OpenSHC::Global::Init::Constructor_UnusedClass1Unk) - Constructor_UnusedClass1Unk; + &OpenSHC::Global::Init::staticInit_emptyGlobalCtorB) + staticInit_emptyGlobalCtorB; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C860, &OpenSHC::Global::Init::Constructor_RNGState) @@ -1113,9 +1113,9 @@ namespace Global { &OpenSHC::Global::Init::Constructor_Stopwatch_Gameloop) Constructor_Stopwatch_Gameloop; - MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C940, - &OpenSHC::Global::Init::Constructor_Stopwatch_Unknown) - Constructor_Stopwatch_Unknown; + MACRO_FUNCTION_RESOLVER( + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C940, &OpenSHC::Global::Init::Constructor_Stopwatch) + Constructor_Stopwatch; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059C960, &OpenSHC::Global::Init::Constructor_FilePackager) @@ -1242,16 +1242,16 @@ namespace Global { Constructor_Locks; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059CCFC, - &OpenSHC::Global::Init::Constructor_CreateLocaleMemoryRelated) - Constructor_CreateLocaleMemoryRelated; + &OpenSHC::Global::Init::staticInit_localeMemoryAtexit) + staticInit_localeMemoryAtexit; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059CD08, &OpenSHC::Global::Init::Constructor_Locks2) Constructor_Locks2; - MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059CD1E, &OpenSHC::Global::Init::Constructor_CRelated) - Constructor_CRelated; + MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059CD1E, + &OpenSHC::Global::Init::staticInit_crtObjectAtexit) + staticInit_crtObjectAtexit; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0059CED0, &OpenSHC::Global::Init::Destructor_MenuView_MissionFinishedTransition) diff --git a/src/OpenSHC/Global/Init.hpp b/src/OpenSHC/Global/Init.hpp index e6387c23..93da25f5 100644 --- a/src/OpenSHC/Global/Init.hpp +++ b/src/OpenSHC/Global/Init.hpp @@ -22,23 +22,23 @@ namespace Global { void __stdcall Constructor_MenuView_UnusedEconomicMissionSelect(); - void __stdcall Constructor_MenuView_UnusedSomeMissionStartUnk(); + void __stdcall Constructor_MenuView_UnusedMissionStart(); void __stdcall Constructor_MenuView_UnusedOldTitleMenu(); void __stdcall Constructor_MenuView_MpConnection(); - void __stdcall Constructor_MenuView_Unknown21(); + void __stdcall Constructor_MenuView_MainMenuModal21(); void __stdcall Constructor_MenuView_LobbyMenu(); - void __stdcall Constructor_MenuView_Unknown33(); + void __stdcall Constructor_MenuView_LobbyReadyLaunch33(); - void __stdcall Constructor_MenuView_Unknown61ReturnToSkrimishMenuUnk(); + void __stdcall Constructor_MenuView_ReturnToSkirmishMenu61(); void __stdcall Constructor_MenuView_SingleplayerMapChoice(); - void __stdcall Constructor_MenuView_Unknown49DoesNothingUnk(); + void __stdcall Constructor_MenuView_Placeholder49DoesNothing(); void __stdcall Constructor_MenuView_MapEditorLandscaping(); @@ -60,9 +60,9 @@ namespace Global { void __stdcall Constructor_MenuView_UnusedCreateSiege(); - void __stdcall Constructor_MenuView_Unknown26_CampaignRelatedUnk(); + void __stdcall Constructor_MenuView_CampaignCredits26(); - void __stdcall Constructor_MenuView_CampaignUnk(); + void __stdcall Constructor_MenuView_Campaign27(); void __stdcall Constructor_MenuView_ScenarioDescription(); @@ -110,7 +110,7 @@ namespace Global { void __stdcall Constructor_MenuView_CrusadeEndscreen(); - void __stdcall Constructor_Menu_Unknown_ManyThings(); + void __stdcall Constructor_Menu_MultiItemShared(); void __stdcall Constructor_Menu_IntroLogos(); @@ -126,7 +126,7 @@ namespace Global { void __stdcall Constructor_Menu_CustomScenarios(); - void __stdcall Constructor_Menu_UnusedSomeMissionStartUnk(); + void __stdcall Constructor_Menu_UnusedMissionStart(); void __stdcall Constructor_Menu_HistoricMissionSelect(); @@ -176,9 +176,9 @@ namespace Global { void __stdcall Constructor_Menu_UnusedCreateSiege(); - void __stdcall Constructor_Menu_Unknown26CampaignRelatedUnk(); + void __stdcall Constructor_Menu_CampaignCredits26(); - void __stdcall Constructor_Menu_Unknown27CampaignUnk(); + void __stdcall Constructor_Menu_Campaign27(); void __stdcall Constructor_Menu_UnusedExtremeAd(); @@ -198,7 +198,7 @@ namespace Global { void __stdcall Constructor_Menu_MissionFinishedTransition(); - void __stdcall Constructor_Menu_GameLostUnk(); + void __stdcall Constructor_Menu_GameLost(); void __stdcall Constructor_Menu_ChooseNetworkServiceProvider(); @@ -296,7 +296,7 @@ namespace Global { void __stdcall Constructor_Menu_StartGoods(); - void __stdcall Constructor_Menu_UnusedSiegeAttackingForceUnk(); + void __stdcall Constructor_Menu_UnusedSiegeAttackingForce(); void __stdcall Constructor_Menu_NewInvasion(); @@ -336,7 +336,7 @@ namespace Global { void __stdcall Constructor_MenuModal_DebugDataUnitData(); - void __stdcall Constructor_MenuModal_DebugDataZoneDataUnk(); + void __stdcall Constructor_MenuModal_DebugDataZoneData(); void __stdcall Constructor_MenuModal_DebugDataNetwork(); @@ -396,7 +396,7 @@ namespace Global { void __stdcall Constructor_MenuModal_StartGoods(); - void __stdcall Constructor_MenuModal_UnusedSiegeAttackingForceUnk(); + void __stdcall Constructor_MenuModal_UnusedSiegeAttackingForce(); void __stdcall Constructor_MenuModal_NewInvasion(); @@ -472,19 +472,19 @@ namespace Global { void __stdcall Constructor_MenuModal_TacticalPowerBar(); - void __stdcall Constructor_MenuModal_DebugDataAivStateUnk(); + void __stdcall Constructor_MenuModal_DebugDataAivState(); - void __stdcall CreateUnknownDisplayElement0(); + void __stdcall CreateChatAnchorPlaceholderDisplayElement0(); void __stdcall CreateBottomLeftDateDisplayElement(); - void __stdcall CreateUnknownDisplayElement18(); + void __stdcall CreateTopAnchorPlaceholderDisplayElement18(); void __stdcall CreateInGameStartingGoodsCounterDisplayElement(); void __stdcall CreateConnectAndPathLinkageInfoTextDisplayElement(); - void __stdcall CreateInGameChatDisplayElementUnk(); + void __stdcall CreateInGameChatDisplayElement(); void __stdcall CreateResourceMissing1DisplayElement(); @@ -492,9 +492,9 @@ namespace Global { void __stdcall CreateDebugNumbersDisplayElement(); - void __stdcall CreateUnknownDisplayElement7(); + void __stdcall CreateStopwatchDurationDisplayElement(); - void __stdcall CreateSomeMissionNumberUnkDisplayElement9(); + void __stdcall CreateMissionNumberDisplayElement(); void __stdcall CreateNoTreeGrowthTextDisplayElement(); @@ -502,31 +502,31 @@ namespace Global { void __stdcall CreateMissionWinDefeatBannerDisplayElement(); - void __stdcall CreateSomeMultiplayerInfoUnkDisplayElement19(); + void __stdcall CreateMultiplayerResyncOverlayDisplayElement(); void __stdcall CreateKeepAndGranaryPlacementInfoDisplayElement(); void __stdcall CreatePlayerInfoOnHoverDisplayElement(); - void __stdcall CreatePlayerPingUnkDisplayElement22(); + void __stdcall CreatePlayerPingDisplayElement(); void __stdcall CreateGamePausedTextDisplayElement(); void __stdcall CreateGameSpeedTextDisplayElement(); - void __stdcall CreateUnknownDisplayElement25(); + void __stdcall CreateSkirmishPointsPerPlayerDebugOverlayElement(); void __stdcall CreateTimeUntilVictoryDisplayElement(); - void __stdcall CreateNoRushDisplayElementUnk(); + void __stdcall CreateNoRushDisplayElement(); void __stdcall CreateTimeUntilDefeatDisplayElement(); - void __stdcall CreateSomeMultiplayerInfoUnkDisplayElement28(); + void __stdcall CreateLaggingPlayerEjectOverlayDisplayElement(); void __stdcall CreatePeopleLeftToPlaceDisplayElement(); - void __stdcall Constructor_UnknownClass1(); + void __stdcall staticInit_emptyGlobalCtorA(); void __stdcall Constructor_WindowAndDirectDraw(); @@ -546,7 +546,7 @@ namespace Global { void __stdcall Constructor_TextManagerObj(); - void __stdcall Constructor_UnusedClass1Unk(); + void __stdcall staticInit_emptyGlobalCtorB(); void __stdcall Constructor_RNGState(); @@ -562,7 +562,7 @@ namespace Global { void __stdcall Constructor_Stopwatch_Gameloop(); - void __stdcall Constructor_Stopwatch_Unknown(); + void __stdcall Constructor_Stopwatch(); void __stdcall Constructor_FilePackager(); @@ -626,11 +626,11 @@ namespace Global { void __cdecl Constructor_Locks(); - void __stdcall Constructor_CreateLocaleMemoryRelated(); + void __stdcall staticInit_localeMemoryAtexit(); void __stdcall Constructor_Locks2(); - void __stdcall Constructor_CRelated(); + void __stdcall staticInit_crtObjectAtexit(); void __stdcall Destructor_MenuView_MissionFinishedTransition(); diff --git a/src/OpenSHC/Globals/BOOL_02427470.hpp b/src/OpenSHC/Globals/BOOL_02427470.hpp new file mode 100644 index 00000000..4ce80dd6 --- /dev/null +++ b/src/OpenSHC/Globals/BOOL_02427470.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/BOOL_02427470.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x02427470 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x02427470) BOOL_02427470; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x02427470); diff --git a/src/OpenSHC/Globals/BOOL_RelatedToInitialGranaryAndKeepPlacement.hpp b/src/OpenSHC/Globals/BOOL_RelatedToInitialGranaryAndKeepPlacement.hpp index e7bae948..7a729051 100644 --- a/src/OpenSHC/Globals/BOOL_RelatedToInitialGranaryAndKeepPlacement.hpp +++ b/src/OpenSHC/Globals/BOOL_RelatedToInitialGranaryAndKeepPlacement.hpp @@ -8,16 +8,12 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" - // GLOBAL: STRONGHOLDCRUSADER 0x00DF42A0 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00DF42A0) BOOL_RelatedToInitialGranaryAndKeepPlacement; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00DF42A0) BOOL_RelatedToInitialGranaryAndKeepPlacement; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF42A0); diff --git a/src/OpenSHC/Globals/BOOL_WasInteracting.hpp b/src/OpenSHC/Globals/BOOL_WasInteracting.hpp index 0531527b..09dd5fc5 100644 --- a/src/OpenSHC/Globals/BOOL_WasInteracting.hpp +++ b/src/OpenSHC/Globals/BOOL_WasInteracting.hpp @@ -8,16 +8,14 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" +#include "WinDef.h" // GLOBAL: STRONGHOLDCRUSADER 0x00B98408 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00B98408) BOOL_WasInteracting; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00B98408) BOOL_WasInteracting; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98408); diff --git a/src/OpenSHC/Globals/DAT_00b95958.hpp b/src/OpenSHC/Globals/DAT_00b95958.hpp new file mode 100644 index 00000000..90921270 --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00b95958.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00b95958.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95958 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B95958) DAT_00b95958; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95958); diff --git a/src/OpenSHC/Globals/DAT_00b960ec.hpp b/src/OpenSHC/Globals/DAT_00b960ec.hpp new file mode 100644 index 00000000..0192d7b9 --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00b960ec.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00b960ec.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B960EC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B960EC) DAT_00b960ec; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B960EC); diff --git a/src/OpenSHC/Globals/DAT_00b96124.hpp b/src/OpenSHC/Globals/DAT_00b96124.hpp new file mode 100644 index 00000000..7c8e73e3 --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00b96124.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00b96124.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B96124 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B96124) DAT_00b96124; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B96124); diff --git a/src/OpenSHC/Globals/DAT_00df3360.hpp b/src/OpenSHC/Globals/DAT_00df3360.hpp new file mode 100644 index 00000000..331d98d0 --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00df3360.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00df3360.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF3360 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF3360) DAT_00df3360; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF3360); diff --git a/src/OpenSHC/Globals/DAT_00df4240.hpp b/src/OpenSHC/Globals/DAT_00df4240.hpp new file mode 100644 index 00000000..773f8e4e --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00df4240.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00df4240.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF4240 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF4240) DAT_00df4240; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF4240); diff --git a/src/OpenSHC/Globals/DAT_00df4244.hpp b/src/OpenSHC/Globals/DAT_00df4244.hpp new file mode 100644 index 00000000..d3caba4c --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00df4244.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00df4244.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF4244 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF4244) DAT_00df4244; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF4244); diff --git a/src/OpenSHC/Globals/DAT_00df4298.hpp b/src/OpenSHC/Globals/DAT_00df4298.hpp new file mode 100644 index 00000000..ca7d70f0 --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00df4298.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00df4298.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF4298 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF4298) DAT_00df4298; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF4298); diff --git a/src/OpenSHC/Globals/DAT_00eb9b10.hpp b/src/OpenSHC/Globals/DAT_00eb9b10.hpp new file mode 100644 index 00000000..2826a3b3 --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00eb9b10.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00eb9b10.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B10 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B10) DAT_00eb9b10; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B10); diff --git a/src/OpenSHC/Globals/DAT_00eb9b14.hpp b/src/OpenSHC/Globals/DAT_00eb9b14.hpp new file mode 100644 index 00000000..78f4f629 --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00eb9b14.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00eb9b14.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B14 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B14) DAT_00eb9b14; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B14); diff --git a/src/OpenSHC/Globals/DAT_00eb9b18.hpp b/src/OpenSHC/Globals/DAT_00eb9b18.hpp new file mode 100644 index 00000000..72cd4d8d --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00eb9b18.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00eb9b18.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B18 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B18) DAT_00eb9b18; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B18); diff --git a/src/OpenSHC/Globals/DAT_00ed27c4.hpp b/src/OpenSHC/Globals/DAT_00ed27c4.hpp new file mode 100644 index 00000000..b30291ef --- /dev/null +++ b/src/OpenSHC/Globals/DAT_00ed27c4.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_00ed27c4.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED27C4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED27C4) DAT_00ed27c4; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED27C4); diff --git a/src/OpenSHC/Globals/DAT_ARRAY_00df2b78.hpp b/src/OpenSHC/Globals/DAT_ARRAY_00df2b78.hpp index 63a20471..badc0439 100644 --- a/src/OpenSHC/Globals/DAT_ARRAY_00df2b78.hpp +++ b/src/OpenSHC/Globals/DAT_ARRAY_00df2b78.hpp @@ -9,11 +9,11 @@ #pragma once // GLOBAL: STRONGHOLDCRUSADER 0x00DF2B78 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -MACRO_STRUCT_RESOLVER(wchar_t[1000], false, Address::SHC_3BB0A8C1_0x00DF2B78) DAT_ARRAY_00df2b78; +MACRO_STRUCT_RESOLVER(WCHAR[1000], false, Address::SHC_3BB0A8C1_0x00DF2B78) DAT_ARRAY_00df2b78; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF2B78); diff --git a/src/OpenSHC/Globals/DAT_ButtonCurrentlyInteracting.hpp b/src/OpenSHC/Globals/DAT_ButtonCurrentlyInteracting.hpp index c3b7c6e5..19f3e869 100644 --- a/src/OpenSHC/Globals/DAT_ButtonCurrentlyInteracting.hpp +++ b/src/OpenSHC/Globals/DAT_ButtonCurrentlyInteracting.hpp @@ -8,16 +8,12 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" - // GLOBAL: STRONGHOLDCRUSADER 0x00ED31B8 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00ED31B8) DAT_ButtonCurrentlyInteracting; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00ED31B8) DAT_ButtonCurrentlyInteracting; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED31B8); diff --git a/src/OpenSHC/Globals/DAT_EnoughGoldForRequestedUnit.hpp b/src/OpenSHC/Globals/DAT_EnoughGoldForRequestedUnit.hpp index 53714c1c..bcd15be7 100644 --- a/src/OpenSHC/Globals/DAT_EnoughGoldForRequestedUnit.hpp +++ b/src/OpenSHC/Globals/DAT_EnoughGoldForRequestedUnit.hpp @@ -8,16 +8,14 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" +#include "WinDef.h" // GLOBAL: STRONGHOLDCRUSADER 0x00DF3358 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00DF3358) DAT_EnoughGoldForRequestedUnit; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00DF3358) DAT_EnoughGoldForRequestedUnit; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF3358); diff --git a/src/OpenSHC/Globals/DAT_GMImageHeaders.hpp b/src/OpenSHC/Globals/DAT_GMImageHeaders.hpp index e69ce380..c6b8844e 100644 --- a/src/OpenSHC/Globals/DAT_GMImageHeaders.hpp +++ b/src/OpenSHC/Globals/DAT_GMImageHeaders.hpp @@ -8,16 +8,16 @@ #pragma once -#include "OpenSHC/IO/Graphics/ImageHeaders.hpp" +#include "OpenSHC/IO/Graphics/ImageHeader.hpp" // GLOBAL: STRONGHOLDCRUSADER 0x00B98790 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::IO::Graphics::ImageHeaders; +using OpenSHC::IO::Graphics::ImageHeader; -MACRO_STRUCT_RESOLVER(ImageHeaders, false, Address::SHC_3BB0A8C1_0x00B98790) DAT_GMImageHeaders; +MACRO_STRUCT_RESOLVER(ImageHeader[66000], false, Address::SHC_3BB0A8C1_0x00B98790) DAT_GMImageHeaders; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98790); diff --git a/src/OpenSHC/Globals/DAT_RenderMiniMapOrBinkFlag.hpp b/src/OpenSHC/Globals/DAT_RenderMiniMapOrBinkFlag.hpp index d4f03cc1..8d428b7a 100644 --- a/src/OpenSHC/Globals/DAT_RenderMiniMapOrBinkFlag.hpp +++ b/src/OpenSHC/Globals/DAT_RenderMiniMapOrBinkFlag.hpp @@ -8,16 +8,14 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" +#include "WinDef.h" // GLOBAL: STRONGHOLDCRUSADER 0x02427474 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x02427474) DAT_RenderMiniMapOrBinkFlag; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x02427474) DAT_RenderMiniMapOrBinkFlag; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x02427474); diff --git a/src/OpenSHC/Globals/DAT_TacticalPowersHelpTextDisplayBool.hpp b/src/OpenSHC/Globals/DAT_TacticalPowersHelpTextDisplayBool.hpp new file mode 100644 index 00000000..53c57183 --- /dev/null +++ b/src/OpenSHC/Globals/DAT_TacticalPowersHelpTextDisplayBool.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/DAT_TacticalPowersHelpTextDisplayBool.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3128 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined1, false, Address::SHC_3BB0A8C1_0x00ED3128) DAT_TacticalPowersHelpTextDisplayBool; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3128); diff --git a/src/OpenSHC/Globals/FLAG_ChristmasAIMessage01to04.hpp b/src/OpenSHC/Globals/FLAG_ChristmasAIMessage01to04.hpp index 01f56d98..9221656d 100644 --- a/src/OpenSHC/Globals/FLAG_ChristmasAIMessage01to04.hpp +++ b/src/OpenSHC/Globals/FLAG_ChristmasAIMessage01to04.hpp @@ -8,16 +8,14 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" +#include "WinDef.h" // GLOBAL: STRONGHOLDCRUSADER 0x00EE2354 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00EE2354) FLAG_ChristmasAIMessage01to04; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00EE2354) FLAG_ChristmasAIMessage01to04; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2354); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage00.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage00.hpp new file mode 100644 index 00000000..9558d8a0 --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage00.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage00.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE2350 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE2350) FLAG_JokeAIMessage00; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2350); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage02.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage02.hpp new file mode 100644 index 00000000..727602bd --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage02.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage02.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE2358 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE2358) FLAG_JokeAIMessage02; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2358); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage03.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage03.hpp new file mode 100644 index 00000000..2eed9928 --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage03.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage03.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE235C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE235C) FLAG_JokeAIMessage03; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE235C); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage04.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage04.hpp new file mode 100644 index 00000000..9de555d5 --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage04.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage04.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE2360 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE2360) FLAG_JokeAIMessage04; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2360); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage05.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage05.hpp index 3d82268f..a1939755 100644 --- a/src/OpenSHC/Globals/FLAG_JokeAIMessage05.hpp +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage05.hpp @@ -8,16 +8,14 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" +#include "WinDef.h" // GLOBAL: STRONGHOLDCRUSADER 0x00EE2364 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00EE2364) FLAG_JokeAIMessage05; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00EE2364) FLAG_JokeAIMessage05; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2364); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage06.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage06.hpp index a79a29c0..8d439d9f 100644 --- a/src/OpenSHC/Globals/FLAG_JokeAIMessage06.hpp +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage06.hpp @@ -8,16 +8,14 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" +#include "WinDef.h" // GLOBAL: STRONGHOLDCRUSADER 0x00EE2368 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00EE2368) FLAG_JokeAIMessage06; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00EE2368) FLAG_JokeAIMessage06; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2368); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage07.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage07.hpp new file mode 100644 index 00000000..e440e97f --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage07.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage07.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE236C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE236C) FLAG_JokeAIMessage07; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE236C); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage08.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage08.hpp new file mode 100644 index 00000000..aed6aae5 --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage08.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage08.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE2370 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE2370) FLAG_JokeAIMessage08; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2370); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage09.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage09.hpp index f2af86e4..51d17e35 100644 --- a/src/OpenSHC/Globals/FLAG_JokeAIMessage09.hpp +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage09.hpp @@ -8,16 +8,14 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" +#include "WinDef.h" // GLOBAL: STRONGHOLDCRUSADER 0x00EE2374 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00EE2374) FLAG_JokeAIMessage09; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00EE2374) FLAG_JokeAIMessage09; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2374); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage10.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage10.hpp new file mode 100644 index 00000000..736756fb --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage10.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage10.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE2378 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE2378) FLAG_JokeAIMessage10; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2378); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage11.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage11.hpp new file mode 100644 index 00000000..8f9e40df --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage11.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage11.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE237C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE237C) FLAG_JokeAIMessage11; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE237C); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage12.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage12.hpp index 2f7fa967..91f9aaa0 100644 --- a/src/OpenSHC/Globals/FLAG_JokeAIMessage12.hpp +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage12.hpp @@ -8,16 +8,14 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" +#include "WinDef.h" // GLOBAL: STRONGHOLDCRUSADER 0x00EE2380 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00EE2380) FLAG_JokeAIMessage12; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00EE2380) FLAG_JokeAIMessage12; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2380); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage13.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage13.hpp new file mode 100644 index 00000000..d7c670be --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage13.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage13.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE2384 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE2384) FLAG_JokeAIMessage13; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2384); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage14.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage14.hpp new file mode 100644 index 00000000..9cb0c404 --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage14.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage14.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE2388 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE2388) FLAG_JokeAIMessage14; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2388); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage15.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage15.hpp new file mode 100644 index 00000000..3691c926 --- /dev/null +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage15.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/FLAG_JokeAIMessage15.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE238C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE238C) FLAG_JokeAIMessage15; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE238C); diff --git a/src/OpenSHC/Globals/FLAG_JokeAIMessage16.hpp b/src/OpenSHC/Globals/FLAG_JokeAIMessage16.hpp index 563d4751..46b6fc3e 100644 --- a/src/OpenSHC/Globals/FLAG_JokeAIMessage16.hpp +++ b/src/OpenSHC/Globals/FLAG_JokeAIMessage16.hpp @@ -8,16 +8,14 @@ #pragma once -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" +#include "WinDef.h" // GLOBAL: STRONGHOLDCRUSADER 0x00EE2390 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -using OpenSHC::WindowsHelper::Enums::BOOLEnum; - -MACRO_STRUCT_RESOLVER(BOOLEnum, false, Address::SHC_3BB0A8C1_0x00EE2390) FLAG_JokeAIMessage16; +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00EE2390) FLAG_JokeAIMessage16; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE2390); diff --git a/src/OpenSHC/Globals/HLP_WCHAR_Buffer.hpp b/src/OpenSHC/Globals/HLP_WCHAR_Buffer.hpp index 7dfa1770..0b8f3045 100644 --- a/src/OpenSHC/Globals/HLP_WCHAR_Buffer.hpp +++ b/src/OpenSHC/Globals/HLP_WCHAR_Buffer.hpp @@ -9,11 +9,11 @@ #pragma once // GLOBAL: STRONGHOLDCRUSADER 0x00DF2978 -// StructResolver::Instance::instance +// StructResolver::Instance::instance namespace OpenSHC { -MACRO_STRUCT_RESOLVER(wchar_t[256], false, Address::SHC_3BB0A8C1_0x00DF2978) HLP_WCHAR_Buffer; +MACRO_STRUCT_RESOLVER(WCHAR[256], false, Address::SHC_3BB0A8C1_0x00DF2978) HLP_WCHAR_Buffer; } // namespace OpenSHC MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF2978); diff --git a/src/OpenSHC/Globals/g_bAdvancedOptionsModalState.hpp b/src/OpenSHC/Globals/g_bAdvancedOptionsModalState.hpp new file mode 100644 index 00000000..c47333d2 --- /dev/null +++ b/src/OpenSHC/Globals/g_bAdvancedOptionsModalState.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_bAdvancedOptionsModalState.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B960CC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B960CC) g_bAdvancedOptionsModalState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B960CC); diff --git a/src/OpenSHC/Globals/g_bIntroLogosShown.hpp b/src/OpenSHC/Globals/g_bIntroLogosShown.hpp new file mode 100644 index 00000000..ecae16c3 --- /dev/null +++ b/src/OpenSHC/Globals/g_bIntroLogosShown.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_bIntroLogosShown.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98404 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B98404) g_bIntroLogosShown; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98404); diff --git a/src/OpenSHC/Globals/g_bStockpileFullNoiseState.hpp b/src/OpenSHC/Globals/g_bStockpileFullNoiseState.hpp new file mode 100644 index 00000000..ff1bde56 --- /dev/null +++ b/src/OpenSHC/Globals/g_bStockpileFullNoiseState.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_bStockpileFullNoiseState.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE0FD8 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(BOOL, false, Address::SHC_3BB0A8C1_0x00EE0FD8) g_bStockpileFullNoiseState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE0FD8); diff --git a/src/OpenSHC/Globals/g_bTutorialBoxState.hpp b/src/OpenSHC/Globals/g_bTutorialBoxState.hpp new file mode 100644 index 00000000..81523c18 --- /dev/null +++ b/src/OpenSHC/Globals/g_bTutorialBoxState.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_bTutorialBoxState.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5648 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5648) g_bTutorialBoxState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5648); diff --git a/src/OpenSHC/Globals/g_bTutorialTimerStarted.hpp b/src/OpenSHC/Globals/g_bTutorialTimerStarted.hpp new file mode 100644 index 00000000..9c2cee42 --- /dev/null +++ b/src/OpenSHC/Globals/g_bTutorialTimerStarted.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_bTutorialTimerStarted.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5544 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5544) g_bTutorialTimerStarted; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5544); diff --git a/src/OpenSHC/Globals/g_dwAmbientFadeValue.hpp b/src/OpenSHC/Globals/g_dwAmbientFadeValue.hpp new file mode 100644 index 00000000..2c6eacad --- /dev/null +++ b/src/OpenSHC/Globals/g_dwAmbientFadeValue.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwAmbientFadeValue.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98708 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00B98708) g_dwAmbientFadeValue; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98708); diff --git a/src/OpenSHC/Globals/g_dwArmySwitchTabIndex.hpp b/src/OpenSHC/Globals/g_dwArmySwitchTabIndex.hpp new file mode 100644 index 00000000..e71033bd --- /dev/null +++ b/src/OpenSHC/Globals/g_dwArmySwitchTabIndex.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwArmySwitchTabIndex.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95B68 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B95B68) g_dwArmySwitchTabIndex; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95B68); diff --git a/src/OpenSHC/Globals/g_dwBattleEndMusicState.hpp b/src/OpenSHC/Globals/g_dwBattleEndMusicState.hpp new file mode 100644 index 00000000..42be6a3c --- /dev/null +++ b/src/OpenSHC/Globals/g_dwBattleEndMusicState.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwBattleEndMusicState.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B986E0 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B986E0) g_dwBattleEndMusicState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B986E0); diff --git a/src/OpenSHC/Globals/g_dwCampaignMapSelection.hpp b/src/OpenSHC/Globals/g_dwCampaignMapSelection.hpp new file mode 100644 index 00000000..b1480c84 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwCampaignMapSelection.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwCampaignMapSelection.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3124 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED3124) g_dwCampaignMapSelection; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3124); diff --git a/src/OpenSHC/Globals/g_dwCreditsAdvanceTimer.hpp b/src/OpenSHC/Globals/g_dwCreditsAdvanceTimer.hpp new file mode 100644 index 00000000..2158724f --- /dev/null +++ b/src/OpenSHC/Globals/g_dwCreditsAdvanceTimer.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwCreditsAdvanceTimer.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9AC4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(dword, false, Address::SHC_3BB0A8C1_0x00EB9AC4) g_dwCreditsAdvanceTimer; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9AC4); diff --git a/src/OpenSHC/Globals/g_dwCreditsInitFlag.hpp b/src/OpenSHC/Globals/g_dwCreditsInitFlag.hpp new file mode 100644 index 00000000..0cb1c890 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwCreditsInitFlag.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwCreditsInitFlag.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95954 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B95954) g_dwCreditsInitFlag; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95954); diff --git a/src/OpenSHC/Globals/g_dwCreditsPhase.hpp b/src/OpenSHC/Globals/g_dwCreditsPhase.hpp new file mode 100644 index 00000000..4d0e57a3 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwCreditsPhase.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwCreditsPhase.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB0E40 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB0E40) g_dwCreditsPhase; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB0E40); diff --git a/src/OpenSHC/Globals/g_dwCreditsScrollCounter.hpp b/src/OpenSHC/Globals/g_dwCreditsScrollCounter.hpp new file mode 100644 index 00000000..8c864bbe --- /dev/null +++ b/src/OpenSHC/Globals/g_dwCreditsScrollCounter.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwCreditsScrollCounter.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95B70 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B95B70) g_dwCreditsScrollCounter; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95B70); diff --git a/src/OpenSHC/Globals/g_dwCrusadeMapAnimTime.hpp b/src/OpenSHC/Globals/g_dwCrusadeMapAnimTime.hpp new file mode 100644 index 00000000..49c16a41 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwCrusadeMapAnimTime.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwCrusadeMapAnimTime.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3138 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(dword, false, Address::SHC_3BB0A8C1_0x00ED3138) g_dwCrusadeMapAnimTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3138); diff --git a/src/OpenSHC/Globals/g_dwCrusadeMapTimeMs.hpp b/src/OpenSHC/Globals/g_dwCrusadeMapTimeMs.hpp new file mode 100644 index 00000000..af061d24 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwCrusadeMapTimeMs.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwCrusadeMapTimeMs.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED27A8 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(dword, false, Address::SHC_3BB0A8C1_0x00ED27A8) g_dwCrusadeMapTimeMs; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED27A8); diff --git a/src/OpenSHC/Globals/g_dwCrusadeMapTimerB.hpp b/src/OpenSHC/Globals/g_dwCrusadeMapTimerB.hpp new file mode 100644 index 00000000..de7088b7 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwCrusadeMapTimerB.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwCrusadeMapTimerB.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED311C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(dword, false, Address::SHC_3BB0A8C1_0x00ED311C) g_dwCrusadeMapTimerB; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED311C); diff --git a/src/OpenSHC/Globals/g_dwCustomScenarioInitFlag.hpp b/src/OpenSHC/Globals/g_dwCustomScenarioInitFlag.hpp new file mode 100644 index 00000000..2bcfc3c7 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwCustomScenarioInitFlag.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwCustomScenarioInitFlag.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B960E4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B960E4) g_dwCustomScenarioInitFlag; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B960E4); diff --git a/src/OpenSHC/Globals/g_dwGameStartTimeMs.hpp b/src/OpenSHC/Globals/g_dwGameStartTimeMs.hpp new file mode 100644 index 00000000..94dc0483 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwGameStartTimeMs.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwGameStartTimeMs.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95B1C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00B95B1C) g_dwGameStartTimeMs; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95B1C); diff --git a/src/OpenSHC/Globals/g_dwGreatestLordPageIndex.hpp b/src/OpenSHC/Globals/g_dwGreatestLordPageIndex.hpp new file mode 100644 index 00000000..f3667aa2 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwGreatestLordPageIndex.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwGreatestLordPageIndex.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9AF8 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9AF8) g_dwGreatestLordPageIndex; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9AF8); diff --git a/src/OpenSHC/Globals/g_dwGreatestLordScreenMode.hpp b/src/OpenSHC/Globals/g_dwGreatestLordScreenMode.hpp new file mode 100644 index 00000000..dd6f191f --- /dev/null +++ b/src/OpenSHC/Globals/g_dwGreatestLordScreenMode.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwGreatestLordScreenMode.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EC082C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EC082C) g_dwGreatestLordScreenMode; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EC082C); diff --git a/src/OpenSHC/Globals/g_dwHelpBorderXOffset.hpp b/src/OpenSHC/Globals/g_dwHelpBorderXOffset.hpp new file mode 100644 index 00000000..930ed881 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwHelpBorderXOffset.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwHelpBorderXOffset.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF2964 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF2964) g_dwHelpBorderXOffset; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF2964); diff --git a/src/OpenSHC/Globals/g_dwHelpBorderYOffset.hpp b/src/OpenSHC/Globals/g_dwHelpBorderYOffset.hpp new file mode 100644 index 00000000..6ee6caf9 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwHelpBorderYOffset.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwHelpBorderYOffset.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF296C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF296C) g_dwHelpBorderYOffset; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF296C); diff --git a/src/OpenSHC/Globals/g_dwHistoricMissionRowCount.hpp b/src/OpenSHC/Globals/g_dwHistoricMissionRowCount.hpp new file mode 100644 index 00000000..9d36de06 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwHistoricMissionRowCount.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwHistoricMissionRowCount.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B96100 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B96100) g_dwHistoricMissionRowCount; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B96100); diff --git a/src/OpenSHC/Globals/g_dwHistoricPictureGfx.hpp b/src/OpenSHC/Globals/g_dwHistoricPictureGfx.hpp new file mode 100644 index 00000000..8e266e58 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwHistoricPictureGfx.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwHistoricPictureGfx.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB0B20 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB0B20) g_dwHistoricPictureGfx; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB0B20); diff --git a/src/OpenSHC/Globals/g_dwHistoricPictureState.hpp b/src/OpenSHC/Globals/g_dwHistoricPictureState.hpp new file mode 100644 index 00000000..3ed69fb1 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwHistoricPictureState.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwHistoricPictureState.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED2780 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED2780) g_dwHistoricPictureState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED2780); diff --git a/src/OpenSHC/Globals/g_dwLastAssassinActionTime.hpp b/src/OpenSHC/Globals/g_dwLastAssassinActionTime.hpp new file mode 100644 index 00000000..4371cbba --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastAssassinActionTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastAssassinActionTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1064 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE1064) g_dwLastAssassinActionTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1064); diff --git a/src/OpenSHC/Globals/g_dwLastBarrackClickTime.hpp b/src/OpenSHC/Globals/g_dwLastBarrackClickTime.hpp new file mode 100644 index 00000000..ca5930df --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastBarrackClickTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastBarrackClickTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF3378 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00DF3378) g_dwLastBarrackClickTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF3378); diff --git a/src/OpenSHC/Globals/g_dwLastBatteringRamActionTime.hpp b/src/OpenSHC/Globals/g_dwLastBatteringRamActionTime.hpp new file mode 100644 index 00000000..942f7891 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastBatteringRamActionTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastBatteringRamActionTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1044 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE1044) g_dwLastBatteringRamActionTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1044); diff --git a/src/OpenSHC/Globals/g_dwLastGranaryWarningTime.hpp b/src/OpenSHC/Globals/g_dwLastGranaryWarningTime.hpp new file mode 100644 index 00000000..29ae6f0b --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastGranaryWarningTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastGranaryWarningTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE0FCC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE0FCC) g_dwLastGranaryWarningTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE0FCC); diff --git a/src/OpenSHC/Globals/g_dwLastLionActionTime.hpp b/src/OpenSHC/Globals/g_dwLastLionActionTime.hpp new file mode 100644 index 00000000..398fca72 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastLionActionTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastLionActionTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1058 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE1058) g_dwLastLionActionTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1058); diff --git a/src/OpenSHC/Globals/g_dwLastLordActionTime.hpp b/src/OpenSHC/Globals/g_dwLastLordActionTime.hpp new file mode 100644 index 00000000..e982576c --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastLordActionTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastLordActionTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE105C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE105C) g_dwLastLordActionTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE105C); diff --git a/src/OpenSHC/Globals/g_dwLastMotherActionTimeA.hpp b/src/OpenSHC/Globals/g_dwLastMotherActionTimeA.hpp new file mode 100644 index 00000000..8e8b9927 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastMotherActionTimeA.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastMotherActionTimeA.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1048 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE1048) g_dwLastMotherActionTimeA; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1048); diff --git a/src/OpenSHC/Globals/g_dwLastMotherActionTimeB.hpp b/src/OpenSHC/Globals/g_dwLastMotherActionTimeB.hpp new file mode 100644 index 00000000..2bd9e7a2 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastMotherActionTimeB.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastMotherActionTimeB.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE104C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE104C) g_dwLastMotherActionTimeB; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE104C); diff --git a/src/OpenSHC/Globals/g_dwLastPortraitClickTime.hpp b/src/OpenSHC/Globals/g_dwLastPortraitClickTime.hpp new file mode 100644 index 00000000..5f2fc9f7 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastPortraitClickTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastPortraitClickTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF3364 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00DF3364) g_dwLastPortraitClickTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF3364); diff --git a/src/OpenSHC/Globals/g_dwLastSiegeTowerActionTime.hpp b/src/OpenSHC/Globals/g_dwLastSiegeTowerActionTime.hpp new file mode 100644 index 00000000..b2f0a8b6 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastSiegeTowerActionTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastSiegeTowerActionTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1040 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE1040) g_dwLastSiegeTowerActionTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1040); diff --git a/src/OpenSHC/Globals/g_dwLastSlaveActionTime.hpp b/src/OpenSHC/Globals/g_dwLastSlaveActionTime.hpp new file mode 100644 index 00000000..24617049 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastSlaveActionTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastSlaveActionTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1060 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE1060) g_dwLastSlaveActionTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1060); diff --git a/src/OpenSHC/Globals/g_dwLastSpearmanActionTimeA.hpp b/src/OpenSHC/Globals/g_dwLastSpearmanActionTimeA.hpp new file mode 100644 index 00000000..43564e63 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastSpearmanActionTimeA.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastSpearmanActionTimeA.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1050 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE1050) g_dwLastSpearmanActionTimeA; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1050); diff --git a/src/OpenSHC/Globals/g_dwLastSpearmanActionTimeB.hpp b/src/OpenSHC/Globals/g_dwLastSpearmanActionTimeB.hpp new file mode 100644 index 00000000..41882a57 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastSpearmanActionTimeB.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastSpearmanActionTimeB.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1054 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE1054) g_dwLastSpearmanActionTimeB; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1054); diff --git a/src/OpenSHC/Globals/g_dwLastStockpileFullNoiseTime.hpp b/src/OpenSHC/Globals/g_dwLastStockpileFullNoiseTime.hpp new file mode 100644 index 00000000..6fb8764f --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastStockpileFullNoiseTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastStockpileFullNoiseTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE0FD4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE0FD4) g_dwLastStockpileFullNoiseTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE0FD4); diff --git a/src/OpenSHC/Globals/g_dwLastStockpileFullVoiceTime.hpp b/src/OpenSHC/Globals/g_dwLastStockpileFullVoiceTime.hpp new file mode 100644 index 00000000..a5ad2776 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLastStockpileFullVoiceTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLastStockpileFullVoiceTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE0FDC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00EE0FDC) g_dwLastStockpileFullVoiceTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE0FDC); diff --git a/src/OpenSHC/Globals/g_dwLobbyMapDescScrollOffset.hpp b/src/OpenSHC/Globals/g_dwLobbyMapDescScrollOffset.hpp new file mode 100644 index 00000000..0ae756eb --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLobbyMapDescScrollOffset.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLobbyMapDescScrollOffset.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B960F4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B960F4) g_dwLobbyMapDescScrollOffset; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B960F4); diff --git a/src/OpenSHC/Globals/g_dwLobbyMapListSelection.hpp b/src/OpenSHC/Globals/g_dwLobbyMapListSelection.hpp new file mode 100644 index 00000000..81e9785f --- /dev/null +++ b/src/OpenSHC/Globals/g_dwLobbyMapListSelection.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwLobbyMapListSelection.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B960DC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B960DC) g_dwLobbyMapListSelection; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B960DC); diff --git a/src/OpenSHC/Globals/g_dwMapListScrollRange.hpp b/src/OpenSHC/Globals/g_dwMapListScrollRange.hpp new file mode 100644 index 00000000..92827a1e --- /dev/null +++ b/src/OpenSHC/Globals/g_dwMapListScrollRange.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwMapListScrollRange.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95B74 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B95B74) g_dwMapListScrollRange; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95B74); diff --git a/src/OpenSHC/Globals/g_dwMenuSelectedPlayerSlot.hpp b/src/OpenSHC/Globals/g_dwMenuSelectedPlayerSlot.hpp new file mode 100644 index 00000000..4cf1890b --- /dev/null +++ b/src/OpenSHC/Globals/g_dwMenuSelectedPlayerSlot.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwMenuSelectedPlayerSlot.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95960 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B95960) g_dwMenuSelectedPlayerSlot; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95960); diff --git a/src/OpenSHC/Globals/g_dwMissionTransitionStartTime.hpp b/src/OpenSHC/Globals/g_dwMissionTransitionStartTime.hpp new file mode 100644 index 00000000..deea3519 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwMissionTransitionStartTime.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwMissionTransitionStartTime.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED27B4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED27B4) g_dwMissionTransitionStartTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED27B4); diff --git a/src/OpenSHC/Globals/g_dwPlacementDragLastTile.hpp b/src/OpenSHC/Globals/g_dwPlacementDragLastTile.hpp new file mode 100644 index 00000000..8c6c7c3b --- /dev/null +++ b/src/OpenSHC/Globals/g_dwPlacementDragLastTile.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwPlacementDragLastTile.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B96110 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B96110) g_dwPlacementDragLastTile; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B96110); diff --git a/src/OpenSHC/Globals/g_dwPlayerInfoHoverActive.hpp b/src/OpenSHC/Globals/g_dwPlayerInfoHoverActive.hpp new file mode 100644 index 00000000..94e69762 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwPlayerInfoHoverActive.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwPlayerInfoHoverActive.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5530 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5530) g_dwPlayerInfoHoverActive; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5530); diff --git a/src/OpenSHC/Globals/g_dwRankingGamesCountdown.hpp b/src/OpenSHC/Globals/g_dwRankingGamesCountdown.hpp new file mode 100644 index 00000000..c7e17557 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwRankingGamesCountdown.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwRankingGamesCountdown.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3120 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED3120) g_dwRankingGamesCountdown; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3120); diff --git a/src/OpenSHC/Globals/g_dwRankingGamesSelection.hpp b/src/OpenSHC/Globals/g_dwRankingGamesSelection.hpp new file mode 100644 index 00000000..a61402d5 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwRankingGamesSelection.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwRankingGamesSelection.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED27A0 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED27A0) g_dwRankingGamesSelection; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED27A0); diff --git a/src/OpenSHC/Globals/g_dwRenderCurrentTileLogic.hpp b/src/OpenSHC/Globals/g_dwRenderCurrentTileLogic.hpp new file mode 100644 index 00000000..5bde484b --- /dev/null +++ b/src/OpenSHC/Globals/g_dwRenderCurrentTileLogic.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwRenderCurrentTileLogic.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3148 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED3148) g_dwRenderCurrentTileLogic; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3148); diff --git a/src/OpenSHC/Globals/g_dwRenderCurrentTileWallGfx.hpp b/src/OpenSHC/Globals/g_dwRenderCurrentTileWallGfx.hpp new file mode 100644 index 00000000..dc64f8d2 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwRenderCurrentTileWallGfx.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwRenderCurrentTileWallGfx.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED314C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED314C) g_dwRenderCurrentTileWallGfx; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED314C); diff --git a/src/OpenSHC/Globals/g_dwRenderTileScreenY.hpp b/src/OpenSHC/Globals/g_dwRenderTileScreenY.hpp new file mode 100644 index 00000000..8d47e8b5 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwRenderTileScreenY.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwRenderTileScreenY.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3154 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED3154) g_dwRenderTileScreenY; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3154); diff --git a/src/OpenSHC/Globals/g_dwRoundtableInteractFlag.hpp b/src/OpenSHC/Globals/g_dwRoundtableInteractFlag.hpp new file mode 100644 index 00000000..bd8f73f8 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwRoundtableInteractFlag.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwRoundtableInteractFlag.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF4288 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF4288) g_dwRoundtableInteractFlag; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF4288); diff --git a/src/OpenSHC/Globals/g_dwRoundtableSelection.hpp b/src/OpenSHC/Globals/g_dwRoundtableSelection.hpp new file mode 100644 index 00000000..003da72f --- /dev/null +++ b/src/OpenSHC/Globals/g_dwRoundtableSelection.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwRoundtableSelection.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF423C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF423C) g_dwRoundtableSelection; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF423C); diff --git a/src/OpenSHC/Globals/g_dwScenarioDescEditMode.hpp b/src/OpenSHC/Globals/g_dwScenarioDescEditMode.hpp new file mode 100644 index 00000000..32e9c6dc --- /dev/null +++ b/src/OpenSHC/Globals/g_dwScenarioDescEditMode.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwScenarioDescEditMode.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED27BC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED27BC) g_dwScenarioDescEditMode; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED27BC); diff --git a/src/OpenSHC/Globals/g_dwScenarioDescScrollPage.hpp b/src/OpenSHC/Globals/g_dwScenarioDescScrollPage.hpp new file mode 100644 index 00000000..b6dcb274 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwScenarioDescScrollPage.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwScenarioDescScrollPage.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB0B24 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB0B24) g_dwScenarioDescScrollPage; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB0B24); diff --git a/src/OpenSHC/Globals/g_dwScenarioDescriptionMode.hpp b/src/OpenSHC/Globals/g_dwScenarioDescriptionMode.hpp new file mode 100644 index 00000000..3ab7bbd5 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwScenarioDescriptionMode.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwScenarioDescriptionMode.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED2798 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED2798) g_dwScenarioDescriptionMode; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED2798); diff --git a/src/OpenSHC/Globals/g_dwSkirmishAIOpponentCount.hpp b/src/OpenSHC/Globals/g_dwSkirmishAIOpponentCount.hpp new file mode 100644 index 00000000..00608e73 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwSkirmishAIOpponentCount.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwSkirmishAIOpponentCount.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B60 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B60) g_dwSkirmishAIOpponentCount; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B60); diff --git a/src/OpenSHC/Globals/g_dwSpeechMuteFlag.hpp b/src/OpenSHC/Globals/g_dwSpeechMuteFlag.hpp new file mode 100644 index 00000000..06d66b47 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwSpeechMuteFlag.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwSpeechMuteFlag.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B986F0 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B986F0) g_dwSpeechMuteFlag; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B986F0); diff --git a/src/OpenSHC/Globals/g_dwSpriteBlitClipCounter.hpp b/src/OpenSHC/Globals/g_dwSpriteBlitClipCounter.hpp new file mode 100644 index 00000000..c7f8198d --- /dev/null +++ b/src/OpenSHC/Globals/g_dwSpriteBlitClipCounter.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwSpriteBlitClipCounter.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3170 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED3170) g_dwSpriteBlitClipCounter; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3170); diff --git a/src/OpenSHC/Globals/g_dwSpriteBlitRowMode.hpp b/src/OpenSHC/Globals/g_dwSpriteBlitRowMode.hpp new file mode 100644 index 00000000..bc36f005 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwSpriteBlitRowMode.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwSpriteBlitRowMode.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED317C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED317C) g_dwSpriteBlitRowMode; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED317C); diff --git a/src/OpenSHC/Globals/g_dwTreeUpdateTime.hpp b/src/OpenSHC/Globals/g_dwTreeUpdateTime.hpp new file mode 100644 index 00000000..747533ad --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTreeUpdateTime.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTreeUpdateTime.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED31A0 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED31A0) g_dwTreeUpdateTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED31A0); diff --git a/src/OpenSHC/Globals/g_dwTutorialBoxAnimCounter.hpp b/src/OpenSHC/Globals/g_dwTutorialBoxAnimCounter.hpp new file mode 100644 index 00000000..be9ec207 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialBoxAnimCounter.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialBoxAnimCounter.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5644 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5644) g_dwTutorialBoxAnimCounter; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5644); diff --git a/src/OpenSHC/Globals/g_dwTutorialBoxPage.hpp b/src/OpenSHC/Globals/g_dwTutorialBoxPage.hpp new file mode 100644 index 00000000..0799f7cf --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialBoxPage.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialBoxPage.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF556C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF556C) g_dwTutorialBoxPage; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF556C); diff --git a/src/OpenSHC/Globals/g_dwTutorialGranaryHintActive.hpp b/src/OpenSHC/Globals/g_dwTutorialGranaryHintActive.hpp new file mode 100644 index 00000000..9b0c49b7 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialGranaryHintActive.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialGranaryHintActive.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5558 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5558) g_dwTutorialGranaryHintActive; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5558); diff --git a/src/OpenSHC/Globals/g_dwTutorialHighlightActive.hpp b/src/OpenSHC/Globals/g_dwTutorialHighlightActive.hpp new file mode 100644 index 00000000..bbcfcf6c --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialHighlightActive.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialHighlightActive.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5564 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5564) g_dwTutorialHighlightActive; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5564); diff --git a/src/OpenSHC/Globals/g_dwTutorialHighlightTime.hpp b/src/OpenSHC/Globals/g_dwTutorialHighlightTime.hpp new file mode 100644 index 00000000..7b51b19f --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialHighlightTime.hpp @@ -0,0 +1,21 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialHighlightTime.hpp' +*/ + +#pragma once + +#include "WinDef.h" + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5568 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(DWORD, false, Address::SHC_3BB0A8C1_0x00DF5568) g_dwTutorialHighlightTime; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5568); diff --git a/src/OpenSHC/Globals/g_dwTutorialLastBuildingAction.hpp b/src/OpenSHC/Globals/g_dwTutorialLastBuildingAction.hpp new file mode 100644 index 00000000..e724ed98 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialLastBuildingAction.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialLastBuildingAction.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5588 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5588) g_dwTutorialLastBuildingAction; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5588); diff --git a/src/OpenSHC/Globals/g_dwTutorialLastBuildingType.hpp b/src/OpenSHC/Globals/g_dwTutorialLastBuildingType.hpp new file mode 100644 index 00000000..cde83e1c --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialLastBuildingType.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialLastBuildingType.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF558C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF558C) g_dwTutorialLastBuildingType; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF558C); diff --git a/src/OpenSHC/Globals/g_dwTutorialManorhouseHintActive.hpp b/src/OpenSHC/Globals/g_dwTutorialManorhouseHintActive.hpp new file mode 100644 index 00000000..f85da89c --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialManorhouseHintActive.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialManorhouseHintActive.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5560 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5560) g_dwTutorialManorhouseHintActive; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5560); diff --git a/src/OpenSHC/Globals/g_dwTutorialMaxStep.hpp b/src/OpenSHC/Globals/g_dwTutorialMaxStep.hpp new file mode 100644 index 00000000..6f42aa00 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialMaxStep.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialMaxStep.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF555C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF555C) g_dwTutorialMaxStep; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF555C); diff --git a/src/OpenSHC/Globals/g_dwTutorialPointerTimer.hpp b/src/OpenSHC/Globals/g_dwTutorialPointerTimer.hpp new file mode 100644 index 00000000..3955d591 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialPointerTimer.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialPointerTimer.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5540 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5540) g_dwTutorialPointerTimer; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5540); diff --git a/src/OpenSHC/Globals/g_dwTutorialStateMachineStep.hpp b/src/OpenSHC/Globals/g_dwTutorialStateMachineStep.hpp new file mode 100644 index 00000000..cbde6931 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwTutorialStateMachineStep.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwTutorialStateMachineStep.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5590 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5590) g_dwTutorialStateMachineStep; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5590); diff --git a/src/OpenSHC/Globals/g_dwViewKeepCycleIndex.hpp b/src/OpenSHC/Globals/g_dwViewKeepCycleIndex.hpp new file mode 100644 index 00000000..2ddf7974 --- /dev/null +++ b/src/OpenSHC/Globals/g_dwViewKeepCycleIndex.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_dwViewKeepCycleIndex.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B9840C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B9840C) g_dwViewKeepCycleIndex; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B9840C); diff --git a/src/OpenSHC/Globals/g_fAmbientFadeAccum.hpp b/src/OpenSHC/Globals/g_fAmbientFadeAccum.hpp new file mode 100644 index 00000000..b2f43806 --- /dev/null +++ b/src/OpenSHC/Globals/g_fAmbientFadeAccum.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_fAmbientFadeAccum.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B986F8 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(float, false, Address::SHC_3BB0A8C1_0x00B986F8) g_fAmbientFadeAccum; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B986F8); diff --git a/src/OpenSHC/Globals/g_fAmbientFadeCurrent.hpp b/src/OpenSHC/Globals/g_fAmbientFadeCurrent.hpp new file mode 100644 index 00000000..402655ea --- /dev/null +++ b/src/OpenSHC/Globals/g_fAmbientFadeCurrent.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_fAmbientFadeCurrent.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98704 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(float, false, Address::SHC_3BB0A8C1_0x00B98704) g_fAmbientFadeCurrent; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98704); diff --git a/src/OpenSHC/Globals/g_fTrimMenuStringScale.hpp b/src/OpenSHC/Globals/g_fTrimMenuStringScale.hpp new file mode 100644 index 00000000..f658f3e3 --- /dev/null +++ b/src/OpenSHC/Globals/g_fTrimMenuStringScale.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_fTrimMenuStringScale.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B1C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(float, false, Address::SHC_3BB0A8C1_0x00EB9B1C) g_fTrimMenuStringScale; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B1C); diff --git a/src/OpenSHC/Globals/g_fTrimMenuStringWidth.hpp b/src/OpenSHC/Globals/g_fTrimMenuStringWidth.hpp new file mode 100644 index 00000000..5faf8b0d --- /dev/null +++ b/src/OpenSHC/Globals/g_fTrimMenuStringWidth.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_fTrimMenuStringWidth.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B24 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(float, false, Address::SHC_3BB0A8C1_0x00EB9B24) g_fTrimMenuStringWidth; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B24); diff --git a/src/OpenSHC/Globals/g_fVolumeTweakAccumA.hpp b/src/OpenSHC/Globals/g_fVolumeTweakAccumA.hpp new file mode 100644 index 00000000..7a348859 --- /dev/null +++ b/src/OpenSHC/Globals/g_fVolumeTweakAccumA.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_fVolumeTweakAccumA.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B986E8 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(float, false, Address::SHC_3BB0A8C1_0x00B986E8) g_fVolumeTweakAccumA; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B986E8); diff --git a/src/OpenSHC/Globals/g_fVolumeTweakAccumB.hpp b/src/OpenSHC/Globals/g_fVolumeTweakAccumB.hpp new file mode 100644 index 00000000..10d597be --- /dev/null +++ b/src/OpenSHC/Globals/g_fVolumeTweakAccumB.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_fVolumeTweakAccumB.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B986EC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(float, false, Address::SHC_3BB0A8C1_0x00B986EC) g_fVolumeTweakAccumB; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B986EC); diff --git a/src/OpenSHC/Globals/g_nAlliesMenuValue.hpp b/src/OpenSHC/Globals/g_nAlliesMenuValue.hpp new file mode 100644 index 00000000..fd5151c4 --- /dev/null +++ b/src/OpenSHC/Globals/g_nAlliesMenuValue.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nAlliesMenuValue.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF51F4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF51F4) g_nAlliesMenuValue; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF51F4); diff --git a/src/OpenSHC/Globals/g_nAlliesOrderValue.hpp b/src/OpenSHC/Globals/g_nAlliesOrderValue.hpp new file mode 100644 index 00000000..a7c171ae --- /dev/null +++ b/src/OpenSHC/Globals/g_nAlliesOrderValue.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nAlliesOrderValue.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF51FC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF51FC) g_nAlliesOrderValue; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF51FC); diff --git a/src/OpenSHC/Globals/g_nArmyMenuRenderCounter.hpp b/src/OpenSHC/Globals/g_nArmyMenuRenderCounter.hpp new file mode 100644 index 00000000..7b563329 --- /dev/null +++ b/src/OpenSHC/Globals/g_nArmyMenuRenderCounter.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nArmyMenuRenderCounter.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B9845C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B9845C) g_nArmyMenuRenderCounter; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B9845C); diff --git a/src/OpenSHC/Globals/g_nBuildingMenuMin1A.hpp b/src/OpenSHC/Globals/g_nBuildingMenuMin1A.hpp new file mode 100644 index 00000000..8accf5bd --- /dev/null +++ b/src/OpenSHC/Globals/g_nBuildingMenuMin1A.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nBuildingMenuMin1A.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF3350 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF3350) g_nBuildingMenuMin1A; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF3350); diff --git a/src/OpenSHC/Globals/g_nBuildingMenuMin1B.hpp b/src/OpenSHC/Globals/g_nBuildingMenuMin1B.hpp new file mode 100644 index 00000000..20be9b5a --- /dev/null +++ b/src/OpenSHC/Globals/g_nBuildingMenuMin1B.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nBuildingMenuMin1B.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF335C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00DF335C) g_nBuildingMenuMin1B; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF335C); diff --git a/src/OpenSHC/Globals/g_nCampaignAnimFrameCounter.hpp b/src/OpenSHC/Globals/g_nCampaignAnimFrameCounter.hpp new file mode 100644 index 00000000..e0f02136 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCampaignAnimFrameCounter.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCampaignAnimFrameCounter.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3144 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00ED3144) g_nCampaignAnimFrameCounter; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3144); diff --git a/src/OpenSHC/Globals/g_nCampaignAnimReady.hpp b/src/OpenSHC/Globals/g_nCampaignAnimReady.hpp new file mode 100644 index 00000000..a5ec4912 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCampaignAnimReady.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCampaignAnimReady.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3114 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00ED3114) g_nCampaignAnimReady; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3114); diff --git a/src/OpenSHC/Globals/g_nCampaignHotspotsLoaded.hpp b/src/OpenSHC/Globals/g_nCampaignHotspotsLoaded.hpp new file mode 100644 index 00000000..3750a6bf --- /dev/null +++ b/src/OpenSHC/Globals/g_nCampaignHotspotsLoaded.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCampaignHotspotsLoaded.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3110 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED3110) g_nCampaignHotspotsLoaded; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3110); diff --git a/src/OpenSHC/Globals/g_nChapelMarriageResult.hpp b/src/OpenSHC/Globals/g_nChapelMarriageResult.hpp new file mode 100644 index 00000000..3a433663 --- /dev/null +++ b/src/OpenSHC/Globals/g_nChapelMarriageResult.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nChapelMarriageResult.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B9843C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B9843C) g_nChapelMarriageResult; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B9843C); diff --git a/src/OpenSHC/Globals/g_nChapelRenderCounterA.hpp b/src/OpenSHC/Globals/g_nChapelRenderCounterA.hpp new file mode 100644 index 00000000..78ee0d72 --- /dev/null +++ b/src/OpenSHC/Globals/g_nChapelRenderCounterA.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nChapelRenderCounterA.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98428 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B98428) g_nChapelRenderCounterA; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98428); diff --git a/src/OpenSHC/Globals/g_nChapelRenderCounterB.hpp b/src/OpenSHC/Globals/g_nChapelRenderCounterB.hpp new file mode 100644 index 00000000..a534fb0a --- /dev/null +++ b/src/OpenSHC/Globals/g_nChapelRenderCounterB.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nChapelRenderCounterB.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B9842C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B9842C) g_nChapelRenderCounterB; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B9842C); diff --git a/src/OpenSHC/Globals/g_nChapelRenderCounterC.hpp b/src/OpenSHC/Globals/g_nChapelRenderCounterC.hpp new file mode 100644 index 00000000..4ba04abe --- /dev/null +++ b/src/OpenSHC/Globals/g_nChapelRenderCounterC.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nChapelRenderCounterC.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98430 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B98430) g_nChapelRenderCounterC; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98430); diff --git a/src/OpenSHC/Globals/g_nCreditsAdvanceField.hpp b/src/OpenSHC/Globals/g_nCreditsAdvanceField.hpp new file mode 100644 index 00000000..858a4759 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCreditsAdvanceField.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCreditsAdvanceField.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED2BD8 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED2BD8) g_nCreditsAdvanceField; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED2BD8); diff --git a/src/OpenSHC/Globals/g_nCreditsAdvanceIndex.hpp b/src/OpenSHC/Globals/g_nCreditsAdvanceIndex.hpp new file mode 100644 index 00000000..959d0a58 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCreditsAdvanceIndex.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCreditsAdvanceIndex.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9AC0 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EB9AC0) g_nCreditsAdvanceIndex; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9AC0); diff --git a/src/OpenSHC/Globals/g_nCreditsCmdField4.hpp b/src/OpenSHC/Globals/g_nCreditsCmdField4.hpp new file mode 100644 index 00000000..2b10f040 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCreditsCmdField4.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCreditsCmdField4.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB1234 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB1234) g_nCreditsCmdField4; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB1234); diff --git a/src/OpenSHC/Globals/g_nCreditsCmdField5.hpp b/src/OpenSHC/Globals/g_nCreditsCmdField5.hpp new file mode 100644 index 00000000..2a2f4f76 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCreditsCmdField5.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCreditsCmdField5.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB0E30 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EB0E30) g_nCreditsCmdField5; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB0E30); diff --git a/src/OpenSHC/Globals/g_nCreditsCmdX.hpp b/src/OpenSHC/Globals/g_nCreditsCmdX.hpp new file mode 100644 index 00000000..0e90562e --- /dev/null +++ b/src/OpenSHC/Globals/g_nCreditsCmdX.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCreditsCmdX.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9AF4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9AF4) g_nCreditsCmdX; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9AF4); diff --git a/src/OpenSHC/Globals/g_nCreditsDelayTimer.hpp b/src/OpenSHC/Globals/g_nCreditsDelayTimer.hpp new file mode 100644 index 00000000..e4b11287 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCreditsDelayTimer.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCreditsDelayTimer.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EC083C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EC083C) g_nCreditsDelayTimer; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EC083C); diff --git a/src/OpenSHC/Globals/g_nCreditsPlaybackState.hpp b/src/OpenSHC/Globals/g_nCreditsPlaybackState.hpp new file mode 100644 index 00000000..f901b8e2 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCreditsPlaybackState.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCreditsPlaybackState.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED27A4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00ED27A4) g_nCreditsPlaybackState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED27A4); diff --git a/src/OpenSHC/Globals/g_nCreditsSequenceIndex.hpp b/src/OpenSHC/Globals/g_nCreditsSequenceIndex.hpp new file mode 100644 index 00000000..207a72ec --- /dev/null +++ b/src/OpenSHC/Globals/g_nCreditsSequenceIndex.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCreditsSequenceIndex.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB1230 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EB1230) g_nCreditsSequenceIndex; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB1230); diff --git a/src/OpenSHC/Globals/g_nCrusadeEndscreenState.hpp b/src/OpenSHC/Globals/g_nCrusadeEndscreenState.hpp new file mode 100644 index 00000000..615bac98 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCrusadeEndscreenState.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCrusadeEndscreenState.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED27B8 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED27B8) g_nCrusadeEndscreenState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED27B8); diff --git a/src/OpenSHC/Globals/g_nCrusadeMapFlag.hpp b/src/OpenSHC/Globals/g_nCrusadeMapFlag.hpp new file mode 100644 index 00000000..f1b35feb --- /dev/null +++ b/src/OpenSHC/Globals/g_nCrusadeMapFlag.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCrusadeMapFlag.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B48 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EB9B48) g_nCrusadeMapFlag; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B48); diff --git a/src/OpenSHC/Globals/g_nCrusadeMapState.hpp b/src/OpenSHC/Globals/g_nCrusadeMapState.hpp new file mode 100644 index 00000000..19a6f359 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCrusadeMapState.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCrusadeMapState.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED2BDC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED2BDC) g_nCrusadeMapState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED2BDC); diff --git a/src/OpenSHC/Globals/g_nCurrentGmImageIndex.hpp b/src/OpenSHC/Globals/g_nCurrentGmImageIndex.hpp new file mode 100644 index 00000000..5da95fc2 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCurrentGmImageIndex.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCurrentGmImageIndex.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED316C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED316C) g_nCurrentGmImageIndex; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED316C); diff --git a/src/OpenSHC/Globals/g_nCurrentSignpostIndex.hpp b/src/OpenSHC/Globals/g_nCurrentSignpostIndex.hpp new file mode 100644 index 00000000..b0b2cae0 --- /dev/null +++ b/src/OpenSHC/Globals/g_nCurrentSignpostIndex.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nCurrentSignpostIndex.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5538 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5538) g_nCurrentSignpostIndex; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5538); diff --git a/src/OpenSHC/Globals/g_nDragSelectActive.hpp b/src/OpenSHC/Globals/g_nDragSelectActive.hpp new file mode 100644 index 00000000..d4c33817 --- /dev/null +++ b/src/OpenSHC/Globals/g_nDragSelectActive.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nDragSelectActive.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98424 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B98424) g_nDragSelectActive; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98424); diff --git a/src/OpenSHC/Globals/g_nDragSelectAnchorX.hpp b/src/OpenSHC/Globals/g_nDragSelectAnchorX.hpp new file mode 100644 index 00000000..c8b6709a --- /dev/null +++ b/src/OpenSHC/Globals/g_nDragSelectAnchorX.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nDragSelectAnchorX.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98420 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B98420) g_nDragSelectAnchorX; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98420); diff --git a/src/OpenSHC/Globals/g_nDragSelectAnchorY.hpp b/src/OpenSHC/Globals/g_nDragSelectAnchorY.hpp new file mode 100644 index 00000000..790f3adf --- /dev/null +++ b/src/OpenSHC/Globals/g_nDragSelectAnchorY.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nDragSelectAnchorY.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B9841C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B9841C) g_nDragSelectAnchorY; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B9841C); diff --git a/src/OpenSHC/Globals/g_nGameLostState.hpp b/src/OpenSHC/Globals/g_nGameLostState.hpp new file mode 100644 index 00000000..c294f0a2 --- /dev/null +++ b/src/OpenSHC/Globals/g_nGameLostState.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nGameLostState.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED279C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED279C) g_nGameLostState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED279C); diff --git a/src/OpenSHC/Globals/g_nGametypeSelectionFlag.hpp b/src/OpenSHC/Globals/g_nGametypeSelectionFlag.hpp new file mode 100644 index 00000000..6032e64c --- /dev/null +++ b/src/OpenSHC/Globals/g_nGametypeSelectionFlag.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nGametypeSelectionFlag.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95B64 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00B95B64) g_nGametypeSelectionFlag; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95B64); diff --git a/src/OpenSHC/Globals/g_nGenieSpeechStateA.hpp b/src/OpenSHC/Globals/g_nGenieSpeechStateA.hpp new file mode 100644 index 00000000..c2d9f618 --- /dev/null +++ b/src/OpenSHC/Globals/g_nGenieSpeechStateA.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nGenieSpeechStateA.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98484 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00B98484) g_nGenieSpeechStateA; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98484); diff --git a/src/OpenSHC/Globals/g_nGenieSpeechStateB.hpp b/src/OpenSHC/Globals/g_nGenieSpeechStateB.hpp new file mode 100644 index 00000000..45ff17e4 --- /dev/null +++ b/src/OpenSHC/Globals/g_nGenieSpeechStateB.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nGenieSpeechStateB.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98698 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00B98698) g_nGenieSpeechStateB; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98698); diff --git a/src/OpenSHC/Globals/g_nGenieSpeechStateC.hpp b/src/OpenSHC/Globals/g_nGenieSpeechStateC.hpp new file mode 100644 index 00000000..a5340004 --- /dev/null +++ b/src/OpenSHC/Globals/g_nGenieSpeechStateC.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nGenieSpeechStateC.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98664 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00B98664) g_nGenieSpeechStateC; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98664); diff --git a/src/OpenSHC/Globals/g_nGranaryMenuValue.hpp b/src/OpenSHC/Globals/g_nGranaryMenuValue.hpp new file mode 100644 index 00000000..ffcde153 --- /dev/null +++ b/src/OpenSHC/Globals/g_nGranaryMenuValue.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nGranaryMenuValue.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B96120 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00B96120) g_nGranaryMenuValue; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B96120); diff --git a/src/OpenSHC/Globals/g_nGreatestLordSaveNumber.hpp b/src/OpenSHC/Globals/g_nGreatestLordSaveNumber.hpp new file mode 100644 index 00000000..a36174d0 --- /dev/null +++ b/src/OpenSHC/Globals/g_nGreatestLordSaveNumber.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nGreatestLordSaveNumber.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED3118 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED3118) g_nGreatestLordSaveNumber; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED3118); diff --git a/src/OpenSHC/Globals/g_nGreatestLordScreenFlag.hpp b/src/OpenSHC/Globals/g_nGreatestLordScreenFlag.hpp new file mode 100644 index 00000000..13b4dc86 --- /dev/null +++ b/src/OpenSHC/Globals/g_nGreatestLordScreenFlag.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nGreatestLordScreenFlag.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB0E44 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EB0E44) g_nGreatestLordScreenFlag; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB0E44); diff --git a/src/OpenSHC/Globals/g_nHelpBorderHeightInset.hpp b/src/OpenSHC/Globals/g_nHelpBorderHeightInset.hpp new file mode 100644 index 00000000..93f4386a --- /dev/null +++ b/src/OpenSHC/Globals/g_nHelpBorderHeightInset.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nHelpBorderHeightInset.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF2968 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00DF2968) g_nHelpBorderHeightInset; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF2968); diff --git a/src/OpenSHC/Globals/g_nHelpBorderWidthInset.hpp b/src/OpenSHC/Globals/g_nHelpBorderWidthInset.hpp new file mode 100644 index 00000000..65dc3157 --- /dev/null +++ b/src/OpenSHC/Globals/g_nHelpBorderWidthInset.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nHelpBorderWidthInset.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF2970 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00DF2970) g_nHelpBorderWidthInset; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF2970); diff --git a/src/OpenSHC/Globals/g_nLastBarrackUnitId.hpp b/src/OpenSHC/Globals/g_nLastBarrackUnitId.hpp new file mode 100644 index 00000000..c27c7b04 --- /dev/null +++ b/src/OpenSHC/Globals/g_nLastBarrackUnitId.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nLastBarrackUnitId.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF3374 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF3374) g_nLastBarrackUnitId; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF3374); diff --git a/src/OpenSHC/Globals/g_nLastPortraitClickId.hpp b/src/OpenSHC/Globals/g_nLastPortraitClickId.hpp new file mode 100644 index 00000000..6a9ce1d2 --- /dev/null +++ b/src/OpenSHC/Globals/g_nLastPortraitClickId.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nLastPortraitClickId.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF3368 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00DF3368) g_nLastPortraitClickId; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF3368); diff --git a/src/OpenSHC/Globals/g_nLastThoughtBubbleUnitId.hpp b/src/OpenSHC/Globals/g_nLastThoughtBubbleUnitId.hpp new file mode 100644 index 00000000..020262db --- /dev/null +++ b/src/OpenSHC/Globals/g_nLastThoughtBubbleUnitId.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nLastThoughtBubbleUnitId.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1038 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE1038) g_nLastThoughtBubbleUnitId; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1038); diff --git a/src/OpenSHC/Globals/g_nLobbyScrollPosition.hpp b/src/OpenSHC/Globals/g_nLobbyScrollPosition.hpp new file mode 100644 index 00000000..20d186ec --- /dev/null +++ b/src/OpenSHC/Globals/g_nLobbyScrollPosition.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nLobbyScrollPosition.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B960F0 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00B960F0) g_nLobbyScrollPosition; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B960F0); diff --git a/src/OpenSHC/Globals/g_nMainMenuCurrentItem.hpp b/src/OpenSHC/Globals/g_nMainMenuCurrentItem.hpp new file mode 100644 index 00000000..e043f454 --- /dev/null +++ b/src/OpenSHC/Globals/g_nMainMenuCurrentItem.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nMainMenuCurrentItem.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95ABC +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00B95ABC) g_nMainMenuCurrentItem; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95ABC); diff --git a/src/OpenSHC/Globals/g_nMapFileHeaderLoaded.hpp b/src/OpenSHC/Globals/g_nMapFileHeaderLoaded.hpp new file mode 100644 index 00000000..86e294aa --- /dev/null +++ b/src/OpenSHC/Globals/g_nMapFileHeaderLoaded.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nMapFileHeaderLoaded.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9AE8 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EB9AE8) g_nMapFileHeaderLoaded; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9AE8); diff --git a/src/OpenSHC/Globals/g_nMarriageExcludeUnitA.hpp b/src/OpenSHC/Globals/g_nMarriageExcludeUnitA.hpp new file mode 100644 index 00000000..b9f9aefc --- /dev/null +++ b/src/OpenSHC/Globals/g_nMarriageExcludeUnitA.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nMarriageExcludeUnitA.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1028 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EE1028) g_nMarriageExcludeUnitA; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1028); diff --git a/src/OpenSHC/Globals/g_nMarriageExcludeUnitB.hpp b/src/OpenSHC/Globals/g_nMarriageExcludeUnitB.hpp new file mode 100644 index 00000000..455f2b01 --- /dev/null +++ b/src/OpenSHC/Globals/g_nMarriageExcludeUnitB.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nMarriageExcludeUnitB.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE102C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EE102C) g_nMarriageExcludeUnitB; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE102C); diff --git a/src/OpenSHC/Globals/g_nMenuViewInitFlag.hpp b/src/OpenSHC/Globals/g_nMenuViewInitFlag.hpp new file mode 100644 index 00000000..0d2b9be1 --- /dev/null +++ b/src/OpenSHC/Globals/g_nMenuViewInitFlag.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nMenuViewInitFlag.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B95F68 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00B95F68) g_nMenuViewInitFlag; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B95F68); diff --git a/src/OpenSHC/Globals/g_nMinimapInteractionValue.hpp b/src/OpenSHC/Globals/g_nMinimapInteractionValue.hpp new file mode 100644 index 00000000..c2219571 --- /dev/null +++ b/src/OpenSHC/Globals/g_nMinimapInteractionValue.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nMinimapInteractionValue.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00ED31D0 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00ED31D0) g_nMinimapInteractionValue; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00ED31D0); diff --git a/src/OpenSHC/Globals/g_nReligionMenuRenderCounter.hpp b/src/OpenSHC/Globals/g_nReligionMenuRenderCounter.hpp new file mode 100644 index 00000000..acbc8b7b --- /dev/null +++ b/src/OpenSHC/Globals/g_nReligionMenuRenderCounter.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nReligionMenuRenderCounter.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B98448 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B98448) g_nReligionMenuRenderCounter; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B98448); diff --git a/src/OpenSHC/Globals/g_nScrollingTextY.hpp b/src/OpenSHC/Globals/g_nScrollingTextY.hpp new file mode 100644 index 00000000..3d5e84fa --- /dev/null +++ b/src/OpenSHC/Globals/g_nScrollingTextY.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nScrollingTextY.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB0E28 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EB0E28) g_nScrollingTextY; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB0E28); diff --git a/src/OpenSHC/Globals/g_nSfxVoiceCounter.hpp b/src/OpenSHC/Globals/g_nSfxVoiceCounter.hpp new file mode 100644 index 00000000..858d58d7 --- /dev/null +++ b/src/OpenSHC/Globals/g_nSfxVoiceCounter.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nSfxVoiceCounter.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00B9869C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00B9869C) g_nSfxVoiceCounter; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00B9869C); diff --git a/src/OpenSHC/Globals/g_nSpecificUnitResult.hpp b/src/OpenSHC/Globals/g_nSpecificUnitResult.hpp new file mode 100644 index 00000000..d494b80f --- /dev/null +++ b/src/OpenSHC/Globals/g_nSpecificUnitResult.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nSpecificUnitResult.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE0FB4 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EE0FB4) g_nSpecificUnitResult; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE0FB4); diff --git a/src/OpenSHC/Globals/g_nThoughtBubbleCounter.hpp b/src/OpenSHC/Globals/g_nThoughtBubbleCounter.hpp new file mode 100644 index 00000000..0ecf2f41 --- /dev/null +++ b/src/OpenSHC/Globals/g_nThoughtBubbleCounter.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nThoughtBubbleCounter.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1034 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EE1034) g_nThoughtBubbleCounter; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1034); diff --git a/src/OpenSHC/Globals/g_nThoughtBubbleState.hpp b/src/OpenSHC/Globals/g_nThoughtBubbleState.hpp new file mode 100644 index 00000000..3106f9bd --- /dev/null +++ b/src/OpenSHC/Globals/g_nThoughtBubbleState.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nThoughtBubbleState.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1030 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EE1030) g_nThoughtBubbleState; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1030); diff --git a/src/OpenSHC/Globals/g_nTrimMenuStringAllowedWidth.hpp b/src/OpenSHC/Globals/g_nTrimMenuStringAllowedWidth.hpp new file mode 100644 index 00000000..e991197c --- /dev/null +++ b/src/OpenSHC/Globals/g_nTrimMenuStringAllowedWidth.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTrimMenuStringAllowedWidth.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B38 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B38) g_nTrimMenuStringAllowedWidth; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B38); diff --git a/src/OpenSHC/Globals/g_nTrimMenuStringFlag.hpp b/src/OpenSHC/Globals/g_nTrimMenuStringFlag.hpp new file mode 100644 index 00000000..61c09fe0 --- /dev/null +++ b/src/OpenSHC/Globals/g_nTrimMenuStringFlag.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTrimMenuStringFlag.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B20 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EB9B20) g_nTrimMenuStringFlag; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B20); diff --git a/src/OpenSHC/Globals/g_nTrimMenuStringFontSize.hpp b/src/OpenSHC/Globals/g_nTrimMenuStringFontSize.hpp new file mode 100644 index 00000000..294176a7 --- /dev/null +++ b/src/OpenSHC/Globals/g_nTrimMenuStringFontSize.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTrimMenuStringFontSize.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B40 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B40) g_nTrimMenuStringFontSize; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B40); diff --git a/src/OpenSHC/Globals/g_nTrimMenuStringIndex.hpp b/src/OpenSHC/Globals/g_nTrimMenuStringIndex.hpp new file mode 100644 index 00000000..dfa85d97 --- /dev/null +++ b/src/OpenSHC/Globals/g_nTrimMenuStringIndex.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTrimMenuStringIndex.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B2C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B2C) g_nTrimMenuStringIndex; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B2C); diff --git a/src/OpenSHC/Globals/g_nTrimMenuStringParam2.hpp b/src/OpenSHC/Globals/g_nTrimMenuStringParam2.hpp new file mode 100644 index 00000000..566b8974 --- /dev/null +++ b/src/OpenSHC/Globals/g_nTrimMenuStringParam2.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTrimMenuStringParam2.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B30 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B30) g_nTrimMenuStringParam2; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B30); diff --git a/src/OpenSHC/Globals/g_nTrimMenuStringParam3.hpp b/src/OpenSHC/Globals/g_nTrimMenuStringParam3.hpp new file mode 100644 index 00000000..e1ef7142 --- /dev/null +++ b/src/OpenSHC/Globals/g_nTrimMenuStringParam3.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTrimMenuStringParam3.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B34 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B34) g_nTrimMenuStringParam3; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B34); diff --git a/src/OpenSHC/Globals/g_nTrimMenuStringParam5.hpp b/src/OpenSHC/Globals/g_nTrimMenuStringParam5.hpp new file mode 100644 index 00000000..61d5cd4c --- /dev/null +++ b/src/OpenSHC/Globals/g_nTrimMenuStringParam5.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTrimMenuStringParam5.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B3C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B3C) g_nTrimMenuStringParam5; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B3C); diff --git a/src/OpenSHC/Globals/g_nTrimMenuStringResult.hpp b/src/OpenSHC/Globals/g_nTrimMenuStringResult.hpp new file mode 100644 index 00000000..11e2f68f --- /dev/null +++ b/src/OpenSHC/Globals/g_nTrimMenuStringResult.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTrimMenuStringResult.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EB9B28 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EB9B28) g_nTrimMenuStringResult; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EB9B28); diff --git a/src/OpenSHC/Globals/g_nTutorialEventCounterA.hpp b/src/OpenSHC/Globals/g_nTutorialEventCounterA.hpp new file mode 100644 index 00000000..475aab45 --- /dev/null +++ b/src/OpenSHC/Globals/g_nTutorialEventCounterA.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTutorialEventCounterA.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF557C +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00DF557C) g_nTutorialEventCounterA; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF557C); diff --git a/src/OpenSHC/Globals/g_nTutorialEventCounterB.hpp b/src/OpenSHC/Globals/g_nTutorialEventCounterB.hpp new file mode 100644 index 00000000..c0a6dbbc --- /dev/null +++ b/src/OpenSHC/Globals/g_nTutorialEventCounterB.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTutorialEventCounterB.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5584 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00DF5584) g_nTutorialEventCounterB; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5584); diff --git a/src/OpenSHC/Globals/g_nTutorialEventFlagA.hpp b/src/OpenSHC/Globals/g_nTutorialEventFlagA.hpp new file mode 100644 index 00000000..b1cb8c1b --- /dev/null +++ b/src/OpenSHC/Globals/g_nTutorialEventFlagA.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTutorialEventFlagA.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5574 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00DF5574) g_nTutorialEventFlagA; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5574); diff --git a/src/OpenSHC/Globals/g_nTutorialEventFlagB.hpp b/src/OpenSHC/Globals/g_nTutorialEventFlagB.hpp new file mode 100644 index 00000000..d3527d20 --- /dev/null +++ b/src/OpenSHC/Globals/g_nTutorialEventFlagB.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTutorialEventFlagB.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5580 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00DF5580) g_nTutorialEventFlagB; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5580); diff --git a/src/OpenSHC/Globals/g_nTutorialStateCurrent.hpp b/src/OpenSHC/Globals/g_nTutorialStateCurrent.hpp new file mode 100644 index 00000000..e77ddf20 --- /dev/null +++ b/src/OpenSHC/Globals/g_nTutorialStateCurrent.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTutorialStateCurrent.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5650 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5650) g_nTutorialStateCurrent; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5650); diff --git a/src/OpenSHC/Globals/g_nTutorialStatePrev.hpp b/src/OpenSHC/Globals/g_nTutorialStatePrev.hpp new file mode 100644 index 00000000..fb8446ca --- /dev/null +++ b/src/OpenSHC/Globals/g_nTutorialStatePrev.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nTutorialStatePrev.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00DF5654 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00DF5654) g_nTutorialStatePrev; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00DF5654); diff --git a/src/OpenSHC/Globals/g_nUnitActionButtonX.hpp b/src/OpenSHC/Globals/g_nUnitActionButtonX.hpp new file mode 100644 index 00000000..bba014d1 --- /dev/null +++ b/src/OpenSHC/Globals/g_nUnitActionButtonX.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nUnitActionButtonX.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1090 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EE1090) g_nUnitActionButtonX; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1090); diff --git a/src/OpenSHC/Globals/g_nUnitActionButtonY.hpp b/src/OpenSHC/Globals/g_nUnitActionButtonY.hpp new file mode 100644 index 00000000..f2ade03c --- /dev/null +++ b/src/OpenSHC/Globals/g_nUnitActionButtonY.hpp @@ -0,0 +1,19 @@ +/** + THIS FILE IS AUTO GENERATED + Communicate changes to the dev team (e.g. via a Pull Request). + Changes get lost otherwise. + + path: 'OpenSHC/Globals/g_nUnitActionButtonY.hpp' +*/ + +#pragma once + +// GLOBAL: STRONGHOLDCRUSADER 0x00EE1094 +// StructResolver::Instance::instance + +namespace OpenSHC { + +MACRO_STRUCT_RESOLVER(undefined4, false, Address::SHC_3BB0A8C1_0x00EE1094) g_nUnitActionButtonY; +} // namespace OpenSHC + +MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE1094); diff --git a/src/OpenSHC/IO.func.hpp b/src/OpenSHC/IO.func.hpp index 4fb77095..9de0fa2f 100644 --- a/src/OpenSHC/IO.func.hpp +++ b/src/OpenSHC/IO.func.hpp @@ -25,8 +25,8 @@ namespace IO_Func { void(__cdecl*)(Base64State* state), false, Address::SHC_3BB0A8C1_0x00487080, &OpenSHC::IO::Base64EncodeInit) Base64EncodeInit; - MACRO_FUNCTION_RESOLVER(byte(__stdcall*)(char param_1), false, Address::SHC_3BB0A8C1_0x00487090, - &OpenSHC::IO::Base64EncodeCharacterLookup) + MACRO_FUNCTION_RESOLVER( + undefined(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x00487090, &OpenSHC::IO::Base64EncodeCharacterLookup) Base64EncodeCharacterLookup; MACRO_FUNCTION_RESOLVER(int(__cdecl*)(byte* input, int length, undefined* output, Base64State* state), false, diff --git a/src/OpenSHC/IO.hpp b/src/OpenSHC/IO.hpp index 9108e31d..bcd54c4b 100644 --- a/src/OpenSHC/IO.hpp +++ b/src/OpenSHC/IO.hpp @@ -20,7 +20,7 @@ namespace IO { void __cdecl Base64EncodeInit(Base64State* state); - byte __stdcall Base64EncodeCharacterLookup(char param_1); + undefined __cdecl Base64EncodeCharacterLookup(); int __cdecl Base64Encode(byte* input, int length, undefined* output, Base64State* state); diff --git a/src/OpenSHC/IO/FilePackager.func.hpp b/src/OpenSHC/IO/FilePackager.func.hpp index 327bbcaa..07464c59 100644 --- a/src/OpenSHC/IO/FilePackager.func.hpp +++ b/src/OpenSHC/IO/FilePackager.func.hpp @@ -27,8 +27,8 @@ namespace IO { readMapOrSavFile; MACRO_FUNCTION_RESOLVER(void (FilePackager::*)(MapSectionAddress*, int), false, - Address::SHC_3BB0A8C1_0x004750E0, &FilePackager::readMapHeaderSiegeInfoUnk) - readMapHeaderSiegeInfoUnk; + Address::SHC_3BB0A8C1_0x004750E0, &FilePackager::readFilePackagerSectionByID) + readFilePackagerSectionByID; MACRO_FUNCTION_RESOLVER( void (FilePackager::*)(BOOLEnum), false, Address::SHC_3BB0A8C1_0x004752D0, &FilePackager::readMapHeader) diff --git a/src/OpenSHC/IO/FilePackager.hpp b/src/OpenSHC/IO/FilePackager.hpp index de786cb4..bcaa7d1b 100644 --- a/src/OpenSHC/IO/FilePackager.hpp +++ b/src/OpenSHC/IO/FilePackager.hpp @@ -61,7 +61,7 @@ namespace IO { void readMapOrSavFile(MapSectionAddress* mapSectionAddrArray); - void readMapHeaderSiegeInfoUnk(MapSectionAddress* mapSectionAddrArray, int sectionID); + void readFilePackagerSectionByID(MapSectionAddress* mapSectionAddrArray, int sectionID); void readMapHeader(BOOLEnum loadPreviewUnk); diff --git a/src/OpenSHC/IO/LowLevelMemory.func.hpp b/src/OpenSHC/IO/LowLevelMemory.func.hpp index d3ae5615..7d16aba1 100644 --- a/src/OpenSHC/IO/LowLevelMemory.func.hpp +++ b/src/OpenSHC/IO/LowLevelMemory.func.hpp @@ -16,37 +16,37 @@ namespace IO { Address::SHC_3BB0A8C1_0x0046A830, &LowLevelMemory::moveLowerThreeBytesIntoParam2) moveLowerThreeBytesIntoParam2; - MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A850, - &LowLevelMemory::setMemoryToValue_0x001) - setMemoryToValue_0x001; + MACRO_FUNCTION_RESOLVER( + void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A850, &LowLevelMemory::setMemoryToValue0x001) + setMemoryToValue0x001; - MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A890, - &LowLevelMemory::setMemoryToValue_0x002) - setMemoryToValue_0x002; + MACRO_FUNCTION_RESOLVER( + void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A890, &LowLevelMemory::setMemoryToValue0x002) + setMemoryToValue0x002; - MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A8D0, - &LowLevelMemory::setMemoryToValue_0x004) - setMemoryToValue_0x004; + MACRO_FUNCTION_RESOLVER( + void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A8D0, &LowLevelMemory::setMemoryToValue0x004) + setMemoryToValue0x004; - MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A910, - &LowLevelMemory::setMemoryToValue_0x010) - setMemoryToValue_0x010; + MACRO_FUNCTION_RESOLVER(undefined (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A910, + &LowLevelMemory::setMemoryToValue0x010) + setMemoryToValue0x010; - MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A970, - &LowLevelMemory::setMemoryToValue_0x100) - setMemoryToValue_0x100; + MACRO_FUNCTION_RESOLVER(undefined (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046A970, + &LowLevelMemory::setMemoryToValue0x100) + setMemoryToValue0x100; MACRO_FUNCTION_RESOLVER( - void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046AAF0, &LowLevelMemory::copyData_0x001) - copyData_0x001; + undefined (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046AAF0, &LowLevelMemory::copyData0x001) + copyData0x001; MACRO_FUNCTION_RESOLVER( - void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046AB30, &LowLevelMemory::copyData_0x010) - copyData_0x010; + undefined (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046AB30, &LowLevelMemory::copyData0x010) + copyData0x010; MACRO_FUNCTION_RESOLVER( - void (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046ABA0, &LowLevelMemory::copyData_0x100) - copyData_0x100; + undefined (LowLevelMemory::*)(), false, Address::SHC_3BB0A8C1_0x0046ABA0, &LowLevelMemory::copyData0x100) + copyData0x100; MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(char*, char*), false, Address::SHC_3BB0A8C1_0x0046AE50, &LowLevelMemory::copyStringUntilFirstDot) @@ -64,15 +64,15 @@ namespace IO { &LowLevelMemory::copyData) copyData; - MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(size_t, int, void*), false, Address::SHC_3BB0A8C1_0x00471860, + MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(int, int, void*), false, Address::SHC_3BB0A8C1_0x00471860, &LowLevelMemory::fillMemoryWithIntegerValue) fillMemoryWithIntegerValue; - MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(size_t, ushort, void*), false, + MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(undefined*, uint, undefined*), false, Address::SHC_3BB0A8C1_0x00471890, &LowLevelMemory::fillMemoryWithShortValue) fillMemoryWithShortValue; - MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(size_t, uchar, void*), false, Address::SHC_3BB0A8C1_0x004718C0, + MACRO_FUNCTION_RESOLVER(void (LowLevelMemory::*)(int, uchar, void*), false, Address::SHC_3BB0A8C1_0x004718C0, &LowLevelMemory::fillMemoryWithByteValue) fillMemoryWithByteValue; diff --git a/src/OpenSHC/IO/LowLevelMemory.hpp b/src/OpenSHC/IO/LowLevelMemory.hpp index e3176139..22a20121 100644 --- a/src/OpenSHC/IO/LowLevelMemory.hpp +++ b/src/OpenSHC/IO/LowLevelMemory.hpp @@ -38,21 +38,21 @@ namespace IO { void moveLowerThreeBytesIntoParam2(undefined4* src, undefined3* dst); - void setMemoryToValue_0x001(); + void setMemoryToValue0x001(); - void setMemoryToValue_0x002(); + void setMemoryToValue0x002(); - void setMemoryToValue_0x004(); + void setMemoryToValue0x004(); - void setMemoryToValue_0x010(); + undefined setMemoryToValue0x010(); - void setMemoryToValue_0x100(); + undefined setMemoryToValue0x100(); - void copyData_0x001(); + undefined copyData0x001(); - void copyData_0x010(); + undefined copyData0x010(); - void copyData_0x100(); + undefined copyData0x100(); void copyStringUntilFirstDot(char* param_1, char* param_2); @@ -62,11 +62,11 @@ namespace IO { void copyData(size_t size, void* src, void* destination); - void fillMemoryWithIntegerValue(size_t size, int value, void* destination); + void fillMemoryWithIntegerValue(int size, int value, void* destination); - void fillMemoryWithShortValue(size_t size, ushort shortValue, void* dst); + void fillMemoryWithShortValue(undefined* size, uint shortValue, undefined* dst); - void fillMemoryWithByteValue(size_t size, uchar value, void* destination); + void fillMemoryWithByteValue(int size, uchar value, void* destination); }; static_assert_cpp98_obj(sizeof(LowLevelMemory) == 20, LowLevelMemory); diff --git a/src/OpenSHC/IO/ResourceManager.func.hpp b/src/OpenSHC/IO/ResourceManager.func.hpp index dc7b5795..3827e684 100644 --- a/src/OpenSHC/IO/ResourceManager.func.hpp +++ b/src/OpenSHC/IO/ResourceManager.func.hpp @@ -2,7 +2,7 @@ path: 'OpenSHC/IO/ResourceManager.func.hpp' */ -#include "OpenSHC/IO/FileResourceType.hpp" +#include "OpenSHC/IO/FileResourceTypeInt.hpp" #include "OpenSHC/IO/ResourceManager.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -11,7 +11,7 @@ namespace OpenSHC { namespace IO { namespace ResourceManager_Func { - using OpenSHC::IO::FileResourceType; + using OpenSHC::IO::FileResourceTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(void (ResourceManager::*)(dword), false, Address::SHC_3BB0A8C1_0x0046C200, @@ -22,7 +22,7 @@ namespace IO { &ResourceManager::getChecksumOfMapByName) getChecksumOfMapByName; - MACRO_FUNCTION_RESOLVER(char* (ResourceManager::*)(int), false, Address::SHC_3BB0A8C1_0x0046C2E0, + MACRO_FUNCTION_RESOLVER(undefined (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x0046C2E0, &ResourceManager::getLoadedMapNameForIndex) getLoadedMapNameForIndex; @@ -39,20 +39,20 @@ namespace IO { doesFileExist; MACRO_FUNCTION_RESOLVER( - void (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x0046C450, &ResourceManager::setGfxFileFilter) - setGfxFileFilter; + void (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x0046C450, &ResourceManager::setupGfxFileDialog) + setupGfxFileDialog; MACRO_FUNCTION_RESOLVER( - void (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x0046C480, &ResourceManager::setHelpFileFilter) - setHelpFileFilter; + void (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x0046C480, &ResourceManager::setupHelpFileDialog) + setupHelpFileDialog; MACRO_FUNCTION_RESOLVER( - void (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x0046C4B0, &ResourceManager::setSoundFileFilter) - setSoundFileFilter; + void (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x0046C4B0, &ResourceManager::setupFxFileDialog) + setupFxFileDialog; MACRO_FUNCTION_RESOLVER(int (ResourceManager::*)(char*), false, Address::SHC_3BB0A8C1_0x0046C4E0, - &ResourceManager::getSimpleFirst1024ByteSumOfFile) - getSimpleFirst1024ByteSumOfFile; + &ResourceManager::getSignedByteSumOfFile_or_minus1) + getSignedByteSumOfFile_or_minus1; MACRO_FUNCTION_RESOLVER( void (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x00471C10, &ResourceManager::syncLoadedMapNames) @@ -67,16 +67,16 @@ namespace IO { replaceMapNameWith; MACRO_FUNCTION_RESOLVER(char* (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x00471D30, - &ResourceManager::getCurrentResourceCoreNameUnk) - getCurrentResourceCoreNameUnk; + &ResourceManager::getCurrentResourceBaseName) + getCurrentResourceBaseName; MACRO_FUNCTION_RESOLVER(BOOLEnum (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x00471DC0, &ResourceManager::doesFileOfActiveResourceExist) doesFileOfActiveResourceExist; MACRO_FUNCTION_RESOLVER(void (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x00471DF0, - &ResourceManager::resetOpenFileNameStruct) - resetOpenFileNameStruct; + &ResourceManager::initOpenFileNameStruct) + initOpenFileNameStruct; MACRO_FUNCTION_RESOLVER(BOOLEnum (ResourceManager::*)(void*, size_t), false, Address::SHC_3BB0A8C1_0x00471E50, &ResourceManager::readCurrentResourceIntoDestination) @@ -95,8 +95,8 @@ namespace IO { readNextPartOfCurrentResourceIntoMemory; MACRO_FUNCTION_RESOLVER(BOOLEnum (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x00472080, - &ResourceManager::showOpenGfxFileDialog) - showOpenGfxFileDialog; + &ResourceManager::showImportTgxDialog) + showImportTgxDialog; MACRO_FUNCTION_RESOLVER(BOOLEnum (ResourceManager::*)(undefined4), false, Address::SHC_3BB0A8C1_0x004720C0, &ResourceManager::showOpenHelpFileDialog) @@ -107,8 +107,8 @@ namespace IO { showSaveHelpFileDialog; MACRO_FUNCTION_RESOLVER(BOOLEnum (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x00472140, - &ResourceManager::showOpenSoundFileDialog) - showOpenSoundFileDialog; + &ResourceManager::showImportSoundDialog) + showImportSoundDialog; MACRO_FUNCTION_RESOLVER(int (ResourceManager::*)(), false, Address::SHC_3BB0A8C1_0x00472180, &ResourceManager::fileHashFunctionByteByByte) @@ -130,7 +130,7 @@ namespace IO { &ResourceManager::discoverMapFiles) discoverMapFiles; - MACRO_FUNCTION_RESOLVER(void (ResourceManager::*)(FileResourceType, char*), false, + MACRO_FUNCTION_RESOLVER(void (ResourceManager::*)(FileResourceTypeInt, char*), false, Address::SHC_3BB0A8C1_0x00478360, &ResourceManager::resolveResourceFileName) resolveResourceFileName; diff --git a/src/OpenSHC/IO/ResourceManager.hpp b/src/OpenSHC/IO/ResourceManager.hpp index d63cd74d..485ee9c4 100644 --- a/src/OpenSHC/IO/ResourceManager.hpp +++ b/src/OpenSHC/IO/ResourceManager.hpp @@ -8,7 +8,6 @@ #pragma once -#include "OpenSHC/IO/FileResourceType.hpp" #include "OpenSHC/IO/FileResourceTypeInt.hpp" #include "OpenSHC/IO/Helpers/OPENFILENAMEA_Truncated.hpp" #include "OpenSHC/Map/MapMetaInfo.hpp" @@ -19,7 +18,6 @@ namespace OpenSHC { namespace IO { - using OpenSHC::IO::FileResourceType; using OpenSHC::IO::FileResourceTypeInt; using OpenSHC::IO::Helpers::OPENFILENAMEA_Truncated; using OpenSHC::Map::MapMetaInfo; @@ -68,7 +66,7 @@ namespace IO { dword getChecksumOfMapByName(char* mapNameAddress); - char* getLoadedMapNameForIndex(int mapIndex); + undefined getLoadedMapNameForIndex(); char* getFileNameOfCurrentActiveResource(); @@ -76,13 +74,13 @@ namespace IO { BOOLEnum doesFileExist(char* filename); - void setGfxFileFilter(); + void setupGfxFileDialog(); - void setHelpFileFilter(); + void setupHelpFileDialog(); - void setSoundFileFilter(); + void setupFxFileDialog(); - int getSimpleFirst1024ByteSumOfFile(char* filename); + int getSignedByteSumOfFile_or_minus1(char* filename); void syncLoadedMapNames(); @@ -90,11 +88,11 @@ namespace IO { void replaceMapNameWith(dword id1, dword id2); - char* getCurrentResourceCoreNameUnk(); + char* getCurrentResourceBaseName(); BOOLEnum doesFileOfActiveResourceExist(); - void resetOpenFileNameStruct(); + void initOpenFileNameStruct(); BOOLEnum readCurrentResourceIntoDestination(void* destination, size_t size); @@ -104,13 +102,13 @@ namespace IO { BOOLEnum readNextPartOfCurrentResourceIntoMemory(void* destination, int partSize, char* fileExtension); - BOOLEnum showOpenGfxFileDialog(); + BOOLEnum showImportTgxDialog(); BOOLEnum showOpenHelpFileDialog(undefined4 param_1); BOOLEnum showSaveHelpFileDialog(); - BOOLEnum showOpenSoundFileDialog(); + BOOLEnum showImportSoundDialog(); int fileHashFunctionByteByByte(); @@ -122,7 +120,7 @@ namespace IO { void discoverMapFiles(char* param_1); - void resolveResourceFileName(FileResourceType resourceType, char* shortFileName); + void resolveResourceFileName(FileResourceTypeInt resourceType, char* shortFileName); void loadMapHeaders(BOOLEnum drawLoadingBar); diff --git a/src/OpenSHC/Input/MouseState.func.hpp b/src/OpenSHC/Input/MouseState.func.hpp index fbcd3b8f..f4fc7c98 100644 --- a/src/OpenSHC/Input/MouseState.func.hpp +++ b/src/OpenSHC/Input/MouseState.func.hpp @@ -2,7 +2,7 @@ path: 'OpenSHC/Input/MouseState.func.hpp' */ -#include "OpenSHC/Input/Mouse/MouseClickInteraction.hpp" +#include "OpenSHC/Input/Mouse/MouseClickInteractionInt.hpp" #include "OpenSHC/Input/MouseState.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -11,14 +11,14 @@ namespace OpenSHC { namespace Input { namespace MouseState_Func { - using OpenSHC::Input::Mouse::MouseClickInteraction; + using OpenSHC::Input::Mouse::MouseClickInteractionInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER( void (MouseState::*)(), false, Address::SHC_3BB0A8C1_0x00467F80, &MouseState::makeSelectedCursorTypeCurrent) makeSelectedCursorTypeCurrent; - MACRO_FUNCTION_RESOLVER(void (MouseState::*)(short, short, MouseClickInteraction), false, + MACRO_FUNCTION_RESOLVER(void (MouseState::*)(short, short, MouseClickInteractionInt), false, Address::SHC_3BB0A8C1_0x00468030, &MouseState::updateMousePositionAndClicks) updateMousePositionAndClicks; @@ -39,8 +39,8 @@ namespace Input { setCursor; MACRO_FUNCTION_RESOLVER( - void (MouseState::*)(), false, Address::SHC_3BB0A8C1_0x00468420, &MouseState::beginPointSelectionBox) - beginPointSelectionBox; + void (MouseState::*)(), false, Address::SHC_3BB0A8C1_0x00468420, &MouseState::computeMouseWorldPickBox) + computeMouseWorldPickBox; MACRO_FUNCTION_RESOLVER( void (MouseState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004684D0, &MouseState::setupHitBox) @@ -67,12 +67,12 @@ namespace Input { loadAndSetCursor; MACRO_FUNCTION_RESOLVER( - void (MouseState::*)(), false, Address::SHC_3BB0A8C1_0x00470B30, &MouseState::extendSelectionBoxToMouse) - extendSelectionBoxToMouse; + void (MouseState::*)(), false, Address::SHC_3BB0A8C1_0x00470B30, &MouseState::updateMouseSelectionEndBox) + updateMouseSelectionEndBox; MACRO_FUNCTION_RESOLVER( - void (MouseState::*)(), false, Address::SHC_3BB0A8C1_0x00470BC0, &MouseState::updateRightDragCameraControl) - updateRightDragCameraControl; + void (MouseState::*)(), false, Address::SHC_3BB0A8C1_0x00470BC0, &MouseState::processRightClickDragGesture) + processRightClickDragGesture; MACRO_FUNCTION_RESOLVER( void (MouseState::*)(), false, Address::SHC_3BB0A8C1_0x00472A90, &MouseState::drawMouseBasedBox) diff --git a/src/OpenSHC/Input/MouseState.hpp b/src/OpenSHC/Input/MouseState.hpp index fe64601c..13ccc8d6 100644 --- a/src/OpenSHC/Input/MouseState.hpp +++ b/src/OpenSHC/Input/MouseState.hpp @@ -9,7 +9,7 @@ #pragma once #include "OpenSHC/Input/Mouse/ClickTypeBitMaskEnumByte.hpp" -#include "OpenSHC/Input/Mouse/MouseClickInteraction.hpp" +#include "OpenSHC/Input/Mouse/MouseClickInteractionInt.hpp" #include "OpenSHC/Input/Mouse/MouseXYUUStruct.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -19,7 +19,7 @@ namespace OpenSHC { namespace Input { using OpenSHC::Input::Mouse::ClickTypeBitMaskEnumByte; - using OpenSHC::Input::Mouse::MouseClickInteraction; + using OpenSHC::Input::Mouse::MouseClickInteractionInt; using OpenSHC::Input::Mouse::MouseXYUUStruct; using OpenSHC::WindowsHelper::Enums::BOOLEnum; @@ -52,10 +52,10 @@ namespace Input { uint previousRightClickState; // 0x00000054 length: 4 undefined4 scrollEventData; // 0x00000058 length: 4 undefined4 field23_0x5c; // 0x0000005C length: 4 - undefined4 field24_0x60; // 0x00000060 length: 4 - undefined4 field25_0x64; // 0x00000064 length: 4 - undefined4 field26_0x68; // 0x00000068 length: 4 - undefined4 field27_0x6c; // 0x0000006C length: 4 + undefined4 dwWorldPickBoxMinX; // 0x00000060 length: 4 + undefined4 dwWorldPickBoxMinY; // 0x00000064 length: 4 + undefined4 dwWorldPickBoxMaxX; // 0x00000068 length: 4 + undefined4 dwWorldPickBoxMaxY; // 0x0000006C length: 4 undefined4 left; // 0x00000070 length: 4 undefined4 top; // 0x00000074 length: 4 undefined4 right; // 0x00000078 length: 4 @@ -86,7 +86,7 @@ namespace Input { undefined4 index; // 0x00000168 length: 4 undefined4 storedScreenSpaceX; // 0x0000016C length: 4 undefined4 storedScreenSpaceY; // 0x00000170 length: 4 - undefined4 field61_0x174; // 0x00000174 length: 4 + undefined4 dwRightClickCounter; // 0x00000174 length: 4 undefined4 field62_0x178; // 0x00000178 length: 4 undefined4 field63_0x17c; // 0x0000017C length: 4 undefined4 mouseBasedEvent; // 0x00000180 length: 4 @@ -100,10 +100,10 @@ namespace Input { undefined4 currentTime1; // 0x000001A0 length: 4 undefined4 currentTime2; // 0x000001A4 length: 4 undefined4 currentTime3; // 0x000001A8 length: 4 - undefined4 field75_0x1ac; // 0x000001AC length: 4 + undefined4 dwClickTimeDelta; // 0x000001AC length: 4 undefined4 field76_0x1b0; // 0x000001B0 length: 4 undefined4 field77_0x1b4; // 0x000001B4 length: 4 - undefined4 field78_0x1b8; // 0x000001B8 length: 4 + undefined4 dwPreviewModeFlag; // 0x000001B8 length: 4 undefined4 field79_0x1bc; // 0x000001BC length: 4 undefined4 field80_0x1c0; // 0x000001C0 length: 4 undefined4 field81_0x1c4; // 0x000001C4 length: 4 @@ -161,7 +161,7 @@ namespace Input { void makeSelectedCursorTypeCurrent(); - void updateMousePositionAndClicks(short xMousePos, short yMousePos, MouseClickInteraction clickType); + void updateMousePositionAndClicks(short xMousePos, short yMousePos, MouseClickInteractionInt clickType); void updateMouseWheelStatus(int delta); @@ -171,7 +171,7 @@ namespace Input { HCURSOR setCursor(DWORD cursorType); - void beginPointSelectionBox(); + void computeMouseWorldPickBox(); void setupHitBox(int width, int height); @@ -186,9 +186,9 @@ namespace Input { void loadAndSetCursor(int notAniDefaultCursorRef, int notAniDeleteCursorRef, int notAniDeleteNotCursorRef, int unused1, int unused2, int unused3, int unused4, int notAniUnknownCursorRef); - void extendSelectionBoxToMouse(); + void updateMouseSelectionEndBox(); - void updateRightDragCameraControl(); + void processRightClickDragGesture(); void drawMouseBasedBox(); }; diff --git a/src/OpenSHC/Map/AttackInfo.hpp b/src/OpenSHC/Map/AttackInfo.hpp index 73a520b6..2ff46f43 100644 --- a/src/OpenSHC/Map/AttackInfo.hpp +++ b/src/OpenSHC/Map/AttackInfo.hpp @@ -51,7 +51,7 @@ namespace Map { int keepCon; // 0x00020DF8 length: 4 int counter; // 0x00020DFC length: 4 undefined1 padding_0x20e00[4]; // 0x00020E00 length: 4 - int field86627_0x20e04; // 0x00020E04 length: 4 + int nAttackWaveScaleFactor; // 0x00020E04 length: 4 int index; // 0x00020E08 length: 4 undefined1 padding_0x20e0c[340]; // 0x00020E0C length: 340 int catapults; // 0x00020F60 length: 4 @@ -59,7 +59,7 @@ namespace Map { int pikemenSwordsmenAndMore; // 0x00020F68 length: 4 int laddermen; // 0x00020F6C length: 4 int spearmenAndMacemen; // 0x00020F70 length: 4 - int field86974_0x20f74; // 0x00020F74 length: 4 + int nAttackWaveCount; // 0x00020F74 length: 4 int attacker; // 0x00020F78 length: 4 undefined1 padding_0x20f7c[4]; // 0x00020F7C length: 4 int aiTroops; // 0x00020F80 length: 4 @@ -69,7 +69,7 @@ namespace Map { int unknownOne_0x20f90; // 0x00020F90 length: 4 int scaleZone; // 0x00020F94 length: 4 int field86989_0x20f98; // 0x00020F98 length: 4 - int field86990_0x20f9c; // 0x00020F9C length: 4 + int nAttackStartedFlag; // 0x00020F9C length: 4 int someCounter1; // 0x00020FA0 length: 4 undefined1 padding_0x20fa4[4]; // 0x00020FA4 length: 4 short nof_fpointsArray[50][8]; // 0x00020FA8 length: 800 @@ -78,22 +78,22 @@ namespace Map { int lowTroopValueRelated; // 0x00021C3C length: 4 int size; // 0x00021C40 length: 4 int value10; // 0x00021C44 length: 4 - int field89417_0x21c48; // 0x00021C48 length: 4 - int field89418_0x21c4c; // 0x00021C4C length: 4 + int aiAttackWaveCounter; // 0x00021C48 length: 4 + int aiAttackWaveTarget; // 0x00021C4C length: 4 int casDis; // 0x00021C50 length: 4 undefined1 padding_0x21c54[16036]; // 0x00021C54 length: 16036 int zoneSize; // 0x00025AF8 length: 4 int someDistanceLimit; // 0x00025AFC length: 4 - int field105458_0x25b00; // 0x00025B00 length: 4 + int nActiveAttackWaveCount; // 0x00025B00 length: 4 int playerTotalTroopValueArray[9]; // 0x00025B04 length: 36 - int field105460_0x25b28; // 0x00025B28 length: 4 + int nTotalTroopValue; // 0x00025B28 length: 4 int playerTotalTroopValueOfTroopsNearKeep[9]; // 0x00025B2C length: 36 undefined1 padding_0x25b50[20480]; // 0x00025B50 length: 20480 int someIntArray2[50]; // 0x0002AB50 length: 200 undefined1 padding_0x2ac18[1596]; // 0x0002AC18 length: 1596 - AttackInfoPitchRelated field127539_0x2b254[100]; // 0x0002B254 length: 800 - int field127540_0x2b574; // 0x0002B574 length: 4 - int field127541_0x2b578; // 0x0002B578 length: 4 + AttackInfoPitchRelated pAttackTargetTiles[100]; // 0x0002B254 length: 800 + int aiCastleDefenseState; // 0x0002B574 length: 4 + int aiCastleDefenseTrigger; // 0x0002B578 length: 4 short unitIDArray_0x2b57c[1000]; // 0x0002B57C length: 2000 int unitIDIndex_0x2bd4c; // 0x0002BD4C length: 4 int tileArray_0x2bd50[200]; // 0x0002BD50 length: 800 @@ -127,7 +127,7 @@ namespace Map { byte unknownByteArray02[50]; // 0x000308C2 length: 50 byte attackWavePlayerIDArray[50]; // 0x000308F4 length: 50 byte someSinglePlayerScore[50][10]; // 0x00030926 length: 500 - short field127592_0x30b1a[50]; // 0x00030B1A length: 100 + short pAiAttackWaveArray[50]; // 0x00030B1A length: 100 undefined1 padding_0x30b7e[2]; // 0x00030B7E length: 2 TribeSizesPerTribeType aiTribeSizesPerTribeType; // 0x00030B80 length: 160 int supportPoints; // 0x00030C20 length: 4 @@ -158,7 +158,7 @@ namespace Map { int moat3; // 0x0003FC4C length: 4 AttackInfoSubArrayElement1 moatValuesArray[562]; // 0x0003FC50 length: 8992 int createTribeAmount; // 0x00041F70 length: 4 - EngineerBuildingAndCountPair field127642_0x41f74[250]; // 0x00041F74 length: 2000 + EngineerBuildingAndCountPair pSiegeEngineerAssignments[250]; // 0x00041F74 length: 2000 undefined1 padding_0x42744[4]; // 0x00042744 length: 4 int people1; // 0x00042748 length: 4 int people2; // 0x0004274C length: 4 @@ -179,9 +179,9 @@ namespace Map { int unknownSignpostRelatedArray; // 0x0004690C length: 4 undefined1 padding_0x46910[196]; // 0x00046910 length: 196 int field128077_0x469d4; // 0x000469D4 length: 4 - int field128078_0x469d8; // 0x000469D8 length: 4 - int field128079_0x469dc; // 0x000469DC length: 4 - int field128080_0x469e0; // 0x000469E0 length: 4 + int aiAttackWaveMusicState; // 0x000469D8 length: 4 + int enemyUnitsNearKeepCount; // 0x000469DC length: 4 + int buildingsUnderAttackCount; // 0x000469E0 length: 4 int knights; // 0x000469E4 length: 4 int ranged; // 0x000469E8 length: 4 undefined1 padding_0x469ec[8]; // 0x000469EC length: 8 diff --git a/src/OpenSHC/Map/Buildings/Building.hpp b/src/OpenSHC/Map/Buildings/Building.hpp index d2303e32..1a4803d2 100644 --- a/src/OpenSHC/Map/Buildings/Building.hpp +++ b/src/OpenSHC/Map/Buildings/Building.hpp @@ -25,20 +25,20 @@ namespace Map { int spriteID; // 0x00000000 length: 4 int spriteSheetID; // 0x00000004 length: 4 int playerColorUnk; // 0x00000008 length: 4 - short field3_0xc; // 0x0000000C length: 2 - short field4_0xe; // 0x0000000E length: 2 - int field5_0x10; // 0x00000010 length: 4 - int field6_0x14; // 0x00000014 length: 4 + short spriteAnimOffset1_0xc; // 0x0000000C length: 2 + short spriteAnimOffset2_0xe; // 0x0000000E length: 2 + int animAdvanceThrottle; // 0x00000010 length: 4 + int nBuildingLastUpdateTick; // 0x00000014 length: 4 int field7_0x18; // 0x00000018 length: 4 int animationFrame; // 0x0000001C length: 4 short animationIndex; // 0x00000020 length: 2 short spriteID2; // 0x00000022 length: 2 short unknownStockpileOrSignpostRelated; // 0x00000024 length: 2 - short field12_0x26; // 0x00000026 length: 2 - int field13_0x28; // 0x00000028 length: 4 - short field14_0x2c; // 0x0000002C length: 2 - short field15_0x2e; // 0x0000002E length: 2 - short field16_0x30; // 0x00000030 length: 2 + short nDisplayAnimationState; // 0x00000026 length: 2 + int nBuildingAnimState; // 0x00000028 length: 4 + short nBuildingAnimCounter; // 0x0000002C length: 2 + short nBuildingDisplayFlag; // 0x0000002E length: 2 + short nWorkshopProductionFlag; // 0x00000030 length: 2 undefined1 padding_0x32[2]; // 0x00000032 length: 2 int displayOwnerFlag; // 0x00000034 length: 4 int field20_0x38; // 0x00000038 length: 4 @@ -76,13 +76,13 @@ namespace Map { undefined1 padding_0xa6[2]; // 0x000000A6 length: 2 uint unknownManorHouseOrStoneKeepRelated; // 0x000000A8 length: 4 int gfxOffset; // 0x000000AC length: 4 - int field62_0xb0; // 0x000000B0 length: 4 + int nKeepDoorOpenState; // 0x000000B0 length: 4 int gfxOffset2; // 0x000000B4 length: 4 int gfxOffset3; // 0x000000B8 length: 4 short tickRelatedVisuallyActiveIndicator; // 0x000000BC length: 2 - short field66_0xbe; // 0x000000BE length: 2 + short nWorkshopOutputValue; // 0x000000BE length: 2 short recruitTimer; // 0x000000C0 length: 2 - short field68_0xc2; // 0x000000C2 length: 2 + short buildingSelectionHighlight_0xc2; // 0x000000C2 length: 2 short noRubble; // 0x000000C4 length: 2 undefined1 padding_0xc6[2]; // 0x000000C6 length: 2 int miscDisplayLayerTile; // 0x000000C8 length: 4 @@ -145,9 +145,9 @@ namespace Map { short currentStoredResourceType; // 0x0000018C length: 2 undefined1 someUID; // 0x0000018E length: 1 undefined1 padding_0x18f[1]; // 0x0000018F length: 1 - short field147_0x190; // 0x00000190 length: 2 + short nStockpileSlotIndex; // 0x00000190 length: 2 undefined2 quarryStockpileID; // 0x00000192 length: 2 - short field149_0x194; // 0x00000194 length: 2 + short buildingCountdownTimer_0x194; // 0x00000194 length: 2 short numberOfPopulationProvided; // 0x00000196 length: 2 short buildingTypeBasedEmployeeCount; // 0x00000198 length: 2 short currentEmployeeCount; // 0x0000019A length: 2 @@ -158,7 +158,7 @@ namespace Map { short workers[2]; // 0x000001B8 length: 4 undefined1 padding_0x1bc[4]; // 0x000001BC length: 4 short unitID; // 0x000001C0 length: 2 - short field164_0x1c2; // 0x000001C2 length: 2 + short nWorkshopActiveFlag; // 0x000001C2 length: 2 short growCounter; // 0x000001C4 length: 2 undefined1 padding_0x1c6[2]; // 0x000001C6 length: 2 int tileRef1; // 0x000001C8 length: 4 @@ -202,21 +202,21 @@ namespace Map { int tunnelerCounter; // 0x0000025C length: 4 short someX; // 0x00000260 length: 2 short someY; // 0x00000262 length: 2 - short field211_0x264; // 0x00000264 length: 2 + short nHunterPostTimer; // 0x00000264 length: 2 undefined1 padding_0x266[2]; // 0x00000266 length: 2 int oxTetherRelatedUnitUID; // 0x00000268 length: 4 short oxTetherRelatedUnitID; // 0x0000026C length: 2 undefined1 padding_0x26e[2]; // 0x0000026E length: 2 - short field218_0x270; // 0x00000270 length: 2 - short field219_0x272; // 0x00000272 length: 2 - short field220_0x274; // 0x00000274 length: 2 - short field221_0x276; // 0x00000276 length: 2 + short nCampGroundReadyFlag; // 0x00000270 length: 2 + short campgroundTriggerFlag_0x272; // 0x00000272 length: 2 + short nPeasantHousingValue; // 0x00000274 length: 2 + short nCampGroundActiveFlag; // 0x00000276 length: 2 int buildingProgress; // 0x00000278 length: 4 uint timeAlive; // 0x0000027C length: 4 undefined1 padding_0x280[4]; // 0x00000280 length: 4 int hovelVisualStyle; // 0x00000284 length: 4 - short field229_0x288; // 0x00000288 length: 2 - short field230_0x28a; // 0x0000028A length: 2 + short nBuildingPlacedFlag; // 0x00000288 length: 2 + short nInnRationTimer; // 0x0000028A length: 2 short flag2; // 0x0000028C length: 2 ResourceTypeShort producedItemTypeNext; // 0x0000028E length: 2 ResourceTypeShort producedItemType; // 0x00000290 length: 2 @@ -226,8 +226,8 @@ namespace Map { byte containsSiegeMangonel1OrBallista2; // 0x00000295 length: 1 bool sleeping; // 0x00000296 length: 1 byte numberOfAnimals; // 0x00000297 length: 1 - byte field240_0x298; // 0x00000298 length: 1 - byte field241_0x299; // 0x00000299 length: 1 + byte bDairyFarmState; // 0x00000298 length: 1 + byte bDairyFarmTimer; // 0x00000299 length: 1 short outpostRelatedUnk4; // 0x0000029A length: 2 int ffBuildingVariation; // 0x0000029C length: 4 undefined1 padding_0x2a0[2]; // 0x000002A0 length: 2 @@ -241,7 +241,7 @@ namespace Map { short flagonsOfAleOrCheese; // 0x000002B0 length: 2 undefined1 padding_0x2b2[2]; // 0x000002B2 length: 2 short unknownCounterTo10000_0x2b4; // 0x000002B4 length: 2 - short field258_0x2b6; // 0x000002B6 length: 2 + short nDrawbridgeTimer; // 0x000002B6 length: 2 short gateCloseOpenTimer; // 0x000002B8 length: 2 short buildMonthOrBuildOrder; // 0x000002BA length: 2 short unknownAccessibilityRelatedFlag; // 0x000002BC length: 2 @@ -249,15 +249,15 @@ namespace Map { short gateState2; // 0x000002C0 length: 2 undefined1 padding_0x2c2[2]; // 0x000002C2 length: 2 short cooldownTimer; // 0x000002C4 length: 2 - short field267_0x2c6; // 0x000002C6 length: 2 - short field268_0x2c8; // 0x000002C8 length: 2 + short nDrawbridgeOpenFlag; // 0x000002C6 length: 2 + short nAiPlacedBuildingFlag; // 0x000002C8 length: 2 short quarryLinkedOxTethers[3]; // 0x000002CA length: 6 short oxtetherLinkedQuarryID; // 0x000002D0 length: 2 short laddermanDataID; // 0x000002D2 length: 2 - short field272_0x2d4; // 0x000002D4 length: 2 + short woodcutterWorkState_0x2d4; // 0x000002D4 length: 2 short idleTimerUnk; // 0x000002D6 length: 2 short unknownSiegeTentRelated01; // 0x000002D8 length: 2 - short field275_0x2da; // 0x000002DA length: 2 + short cathedralActiveFlag_0x2da; // 0x000002DA length: 2 short unknownTickRelatedValue; // 0x000002DC length: 2 ushort ifFireThenResponsiblePlayer; // 0x000002DE length: 2 short insideUnitID1; // 0x000002E0 length: 2 @@ -269,18 +269,18 @@ namespace Map { int insideUnitUID3; // 0x000002F0 length: 4 int insideUnitUID4; // 0x000002F4 length: 4 short hasUnitsOntop; // 0x000002F8 length: 2 - short field287_0x2fa; // 0x000002FA length: 2 + short nSiegeTentTimer; // 0x000002FA length: 2 undefined1 padding_0x2fc[2]; // 0x000002FC length: 2 short statueCommemoratingPlayerID; // 0x000002FE length: 2 short outpostRelatedUnk1; // 0x00000300 length: 2 short tribeID; // 0x00000302 length: 2 int tribeUID; // 0x00000304 length: 4 - short field294_0x308; // 0x00000308 length: 2 + short outpostTimer_0x308; // 0x00000308 length: 2 short outpostRelatedUnk05; // 0x0000030A length: 2 - short field296_0x30c; // 0x0000030C length: 2 + short outpostState_0x30c; // 0x0000030C length: 2 short outpostRelatedUnk2; // 0x0000030E length: 2 short outpostRelatedUnk3; // 0x00000310 length: 2 - short field299_0x312; // 0x00000312 length: 2 + short nOutpostActiveFlag; // 0x00000312 length: 2 undefined1 padding_0x314[2]; // 0x00000314 length: 2 short outpostRelatedUnk06; // 0x00000316 length: 2 short incByFourUnk; // 0x00000318 length: 2 diff --git a/src/OpenSHC/Map/Buildings/BuildingDefinedData.hpp b/src/OpenSHC/Map/Buildings/BuildingDefinedData.hpp index 7883cc2e..f7bc78c3 100644 --- a/src/OpenSHC/Map/Buildings/BuildingDefinedData.hpp +++ b/src/OpenSHC/Map/Buildings/BuildingDefinedData.hpp @@ -34,8 +34,9 @@ namespace Map { // SIZE: 0x0000B0F4 typedef struct BuildingDefinedData { - byte field0_0x0[52]; // 0x00000000 length: 52 - NoArgCallback* PTR_BuildingUpdateFunctions[110]; // 0x00000034 length: 440 + byte fletchersWorkshopCfg_0x0[52]; // 0x00000000 length: 52 + NoArgCallback* PTR_BuildingUpdateFunctions; // 0x00000034 length: 4 + undefined1 padding_0x38[436]; // 0x00000038 length: 436 BuildingTypeShort DAT_BuildingPrioritiesWhenNoFire[32]; // 0x000001EC length: 64 BuildingTypeShort DAT_BuildingPrioritiesWhenFire[32]; // 0x0000022C length: 64 UnitTypeInt DAT_WorkerTypeForBuildingType[110]; // 0x0000026C length: 440 @@ -49,16 +50,16 @@ namespace Map { int DAT_BuildingPlacement_Property_7[110]; // 0x0000102C length: 440 TruncatedInt DAT_EmployeeCountPerBuildingType[110]; // 0x000011E4 length: 440 int DAT_StorageLimitResourceTypeArray[26]; // 0x0000139C length: 104 - TruncatedInt field15_0x1404[110]; // 0x00001404 length: 440 - TruncatedInt field16_0x15bc[110]; // 0x000015BC length: 440 - BOOLEnum field17_0x1774[110]; // 0x00001774 length: 440 - TruncatedInt field18_0x192c[110]; // 0x0000192C length: 440 + TruncatedInt buildingTypeProp_0x1404[110]; // 0x00001404 length: 440 + TruncatedInt buildingTypeProp_0x15bc[110]; // 0x000015BC length: 440 + BOOLEnum pathLinkageCfg_0x1774[110]; // 0x00001774 length: 440 + TruncatedInt buildingTypeProp_0x192c[110]; // 0x0000192C length: 440 int DAT_BuildingTypeHasHealth[110]; // 0x00001AE4 length: 440 int DAT_BuildingIsGateHouseArray[110]; // 0x00001C9C length: 440 int DAT_BuildingIsKeepArray[110]; // 0x00001E54 length: 440 BOOLEnum DAT_IsGateOrTowerArray[110]; // 0x0000200C length: 440 BOOLEnum field23_0x21c4[110]; // 0x000021C4 length: 440 - TruncatedInt field24_0x237c[110]; // 0x0000237C length: 440 + TruncatedInt buildingTypeProp_0x237c[110]; // 0x0000237C length: 440 int DAT_BuildingShowRubbleWhenDestroyed[110]; // 0x00002534 length: 440 int DAT_BuildingTypeOwnable[110]; // 0x000026EC length: 440 TruncatedInt DAT_BUILDING_HP[110]; // 0x000028A4 length: 440 @@ -73,174 +74,174 @@ namespace Map { int gfxOffsets[110]; // 0x0000354C length: 440 int gfxOffsets3[110]; // 0x00003704 length: 440 TruncatedInt spriteIDs2[110]; // 0x000038BC length: 440 - short field39_0x3a74[110][2][2]; // 0x00003A74 length: 880 - int field40_0x3de4[110]; // 0x00003DE4 length: 440 + short tannersWorkshopCfg_0x3a74[110][2][2]; // 0x00003A74 length: 880 + int buildingTypeProp_0x3de4[110]; // 0x00003DE4 length: 440 int DAT_BuildingHeights[110]; // 0x00003F9C length: 440 - int field42_0x4154[110]; // 0x00004154 length: 440 - byte field43_0x430c[312]; // 0x0000430C length: 312 + int buildingDamageCfg_0x4154[110]; // 0x00004154 length: 440 + byte fletchersWorkshopCfg_0x430c[312]; // 0x0000430C length: 312 byte DAT_FletcherWorkshopAnimationCycle[160]; // 0x00004444 length: 160 - byte field45_0x44e4[400]; // 0x000044E4 length: 400 - byte field46_0x4674[608]; // 0x00004674 length: 608 - byte field47_0x48d4[56]; // 0x000048D4 length: 56 - byte field48_0x490c[448]; // 0x0000490C length: 448 - byte field49_0x4acc[112]; // 0x00004ACC length: 112 - byte field50_0x4b3c[20]; // 0x00004B3C length: 20 - byte field51_0x4b50[24]; // 0x00004B50 length: 24 - byte field52_0x4b68[40]; // 0x00004B68 length: 40 - byte field53_0x4b90[28]; // 0x00004B90 length: 28 - byte field54_0x4bac[104]; // 0x00004BAC length: 104 - byte field55_0x4c14[396]; // 0x00004C14 length: 396 - byte field56_0x4da0[20]; // 0x00004DA0 length: 20 - byte field57_0x4db4[420]; // 0x00004DB4 length: 420 - byte field58_0x4f58[44]; // 0x00004F58 length: 44 - byte field59_0x4f84[48]; // 0x00004F84 length: 48 - byte field60_0x4fb4[36]; // 0x00004FB4 length: 36 - byte field61_0x4fd8[36]; // 0x00004FD8 length: 36 - byte field62_0x4ffc[20]; // 0x00004FFC length: 20 - byte field63_0x5010[44]; // 0x00005010 length: 44 - byte field64_0x503c[88]; // 0x0000503C length: 88 - byte field65_0x5094[44]; // 0x00005094 length: 44 - byte field66_0x50c0[12]; // 0x000050C0 length: 12 - byte field67_0x50cc[64]; // 0x000050CC length: 64 - byte field68_0x510c[56]; // 0x0000510C length: 56 - byte field69_0x5144[72]; // 0x00005144 length: 72 - byte field70_0x518c[80]; // 0x0000518C length: 80 - byte field71_0x51dc[244]; // 0x000051DC length: 244 - byte field72_0x52d0[36]; // 0x000052D0 length: 36 - byte field73_0x52f4[112]; // 0x000052F4 length: 112 - byte field74_0x5364[88]; // 0x00005364 length: 88 - byte field75_0x53bc[200]; // 0x000053BC length: 200 - byte field76_0x5484[36]; // 0x00005484 length: 36 - byte field77_0x54a8[36]; // 0x000054A8 length: 36 - byte field78_0x54cc[144]; // 0x000054CC length: 144 - byte field79_0x555c[72]; // 0x0000555C length: 72 - byte field80_0x55a4[28]; // 0x000055A4 length: 28 - byte field81_0x55c0[20]; // 0x000055C0 length: 20 - byte field82_0x55d4[260]; // 0x000055D4 length: 260 - byte field83_0x56d8[44]; // 0x000056D8 length: 44 - byte field84_0x5704[12]; // 0x00005704 length: 12 - byte field85_0x5710[28]; // 0x00005710 length: 28 - byte field86_0x572c[32]; // 0x0000572C length: 32 - byte field87_0x574c[56]; // 0x0000574C length: 56 - byte field88_0x5784[16]; // 0x00005784 length: 16 - byte field89_0x5794[92]; // 0x00005794 length: 92 - byte field90_0x57f0[36]; // 0x000057F0 length: 36 - byte field91_0x5814[40]; // 0x00005814 length: 40 - byte field92_0x583c[152]; // 0x0000583C length: 152 - byte field93_0x58d4[152]; // 0x000058D4 length: 152 - byte field94_0x596c[172]; // 0x0000596C length: 172 - byte field95_0x5a18[52]; // 0x00005A18 length: 52 - byte field96_0x5a4c[36]; // 0x00005A4C length: 36 - byte field97_0x5a70[28]; // 0x00005A70 length: 28 - byte field98_0x5a8c[64]; // 0x00005A8C length: 64 - byte field99_0x5acc[20]; // 0x00005ACC length: 20 - byte field100_0x5ae0[24]; // 0x00005AE0 length: 24 - byte field101_0x5af8[28]; // 0x00005AF8 length: 28 - byte field102_0x5b14[56]; // 0x00005B14 length: 56 + byte fletchersWorkshopCfg_0x44e4[400]; // 0x000044E4 length: 400 + byte fletchersWorkshopCfg_0x4674[608]; // 0x00004674 length: 608 + byte fletchersWorkshopCfg_0x48d4[56]; // 0x000048D4 length: 56 + byte armorersWorkshopCfg_0x490c[448]; // 0x0000490C length: 448 + byte armorersWorkshopCfg_0x4acc[112]; // 0x00004ACC length: 112 + byte armorersWorkshopCfg_0x4b3c[20]; // 0x00004B3C length: 20 + byte huntersPostCfg_0x4b50[24]; // 0x00004B50 length: 24 + byte huntersPostCfg_0x4b68[40]; // 0x00004B68 length: 40 + byte huntersPostCfg_0x4b90[28]; // 0x00004B90 length: 28 + byte woodcuttersHutCfg_0x4bac[104]; // 0x00004BAC length: 104 + byte bakeryCfg_0x4c14[396]; // 0x00004C14 length: 396 + byte bakeryCfg_0x4da0[20]; // 0x00004DA0 length: 20 + byte breweryCfg_0x4db4[420]; // 0x00004DB4 length: 420 + byte breweryCfg_0x4f58[44]; // 0x00004F58 length: 44 + byte breweryCfg_0x4f84[48]; // 0x00004F84 length: 48 + byte breweryCfg_0x4fb4[36]; // 0x00004FB4 length: 36 + byte breweryCfg_0x4fd8[36]; // 0x00004FD8 length: 36 + byte blacksmithsWorkshopCfg_0x4ffc[20]; // 0x00004FFC length: 20 + byte blacksmithsWorkshopCfg_0x5010[44]; // 0x00005010 length: 44 + byte blacksmithsWorkshopCfg_0x503c[88]; // 0x0000503C length: 88 + byte blacksmithsWorkshopCfg_0x5094[44]; // 0x00005094 length: 44 + byte blacksmithsWorkshopCfg_0x50c0[12]; // 0x000050C0 length: 12 + byte blacksmithsWorkshopCfg_0x50cc[64]; // 0x000050CC length: 64 + byte blacksmithsWorkshopCfg_0x510c[56]; // 0x0000510C length: 56 + byte blacksmithsWorkshopCfg_0x5144[72]; // 0x00005144 length: 72 + byte blacksmithsWorkshopCfg_0x518c[80]; // 0x0000518C length: 80 + byte blacksmithsWorkshopCfg_0x51dc[244]; // 0x000051DC length: 244 + byte blacksmithsWorkshopCfg_0x52d0[36]; // 0x000052D0 length: 36 + byte blacksmithsWorkshopCfg_0x52f4[112]; // 0x000052F4 length: 112 + byte poleturnersWorkshopCfg_0x5364[88]; // 0x00005364 length: 88 + byte poleturnersWorkshopCfg_0x53bc[200]; // 0x000053BC length: 200 + byte poleturnersWorkshopCfg_0x5484[36]; // 0x00005484 length: 36 + byte poleturnersWorkshopCfg_0x54a8[36]; // 0x000054A8 length: 36 + byte poleturnersWorkshopCfg_0x54cc[144]; // 0x000054CC length: 144 + byte poleturnersWorkshopCfg_0x555c[72]; // 0x0000555C length: 72 + byte poleturnersWorkshopCfg_0x55a4[28]; // 0x000055A4 length: 28 + byte blacksmithsWorkshopCfg_0x55c0[20]; // 0x000055C0 length: 20 + byte breweryCfg_0x55d4[260]; // 0x000055D4 length: 260 + byte tannersWorkshopCfg_0x56d8[44]; // 0x000056D8 length: 44 + byte tannersWorkshopCfg_0x5704[12]; // 0x00005704 length: 12 + byte tannersWorkshopCfg_0x5710[28]; // 0x00005710 length: 28 + byte tannersWorkshopCfg_0x572c[32]; // 0x0000572C length: 32 + byte tannersWorkshopCfg_0x574c[56]; // 0x0000574C length: 56 + byte tannersWorkshopCfg_0x5784[16]; // 0x00005784 length: 16 + byte tannersWorkshopCfg_0x5794[92]; // 0x00005794 length: 92 + byte tannersWorkshopCfg_0x57f0[36]; // 0x000057F0 length: 36 + byte tannersWorkshopCfg_0x5814[40]; // 0x00005814 length: 40 + byte tannersWorkshopCfg_0x583c[152]; // 0x0000583C length: 152 + byte tannersWorkshopCfg_0x58d4[152]; // 0x000058D4 length: 152 + byte tannersWorkshopCfg_0x596c[172]; // 0x0000596C length: 172 + byte tunnelCfg_0x5a18[52]; // 0x00005A18 length: 52 + byte campGroundCfg_0x5a4c[36]; // 0x00005A4C length: 36 + byte quarryCfg_0x5a70[28]; // 0x00005A70 length: 28 + byte quarryCfg_0x5a8c[64]; // 0x00005A8C length: 64 + byte quarryCfg_0x5acc[20]; // 0x00005ACC length: 20 + byte quarryCfg_0x5ae0[24]; // 0x00005AE0 length: 24 + byte quarryCfg_0x5af8[28]; // 0x00005AF8 length: 28 + byte quarryCfg_0x5b14[56]; // 0x00005B14 length: 56 byte PTR_SomeAnimationNumbersUnk[24]; // 0x00005B4C length: 24 - byte field104_0x5b64[32]; // 0x00005B64 length: 32 - byte field105_0x5b84[16]; // 0x00005B84 length: 16 - byte field106_0x5b94[64]; // 0x00005B94 length: 64 - byte field107_0x5bd4[112]; // 0x00005BD4 length: 112 - byte field108_0x5c44[20]; // 0x00005C44 length: 20 - byte field109_0x5c58[40]; // 0x00005C58 length: 40 - byte field110_0x5c80[60]; // 0x00005C80 length: 60 - byte field111_0x5cbc[72]; // 0x00005CBC length: 72 - byte field112_0x5d04[24]; // 0x00005D04 length: 24 - byte field113_0x5d1c[64]; // 0x00005D1C length: 64 - byte field114_0x5d5c[16]; // 0x00005D5C length: 16 - byte field115_0x5d6c[376]; // 0x00005D6C length: 376 - byte field116_0x5ee4[264]; // 0x00005EE4 length: 264 - byte field117_0x5fec[304]; // 0x00005FEC length: 304 - byte field118_0x611c[384]; // 0x0000611C length: 384 - byte field119_0x629c[88]; // 0x0000629C length: 88 - byte field120_0x62f4[80]; // 0x000062F4 length: 80 - byte field121_0x6344[472]; // 0x00006344 length: 472 - byte field122_0x651c[112]; // 0x0000651C length: 112 - byte field123_0x658c[104]; // 0x0000658C length: 104 - byte field124_0x65f4[184]; // 0x000065F4 length: 184 - byte field125_0x66ac[24]; // 0x000066AC length: 24 - byte field126_0x66c4[12]; // 0x000066C4 length: 12 - byte field127_0x66d0[60]; // 0x000066D0 length: 60 - byte field128_0x670c[452]; // 0x0000670C length: 452 - byte field129_0x68d0[36]; // 0x000068D0 length: 36 - byte field130_0x68f4[84]; // 0x000068F4 length: 84 - byte field131_0x6948[52]; // 0x00006948 length: 52 - byte field132_0x697c[56]; // 0x0000697C length: 56 - byte field133_0x69b4[104]; // 0x000069B4 length: 104 - byte field134_0x6a1c[16]; // 0x00006A1C length: 16 - byte field135_0x6a2c[16]; // 0x00006A2C length: 16 - byte field136_0x6a3c[16]; // 0x00006A3C length: 16 - byte field137_0x6a4c[136]; // 0x00006A4C length: 136 - byte field138_0x6ad4[16]; // 0x00006AD4 length: 16 - byte field139_0x6ae4[32]; // 0x00006AE4 length: 32 - byte field140_0x6b04[36]; // 0x00006B04 length: 36 - byte field141_0x6b28[28]; // 0x00006B28 length: 28 - byte field142_0x6b44[32]; // 0x00006B44 length: 32 - byte field143_0x6b64[264]; // 0x00006B64 length: 264 - byte field144_0x6c6c[664]; // 0x00006C6C length: 664 - byte field145_0x6f04[448]; // 0x00006F04 length: 448 - byte field146_0x70c4[152]; // 0x000070C4 length: 152 - byte field147_0x715c[644]; // 0x0000715C length: 644 - byte field148_0x73e0[52]; // 0x000073E0 length: 52 - byte field149_0x7414[80]; // 0x00007414 length: 80 - byte field150_0x7464[48]; // 0x00007464 length: 48 - byte field151_0x7494[48]; // 0x00007494 length: 48 - byte field152_0x74c4[48]; // 0x000074C4 length: 48 - byte field153_0x74f4[48]; // 0x000074F4 length: 48 - byte field154_0x7524[48]; // 0x00007524 length: 48 - byte field155_0x7554[48]; // 0x00007554 length: 48 - byte field156_0x7584[40]; // 0x00007584 length: 40 - byte field157_0x75ac[80]; // 0x000075AC length: 80 - byte field158_0x75fc[40]; // 0x000075FC length: 40 - byte field159_0x7624[72]; // 0x00007624 length: 72 - byte field160_0x766c[80]; // 0x0000766C length: 80 - byte field161_0x76bc[172]; // 0x000076BC length: 172 - byte field162_0x7768[36]; // 0x00007768 length: 36 - byte field163_0x778c[88]; // 0x0000778C length: 88 - byte field164_0x77e4[160]; // 0x000077E4 length: 160 - byte field165_0x7884[200]; // 0x00007884 length: 200 - byte field166_0x794c[40]; // 0x0000794C length: 40 - byte field167_0x7974[80]; // 0x00007974 length: 80 - byte field168_0x79c4[80]; // 0x000079C4 length: 80 - byte field169_0x7a14[344]; // 0x00007A14 length: 344 + byte quarryCfg_0x5b64[32]; // 0x00005B64 length: 32 + byte quarryCfg_0x5b84[16]; // 0x00005B84 length: 16 + byte quarryCfg_0x5b94[64]; // 0x00005B94 length: 64 + byte quarryCfg_0x5bd4[112]; // 0x00005BD4 length: 112 + byte quarryCfg_0x5c44[20]; // 0x00005C44 length: 20 + byte quarryCfg_0x5c58[40]; // 0x00005C58 length: 40 + byte quarryCfg_0x5c80[60]; // 0x00005C80 length: 60 + byte quarryCfg_0x5cbc[72]; // 0x00005CBC length: 72 + byte quarryCfg_0x5d04[24]; // 0x00005D04 length: 24 + byte quarryCfg_0x5d1c[64]; // 0x00005D1C length: 64 + byte quarryCfg_0x5d5c[16]; // 0x00005D5C length: 16 + byte quarryCfg_0x5d6c[376]; // 0x00005D6C length: 376 + byte quarryCfg_0x5ee4[264]; // 0x00005EE4 length: 264 + byte quarryCfg_0x5fec[304]; // 0x00005FEC length: 304 + byte quarryCfg_0x611c[384]; // 0x0000611C length: 384 + byte ironMineCfg_0x629c[88]; // 0x0000629C length: 88 + byte ironMineCfg_0x62f4[80]; // 0x000062F4 length: 80 + byte ironMineCfg_0x6344[472]; // 0x00006344 length: 472 + byte ironMineCfg_0x651c[112]; // 0x0000651C length: 112 + byte ironMineCfg_0x658c[104]; // 0x0000658C length: 104 + byte ironMineCfg_0x65f4[184]; // 0x000065F4 length: 184 + byte ironMineCfg_0x66ac[24]; // 0x000066AC length: 24 + byte ironMineCfg_0x66c4[12]; // 0x000066C4 length: 12 + byte ironMineCfg_0x66d0[60]; // 0x000066D0 length: 60 + byte ironMineCfg_0x670c[452]; // 0x0000670C length: 452 + byte ironMineCfg_0x68d0[36]; // 0x000068D0 length: 36 + byte ironMineCfg_0x68f4[84]; // 0x000068F4 length: 84 + byte pitchRigCfg_0x6948[52]; // 0x00006948 length: 52 + byte pitchRigCfg_0x697c[56]; // 0x0000697C length: 56 + byte pitchRigCfg_0x69b4[104]; // 0x000069B4 length: 104 + byte millCfg_0x6a1c[16]; // 0x00006A1C length: 16 + byte millCfg_0x6a2c[16]; // 0x00006A2C length: 16 + byte millCfg_0x6a3c[16]; // 0x00006A3C length: 16 + byte millCfg_0x6a4c[136]; // 0x00006A4C length: 136 + byte millCfg_0x6ad4[16]; // 0x00006AD4 length: 16 + byte drawBridgeCfg_0x6ae4[32]; // 0x00006AE4 length: 32 + byte drawBridgeCfg_0x6b04[36]; // 0x00006B04 length: 36 + byte gateHouseLargeCfg_0x6b28[28]; // 0x00006B28 length: 28 + byte gateHouseLargeCfg_0x6b44[32]; // 0x00006B44 length: 32 + byte dairyFarmCfg_0x6b64[264]; // 0x00006B64 length: 264 + byte dairyFarmCfg_0x6c6c[664]; // 0x00006C6C length: 664 + byte dairyFarmCfg_0x6f04[448]; // 0x00006F04 length: 448 + byte dairyFarmCfg_0x70c4[152]; // 0x000070C4 length: 152 + byte stablesCfg_0x715c[644]; // 0x0000715C length: 644 + byte oilSmelterCfg_0x73e0[52]; // 0x000073E0 length: 52 + byte oilSmelterCfg_0x7414[80]; // 0x00007414 length: 80 + byte oilSmelterCfg_0x7464[48]; // 0x00007464 length: 48 + byte oilSmelterCfg_0x7494[48]; // 0x00007494 length: 48 + byte oilSmelterCfg_0x74c4[48]; // 0x000074C4 length: 48 + byte oilSmelterCfg_0x74f4[48]; // 0x000074F4 length: 48 + byte oilSmelterCfg_0x7524[48]; // 0x00007524 length: 48 + byte oilSmelterCfg_0x7554[48]; // 0x00007554 length: 48 + byte oilSmelterCfg_0x7584[40]; // 0x00007584 length: 40 + byte oilSmelterCfg_0x75ac[80]; // 0x000075AC length: 80 + byte badBuildingGallowsCfg_0x75fc[40]; // 0x000075FC length: 40 + byte badBuildingStocksCfg_0x7624[72]; // 0x00007624 length: 72 + byte badBuildingDungeonCfg_0x766c[80]; // 0x0000766C length: 80 + byte badBuildingDunkingStoolCfg_0x76bc[172]; // 0x000076BC length: 172 + byte badBuildingGibbetCfg_0x7768[36]; // 0x00007768 length: 36 + byte badBuildingBurningStakeCfg_0x778c[88]; // 0x0000778C length: 88 + byte badBuildingStretchingRackCfg_0x77e4[160]; // 0x000077E4 length: 160 + byte badBuildingChoppingBlockCfg_0x7884[200]; // 0x00007884 length: 200 + byte dogCageCfg_0x794c[40]; // 0x0000794C length: 40 + byte goodBuildingMaypoleCfg_0x7974[80]; // 0x00007974 length: 80 + byte goodBuildingMaypoleCfg_0x79c4[80]; // 0x000079C4 length: 80 + byte dancingBearCfg_0x7a14[344]; // 0x00007A14 length: 344 byte ANIM_MarketPlace[104]; // 0x00007B6C length: 104 - byte field171_0x7bd4[104]; // 0x00007BD4 length: 104 - byte field172_0x7c3c[88]; // 0x00007C3C length: 88 - byte field173_0x7c94[136]; // 0x00007C94 length: 136 - byte field174_0x7d1c[140]; // 0x00007D1C length: 140 - byte field175_0x7da8[36]; // 0x00007DA8 length: 36 - byte field176_0x7dcc[80]; // 0x00007DCC length: 80 - byte field177_0x7e1c[52]; // 0x00007E1C length: 52 + byte apothecaryCfg_0x7bd4[104]; // 0x00007BD4 length: 104 + byte innCfg_0x7c3c[88]; // 0x00007C3C length: 88 + byte innCfg_0x7c94[136]; // 0x00007C94 length: 136 + byte innCfg_0x7d1c[140]; // 0x00007D1C length: 140 + byte innCfg_0x7da8[36]; // 0x00007DA8 length: 36 + byte innCfg_0x7dcc[80]; // 0x00007DCC length: 80 + byte woodcuttersHutCfg_0x7e1c[52]; // 0x00007E1C length: 52 int DAT_BuildingAccessibleTilesCountForOneLarger[15]; // 0x00007E50 length: 60 - XYPair field179_0x7e8c[8]; // 0x00007E8C length: 64 - XYPair field180_0x7ecc[12]; // 0x00007ECC length: 96 - XYPair field181_0x7f2c[16]; // 0x00007F2C length: 128 - XYPair field182_0x7fac[20]; // 0x00007FAC length: 160 - XYPair field183_0x804c[24]; // 0x0000804C length: 192 - XYPair field184_0x810c[28]; // 0x0000810C length: 224 - XYPair field185_0x81ec[32]; // 0x000081EC length: 256 - XYPair field186_0x82ec[36]; // 0x000082EC length: 288 - XYPair field187_0x840c[40]; // 0x0000840C length: 320 - XYPair field188_0x854c[44]; // 0x0000854C length: 352 - XYPair field189_0x86ac[48]; // 0x000086AC length: 384 - XYPair field190_0x882c[52]; // 0x0000882C length: 416 - XYPair field191_0x89cc[116]; // 0x000089CC length: 928 + XYPair candidateOffsets_0x7e8c[8]; // 0x00007E8C length: 64 + XYPair candidateOffsets_0x7ecc[12]; // 0x00007ECC length: 96 + XYPair candidateOffsets_0x7f2c[16]; // 0x00007F2C length: 128 + XYPair candidateOffsets_0x7fac[20]; // 0x00007FAC length: 160 + XYPair candidateOffsets_0x804c[24]; // 0x0000804C length: 192 + XYPair candidateOffsets_0x810c[28]; // 0x0000810C length: 224 + XYPair candidateOffsets_0x81ec[32]; // 0x000081EC length: 256 + XYPair candidateOffsets_0x82ec[36]; // 0x000082EC length: 288 + XYPair candidateOffsets_0x840c[40]; // 0x0000840C length: 320 + XYPair candidateOffsets_0x854c[44]; // 0x0000854C length: 352 + XYPair candidateOffsets_0x86ac[48]; // 0x000086AC length: 384 + XYPair candidateOffsets_0x882c[52]; // 0x0000882C length: 416 + XYPair candidateOffsets_0x89cc[116]; // 0x000089CC length: 928 int DAT_BuildingAccessibleTilesCount[15]; // 0x00008D6C length: 60 - XYPair field193_0x8da8[4]; // 0x00008DA8 length: 32 + XYPair entranceOffsets_0x8da8[4]; // 0x00008DA8 length: 32 undefined1 padding_0x8dc8[4]; // 0x00008DC8 length: 4 - XYPair field198_0x8dcc[8]; // 0x00008DCC length: 64 - XYPair field199_0x8e0c[12]; // 0x00008E0C length: 96 - XYPair field200_0x8e6c[16]; // 0x00008E6C length: 128 - XYPair field201_0x8eec[20]; // 0x00008EEC length: 160 - XYPair field202_0x8f8c[24]; // 0x00008F8C length: 192 - XYPair field203_0x904c[28]; // 0x0000904C length: 224 - XYPair field204_0x912c[32]; // 0x0000912C length: 256 - XYPair field205_0x922c[36]; // 0x0000922C length: 288 - XYPair field206_0x934c[40]; // 0x0000934C length: 320 - XYPair field207_0x948c[44]; // 0x0000948C length: 352 - XYPair field208_0x95ec[48]; // 0x000095EC length: 384 - XYPair field209_0x976c[52]; // 0x0000976C length: 416 + XYPair entranceOffsets_0x8dcc[8]; // 0x00008DCC length: 64 + XYPair entranceOffsets_0x8e0c[12]; // 0x00008E0C length: 96 + XYPair entranceOffsets_0x8e6c[16]; // 0x00008E6C length: 128 + XYPair entranceOffsets_0x8eec[20]; // 0x00008EEC length: 160 + XYPair entranceOffsets_0x8f8c[24]; // 0x00008F8C length: 192 + XYPair entranceOffsets_0x904c[28]; // 0x0000904C length: 224 + XYPair entranceOffsets_0x912c[32]; // 0x0000912C length: 256 + XYPair entranceOffsets_0x922c[36]; // 0x0000922C length: 288 + XYPair entranceOffsets_0x934c[40]; // 0x0000934C length: 320 + XYPair entranceOffsets_0x948c[44]; // 0x0000948C length: 352 + XYPair entranceOffsets_0x95ec[48]; // 0x000095EC length: 384 + XYPair entranceOffsets_0x976c[52]; // 0x0000976C length: 416 XYPair field210_0x990c[56]; // 0x0000990C length: 448 undefined1 padding_0x9acc[156]; // 0x00009ACC length: 156 int gardenVariations[12]; // 0x00009B68 length: 48 @@ -255,25 +256,25 @@ namespace Map { int DAT_PlayerDataUnknownStructureRelatedArray_2[6][3]; // 0x00009D0C length: 72 XYPairShort DAT_SearchRelatedXYOffsets_1[49]; // 0x00009D54 length: 196 undefined1 padding_0x9e18[4]; // 0x00009E18 length: 4 - int field382_0x9e1c[7][4]; // 0x00009E1C length: 112 - int field383_0x9e8c[4]; // 0x00009E8C length: 16 - int field384_0x9e9c[7][4]; // 0x00009E9C length: 112 + int assemblyPointCfg_0x9e1c[7][4]; // 0x00009E1C length: 112 + int assemblyPointCfg_0x9e8c[4]; // 0x00009E8C length: 16 + int assemblyPointCfg_0x9e9c[7][4]; // 0x00009E9C length: 112 undefined1 padding_0x9f0c[16]; // 0x00009F0C length: 16 - int field401_0x9f1c[2][4]; // 0x00009F1C length: 32 + int assemblyPointCfg_0x9f1c[2][4]; // 0x00009F1C length: 32 XYPairShort DAT_BuildingPositionRelatedArray_1[25]; // 0x00009F3C length: 100 undefined1 padding_0x9fa0[4]; // 0x00009FA0 length: 4 - XYPairShort field407_0x9fa4[25]; // 0x00009FA4 length: 100 + XYPairShort engineerCampgroundCfg_0x9fa4[25]; // 0x00009FA4 length: 100 undefined1 padding_0xa008[4]; // 0x0000A008 length: 4 - XYPairShort field412_0xa00c[16]; // 0x0000A00C length: 64 - int field413_0xa04c[16][13]; // 0x0000A04C length: 832 - int field414_0xa38c[4]; // 0x0000A38C length: 16 - int field415_0xa39c[52]; // 0x0000A39C length: 208 - int field416_0xa46c[52]; // 0x0000A46C length: 208 - int field417_0xa53c[26]; // 0x0000A53C length: 104 - int field418_0xa5a4[102]; // 0x0000A5A4 length: 408 - int field419_0xa73c[16]; // 0x0000A73C length: 64 - int field420_0xa77c[24]; // 0x0000A77C length: 96 - int field421_0xa7dc[32]; // 0x0000A7DC length: 128 + XYPairShort oilSmelterCfg_0xa00c[16]; // 0x0000A00C length: 64 + int outpostBuildingCfg_0xa04c[16][13]; // 0x0000A04C length: 832 + int drawBridgeCfg_0xa38c[4]; // 0x0000A38C length: 16 + int campGroundCfg_0xa39c[52]; // 0x0000A39C length: 208 + int campGroundCfg_0xa46c[52]; // 0x0000A46C length: 208 + int killingPitCfg_0xa53c[26]; // 0x0000A53C length: 104 + int killingPitCfg_0xa5a4[102]; // 0x0000A5A4 length: 408 + int tower2Cfg_0xa73c[16]; // 0x0000A73C length: 64 + int tower3Cfg_0xa77c[24]; // 0x0000A77C length: 96 + int tower4Cfg_0xa7dc[32]; // 0x0000A7DC length: 128 int DAT_BUILDING_COST[110][5]; // 0x0000A85C length: 2200 } BuildingDefinedData; diff --git a/src/OpenSHC/Map/Buildings/BuildingsState.func.hpp b/src/OpenSHC/Map/Buildings/BuildingsState.func.hpp index 3e01d160..e4f9e264 100644 --- a/src/OpenSHC/Map/Buildings/BuildingsState.func.hpp +++ b/src/OpenSHC/Map/Buildings/BuildingsState.func.hpp @@ -2,52 +2,52 @@ path: 'OpenSHC/Map/Buildings/BuildingsState.func.hpp' */ -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/Game/Player/PlayerID.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" -#include "OpenSHC/Map/Buildings/BuildingType.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" +#include "OpenSHC/Map/Buildings/BuildingTypeInt.hpp" #include "OpenSHC/Map/Buildings/BuildingsState.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace Buildings { namespace BuildingsState_Func { - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::Commands::CommandBuildingTypeInt; using OpenSHC::Game::Player::PlayerID; - using OpenSHC::Game::Resources::ResourceType; - using OpenSHC::IO::PackagedFileMagicNum; - using OpenSHC::Map::Buildings::BuildingType; - using OpenSHC::Map::Units::UnitType; + using OpenSHC::Game::Resources::ResourceTypeInt; + using OpenSHC::IO::PackagedFileMagicNumInt; + using OpenSHC::Map::Buildings::BuildingTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; - MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int, ResourceType), false, - Address::SHC_3BB0A8C1_0x00409330, &BuildingsState::getBuildingResourceAmountByUid) - getBuildingResourceAmountByUid; + MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int, ResourceTypeInt), false, + Address::SHC_3BB0A8C1_0x00409330, &BuildingsState::someArrayIndexingOnBuildingField0x120) + someArrayIndexingOnBuildingField0x120; - MACRO_FUNCTION_RESOLVER(BuildingType (BuildingsState::*)(CommandBuildingType), false, - Address::SHC_3BB0A8C1_0x00409370, &BuildingsState::convertCommandBuildingTypeToBuildingType) + MACRO_FUNCTION_RESOLVER(undefined (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x00409370, + &BuildingsState::convertCommandBuildingTypeToBuildingType) convertCommandBuildingTypeToBuildingType; - MACRO_FUNCTION_RESOLVER(CommandBuildingType (BuildingsState::*)(BuildingType), false, + MACRO_FUNCTION_RESOLVER(CommandBuildingTypeInt (BuildingsState::*)(BuildingTypeInt), false, Address::SHC_3BB0A8C1_0x00409930, &BuildingsState::convertBuildingTypeToCommandBuildingType) convertBuildingTypeToCommandBuildingType; - MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00409DB0, + MACRO_FUNCTION_RESOLVER(undefined (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x00409DB0, &BuildingsState::getBuildingHeightForBuildingID) getBuildingHeightForBuildingID; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00409E80, - &BuildingsState::getBuildingHeightForBuildingID2) - getBuildingHeightForBuildingID2; + &BuildingsState::GetBuildingHeightForBuildingID_type2) + GetBuildingHeightForBuildingID_type2; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x00409F50, &BuildingsState::getSpriteID) getSpriteID; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x00409FF0, &BuildingsState::getSpriteID2) getSpriteID2; @@ -75,15 +75,15 @@ namespace Map { &BuildingsState::copyPlayerDataArrayValues) copyPlayerDataArrayValues; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingType), false, Address::SHC_3BB0A8C1_0x0040A8A0, - &BuildingsState::chooseProductionItemType) + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingTypeInt), false, + Address::SHC_3BB0A8C1_0x0040A8A0, &BuildingsState::chooseProductionItemType) chooseProductionItemType; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingType), false, Address::SHC_3BB0A8C1_0x0040A950, - &BuildingsState::getEmptyBuildingCount) + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingTypeInt), false, + Address::SHC_3BB0A8C1_0x0040A950, &BuildingsState::getEmptyBuildingCount) getEmptyBuildingCount; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(PlayerID, BuildingType, int), false, + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(PlayerID, BuildingTypeInt, int), false, Address::SHC_3BB0A8C1_0x0040A9B0, &BuildingsState::countBuildingsForPlayer) countBuildingsForPlayer; @@ -91,40 +91,40 @@ namespace Map { &BuildingsState::countFarms) countFarms; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingType), false, Address::SHC_3BB0A8C1_0x0040AA80, - &BuildingsState::findFirstBuildingOfType) + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingTypeInt), false, + Address::SHC_3BB0A8C1_0x0040AA80, &BuildingsState::findFirstBuildingOfType) findFirstBuildingOfType; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingType), false, Address::SHC_3BB0A8C1_0x0040AAD0, - &BuildingsState::findFirstBuildingIDForPlayerAndType) + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingTypeInt), false, + Address::SHC_3BB0A8C1_0x0040AAD0, &BuildingsState::findFirstBuildingIDForPlayerAndType) findFirstBuildingIDForPlayerAndType; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(PlayerID, BuildingType, int), false, + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(PlayerID, BuildingTypeInt, int), false, Address::SHC_3BB0A8C1_0x0040AB30, &BuildingsState::findNextBuildingForPlayerAndType) findNextBuildingForPlayerAndType; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0040AB90, - &BuildingsState::findNextBuildingIDForOwnerAndType) - findNextBuildingIDForOwnerAndType; + &BuildingsState::findNextOwnedBuildingOfType) + findNextOwnedBuildingOfType; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x0040AC00, &BuildingsState::findNextBuildingForPlayerAndOneOfThreeTypes) - findNextBuildingForPlayerAndOneOfThreeTypes; + Address::SHC_3BB0A8C1_0x0040AC00, &BuildingsState::findNextOwnedBuildingOfTypes) + findNextOwnedBuildingOfTypes; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int, int, int), false, Address::SHC_3BB0A8C1_0x0040AC80, &BuildingsState::canNavigateToDefensiveBuilding) canNavigateToDefensiveBuilding; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x0040ADB0, &BuildingsState::findNextReachableDefensiveBuildingForPlayer) - findNextReachableDefensiveBuildingForPlayer; + Address::SHC_3BB0A8C1_0x0040ADB0, &BuildingsState::findNextReachableDefensiveBuilding) + findNextReachableDefensiveBuilding; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingType), false, Address::SHC_3BB0A8C1_0x0040AEF0, - &BuildingsState::pickARandomBuildingOfType) + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingTypeInt), false, + Address::SHC_3BB0A8C1_0x0040AEF0, &BuildingsState::pickARandomBuildingOfType) pickARandomBuildingOfType; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingType, BuildingType, BuildingType), false, - Address::SHC_3BB0A8C1_0x0040AFB0, &BuildingsState::pickARandomBuildingIDOfTheseThreeTypes) + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, BuildingTypeInt, BuildingTypeInt, BuildingTypeInt), + false, Address::SHC_3BB0A8C1_0x0040AFB0, &BuildingsState::pickARandomBuildingIDOfTheseThreeTypes) pickARandomBuildingIDOfTheseThreeTypes; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040B090, @@ -132,14 +132,14 @@ namespace Map { pickARandomPositiveFearFactorBuilding; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040B1A0, - &BuildingsState::findClosestInnBuildingID) - findClosestInnBuildingID; + &BuildingsState::closestInnBuildingID) + closestInnBuildingID; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040B260, &BuildingsState::recomputeAllFearFactors) recomputeAllFearFactors; - MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, BuildingType), false, + MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, BuildingTypeInt), false, Address::SHC_3BB0A8C1_0x0040B4E0, &BuildingsState::findBuildingOfTypeForPlayer) findBuildingOfTypeForPlayer; @@ -156,64 +156,64 @@ namespace Map { prepareCampgroundCoords; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040B720, - &BuildingsState::hasBuildingEntranceFlagForOrientation) - hasBuildingEntranceFlagForOrientation; + &BuildingsState::getBuildingOrientationFlag) + getBuildingOrientationFlag; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040B7B0, - &BuildingsState::hasBuildingExitFlagForOrientation) - hasBuildingExitFlagForOrientation; + &BuildingsState::getBuildingOrientationFlag2) + getBuildingOrientationFlag2; MACRO_FUNCTION_RESOLVER(uint (BuildingsState::*)(uint, int), false, Address::SHC_3BB0A8C1_0x0040B840, - &BuildingsState::isBuildingPathBlockerOrDamageable) - isBuildingPathBlockerOrDamageable; + &BuildingsState::isBuildingBlockingOrDestructible) + isBuildingBlockingOrDestructible; MACRO_FUNCTION_RESOLVER(BOOLEnum (BuildingsState::*)(uint), false, Address::SHC_3BB0A8C1_0x0040B900, &BuildingsState::getBuildingHasHealthProperty) getBuildingHasHealthProperty; MACRO_FUNCTION_RESOLVER(BOOLEnum (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040B980, - &BuildingsState::hasHumanPlayerUnitsOnBuilding) - hasHumanPlayerUnitsOnBuilding; + &BuildingsState::trueIfAnyUnitsOnBuildingAreFromHumanPlayer) + trueIfAnyUnitsOnBuildingAreFromHumanPlayer; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x0040BA10, &BuildingsState::setupBuildingEntrancesOffset) + MACRO_FUNCTION_RESOLVER(undefined (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040BA10, + &BuildingsState::setupBuildingEntrancesOffset) setupBuildingEntrancesOffset; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, int, int, int), false, Address::SHC_3BB0A8C1_0x0040BC40, &BuildingsState::setupNextCandidateLocationComputeOffsets2) setupNextCandidateLocationComputeOffsets2; - MACRO_FUNCTION_RESOLVER(BOOLEnum (BuildingsState::*)(int, ResourceType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (BuildingsState::*)(int, ResourceTypeInt), false, Address::SHC_3BB0A8C1_0x0040BE70, &BuildingsState::buildingHasSpaceForResource) buildingHasSpaceForResource; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(BuildingType, int, int), false, - Address::SHC_3BB0A8C1_0x0040BEE0, &BuildingsState::extendResourceCountdownForPlayerBuildingsOfType) - extendResourceCountdownForPlayerBuildingsOfType; + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(BuildingTypeInt, int, int), false, + Address::SHC_3BB0A8C1_0x0040BEE0, &BuildingsState::raiseBuildingCountdownForType) + raiseBuildingCountdownForType; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, ResourceType, int), false, + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, ResourceTypeInt, int), false, Address::SHC_3BB0A8C1_0x0040BF40, &BuildingsState::canBuildingStoreTheAmount) canBuildingStoreTheAmount; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, undefined4, int), false, - Address::SHC_3BB0A8C1_0x0040BFA0, &BuildingsState::getResourceCountThatCanBeDeposited) + MACRO_FUNCTION_RESOLVER(undefined (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040BFA0, + &BuildingsState::getResourceCountThatCanBeDeposited) getResourceCountThatCanBeDeposited; - MACRO_FUNCTION_RESOLVER(BuildingType (BuildingsState::*)(ResourceType), false, - Address::SHC_3BB0A8C1_0x0040BFD0, &BuildingsState::getBuildingStorageTypeForResourceType) + MACRO_FUNCTION_RESOLVER(undefined (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040BFD0, + &BuildingsState::getBuildingStorageTypeForResourceType) getBuildingStorageTypeForResourceType; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(ResourceType, int, int), false, + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(ResourceTypeInt, int, int), false, Address::SHC_3BB0A8C1_0x0040BFE0, &BuildingsState::getStorageBuildingForResourceTypeAndAmount) getStorageBuildingForResourceTypeAndAmount; MACRO_FUNCTION_RESOLVER(uint (BuildingsState::*)(uint, undefined4, int, int), false, - Address::SHC_3BB0A8C1_0x0040C060, &BuildingsState::getArmoryIDIfSpaceLeft) - getArmoryIDIfSpaceLeft; + Address::SHC_3BB0A8C1_0x0040C060, &BuildingsState::ifArmoryReturnIDIfSpaceLeft) + ifArmoryReturnIDIfSpaceLeft; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040C0D0, - &BuildingsState::computeArmoryRemainingCapacity) - computeArmoryRemainingCapacity; + &BuildingsState::getArmoryFreeCapacity) + getArmoryFreeCapacity; MACRO_FUNCTION_RESOLVER(uint (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040C130, &BuildingsState::computeResourceSumForBuilding) @@ -235,15 +235,15 @@ namespace Map { &BuildingsState::recomputePlayerDataStocksBasedOnStorageBuildings) recomputePlayerDataStocksBasedOnStorageBuildings; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(CommandBuildingType, int*, int*), false, + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(CommandBuildingTypeInt, int*, int*), false, Address::SHC_3BB0A8C1_0x0040C5F0, &BuildingsState::getBuildingCost) getBuildingCost; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(UnitType, int*), false, Address::SHC_3BB0A8C1_0x0040C800, - &BuildingsState::getPriceForDisbandedUnitType) + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(UnitTypeInt, int*), false, + Address::SHC_3BB0A8C1_0x0040C800, &BuildingsState::getPriceForDisbandedUnitType) getPriceForDisbandedUnitType; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(BuildingType, int*, int*), false, + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(BuildingTypeInt, int*, int*), false, Address::SHC_3BB0A8C1_0x0040C9B0, &BuildingsState::resourceGainForKillingPitAndPitchDitch) resourceGainForKillingPitAndPitchDitch; @@ -260,72 +260,72 @@ namespace Map { getFarmThatHasTile; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040CB90, - &BuildingsState::isFarmTileReadyForWheatStageChange) - isFarmTileReadyForWheatStageChange; + &BuildingsState::hasFarmTileReadyToHarvest) + hasFarmTileReadyToHarvest; MACRO_FUNCTION_RESOLVER( void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040CC30, &BuildingsState::growWheat) growWheat; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040CF20, - &BuildingsState::updateWheatFieldTileGraphics) - updateWheatFieldTileGraphics; + &BuildingsState::updateWheatFieldCropGraphics) + updateWheatFieldCropGraphics; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040D090, &BuildingsState::harmWheatFarmsOfPlayer) harmWheatFarmsOfPlayer; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040D120, - &BuildingsState::setupBarracksCampgroundPositions) - setupBarracksCampgroundPositions; + &BuildingsState::computeBarracksParadePositions) + computeBarracksParadePositions; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040D400, - &BuildingsState::setupMercenaryPostCampgroundPositions) - setupMercenaryPostCampgroundPositions; + &BuildingsState::computeMercenaryParadePositions) + computeMercenaryParadePositions; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int, int), false, - Address::SHC_3BB0A8C1_0x0040D6E0, &BuildingsState::isSpaceAvailableAtUnitRallyPoint) - isSpaceAvailableAtUnitRallyPoint; + Address::SHC_3BB0A8C1_0x0040D6E0, &BuildingsState::getIsAnySpaceAvailableAtUnitRallyPoint) + getIsAnySpaceAvailableAtUnitRallyPoint; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int, int), false, - Address::SHC_3BB0A8C1_0x0040D9C0, &BuildingsState::getKeepLocationForAIUnit) - getKeepLocationForAIUnit; + Address::SHC_3BB0A8C1_0x0040D9C0, &BuildingsState::ifAIUnitReturnKeepLocation) + ifAIUnitReturnKeepLocation; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040DC70, &BuildingsState::createEntityForAssemblyPointsForActiveTabType) createEntityForAssemblyPointsForActiveTabType; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040E040, - &BuildingsState::setupEngineersGuildCampgroundPositions) - setupEngineersGuildCampgroundPositions; + &BuildingsState::computeEngineersCampgroundPositions) + computeEngineersCampgroundPositions; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0040E120, - &BuildingsState::findFreeEngineerAssemblyTile) - findFreeEngineerAssemblyTile; + &BuildingsState::someLaddermanFunction1) + someLaddermanFunction1; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040E330, - &BuildingsState::setupTunnelersGuildCampgroundPositions) - setupTunnelersGuildCampgroundPositions; + &BuildingsState::computeTunnelersCampgroundPositions) + computeTunnelersCampgroundPositions; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0040E410, - &BuildingsState::findFreeTunnelerAssemblyTile) - findFreeTunnelerAssemblyTile; + &BuildingsState::findTunnelerMusterTile) + findTunnelerMusterTile; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0040E610, - &BuildingsState::findFreeCathedralAssemblyTile) - findFreeCathedralAssemblyTile; + &BuildingsState::findCathedralMusterTile) + findCathedralMusterTile; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040E740, &BuildingsState::setTileRefsForOilSmelter) setTileRefsForOilSmelter; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int, int), false, - Address::SHC_3BB0A8C1_0x0040E900, &BuildingsState::isEngineerNotAtAssignedWorkTile) - isEngineerNotAtAssignedWorkTile; + Address::SHC_3BB0A8C1_0x0040E900, &BuildingsState::getWorkerSlotDestinationTile) + getWorkerSlotDestinationTile; MACRO_FUNCTION_RESOLVER(uint (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040E990, - &BuildingsState::getActiveEngineerForBuilding) - getActiveEngineerForBuilding; + &BuildingsState::getActiveEngineerWorker) + getActiveEngineerWorker; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040EA00, &BuildingsState::setNewOnFarmDestination) @@ -336,44 +336,44 @@ namespace Map { growHops; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040EDF0, - &BuildingsState::updateHopsFieldTileGraphics) - updateHopsFieldTileGraphics; + &BuildingsState::updateFarmCropTileGraphics) + updateFarmCropTileGraphics; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040EF40, - &BuildingsState::harmHopFarmsOfPlayer) - harmHopFarmsOfPlayer; + MACRO_FUNCTION_RESOLVER( + void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040EF40, &BuildingsState::harvestHopFarm) + harvestHopFarm; MACRO_FUNCTION_RESOLVER(ushort* (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040EFD0, - &BuildingsState::updateBuildingAreaTileGraphics) - updateBuildingAreaTileGraphics; + &BuildingsState::updateFarmFieldTileGraphics) + updateFarmFieldTileGraphics; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040F040, &BuildingsState::setDairyFarmCheeseCounter) setDairyFarmCheeseCounter; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040F090, - &BuildingsState::harmAppleFarmTreesOfPlayer) - harmAppleFarmTreesOfPlayer; + &BuildingsState::regrowAppleFarmOrchard) + regrowAppleFarmOrchard; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040F1E0, &BuildingsState::setSignpostDataForBuildings) setSignpostDataForBuildings; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040F240, + MACRO_FUNCTION_RESOLVER(undefined (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040F240, &BuildingsState::destroySignpostData) destroySignpostData; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0040F360, - &BuildingsState::updateBuildingSignpostCounter) - updateBuildingSignpostCounter; + &BuildingsState::setBuildingDisplayState) + setBuildingDisplayState; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040F3D0, &BuildingsState::setBuildingToAppleFarm) setBuildingToAppleFarm; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040F3F0, - &BuildingsState::clearBuildingValueWhenStateIsTwo) - clearBuildingValueWhenStateIsTwo; + &BuildingsState::setBuildingValueBasedOnBuildingStateBeing2) + setBuildingValueBasedOnBuildingStateBeing2; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040F420, &BuildingsState::getBuildingFlag3) @@ -388,11 +388,11 @@ namespace Map { determinePeasantSitPosition; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040F4F0, - &BuildingsState::refreshAllBuildingTileDisplays) - refreshAllBuildingTileDisplays; + &BuildingsState::refreshAllBuildingDisplayLayers) + refreshAllBuildingDisplayLayers; - MACRO_FUNCTION_RESOLVER(BOOLEnum (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0040F540, - &BuildingsState::hasWorker) + MACRO_FUNCTION_RESOLVER( + undefined (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x0040F540, &BuildingsState::hasWorker) hasWorker; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0040F5C0, @@ -420,8 +420,8 @@ namespace Map { processBuildingIDsNeedPeasantsQueue; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0040FC40, - &BuildingsState::updateLordLadyJesterAndGhostUnits) - updateLordLadyJesterAndGhostUnits; + &BuildingsState::updatePlayerCourtUnits) + updatePlayerCourtUnits; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00410200, &BuildingsState::getRequiredEngineerCountForSiegeBuilding) @@ -436,48 +436,48 @@ namespace Map { updateRepairCostAndReturnIfDamaged; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00410440, - &BuildingsState::canUnitReachBuildingPerimeter) - canUnitReachBuildingPerimeter; + &BuildingsState::canUnitReachBuilding) + canUnitReachBuilding; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004105F0, - &BuildingsState::canUnitReachAdjacentTile) - canUnitReachAdjacentTile; + &BuildingsState::canUnitReachTileNeighbor) + canUnitReachTileNeighbor; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004106D0, &BuildingsState::processDamageToUnitsOnBuilding) processDamageToUnitsOnBuilding; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, undefined4), false, Address::SHC_3BB0A8C1_0x00410800, - &BuildingsState::spawnRandomFireEffectOnBuilding) - spawnRandomFireEffectOnBuilding; + &BuildingsState::spawnBuildingFirePops) + spawnBuildingFirePops; - MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00410920, - &BuildingsState::getBuildingFlammabilityFactor) - getBuildingFlammabilityFactor; + MACRO_FUNCTION_RESOLVER(undefined (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x00410920, + &BuildingsState::getBuildingFireClass) + getBuildingFireClass; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x004109F0, &BuildingsState::extinguishBuildingFire) extinguishBuildingFire; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00410B10, - &BuildingsState::findClosestReachableAlliedBuilding) - findClosestReachableAlliedBuilding; + &BuildingsState::findNearestReachableTeamBuilding) + findNearestReachableTeamBuilding; MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00410C40, &BuildingsState::playerHasBurningBuilding) playerHasBurningBuilding; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x004173D0, - &BuildingsState::validateBuildingTetheredUnits) - validateBuildingTetheredUnits; + &BuildingsState::revalidateBuildingOccupants) + revalidateBuildingOccupants; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00417450, - &BuildingsState::removeTetheredUnitFromBuilding) - removeTetheredUnitFromBuilding; + &BuildingsState::removeOccupantFromBuilding) + removeOccupantFromBuilding; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00418EC0, - &BuildingsState::getRequiredEngineersCount) - getRequiredEngineersCount; + &BuildingsState::requiredEngineersCount) + requiredEngineersCount; MACRO_FUNCTION_RESOLVER( void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x00419780, &BuildingsState::initBuildingCosts) @@ -492,20 +492,20 @@ namespace Map { processDamageFromKillingPit; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00419960, - &BuildingsState::updatePathLinkageTileMap) - updatePathLinkageTileMap; + &BuildingsState::unkUpdatePathLinkageTileMap) + unkUpdatePathLinkageTileMap; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00419A30, - &BuildingsState::initializeGatePathfindingForOwner) - initializeGatePathfindingForOwner; + &BuildingsState::initPlayerGatehousePathLinks) + initPlayerGatehousePathLinks; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x00419AC0, - &BuildingsState::rebuildTileLogicLayerForGatesAndWalls) - rebuildTileLogicLayerForGatesAndWalls; + &BuildingsState::applyWallMoatTilesToMap) + applyWallMoatTilesToMap; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x00419BE0, - &BuildingsState::rebuildTileLogicLayerForKeeps) - rebuildTileLogicLayerForKeeps; + &BuildingsState::markKeepTilesInLogicLayer) + markKeepTilesInLogicLayer; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x00419C70, &BuildingsState::updatePathLinkageForGatesKeepsSiegeTowers) @@ -516,12 +516,12 @@ namespace Map { updateEnemyBuildings; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00419EB0, &BuildingsState::aiFindBuildingToAttack) - aiFindBuildingToAttack; + Address::SHC_3BB0A8C1_0x00419EB0, &BuildingsState::AIfindBuildingToAttack) + AIfindBuildingToAttack; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00419FA0, &BuildingsState::findClosestEnemyBuildingWithinRadius) - findClosestEnemyBuildingWithinRadius; + Address::SHC_3BB0A8C1_0x00419FA0, &BuildingsState::findNearestEnemyBuildingInRadius) + findNearestEnemyBuildingInRadius; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0041A7A0, &BuildingsState::destroyBuilding) @@ -544,38 +544,39 @@ namespace Map { determineBuildingEntranceFromCustomArea; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0041B7C0, - &BuildingsState::computeBuildingEntranceFlagsForOrientations) - computeBuildingEntranceFlagsForOrientations; + &BuildingsState::updateBuildingBlockedAccessTiles) + updateBuildingBlockedAccessTiles; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(undefined4, int, int, int, int, int, CommandBuildingType), - false, Address::SHC_3BB0A8C1_0x0041B890, &BuildingsState::findQuarryPileLocation) + MACRO_FUNCTION_RESOLVER( + void (BuildingsState::*)(undefined4, int, int, int, int, int, CommandBuildingTypeInt), false, + Address::SHC_3BB0A8C1_0x0041B890, &BuildingsState::findQuarryPileLocation) findQuarryPileLocation; - MACRO_FUNCTION_RESOLVER(BOOLEnum (BuildingsState::*)(int, int, int, int, BuildingType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (BuildingsState::*)(int, int, int, int, BuildingTypeInt), false, Address::SHC_3BB0A8C1_0x0041B940, &BuildingsState::hasBuildingAsNeighbour) hasBuildingAsNeighbour; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(undefined4, int, int, int, BuildingType, int), false, + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(undefined4, int, int, int, BuildingTypeInt, int), false, Address::SHC_3BB0A8C1_0x0041BA00, &BuildingsState::findParticularBuilding) findParticularBuilding; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0041BAB0, - &BuildingsState::findAccessibleAreaNearBuildingLocation) - findAccessibleAreaNearBuildingLocation; + &BuildingsState::getBuildingEntranceAreaID) + getBuildingEntranceAreaID; - MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int, ResourceType, int, int, int), false, + MACRO_FUNCTION_RESOLVER(undefined4 (BuildingsState::*)(int, int, ResourceTypeInt, int, int, int), false, Address::SHC_3BB0A8C1_0x0041BB30, &BuildingsState::addResourceToStockpile) addResourceToStockpile; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(ResourceType, int, int), false, + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(ResourceTypeInt, int, int), false, Address::SHC_3BB0A8C1_0x0041BC10, &BuildingsState::addResourceToGranary) addResourceToGranary; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(ResourceType, int, int), false, + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(ResourceTypeInt, int, int), false, Address::SHC_3BB0A8C1_0x0041BCA0, &BuildingsState::addResourceToArmory) addResourceToArmory; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, ResourceType, int, int), false, + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, ResourceTypeInt, int, int), false, Address::SHC_3BB0A8C1_0x0041BD70, &BuildingsState::processResourceLoss) processResourceLoss; @@ -583,7 +584,7 @@ namespace Map { &BuildingsState::subtractResourcesStoredInBuilding) subtractResourcesStoredInBuilding; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, BuildingType, int), false, + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, BuildingTypeInt, int), false, Address::SHC_3BB0A8C1_0x0041BFD0, &BuildingsState::processPlacementResourceLossForBuildingType) processPlacementResourceLossForBuildingType; @@ -592,16 +593,16 @@ namespace Map { processWallBuildingLoss; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0041C240, - &BuildingsState::applyFoodLossPercentageToPlayer) - applyFoodLossPercentageToPlayer; + &BuildingsState::removeFoodResourcesByPercent) + removeFoodResourcesByPercent; - MACRO_FUNCTION_RESOLVER(BOOLEnum (BuildingsState::*)(int, ResourceType, int), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (BuildingsState::*)(int, ResourceTypeInt, int), false, Address::SHC_3BB0A8C1_0x0041C310, &BuildingsState::processResourceGain) processResourceGain; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, BOOLEnum, BOOLEnum), false, - Address::SHC_3BB0A8C1_0x0041C570, &BuildingsState::applyGateOrDrawbridgeOpenCloseChange) - applyGateOrDrawbridgeOpenCloseChange; + Address::SHC_3BB0A8C1_0x0041C570, &BuildingsState::ApplyGateOrDrawbridgeOpenCloseChange) + ApplyGateOrDrawbridgeOpenCloseChange; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x0041C6F0, &BuildingsState::sortBuildingIDsNeedPeasantsQueue) @@ -611,12 +612,13 @@ namespace Map { Address::SHC_3BB0A8C1_0x0041C810, &BuildingsState::lightUpBuilding) lightUpBuilding; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, - Address::SHC_3BB0A8C1_0x00420BF0, &BuildingsState::upgradeBuildingsForMapVersion) - upgradeBuildingsForMapVersion; + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, + Address::SHC_3BB0A8C1_0x00420BF0, &BuildingsState::migrateBuildingsForMapVersion) + migrateBuildingsForMapVersion; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, uint, uint, undefined4, BuildingType, uint, int, int), - false, Address::SHC_3BB0A8C1_0x00420D20, &BuildingsState::setupBuildingData) + MACRO_FUNCTION_RESOLVER( + int (BuildingsState::*)(int, uint, uint, undefined4, BuildingTypeInt, uint, int, int), false, + Address::SHC_3BB0A8C1_0x00420D20, &BuildingsState::setupBuildingData) setupBuildingData; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(uint), false, Address::SHC_3BB0A8C1_0x00421890, @@ -624,22 +626,22 @@ namespace Map { deleteBuilding; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(uint), false, Address::SHC_3BB0A8C1_0x00421990, - &BuildingsState::destroyBuildingAndLinkedDuplicates) - destroyBuildingAndLinkedDuplicates; + &BuildingsState::someBuildingDestroyFunction) + someBuildingDestroyFunction; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00421A40, &BuildingsState::buildingIsAccessible) buildingIsAccessible; MACRO_FUNCTION_RESOLVER(char (BuildingsState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00421BE0, &BuildingsState::resolveBuildingEntryAccessibility) - resolveBuildingEntryAccessibility; + Address::SHC_3BB0A8C1_0x00421BE0, &BuildingsState::checkBuildingAccessFromArea) + checkBuildingAccessFromArea; MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x00421D70, &BuildingsState::giveBackResourceForDestroyedBuilding) giveBackResourceForDestroyedBuilding; - MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(ResourceType, int, int), false, + MACRO_FUNCTION_RESOLVER(int (BuildingsState::*)(ResourceTypeInt, int, int), false, Address::SHC_3BB0A8C1_0x00422230, &BuildingsState::getBuildingThatCanStoreThisResource) getBuildingThatCanStoreThisResource; @@ -652,32 +654,32 @@ namespace Map { findQuarryPileThatIsCloseAndHasMostStone; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x004224F0, - &BuildingsState::updateGateDrawBridgeOpenCloseLogic) - updateGateDrawBridgeOpenCloseLogic; + &BuildingsState::UpdateGateDrawBridgeOpenCloseLogic) + UpdateGateDrawBridgeOpenCloseLogic; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00422B80, &BuildingsState::checkBuildingsNeedPeasants) checkBuildingsNeedPeasants; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00422C60, - &BuildingsState::spreadFireRandomlyToBuildings) - spreadFireRandomlyToBuildings; + &BuildingsState::igniteRandomPlayerBuildings) + igniteRandomPlayerBuildings; MACRO_FUNCTION_RESOLVER( void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x00422E20, &BuildingsState::updateBuildings) updateBuildings; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(), false, Address::SHC_3BB0A8C1_0x00424220, - &BuildingsState::recomputeAccessibilityForAllBuildings) - recomputeAccessibilityForAllBuildings; + &BuildingsState::recomputeAllBuildingAccessibility) + recomputeAllBuildingAccessibility; MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(int), false, Address::SHC_3BB0A8C1_0x00424270, &BuildingsState::updateHeatmapBasedOnBuildingAccessibility) updateHeatmapBasedOnBuildingAccessibility; - MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, - Address::SHC_3BB0A8C1_0x00424310, &BuildingsState::applyVersionUpgradeAccessibilityRecompute) - applyVersionUpgradeAccessibilityRecompute; + MACRO_FUNCTION_RESOLVER(void (BuildingsState::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, + Address::SHC_3BB0A8C1_0x00424310, &BuildingsState::recomputeBuildingAccessibilityOnLoad) + recomputeBuildingAccessibilityOnLoad; } // namespace BuildingsState_Func } // namespace Buildings diff --git a/src/OpenSHC/Map/Buildings/BuildingsState.hpp b/src/OpenSHC/Map/Buildings/BuildingsState.hpp index f8a6703f..91c24cb3 100644 --- a/src/OpenSHC/Map/Buildings/BuildingsState.hpp +++ b/src/OpenSHC/Map/Buildings/BuildingsState.hpp @@ -8,28 +8,28 @@ #pragma once -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/Game/Player/PlayerID.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" #include "OpenSHC/Map/Buildings/Building.hpp" #include "OpenSHC/Map/Buildings/BuildingCostStruct.hpp" -#include "OpenSHC/Map/Buildings/BuildingType.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Map/Buildings/BuildingTypeInt.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace Buildings { - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::Commands::CommandBuildingTypeInt; using OpenSHC::Game::Player::PlayerID; - using OpenSHC::Game::Resources::ResourceType; - using OpenSHC::IO::PackagedFileMagicNum; + using OpenSHC::Game::Resources::ResourceTypeInt; + using OpenSHC::IO::PackagedFileMagicNumInt; using OpenSHC::Map::Buildings::Building; using OpenSHC::Map::Buildings::BuildingCostStruct; - using OpenSHC::Map::Buildings::BuildingType; - using OpenSHC::Map::Units::UnitType; + using OpenSHC::Map::Buildings::BuildingTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -40,18 +40,18 @@ namespace Map { int structCount; // 0x00000000 length: 4 undefined4 field1_0x4; // 0x00000004 length: 4 undefined4 maxBuildingsCount; // 0x00000008 length: 4 - undefined4 unknownCountdown01; // 0x0000000C length: 4 - undefined4 field4_0x10; // 0x00000010 length: 4 + undefined4 dwBuildingCapacityRemaining; // 0x0000000C length: 4 + undefined4 dwBuildingSlowUpdateCountdown; // 0x00000010 length: 4 Building buildings[2000]; // 0x00000014 length: 1624000 BuildingCostStruct buildingCosts[110]; // 0x0018C7D4 length: 2200 - undefined4 pathLinkageKeepWasUpdatedUnk; // 0x0018D06C length: 4 + undefined4 dwPathLinkageNeedsUpdate; // 0x0018D06C length: 4 undefined4 counter; // 0x0018D070 length: 4 undefined2 DAT_BuildingIDsNeedPeasantsQueue[2000]; // 0x0018D074 length: 4000 undefined4 DAT_CountOfBuildingsNeedPeasants; // 0x0018E014 length: 4 int campfireSpotX; // 0x0018E018 length: 4 int campfireSpotY; // 0x0018E01C length: 4 int campfireSpotOrientation; // 0x0018E020 length: 4 - undefined4 field14_0x18e024; // 0x0018E024 length: 4 + undefined4 dwFarmCropGraphicsFlag; // 0x0018E024 length: 4 undefined4 DAT_TempXOffset; // 0x0018E028 length: 4 undefined4 DAT_TempYOffset; // 0x0018E02C length: 4 undefined4 farmerDestinationTile; // 0x0018E030 length: 4 @@ -61,20 +61,20 @@ namespace Map { undefined4 newSelectedBuildingID; // 0x0018E040 length: 4 undefined4 menuSelectedUnitID; // 0x0018E044 length: 4 undefined4 newSelectedUnitID; // 0x0018E048 length: 4 - undefined4 field24_0x18e04c; // 0x0018E04C length: 4 - undefined4 field25_0x18e050; // 0x0018E050 length: 4 + undefined4 dwBuildingHelpTextActive; // 0x0018E04C length: 4 + undefined4 dwBuildingHelpTextID; // 0x0018E050 length: 4 char* DAT_CurrentlyPlayingBuildingBik; // 0x0018E054 length: 4 BOOLEnum DAT_IsBuildingOrPeasantBinkPlaying; // 0x0018E058 length: 4 - int field28_0x18e05c; // 0x0018E05C length: 4 - undefined4 field29_0x18e060; // 0x0018E060 length: 4 + int nStatusMenuBuildingID; // 0x0018E05C length: 4 + undefined4 dwStatusMenuBuildingUID; // 0x0018E060 length: 4 BOOLEnum isFirstTickInLoop; // 0x0018E064 length: 4 undefined4 DAT_DraggedTileCountVerified; // 0x0018E068 length: 4 int INT_SelectedBuildingStoneWoodCost; // 0x0018E06C length: 4 int INT_SelectedBuildingStoneRepairCost; // 0x0018E070 length: 4 - undefined4 field34_0x18e074; // 0x0018E074 length: 4 + undefined4 dwTowerUpdateFlag; // 0x0018E074 length: 4 int siegeEngineCreationRelated01; // 0x0018E078 length: 4 undefined4 unitID; // 0x0018E07C length: 4 - undefined4 field37_0x18e080; // 0x0018E080 length: 4 + undefined4 dwBuildingsStateInitTimeMs; // 0x0018E080 length: 4 int unused01; // 0x0018E084 length: 4 private: @@ -86,21 +86,21 @@ namespace Map { ~BuildingsState() {}; // Constructor - BuildingsState* constructBuildingsState(); + BuildingsState* Constructor_BuildingsState(); - undefined4 getBuildingResourceAmountByUid(int buildingID, int param_2, ResourceType param_3); + undefined4 someArrayIndexingOnBuildingField0x120(int buildingID, int param_2, ResourceTypeInt param_3); - BuildingType convertCommandBuildingTypeToBuildingType(CommandBuildingType commandBuildingType); + undefined convertCommandBuildingTypeToBuildingType(); - CommandBuildingType convertBuildingTypeToCommandBuildingType(BuildingType buildingType); + CommandBuildingTypeInt convertBuildingTypeToCommandBuildingType(BuildingTypeInt buildingType); - undefined4 getBuildingHeightForBuildingID(int buildingID); + undefined getBuildingHeightForBuildingID(); - undefined4 getBuildingHeightForBuildingID2(int buildingID); + undefined4 GetBuildingHeightForBuildingID_type2(int buildingID); - int getSpriteID(CommandBuildingType commandBuildingType); + int getSpriteID(CommandBuildingTypeInt commandBuildingType); - int getSpriteID2(CommandBuildingType commandBuildingType); + int getSpriteID2(CommandBuildingTypeInt commandBuildingType); void clearBuildings(); @@ -114,42 +114,41 @@ namespace Map { void copyPlayerDataArrayValues(int playerID, int playerID2); - int chooseProductionItemType(int playerID, BuildingType buildingType); + int chooseProductionItemType(int playerID, BuildingTypeInt buildingType); - int getEmptyBuildingCount(int playerID, BuildingType buildingType); + int getEmptyBuildingCount(int playerID, BuildingTypeInt buildingType); - int countBuildingsForPlayer(PlayerID playerID, BuildingType buildingType, int includeBool); + int countBuildingsForPlayer(PlayerID playerID, BuildingTypeInt buildingType, int includeBool); int countFarms(PlayerID playerID, int param_2); - int findFirstBuildingOfType(int playerID, BuildingType buildingType); + int findFirstBuildingOfType(int playerID, BuildingTypeInt buildingType); - int findFirstBuildingIDForPlayerAndType(int playerID, BuildingType buildingType); + int findFirstBuildingIDForPlayerAndType(int playerID, BuildingTypeInt buildingType); - int findNextBuildingForPlayerAndType(PlayerID playerID, BuildingType buildingType, int buildingID); + int findNextBuildingForPlayerAndType(PlayerID playerID, BuildingTypeInt buildingType, int buildingID); - int findNextBuildingIDForOwnerAndType(int param_1, int param_2, int param_3); + int findNextOwnedBuildingOfType(int param_1, int param_2, int param_3); - int findNextBuildingForPlayerAndOneOfThreeTypes( - int param_1, int param_2, int param_3, int param_4, int param_5); + int findNextOwnedBuildingOfTypes(int param_1, int param_2, int param_3, int param_4, int param_5); int canNavigateToDefensiveBuilding( int playerID, int buildingXPosition, int buildingYPosition, int buildingID); - int findNextReachableDefensiveBuildingForPlayer(int param_1, int param_2, int param_3, int param_4); + int findNextReachableDefensiveBuilding(int param_1, int param_2, int param_3, int param_4); - int pickARandomBuildingOfType(int playerID, BuildingType buildingType); + int pickARandomBuildingOfType(int playerID, BuildingTypeInt buildingType); - int pickARandomBuildingIDOfTheseThreeTypes( - int playerID, BuildingType buildingType1, BuildingType buildingType2, BuildingType buildingType3); + int pickARandomBuildingIDOfTheseThreeTypes(int playerID, BuildingTypeInt buildingType1, + BuildingTypeInt buildingType2, BuildingTypeInt buildingType3); int pickARandomPositiveFearFactorBuilding(int playerID); - int findClosestInnBuildingID(int unitID); + int closestInnBuildingID(int unitID); void recomputeAllFearFactors(); - undefined4 findBuildingOfTypeForPlayer(int playerID, BuildingType buildingType); + undefined4 findBuildingOfTypeForPlayer(int playerID, BuildingTypeInt buildingType); void removeSiegeBuildings(int attackWave, int playerID); @@ -157,36 +156,35 @@ namespace Map { undefined4 prepareCampgroundCoords(int playerID); - undefined4 hasBuildingEntranceFlagForOrientation(int buildingID); + undefined4 getBuildingOrientationFlag(int buildingID); - undefined4 hasBuildingExitFlagForOrientation(int buildingID); + undefined4 getBuildingOrientationFlag2(int buildingID); - uint isBuildingPathBlockerOrDamageable(uint param_1, int param_2); + uint isBuildingBlockingOrDestructible(uint param_1, int param_2); BOOLEnum getBuildingHasHealthProperty(uint buildingID); - BOOLEnum hasHumanPlayerUnitsOnBuilding(int buildingID); + BOOLEnum trueIfAnyUnitsOnBuildingAreFromHumanPlayer(int buildingID); - void setupBuildingEntrancesOffset(int buildingSize, int nudge, int try_, int offset); + undefined setupBuildingEntrancesOffset(); void setupNextCandidateLocationComputeOffsets2(int size, int nudge, int try_, int offset); - BOOLEnum buildingHasSpaceForResource(int buildingID, ResourceType resourceType); + BOOLEnum buildingHasSpaceForResource(int buildingID, ResourceTypeInt resourceType); - void extendResourceCountdownForPlayerBuildingsOfType( - BuildingType buildingType, int someCountdown, int playerID); + void raiseBuildingCountdownForType(BuildingTypeInt buildingType, int someCountdown, int playerID); - int canBuildingStoreTheAmount(int buildingID, ResourceType resourceType, int storageLimit); + int canBuildingStoreTheAmount(int buildingID, ResourceTypeInt resourceType, int storageLimit); - int getResourceCountThatCanBeDeposited(int buildingID, undefined4 resourceType, int storageLimit); + undefined getResourceCountThatCanBeDeposited(); - BuildingType getBuildingStorageTypeForResourceType(ResourceType resourceType); + undefined getBuildingStorageTypeForResourceType(); - int getStorageBuildingForResourceTypeAndAmount(ResourceType resourceType, int amount, int owner); + int getStorageBuildingForResourceTypeAndAmount(ResourceTypeInt resourceType, int amount, int owner); - uint getArmoryIDIfSpaceLeft(uint buildingID, undefined4 resourceID, int playerID, int resourceCount); + uint ifArmoryReturnIDIfSpaceLeft(uint buildingID, undefined4 resourceID, int playerID, int resourceCount); - int computeArmoryRemainingCapacity(int buildingID); + int getArmoryFreeCapacity(int buildingID); uint computeResourceSumForBuilding(int buildingID); @@ -198,12 +196,12 @@ namespace Map { void recomputePlayerDataStocksBasedOnStorageBuildings(); - void getBuildingCost(CommandBuildingType commandBuildingType, int* pStone, int* pGold); + void getBuildingCost(CommandBuildingTypeInt commandBuildingType, int* pStone, int* pGold); - void getPriceForDisbandedUnitType(UnitType unitType, int* outPrice); + void getPriceForDisbandedUnitType(UnitTypeInt unitType, int* outPrice); void resourceGainForKillingPitAndPitchDitch( - BuildingType buildingType, int* ptrRequiredStone, int* ptrRequiredGold); + BuildingTypeInt buildingType, int* ptrRequiredStone, int* ptrRequiredGold); void subtractPitchAndMoatFromStartingGoldInSiegeThatMode(); @@ -211,63 +209,63 @@ namespace Map { int getFarmThatHasTile(int tile); - undefined4 isFarmTileReadyForWheatStageChange(int param_1); + undefined4 hasFarmTileReadyToHarvest(int param_1); void growWheat(int buildingID); - void updateWheatFieldTileGraphics(int buildingID); + void updateWheatFieldCropGraphics(int buildingID); void harmWheatFarmsOfPlayer(int playerID); - void setupBarracksCampgroundPositions(int buildingID); + void computeBarracksParadePositions(int buildingID); - void setupMercenaryPostCampgroundPositions(int playerID); + void computeMercenaryParadePositions(int playerID); - undefined4 isSpaceAvailableAtUnitRallyPoint(int playerID, int value0to6, int unitID); + undefined4 getIsAnySpaceAvailableAtUnitRallyPoint(int playerID, int value0to6, int unitID); - undefined4 getKeepLocationForAIUnit(int playerID, int param_2, int unitID); + undefined4 ifAIUnitReturnKeepLocation(int playerID, int param_2, int unitID); void createEntityForAssemblyPointsForActiveTabType(); - void setupEngineersGuildCampgroundPositions(int param_1); + void computeEngineersCampgroundPositions(int param_1); - int findFreeEngineerAssemblyTile(int playerIndex, int param_2); + int someLaddermanFunction1(int playerIndex, int param_2); - void setupTunnelersGuildCampgroundPositions(int param_1); + void computeTunnelersCampgroundPositions(int param_1); - undefined4 findFreeTunnelerAssemblyTile(int param_1, int param_2); + undefined4 findTunnelerMusterTile(int param_1, int param_2); - undefined4 findFreeCathedralAssemblyTile(int param_1, int param_2); + undefined4 findCathedralMusterTile(int param_1, int param_2); void setTileRefsForOilSmelter(int buildingID); - undefined4 isEngineerNotAtAssignedWorkTile(int param_1, int param_2, int param_3); + undefined4 getWorkerSlotDestinationTile(int param_1, int param_2, int param_3); - uint getActiveEngineerForBuilding(int buildingID); + uint getActiveEngineerWorker(int buildingID); undefined4 setNewOnFarmDestination(int buildingID); void growHops(int buildingID); - void updateHopsFieldTileGraphics(int buildingID); + void updateFarmCropTileGraphics(int buildingID); - void harmHopFarmsOfPlayer(int param_1); + void harvestHopFarm(int param_1); - ushort* updateBuildingAreaTileGraphics(int param_1); + ushort* updateFarmFieldTileGraphics(int param_1); void setDairyFarmCheeseCounter(int param_1); - void harmAppleFarmTreesOfPlayer(int param_1); + void regrowAppleFarmOrchard(int param_1); void setSignpostDataForBuildings(); - void destroySignpostData(int buildingID); + undefined destroySignpostData(); - int updateBuildingSignpostCounter(int param_1, int param_2); + int setBuildingDisplayState(int param_1, int param_2); void setBuildingToAppleFarm(int buildingID); - void clearBuildingValueWhenStateIsTwo(); + void setBuildingValueBasedOnBuildingStateBeing2(); int getBuildingFlag3(int param_1); @@ -275,9 +273,9 @@ namespace Map { undefined4 determinePeasantSitPosition(int campfireID, int availablePeasants); - void refreshAllBuildingTileDisplays(); + void refreshAllBuildingDisplayLayers(); - BOOLEnum hasWorker(int buildingID, int workerSlot); + undefined hasWorker(); void assignWorkerToBuilding(int buildingID, int unitID, int workerIndex); @@ -291,7 +289,7 @@ namespace Map { void processBuildingIDsNeedPeasantsQueue(undefined4 playerID); - void updateLordLadyJesterAndGhostUnits(int playerID); + void updatePlayerCourtUnits(int playerID); undefined4 getRequiredEngineerCountForSiegeBuilding(int buildingID); @@ -299,27 +297,27 @@ namespace Map { BOOLEnum updateRepairCostAndReturnIfDamaged(int buildingIndex); - undefined4 canUnitReachBuildingPerimeter(int param_1, int param_2); + undefined4 canUnitReachBuilding(int param_1, int param_2); - undefined4 canUnitReachAdjacentTile(int param_1, int param_2); + undefined4 canUnitReachTileNeighbor(int param_1, int param_2); void processDamageToUnitsOnBuilding(int buildingID, int damageBonus); - void spawnRandomFireEffectOnBuilding(int buildingID, undefined4 playerID); + void spawnBuildingFirePops(int buildingID, undefined4 playerID); - undefined4 getBuildingFlammabilityFactor(int buildingID); + undefined getBuildingFireClass(); void extinguishBuildingFire(int buildingID); - int findClosestReachableAlliedBuilding(int param_1); + int findNearestReachableTeamBuilding(int param_1); undefined4 playerHasBurningBuilding(int playerID); - void validateBuildingTetheredUnits(int buildingID); + void revalidateBuildingOccupants(int buildingID); - void removeTetheredUnitFromBuilding(int buildingID, int unitID); + void removeOccupantFromBuilding(int buildingID, int unitID); - int getRequiredEngineersCount(int buildingID); + int requiredEngineersCount(int buildingID); void initBuildingCosts(); @@ -327,21 +325,21 @@ namespace Map { void processDamageFromKillingPit(int unitID); - void updatePathLinkageTileMap(int param_1); + void unkUpdatePathLinkageTileMap(int param_1); - void initializeGatePathfindingForOwner(int param_1); + void initPlayerGatehousePathLinks(int param_1); - void rebuildTileLogicLayerForGatesAndWalls(); + void applyWallMoatTilesToMap(); - void rebuildTileLogicLayerForKeeps(); + void markKeepTilesInLogicLayer(); void updatePathLinkageForGatesKeepsSiegeTowers(); void updateEnemyBuildings(int playerID); - int aiFindBuildingToAttack(int param_1, int param_2, int param_3, int param_4); + int AIfindBuildingToAttack(int param_1, int param_2, int param_3, int param_4); - int findClosestEnemyBuildingWithinRadius(int param_1, int param_2, int param_3, int param_4); + int findNearestEnemyBuildingInRadius(int param_1, int param_2, int param_3, int param_4); void destroyBuilding(int buildingID); @@ -353,80 +351,80 @@ namespace Map { undefined4 determineBuildingEntranceFromCustomArea(int buildingID, int param_2, int param_3, int x, int y); - void computeBuildingEntranceFlagsForOrientations(int param_1); + void updateBuildingBlockedAccessTiles(int param_1); void findQuarryPileLocation(undefined4 playerID, int x, int y, int buildingSize, int pileSize, int tryUnk, - CommandBuildingType commandBuildingType); + CommandBuildingTypeInt commandBuildingType); - BOOLEnum hasBuildingAsNeighbour(int playerID, int x, int y, int size, BuildingType type); + BOOLEnum hasBuildingAsNeighbour(int playerID, int x, int y, int size, BuildingTypeInt type); int findParticularBuilding( - undefined4 param_1, int x, int y, int buildingSize, BuildingType buildingType, int buildingID); + undefined4 param_1, int x, int y, int buildingSize, BuildingTypeInt buildingType, int buildingID); - int findAccessibleAreaNearBuildingLocation(int x, int y, int buildingSize); + int getBuildingEntranceAreaID(int x, int y, int buildingSize); - undefined4 addResourceToStockpile(int buildingID, int buildingUID, ResourceType resourceType, int amount, + undefined4 addResourceToStockpile(int buildingID, int buildingUID, ResourceTypeInt resourceType, int amount, int maxCapacity, int recomputeResources); - void addResourceToGranary(ResourceType resourceType, int playerID, int amount); + void addResourceToGranary(ResourceTypeInt resourceType, int playerID, int amount); - void addResourceToArmory(ResourceType resourceType, int playerID, int amount); + void addResourceToArmory(ResourceTypeInt resourceType, int playerID, int amount); - void processResourceLoss(int playerID, ResourceType resourceType, int amount, int param_4); + void processResourceLoss(int playerID, ResourceTypeInt resourceType, int amount, int param_4); void subtractResourcesStoredInBuilding(int buildingID); - void processPlacementResourceLossForBuildingType(int playerID, BuildingType buildingType, int param_3); + void processPlacementResourceLossForBuildingType(int playerID, BuildingTypeInt buildingType, int param_3); void processWallBuildingLoss(int playerID, int highCount, int lowCount, int zero); - void applyFoodLossPercentageToPlayer(int param_1, int param_2); + void removeFoodResourcesByPercent(int param_1, int param_2); - BOOLEnum processResourceGain(int playerID, ResourceType resourceType, int amount); + BOOLEnum processResourceGain(int playerID, ResourceTypeInt resourceType, int amount); - void applyGateOrDrawbridgeOpenCloseChange(int buildingID, BOOLEnum param_2, BOOLEnum param_3); + void ApplyGateOrDrawbridgeOpenCloseChange(int buildingID, BOOLEnum param_2, BOOLEnum param_3); void sortBuildingIDsNeedPeasantsQueue(int playerID); undefined4 lightUpBuilding(int buildingID, int burnerPlayerID, int spareGrounds); - void upgradeBuildingsForMapVersion( - PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + void migrateBuildingsForMapVersion( + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); - int setupBuildingData(int playerID, uint x, uint y, undefined4 averageHeight, BuildingType buildingType, + int setupBuildingData(int playerID, uint x, uint y, undefined4 averageHeight, BuildingTypeInt buildingType, uint width, int playerID_dup, int variationIndex); void deleteBuilding(uint buildingID); - void destroyBuildingAndLinkedDuplicates(uint param_1); + void someBuildingDestroyFunction(uint param_1); int buildingIsAccessible(int buildingID, int amountUnk); - char resolveBuildingEntryAccessibility(int buildingID, int param_2, int x, int y); + char checkBuildingAccessFromArea(int buildingID, int param_2, int x, int y); int giveBackResourceForDestroyedBuilding(int buildingID__negResourceType, int playerID, int param_3); - int getBuildingThatCanStoreThisResource(ResourceType resourceType, int amount, int playerID); + int getBuildingThatCanStoreThisResource(ResourceTypeInt resourceType, int amount, int playerID); uint getArmoryWithSpaceLeft( uint targetBuildingID, undefined4 producedItemTypeUnk, int playerID, int resourceToDeposit); int findQuarryPileThatIsCloseAndHasMostStone(int playerID, int x, int y, int unitID); - void updateGateDrawBridgeOpenCloseLogic(); + void UpdateGateDrawBridgeOpenCloseLogic(); void checkBuildingsNeedPeasants(int playerID); - void spreadFireRandomlyToBuildings(int param_1, int param_2); + void igniteRandomPlayerBuildings(int param_1, int param_2); void updateBuildings(); - void recomputeAccessibilityForAllBuildings(); + void recomputeAllBuildingAccessibility(); void updateHeatmapBasedOnBuildingAccessibility(int playerID); - void applyVersionUpgradeAccessibilityRecompute( - PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + void recomputeBuildingAccessibilityOnLoad( + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); }; static_assert_cpp98_obj(sizeof(BuildingsState) == 1630344, BuildingsState); diff --git a/src/OpenSHC/Map/Entities.func.hpp b/src/OpenSHC/Map/Entities.func.hpp index 25f63126..551f29c8 100644 --- a/src/OpenSHC/Map/Entities.func.hpp +++ b/src/OpenSHC/Map/Entities.func.hpp @@ -37,13 +37,13 @@ namespace Map { &OpenSHC::Map::Entities::UpdateCrossbowArrowEntity) UpdateCrossbowArrowEntity; - MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00401E20, &OpenSHC::Map::Entities::UpdateEntity_20_37) - UpdateEntity_20_37; + MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00401E20, + &OpenSHC::Map::Entities::UpdateBallistaBoltEntity) + UpdateBallistaBoltEntity; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00401EA0, &OpenSHC::Map::Entities::UpdateEntity_21) - UpdateEntity_21; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00401EA0, &OpenSHC::Map::Entities::UpdateDustCloudEntity) + UpdateDustCloudEntity; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00401FF0, &OpenSHC::Map::Entities::UpdateEntity_PoisonCloud) @@ -54,16 +54,16 @@ namespace Map { UpdateEntity_CowFlying; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00402260, &OpenSHC::Map::Entities::UpdateEntity_26) - UpdateEntity_26; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00402260, &OpenSHC::Map::Entities::UpdateExplosionEntity) + UpdateExplosionEntity; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00402330, &OpenSHC::Map::Entities::UpdateEntity_27) UpdateEntity_27; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004023A0, &OpenSHC::Map::Entities::UpdateEntity_28) - UpdateEntity_28; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004023A0, &OpenSHC::Map::Entities::UpdateCrowEntity) + UpdateCrowEntity; MACRO_FUNCTION_RESOLVER( uint(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004023F0, &OpenSHC::Map::Entities::UpdateEntity_29) diff --git a/src/OpenSHC/Map/Entities.hpp b/src/OpenSHC/Map/Entities.hpp index 245c1d95..ab14c3c0 100644 --- a/src/OpenSHC/Map/Entities.hpp +++ b/src/OpenSHC/Map/Entities.hpp @@ -24,19 +24,19 @@ namespace Map { void __stdcall UpdateCrossbowArrowEntity(); - void __stdcall UpdateEntity_20_37(); + void __stdcall UpdateBallistaBoltEntity(); - void __stdcall UpdateEntity_21(); + void __stdcall UpdateDustCloudEntity(); void __stdcall UpdateEntity_PoisonCloud(); void __stdcall UpdateEntity_CowFlying(); - void __stdcall UpdateEntity_26(); + void __stdcall UpdateExplosionEntity(); void __stdcall UpdateEntity_27(); - void __stdcall UpdateEntity_28(); + void __stdcall UpdateCrowEntity(); uint __stdcall UpdateEntity_29(); diff --git a/src/OpenSHC/Map/Entities/Entity.hpp b/src/OpenSHC/Map/Entities/Entity.hpp index e9b7d1d3..fa95713a 100644 --- a/src/OpenSHC/Map/Entities/Entity.hpp +++ b/src/OpenSHC/Map/Entities/Entity.hpp @@ -32,7 +32,7 @@ namespace Map { short unkThree_1; // 0x00000016 length: 2 short originX; // 0x00000018 length: 2 short originY; // 0x0000001A length: 2 - short field12_0x1c; // 0x0000001C length: 2 + short entityMotionAccumulator_0x1c; // 0x0000001C length: 2 short nextEntityOnThisTileByID; // 0x0000001E length: 2 short imageID; // 0x00000020 length: 2 byte unused_0x22[6]; // 0x00000022 length: 6 @@ -41,7 +41,7 @@ namespace Map { short owner; // 0x0000002C length: 2 byte unused_0x2e[2]; // 0x0000002E length: 2 int uid; // 0x00000030 length: 4 - int field21_0x34; // 0x00000034 length: 4 + int spawnTimeTicks_0x34; // 0x00000034 length: 4 short microX; // 0x00000038 length: 2 short microY; // 0x0000003A length: 2 short height; // 0x0000003C length: 2 @@ -58,57 +58,57 @@ namespace Map { short height_2; // 0x00000056 length: 2 short startingHeight; // 0x00000058 length: 2 short field37_0x5a; // 0x0000005A length: 2 - short field38_0x5c; // 0x0000005C length: 2 - short field39_0x5e; // 0x0000005E length: 2 + short nMoveTargetX; // 0x0000005C length: 2 + short nDeltaXAbs; // 0x0000005E length: 2 short someMicroX; // 0x00000060 length: 2 - short field41_0x62; // 0x00000062 length: 2 - short field42_0x64; // 0x00000064 length: 2 + short nMoveTargetY; // 0x00000062 length: 2 + short nDeltaYAbs; // 0x00000064 length: 2 short someMicroY; // 0x00000066 length: 2 - short field44_0x68; // 0x00000068 length: 2 - short field45_0x6a; // 0x0000006A length: 2 + short projectileVelX_0x68; // 0x00000068 length: 2 + short nProjectilePitchFrame; // 0x0000006A length: 2 short someCounter_OR_hitGround; // 0x0000006C length: 2 - short field47_0x6e; // 0x0000006E length: 2 - short field48_0x70; // 0x00000070 length: 2 - short field49_0x72; // 0x00000072 length: 2 - short field50_0x74; // 0x00000074 length: 2 + short nBresenhamStepMinor; // 0x0000006E length: 2 + short nBresenhamStepMajor; // 0x00000070 length: 2 + short nBresenhamError; // 0x00000072 length: 2 + short nMovementOctantMode; // 0x00000074 length: 2 byte unused_0x76[2]; // 0x00000076 length: 2 - int speedUnk; // 0x00000078 length: 4 + int nLaunchSpeed; // 0x00000078 length: 4 float vCos; // 0x0000007C length: 4 float vSin; // 0x00000080 length: 4 short travelledDistance; // 0x00000084 length: 2 byte field56_0x86[2]; // 0x00000086 length: 2 int orientation; // 0x00000088 length: 4 - short field58_0x8c; // 0x0000008C length: 2 + short nProjectileCollisionParam; // 0x0000008C length: 2 undefined1 padding_0x8e[2]; // 0x0000008E length: 2 int heightDifference; // 0x00000090 length: 4 - short field62_0x94; // 0x00000094 length: 2 - short velocityUnk; // 0x00000096 length: 2 + short projectileVelY_0x94; // 0x00000094 length: 2 + short nLaunchVelocity; // 0x00000096 length: 2 float _elapsedTimeOrGravityAccumulator; // 0x00000098 length: 4 short startingAngle; // 0x0000009C length: 2 - word graphicRotationUnk; // 0x0000009E length: 2 + word wGraphicRotation; // 0x0000009E length: 2 short unitID; // 0x000000A0 length: 2 short unitID_OR_seaGullID; // 0x000000A2 length: 2 undefined1 padding_0xa4[2]; // 0x000000A4 length: 2 short gmLookupValue; // 0x000000A6 length: 2 - short field72_0xa8; // 0x000000A8 length: 2 + short nProjectileActiveFlag; // 0x000000A8 length: 2 EntityTypeShort entityType2; // 0x000000AA length: 2 int rng_1; // 0x000000AC length: 4 short unkMinusOne; // 0x000000B0 length: 2 short hasDoneEffectUnk; // 0x000000B2 length: 2 short someTracker; // 0x000000B4 length: 2 short fireParameter_0xb6; // 0x000000B6 length: 2 - short field79_0xb8; // 0x000000B8 length: 2 - short field80_0xba; // 0x000000BA length: 2 + short nFireEntityTimer; // 0x000000B8 length: 2 + short nProjectileLineOfSightResult; // 0x000000BA length: 2 short rng_2; // 0x000000BC length: 2 - short field82_0xbe; // 0x000000BE length: 2 - short field83_0xc0; // 0x000000C0 length: 2 + short gmPictureIndex_0xbe; // 0x000000BE length: 2 + short nPopupYPosition; // 0x000000C0 length: 2 byte unused_0xc2[2]; // 0x000000C2 length: 2 int displayValue; // 0x000000C4 length: 4 - short field86_0xc8; // 0x000000C8 length: 2 - short field87_0xca; // 0x000000CA length: 2 + short popupAnimParam_0xc8; // 0x000000C8 length: 2 + short popupRenderOffsetX_0xca; // 0x000000CA length: 2 short field88_0xcc; // 0x000000CC length: 2 - short field89_0xce; // 0x000000CE length: 2 - short field90_0xd0; // 0x000000D0 length: 2 + short popupRenderOffsetY_0xce; // 0x000000CE length: 2 + short nProjectileSpawnFlag; // 0x000000D0 length: 2 short unitID_healer; // 0x000000D2 length: 2 int unitUID; // 0x000000D4 length: 4 short fireIntensity; // 0x000000D8 length: 2 diff --git a/src/OpenSHC/Map/Entities/EntityState.func.hpp b/src/OpenSHC/Map/Entities/EntityState.func.hpp index ddfed0a4..627f9222 100644 --- a/src/OpenSHC/Map/Entities/EntityState.func.hpp +++ b/src/OpenSHC/Map/Entities/EntityState.func.hpp @@ -2,28 +2,28 @@ path: 'OpenSHC/Map/Entities/EntityState.func.hpp' */ -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" #include "OpenSHC/Map/Entities/EntityState.hpp" -#include "OpenSHC/Map/Entities/EntityType.hpp" +#include "OpenSHC/Map/Entities/EntityTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace Entities { namespace EntityState_Func { - using OpenSHC::IO::PackagedFileMagicNum; - using OpenSHC::Map::Entities::EntityType; + using OpenSHC::IO::PackagedFileMagicNumInt; + using OpenSHC::Map::Entities::EntityTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(), false, Address::SHC_3BB0A8C1_0x004010E0, &EntityState::clearEntityArrayAndSec1077) clearEntityArrayAndSec1077; - MACRO_FUNCTION_RESOLVER(BOOLEnum (EntityState::*)(int, EntityType), false, Address::SHC_3BB0A8C1_0x00401150, - &EntityState::playerHasEntityOfType) + MACRO_FUNCTION_RESOLVER(BOOLEnum (EntityState::*)(int, EntityTypeInt), false, + Address::SHC_3BB0A8C1_0x00401150, &EntityState::playerHasEntityOfType) playerHasEntityOfType; - MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int, EntityType), false, Address::SHC_3BB0A8C1_0x004011D0, + MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int, EntityTypeInt), false, Address::SHC_3BB0A8C1_0x004011D0, &EntityState::setProjectileEntityValues2) setProjectileEntityValues2; @@ -36,16 +36,16 @@ namespace Map { drawEntityEffect; MACRO_FUNCTION_RESOLVER( - void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00401400, &EntityState::markEntityDestroyed) - markEntityDestroyed; + void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00401400, &EntityState::beginEntityDeath) + beginEntityDeath; - MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00401430, - &EntityState::tickEntityDecayCounter) - tickEntityDecayCounter; + MACRO_FUNCTION_RESOLVER( + void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00401430, &EntityState::tickEntityLifetime) + tickEntityLifetime; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(uint), false, Address::SHC_3BB0A8C1_0x00401460, - &EntityState::doSomethingWithOtherEntitiesOnTile) - doSomethingWithOtherEntitiesOnTile; + &EntityState::unlinkEntityFromTileChain) + unlinkEntityFromTileChain; MACRO_FUNCTION_RESOLVER( int (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00401540, &EntityState::getFireEntityIDAtTile) @@ -59,25 +59,25 @@ namespace Map { &EntityState::processFireDamageToUnitsAtTile) processFireDamageToUnitsAtTile; - MACRO_FUNCTION_RESOLVER( - void (EntityState::*)(), false, Address::SHC_3BB0A8C1_0x00401620, &EntityState::recountActiveFires) - recountActiveFires; + MACRO_FUNCTION_RESOLVER(void (EntityState::*)(), false, Address::SHC_3BB0A8C1_0x00401620, + &EntityState::rebuildFireTileOccupancy) + rebuildFireTileOccupancy; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(), false, Address::SHC_3BB0A8C1_0x00401690, - &EntityState::flagUnitsWithActiveEntity) - flagUnitsWithActiveEntity; + &EntityState::markUnitsWithActiveEntity) + markUnitsWithActiveEntity; MACRO_FUNCTION_RESOLVER(int (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x004016E0, - &EntityState::somethingWithSeparateAreas1) - somethingWithSeparateAreas1; + &EntityState::findNearestReachablePoisonCow) + findNearestReachablePoisonCow; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00401880, - &EntityState::refreshPoisonCloudNearUnit) - refreshPoisonCloudNearUnit; + &EntityState::refreshPoisonCloudsNearUnit) + refreshPoisonCloudsNearUnit; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00401910, - &EntityState::assignPoisonCloudTargetEntity) - assignPoisonCloudTargetEntity; + &EntityState::assignPoisonCloudToEntity) + assignPoisonCloudToEntity; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x004019D0, &EntityState::destroyEntitiesOnTile) @@ -88,8 +88,8 @@ namespace Map { isBrazierNearby; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int, undefined4), false, Address::SHC_3BB0A8C1_0x00401AE0, - &EntityState::reassignEntitiesOwner) - reassignEntitiesOwner; + &EntityState::reassignEntityOwnership) + reassignEntityOwnership; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00401B20, &EntityState::swapEntityOwnership) @@ -100,12 +100,12 @@ namespace Map { destroyEntitiesPart2; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00402AE0, - &EntityState::updateEntityMicroMovement) - updateEntityMicroMovement; + &EntityState::stepEntityMicroMovement) + stepEntityMicroMovement; - MACRO_FUNCTION_RESOLVER(undefined4 (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00402BD0, - &EntityState::angleToRotationFrameIndex) - angleToRotationFrameIndex; + MACRO_FUNCTION_RESOLVER(undefined (EntityState::*)(), false, Address::SHC_3BB0A8C1_0x00402BD0, + &EntityState::heightDeltaToSpriteIndex) + heightDeltaToSpriteIndex; MACRO_FUNCTION_RESOLVER(int (EntityState::*)(int, double, int, int), false, Address::SHC_3BB0A8C1_0x00402C50, &EntityState::math_atan_1) @@ -116,20 +116,20 @@ namespace Map { computeVelocity; MACRO_FUNCTION_RESOLVER(uint (EntityState::*)(int, int, int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00402E20, &EntityState::computeLineOfSightDistance) - computeLineOfSightDistance; + Address::SHC_3BB0A8C1_0x00402E20, &EntityState::traceLineOfSight) + traceLineOfSight; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x004036F0, - &EntityState::calculateEntityDrawOffset) - calculateEntityDrawOffset; + &EntityState::updateEntitySubtilePixelOffset) + updateEntitySubtilePixelOffset; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00403790, &EntityState::initializeSeagullMovementVector) - initializeSeagullMovementVector; + Address::SHC_3BB0A8C1_0x00403790, &EntityState::setupSeagullMovement) + setupSeagullMovement; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00403900, - &EntityState::removeEntityFromTileLinkedList) - removeEntityFromTileLinkedList; + &EntityState::removeEntityFromTileList) + removeEntityFromTileList; MACRO_FUNCTION_RESOLVER(int (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x004039B0, &EntityState::activateProjectileEntity) @@ -144,25 +144,25 @@ namespace Map { initializeProjectileVelocities; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00403FF0, - &EntityState::handleProjectileWallBounce) - handleProjectileWallBounce; + &EntityState::bounceProjectileOffWall) + bounceProjectileOffWall; MACRO_FUNCTION_RESOLVER(int (EntityState::*)(int, int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00404A10, &EntityState::arrowShootingRelated) - arrowShootingRelated; + Address::SHC_3BB0A8C1_0x00404A10, &EntityState::checkProjectileLineOfSight) + checkProjectileLineOfSight; MACRO_FUNCTION_RESOLVER( - uint (EntityState::*)(int, undefined4, uint, int, int, int, int, int, int, EntityType, int), false, + uint (EntityState::*)(int, undefined4, uint, int, int, int, int, int, int, EntityTypeInt, int), false, Address::SHC_3BB0A8C1_0x00404AE0, &EntityState::spawnProjectileEntity) spawnProjectileEntity; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int, int, int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00405CF0, &EntityState::setProjectileTargetPosition) - setProjectileTargetPosition; + Address::SHC_3BB0A8C1_0x00405CF0, &EntityState::launchProjectileAt) + launchProjectileAt; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(int), false, Address::SHC_3BB0A8C1_0x00405DA0, - &EntityState::spawnProjectileImpactDebris) - spawnProjectileImpactDebris; + &EntityState::spawnProjectileImpactFragments) + spawnProjectileImpactFragments; MACRO_FUNCTION_RESOLVER( int (EntityState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00406650, &EntityState::createSeagull) @@ -177,8 +177,8 @@ namespace Map { processEntityHitBuildingOrUnit; MACRO_FUNCTION_RESOLVER(void (EntityState::*)(uint, undefined4, int, int), false, - Address::SHC_3BB0A8C1_0x004081E0, &EntityState::updateProjectileHeightAndCollision) - updateProjectileHeightAndCollision; + Address::SHC_3BB0A8C1_0x004081E0, &EntityState::updateProjectileHeight) + updateProjectileHeight; MACRO_FUNCTION_RESOLVER(uint (EntityState::*)(undefined4, undefined4, undefined4, undefined4, int), false, Address::SHC_3BB0A8C1_0x004082A0, &EntityState::spawnEntityEffect2) @@ -192,9 +192,9 @@ namespace Map { &EntityState::moveProjectileEntity) moveProjectileEntity; - MACRO_FUNCTION_RESOLVER(void (EntityState::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, - Address::SHC_3BB0A8C1_0x00408770, &EntityState::handleMapVersionUpgrade) - handleMapVersionUpgrade; + MACRO_FUNCTION_RESOLVER(void (EntityState::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, + Address::SHC_3BB0A8C1_0x00408770, &EntityState::migrateEntityDataForMapVersion) + migrateEntityDataForMapVersion; MACRO_FUNCTION_RESOLVER( void (EntityState::*)(), false, Address::SHC_3BB0A8C1_0x004087C0, &EntityState::updateEntities) diff --git a/src/OpenSHC/Map/Entities/EntityState.hpp b/src/OpenSHC/Map/Entities/EntityState.hpp index 663451c3..04651286 100644 --- a/src/OpenSHC/Map/Entities/EntityState.hpp +++ b/src/OpenSHC/Map/Entities/EntityState.hpp @@ -8,21 +8,19 @@ #pragma once -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" #include "OpenSHC/Map/Entities/Entity.hpp" -#include "OpenSHC/Map/Entities/EntityType.hpp" +#include "OpenSHC/Map/Entities/EntityTypeInt.hpp" #include "OpenSHC/Map/Entities/ExtraEntityInfo.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" -#include "WinDef.h" - namespace OpenSHC { namespace Map { namespace Entities { - using OpenSHC::IO::PackagedFileMagicNum; + using OpenSHC::IO::PackagedFileMagicNumInt; using OpenSHC::Map::Entities::Entity; - using OpenSHC::Map::Entities::EntityType; + using OpenSHC::Map::Entities::EntityTypeInt; using OpenSHC::Map::Entities::ExtraEntityInfo; using OpenSHC::WindowsHelper::Enums::BOOLEnum; @@ -31,14 +29,14 @@ namespace Map { // SIZE: 0x000AC5E8 class EntityState { public: - undefined4 totalEntityCount; // 0x00000000 length: 4 + undefined4 DAT_TotalEntityCount; // 0x00000000 length: 4 undefined4 maxEntityCount; // 0x00000004 length: 4 undefined4 every10Ticks; // 0x00000008 length: 4 - int lineOfSightClearanceSteps; // 0x0000000C length: 4 - undefined4 fireCount; // 0x00000010 length: 4 + undefined4 dwLosTraceResultValue; // 0x0000000C length: 4 + undefined4 DAT_FireCount; // 0x00000010 length: 4 Entity entityArray[3000]; // 0x00000014 length: 696000 ExtraEntityInfo seagullArray[100]; // 0x000A9ED4 length: 10000 - DWORD classConstructionTime; // 0x000AC5E4 length: 4 + undefined4 dwEntityStateInitTimeMs; // 0x000AC5E4 length: 4 private: EntityState(EntityState const&); @@ -53,19 +51,19 @@ namespace Map { void clearEntityArrayAndSec1077(); - BOOLEnum playerHasEntityOfType(int playerID, EntityType entityType); + BOOLEnum playerHasEntityOfType(int playerID, EntityTypeInt entityType); - void setProjectileEntityValues2(int entityID, EntityType entityType); + void setProjectileEntityValues2(int entityID, EntityTypeInt entityType); void setEntityParameters(int entityID, undefined4 entityType, int gmLookupValue); void drawEntityEffect(int entityID, undefined4 entityType, int graphicType1, int graphicType2); - void markEntityDestroyed(int param_1); + void beginEntityDeath(int param_1); - void tickEntityDecayCounter(int param_1); + void tickEntityLifetime(int param_1); - void doSomethingWithOtherEntitiesOnTile(uint entityID); + void unlinkEntityFromTileChain(uint entityID); int getFireEntityIDAtTile(int tile); @@ -73,42 +71,41 @@ namespace Map { void processFireDamageToUnitsAtTile(int tile, int playerID, int fireLowIntensity); - void recountActiveFires(); + void rebuildFireTileOccupancy(); - void flagUnitsWithActiveEntity(); + void markUnitsWithActiveEntity(); - int somethingWithSeparateAreas1(int unitID); + int findNearestReachablePoisonCow(int unitID); - void refreshPoisonCloudNearUnit(int param_1); + void refreshPoisonCloudsNearUnit(int param_1); - void assignPoisonCloudTargetEntity(int param_1); + void assignPoisonCloudToEntity(int param_1); void destroyEntitiesOnTile(int tile); undefined4 isBrazierNearby(int unitX, int unitY, int unitZ); - void reassignEntitiesOwner(int param_1, undefined4 param_2); + void reassignEntityOwnership(int param_1, undefined4 param_2); void swapEntityOwnership(int param_1, int param_2); void destroyEntitiesPart2(int param_1); - void updateEntityMicroMovement(int param_1); + void stepEntityMicroMovement(int param_1); - undefined4 angleToRotationFrameIndex(int param_1); + undefined heightDeltaToSpriteIndex(); int math_atan_1(int entityType, double param_3, int param_4, int heightDifference); int computeVelocity(undefined4 param_2, double param_3, int param_4, int param_5); - uint computeLineOfSightDistance( - int x, int y, int height, int targetX, int targetY, int targetHeight, int param_7); + uint traceLineOfSight(int x, int y, int height, int targetX, int targetY, int targetHeight, int param_7); - void calculateEntityDrawOffset(int entityID); + void updateEntitySubtilePixelOffset(int entityID); - void initializeSeagullMovementVector(int ID_1077, int param_2, int param_3, int param_4, int param_5); + void setupSeagullMovement(int ID_1077, int param_2, int param_3, int param_4, int param_5); - void removeEntityFromTileLinkedList(int param_1); + void removeEntityFromTileList(int param_1); int activateProjectileEntity(int entityID); @@ -117,18 +114,17 @@ namespace Map { void initializeProjectileVelocities( int entityID, int x, int y, int height, int targetX, int targetY, int targetZ); - void handleProjectileWallBounce(int param_1); + void bounceProjectileOffWall(int param_1); - int arrowShootingRelated( + int checkProjectileLineOfSight( int microX, int microY, int height, int destMicroX, int destMicroY, int destHeight); uint spawnProjectileEntity(int unitID, undefined4 playerID1, uint ownerColorUnk, int microX, int microY, - int totalHeight, int targetX, int targetY, int targetZUnk, EntityType entityType, int param_11); + int totalHeight, int targetX, int targetY, int targetZUnk, EntityTypeInt entityType, int param_11); - void setProjectileTargetPosition( - int entityID, int x, int y, int height, int targetX, int targetY, int targetZ); + void launchProjectileAt(int entityID, int x, int y, int height, int targetX, int targetY, int targetZ); - void spawnProjectileImpactDebris(int param_1); + void spawnProjectileImpactFragments(int param_1); int createSeagull(int x, int y); @@ -136,7 +132,7 @@ namespace Map { undefined4 processEntityHitBuildingOrUnit(int entityID); - void updateProjectileHeightAndCollision(uint entityID, undefined4 param_2, int param_3, int param_4); + void updateProjectileHeight(uint entityID, undefined4 param_2, int param_3, int param_4); uint spawnEntityEffect2( undefined4 microX, undefined4 microY, undefined4 height, undefined4 entityType, int gmLookupValue); @@ -146,8 +142,8 @@ namespace Map { BOOLEnum moveProjectileEntity(int entityID); - void handleMapVersionUpgrade( - PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + void migrateEntityDataForMapVersion( + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); void updateEntities(); }; diff --git a/src/OpenSHC/Map/Entities/ExtraEntityInfo.hpp b/src/OpenSHC/Map/Entities/ExtraEntityInfo.hpp index 72b41ef4..c224c399 100644 --- a/src/OpenSHC/Map/Entities/ExtraEntityInfo.hpp +++ b/src/OpenSHC/Map/Entities/ExtraEntityInfo.hpp @@ -19,7 +19,7 @@ namespace Map { short entityID; // 0x00000000 length: 2 short randomNumber; // 0x00000002 length: 2 int entityUID; // 0x00000004 length: 4 - short field3_0x8; // 0x00000008 length: 2 + short seagullActiveState; // 0x00000008 length: 2 short field4_0xa; // 0x0000000A length: 2 short x; // 0x0000000C length: 2 short y; // 0x0000000E length: 2 @@ -28,7 +28,7 @@ namespace Map { short angle; // 0x00000014 length: 2 short unknownCounter_0x16; // 0x00000016 length: 2 short someAngle; // 0x00000018 length: 2 - short field12_0x1a; // 0x0000001A length: 2 + short seagullFlapCounter; // 0x0000001A length: 2 short angle_2; // 0x0000001C length: 2 short numberBetween60And100; // 0x0000001E length: 2 short field15_0x20; // 0x00000020 length: 2 @@ -41,9 +41,9 @@ namespace Map { short field22_0x2e; // 0x0000002E length: 2 short field23_0x30; // 0x00000030 length: 2 short field24_0x32; // 0x00000032 length: 2 - short field25_0x34; // 0x00000034 length: 2 + short seagullMoveCountdown; // 0x00000034 length: 2 short someCountDown; // 0x00000036 length: 2 - short field27_0x38; // 0x00000038 length: 2 + short seagullMoveStepsLeft; // 0x00000038 length: 2 short field28_0x3a; // 0x0000003A length: 2 short field29_0x3c; // 0x0000003C length: 2 short field30_0x3e; // 0x0000003E length: 2 diff --git a/src/OpenSHC/Map/LandscapeState.func.hpp b/src/OpenSHC/Map/LandscapeState.func.hpp index ca2b66a7..add56dd3 100644 --- a/src/OpenSHC/Map/LandscapeState.func.hpp +++ b/src/OpenSHC/Map/LandscapeState.func.hpp @@ -2,21 +2,21 @@ path: 'OpenSHC/Map/LandscapeState.func.hpp' */ -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" #include "OpenSHC/Map/LandscapeState.hpp" -#include "OpenSHC/Map/Trees/TreeType.hpp" +#include "OpenSHC/Map/Trees/TreeTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace LandscapeState_Func { - using OpenSHC::IO::PackagedFileMagicNum; - using OpenSHC::Map::Trees::TreeType; + using OpenSHC::IO::PackagedFileMagicNumInt; + using OpenSHC::Map::Trees::TreeTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(undefined4 (LandscapeState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x004F1A60, - &LandscapeState::mapUITreeTypeToLogicalTreeType) - mapUITreeTypeToLogicalTreeType; + &LandscapeState::mapTreeBrushIDToLogicalType) + mapTreeBrushIDToLogicalType; MACRO_FUNCTION_RESOLVER(undefined4 (LandscapeState::*)(undefined4, int), false, Address::SHC_3BB0A8C1_0x004F1BE0, &LandscapeState::getValueFrom0UpTo3ForTreeTypeAndTreeSeason) @@ -27,13 +27,13 @@ namespace Map { clearRocksAndTrees; MACRO_FUNCTION_RESOLVER( - int (LandscapeState::*)(undefined4, undefined4, TreeType, undefined4, int, undefined4, int), false, + int (LandscapeState::*)(undefined4, undefined4, TreeTypeInt, undefined4, int, undefined4, int), false, Address::SHC_3BB0A8C1_0x004F1CE0, &LandscapeState::createTree) createTree; MACRO_FUNCTION_RESOLVER(void (LandscapeState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F2020, - &LandscapeState::setTreeStageRelatedValues) - setTreeStageRelatedValues; + &LandscapeState::setTreeGrowthStageValues) + setTreeGrowthStageValues; MACRO_FUNCTION_RESOLVER( void (LandscapeState::*)(int), false, Address::SHC_3BB0A8C1_0x004F2070, &LandscapeState::removeTree) @@ -56,12 +56,12 @@ namespace Map { lightUpTree; MACRO_FUNCTION_RESOLVER(int (LandscapeState::*)(int), false, Address::SHC_3BB0A8C1_0x004F2A10, - &LandscapeState::getRandomRockImageOffset) - getRandomRockImageOffset; + &LandscapeState::getRandomRockGfxOffset) + getRandomRockGfxOffset; MACRO_FUNCTION_RESOLVER(undefined4 (LandscapeState::*)(int), false, Address::SHC_3BB0A8C1_0x004F2C20, - &LandscapeState::getTreeGrowthTargetStage) - getTreeGrowthTargetStage; + &LandscapeState::getTreeVisualStage) + getTreeVisualStage; MACRO_FUNCTION_RESOLVER( void (LandscapeState::*)(), false, Address::SHC_3BB0A8C1_0x004F2CC0, &LandscapeState::setTreeSpreadInterval) @@ -76,28 +76,28 @@ namespace Map { setupBabyTreeLocation; MACRO_FUNCTION_RESOLVER(uint (LandscapeState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F2FB0, - &LandscapeState::isTreeAliveAndMatchingUID) - isTreeAliveAndMatchingUID; + &LandscapeState::isTreeChoppable) + isTreeChoppable; MACRO_FUNCTION_RESOLVER(BOOLEnum (LandscapeState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F2FE0, &LandscapeState::isTreeMatchingUIDAndOfCertainState) isTreeMatchingUIDAndOfCertainState; MACRO_FUNCTION_RESOLVER(undefined4 (LandscapeState::*)(int, undefined4, int), false, - Address::SHC_3BB0A8C1_0x004F3010, &LandscapeState::damageTreeAndTriggerDeathIfDepleted) - damageTreeAndTriggerDeathIfDepleted; + Address::SHC_3BB0A8C1_0x004F3010, &LandscapeState::chopTreeProgress) + chopTreeProgress; MACRO_FUNCTION_RESOLVER(void (LandscapeState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F3080, - &LandscapeState::advanceTreeDecayState) - advanceTreeDecayState; + &LandscapeState::advanceTreeStumpRemoval) + advanceTreeStumpRemoval; MACRO_FUNCTION_RESOLVER(void (LandscapeState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F30D0, - &LandscapeState::markNearbyTreesAsCrowTargets) - markNearbyTreesAsCrowTargets; + &LandscapeState::markTreesNearTile) + markTreesNearTile; MACRO_FUNCTION_RESOLVER(void (LandscapeState::*)(int), false, Address::SHC_3BB0A8C1_0x004F3150, - &LandscapeState::spawnCrowFromNearbyTree) - spawnCrowFromNearbyTree; + &LandscapeState::spawnCrowsFromNearbyTrees) + spawnCrowsFromNearbyTrees; MACRO_FUNCTION_RESOLVER(void (LandscapeState::*)(int, undefined4, undefined4), false, Address::SHC_3BB0A8C1_0x004F3560, &LandscapeState::placeAppleTree) @@ -123,9 +123,9 @@ namespace Map { &LandscapeState::findTree) findTree; - MACRO_FUNCTION_RESOLVER(void (LandscapeState::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, - Address::SHC_3BB0A8C1_0x004F3D30, &LandscapeState::upgradeTreesAndRocksForMapVersion) - upgradeTreesAndRocksForMapVersion; + MACRO_FUNCTION_RESOLVER(void (LandscapeState::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, + Address::SHC_3BB0A8C1_0x004F3D30, &LandscapeState::migrateLandscapeForMapVersion) + migrateLandscapeForMapVersion; MACRO_FUNCTION_RESOLVER( void (LandscapeState::*)(), false, Address::SHC_3BB0A8C1_0x004F3D60, &LandscapeState::updateTrees) diff --git a/src/OpenSHC/Map/LandscapeState.hpp b/src/OpenSHC/Map/LandscapeState.hpp index d0524f23..c35eeca7 100644 --- a/src/OpenSHC/Map/LandscapeState.hpp +++ b/src/OpenSHC/Map/LandscapeState.hpp @@ -8,10 +8,10 @@ #pragma once -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" #include "OpenSHC/Map/Rocks/Rock.hpp" #include "OpenSHC/Map/Trees/Tree.hpp" -#include "OpenSHC/Map/Trees/TreeType.hpp" +#include "OpenSHC/Map/Trees/TreeTypeInt.hpp" #include "OpenSHC/Map/WindState.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -20,11 +20,11 @@ namespace OpenSHC { namespace Map { - using OpenSHC::IO::PackagedFileMagicNum; + using OpenSHC::IO::PackagedFileMagicNumInt; using OpenSHC::Map::WindState; using OpenSHC::Map::Rocks::Rock; using OpenSHC::Map::Trees::Tree; - using OpenSHC::Map::Trees::TreeType; + using OpenSHC::Map::Trees::TreeTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -33,7 +33,7 @@ namespace Map { class LandscapeState { public: undefined4 field0_0x0; // 0x00000000 length: 4 - undefined4 field1_0x4; // 0x00000004 length: 4 + undefined4 dwTreeStageUpdateFlag; // 0x00000004 length: 4 undefined4 DAT_TotalOrganisms; // 0x00000008 length: 4 int field3_0xc; // 0x0000000C length: 4 int maxTreeCount; // 0x00000010 length: 4 @@ -54,18 +54,18 @@ namespace Map { ~LandscapeState() {}; // Constructor - LandscapeState* constructLandscapeState(); + LandscapeState* Constructor_LandscapeState(); - undefined4 mapUITreeTypeToLogicalTreeType(undefined4 param_1); + undefined4 mapTreeBrushIDToLogicalType(undefined4 param_1); undefined4 getValueFrom0UpTo3ForTreeTypeAndTreeSeason(undefined4 treeType, int treeStage); void clearRocksAndTrees(); - int createTree(undefined4 x, undefined4 y, TreeType treeType, undefined4 size, int stageRelatedValue, + int createTree(undefined4 x, undefined4 y, TreeTypeInt treeType, undefined4 size, int stageRelatedValue, undefined4 param_6, int stage); - void setTreeStageRelatedValues(int treeID, int stage); + void setTreeGrowthStageValues(int treeID, int stage); void removeTree(int treeID); @@ -77,9 +77,9 @@ namespace Map { BOOLEnum lightUpTree(int tile, int playerID); - int getRandomRockImageOffset(int param_1); + int getRandomRockGfxOffset(int param_1); - undefined4 getTreeGrowthTargetStage(int param_1); + undefined4 getTreeVisualStage(int param_1); void setTreeSpreadInterval(); @@ -87,17 +87,17 @@ namespace Map { undefined4 setupBabyTreeLocation(uint treeID, int treeType, uint x, uint y); - uint isTreeAliveAndMatchingUID(int treeID, int param_2); + uint isTreeChoppable(int treeID, int param_2); BOOLEnum isTreeMatchingUIDAndOfCertainState(int treeID, int treeUID); - undefined4 damageTreeAndTriggerDeathIfDepleted(int treeID, undefined4 param_2, int param_3); + undefined4 chopTreeProgress(int treeID, undefined4 param_2, int param_3); - void advanceTreeDecayState(int treeID, int param_2); + void advanceTreeStumpRemoval(int treeID, int param_2); - void markNearbyTreesAsCrowTargets(int x, int y); + void markTreesNearTile(int x, int y); - void spawnCrowFromNearbyTree(int unitID); + void spawnCrowsFromNearbyTrees(int unitID); void placeAppleTree(int buildingID, undefined4 treeX, undefined4 treeY); @@ -111,8 +111,8 @@ namespace Map { int findTree(int playerID, uint unitXPosition, uint unitYPosition); - void upgradeTreesAndRocksForMapVersion( - PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + void migrateLandscapeForMapVersion( + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); void updateTrees(); }; diff --git a/src/OpenSHC/Map/MapPropertiesState.func.hpp b/src/OpenSHC/Map/MapPropertiesState.func.hpp index d137df6f..ee41f784 100644 --- a/src/OpenSHC/Map/MapPropertiesState.func.hpp +++ b/src/OpenSHC/Map/MapPropertiesState.func.hpp @@ -2,19 +2,19 @@ path: 'OpenSHC/Map/MapPropertiesState.func.hpp' */ -#include "OpenSHC/DE/SHCDE/eMappers.hpp" +#include "OpenSHC/DE/SHCDE/eMappersInt.hpp" #include "OpenSHC/Map/MapPropertiesState.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace MapPropertiesState_Func { - using OpenSHC::DE::SHCDE::eMappers; + using OpenSHC::DE::SHCDE::eMappersInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(BOOLEnum (MapPropertiesState::*)(int), false, Address::SHC_3BB0A8C1_0x004B77E0, - &MapPropertiesState::isValueInRangeOneToTwenty) - isValueInRangeOneToTwenty; + &MapPropertiesState::isParam1LessThan21) + isParam1LessThan21; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004B7800, &MapPropertiesState::importTradingCosts) @@ -29,12 +29,12 @@ namespace Map { getEventIDForTimeUntilDefeatEventType; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004B7930, - &MapPropertiesState::activateScenarioTypeEvents) - activateScenarioTypeEvents; + &MapPropertiesState::activateMatchingScenarioEvents) + activateMatchingScenarioEvents; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004B7980, - &MapPropertiesState::determineScenarioMissionTypeAndResetEvents) - determineScenarioMissionTypeAndResetEvents; + &MapPropertiesState::checkScenarioSiegeEvents) + checkScenarioSiegeEvents; MACRO_FUNCTION_RESOLVER( void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004B7FA0, &MapPropertiesState::sumUnitPoints) @@ -45,32 +45,32 @@ namespace Map { sumUnitCounts; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004BA7D0, - &MapPropertiesState::sortEventsByDate) - sortEventsByDate; + &MapPropertiesState::sortScenarioEvents) + sortScenarioEvents; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(int), false, Address::SHC_3BB0A8C1_0x004BA8B0, - &MapPropertiesState::removeEventAtIndex) - removeEventAtIndex; + &MapPropertiesState::removeScenarioEvent) + removeScenarioEvent; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004BAEC0, &MapPropertiesState::commitBuildingAvailability) commitBuildingAvailability; - MACRO_FUNCTION_RESOLVER(BOOLEnum (MapPropertiesState::*)(eMappers), false, Address::SHC_3BB0A8C1_0x004BB010, + MACRO_FUNCTION_RESOLVER(BOOLEnum (MapPropertiesState::*)(eMappersInt), false, Address::SHC_3BB0A8C1_0x004BB010, &MapPropertiesState::isMapperAvailable) isMapperAvailable; MACRO_FUNCTION_RESOLVER(int (MapPropertiesState::*)(int), false, Address::SHC_3BB0A8C1_0x004BB0B0, - &MapPropertiesState::isMercRecruitableForBuildingType) - isMercRecruitableForBuildingType; + &MapPropertiesState::isMercRecruitable) + isMercRecruitable; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004BB900, &MapPropertiesState::resetEuroUnitRestrictions) resetEuroUnitRestrictions; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004BB990, - &MapPropertiesState::pruneInvalidEventTriggerLinks) - pruneInvalidEventTriggerLinks; + &MapPropertiesState::cleanupType3ScenarioEvents) + cleanupType3ScenarioEvents; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x004BB9F0, &MapPropertiesState::openEventTriggerMenu) @@ -81,48 +81,44 @@ namespace Map { sumInvasionEventUnitCount; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004BC110, - &MapPropertiesState::adjustEventMonthAndYearForSection1047) - adjustEventMonthAndYearForSection1047; + &MapPropertiesState::tweakMonthAndYearBasedOnSection1047) + tweakMonthAndYearBasedOnSection1047; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(int, int, int, int, int, undefined4), false, - Address::SHC_3BB0A8C1_0x004BC1C0, &MapPropertiesState::spawnAttackWaveForPlayer) - spawnAttackWaveForPlayer; + Address::SHC_3BB0A8C1_0x004BC1C0, &MapPropertiesState::spawnScenarioInvasionWave) + spawnScenarioInvasionWave; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004BD980, - &MapPropertiesState::createScenarioEventForNextMonth) - createScenarioEventForNextMonth; + &MapPropertiesState::createScenarioEvent) + createScenarioEvent; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(int), false, Address::SHC_3BB0A8C1_0x004BDA80, - &MapPropertiesState::createChainedMissionOutcomeEvents) - createChainedMissionOutcomeEvents; + &MapPropertiesState::createLinkedScenarioEvents) + createLinkedScenarioEvents; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004BDE40, - &MapPropertiesState::computeMissionCompletionScore) - computeMissionCompletionScore; + &MapPropertiesState::computeSomeKindOfMissionCompletionScore) + computeSomeKindOfMissionCompletionScore; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004BE590, &MapPropertiesState::setStartingYearAndStartingResources) setStartingYearAndStartingResources; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004BEB20, - &MapPropertiesState::updateEventYearsAndCommitBuildingAvailability) - updateEventYearsAndCommitBuildingAvailability; + &MapPropertiesState::setupStartingYear) + setupStartingYear; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004C1320, - &MapPropertiesState::removeProcessedInvasionEvents) - removeProcessedInvasionEvents; + &MapPropertiesState::migrateScenarioEventData) + migrateScenarioEventData; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004C13F0, - &MapPropertiesState::spawnInvasionEventAttackWave) - spawnInvasionEventAttackWave; + &MapPropertiesState::setupScenarioInvasionData) + setupScenarioInvasionData; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004C2280, - &MapPropertiesState::updateMilitaryCampaignMissionState) - updateMilitaryCampaignMissionState; - - MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(char*), false, Address::SHC_3BB0A8C1_0x004C3110, - &MapPropertiesState::loadMapSiegeHeaderSections) - loadMapSiegeHeaderSections; + &MapPropertiesState::updateVictoryDefeatState) + updateVictoryDefeatState; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(), false, Address::SHC_3BB0A8C1_0x004C31A0, &MapPropertiesState::processSingleplayerEvents) @@ -133,12 +129,12 @@ namespace Map { loadMap; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(char*), false, Address::SHC_3BB0A8C1_0x004C6820, - &MapPropertiesState::loadMapSiegeHeaderForMissionIndex) - loadMapSiegeHeaderForMissionIndex; + &MapPropertiesState::loadMissionMapSiegeInfo) + loadMissionMapSiegeInfo; MACRO_FUNCTION_RESOLVER(void (MapPropertiesState::*)(int), false, Address::SHC_3BB0A8C1_0x004C6880, - &MapPropertiesState::loadMissionMapAndSetLord) - loadMissionMapAndSetLord; + &MapPropertiesState::loadMissionMapByNumber) + loadMissionMapByNumber; } // namespace MapPropertiesState_Func } // namespace Map diff --git a/src/OpenSHC/Map/MapPropertiesState.hpp b/src/OpenSHC/Map/MapPropertiesState.hpp index 983c0b08..9e8f8ffa 100644 --- a/src/OpenSHC/Map/MapPropertiesState.hpp +++ b/src/OpenSHC/Map/MapPropertiesState.hpp @@ -9,7 +9,7 @@ #pragma once #include "OpenSHC/AI/Siege/SiegeInformation.hpp" -#include "OpenSHC/DE/SHCDE/eMappers.hpp" +#include "OpenSHC/DE/SHCDE/eMappersInt.hpp" #include "OpenSHC/Game/Scenario/BarracksRecruitabilityShort.hpp" #include "OpenSHC/Game/ScenarioEvents/InGameEventExtra.hpp" #include "OpenSHC/Game/ScenarioEvents/InGameEventUnionVersion.hpp" @@ -24,7 +24,7 @@ namespace OpenSHC { namespace Map { using OpenSHC::AI::Siege::SiegeInformation; - using OpenSHC::DE::SHCDE::eMappers; + using OpenSHC::DE::SHCDE::eMappersInt; using OpenSHC::Game::TradeableResourcesSection; using OpenSHC::Game::Scenario::BarracksRecruitabilityShort; using OpenSHC::Game::ScenarioEvents::InGameEventExtra; @@ -48,7 +48,7 @@ namespace Map { SiegeGameModeRelatedSection SEC_Section1067; // 0x0000013C length: 28 int SEC_StartingPopularity; // 0x00000158 length: 4 short SEC_BuildingAvailability[100]; // 0x0000015C length: 200 - undefined4 field8_0x224; // 0x00000224 length: 4 + undefined4 dwBuildingAvailabilityCount; // 0x00000224 length: 4 short buildingAvailabilityRelatedFlags[380]; // 0x00000228 length: 760 short field10_0x520; // 0x00000520 length: 2 short field11_0x522; // 0x00000522 length: 2 @@ -60,7 +60,7 @@ namespace Map { short field17_0x52e; // 0x0000052E length: 2 short field18_0x530; // 0x00000530 length: 2 short field19_0x532; // 0x00000532 length: 2 - short field20_0x534; // 0x00000534 length: 2 + short nBuildingAvailabilityArray; // 0x00000534 length: 2 short field21_0x536; // 0x00000536 length: 2 short field22_0x538; // 0x00000538 length: 2 short field23_0x53a; // 0x0000053A length: 2 @@ -119,10 +119,10 @@ namespace Map { undefined4 SEC_Section1080; // 0x00013544 length: 4 undefined4 SEC_Section1081; // 0x00013548 length: 4 undefined1 padding_0x1354c[16]; // 0x0001354C length: 16 - undefined4 field96_0x1355c; // 0x0001355C length: 4 - int field97_0x13560; // 0x00013560 length: 4 + undefined4 dwEventListScrollOffset; // 0x0001355C length: 4 + int nSelectedEventIndex; // 0x00013560 length: 4 undefined4 DAT_CurrentEventID; // 0x00013564 length: 4 - undefined4 field99_0x13568; // 0x00013568 length: 4 + undefined4 scenarioEditState_0x13568; // 0x00013568 length: 4 undefined1 padding_0x1356c[4]; // 0x0001356C length: 4 undefined4 invasionTroopIndex; // 0x00013570 length: 4 int DAT_BuildingAvailabilityScrollbarOffset; // 0x00013574 length: 4 @@ -139,7 +139,7 @@ namespace Map { undefined4 DAT_MapEditorUnitPointsSum; // 0x00014544 length: 4 undefined4 DAT_InvasionEventItemUnitCountSum; // 0x00014548 length: 4 undefined1 padding_0x1454c[8]; // 0x0001454C length: 8 - undefined4 field140_0x14554; // 0x00014554 length: 4 + undefined4 dwMissionCompletionScore; // 0x00014554 length: 4 undefined4 field141_0x14558; // 0x00014558 length: 4 undefined4 field142_0x1455c; // 0x0001455C length: 4 undefined4 field143_0x14560; // 0x00014560 length: 4 @@ -150,7 +150,7 @@ namespace Map { undefined4 field148_0x14574; // 0x00014574 length: 4 undefined4 field149_0x14578; // 0x00014578 length: 4 undefined4 field150_0x1457c; // 0x0001457C length: 4 - undefined4 field151_0x14580; // 0x00014580 length: 4 + undefined4 dwMissionScoreArray; // 0x00014580 length: 4 undefined4 field152_0x14584; // 0x00014584 length: 4 undefined4 field153_0x14588; // 0x00014588 length: 4 undefined4 field154_0x1458c; // 0x0001458C length: 4 @@ -165,13 +165,13 @@ namespace Map { undefined4 field166_0x145b0; // 0x000145B0 length: 4 undefined1 padding_0x145b4[4]; // 0x000145B4 length: 4 undefined4 field171_0x145b8; // 0x000145B8 length: 4 - undefined4 field172_0x145bc; // 0x000145BC length: 4 + undefined4 dwMissionScorePercent; // 0x000145BC length: 4 undefined4 field173_0x145c0; // 0x000145C0 length: 4 undefined4 field174_0x145c4; // 0x000145C4 length: 4 - undefined4 field175_0x145c8; // 0x000145C8 length: 4 + undefined4 dwEnemyWeightedLosses; // 0x000145C8 length: 4 undefined1 padding_0x145cc[4]; // 0x000145CC length: 4 - undefined4 field180_0x145d0; // 0x000145D0 length: 4 - undefined4 field181_0x145d4; // 0x000145D4 length: 4 + undefined4 dwNewEventDialogX; // 0x000145D0 length: 4 + undefined4 dwNewEventDialogY; // 0x000145D4 length: 4 undefined1 padding_0x145d8[4]; // 0x000145D8 length: 4 undefined4 eventType; // 0x000145DC length: 4 IngameEventHeader invasionEvent; // 0x000145E0 length: 16 @@ -185,7 +185,7 @@ namespace Map { MapPropertiesState() {}; ~MapPropertiesState() {}; - BOOLEnum isValueInRangeOneToTwenty(int param_1); + BOOLEnum isParam1LessThan21(int param_1); void importTradingCosts(); @@ -193,62 +193,60 @@ namespace Map { int getEventIDForTimeUntilDefeatEventType(); - void activateScenarioTypeEvents(); + void activateMatchingScenarioEvents(); - void determineScenarioMissionTypeAndResetEvents(); + void checkScenarioSiegeEvents(); void sumUnitPoints(); void sumUnitCounts(); - void sortEventsByDate(); + void sortScenarioEvents(); - void removeEventAtIndex(int param_1); + void removeScenarioEvent(int param_1); void commitBuildingAvailability(); - BOOLEnum isMapperAvailable(eMappers param_1); + BOOLEnum isMapperAvailable(eMappersInt param_1); - int isMercRecruitableForBuildingType(int param_1); + int isMercRecruitable(int param_1); void resetEuroUnitRestrictions(); - void pruneInvalidEventTriggerLinks(); + void cleanupType3ScenarioEvents(); void openEventTriggerMenu(undefined4 eventType); void sumInvasionEventUnitCount(); - void adjustEventMonthAndYearForSection1047(); + void tweakMonthAndYearBasedOnSection1047(); - void spawnAttackWaveForPlayer( + void spawnScenarioInvasionWave( int param_1, int param_2, int param_3, int param_4, int param_5, undefined4 param_6); - void createScenarioEventForNextMonth(); + void createScenarioEvent(); - void createChainedMissionOutcomeEvents(int param_1); + void createLinkedScenarioEvents(int param_1); - void computeMissionCompletionScore(); + void computeSomeKindOfMissionCompletionScore(); void setStartingYearAndStartingResources(); - void updateEventYearsAndCommitBuildingAvailability(); + void setupStartingYear(); - void removeProcessedInvasionEvents(); + void migrateScenarioEventData(); - void spawnInvasionEventAttackWave(); + void setupScenarioInvasionData(); - void updateMilitaryCampaignMissionState(); - - void loadMapSiegeHeaderSections(char* param_1); + void updateVictoryDefeatState(); void processSingleplayerEvents(); void loadMap(char* mapName); - void loadMapSiegeHeaderForMissionIndex(char* param_1); + void loadMissionMapSiegeInfo(char* param_1); - void loadMissionMapAndSetLord(int missionNumber); + void loadMissionMapByNumber(int missionNumber); }; static_assert_cpp98_obj(sizeof(MapPropertiesState) == 83616, MapPropertiesState); diff --git a/src/OpenSHC/Map/Navigation.func.hpp b/src/OpenSHC/Map/Navigation.func.hpp index a9160c52..3393d9d6 100644 --- a/src/OpenSHC/Map/Navigation.func.hpp +++ b/src/OpenSHC/Map/Navigation.func.hpp @@ -14,8 +14,8 @@ namespace Map { namespace Navigation_Func { MACRO_FUNCTION_RESOLVER(int(__cdecl*)(int param_1, int param_2, int param_3, int param_4), false, - Address::SHC_3BB0A8C1_0x0049B8C0, &OpenSHC::Map::Navigation::calcApproxEuclideanDistance) - calcApproxEuclideanDistance; + Address::SHC_3BB0A8C1_0x0049B8C0, &OpenSHC::Map::Navigation::approximateEuclideanDistance) + approximateEuclideanDistance; } // namespace Navigation_Func } // namespace Map diff --git a/src/OpenSHC/Map/Navigation.hpp b/src/OpenSHC/Map/Navigation.hpp index 528a3207..8010877e 100644 --- a/src/OpenSHC/Map/Navigation.hpp +++ b/src/OpenSHC/Map/Navigation.hpp @@ -12,7 +12,7 @@ namespace OpenSHC { namespace Map { namespace Navigation { - int __cdecl calcApproxEuclideanDistance(int param_1, int param_2, int param_3, int param_4); + int __cdecl approximateEuclideanDistance(int param_1, int param_2, int param_3, int param_4); } // namespace Navigation } // namespace Map diff --git a/src/OpenSHC/Map/Navigation/DirectionAlgorithmState.func.hpp b/src/OpenSHC/Map/Navigation/DirectionAlgorithmState.func.hpp index 8d44112b..6fd52165 100644 --- a/src/OpenSHC/Map/Navigation/DirectionAlgorithmState.func.hpp +++ b/src/OpenSHC/Map/Navigation/DirectionAlgorithmState.func.hpp @@ -17,23 +17,23 @@ namespace Map { calculateOrientation; MACRO_FUNCTION_RESOLVER(void (DirectionAlgorithmState::*)(int, int), false, - Address::SHC_3BB0A8C1_0x0046C9A0, &DirectionAlgorithmState::calculateOrientationFromTiles) - calculateOrientationFromTiles; + Address::SHC_3BB0A8C1_0x0046C9A0, &DirectionAlgorithmState::calculateOrientationBetweenTiles) + calculateOrientationBetweenTiles; MACRO_FUNCTION_RESOLVER(void (DirectionAlgorithmState::*)(int, int, int, int), false, Address::SHC_3BB0A8C1_0x0046C9E0, &DirectionAlgorithmState::calculatePreferredRelativeOrientation) calculatePreferredRelativeOrientation; MACRO_FUNCTION_RESOLVER(void (DirectionAlgorithmState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x0046CAA0, &DirectionAlgorithmState::somethingWithProjectileDistance) - somethingWithProjectileDistance; + Address::SHC_3BB0A8C1_0x0046CAA0, &DirectionAlgorithmState::computeOrientationToTarget) + computeOrientationToTarget; MACRO_FUNCTION_RESOLVER(int (DirectionAlgorithmState::*)(int, int, int, int), false, Address::SHC_3BB0A8C1_0x0046CC80, &DirectionAlgorithmState::setAxisBasedDistanceResult) setAxisBasedDistanceResult; - MACRO_FUNCTION_RESOLVER(int (DirectionAlgorithmState::*)(int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x0046CCD0, &DirectionAlgorithmState::getMouseVectorLengthBasedOnDirection) + MACRO_FUNCTION_RESOLVER(undefined (DirectionAlgorithmState::*)(), false, Address::SHC_3BB0A8C1_0x0046CCD0, + &DirectionAlgorithmState::getMouseVectorLengthBasedOnDirection) getMouseVectorLengthBasedOnDirection; MACRO_FUNCTION_RESOLVER(uint (DirectionAlgorithmState::*)(int, int*), false, @@ -41,8 +41,8 @@ namespace Map { computeHash; MACRO_FUNCTION_RESOLVER(uint (DirectionAlgorithmState::*)(int, uint*, uint), false, - Address::SHC_3BB0A8C1_0x0046CDF0, &DirectionAlgorithmState::computeMaskedBitAccumulator) - computeMaskedBitAccumulator; + Address::SHC_3BB0A8C1_0x0046CDF0, &DirectionAlgorithmState::computeMaskedRotatingHash) + computeMaskedRotatingHash; } // namespace DirectionAlgorithmState_Func } // namespace Navigation diff --git a/src/OpenSHC/Map/Navigation/DirectionAlgorithmState.hpp b/src/OpenSHC/Map/Navigation/DirectionAlgorithmState.hpp index 9cd1acf2..aafa6ddf 100644 --- a/src/OpenSHC/Map/Navigation/DirectionAlgorithmState.hpp +++ b/src/OpenSHC/Map/Navigation/DirectionAlgorithmState.hpp @@ -36,21 +36,20 @@ namespace Map { void calculateOrientation( int currentXPosition, int currentYPosition, int destinationXPosition, int destinationYPosition); - void calculateOrientationFromTiles(int param_1, int param_2); + void calculateOrientationBetweenTiles(int param_1, int param_2); void calculatePreferredRelativeOrientation(int param_1, int param_2, int param_3, int param_4); - void somethingWithProjectileDistance(int x, int y, int targetX, int targetY); + void computeOrientationToTarget(int x, int y, int targetX, int targetY); int setAxisBasedDistanceResult( int destinationXPosition, int destinationYPosition, int fromXPosition, int fromYPosition); - int getMouseVectorLengthBasedOnDirection( - int param_1, int param_2, int param_3, int param_4, int orientation); + undefined getMouseVectorLengthBasedOnDirection(); uint computeHash(int byteCount, int* address); - uint computeMaskedBitAccumulator(int param_1, uint* param_2, uint param_3); + uint computeMaskedRotatingHash(int param_1, uint* param_2, uint param_3); }; static_assert_cpp98_obj(sizeof(DirectionAlgorithmState) == 20, DirectionAlgorithmState); diff --git a/src/OpenSHC/Map/Navigation/PathFindingState.func.hpp b/src/OpenSHC/Map/Navigation/PathFindingState.func.hpp index d3d7e110..d22dfc50 100644 --- a/src/OpenSHC/Map/Navigation/PathFindingState.func.hpp +++ b/src/OpenSHC/Map/Navigation/PathFindingState.func.hpp @@ -3,7 +3,7 @@ */ #include "OpenSHC/Map/Navigation/PathFindingState.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "WinDef.h" @@ -12,7 +12,7 @@ namespace Map { namespace Navigation { namespace PathFindingState_Func { - using OpenSHC::Map::Units::UnitType; + using OpenSHC::Map::Units::UnitTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(), false, Address::SHC_3BB0A8C1_0x00496E20, @@ -61,8 +61,8 @@ namespace Map { findLinkageBasedPathOrWalkRadius; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(int, int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00497B80, &PathFindingState::findSuitableSpawnLocationUnk) - findSuitableSpawnLocationUnk; + Address::SHC_3BB0A8C1_0x00497B80, &PathFindingState::bfsFindReachableFreeTile) + bfsFindReachableFreeTile; MACRO_FUNCTION_RESOLVER(BOOLEnum (PathFindingState::*)(uint, uint, uint, uint, int, BOOLEnum), false, Address::SHC_3BB0A8C1_0x00498020, &PathFindingState::findPathUsingClimbingWithHeightMargin16) @@ -85,24 +85,24 @@ namespace Map { updateSeparateAreaTileMap; MACRO_FUNCTION_RESOLVER(BOOLEnum (PathFindingState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004999C0, - &PathFindingState::updatePathLinkageLayerBasedOnBuildingsUnk) - updatePathLinkageLayerBasedOnBuildingsUnk; + &PathFindingState::computeTilePathLinkageBits) + computeTilePathLinkageBits; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00499DC0, &PathFindingState::updatePathLinkageLayerAtTileForSomeLogicalReason) updatePathLinkageLayerAtTileForSomeLogicalReason; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int), false, Address::SHC_3BB0A8C1_0x00499FA0, - &PathFindingState::updatePathLinkageTileMapRelatedToGates) - updatePathLinkageTileMapRelatedToGates; + &PathFindingState::setGatePassabilityLinkage) + setGatePassabilityLinkage; MACRO_FUNCTION_RESOLVER(undefined8 (PathFindingState::*)(int), false, Address::SHC_3BB0A8C1_0x0049A1C0, - &PathFindingState::updatePathLinkageTileMapRelatedToKeeps) - updatePathLinkageTileMapRelatedToKeeps; + &PathFindingState::setKeepEntranceLinkage) + setKeepEntranceLinkage; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int), false, Address::SHC_3BB0A8C1_0x0049A2E0, - &PathFindingState::updatePathLinkageTileMapRelatedToSiegeTower) - updatePathLinkageTileMapRelatedToSiegeTower; + &PathFindingState::setSiegeTowerLinkage) + setSiegeTowerLinkage; MACRO_FUNCTION_RESOLVER(BOOLEnum (PathFindingState::*)(uint, uint, uint, uint), false, Address::SHC_3BB0A8C1_0x0049A370, &PathFindingState::tracePathPlanToDestinationViaUnoccupiedTiles) @@ -129,8 +129,8 @@ namespace Map { getYSmallerThanYLimit; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, uint, uint), false, - Address::SHC_3BB0A8C1_0x0049B1D0, &PathFindingState::pathFindingDeerAndLionsUnk) - pathFindingDeerAndLionsUnk; + Address::SHC_3BB0A8C1_0x0049B1D0, &PathFindingState::findNearestTileInOriginArea) + findNearestTileInOriginArea; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, int, int, int, int), false, Address::SHC_3BB0A8C1_0x0049B5B0, &PathFindingState::algTunnelerFindTarget) @@ -206,8 +206,8 @@ namespace Map { updateUnitDeathHeatmapIn3SpacesAroundTile; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, uint, uint, undefined4), false, - Address::SHC_3BB0A8C1_0x0049E510, &PathFindingState::recomputeALGPathFindingTileMapUnk) - recomputeALGPathFindingTileMapUnk; + Address::SHC_3BB0A8C1_0x0049E510, &PathFindingState::floodMarkAIInfoLayer) + floodMarkAIInfoLayer; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x0049E9E0, &PathFindingState::updateAIZoneWithFloodFill0x20) @@ -218,8 +218,8 @@ namespace Map { findAIZoneWithFlags; MACRO_FUNCTION_RESOLVER(int (PathFindingState::*)(int, uint, uint, int), false, - Address::SHC_3BB0A8C1_0x0049F040, &PathFindingState::findArcherRelatedAttackInfoIndex) - findArcherRelatedAttackInfoIndex; + Address::SHC_3BB0A8C1_0x0049F040, &PathFindingState::bfsFindAvailableArcherDefensePoint) + bfsFindAvailableArcherDefensePoint; MACRO_FUNCTION_RESOLVER(int (PathFindingState::*)(int, uint, uint, int), false, Address::SHC_3BB0A8C1_0x0049F2D0, &PathFindingState::findSupportPointIndex) @@ -234,32 +234,32 @@ namespace Map { findAppropriateLocationForSiegeTent; MACRO_FUNCTION_RESOLVER(dword (PathFindingState::*)(int, uint, uint, int), false, - Address::SHC_3BB0A8C1_0x0049FC00, &PathFindingState::pathFindingRelated) - pathFindingRelated; + Address::SHC_3BB0A8C1_0x0049FC00, &PathFindingState::bfsFindBestCostTileWithinRange) + bfsFindBestCostTileWithinRange; MACRO_FUNCTION_RESOLVER(dword (PathFindingState::*)(uint, uint, int, uint, int), false, - Address::SHC_3BB0A8C1_0x0049FF20, &PathFindingState::pathfindingRelated49ff20) - pathfindingRelated49ff20; + Address::SHC_3BB0A8C1_0x0049FF20, &PathFindingState::bfsFindBestTileMatchingAttackMarker) + bfsFindBestTileMatchingAttackMarker; MACRO_FUNCTION_RESOLVER(dword (PathFindingState::*)(uint, uint, int, uint), false, - Address::SHC_3BB0A8C1_0x004A01D0, &PathFindingState::findBestAttackTileByPathCost) - findBestAttackTileByPathCost; + Address::SHC_3BB0A8C1_0x004A01D0, &PathFindingState::findBestAttackPathTile) + findBestAttackPathTile; MACRO_FUNCTION_RESOLVER(int (PathFindingState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x004A0460, &PathFindingState::findNearestEnemyBuildingWithinDistance) - findNearestEnemyBuildingWithinDistance; + Address::SHC_3BB0A8C1_0x004A0460, &PathFindingState::bfsFindNearestEnemyBuilding) + bfsFindNearestEnemyBuilding; MACRO_FUNCTION_RESOLVER(int (PathFindingState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x004A06B0, &PathFindingState::findNearestEnemyUnitWithinDistance) - findNearestEnemyUnitWithinDistance; + Address::SHC_3BB0A8C1_0x004A06B0, &PathFindingState::bfsFindNearestEnemyUnit) + bfsFindNearestEnemyUnit; MACRO_FUNCTION_RESOLVER(int (PathFindingState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x004A08E0, &PathFindingState::getGatehouseNearSomethingUnk) - getGatehouseNearSomethingUnk; + Address::SHC_3BB0A8C1_0x004A08E0, &PathFindingState::findNearestEnemyGatehouse) + findNearestEnemyGatehouse; MACRO_FUNCTION_RESOLVER(int (PathFindingState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x004A0B20, &PathFindingState::findDistanceOrThreatLevelToUnitUnk) - findDistanceOrThreatLevelToUnitUnk; + Address::SHC_3BB0A8C1_0x004A0B20, &PathFindingState::bfsFindHighestPriorityEnemyUnit) + bfsFindHighestPriorityEnemyUnit; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(), false, Address::SHC_3BB0A8C1_0x004A0E50, &PathFindingState::setWalkabilityBorderLogicLayerForSmallerMapSizes) @@ -270,12 +270,12 @@ namespace Map { aggressiveStanceTargetBuildingAtRange; MACRO_FUNCTION_RESOLVER(BOOLEnum (PathFindingState::*)(int, uint, uint, int), false, - Address::SHC_3BB0A8C1_0x004A15B0, &PathFindingState::isEnemyTooCloseUnk) - isEnemyTooCloseUnk; + Address::SHC_3BB0A8C1_0x004A15B0, &PathFindingState::isEnemyTooClose) + isEnemyTooClose; MACRO_FUNCTION_RESOLVER(int (PathFindingState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x004A16C0, - &PathFindingState::tracePathToFriendlyDefensesAndReturnTileUnk) - tracePathToFriendlyDefensesAndReturnTileUnk; + &PathFindingState::bfsFindReachableFriendlyDefenseTile) + bfsFindReachableFriendlyDefenseTile; MACRO_FUNCTION_RESOLVER(dword (PathFindingState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x004A19B0, &PathFindingState::findOwnedGatehouse) @@ -286,8 +286,8 @@ namespace Map { isTileInRangeOfKeepRange; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(int, uint, uint, int), false, - Address::SHC_3BB0A8C1_0x004A1D30, &PathFindingState::findSomeSuitableLocationUnk) - findSomeSuitableLocationUnk; + Address::SHC_3BB0A8C1_0x004A1D30, &PathFindingState::bfsEnemyStructureWithinRange) + bfsEnemyStructureWithinRange; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int), false, Address::SHC_3BB0A8C1_0x004A21B0, &PathFindingState::placeCommemoratingStatueAtGoodLocation) @@ -298,8 +298,8 @@ namespace Map { isSignPostWithinDistance; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(int, uint, uint, int, int), false, - Address::SHC_3BB0A8C1_0x004A2A90, &PathFindingState::spreadAlgorithmForFlagsAndBraziersUnk) - spreadAlgorithmForFlagsAndBraziersUnk; + Address::SHC_3BB0A8C1_0x004A2A90, &PathFindingState::findOrRemovePlayerFlagsAndBraziersBFS) + findOrRemovePlayerFlagsAndBraziersBFS; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004A2DD0, &PathFindingState::igniteFireAtTilesDistanceAway) @@ -310,12 +310,12 @@ namespace Map { findAccessibleWallAndNearbyFreeTile; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x004A36B0, &PathFindingState::healUnitsOfPlayerWithinRadius) - healUnitsOfPlayerWithinRadius; + Address::SHC_3BB0A8C1_0x004A36B0, &PathFindingState::bfsHealOwnerUnits) + bfsHealOwnerUnits; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(int, int, int, int, undefined4), false, - Address::SHC_3BB0A8C1_0x004A3B20, &PathFindingState::certainDamageToUnitsUnk) - certainDamageToUnitsUnk; + Address::SHC_3BB0A8C1_0x004A3B20, &PathFindingState::applyAreaDamageToEnemyUnits) + applyAreaDamageToEnemyUnits; MACRO_FUNCTION_RESOLVER(bool (PathFindingState::*)(undefined4, int, uint, uint, byte*, int*, int*), false, Address::SHC_3BB0A8C1_0x004A4140, &PathFindingState::pathFindingToAttackCastleIncludingMoat) @@ -342,28 +342,28 @@ namespace Map { reprocessLadddermanWallData; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004A4C70, - &PathFindingState::registerUnitOnClimbData) - registerUnitOnClimbData; + &PathFindingState::assignUnitToClimbPoint) + assignUnitToClimbPoint; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(), false, Address::SHC_3BB0A8C1_0x004A52D0, - &PathFindingState::clearActiveClimbDataOfType6And7) - clearActiveClimbDataOfType6And7; + &PathFindingState::clearLaddermanClimbData) + clearLaddermanClimbData; MACRO_FUNCTION_RESOLVER(int (PathFindingState::*)(int, dword, dword, int), false, Address::SHC_3BB0A8C1_0x004A5320, &PathFindingState::calculateCanPlayerUnitsNavigateToAreaFromArea) calculateCanPlayerUnitsNavigateToAreaFromArea; MACRO_FUNCTION_RESOLVER(dword (PathFindingState::*)(int, dword, dword), false, - Address::SHC_3BB0A8C1_0x004A58A0, &PathFindingState::findConnectingAreaBetweenTwoAreas) - findConnectingAreaBetweenTwoAreas; + Address::SHC_3BB0A8C1_0x004A58A0, &PathFindingState::traverseAreaConnectivityGraph) + traverseAreaConnectivityGraph; MACRO_FUNCTION_RESOLVER(BOOLEnum (PathFindingState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004A5B00, &PathFindingState::calculateCanReachUsingCachedAreaLogic) calculateCanReachUsingCachedAreaLogic; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(int, uint, uint, uint, uint), false, - Address::SHC_3BB0A8C1_0x004A5DA0, &PathFindingState::findBestAdjacentClimbTileToTarget) - findBestAdjacentClimbTileToTarget; + Address::SHC_3BB0A8C1_0x004A5DA0, &PathFindingState::findReachableTileNextToTarget) + findReachableTileNextToTarget; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(), false, Address::SHC_3BB0A8C1_0x004A5F60, &PathFindingState::updatePathLinkageLayerForEachBuildingAtEachTile) @@ -374,12 +374,12 @@ namespace Map { updatePathLinkagesInAllEightDirections; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, uint, uint, int, int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x004A6010, &PathFindingState::findBestAttackTargetTileWithHeightAndOwner) - findBestAttackTargetTileWithHeightAndOwner; + Address::SHC_3BB0A8C1_0x004A6010, &PathFindingState::findBestSiegeTargetTile) + findBestSiegeTargetTile; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int), false, Address::SHC_3BB0A8C1_0x004A6520, - &PathFindingState::storeDestinationOptionsUnk) - storeDestinationOptionsUnk; + &PathFindingState::storeDispersedMoveDestinations) + storeDispersedMoveDestinations; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004A65E0, &PathFindingState::setDestinationPairsBasedOnPreviousSearch) @@ -389,7 +389,7 @@ namespace Map { &PathFindingState::setMoveDestinationPairs) setMoveDestinationPairs; - MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, int, int, UnitType, undefined4), false, + MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, int, int, UnitTypeInt, undefined4), false, Address::SHC_3BB0A8C1_0x004A67D0, &PathFindingState::spawnUnitAndAddToTribe) spawnUnitAndAddToTribe; @@ -398,8 +398,8 @@ namespace Map { computeAttackVectorsBasedOnXAndY; MACRO_FUNCTION_RESOLVER(undefined4 (PathFindingState::*)(int, uint, uint), false, - Address::SHC_3BB0A8C1_0x004A6AB0, &PathFindingState::findCrossAreaBridgeTileToTarget) - findCrossAreaBridgeTileToTarget; + Address::SHC_3BB0A8C1_0x004A6AB0, &PathFindingState::findClosestReachableTileForUnit) + findClosestReachableTileForUnit; MACRO_FUNCTION_RESOLVER(int (PathFindingState::*)(int, dword, uint, uint), false, Address::SHC_3BB0A8C1_0x004A6DF0, &PathFindingState::canNavigateFunctionReturnsArea) @@ -410,8 +410,8 @@ namespace Map { updateWalkLayerAndAIPathCostLayer; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(int, int, int, dword, int), false, - Address::SHC_3BB0A8C1_0x004A75B0, &PathFindingState::pathfindingForAttacksUnk) - pathfindingForAttacksUnk; + Address::SHC_3BB0A8C1_0x004A75B0, &PathFindingState::buildBuildingAttackApproachTiles) + buildBuildingAttackApproachTiles; MACRO_FUNCTION_RESOLVER(void (PathFindingState::*)(uint, undefined4, uint, uint, int, dword, int), false, Address::SHC_3BB0A8C1_0x004A79A0, &PathFindingState::pathPlanningForTribe) diff --git a/src/OpenSHC/Map/Navigation/PathFindingState.hpp b/src/OpenSHC/Map/Navigation/PathFindingState.hpp index 5bd011ad..bb80e285 100644 --- a/src/OpenSHC/Map/Navigation/PathFindingState.hpp +++ b/src/OpenSHC/Map/Navigation/PathFindingState.hpp @@ -10,7 +10,7 @@ #include "OpenSHC/Map/ClimbData.hpp" #include "OpenSHC/Map/Navigation/PathFindingStatePartB.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "WinDef.h" @@ -21,7 +21,7 @@ namespace Map { using OpenSHC::Map::ClimbData; using OpenSHC::Map::Navigation::PathFindingStatePartB; - using OpenSHC::Map::Units::UnitType; + using OpenSHC::Map::Units::UnitTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -52,21 +52,21 @@ namespace Map { undefined1 padding_0x50[12]; // 0x00000050 length: 12 undefined4 ALGO_TotalTroopValue; // 0x0000005C length: 4 undefined4 ALGO_TotalTroopCount; // 0x00000060 length: 4 - undefined4 field34_0x64; // 0x00000064 length: 4 + undefined4 dwUnitsWithinDistanceCount; // 0x00000064 length: 4 undefined1 padding_0x68[4]; // 0x00000068 length: 4 undefined4 toggleUpdateSeparateAreaTileMap; // 0x0000006C length: 4 undefined4 field40_0x70; // 0x00000070 length: 4 - undefined4 field41_0x74; // 0x00000074 length: 4 + undefined4 dwAreaMapUpdateCounter; // 0x00000074 length: 4 undefined4 DAT_lWys; // 0x00000078 length: 4 - undefined4 field43_0x7c; // 0x0000007C length: 4 - undefined4 notAllAssassinsUnk; // 0x00000080 length: 4 + undefined4 dwPathfindingInProgressFlag; // 0x0000007C length: 4 + undefined4 dwPathHasNonAssassinUnit; // 0x00000080 length: 4 undefined4 climbIsIllegal; // 0x00000084 length: 4 - undefined4 allAssassinsUnk; // 0x00000088 length: 4 + undefined4 dwAllUnitsAreAssassinsFlag; // 0x00000088 length: 4 undefined4 distance; // 0x0000008C length: 4 - undefined4 field48_0x90; // 0x00000090 length: 4 - undefined4 field49_0x94; // 0x00000094 length: 4 - undefined4 field50_0x98; // 0x00000098 length: 4 - undefined4 field51_0x9c; // 0x0000009C length: 4 + undefined4 dwAreaReachCacheValid; // 0x00000090 length: 4 + undefined4 dwPathPlanCommitCounter; // 0x00000094 length: 4 + undefined4 dwAreaNavigationFlag; // 0x00000098 length: 4 + undefined4 dwCatapultTargetPathDistance; // 0x0000009C length: 4 undefined4 calculations; // 0x000000A0 length: 4 undefined4 DAT_Mini_spreads; // 0x000000A4 length: 4 undefined4 DAT_Easy; // 0x000000A8 length: 4 @@ -75,7 +75,7 @@ namespace Map { undefined4 searchMatchCounter; // 0x000000B4 length: 4 undefined1 padding_0xb8[4]; // 0x000000B8 length: 4 undefined4 DAT_Ass; // 0x000000BC length: 4 - undefined4 field63_0xc0; // 0x000000C0 length: 4 + undefined4 dwClimbDataAvailableFlag; // 0x000000C0 length: 4 undefined4 DAT_Test_likely; // 0x000000C4 length: 4 undefined4 DAT_Test_gatehouse; // 0x000000C8 length: 4 undefined4 totalZones; // 0x000000CC length: 4 @@ -122,7 +122,7 @@ namespace Map { BOOLEnum findLinkageBasedPathOrWalkRadius( uint x, uint y, int x2, int y2, int maxIterations, BOOLEnum continuePreviousSearch); - undefined4 findSuitableSpawnLocationUnk(int x, int y, int x2, int y2, int param_5, int param_6); + undefined4 bfsFindReachableFreeTile(int x, int y, int x2, int y2, int param_5, int param_6); BOOLEnum findPathUsingClimbingWithHeightMargin16( uint x, uint y, uint x2, uint y2, int budget, BOOLEnum continueSearch); @@ -136,15 +136,15 @@ namespace Map { BOOLEnum updateSeparateAreaTileMap(int forceUpdate); - BOOLEnum updatePathLinkageLayerBasedOnBuildingsUnk(int yUnk, int tile); + BOOLEnum computeTilePathLinkageBits(int yUnk, int tile); void updatePathLinkageLayerAtTileForSomeLogicalReason(int tile, int y); - void updatePathLinkageTileMapRelatedToGates(int buildingID); + void setGatePassabilityLinkage(int buildingID); - undefined8 updatePathLinkageTileMapRelatedToKeeps(int buildingID); + undefined8 setKeepEntranceLinkage(int buildingID); - void updatePathLinkageTileMapRelatedToSiegeTower(int param_1); + void setSiegeTowerLinkage(int param_1); BOOLEnum tracePathPlanToDestinationViaUnoccupiedTiles(uint x, uint y, uint destX, uint destY); @@ -158,7 +158,7 @@ namespace Map { BOOLEnum getYSmallerThanYLimit(); - void pathFindingDeerAndLionsUnk(int originArea, uint destinationX, uint destinationY); + void findNearestTileInOriginArea(int originArea, uint destinationX, uint destinationY); void algTunnelerFindTarget(int playerID, int targetPlayerID, int distance, int originX, int originY); @@ -198,13 +198,13 @@ namespace Map { void updateUnitDeathHeatmapIn3SpacesAroundTile(uint x, uint y); - void recomputeALGPathFindingTileMapUnk(int someMax, uint x, uint y, undefined4 param_4); + void floodMarkAIInfoLayer(int someMax, uint x, uint y, undefined4 param_4); void updateAIZoneWithFloodFill0x20(int max, uint x, uint y); BOOLEnum findAIZoneWithFlags(int maxDistance, uint x, uint y, undefined4 aiInfoFlags); - int findArcherRelatedAttackInfoIndex(int max, uint x, uint y, int tribeID); + int bfsFindAvailableArcherDefensePoint(int max, uint x, uint y, int tribeID); int findSupportPointIndex(int max, uint x, uint y, int tribeID); @@ -213,47 +213,48 @@ namespace Map { dword findAppropriateLocationForSiegeTent( int distanceUnk, uint x, uint y, undefined4 selectionID, uint requiredDistanceFromAIZone, int playerID); - dword pathFindingRelated(int param_1, uint param_2, uint param_3, int param_4); + dword bfsFindBestCostTileWithinRange(int param_1, uint param_2, uint param_3, int param_4); - dword pathfindingRelated49ff20(uint x, uint y, int playerID, uint distanceUnk, int param_5); + dword bfsFindBestTileMatchingAttackMarker(uint x, uint y, int playerID, uint distanceUnk, int param_5); - dword findBestAttackTileByPathCost(uint param_1, uint param_2, int param_3, uint param_4); + dword findBestAttackPathTile(uint param_1, uint param_2, int param_3, uint param_4); - int findNearestEnemyBuildingWithinDistance(int param_1, int param_2, int param_3, int param_4); + int bfsFindNearestEnemyBuilding(int param_1, int param_2, int param_3, int param_4); - int findNearestEnemyUnitWithinDistance(int param_1, int param_2, int param_3, int param_4); + int bfsFindNearestEnemyUnit(int param_1, int param_2, int param_3, int param_4); - int getGatehouseNearSomethingUnk(int param_1, int param_2, int param_3, int maxDistance); + int findNearestEnemyGatehouse(int param_1, int param_2, int param_3, int maxDistance); - int findDistanceOrThreatLevelToUnitUnk(int param_1, int param_2, int param_3, int param_4); + int bfsFindHighestPriorityEnemyUnit(int param_1, int param_2, int param_3, int param_4); void setWalkabilityBorderLogicLayerForSmallerMapSizes(); void aggressiveStanceTargetBuildingAtRange(int unitID, int maxDistance); - BOOLEnum isEnemyTooCloseUnk(int playerID, uint x, uint y, int requiredDistance); + BOOLEnum isEnemyTooClose(int playerID, uint x, uint y, int requiredDistance); - int tracePathToFriendlyDefensesAndReturnTileUnk(int playerID, uint x, uint y); + int bfsFindReachableFriendlyDefenseTile(int playerID, uint x, uint y); dword findOwnedGatehouse(int playerID, uint x, uint y); undefined4 isTileInRangeOfKeepRange(int playerID, uint x, uint y, int range); - undefined4 findSomeSuitableLocationUnk(int param_1, uint x, uint y, int param_4); + undefined4 bfsEnemyStructureWithinRange(int param_1, uint x, uint y, int param_4); void placeCommemoratingStatueAtGoodLocation(int playerID); BOOLEnum isSignPostWithinDistance(uint x, uint y, int limit); - undefined4 spreadAlgorithmForFlagsAndBraziersUnk(int playerID, uint x, uint y, int param_4, int param_5); + undefined4 findOrRemovePlayerFlagsAndBraziersBFS(int playerID, uint x, uint y, int param_4, int param_5); undefined4 igniteFireAtTilesDistanceAway(int tile, int maxDistance, int playerID); BOOLEnum findAccessibleWallAndNearbyFreeTile(uint unitID, int tile, int* pFreeTile, int* pDefensesTile); - undefined4 healUnitsOfPlayerWithinRadius(int param_1, int param_2, int param_3, int param_4); + undefined4 bfsHealOwnerUnits(int param_1, int param_2, int param_3, int param_4); - undefined4 certainDamageToUnitsUnk(int param_1, int param_2, int param_3, int param_4, undefined4 param_5); + undefined4 applyAreaDamageToEnemyUnits( + int param_1, int param_2, int param_3, int param_4, undefined4 param_5); bool pathFindingToAttackCastleIncludingMoat(undefined4 playerID, int wallOwnerPlayerID, uint x, uint y, byte* out_successUnk, int* out_x, int* out_y); @@ -268,45 +269,45 @@ namespace Map { void reprocessLadddermanWallData(int laddermanWalledDataID); - undefined4 registerUnitOnClimbData(int param_1, int param_2); + undefined4 assignUnitToClimbPoint(int param_1, int param_2); - void clearActiveClimbDataOfType6And7(); + void clearLaddermanClimbData(); int calculateCanPlayerUnitsNavigateToAreaFromArea( int playerID, dword fromArea, dword toArea, int permitClimb); - dword findConnectingAreaBetweenTwoAreas(int param_1, dword param_2, dword param_3); + dword traverseAreaConnectivityGraph(int param_1, dword param_2, dword param_3); BOOLEnum calculateCanReachUsingCachedAreaLogic(int tile1, int tile2); - undefined4 findBestAdjacentClimbTileToTarget( + undefined4 findReachableTileNextToTarget( int param_1, uint param_2, uint param_3, uint param_4, uint param_5); void updatePathLinkageLayerForEachBuildingAtEachTile(); void updatePathLinkagesInAllEightDirections(int y, int tile); - void findBestAttackTargetTileWithHeightAndOwner(int param_1, uint param_2, uint param_3, int param_4, - int param_5, int param_6, int param_7, int param_8, int param_9); + void findBestSiegeTargetTile(int param_1, uint param_2, uint param_3, int param_4, int param_5, int param_6, + int param_7, int param_8, int param_9); - void storeDestinationOptionsUnk(int signpostID); + void storeDispersedMoveDestinations(int signpostID); void setDestinationPairsBasedOnPreviousSearch(int playerIDMin1, int attackedPlayerID); void setMoveDestinationPairs(int playerIDmin1, int playerID, int maxCost); void spawnUnitAndAddToTribe( - int playerID, int displayColor, int count, UnitType unitType, undefined4 tribeID); + int playerID, int displayColor, int count, UnitTypeInt unitType, undefined4 tribeID); void computeAttackVectorsBasedOnXAndY(int playerID); - undefined4 findCrossAreaBridgeTileToTarget(int param_1, uint param_2, uint param_3); + undefined4 findClosestReachableTileForUnit(int param_1, uint param_2, uint param_3); int canNavigateFunctionReturnsArea(int playerID, dword targetArea, uint unitX, uint unitY); void updateWalkLayerAndAIPathCostLayer(int limit, uint borderDistance, dword fromArea, int playerID); - void pathfindingForAttacksUnk(int tribeID, int buildingID, int param_3, dword param_4, int param_5); + void buildBuildingAttackApproachTiles(int tribeID, int buildingID, int param_3, dword param_4, int param_5); void pathPlanningForTribe( uint tribeID, undefined4 targetUnitID, uint x, uint y, int unitCount, dword area, int playerID); diff --git a/src/OpenSHC/Map/OrganismDefinedData.hpp b/src/OpenSHC/Map/OrganismDefinedData.hpp index f088790e..5aaead58 100644 --- a/src/OpenSHC/Map/OrganismDefinedData.hpp +++ b/src/OpenSHC/Map/OrganismDefinedData.hpp @@ -22,8 +22,10 @@ namespace Map { typedef struct OrganismDefinedData { undefined1 padding_0x0[4]; // 0x00000000 length: 4 - NoArgCallback* PTR_FUN_UpdateTree[20]; // 0x00000004 length: 80 - NoArgCallback* PTR_RockTypeFunctions[20]; // 0x00000054 length: 80 + NoArgCallback* PTR_FUN_UpdateTree; // 0x00000004 length: 4 + undefined1 padding_0x8[76]; // 0x00000008 length: 76 + NoArgCallback* PTR_RockTypeFunctions; // 0x00000054 length: 4 + undefined1 padding_0x58[76]; // 0x00000058 length: 76 int DAT_TreeRelated1[20][7]; // 0x000000A4 length: 560 int DAT_TreeRelated2[20][7]; // 0x000002D4 length: 560 int DAT_TreeStageLevels[20][7]; // 0x00000504 length: 560 diff --git a/src/OpenSHC/Map/TerrainDefinedData.hpp b/src/OpenSHC/Map/TerrainDefinedData.hpp index 7eeae7b9..b7ff01d0 100644 --- a/src/OpenSHC/Map/TerrainDefinedData.hpp +++ b/src/OpenSHC/Map/TerrainDefinedData.hpp @@ -28,7 +28,7 @@ namespace Map { typedef struct TerrainDefinedData { undefined1 padding_0x0[12]; // 0x00000000 length: 12 - int field12_0xc[37]; // 0x0000000C length: 148 + int brushTileTable[37]; // 0x0000000C length: 148 int DAT_BrushSizeArray[8]; // 0x000000A0 length: 32 XYPair field14_0xc0; // 0x000000C0 length: 8 undefined1 padding_0xc8[8]; // 0x000000C8 length: 8 @@ -37,8 +37,8 @@ namespace Map { Point8 DAT_CoordinateCardinalTranslationMatrix[8]; // 0x000000F4 length: 64 undefined1 padding_0x134[4]; // 0x00000134 length: 4 int field61_0x138; // 0x00000138 length: 4 - XYPair field62_0x13c[4][3]; // 0x0000013C length: 96 - XYPair field63_0x19c[4]; // 0x0000019C length: 32 + XYPair aivBuildingOffsetsX[4][3]; // 0x0000013C length: 96 + XYPair aivBuildingOffsetsY[4]; // 0x0000019C length: 32 XYPair DAT_Stockpile_BuildingPartsOffsets[4]; // 0x000001BC length: 32 XYPair DAT_Stockpile_PathableOffsets[9]; // 0x000001DC length: 72 undefined1 padding_0x224[64]; // 0x00000224 length: 64 @@ -46,7 +46,7 @@ namespace Map { Point8IntXY field131_0x384[8]; // 0x00000384 length: 64 Point8IntXY field132_0x3c4[8]; // 0x000003C4 length: 64 undefined1 padding_0x404[64]; // 0x00000404 length: 64 - XYPair field197_0x444[24]; // 0x00000444 length: 192 + XYPair keepPlacementOffsets[24]; // 0x00000444 length: 192 undefined1 padding_0x504[8]; // 0x00000504 length: 8 XYPair field206_0x50c; // 0x0000050C length: 8 undefined1 padding_0x514[4]; // 0x00000514 length: 4 @@ -58,43 +58,43 @@ namespace Map { undefined1 padding_0x580[76]; // 0x00000580 length: 76 XYPair field370_0x5cc; // 0x000005CC length: 8 undefined1 padding_0x5d4[184]; // 0x000005D4 length: 184 - XYPair field555_0x68c; // 0x0000068C length: 8 + XYPair constructionGfxOffsets; // 0x0000068C length: 8 undefined1 padding_0x694[440]; // 0x00000694 length: 440 - int field996_0x84c[25]; // 0x0000084C length: 100 + int buildingGfxLayerTable[25]; // 0x0000084C length: 100 undefined1 padding_0x8b0[4]; // 0x000008B0 length: 4 - int field1001_0x8b4[25]; // 0x000008B4 length: 100 + int buildingGfxLayerTable2[25]; // 0x000008B4 length: 100 undefined1 padding_0x918[4]; // 0x00000918 length: 4 - XYPair field1006_0x91c[4][36]; // 0x0000091C length: 1152 - XYPair field1007_0xd9c[2][24]; // 0x00000D9C length: 384 - XYPair field1008_0xf1c[8]; // 0x00000F1C length: 64 - WheatFarmFieldSpec field1009_0xf5c[4][27]; // 0x00000F5C length: 1296 + XYPair wheatFarmTileOffsets[4][36]; // 0x0000091C length: 1152 + XYPair hopFarmTileOffsets[2][24]; // 0x00000D9C length: 384 + XYPair appleFarmTileOffsets[8]; // 0x00000F1C length: 64 + WheatFarmFieldSpec dairyFarmTileOffsets[4][27]; // 0x00000F5C length: 1296 undefined1 padding_0x146c[1280]; // 0x0000146C length: 1280 - XYPair field2290_0x196c[4]; // 0x0000196C length: 32 - XYPair field2291_0x198c[9]; // 0x0000198C length: 72 - XYPair field2292_0x19d4[16]; // 0x000019D4 length: 128 + XYPair macroLayerOffsets1[4]; // 0x0000196C length: 32 + XYPair macroLayerOffsets2[9]; // 0x0000198C length: 72 + XYPair macroLayerOffsets3[16]; // 0x000019D4 length: 128 int field2293_0x1a54[4][16]; // 0x00001A54 length: 256 int field2294_0x1b54[4][16]; // 0x00001B54 length: 256 int field2295_0x1c54[4][16]; // 0x00001C54 length: 256 - byte field2296_0x1d54[4][2]; // 0x00001D54 length: 8 + byte gfxLayerTable[4][2]; // 0x00001D54 length: 8 byte field2297_0x1d5c[4][2]; // 0x00001D5C length: 8 - UnkBytePair field2298_0x1d64[8]; // 0x00001D64 length: 16 + UnkBytePair textureTilemapData[8]; // 0x00001D64 length: 16 int DAT_MapSizes[5]; // 0x00001D74 length: 20 undefined1 padding_0x1d88[164]; // 0x00001D88 length: 164 int DAT_SomeOrientationOrderArray[8]; // 0x00001E2C length: 32 - int field2465_0x1e4c[32]; // 0x00001E4C length: 128 - XYPair field2466_0x1ecc[4][9]; // 0x00001ECC length: 288 - int field2467_0x1fec[4][25]; // 0x00001FEC length: 400 - int field2468_0x217c[7][4]; // 0x0000217C length: 112 - int field2469_0x21ec[4][25]; // 0x000021EC length: 400 - int field2470_0x237c[4][25]; // 0x0000237C length: 400 - int field2471_0x250c[26]; // 0x0000250C length: 104 + int placementRotationTable[32]; // 0x00001E4C length: 128 + XYPair drawbridgePlacementOffsets[4][9]; // 0x00001ECC length: 288 + int buildingGfxLayerTable3[4][25]; // 0x00001FEC length: 400 + int towerPlacementTable[7][4]; // 0x0000217C length: 112 + int buildingFootprintTable[4][25]; // 0x000021EC length: 400 + int keepMoatTileTable[4][25]; // 0x0000237C length: 400 + int drawbridgeTileTable[26]; // 0x0000250C length: 104 int orientationRelativeBuildingTileOffset2[60]; // 0x00002574 length: 240 int orientationRelativeBuildingTileOffset1[64]; // 0x00002664 length: 256 - XYPair field2474_0x2764[501]; // 0x00002764 length: 4008 - int field2475_0x370c[8]; // 0x0000370C length: 32 - XYPair field2476_0x372c[8]; // 0x0000372C length: 64 - XYPair field2477_0x376c[4]; // 0x0000376C length: 32 - XYPair field2478_0x378c[4]; // 0x0000378C length: 32 + XYPair placementMarkerOffsets[501]; // 0x00002764 length: 4008 + int textureTilemapIndices[8]; // 0x0000370C length: 32 + XYPair tileSlopeOffsets[8]; // 0x0000372C length: 64 + XYPair pitchDitchData[4]; // 0x0000376C length: 32 + XYPair adjacentTileOffsets[4]; // 0x0000378C length: 32 } TerrainDefinedData; #pragma pack(pop) diff --git a/src/OpenSHC/Map/TileMapState.func.hpp b/src/OpenSHC/Map/TileMapState.func.hpp index 58f145f3..d67c9d84 100644 --- a/src/OpenSHC/Map/TileMapState.func.hpp +++ b/src/OpenSHC/Map/TileMapState.func.hpp @@ -2,24 +2,26 @@ path: 'OpenSHC/Map/TileMapState.func.hpp' */ -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeShort.hpp" #include "OpenSHC/Game/Player/PlayerID.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" -#include "OpenSHC/Map/Buildings/BuildingType.hpp" -#include "OpenSHC/Map/LogicHelpers/Logic1.hpp" -#include "OpenSHC/Map/LogicHelpers/Logic2.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" +#include "OpenSHC/Map/Buildings/BuildingTypeInt.hpp" +#include "OpenSHC/Map/LogicHelpers/Logic1Int.hpp" +#include "OpenSHC/Map/LogicHelpers/Logic2Int.hpp" #include "OpenSHC/Map/TileMapState.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace TileMapState_Func { - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::Commands::CommandBuildingTypeInt; + using OpenSHC::Commands::CommandBuildingTypeShort; using OpenSHC::Game::Player::PlayerID; - using OpenSHC::IO::PackagedFileMagicNum; - using OpenSHC::Map::Buildings::BuildingType; - using OpenSHC::Map::LogicHelpers::Logic1; - using OpenSHC::Map::LogicHelpers::Logic2; + using OpenSHC::IO::PackagedFileMagicNumInt; + using OpenSHC::Map::Buildings::BuildingTypeInt; + using OpenSHC::Map::LogicHelpers::Logic1Int; + using OpenSHC::Map::LogicHelpers::Logic2Int; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER( @@ -64,13 +66,9 @@ namespace Map { void (TileMapState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x004F70E0, &TileMapState::setMapRotation) setMapRotation; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004F70F0, - &TileMapState::updateLogicalTileMapRelatedSections) - updateLogicalTileMapRelatedSections; - - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004F79D0, - &TileMapState::rebuildShowHiLayerFromHeights) - rebuildShowHiLayerFromHeights; + MACRO_FUNCTION_RESOLVER( + void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004F70F0, &TileMapState::recomputeTileDisplayFlags) + recomputeTileDisplayFlags; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F7A80, &TileMapState::computeTileLuminescence) @@ -85,8 +83,8 @@ namespace Map { getNonFarmFieldBuildingHealthAtTileOr1000; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x004F81D0, - &TileMapState::resetTileToDefaultState) - resetTileToDefaultState; + &TileMapState::resetTileToTerrain) + resetTileToTerrain; MACRO_FUNCTION_RESOLVER( uint (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004F8210, &TileMapState::getBuildingHurtSFXID) @@ -101,52 +99,52 @@ namespace Map { countPropertyInSurroundingTiles; MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F85B0, - &TileMapState::isTileEnclosedByWallsOrGates) - isTileEnclosedByWallsOrGates; + &TileMapState::isSurroundedBySolidWalls) + isSurroundedBySolidWalls; MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F8640, - &TileMapState::isTileEnclosedByWalls) - isTileEnclosedByWalls; + &TileMapState::isSurroundedByWallsMask2) + isSurroundedByWallsMask2; MACRO_FUNCTION_RESOLVER(uint (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004F86D0, - &TileMapState::isWallCornerForCardinalDirection) - isWallCornerForCardinalDirection; + &TileMapState::getTileNeighborOffsets) + getTileNeighborOffsets; MACRO_FUNCTION_RESOLVER(uint (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004F8780, - &TileMapState::isWallCornerForDiagonalDirection) - isWallCornerForDiagonalDirection; + &TileMapState::checkWallWalkConnection) + checkWallWalkConnection; MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004F8840, - &TileMapState::isWallConnectionHeightValid) - isWallConnectionHeightValid; + &TileMapState::checkAdjacentWallStep) + checkAdjacentWallStep; MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F8900, - &TileMapState::hasOnlyTowerNeighborsNoWalls) - hasOnlyTowerNeighborsNoWalls; + &TileMapState::hasDitchNeighborNoWall) + hasDitchNeighborNoWall; MACRO_FUNCTION_RESOLVER(uint (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004F89C0, - &TileMapState::getWallFlagForOrientedDirection) - getWallFlagForOrientedDirection; + &TileMapState::getOrientedNeighborWallFlag) + getOrientedNeighborWallFlag; MACRO_FUNCTION_RESOLVER(uint (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004F8A40, - &TileMapState::hasHigherNeighborWithFlagBit11) - hasHigherNeighborWithFlagBit11; + &TileMapState::checkHigherNeighborFlag0x800) + checkHigherNeighborFlag0x800; MACRO_FUNCTION_RESOLVER(uint (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004F8AC0, - &TileMapState::hasHigherPlainNeighborWithFlagBit8) - hasHigherPlainNeighborWithFlagBit8; + &TileMapState::checkHigherNeighborWall) + checkHigherNeighborWall; MACRO_FUNCTION_RESOLVER(int (TileMapState::*)(uint, uint), false, Address::SHC_3BB0A8C1_0x004F8B50, &TileMapState::getOrientationThatIsWallTowerOrGatehouse) getOrientationThatIsWallTowerOrGatehouse; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, uint, uint, undefined4), false, - Address::SHC_3BB0A8C1_0x004F8BD0, &TileMapState::renderWallDragPreview) - renderWallDragPreview; + Address::SHC_3BB0A8C1_0x004F8BD0, &TileMapState::previewWallDragConstruction) + previewWallDragConstruction; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F9000, - &TileMapState::reassignWallOwnershipForPlayer) - reassignWallOwnershipForPlayer; + &TileMapState::markWallTilesForOwner) + markWallTilesForOwner; MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F9220, &TileMapState::swapWallOwnership) @@ -156,129 +154,129 @@ namespace Map { void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004F93E0, &TileMapState::destroyWallsOfPlayer) destroyWallsOfPlayer; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, CommandBuildingType), false, - Address::SHC_3BB0A8C1_0x004F94A0, &TileMapState::validateWallPlacementAtTile) - validateWallPlacementAtTile; + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, CommandBuildingTypeInt), false, + Address::SHC_3BB0A8C1_0x004F94A0, &TileMapState::checkWallPlacementAllowed) + checkWallPlacementAllowed; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004F9590, &TileMapState::setupBuildingSizeIndexMappingForBuildingWithSize) setupBuildingSizeIndexMappingForBuildingWithSize; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F9880, + MACRO_FUNCTION_RESOLVER(undefined (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004F9880, &TileMapState::getBuildingSizeIndexMappingData) getBuildingSizeIndexMappingData; MACRO_FUNCTION_RESOLVER(BOOLEnum (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004F9930, - &TileMapState::isFootprintIndexOnEdge) - isFootprintIndexOnEdge; + &TileMapState::isGridEdgeIndex) + isGridEdgeIndex; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(uint, uint, int), false, Address::SHC_3BB0A8C1_0x004F9980, &TileMapState::storeMinAndMaxHeightOfArea) storeMinAndMaxHeightOfArea; - MACRO_FUNCTION_RESOLVER(int (TileMapState::*)(int, int, CommandBuildingType, int), false, + MACRO_FUNCTION_RESOLVER(int (TileMapState::*)(int, int, CommandBuildingTypeInt, int), false, Address::SHC_3BB0A8C1_0x004F9A60, &TileMapState::isBuildingPlacementAllowedAtTile) isBuildingPlacementAllowedAtTile; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004F9DF0, - &TileMapState::validateBuildingPlacementAtTile) - validateBuildingPlacementAtTile; + MACRO_FUNCTION_RESOLVER(undefined (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004F9DF0, + &TileMapState::checkBuildingPlacementAtTile) + checkBuildingPlacementAtTile; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(undefined4, int), false, Address::SHC_3BB0A8C1_0x004F9F00, - &TileMapState::spawnEraserTileEffect) - spawnEraserTileEffect; + &TileMapState::eraseTileFeaturesAndSpawnDust) + eraseTileFeaturesAndSpawnDust; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004FA000, - &TileMapState::determineBuildingPlacementRotation) - determineBuildingPlacementRotation; + &TileMapState::computeBuildingPlacementRotation) + computeBuildingPlacementRotation; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004FA2D0, &TileMapState::checkDrawbridgePlacement) checkDrawbridgePlacement; - MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004FA460, - &TileMapState::getRubbleGraphicStageForDamageLevel) - getRubbleGraphicStageForDamageLevel; + MACRO_FUNCTION_RESOLVER(undefined (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FA460, + &TileMapState::rotateFieldOrientationIndex) + rotateFieldOrientationIndex; - MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x004FA550, &TileMapState::getBuildingSizeForCommandBuildingType) getBuildingSizeForCommandBuildingType; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(undefined4, int, int, undefined4, int), false, - Address::SHC_3BB0A8C1_0x004FA760, &TileMapState::demolishBuildingsInConstructionFootprint) - demolishBuildingsInConstructionFootprint; + Address::SHC_3BB0A8C1_0x004FA760, &TileMapState::destroyBuildingsUnderFootprint) + destroyBuildingsUnderFootprint; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004FA9D0, - &TileMapState::markBuildingFootprintFlag) - markBuildingFootprintFlag; + &TileMapState::markBuildingFootprintTiles) + markBuildingFootprintTiles; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004FAA30, &TileMapState::updateAreaBasedOnSurrounding) updateAreaBasedOnSurrounding; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004FAAB0, - &TileMapState::clearBuildingTilesAndTrees) - clearBuildingTilesAndTrees; + &TileMapState::clearBuildingTilesOnRemove) + clearBuildingTilesOnRemove; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004FAB70, - &TileMapState::clearBuildingFootprintAndResetUnits) - clearBuildingFootprintAndResetUnits; + &TileMapState::clearBuildingFootprintWithRubble) + clearBuildingFootprintWithRubble; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004FAC70, - &TileMapState::clearBuildingFootprintAndRemoveSiegeTower) - clearBuildingFootprintAndRemoveSiegeTower; + &TileMapState::clearBuildingFootprintAndTowers) + clearBuildingFootprintAndTowers; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004FAD20, - &TileMapState::unmarkBuildingFootprintFlag) - unmarkBuildingFootprintFlag; + MACRO_FUNCTION_RESOLVER(undefined (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FAD20, + &TileMapState::clearBuildingFootprintFlag) + clearBuildingFootprintFlag; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004FAD70, - &TileMapState::clearBuildingFootprintWithEdgeRubble) - clearBuildingFootprintWithEdgeRubble; + &TileMapState::clearBuildingFootprintWithRubbleSimple) + clearBuildingFootprintWithRubbleSimple; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004FAE50, - &TileMapState::clearFixedSizeTwoBuildingFootprint) - clearFixedSizeTwoBuildingFootprint; + MACRO_FUNCTION_RESOLVER(undefined (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FAE50, + &TileMapState::clearBuildingTilesSize2) + clearBuildingTilesSize2; MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004FAEE0, - &TileMapState::isUnitBlockingSizeFiveFootprint) - isUnitBlockingSizeFiveFootprint; + &TileMapState::isBuildingFootprintTileSet) + isBuildingFootprintTileSet; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004FAF70, - &TileMapState::clearStockpileFootprintTiles) - clearStockpileFootprintTiles; + MACRO_FUNCTION_RESOLVER(undefined (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FAF70, + &TileMapState::clearStockpilePathTiles) + clearStockpilePathTiles; MACRO_FUNCTION_RESOLVER( - void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004FB0C0, &TileMapState::setMiscDisplayLayer) + undefined (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FB0C0, &TileMapState::setMiscDisplayLayer) setMiscDisplayLayer; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004FB360, - &TileMapState::clearBuildingDisplayFlagsAndEntities) - clearBuildingDisplayFlagsAndEntities; + &TileMapState::clearBuildingDisplayTiles) + clearBuildingDisplayTiles; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004FB3F0, - &TileMapState::spawnFloatingNumberAroundTile) - spawnFloatingNumberAroundTile; + &TileMapState::createPlacementFloatMarkers) + createPlacementFloatMarkers; MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(uint, uint, uint), false, Address::SHC_3BB0A8C1_0x004FB4D0, &TileMapState::placeRock) placeRock; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004FB770, - &TileMapState::applyRockGraphicsToFootprint) - applyRockGraphicsToFootprint; + MACRO_FUNCTION_RESOLVER( + void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004FB770, &TileMapState::renderRockGraphics) + renderRockGraphics; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004FB8E0, - &TileMapState::clearTreeFootprintFlags) - clearTreeFootprintFlags; + MACRO_FUNCTION_RESOLVER( + void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004FB8E0, &TileMapState::clearTreeTiles) + clearTreeTiles; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004FB970, - &TileMapState::clearRockFootprintFlags) - clearRockFootprintFlags; + MACRO_FUNCTION_RESOLVER( + void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x004FB970, &TileMapState::clearRockTiles) + clearRockTiles; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(uint, uint, short), false, Address::SHC_3BB0A8C1_0x004FB9E0, - &TileMapState::renderWallPlacementPreview) - renderWallPlacementPreview; + &TileMapState::placeRockOnTiles) + placeRockOnTiles; MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FBC30, &TileMapState::getCastleBuildRangeForMapSize) @@ -289,48 +287,48 @@ namespace Map { getTileForBrush; MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x004FBE70, - &TileMapState::isTileSuitableForBrushPlacement) - isTileSuitableForBrushPlacement; + &TileMapState::checkTileHeightAgainstNeighbors) + checkTileHeightAgainstNeighbors; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004FC0B0, - &TileMapState::computeTileCliffEdgeFlags) - computeTileCliffEdgeFlags; + &TileMapState::computeTileSlopeDirection) + computeTileSlopeDirection; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x004FC280, - &TileMapState::propagateCliffEdgeFlagFromNeighbor) - propagateCliffEdgeFlagFromNeighbor; + &TileMapState::markTileBelowCliff) + markTileBelowCliff; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FC340, - &TileMapState::collectCliffEdgeTilesForClimbData) - collectCliffEdgeTilesForClimbData; + &TileMapState::collectClimbableCliffTiles) + collectClimbableCliffTiles; MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FC490, &TileMapState::generateDustClouds) generateDustClouds; - MACRO_FUNCTION_RESOLVER(int (TileMapState::*)(uint), false, Address::SHC_3BB0A8C1_0x004FC650, - &TileMapState::computeWallCornerRenderRotation) - computeWallCornerRenderRotation; + MACRO_FUNCTION_RESOLVER( + int (TileMapState::*)(uint), false, Address::SHC_3BB0A8C1_0x004FC650, &TileMapState::getCliffSpriteIndex) + getCliffSpriteIndex; MACRO_FUNCTION_RESOLVER(BOOLEnum (TileMapState::*)(int, undefined4, int), false, - Address::SHC_3BB0A8C1_0x004FC7C0, &TileMapState::isCliffDropInDirection) - isCliffDropInDirection; + Address::SHC_3BB0A8C1_0x004FC7C0, &TileMapState::isSteepDropInDirection) + isSteepDropInDirection; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x004FC810, - &TileMapState::computeClimbRampRotation) - computeClimbRampRotation; + &TileMapState::computeSlopeEdgeSprite) + computeSlopeEdgeSprite; MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FC9E0, &TileMapState::updateGFXLayers) updateGFXLayers; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(uint, uint, int), false, Address::SHC_3BB0A8C1_0x004FDB00, - &TileMapState::updateMacroLayerRelated) - updateMacroLayerRelated; + &TileMapState::recomputeMacroLayerRegion) + recomputeMacroLayerRegion; - MACRO_FUNCTION_RESOLVER( - void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FF080, &TileMapState::updateMacroLayerRelated2) - updateMacroLayerRelated2; + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004FF080, + &TileMapState::recomputeMacroLayerRegion2) + recomputeMacroLayerRegion2; MACRO_FUNCTION_RESOLVER(byte (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004FF870, &TileMapState::setBitFlagBasedOnWallTowerGatehouseOrKeep) @@ -352,13 +350,13 @@ namespace Map { &TileMapState::getHeightAtTileIncludingOwnersBuildings) getHeightAtTileIncludingOwnersBuildings; - MACRO_FUNCTION_RESOLVER( - void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005000A0, &TileMapState::recountTotalOwnedMoats) + MACRO_FUNCTION_RESOLVER(undefined (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005000A0, + &TileMapState::recountTotalOwnedMoats) recountTotalOwnedMoats; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005000E0, - &TileMapState::countMoatsOwnedByEachPlayer) - countMoatsOwnedByEachPlayer; + MACRO_FUNCTION_RESOLVER( + void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005000E0, &TileMapState::countMoatTilesPerPlayer) + countMoatTilesPerPlayer; MACRO_FUNCTION_RESOLVER(int (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x00500180, &TileMapState::countUnfinishedMoatTilesForPlayer) @@ -389,40 +387,40 @@ namespace Map { setXYBasedOnMoatID; MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x00500500, - &TileMapState::advanceMoatFillProgress) - advanceMoatFillProgress; + &TileMapState::advanceMoatDigging) + advanceMoatDigging; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x005005F0, - &TileMapState::clearMoatAtTileIfPresent) - clearMoatAtTileIfPresent; + MACRO_FUNCTION_RESOLVER( + void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x005005F0, &TileMapState::clearMoatIfPresent) + clearMoatIfPresent; MACRO_FUNCTION_RESOLVER( - void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00500640, &TileMapState::updateMoatCountdownTimers) - updateMoatCountdownTimers; + void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00500640, &TileMapState::updateMoatCounts) + updateMoatCounts; MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00500680, &TileMapState::resetMoatArray) resetMoatArray; MACRO_FUNCTION_RESOLVER( - void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005006C0, &TileMapState::clearInvalidMoatEntries) - clearInvalidMoatEntries; + void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005006C0, &TileMapState::purgeStaleMoats) + purgeStaleMoats; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, undefined4), false, Address::SHC_3BB0A8C1_0x00500720, - &TileMapState::setMoatVisualStateAtTile) - setMoatVisualStateAtTile; + &TileMapState::setMoatValueAtTile) + setMoatValueAtTile; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, undefined4), false, Address::SHC_3BB0A8C1_0x00500750, - &TileMapState::setMoatOwnerForAllMatching) - setMoatOwnerForAllMatching; + &TileMapState::reassignMoatOwnership) + reassignMoatOwnership; MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00500790, &TileMapState::swapMoatOwnership) swapMoatOwnership; MACRO_FUNCTION_RESOLVER( - void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005007D0, &TileMapState::resetPitchDitchArray) - resetPitchDitchArray; + void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005007D0, &TileMapState::clearAllPitchDitches) + clearAllPitchDitches; MACRO_FUNCTION_RESOLVER(int (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00500800, &TileMapState::countPitchDitchesWithPlayerID0) @@ -441,34 +439,34 @@ namespace Map { swapPitchOwnership; MACRO_FUNCTION_RESOLVER(undefined4 (TileMapState::*)(uint, uint, uint, uint), false, - Address::SHC_3BB0A8C1_0x00500980, &TileMapState::findNearestValidDigTileNearTarget) - findNearestValidDigTileNearTarget; + Address::SHC_3BB0A8C1_0x00500980, &TileMapState::findAdjacentReachableTile) + findAdjacentReachableTile; MACRO_FUNCTION_RESOLVER(int (TileMapState::*)(int, int, uint), false, Address::SHC_3BB0A8C1_0x00500B50, - &TileMapState::computeTileAlongAxisOffset) - computeTileAlongAxisOffset; + &TileMapState::offsetTileByDirectionSteps) + offsetTileByDirectionSteps; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00500BB0, - &TileMapState::setSignpostDistanceForCampaignMission) - setSignpostDistanceForCampaignMission; + MACRO_FUNCTION_RESOLVER(undefined (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00500BB0, + &TileMapState::setSignpostDistanceForMode) + setSignpostDistanceForMode; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x00501180, - &TileMapState::spreadFlagPlacementAlgorithm) - spreadFlagPlacementAlgorithm; + &TileMapState::removePlayerFlagsAndBraziers) + removePlayerFlagsAndBraziers; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x005011A0, - &TileMapState::spreadBrazierPlacementAlgorithm) - spreadBrazierPlacementAlgorithm; + &TileMapState::spreadPlayerFlagsAndBraziers) + spreadPlayerFlagsAndBraziers; - MACRO_FUNCTION_RESOLVER( - void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005017A0, &TileMapState::forceFullTileMapRedraw) - forceFullTileMapRedraw; + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x005017A0, + &TileMapState::forceRedrawAllTileMapLayers) + forceRedrawAllTileMapLayers; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(uint, uint, int), false, Address::SHC_3BB0A8C1_0x005017C0, - &TileMapState::useEraserBrush) - useEraserBrush; + &TileMapState::eraseMapTilesWithBrush) + eraseMapTilesWithBrush; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00501A20, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x004F79D0, &TileMapState::updateShowHiLayerOrResetChangedLayer) updateShowHiLayerOrResetChangedLayer; @@ -488,55 +486,55 @@ namespace Map { &TileMapState::createPlateau) createPlateau; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x00502110, - &TileMapState::useLevelBrush) - useLevelBrush; + MACRO_FUNCTION_RESOLVER( + void (TileMapState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x00502110, &TileMapState::useBrush2) + useBrush2; MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x00502390, &TileMapState::setLand) setLand; MACRO_FUNCTION_RESOLVER(BOOLEnum (TileMapState::*)(int, uint, int), false, Address::SHC_3BB0A8C1_0x005024F0, - &TileMapState::isValidCastleSiteLocation) - isValidCastleSiteLocation; + &TileMapState::canPlaceTerrainFeatureAt) + canPlaceTerrainFeatureAt; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, undefined4), false, - Address::SHC_3BB0A8C1_0x00502680, &TileMapState::useTerrainHeightBrush) - useTerrainHeightBrush; + Address::SHC_3BB0A8C1_0x00502680, &TileMapState::useBrush3) + useBrush3; MACRO_FUNCTION_RESOLVER(byte (TileMapState::*)(int, uint), false, Address::SHC_3BB0A8C1_0x00502950, - &TileMapState::getMaxWallHeightInBrushArea) - getMaxWallHeightInBrushArea; + &TileMapState::getMaxFootprintWallHeight) + getMaxFootprintWallHeight; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, uint, uint, undefined4), false, - Address::SHC_3BB0A8C1_0x005029D0, &TileMapState::validateWallBuildPath) - validateWallBuildPath; + Address::SHC_3BB0A8C1_0x005029D0, &TileMapState::checkWhetherThisWallBuildIsAllowed) + checkWhetherThisWallBuildIsAllowed; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, uint, uint, CommandBuildingType, int), false, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, uint, uint, CommandBuildingTypeInt, int), false, Address::SHC_3BB0A8C1_0x00502F30, &TileMapState::placeWalls) placeWalls; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, CommandBuildingType), false, - Address::SHC_3BB0A8C1_0x005034A0, &TileMapState::placeDefensiveStructureTile) - placeDefensiveStructureTile; + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, CommandBuildingTypeInt), false, + Address::SHC_3BB0A8C1_0x005034A0, &TileMapState::placeWallTileStructure) + placeWallTileStructure; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00503720, &TileMapState::setupBuildingSizeIndexMapping) setupBuildingSizeIndexMapping; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, CommandBuildingType, int), false, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, CommandBuildingTypeShort, int), false, Address::SHC_3BB0A8C1_0x005037B0, &TileMapState::checkBuildingCanBePlacedHere) checkBuildingCanBePlacedHere; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint), false, Address::SHC_3BB0A8C1_0x00504A30, - &TileMapState::evaluateBuildingPlacementAtCursor) - evaluateBuildingPlacementAtCursor; + &TileMapState::validateBuildingPlacement) + validateBuildingPlacement; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00504EE0, - &TileMapState::updateBuildingPlacementRotationPreview) - updateBuildingPlacementRotationPreview; + &TileMapState::computePlacementRotationKeepFail) + computePlacementRotationKeepFail; - MACRO_FUNCTION_RESOLVER(int (TileMapState::*)(int, int, CommandBuildingType, int), false, + MACRO_FUNCTION_RESOLVER(int (TileMapState::*)(int, int, CommandBuildingTypeInt, int), false, Address::SHC_3BB0A8C1_0x00504F10, &TileMapState::setConstructionGFXLayerBasedOnPlacementChecks) setConstructionGFXLayerBasedOnPlacementChecks; @@ -545,10 +543,10 @@ namespace Map { updateBuildingGraphicsLayer; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x00506AD0, - &TileMapState::updatePathLinkagesForBuilding) - updatePathLinkagesForBuilding; + &TileMapState::updateBuildingPathLinkages) + updateBuildingPathLinkages; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, BuildingType, uint, int, undefined4), false, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, BuildingTypeInt, uint, int, undefined4), false, Address::SHC_3BB0A8C1_0x00506BD0, &TileMapState::placeWorkshopOrHovel) placeWorkshopOrHovel; @@ -557,8 +555,8 @@ namespace Map { placeSiegetowerPlaced; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, undefined4, uint, int, undefined4), false, - Address::SHC_3BB0A8C1_0x00506E10, &TileMapState::placeSiegeTent) - placeSiegeTent; + Address::SHC_3BB0A8C1_0x00506E10, &TileMapState::stampBuildingTilesAndLinkages) + stampBuildingTilesAndLinkages; MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(int, uint, uint, undefined4, undefined4, uint, undefined4, undefined4), false, @@ -567,8 +565,8 @@ namespace Map { MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(int, uint, uint, undefined4, undefined4, uint, undefined4, undefined4), false, - Address::SHC_3BB0A8C1_0x00507060, &TileMapState::stampBuildingOntoTileMap) - stampBuildingOntoTileMap; + Address::SHC_3BB0A8C1_0x00507060, &TileMapState::placeBuildingOnTiles) + placeBuildingOnTiles; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, undefined4, uint, int, undefined4), false, Address::SHC_3BB0A8C1_0x00507130, &TileMapState::placeTower) @@ -579,8 +577,8 @@ namespace Map { upgradeTowerLogicLayer; MACRO_FUNCTION_RESOLVER( - void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x00507350, &TileMapState::resetTileAndClearMoat) - resetTileAndClearMoat; + void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x00507350, &TileMapState::resetTileTerrain) + resetTileTerrain; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, undefined4, uint, int, undefined4), false, Address::SHC_3BB0A8C1_0x00507420, &TileMapState::placeGatehouseSmall) @@ -615,18 +613,18 @@ namespace Map { placeStockpile; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00508760, - &TileMapState::clearSizeFiveBuildingFootprintAndMoats) - clearSizeFiveBuildingFootprintAndMoats; + &TileMapState::clearKeepTilesAndMoat) + clearKeepTilesAndMoat; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00508870, - &TileMapState::clearSizeFiveBuildingFootprint) - clearSizeFiveBuildingFootprint; + &TileMapState::clearSize5FootprintAndMoat) + clearSize5FootprintAndMoat; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x00508910, - &TileMapState::floodMoatUnderRemovedBuilding) - floodMoatUnderRemovedBuilding; + MACRO_FUNCTION_RESOLVER( + void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x00508910, &TileMapState::applyKeepMoatTiles) + applyKeepMoatTiles; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(uint, uint, CommandBuildingType), false, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(uint, uint, CommandBuildingTypeInt), false, Address::SHC_3BB0A8C1_0x00508A00, &TileMapState::renderPreviewMapperWithBrush) renderPreviewMapperWithBrush; @@ -635,8 +633,8 @@ namespace Map { applyTreeToLogicalLayer; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(uint, uint, uint), false, Address::SHC_3BB0A8C1_0x00508EC0, - &TileMapState::eraseAreaWithBrush) - eraseAreaWithBrush; + &TileMapState::eraseMapTilesWithBrushBounded) + eraseMapTilesWithBrushBounded; MACRO_FUNCTION_RESOLVER( void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00509180, &TileMapState::updateTextureTilemap) @@ -666,11 +664,11 @@ namespace Map { &TileMapState::placePitchDitch) placePitchDitch; - MACRO_FUNCTION_RESOLVER( - void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00511850, &TileMapState::updateGameRelatedValue) - updateGameRelatedValue; + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(), false, Address::SHC_3BB0A8C1_0x00511850, + &TileMapState::tickExpandingSignpostRadius) + tickExpandingSignpostRadius; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, Address::SHC_3BB0A8C1_0x00511D70, &TileMapState::upgradeMapFormatLogicLayer) upgradeMapFormatLogicLayer; @@ -694,7 +692,7 @@ namespace Map { &TileMapState::processMapOrientationChange) processMapOrientationChange; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, uint, uint, Logic1, Logic2), false, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, int, uint, uint, Logic1Int, Logic2Int), false, Address::SHC_3BB0A8C1_0x00512940, &TileMapState::setTerrain) setTerrain; @@ -706,7 +704,7 @@ namespace Map { Address::SHC_3BB0A8C1_0x00514520, &TileMapState::placeKillingPit) placeKillingPit; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, BuildingType, uint, int, int), false, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, BuildingTypeInt, uint, int, int), false, Address::SHC_3BB0A8C1_0x005146D0, &TileMapState::placeKeep) placeKeep; @@ -726,7 +724,7 @@ namespace Map { false, Address::SHC_3BB0A8C1_0x005154D0, &TileMapState::placeDairyfarm) placeDairyfarm; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, BuildingType, undefined4, int, int*), false, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int, uint, uint, BuildingTypeInt, undefined4, int, int*), false, Address::SHC_3BB0A8C1_0x00515740, &TileMapState::placeApplefarm) placeApplefarm; @@ -735,18 +733,18 @@ namespace Map { clearBuildingFromTerrain; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(int), false, Address::SHC_3BB0A8C1_0x00515C80, - &TileMapState::createMoatForSizeFiveBuilding) - createMoatForSizeFiveBuilding; + &TileMapState::createKeepSurroundingMoat) + createKeepSurroundingMoat; MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(uint, uint, undefined4), false, Address::SHC_3BB0A8C1_0x00515DA0, &TileMapState::placeTree) placeTree; - MACRO_FUNCTION_RESOLVER(BOOLEnum (TileMapState::*)(int, uint, uint, CommandBuildingType, int), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (TileMapState::*)(int, uint, uint, CommandBuildingTypeInt, int), false, Address::SHC_3BB0A8C1_0x005160C0, &TileMapState::prepareAreaForBuildingPlacement) prepareAreaForBuildingPlacement; - MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(PlayerID, int, int, CommandBuildingType, int, int), false, + MACRO_FUNCTION_RESOLVER(void (TileMapState::*)(PlayerID, int, int, CommandBuildingTypeInt, int, int), false, Address::SHC_3BB0A8C1_0x005162D0, &TileMapState::placeBuilding) placeBuilding; diff --git a/src/OpenSHC/Map/TileMapState.hpp b/src/OpenSHC/Map/TileMapState.hpp index 6d657f0f..003f423c 100644 --- a/src/OpenSHC/Map/TileMapState.hpp +++ b/src/OpenSHC/Map/TileMapState.hpp @@ -8,14 +8,14 @@ #pragma once -#include "OpenSHC/Commands/CommandBuildingType.hpp" #include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeShort.hpp" #include "OpenSHC/Game/Player/PlayerID.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" #include "OpenSHC/Map/Buildings/BuildingFailReasonEnumInt.hpp" -#include "OpenSHC/Map/Buildings/BuildingType.hpp" -#include "OpenSHC/Map/LogicHelpers/Logic1.hpp" -#include "OpenSHC/Map/LogicHelpers/Logic2.hpp" +#include "OpenSHC/Map/Buildings/BuildingTypeInt.hpp" +#include "OpenSHC/Map/LogicHelpers/Logic1Int.hpp" +#include "OpenSHC/Map/LogicHelpers/Logic2Int.hpp" #include "OpenSHC/Map/Moat.hpp" #include "OpenSHC/Map/PitchDitch.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -23,16 +23,16 @@ namespace OpenSHC { namespace Map { - using OpenSHC::Commands::CommandBuildingType; using OpenSHC::Commands::CommandBuildingTypeInt; + using OpenSHC::Commands::CommandBuildingTypeShort; using OpenSHC::Game::Player::PlayerID; - using OpenSHC::IO::PackagedFileMagicNum; + using OpenSHC::IO::PackagedFileMagicNumInt; using OpenSHC::Map::Moat; using OpenSHC::Map::PitchDitch; using OpenSHC::Map::Buildings::BuildingFailReasonEnumInt; - using OpenSHC::Map::Buildings::BuildingType; - using OpenSHC::Map::LogicHelpers::Logic1; - using OpenSHC::Map::LogicHelpers::Logic2; + using OpenSHC::Map::Buildings::BuildingTypeInt; + using OpenSHC::Map::LogicHelpers::Logic1Int; + using OpenSHC::Map::LogicHelpers::Logic2Int; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -78,7 +78,7 @@ namespace Map { byte AIZoneLayer[80400]; // 0x00400F50 length: 80400 uchar AIInfoLayer[80400]; // 0x00414960 length: 80400 uchar unitDeathHeatMap[80400]; // 0x00428370 length: 80400 - uchar SEC_TileMap1104[80400]; // 0x0043BD80 length: 80400 + uchar AttackPathMarkerLayer[80400]; // 0x0043BD80 length: 80400 uchar SEC_PathfindingCostTileMap1105[9][80400]; // 0x0044F790 length: 723600 undefined4 someIndex; // 0x00500220 length: 4 undefined4 someLimit; // 0x00500224 length: 4 @@ -105,18 +105,18 @@ namespace Map { undefined4 forceUpdateTextureTilemap; // 0x00554870 length: 4 undefined4 forceUpdateGFXLayers; // 0x00554874 length: 4 undefined4 forceUpdateMacroLayerFlag; // 0x00554878 length: 4 - undefined4 field68_0x55487c; // 0x0055487C length: 4 + undefined4 dwMapSizeValue; // 0x0055487C length: 4 undefined1 padding_0x554880[8]; // 0x00554880 length: 8 undefined4 DAT_PlacedBuildingID; // 0x00554888 length: 4 undefined4 field78_0x55488c; // 0x0055488C length: 4 undefined4 rockOrientation; // 0x00554890 length: 4 - undefined4 field80_0x554894; // 0x00554894 length: 4 + undefined4 dwLandscapingToolMode; // 0x00554894 length: 4 undefined4 lastTime; // 0x00554898 length: 4 int SEC_MapOrientation; // 0x0055489C length: 4 undefined4 DAT_FutureMapOrientation; // 0x005548A0 length: 4 undefined4 field84_0x5548a4; // 0x005548A4 length: 4 - undefined4 field85_0x5548a8; // 0x005548A8 length: 4 - undefined4 field86_0x5548ac; // 0x005548AC length: 4 + undefined4 dwSlopeDirectionIndex1; // 0x005548A8 length: 4 + undefined4 dwSlopeDirectionIndex2; // 0x005548AC length: 4 undefined4 field87_0x5548b0; // 0x005548B0 length: 4 undefined4 field88_0x5548b4; // 0x005548B4 length: 4 undefined4 refreshCertainTileMap; // 0x005548B8 length: 4 @@ -132,24 +132,24 @@ namespace Map { undefined4 editorActiveBrush; // 0x005548E0 length: 4 CommandBuildingTypeInt currentMapperCommand; // 0x005548E4 length: 4 undefined4 DAT_BuildingSize; // 0x005548E8 length: 4 - undefined4 field105_0x5548ec; // 0x005548EC length: 4 + undefined4 dwMapInitializedFlag; // 0x005548EC length: 4 BOOLEnum mapperMax; // 0x005548F0 length: 4 undefined4 rockFlagStartNumber; // 0x005548F4 length: 4 undefined4 unknownBrushRelated; // 0x005548F8 length: 4 undefined4 unknownZero_0x5548fc; // 0x005548FC length: 4 undefined4 unknownZero_0x554900; // 0x00554900 length: 4 undefined4 unknownZero_0x554904; // 0x00554904 length: 4 - undefined4 field112_0x554908; // 0x00554908 length: 4 + undefined4 dwSlopeSpriteOffset; // 0x00554908 length: 4 undefined4 dragStartX; // 0x0055490C length: 4 undefined4 dragStartY; // 0x00554910 length: 4 undefined4 dragEndX; // 0x00554914 length: 4 undefined4 dragEndY; // 0x00554918 length: 4 BOOLEnum illegalBuild; // 0x0055491C length: 4 - undefined4 field118_0x554920; // 0x00554920 length: 4 - undefined4 field119_0x554924; // 0x00554924 length: 4 + undefined4 dwWallPlacementFlag; // 0x00554920 length: 4 + undefined4 dwWallPlacementValue; // 0x00554924 length: 4 undefined4 DAT_ClickedTileX; // 0x00554928 length: 4 undefined4 DAT_ClickedTileY; // 0x0055492C length: 4 - undefined4 field122_0x554930; // 0x00554930 length: 4 + undefined4 dwGameStartedFlag; // 0x00554930 length: 4 BOOLEnum buildingPlacementFail; // 0x00554934 length: 4 BuildingFailReasonEnumInt buildingPlacementFailReason; // 0x00554938 length: 4 undefined4 placementWarning; // 0x0055493C length: 4 @@ -158,7 +158,7 @@ namespace Map { undefined4 buildingSpriteSheetID_1; // 0x00554948 length: 4 undefined4 buildingSpriteID1; // 0x0055494C length: 4 undefined4 buildingSpriteID2; // 0x00554950 length: 4 - undefined4 field131_0x554954; // 0x00554954 length: 4 + undefined4 dwEraseBrushValue; // 0x00554954 length: 4 undefined4 buildingHeightLimit; // 0x00554958 length: 4 undefined4 buildingMinHeight; // 0x0055495C length: 4 undefined4 buildingMaxHeight; // 0x00554960 length: 4 @@ -169,49 +169,49 @@ namespace Map { undefined4 buildingPlacementProperty_6; // 0x00554974 length: 4 undefined4 buildingPlacementProperty_7; // 0x00554978 length: 4 undefined1 padding_0x55497c[4]; // 0x0055497C length: 4 - undefined4 field145_0x554980; // 0x00554980 length: 4 + undefined4 dwWallDrawMouseState; // 0x00554980 length: 4 int constructionTileCount; // 0x00554984 length: 4 int DAT_WallTileCountCurrentDrag; // 0x00554988 length: 4 undefined4 buildingX; // 0x0055498C length: 4 undefined4 buildingY; // 0x00554990 length: 4 undefined4 buildingRotationRelatedValue; // 0x00554994 length: 4 - undefined4 field151_0x554998; // 0x00554998 length: 4 - undefined4 field152_0x55499c; // 0x0055499C length: 4 + undefined4 dwPlacementInvalidFlag1; // 0x00554998 length: 4 + undefined4 dwPlacementInvalidFlag2; // 0x0055499C length: 4 undefined4 field153_0x5549a0; // 0x005549A0 length: 4 int showNoRubbleWhenDestroyingBuilding; // 0x005549A4 length: 4 undefined4 field155_0x5549a8; // 0x005549A8 length: 4 undefined4 field156_0x5549ac; // 0x005549AC length: 4 undefined4 wallPlacementCost; // 0x005549B0 length: 4 undefined4 DAT_TempBuildingRotation; // 0x005549B4 length: 4 - int field159_0x5549b8; // 0x005549B8 length: 4 + int nDragSelectActiveFlag; // 0x005549B8 length: 4 undefined4 unknownTime_0x5549bc; // 0x005549BC length: 4 undefined4 field161_0x5549c0; // 0x005549C0 length: 4 undefined4 field162_0x5549c4; // 0x005549C4 length: 4 undefined4 field163_0x5549c8; // 0x005549C8 length: 4 undefined4 field164_0x5549cc; // 0x005549CC length: 4 - undefined4 field165_0x5549d0; // 0x005549D0 length: 4 + undefined4 dwAssemblyPointCounter; // 0x005549D0 length: 4 undefined4 DAT_SelectionIconType; // 0x005549D4 length: 4 undefined4 field167_0x5549d8; // 0x005549D8 length: 4 undefined1 padding_0x5549dc[8]; // 0x005549DC length: 8 int shiftRelated0or3; // 0x005549E4 length: 4 undefined4 field177_0x5549e8; // 0x005549E8 length: 4 undefined4 field178_0x5549ec; // 0x005549EC length: 4 - undefined4 field179_0x5549f0; // 0x005549F0 length: 4 - undefined4 field180_0x5549f4; // 0x005549F4 length: 4 + undefined4 dwDragSelectStartX; // 0x005549F0 length: 4 + undefined4 dwDragSelectStartY; // 0x005549F4 length: 4 undefined4 uiSelectedUnitIDUnk; // 0x005549F8 length: 4 undefined4 DAT_SomeUNitUIDUIRelated; // 0x005549FC length: 4 - undefined4 field183_0x554a00; // 0x00554A00 length: 4 - undefined4 field184_0x554a04; // 0x00554A04 length: 4 + undefined4 dwDragSelectEndX; // 0x00554A00 length: 4 + undefined4 dwDragSelectEndY; // 0x00554A04 length: 4 undefined4 field185_0x554a08; // 0x00554A08 length: 4 undefined4 mapSize; // 0x00554A0C length: 4 undefined4 field187_0x554a10; // 0x00554A10 length: 4 - undefined4 field188_0x554a14; // 0x00554A14 length: 4 + undefined4 dwConstructionHoverFlag; // 0x00554A14 length: 4 undefined1 padding_0x554a18[4]; // 0x00554A18 length: 4 - undefined4 field193_0x554a1c; // 0x00554A1C length: 4 - undefined4 field194_0x554a20; // 0x00554A20 length: 4 - undefined4 field195_0x554a24; // 0x00554A24 length: 4 + undefined4 dwPlacementCounter; // 0x00554A1C length: 4 + undefined4 dwPlacementValidFlag; // 0x00554A20 length: 4 + undefined4 dwSkirmishLaunchedFlag; // 0x00554A24 length: 4 undefined1 padding_0x554a28[8]; // 0x00554A28 length: 8 - int field204_0x554a30; // 0x00554A30 length: 4 + int nPathfindingResyncFlag; // 0x00554A30 length: 4 undefined4 DAT_SomeX; // 0x00554A34 length: 4 undefined4 DAT_SomeY; // 0x00554A38 length: 4 undefined4 DAT_SomeTile; // 0x00554A3C length: 4 @@ -220,7 +220,7 @@ namespace Map { undefined4 DAT_CardinalTilesAroundTile; // 0x00554A44 length: 4 undefined4 field213_0x554a48; // 0x00554A48 length: 4 undefined1 padding_0x554a4c[4]; // 0x00554A4C length: 4 - undefined2 field218_0x554a50; // 0x00554A50 length: 2 + undefined2 wTextureTileHeight; // 0x00554A50 length: 2 undefined1 padding_0x554a52[6]; // 0x00554A52 length: 6 pointer* ptr_LogicLayer; // 0x00554A58 length: 4 pointer* ptr_TerrainTypeTileMap; // 0x00554A5C length: 4 @@ -244,7 +244,7 @@ namespace Map { ~TileMapState() {}; // Constructor - TileMapState* constructTileMapState(); + TileMapState* Constructor_TileMapState(); void processEntityDamageToBuildingCollateralThunk( undefined4 tile, undefined4 x_2, undefined4 y_2, undefined4 damage, undefined4 playerID, undefined4 unused); @@ -268,9 +268,7 @@ namespace Map { void setMapRotation(undefined4 newRotation); - void updateLogicalTileMapRelatedSections(); - - void rebuildShowHiLayerFromHeights(); + void recomputeTileDisplayFlags(); void computeTileLuminescence(int param_1, int param_2); @@ -278,7 +276,7 @@ namespace Map { int getNonFarmFieldBuildingHealthAtTileOr1000(int tile); - void resetTileToDefaultState(int param_1, uint param_2, uint param_3); + void resetTileToTerrain(int param_1, uint param_2, uint param_3); uint getBuildingHurtSFXID(int buildingID); @@ -286,123 +284,123 @@ namespace Map { void countPropertyInSurroundingTiles(int tile, int param_2, uint param_3); - undefined4 isTileEnclosedByWallsOrGates(int param_1, int param_2); + undefined4 isSurroundedBySolidWalls(int param_1, int param_2); - undefined4 isTileEnclosedByWalls(int param_1, int param_2); + undefined4 isSurroundedByWallsMask2(int param_1, int param_2); - uint isWallCornerForCardinalDirection(int param_1, int param_2, int param_3); + uint getTileNeighborOffsets(int param_1, int param_2, int param_3); - uint isWallCornerForDiagonalDirection(int param_1, int param_2, int param_3); + uint checkWallWalkConnection(int param_1, int param_2, int param_3); - undefined4 isWallConnectionHeightValid(int param_1, int param_2, int param_3); + undefined4 checkAdjacentWallStep(int param_1, int param_2, int param_3); - undefined4 hasOnlyTowerNeighborsNoWalls(int param_1, int param_2); + undefined4 hasDitchNeighborNoWall(int param_1, int param_2); - uint getWallFlagForOrientedDirection(int param_1, int param_2, int param_3); + uint getOrientedNeighborWallFlag(int param_1, int param_2, int param_3); - uint hasHigherNeighborWithFlagBit11(int param_1, int param_2, int param_3); + uint checkHigherNeighborFlag0x800(int param_1, int param_2, int param_3); - uint hasHigherPlainNeighborWithFlagBit8(int param_1, int param_2, int param_3); + uint checkHigherNeighborWall(int param_1, int param_2, int param_3); int getOrientationThatIsWallTowerOrGatehouse(uint x, uint y); - void renderWallDragPreview(int playerID, uint x1, uint y1, uint x2, uint y2, undefined4 command); + void previewWallDragConstruction(int playerID, uint x1, uint y1, uint x2, uint y2, undefined4 command); - void reassignWallOwnershipForPlayer(int param_1, int param_2); + void markWallTilesForOwner(int param_1, int param_2); void swapWallOwnership(int param_1, int param_2); void destroyWallsOfPlayer(int playerID); - void validateWallPlacementAtTile(int playerID, uint x, uint y, CommandBuildingType param_4); + void checkWallPlacementAllowed(int playerID, uint x, uint y, CommandBuildingTypeInt param_4); void setupBuildingSizeIndexMappingForBuildingWithSize(int buildingSize); - void getBuildingSizeIndexMappingData(int buildingSizeTileIndex, int buildingWidthOrHeight); + undefined getBuildingSizeIndexMappingData(); - BOOLEnum isFootprintIndexOnEdge(int counter, int size); + BOOLEnum isGridEdgeIndex(int counter, int size); void storeMinAndMaxHeightOfArea(uint x, uint y, int buildingWidthAndHeight); int isBuildingPlacementAllowedAtTile( - int tile, int playerID, CommandBuildingType commandBuildingType, int param_4); + int tile, int playerID, CommandBuildingTypeInt commandBuildingType, int param_4); - void validateBuildingPlacementAtTile(int param_1, int param_2, int param_3); + undefined checkBuildingPlacementAtTile(); - void spawnEraserTileEffect(undefined4 param_1, int param_2); + void eraseTileFeaturesAndSpawnDust(undefined4 param_1, int param_2); - void determineBuildingPlacementRotation(int param_1, int param_2); + void computeBuildingPlacementRotation(int param_1, int param_2); void checkDrawbridgePlacement(int x, int y); - undefined4 getRubbleGraphicStageForDamageLevel(int param_1); + undefined rotateFieldOrientationIndex(); - undefined4 getBuildingSizeForCommandBuildingType(CommandBuildingType commandBuildingType); + undefined4 getBuildingSizeForCommandBuildingType(CommandBuildingTypeInt commandBuildingType); - void demolishBuildingsInConstructionFootprint( + void destroyBuildingsUnderFootprint( undefined4 param_1, int param_2, int param_3, undefined4 param_4, int param_5); - void markBuildingFootprintFlag(int param_1, int param_2, int param_3); + void markBuildingFootprintTiles(int param_1, int param_2, int param_3); void updateAreaBasedOnSurrounding(int x, int y, int buildingSize); - void clearBuildingTilesAndTrees(int param_1, int param_2); + void clearBuildingTilesOnRemove(int param_1, int param_2); - void clearBuildingFootprintAndResetUnits(int x, int y, int size); + void clearBuildingFootprintWithRubble(int x, int y, int size); - void clearBuildingFootprintAndRemoveSiegeTower(int x, int y, int param_3); + void clearBuildingFootprintAndTowers(int x, int y, int param_3); - void unmarkBuildingFootprintFlag(int param_1, int param_2, int param_3); + undefined clearBuildingFootprintFlag(); - void clearBuildingFootprintWithEdgeRubble(int x, int y, int param_3); + void clearBuildingFootprintWithRubbleSimple(int x, int y, int param_3); - void clearFixedSizeTwoBuildingFootprint(int param_1, int param_2); + undefined clearBuildingTilesSize2(); - undefined4 isUnitBlockingSizeFiveFootprint(int param_1); + undefined4 isBuildingFootprintTileSet(int param_1); - void clearStockpileFootprintTiles(int param_1, int param_2); + undefined clearStockpilePathTiles(); - void setMiscDisplayLayer(int buildingID); + undefined setMiscDisplayLayer(); - void clearBuildingDisplayFlagsAndEntities(int buildingID, int param_2); + void clearBuildingDisplayTiles(int buildingID, int param_2); - void spawnFloatingNumberAroundTile(int x, int y, int type); + void createPlacementFloatMarkers(int x, int y, int type); void placeRock(uint x, uint y, uint param_3); - void applyRockGraphicsToFootprint(int rockID); + void renderRockGraphics(int rockID); - void clearTreeFootprintFlags(int param_1); + void clearTreeTiles(int param_1); - void clearRockFootprintFlags(int param_1); + void clearRockTiles(int param_1); - void renderWallPlacementPreview(uint x, uint y, short param_3); + void placeRockOnTiles(uint x, uint y, short param_3); undefined4 getCastleBuildRangeForMapSize(); void getTileForBrush(int square, int index, int* tilePointer, int* yPointer, int baseTile, uint y); - undefined4 isTileSuitableForBrushPlacement(int param_1, uint param_2, uint param_3); + undefined4 checkTileHeightAgainstNeighbors(int param_1, uint param_2, uint param_3); - void computeTileCliffEdgeFlags(int param_1, int param_2, int param_3); + void computeTileSlopeDirection(int param_1, int param_2, int param_3); - void propagateCliffEdgeFlagFromNeighbor(int param_1, int param_2, int param_3); + void markTileBelowCliff(int param_1, int param_2, int param_3); - void collectCliffEdgeTilesForClimbData(); + void collectClimbableCliffTiles(); void generateDustClouds(); - int computeWallCornerRenderRotation(uint param_1); + int getCliffSpriteIndex(uint param_1); - BOOLEnum isCliffDropInDirection(int param_1, undefined4 param_2, int param_3); + BOOLEnum isSteepDropInDirection(int param_1, undefined4 param_2, int param_3); - void computeClimbRampRotation(int param_1, uint param_2, uint param_3); + void computeSlopeEdgeSprite(int param_1, uint param_2, uint param_3); void updateGFXLayers(); - void updateMacroLayerRelated(uint param_1, uint param_2, int param_3); + void recomputeMacroLayerRegion(uint param_1, uint param_2, int param_3); - void updateMacroLayerRelated2(); + void recomputeMacroLayerRegion2(); byte setBitFlagBasedOnWallTowerGatehouseOrKeep(int x, int y); @@ -414,9 +412,9 @@ namespace Map { uint getHeightAtTileIncludingOwnersBuildings(int tile, int playerID); - void recountTotalOwnedMoats(); + undefined recountTotalOwnedMoats(); - void countMoatsOwnedByEachPlayer(); + void countMoatTilesPerPlayer(); int countUnfinishedMoatTilesForPlayer(int playerID); @@ -432,23 +430,23 @@ namespace Map { int setXYBasedOnMoatID(int tile, int param_2, uint x, uint y); - undefined4 advanceMoatFillProgress(int moatID); + undefined4 advanceMoatDigging(int moatID); - void clearMoatAtTileIfPresent(int tile); + void clearMoatIfPresent(int tile); - void updateMoatCountdownTimers(); + void updateMoatCounts(); void resetMoatArray(); - void clearInvalidMoatEntries(); + void purgeStaleMoats(); - void setMoatVisualStateAtTile(int param_1, undefined4 param_2); + void setMoatValueAtTile(int param_1, undefined4 param_2); - void setMoatOwnerForAllMatching(int param_1, undefined4 param_2); + void reassignMoatOwnership(int param_1, undefined4 param_2); void swapMoatOwnership(int param_1, int param_2); - void resetPitchDitchArray(); + void clearAllPitchDitches(); int countPitchDitchesWithPlayerID0(); @@ -458,19 +456,19 @@ namespace Map { void swapPitchOwnership(int param_1, int param_2); - undefined4 findNearestValidDigTileNearTarget(uint x1, uint y1, uint x2, uint y2); + undefined4 findAdjacentReachableTile(uint x1, uint y1, uint x2, uint y2); - int computeTileAlongAxisOffset(int param_1, int param_2, uint param_3); + int offsetTileByDirectionSteps(int param_1, int param_2, uint param_3); - void setSignpostDistanceForCampaignMission(); + undefined setSignpostDistanceForMode(); - void spreadFlagPlacementAlgorithm(int param_1, uint param_2, uint param_3); + void removePlayerFlagsAndBraziers(int param_1, uint param_2, uint param_3); - void spreadBrazierPlacementAlgorithm(int playerID, uint x, uint y); + void spreadPlayerFlagsAndBraziers(int playerID, uint x, uint y); - void forceFullTileMapRedraw(); + void forceRedrawAllTileMapLayers(); - void useEraserBrush(uint param_1, uint param_2, int param_3); + void eraseMapTilesWithBrush(uint param_1, uint param_2, int param_3); void updateShowHiLayerOrResetChangedLayer(); @@ -482,51 +480,51 @@ namespace Map { void createPlateau(int tile, uint the_y, int param_3, int plateauHeightSetting); - void useLevelBrush(int param_1, uint param_2, uint param_3); + void useBrush2(int param_1, uint param_2, uint param_3); void setLand(int tile, uint y, uint brushType_y); - BOOLEnum isValidCastleSiteLocation(int x, uint y, int cbt); + BOOLEnum canPlaceTerrainFeatureAt(int x, uint y, int cbt); - void useTerrainHeightBrush(int param_1, uint param_2, uint param_3, undefined4 param_4); + void useBrush3(int param_1, uint param_2, uint param_3, undefined4 param_4); - byte getMaxWallHeightInBrushArea(int param_1, uint param_2); + byte getMaxFootprintWallHeight(int param_1, uint param_2); - void validateWallBuildPath(int playerID, uint x1, uint y1, uint x2, uint y2, undefined4 command); + void checkWhetherThisWallBuildIsAllowed(int playerID, uint x1, uint y1, uint x2, uint y2, undefined4 command); void placeWalls( - int playerID, uint x1, uint y1, uint x2, uint y2, CommandBuildingType wallType, int tileCountUnk); + int playerID, uint x1, uint y1, uint x2, uint y2, CommandBuildingTypeInt wallType, int tileCountUnk); - void placeDefensiveStructureTile(int param_1, uint x, uint y, CommandBuildingType param_4); + void placeWallTileStructure(int param_1, uint x, uint y, CommandBuildingTypeInt param_4); void setupBuildingSizeIndexMapping(); - void checkBuildingCanBePlacedHere( - int playerID, uint x, uint y__fertileLandCount, CommandBuildingType commandBuildingType, int buildingSize); + void checkBuildingCanBePlacedHere(int playerID, uint x, uint y__fertileLandCount, + CommandBuildingTypeShort commandBuildingType, int buildingSize); - void evaluateBuildingPlacementAtCursor(int playerID, uint x, uint y); + void validateBuildingPlacement(int playerID, uint x, uint y); - void updateBuildingPlacementRotationPreview(int param_1, int param_2); + void computePlacementRotationKeepFail(int param_1, int param_2); - int setConstructionGFXLayerBasedOnPlacementChecks(int x, int y, CommandBuildingType type, int size); + int setConstructionGFXLayerBasedOnPlacementChecks(int x, int y, CommandBuildingTypeInt type, int size); void updateBuildingGraphicsLayer(int buildingID); - void updatePathLinkagesForBuilding(int buildingID); + void updateBuildingPathLinkages(int buildingID); void placeWorkshopOrHovel( - int playerID, uint x, uint y, BuildingType type, uint size, int orientation, undefined4 averageHeight); + int playerID, uint x, uint y, BuildingTypeInt type, uint size, int orientation, undefined4 averageHeight); void placeSiegetowerPlaced( int param_1, uint param_2, uint param_3, undefined4 param_4, uint param_5, int param_6, undefined4 param_7); - void placeSiegeTent( + void stampBuildingTilesAndLinkages( int param_1, uint param_2, uint param_3, undefined4 param_4, uint param_5, int param_6, undefined4 param_7); void placePositiveFearfactor(int playerID, uint x, uint y, undefined4 buildingType, undefined4 variation, uint buildingSize, undefined4 param_7, undefined4 height); - void stampBuildingOntoTileMap(int param_1, uint param_2, uint param_3, undefined4 param_4, undefined4 param_5, + void placeBuildingOnTiles(int param_1, uint param_2, uint param_3, undefined4 param_4, undefined4 param_5, uint param_6, undefined4 param_7, undefined4 param_8); void placeTower( @@ -534,7 +532,7 @@ namespace Map { void upgradeTowerLogicLayer(int param_1); - void resetTileAndClearMoat(int tile); + void resetTileTerrain(int tile); void placeGatehouseSmall( int param_1, uint param_2, uint param_3, undefined4 param_4, uint param_5, int param_6, undefined4 param_7); @@ -560,17 +558,17 @@ namespace Map { void placeStockpile( int playerID, int x, int y, undefined4 buildingType, undefined4 param_5, int variation, int averageHeight); - void clearSizeFiveBuildingFootprintAndMoats(int param_1, int param_2); + void clearKeepTilesAndMoat(int param_1, int param_2); - void clearSizeFiveBuildingFootprint(int param_1, int param_2); + void clearSize5FootprintAndMoat(int param_1, int param_2); - void floodMoatUnderRemovedBuilding(int param_1); + void applyKeepMoatTiles(int param_1); - void renderPreviewMapperWithBrush(uint x, uint y, CommandBuildingType param_3); + void renderPreviewMapperWithBrush(uint x, uint y, CommandBuildingTypeInt param_3); void applyTreeToLogicalLayer(int treeID, int param_2); - void eraseAreaWithBrush(uint param_1, uint param_2, uint param_3); + void eraseMapTilesWithBrushBounded(uint param_1, uint param_2, uint param_3); void updateTextureTilemap(); @@ -586,10 +584,10 @@ namespace Map { int placePitchDitch(undefined4 playerID, uint x, uint y); - void updateGameRelatedValue(); + void tickExpandingSignpostRadius(); void upgradeMapFormatLogicLayer( - PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); void setupTileMapSections(); @@ -601,14 +599,14 @@ namespace Map { void processMapOrientationChange(); - void setTerrain(int playerID, int tile, uint yParam, uint brushType, Logic1 flags1, Logic2 flags2); + void setTerrain(int playerID, int tile, uint yParam, uint brushType, Logic1Int flags1, Logic2Int flags2); void placeMoat(undefined4 playerID, int tile, uint tileY); void placeKillingPit( int param_1, uint param_2, uint param_3, undefined4 param_4, uint param_5, int param_6, int param_7); - void placeKeep(int playerID, uint x, uint y, BuildingType type, uint size, int orientation, int xyValue); + void placeKeep(int playerID, uint x, uint y, BuildingTypeInt type, uint size, int orientation, int xyValue); void placeDrawbridge(int param_1, uint param_2, uint param_3, undefined4 param_4, uint param_5, int* param_6, undefined4 param_7); @@ -623,19 +621,19 @@ namespace Map { int* param_6, undefined4 param_7); void placeApplefarm( - int playerID, uint x, uint y, BuildingType buildingType, undefined4 param_5, int param_6, int* param_7); + int playerID, uint x, uint y, BuildingTypeInt buildingType, undefined4 param_5, int param_6, int* param_7); void clearBuildingFromTerrain(int buildingID); - void createMoatForSizeFiveBuilding(int param_1); + void createKeepSurroundingMoat(int param_1); void placeTree(uint x, uint y, undefined4 treeType); BOOLEnum prepareAreaForBuildingPlacement( - int playerID, uint x, uint y, CommandBuildingType commandBuildingType, int buildingWidthOrHeight); + int playerID, uint x, uint y, CommandBuildingTypeInt commandBuildingType, int buildingWidthOrHeight); void placeBuilding( - PlayerID playerID, int x, int y, CommandBuildingType cbt, int buildingSize, int buildingOrientation); + PlayerID playerID, int x, int y, CommandBuildingTypeInt cbt, int buildingSize, int buildingOrientation); uint processDamageToBuilding(int tile, uint xPosition, uint yPosition, int damageUnk, int param_5, int playerID, BOOLEnum aiBuildDelayRelated, int unitID); diff --git a/src/OpenSHC/Map/Units.func.hpp b/src/OpenSHC/Map/Units.func.hpp index 009a1caa..9283fe7a 100644 --- a/src/OpenSHC/Map/Units.func.hpp +++ b/src/OpenSHC/Map/Units.func.hpp @@ -14,8 +14,8 @@ namespace Map { namespace Units_Func { MACRO_FUNCTION_RESOLVER( - int(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0051BE20, &OpenSHC::Map::Units::FindFirstOpponentWithKeep) - FindFirstOpponentWithKeep; + int(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0051BE20, &OpenSHC::Map::Units::findFirstPlayerWithKeep) + findFirstPlayerWithKeep; } // namespace Units_Func } // namespace Map diff --git a/src/OpenSHC/Map/Units.hpp b/src/OpenSHC/Map/Units.hpp index 2fc665ba..857185be 100644 --- a/src/OpenSHC/Map/Units.hpp +++ b/src/OpenSHC/Map/Units.hpp @@ -12,7 +12,7 @@ namespace OpenSHC { namespace Map { namespace Units { - int __stdcall FindFirstOpponentWithKeep(); + int __stdcall findFirstPlayerWithKeep(); } // namespace Units } // namespace Map diff --git a/src/OpenSHC/Map/Units/Climbing/ClimbLogicDefinedData.hpp b/src/OpenSHC/Map/Units/Climbing/ClimbLogicDefinedData.hpp index 57cdc745..d243963a 100644 --- a/src/OpenSHC/Map/Units/Climbing/ClimbLogicDefinedData.hpp +++ b/src/OpenSHC/Map/Units/Climbing/ClimbLogicDefinedData.hpp @@ -23,8 +23,8 @@ namespace Map { // SIZE: 0x000002BC typedef struct ClimbLogicDefinedData { - NoArgCallback* updateFunctions[10]; // 0x00000000 length: 40 - undefined1 padding_0x28[4]; // 0x00000028 length: 4 + NoArgCallback* updateFunctions; // 0x00000000 length: 4 + undefined1 padding_0x4[40]; // 0x00000004 length: 40 int field5_0x2c[8]; // 0x0000002C length: 32 int field6_0x4c[55]; // 0x0000004C length: 220 undefined1 field7_0x128; // 0x00000128 length: 1 diff --git a/src/OpenSHC/Map/Units/Tribe.hpp b/src/OpenSHC/Map/Units/Tribe.hpp index 9426d692..37d8cdb4 100644 --- a/src/OpenSHC/Map/Units/Tribe.hpp +++ b/src/OpenSHC/Map/Units/Tribe.hpp @@ -39,7 +39,7 @@ namespace Map { short facingDirection_1; // 0x00000020 length: 2 short facingDirection_2; // 0x00000022 length: 2 short facingDirection_3; // 0x00000024 length: 2 - short field24_0x26; // 0x00000026 length: 2 + short nTribeMovementRunUpTime; // 0x00000026 length: 2 SomeTribeBehaviorTypeShort tribeBehaviorType; // 0x00000028 length: 2 undefined1 padding_0x2a[2]; // 0x0000002A length: 2 short someUpdateUpperLimit; // 0x0000002C length: 2 @@ -54,7 +54,7 @@ namespace Map { short countdown2; // 0x000001E8 length: 2 undefined1 padding_0x1ea[6]; // 0x000001EA length: 6 short freeUnitSpeeds; // 0x000001F0 length: 2 - short field56_0x1f2; // 0x000001F2 length: 2 + short nPairedSupportTribeID; // 0x000001F2 length: 2 int uid2; // 0x000001F4 length: 4 short tribeID; // 0x000001F8 length: 2 short minimumMovementSpeed; // 0x000001FA length: 2 @@ -62,30 +62,30 @@ namespace Map { short maximumMovementSpeed; // 0x000001FE length: 2 short field62_0x200; // 0x00000200 length: 2 short field63_0x202; // 0x00000202 length: 2 - short field64_0x204; // 0x00000204 length: 2 + short nAnimalBehaviorPhase; // 0x00000204 length: 2 short isRallyingUnk; // 0x00000206 length: 2 short field66_0x208; // 0x00000208 length: 2 short unitsHealthPercentage; // 0x0000020A length: 2 short field68_0x20c; // 0x0000020C length: 2 short targetX; // 0x0000020E length: 2 short targetY; // 0x00000210 length: 2 - short field71_0x212; // 0x00000212 length: 2 + short tribeInstructionActiveFlag_0x212; // 0x00000212 length: 2 undefined1 padding_0x214[20]; // 0x00000214 length: 20 UnitTypeShort unitType; // 0x00000228 length: 2 - short field93_0x22a; // 0x0000022A length: 2 + short nTribeStanceCheckValue; // 0x0000022A length: 2 undefined1 padding_0x22c[12]; // 0x0000022C length: 12 short rallyPointArray[9][2]; // 0x00000238 length: 36 undefined1 padding_0x25c[4]; // 0x0000025C length: 4 short currentRallyPointIndex; // 0x00000260 length: 2 short rallyPointCount; // 0x00000262 length: 2 undefined1 padding_0x264[20]; // 0x00000264 length: 20 - short field133_0x278; // 0x00000278 length: 2 - short field134_0x27a; // 0x0000027A length: 2 - short unkIsAnimalTribe; // 0x0000027C length: 2 - short field136_0x27e; // 0x0000027E length: 2 - short field137_0x280; // 0x00000280 length: 2 - short field138_0x282; // 0x00000282 length: 2 - short field139_0x284; // 0x00000284 length: 2 + short nScatterPhaseTimer; // 0x00000278 length: 2 + short nTribeSpawnedFlag; // 0x0000027A length: 2 + short nIsAnimalTribe; // 0x0000027C length: 2 + short nAnimalMoveDelay; // 0x0000027E length: 2 + short nAnimalSpawnCountHalf; // 0x00000280 length: 2 + short nAnimalSpawnCount; // 0x00000282 length: 2 + short nAnimalSpawnIndex; // 0x00000284 length: 2 short unknownCounter01; // 0x00000286 length: 2 undefined1 padding_0x288[2]; // 0x00000288 length: 2 short unknownBool02; // 0x0000028A length: 2 @@ -113,7 +113,7 @@ namespace Map { UnitStanceEnumShort unitStance; // 0x000002B8 length: 2 short orientation; // 0x000002BA length: 2 short someCounter1; // 0x000002BC length: 2 - short field168_0x2be; // 0x000002BE length: 2 + short nTribeInstructionValue; // 0x000002BE length: 2 short someUnitID; // 0x000002C0 length: 2 undefined1 padding_0x2c2[2]; // 0x000002C2 length: 2 int someUnitUID; // 0x000002C4 length: 4 diff --git a/src/OpenSHC/Map/Units/TribesState.func.hpp b/src/OpenSHC/Map/Units/TribesState.func.hpp index fadbfbdf..e04c2f65 100644 --- a/src/OpenSHC/Map/Units/TribesState.func.hpp +++ b/src/OpenSHC/Map/Units/TribesState.func.hpp @@ -2,27 +2,27 @@ path: 'OpenSHC/Map/Units/TribesState.func.hpp' */ -#include "OpenSHC/Commands/CommandBuildingType.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" -#include "OpenSHC/Map/Units/Behavior/UnitStanceEnum.hpp" -#include "OpenSHC/Map/Units/Instructions/UnitMatchSpeedEnum.hpp" -#include "OpenSHC/Map/Units/SomeTribeBehaviorType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" +#include "OpenSHC/Map/Units/Behavior/UnitStanceEnumShort.hpp" +#include "OpenSHC/Map/Units/Instructions/UnitMatchSpeedEnumInt.hpp" +#include "OpenSHC/Map/Units/SomeTribeBehaviorTypeInt.hpp" #include "OpenSHC/Map/Units/TribesState.hpp" -#include "OpenSHC/Map/Units/UnitInstructionType.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Map/Units/UnitInstructionTypeInt.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace Units { namespace TribesState_Func { - using OpenSHC::Commands::CommandBuildingType; - using OpenSHC::IO::PackagedFileMagicNum; - using OpenSHC::Map::Units::SomeTribeBehaviorType; - using OpenSHC::Map::Units::UnitInstructionType; - using OpenSHC::Map::Units::UnitType; - using OpenSHC::Map::Units::Behavior::UnitStanceEnum; - using OpenSHC::Map::Units::Instructions::UnitMatchSpeedEnum; + using OpenSHC::Commands::CommandBuildingTypeInt; + using OpenSHC::IO::PackagedFileMagicNumInt; + using OpenSHC::Map::Units::SomeTribeBehaviorTypeInt; + using OpenSHC::Map::Units::UnitInstructionTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; + using OpenSHC::Map::Units::Behavior::UnitStanceEnumShort; + using OpenSHC::Map::Units::Instructions::UnitMatchSpeedEnumInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(undefined4, undefined4, undefined4, undefined4, undefined4), @@ -38,64 +38,64 @@ namespace Map { clearAllTribes; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00521210, - &TribesState::reassignOwnerForTribesOfBehaviorType2) - reassignOwnerForTribesOfBehaviorType2; + &TribesState::reassignTribeOwnership) + reassignTribeOwnership; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00521240, &TribesState::swapTribeOwnership) swapTribeOwnership; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00521280, - &TribesState::moveUnitToBehaviorTarget) - moveUnitToBehaviorTarget; + &TribesState::assignTribeUnitTarget) + assignTribeUnitTarget; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, int, int*, int*), false, - Address::SHC_3BB0A8C1_0x00521500, &TribesState::predictUnitInterceptPosition) - predictUnitInterceptPosition; + Address::SHC_3BB0A8C1_0x00521500, &TribesState::projectPursuitInterceptAlongPathPlan) + projectPursuitInterceptAlongPathPlan; - MACRO_FUNCTION_RESOLVER(UnitType (TribesState::*)(undefined4, int*), false, - Address::SHC_3BB0A8C1_0x00521720, &TribesState::getMajoritySelectedUnitType) - getMajoritySelectedUnitType; + MACRO_FUNCTION_RESOLVER(UnitTypeInt (TribesState::*)(undefined4, int*), false, + Address::SHC_3BB0A8C1_0x00521720, &TribesState::getMostCommonSelectedUnitType) + getMostCommonSelectedUnitType; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x005217E0, - &TribesState::playUnitSelectionSound) - playUnitSelectionSound; + &TribesState::playSelectedUnitOrderSpeech) + playSelectedUnitOrderSpeech; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00521A90, - &TribesState::playUnitCombatSpeechForTarget) - playUnitCombatSpeechForTarget; + &TribesState::playTribeSelectionSpeech) + playTribeSelectionSpeech; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x00521EB0, - &TribesState::playUnitSelectSpeech) - playUnitSelectSpeech; + &TribesState::playUnitOrderSpeech0B) + playUnitOrderSpeech0B; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x00521EF0, - &TribesState::playUnitMoveSpeech) - playUnitMoveSpeech; + &TribesState::playAttackOrderSpeech) + playAttackOrderSpeech; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00522090, - &TribesState::playAttackCommandFeedback) - playAttackCommandFeedback; + &TribesState::playSiegeOrEngineerOrderSpeech) + playSiegeOrEngineerOrderSpeech; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x00522110, - &TribesState::playPatrolCommandSpeech) - playPatrolCommandSpeech; + &TribesState::playUnitOrderSpeech29) + playUnitOrderSpeech29; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(), false, Address::SHC_3BB0A8C1_0x00522150, - &TribesState::playTunnelerCommandSpeech) - playTunnelerCommandSpeech; + MACRO_FUNCTION_RESOLVER( + void (TribesState::*)(), false, Address::SHC_3BB0A8C1_0x00522150, &TribesState::playTunnelerDigSpeech) + playTunnelerDigSpeech; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x00522160, - &TribesState::playWorkCommandSpeech) - playWorkCommandSpeech; + &TribesState::playUnitOrderSpeech24) + playUnitOrderSpeech24; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, SomeTribeBehaviorType), false, + MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, SomeTribeBehaviorTypeInt), false, Address::SHC_3BB0A8C1_0x005221A0, &TribesState::applyTribeBehaviorType) applyTribeBehaviorType; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x00522210, - &TribesState::updatePeasantSeatingAtBuilding) - updatePeasantSeatingAtBuilding; + &TribesState::selectPeasantsAtBuilding) + selectPeasantsAtBuilding; MACRO_FUNCTION_RESOLVER(uint (TribesState::*)(int, uint), false, Address::SHC_3BB0A8C1_0x00522360, &TribesState::tribeCorrespondsWithUID) @@ -161,8 +161,8 @@ namespace Map { Address::SHC_3BB0A8C1_0x00522BF0, &TribesState::queueUnitStance) queueUnitStance; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, UnitStanceEnum), false, Address::SHC_3BB0A8C1_0x00522C20, - &TribesState::setUnitStance) + MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, UnitStanceEnumShort), false, + Address::SHC_3BB0A8C1_0x00522C20, &TribesState::setUnitStance) setUnitStance; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, short, short, int), false, @@ -170,31 +170,31 @@ namespace Map { addRallyPoint; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00522CA0, - &TribesState::snapshotSelectionTribeAndComputeStance) - snapshotSelectionTribeAndComputeStance; + &TribesState::temporarilyStoreTribeIfAllNewlySelectedUnitsPartOfThisTribe_And_AlwaysRememberStance) + temporarilyStoreTribeIfAllNewlySelectedUnitsPartOfThisTribe_And_AlwaysRememberStance; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(undefined4, int), false, Address::SHC_3BB0A8C1_0x00522DD0, &TribesState::importStoredInfoFromSlot0) importStoredInfoFromSlot0; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(undefined4, int), false, Address::SHC_3BB0A8C1_0x00522EF0, - &TribesState::trimTribeToSize) - trimTribeToSize; + &TribesState::shrinkTribeToSize) + shrinkTribeToSize; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(undefined4, int, int, int, UnitType, int, int), false, - Address::SHC_3BB0A8C1_0x00522F70, &TribesState::spawnUnitsForAITribe) - spawnUnitsForAITribe; + MACRO_FUNCTION_RESOLVER(void (TribesState::*)(undefined4, int, int, int, UnitTypeInt, int, int), false, + Address::SHC_3BB0A8C1_0x00522F70, &TribesState::spawnUnitsForTribe) + spawnUnitsForTribe; MACRO_FUNCTION_RESOLVER( - dword (TribesState::*)(undefined4, int, int, int, int, UnitType, UnitType, int, int), false, + dword (TribesState::*)(undefined4, int, int, int, int, UnitTypeInt, UnitTypeInt, int, int), false, Address::SHC_3BB0A8C1_0x00523030, &TribesState::spawnUnitsIntoNewTribe) spawnUnitsIntoNewTribe; - MACRO_FUNCTION_RESOLVER(dword (TribesState::*)(short, undefined4, int, int, int, UnitType, int), false, - Address::SHC_3BB0A8C1_0x00523190, &TribesState::createTribeWithSpawnedUnit) - createTribeWithSpawnedUnit; + MACRO_FUNCTION_RESOLVER(dword (TribesState::*)(short, undefined4, int, int, int, UnitTypeInt, int), false, + Address::SHC_3BB0A8C1_0x00523190, &TribesState::createTribeWithSpawn) + createTribeWithSpawn; - MACRO_FUNCTION_RESOLVER(dword (TribesState::*)(undefined4, int, int, int, UnitType, int), false, + MACRO_FUNCTION_RESOLVER(dword (TribesState::*)(undefined4, int, int, int, UnitTypeInt, int), false, Address::SHC_3BB0A8C1_0x00523240, &TribesState::spawnUnitsAroundLocation) spawnUnitsAroundLocation; @@ -215,16 +215,16 @@ namespace Map { setCamelSpawnXY; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(uint*, uint*), false, Address::SHC_3BB0A8C1_0x00523410, - &TribesState::findRecentOrSignpostSpawnLocation) - findRecentOrSignpostSpawnLocation; + &TribesState::findAiSpawnPoint) + findAiSpawnPoint; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(), false, Address::SHC_3BB0A8C1_0x00523520, - &TribesState::hasAvailableSpawnSlotForWildlifeOrMercs) - hasAvailableSpawnSlotForWildlifeOrMercs; + &TribesState::hasRabbitOrMercSpawnAvailable) + hasRabbitOrMercSpawnAvailable; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00523590, - &TribesState::updateAnimalHerdBehaviorState) - updateAnimalHerdBehaviorState; + &TribesState::updateTribeAnimalScatter) + updateTribeAnimalScatter; MACRO_FUNCTION_RESOLVER( int (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00523630, &TribesState::getNonDyingUnit) @@ -234,33 +234,33 @@ namespace Map { void (TribesState::*)(), false, Address::SHC_3BB0A8C1_0x005236A0, &TribesState::countDeerEfficiently) countDeerEfficiently; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00523730, - &TribesState::markTribeAsAnimalTribe) - markTribeAsAnimalTribe; + MACRO_FUNCTION_RESOLVER( + void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00523730, &TribesState::markTribeAsAnimal) + markTribeAsAnimal; MACRO_FUNCTION_RESOLVER( void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00523750, &TribesState::flagTribesOfType) flagTribesOfType; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00523790, - &TribesState::consumeFlaggedTribesOfType) - consumeFlaggedTribesOfType; + &TribesState::updateNTribesOfType) + updateNTribesOfType; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x005237F0, &TribesState::aiAssignNewUnitToTribe) aiAssignNewUnitToTribe; - MACRO_FUNCTION_RESOLVER(int (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00523920, - &TribesState::scatterTribeUnitsRandomly) - scatterTribeUnitsRandomly; + MACRO_FUNCTION_RESOLVER( + int (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00523920, &TribesState::disperseTribeToArea) + disperseTribeToArea; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00523A30, &TribesState::drawFlagsAndUnitDestinations) drawFlagsAndUnitDestinations; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, - Address::SHC_3BB0A8C1_0x00523EF0, &TribesState::upgradeTribeArrayLayoutForMapVersion) - upgradeTribeArrayLayoutForMapVersion; + MACRO_FUNCTION_RESOLVER(void (TribesState::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, + Address::SHC_3BB0A8C1_0x00523EF0, &TribesState::migrateTribesForMapVersion) + migrateTribesForMapVersion; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00523F70, &TribesState::updateTribeRallyFlags) @@ -279,8 +279,8 @@ namespace Map { getFirstUnitInTribeThatIsOnXTerrain; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00524140, - &TribesState::tribeHasActiveLaddermanUnit) - tribeHasActiveLaddermanUnit; + &TribesState::tribeHasDeployedLadder) + tribeHasDeployedLadder; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x005241C0, &TribesState::tribeContainsUnitThatCanClimb) @@ -290,7 +290,7 @@ namespace Map { &TribesState::selectionContainsHorses) selectionContainsHorses; - MACRO_FUNCTION_RESOLVER(UnitType (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x005242B0, + MACRO_FUNCTION_RESOLVER(UnitTypeInt (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x005242B0, &TribesState::getMajorityArcherTypeEuropeanOrArabian) getMajorityArcherTypeEuropeanOrArabian; @@ -298,41 +298,41 @@ namespace Map { Address::SHC_3BB0A8C1_0x00524340, &TribesState::applyMoveCommandOrRallyCommandToTribe) applyMoveCommandOrRallyCommandToTribe; - MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, SomeTribeBehaviorType), false, - Address::SHC_3BB0A8C1_0x005244D0, &TribesState::assignAttackTargetsForTribe) - assignAttackTargetsForTribe; + MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, SomeTribeBehaviorTypeInt), false, + Address::SHC_3BB0A8C1_0x005244D0, &TribesState::commandTribeAttackWave) + commandTribeAttackWave; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00524890, - &TribesState::stopTribeMovementAndCheckIdle) - stopTribeMovementAndCheckIdle; + &TribesState::stopTribeUnitsMoving) + stopTribeUnitsMoving; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00524930, - &TribesState::sortTribePathDestinationsByCost) - sortTribePathDestinationsByCost; + &TribesState::buildTribeDestinationQueue) + buildTribeDestinationQueue; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00524B30, - &TribesState::isTribeUnitBlockedByOtherUnit) - isTribeUnitBlockedByOtherUnit; + &TribesState::isTribeUnitBlocked) + isTribeUnitBlocked; MACRO_FUNCTION_RESOLVER( int (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00524BF0, &TribesState::getTribeAliveStatus) getTribeAliveStatus; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, uint, uint, uint, uint), false, - Address::SHC_3BB0A8C1_0x00524CA0, &TribesState::isTribePathToDestinationClear) - isTribePathToDestinationClear; + Address::SHC_3BB0A8C1_0x00524CA0, &TribesState::canTribeReachAreaUnobstructed) + canTribeReachAreaUnobstructed; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00524E20, - &TribesState::applyLadderDestructionToTribeUnits) - applyLadderDestructionToTribeUnits; + &TribesState::commandTribeClimbLadders) + commandTribeClimbLadders; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, BOOLEnum), false, Address::SHC_3BB0A8C1_0x00524EF0, &TribesState::applyUnitTopSpeedDelayBasedOnTribeSize) applyUnitTopSpeedDelayBasedOnTribeSize; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00525090, - &TribesState::playArcherCommandSpeech) - playArcherCommandSpeech; + &TribesState::playArcherOrderSpeech) + playArcherOrderSpeech; MACRO_FUNCTION_RESOLVER(BOOLEnum (TribesState::*)(int, int), false, Address::SHC_3BB0A8C1_0x005250B0, &TribesState::anyUnitsOfTribeAreOutsideCoverageOfPathFindingAlg) @@ -347,28 +347,28 @@ namespace Map { applyMovementDistanceToUnitsInTribeBasedOnUnitNumberInTribe; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00525210, - &TribesState::isTribeFreeOfTunnelingUnits) - isTribeFreeOfTunnelingUnits; + &TribesState::tribeHasNoFinishedTunneler) + tribeHasNoFinishedTunneler; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00525280, &TribesState::setTargetUnitForTribe) setTargetUnitForTribe; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int, undefined4), false, Address::SHC_3BB0A8C1_0x00525300, - &TribesState::setStateForAllTribeUnits) - setStateForAllTribeUnits; + &TribesState::setTribeUnitsState) + setTribeUnitsState; - MACRO_FUNCTION_RESOLVER( - void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00525370, &TribesState::standUpAllTribeUnits) - standUpAllTribeUnits; + MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00525370, + &TribesState::resetTribeUnitsToIdle) + resetTribeUnitsToIdle; MACRO_FUNCTION_RESOLVER(BOOLEnum (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x005253F0, &TribesState::allUnitsReachedTheirDestination) allUnitsReachedTheirDestination; - MACRO_FUNCTION_RESOLVER( - void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00525470, &TribesState::removeAllTribeUnits) - removeAllTribeUnits; + MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00525470, + &TribesState::makeTribeUnitsDisappear) + makeTribeUnitsDisappear; MACRO_FUNCTION_RESOLVER(BOOLEnum (TribesState::*)(uint), false, Address::SHC_3BB0A8C1_0x005254C0, &TribesState::addUnitToNewTribe) @@ -394,32 +394,32 @@ namespace Map { int (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x00525B70, &TribesState::popUnitFromTribe) popUnitFromTribe; - MACRO_FUNCTION_RESOLVER(dword (TribesState::*)(CommandBuildingType, uint, uint, int), false, + MACRO_FUNCTION_RESOLVER(dword (TribesState::*)(CommandBuildingTypeInt, uint, uint, int), false, Address::SHC_3BB0A8C1_0x00525BA0, &TribesState::createAnimal) createAnimal; - MACRO_FUNCTION_RESOLVER(BOOLEnum (TribesState::*)(int, int, UnitType), false, + MACRO_FUNCTION_RESOLVER(BOOLEnum (TribesState::*)(int, int, UnitTypeInt), false, Address::SHC_3BB0A8C1_0x00525F20, &TribesState::spawnDeerLionOrRabbit) spawnDeerLionOrRabbit; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x005260B0, &TribesState::trySpawnAdditionalWildlifeForTribe) - trySpawnAdditionalWildlifeForTribe; + Address::SHC_3BB0A8C1_0x005260B0, &TribesState::maybeSpawnTribeAnimal) + maybeSpawnTribeAnimal; MACRO_FUNCTION_RESOLVER( void (TribesState::*)(), false, Address::SHC_3BB0A8C1_0x005261B0, &TribesState::respawnDeer) respawnDeer; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(), false, Address::SHC_3BB0A8C1_0x005262A0, - &TribesState::spawnWildlifeOrMercAtAvailableSlot) - spawnWildlifeOrMercAtAvailableSlot; + MACRO_FUNCTION_RESOLVER( + void (TribesState::*)(), false, Address::SHC_3BB0A8C1_0x005262A0, &TribesState::spawnRabbitAtValidPoint) + spawnRabbitAtValidPoint; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, + MACRO_FUNCTION_RESOLVER(void (TribesState::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, Address::SHC_3BB0A8C1_0x00526370, &TribesState::upgradeMapTribesState) upgradeMapTribesState; - MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, uint, uint, int, int, UnitMatchSpeedEnum), false, - Address::SHC_3BB0A8C1_0x005263A0, &TribesState::giveTribeMoveInstruction) + MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, uint, uint, int, int, UnitMatchSpeedEnumInt), + false, Address::SHC_3BB0A8C1_0x005263A0, &TribesState::giveTribeMoveInstruction) giveTribeMoveInstruction; MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, uint, uint, undefined4), false, @@ -435,40 +435,40 @@ namespace Map { updateTribeUnitAssignments; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(), false, Address::SHC_3BB0A8C1_0x00527440, - &TribesState::spawnQueuedReinforcementWaves) - spawnQueuedReinforcementWaves; + &TribesState::spawnScenarioAttackWaves) + spawnScenarioAttackWaves; - MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, UnitInstructionType, int, int, int), false, + MACRO_FUNCTION_RESOLVER(undefined4 (TribesState::*)(int, UnitInstructionTypeInt, int, int, int), false, Address::SHC_3BB0A8C1_0x00527C80, &TribesState::giveTribeAnInstruction) giveTribeAnInstruction; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x0052A640, - &TribesState::moveTribeToNearbyClearTile) - moveTribeToNearbyClearTile; + &TribesState::scatterTribeToReachableSpot) + scatterTribeToReachableSpot; MACRO_FUNCTION_RESOLVER(int (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x0052A700, - &TribesState::moveTribeToIndexedNearbyTile) - moveTribeToIndexedNearbyTile; + &TribesState::moveTribeToScatterSpot) + moveTribeToScatterSpot; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x0052A7D0, - &TribesState::updateTribeCombatStanceBehavior) - updateTribeCombatStanceBehavior; + &TribesState::updateTribeAttackBehaviour) + updateTribeAttackBehaviour; MACRO_FUNCTION_RESOLVER( void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x0052AD50, &TribesState::processDeerMoving) processDeerMoving; MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x0052B110, - &TribesState::updateLionWolfTribeBehavior) - updateLionWolfTribeBehavior; + &TribesState::updatePredatorTribeAI) + updatePredatorTribeAI; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x0052B390, - &TribesState::updateRabbitTribeBehavior) - updateRabbitTribeBehavior; + MACRO_FUNCTION_RESOLVER( + void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x0052B390, &TribesState::updateRabbitTribeAI) + updateRabbitTribeAI; - MACRO_FUNCTION_RESOLVER(void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x0052B630, - &TribesState::updateCamelTribeBehavior) - updateCamelTribeBehavior; + MACRO_FUNCTION_RESOLVER( + void (TribesState::*)(int), false, Address::SHC_3BB0A8C1_0x0052B630, &TribesState::updateCamelTribeAI) + updateCamelTribeAI; MACRO_FUNCTION_RESOLVER( void (TribesState::*)(), false, Address::SHC_3BB0A8C1_0x0052B860, &TribesState::updateTribes) diff --git a/src/OpenSHC/Map/Units/TribesState.hpp b/src/OpenSHC/Map/Units/TribesState.hpp index edd13ccf..fb4754e3 100644 --- a/src/OpenSHC/Map/Units/TribesState.hpp +++ b/src/OpenSHC/Map/Units/TribesState.hpp @@ -8,30 +8,30 @@ #pragma once -#include "OpenSHC/Commands/CommandBuildingType.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" -#include "OpenSHC/Map/Units/Behavior/UnitStanceEnum.hpp" -#include "OpenSHC/Map/Units/Instructions/UnitMatchSpeedEnum.hpp" -#include "OpenSHC/Map/Units/SomeTribeBehaviorType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" +#include "OpenSHC/Map/Units/Behavior/UnitStanceEnumShort.hpp" +#include "OpenSHC/Map/Units/Instructions/UnitMatchSpeedEnumInt.hpp" +#include "OpenSHC/Map/Units/SomeTribeBehaviorTypeInt.hpp" #include "OpenSHC/Map/Units/Tribe.hpp" #include "OpenSHC/Map/Units/UnitIDMovementDistancePair.hpp" -#include "OpenSHC/Map/Units/UnitInstructionType.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Map/Units/UnitInstructionTypeInt.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace Units { - using OpenSHC::Commands::CommandBuildingType; - using OpenSHC::IO::PackagedFileMagicNum; - using OpenSHC::Map::Units::SomeTribeBehaviorType; + using OpenSHC::Commands::CommandBuildingTypeInt; + using OpenSHC::IO::PackagedFileMagicNumInt; + using OpenSHC::Map::Units::SomeTribeBehaviorTypeInt; using OpenSHC::Map::Units::Tribe; using OpenSHC::Map::Units::UnitIDMovementDistancePair; - using OpenSHC::Map::Units::UnitInstructionType; - using OpenSHC::Map::Units::UnitType; - using OpenSHC::Map::Units::Behavior::UnitStanceEnum; - using OpenSHC::Map::Units::Instructions::UnitMatchSpeedEnum; + using OpenSHC::Map::Units::UnitInstructionTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; + using OpenSHC::Map::Units::Behavior::UnitStanceEnumShort; + using OpenSHC::Map::Units::Instructions::UnitMatchSpeedEnumInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -45,7 +45,7 @@ namespace Map { undefined4 ALG_ResultX; // 0x0000000C length: 4 undefined4 ALG_ResultY; // 0x00000010 length: 4 undefined4 ALG_ResultTileIndex; // 0x00000014 length: 4 - undefined4 field6_0x18; // 0x00000018 length: 4 + undefined4 dwTribeMoveInstructionCounter; // 0x00000018 length: 4 BOOLEnum patrolButtonPressed; // 0x0000001C length: 4 undefined4 rallyCount; // 0x00000020 length: 4 undefined4 field9_0x24; // 0x00000024 length: 4 @@ -54,8 +54,8 @@ namespace Map { int someUnitIDArrayCount; // 0x000FB3B4 length: 4 int fcn_mtribe; // 0x000FB3B8 length: 4 int tribeCopiedToSlot0; // 0x000FB3BC length: 4 - int unknownX_01; // 0x000FB3C0 length: 4 - int unknownY_01; // 0x000FB3C4 length: 4 + int nEventMinimapTargetX; // 0x000FB3C0 length: 4 + int nEventMinimapTargetY; // 0x000FB3C4 length: 4 undefined1 padding_0xfb3c8[8]; // 0x000FB3C8 length: 8 private: @@ -67,7 +67,7 @@ namespace Map { ~TribesState() {}; // Constructor - TribesState* constructTribesState(); + TribesState* Constructor_TribesState(); void giveUnitSelectionMoveInstructionNoMatchedSpeed( undefined4 tribeID, undefined4 x, undefined4 y, undefined4 rallyBool, undefined4 doRally); @@ -76,35 +76,36 @@ namespace Map { void clearAllTribes(); - void reassignOwnerForTribesOfBehaviorType2(int param_1, int param_2); + void reassignTribeOwnership(int param_1, int param_2); void swapTribeOwnership(int param_1, int param_2); - undefined4 moveUnitToBehaviorTarget(int unitID, int param_2); + undefined4 assignTribeUnitTarget(int unitID, int param_2); - void predictUnitInterceptPosition(int targetUnitID, int unitID, int* unitCurrentX, int* unitCurrentY); + void projectPursuitInterceptAlongPathPlan( + int targetUnitID, int unitID, int* unitCurrentX, int* unitCurrentY); - UnitType getMajoritySelectedUnitType(undefined4 tribeID, int* maximumCount); + UnitTypeInt getMostCommonSelectedUnitType(undefined4 tribeID, int* maximumCount); - void playUnitSelectionSound(int param_1); + void playSelectedUnitOrderSpeech(int param_1); - void playUnitCombatSpeechForTarget(int selectionID, int unitID); + void playTribeSelectionSpeech(int selectionID, int unitID); - void playUnitSelectSpeech(undefined4 param_1); + void playUnitOrderSpeech0B(undefined4 param_1); - void playUnitMoveSpeech(undefined4 param_1); + void playAttackOrderSpeech(undefined4 param_1); - void playAttackCommandFeedback(int param_1); + void playSiegeOrEngineerOrderSpeech(int param_1); - void playPatrolCommandSpeech(undefined4 param_1); + void playUnitOrderSpeech29(undefined4 param_1); - void playTunnelerCommandSpeech(); + void playTunnelerDigSpeech(); - void playWorkCommandSpeech(undefined4 param_1); + void playUnitOrderSpeech24(undefined4 param_1); - void applyTribeBehaviorType(int attackWave, SomeTribeBehaviorType tribeBehaviorType); + void applyTribeBehaviorType(int attackWave, SomeTribeBehaviorTypeInt tribeBehaviorType); - void updatePeasantSeatingAtBuilding(int param_1, int param_2, int param_3); + void selectPeasantsAtBuilding(int param_1, int param_2, int param_3); uint tribeCorrespondsWithUID(int tribeID, uint tribeUID); @@ -138,27 +139,27 @@ namespace Map { void queueUnitStance(undefined4 stanceID, undefined4 param_2); - void setUnitStance(int tribeID, UnitStanceEnum unitStance); + void setUnitStance(int tribeID, UnitStanceEnumShort unitStance); void addRallyPoint(int section1016ID, short destinationX, short destinationY, int step); - void snapshotSelectionTribeAndComputeStance(int playerID); + void temporarilyStoreTribeIfAllNewlySelectedUnitsPartOfThisTribe_And_AlwaysRememberStance(int playerID); void importStoredInfoFromSlot0(undefined4 param_1, int tribeID); - void trimTribeToSize(undefined4 tribeID, int smallerSize); + void shrinkTribeToSize(undefined4 tribeID, int smallerSize); - void spawnUnitsForAITribe( - undefined4 param_1, int param_2, int param_3, int param_4, UnitType param_5, int param_6, int param_7); + void spawnUnitsForTribe(undefined4 param_1, int param_2, int param_3, int param_4, UnitTypeInt param_5, + int param_6, int param_7); dword spawnUnitsIntoNewTribe(undefined4 counter, int tribeType, int x, int y, int playerID, - UnitType unitType, UnitType unitType2, int unitType1Count, int unitType2Count); + UnitTypeInt unitType, UnitTypeInt unitType2, int unitType1Count, int unitType2Count); - dword createTribeWithSpawnedUnit(short param_1, undefined4 param_2, int param_3, int param_4, int param_5, - UnitType param_6, int param_7); + dword createTribeWithSpawn(short param_1, undefined4 param_2, int param_3, int param_4, int param_5, + UnitTypeInt param_6, int param_7); dword spawnUnitsAroundLocation( - undefined4 param_1, int aroundX, int aroundY, int playerID, UnitType unitType, int count); + undefined4 param_1, int aroundX, int aroundY, int playerID, UnitTypeInt unitType, int count); void storeDeerXAndYinMapInfo(undefined4 x, undefined4 y); @@ -168,30 +169,30 @@ namespace Map { void setCamelSpawnXY(undefined4 x, undefined4 y); - undefined4 findRecentOrSignpostSpawnLocation(uint* param_1, uint* param_2); + undefined4 findAiSpawnPoint(uint* param_1, uint* param_2); - undefined4 hasAvailableSpawnSlotForWildlifeOrMercs(); + undefined4 hasRabbitOrMercSpawnAvailable(); - void updateAnimalHerdBehaviorState(int tribeID); + void updateTribeAnimalScatter(int tribeID); int getNonDyingUnit(int tribeID); void countDeerEfficiently(); - void markTribeAsAnimalTribe(int param_1); + void markTribeAsAnimal(int param_1); void flagTribesOfType(int param_1); - void consumeFlaggedTribesOfType(int param_1, int param_2); + void updateNTribesOfType(int param_1, int param_2); void aiAssignNewUnitToTribe(int playerID, int unitType, int unitID); - int scatterTribeUnitsRandomly(int param_1); + int disperseTribeToArea(int param_1); void drawFlagsAndUnitDestinations(int tribeID); - void upgradeTribeArrayLayoutForMapVersion( - PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + void migrateTribesForMapVersion( + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); undefined4 updateTribeRallyFlags(int param_1); @@ -201,35 +202,35 @@ namespace Map { int getFirstUnitInTribeThatIsOnXTerrain(int selectionID); - undefined4 tribeHasActiveLaddermanUnit(int param_1); + undefined4 tribeHasDeployedLadder(int param_1); undefined4 tribeContainsUnitThatCanClimb(int param_1); BOOLEnum selectionContainsHorses(int param_1); - UnitType getMajorityArcherTypeEuropeanOrArabian(int selectionID); + UnitTypeInt getMajorityArcherTypeEuropeanOrArabian(int selectionID); undefined4 applyMoveCommandOrRallyCommandToTribe( int tribeID, undefined4 x1, undefined4 y1, undefined4 isRallying, int storeAsRallyPoint); - undefined4 assignAttackTargetsForTribe(int tribeID, SomeTribeBehaviorType targetType); + undefined4 commandTribeAttackWave(int tribeID, SomeTribeBehaviorTypeInt targetType); - undefined4 stopTribeMovementAndCheckIdle(int param_1); + undefined4 stopTribeUnitsMoving(int param_1); - void sortTribePathDestinationsByCost(int tribeID, int horseAndRamCount); + void buildTribeDestinationQueue(int tribeID, int horseAndRamCount); - undefined4 isTribeUnitBlockedByOtherUnit(int param_1); + undefined4 isTribeUnitBlocked(int param_1); int getTribeAliveStatus(int tribeID); - undefined4 isTribePathToDestinationClear( + undefined4 canTribeReachAreaUnobstructed( int param_1, uint param_2, uint param_3, uint param_4, uint param_5); - void applyLadderDestructionToTribeUnits(int param_1); + void commandTribeClimbLadders(int param_1); void applyUnitTopSpeedDelayBasedOnTribeSize(int tribeID, BOOLEnum param_2); - void playArcherCommandSpeech(int selectionID); + void playArcherOrderSpeech(int selectionID); BOOLEnum anyUnitsOfTribeAreOutsideCoverageOfPathFindingAlg(int tribeID, int algTileFlag); @@ -237,17 +238,17 @@ namespace Map { void applyMovementDistanceToUnitsInTribeBasedOnUnitNumberInTribe(int param_1); - undefined4 isTribeFreeOfTunnelingUnits(int param_1); + undefined4 tribeHasNoFinishedTunneler(int param_1); void setTargetUnitForTribe(int tribeID); - void setStateForAllTribeUnits(int param_1, undefined4 param_2); + void setTribeUnitsState(int param_1, undefined4 param_2); - void standUpAllTribeUnits(int param_1); + void resetTribeUnitsToIdle(int param_1); BOOLEnum allUnitsReachedTheirDestination(int tribeID); - void removeAllTribeUnits(int param_1); + void makeTribeUnitsDisappear(int param_1); BOOLEnum addUnitToNewTribe(uint unitID); @@ -261,21 +262,21 @@ namespace Map { int popUnitFromTribe(int tribeID); - dword createAnimal(CommandBuildingType animalType, uint x, uint y, int tile); + dword createAnimal(CommandBuildingTypeInt animalType, uint x, uint y, int tile); - BOOLEnum spawnDeerLionOrRabbit(int tribeID, int param_2, UnitType unitType); + BOOLEnum spawnDeerLionOrRabbit(int tribeID, int param_2, UnitTypeInt unitType); - undefined4 trySpawnAdditionalWildlifeForTribe(int param_1, int param_2, int param_3, int param_4); + undefined4 maybeSpawnTribeAnimal(int param_1, int param_2, int param_3, int param_4); void respawnDeer(); - void spawnWildlifeOrMercAtAvailableSlot(); + void spawnRabbitAtValidPoint(); void upgradeMapTribesState( - PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); - undefined4 giveTribeMoveInstruction( - int tribeID, uint x1, uint y1, int rallyBool, int storeAsRallyPoint, UnitMatchSpeedEnum speedMatching); + undefined4 giveTribeMoveInstruction(int tribeID, uint x1, uint y1, int rallyBool, int storeAsRallyPoint, + UnitMatchSpeedEnumInt speedMatching); undefined4 commandUnitsToLocation( int tribeID, uint destinationX, uint destinationY, undefined4 matchUnitSpeeds); @@ -284,24 +285,24 @@ namespace Map { void updateTribeUnitAssignments(); - void spawnQueuedReinforcementWaves(); + void spawnScenarioAttackWaves(); undefined4 giveTribeAnInstruction( - int tribeID, UnitInstructionType unitInstructionType, int id__x__tile, int unitUID__Y, int param_5); + int tribeID, UnitInstructionTypeInt unitInstructionType, int id__x__tile, int unitUID__Y, int param_5); - void moveTribeToNearbyClearTile(int param_1); + void scatterTribeToReachableSpot(int param_1); - int moveTribeToIndexedNearbyTile(int param_1); + int moveTribeToScatterSpot(int param_1); - void updateTribeCombatStanceBehavior(int tribeID); + void updateTribeAttackBehaviour(int tribeID); void processDeerMoving(int tribeID); - void updateLionWolfTribeBehavior(int param_1); + void updatePredatorTribeAI(int param_1); - void updateRabbitTribeBehavior(int param_1); + void updateRabbitTribeAI(int param_1); - void updateCamelTribeBehavior(int param_1); + void updateCamelTribeAI(int param_1); void updateTribes(); }; diff --git a/src/OpenSHC/Map/Units/TroopValueState.func.hpp b/src/OpenSHC/Map/Units/TroopValueState.func.hpp index 584bf92f..613bec4a 100644 --- a/src/OpenSHC/Map/Units/TroopValueState.func.hpp +++ b/src/OpenSHC/Map/Units/TroopValueState.func.hpp @@ -2,25 +2,27 @@ path: 'OpenSHC/Map/Units/TroopValueState.func.hpp' */ -#include "OpenSHC/AI/Tribes/AITribeType.hpp" -#include "OpenSHC/Commands/CommandBuildingType.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" -#include "OpenSHC/Map/Units/SomeTribeBehaviorType.hpp" +#include "OpenSHC/AI/Tribes/AITribeTypeShort.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" +#include "OpenSHC/Map/Units/SomeTribeBehaviorTypeInt.hpp" +#include "OpenSHC/Map/Units/SomeTribeBehaviorTypeShort.hpp" #include "OpenSHC/Map/Units/TroopValueState.hpp" -#include "OpenSHC/Map/Units/UnitInstructionType.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Map/Units/UnitInstructionTypeInt.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace Units { namespace TroopValueState_Func { - using OpenSHC::AI::Tribes::AITribeType; - using OpenSHC::Commands::CommandBuildingType; - using OpenSHC::IO::PackagedFileMagicNum; - using OpenSHC::Map::Units::SomeTribeBehaviorType; - using OpenSHC::Map::Units::UnitInstructionType; - using OpenSHC::Map::Units::UnitType; + using OpenSHC::AI::Tribes::AITribeTypeShort; + using OpenSHC::Commands::CommandBuildingTypeInt; + using OpenSHC::IO::PackagedFileMagicNumInt; + using OpenSHC::Map::Units::SomeTribeBehaviorTypeInt; + using OpenSHC::Map::Units::SomeTribeBehaviorTypeShort; + using OpenSHC::Map::Units::UnitInstructionTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER( @@ -28,56 +30,58 @@ namespace Map { clearAttackInfo; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00518180, - &TroopValueState::initializeAttackWaveSlot) - initializeAttackWaveSlot; + &TroopValueState::resetAttackAndAssignSignpost) + resetAttackAndAssignSignpost; MACRO_FUNCTION_RESOLVER(BOOLEnum (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x005182A0, &TroopValueState::searchTribeWithProperties) searchTribeWithProperties; MACRO_FUNCTION_RESOLVER(undefined4 (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x00518350, - &TroopValueState::isAttackWaveComplete) - isAttackWaveComplete; + &TroopValueState::areAllAttacksFinished) + areAllAttacksFinished; - MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int, int, SomeTribeBehaviorType), false, + MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int, int, SomeTribeBehaviorTypeInt), false, Address::SHC_3BB0A8C1_0x00518380, &TroopValueState::sortAttackInfoTribeIDArrayBasedOn) sortAttackInfoTribeIDArrayBasedOn; - MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(SomeTribeBehaviorType, SomeTribeBehaviorType, int, int), - false, Address::SHC_3BB0A8C1_0x00518870, &TroopValueState::applyTribeBehaviorTypes) + MACRO_FUNCTION_RESOLVER( + void (TroopValueState::*)(SomeTribeBehaviorTypeInt, SomeTribeBehaviorTypeInt, int, int), false, + Address::SHC_3BB0A8C1_0x00518870, &TroopValueState::applyTribeBehaviorTypes) applyTribeBehaviorTypes; - MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(SomeTribeBehaviorType, undefined4, short, short), false, - Address::SHC_3BB0A8C1_0x00518930, &TroopValueState::assignBehaviorTypeToNearbyTribes) - assignBehaviorTypeToNearbyTribes; + MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(SomeTribeBehaviorTypeShort, undefined4, short, short), + false, Address::SHC_3BB0A8C1_0x00518930, &TroopValueState::assignBehaviorToReachableTribes) + assignBehaviorToReachableTribes; - MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int, SomeTribeBehaviorType, undefined4, undefined4), - false, Address::SHC_3BB0A8C1_0x00518A10, &TroopValueState::assignBehaviorTypeAndLinkSupportTribe) - assignBehaviorTypeAndLinkSupportTribe; + MACRO_FUNCTION_RESOLVER( + void (TroopValueState::*)(int, int, SomeTribeBehaviorTypeShort, undefined4, undefined4), false, + Address::SHC_3BB0A8C1_0x00518A10, &TroopValueState::assignTribeBehaviorAndPairArchers) + assignTribeBehaviorAndPairArchers; MACRO_FUNCTION_RESOLVER(BOOLEnum (TroopValueState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00518BB0, &TroopValueState::isLessThanPercentageOfTribesInAttackDying) isLessThanPercentageOfTribesInAttackDying; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00518C50, &TroopValueState::renderAttackInfoDebugOverlay) - renderAttackInfoDebugOverlay; + Address::SHC_3BB0A8C1_0x00518C50, &TroopValueState::renderAIAttackDebugOverlay) + renderAIAttackDebugOverlay; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x00519310, - &TroopValueState::computeAttackWaveTroopComposition) - computeAttackWaveTroopComposition; + &TroopValueState::computeAttackWaveScaling) + computeAttackWaveScaling; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x00519690, - &TroopValueState::buildRallyPointsFromSiegeUnits) - buildRallyPointsFromSiegeUnits; + &TroopValueState::buildSiegeRallyPoints) + buildSiegeRallyPoints; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x00519790, - &TroopValueState::setRallyPointForLaddermenTribe) - setRallyPointForLaddermenTribe; + &TroopValueState::setLaddermanRallyPoint) + setLaddermanRallyPoint; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x00519850, - &TroopValueState::initializeAttackZoneSearch) - initializeAttackZoneSearch; + &TroopValueState::initAttackInfoStartZone) + initAttackInfoStartZone; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x005198C0, &TroopValueState::recomputeTargetedBuildingTilesArray) @@ -88,8 +92,8 @@ namespace Map { getTileInTargetedBuildingTiles; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00519990, - &TroopValueState::computeSiegeSpotScores) - computeSiegeSpotScores; + &TroopValueState::hack2related) + hack2related; MACRO_FUNCTION_RESOLVER(undefined4 (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x00519CC0, &TroopValueState::findEnemyWalls) @@ -100,8 +104,8 @@ namespace Map { setScale3; MACRO_FUNCTION_RESOLVER(undefined4 (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x00519E40, - &TroopValueState::findNearestAvailableScalePoint) - findNearestAvailableScalePoint; + &TroopValueState::findAttackInfoScaleTarget) + findAttackInfoScaleTarget; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00519F50, &TroopValueState::setTown2) @@ -112,28 +116,28 @@ namespace Map { findEnemyBuildingsClosestToUnit; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051A0C0, - &TroopValueState::countAvailablePeopleValueSlots) - countAvailablePeopleValueSlots; + &TroopValueState::countAvailablePeopleTargets) + countAvailablePeopleTargets; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051A100, - &TroopValueState::countAvailableLordValueSlots) - countAvailableLordValueSlots; + &TroopValueState::countAvailableLordTargets) + countAvailableLordTargets; MACRO_FUNCTION_RESOLVER(undefined4 (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051A140, &TroopValueState::calculateTile2PeoplValueClosestToUnit) calculateTile2PeoplValueClosestToUnit; MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x0051A220, - &TroopValueState::findEnemyLord) - findEnemyLord; + &TroopValueState::assignUnitToEnemyLordTarget) + assignUnitToEnemyLordTarget; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0051A2D0, &TroopValueState::setGate2) setGate2; MACRO_FUNCTION_RESOLVER(undefined4 (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051A330, - &TroopValueState::findEnemyTowersOrGates) - findEnemyTowersOrGates; + &TroopValueState::assignUnitToNearestEnemyGateTarget) + assignUnitToNearestEnemyGateTarget; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0051A550, &TroopValueState::setWide3) @@ -152,75 +156,76 @@ namespace Map { calculateTile2MoatValueClosestToUnit; MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051A8A0, - &TroopValueState::findNearestDiggableMoatPoint) - findNearestDiggableMoatPoint; + &TroopValueState::findMoatTileToDig) + findMoatTileToDig; MACRO_FUNCTION_RESOLVER(undefined4 (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051A920, - &TroopValueState::findTribeWithMoatAttackBehavior) - findTribeWithMoatAttackBehavior; + &TroopValueState::findMoatDiggingTribeTarget) + findMoatDiggingTribeTarget; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051A9A0, - &TroopValueState::countAvailableHighValueSlots) - countAvailableHighValueSlots; + &TroopValueState::countAvailableHighTargets) + countAvailableHighTargets; MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051A9F0, &TroopValueState::calculateHigh2ClostestToTribeTargetUnit) calculateHigh2ClostestToTribeTargetUnit; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051AB10, - &TroopValueState::countAvailableArcherValueSlots) - countAvailableArcherValueSlots; + &TroopValueState::countAvailableArcherTargets) + countAvailableArcherTargets; MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051AB60, &TroopValueState::calculateArch2ClosestToTribeTargetUnit) calculateArch2ClosestToTribeTargetUnit; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051ACE0, - &TroopValueState::expandAIZoneLayerStage1) - expandAIZoneLayerStage1; + &TroopValueState::recomputeAIApproachLayer1) + recomputeAIApproachLayer1; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051AE00, - &TroopValueState::expandAIZoneLayerStage2) - expandAIZoneLayerStage2; + &TroopValueState::recomputeAIApproachLayer2) + recomputeAIApproachLayer2; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051AE90, - &TroopValueState::expandAIZoneLayerStage3) - expandAIZoneLayerStage3; + &TroopValueState::recomputeAIApproachLayer4) + recomputeAIApproachLayer4; MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051AF20, - &TroopValueState::findOrReserveArcherPointSlot) - findOrReserveArcherPointSlot; + &TroopValueState::findArcherPointIndexForTile) + findArcherPointIndexForTile; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051AF70, - &TroopValueState::pruneStaleArcherPoints) - pruneStaleArcherPoints; + &TroopValueState::validateAttackInfoEntries) + validateAttackInfoEntries; MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051AFF0, - &TroopValueState::claimArcherAttackPoint) - claimArcherAttackPoint; + &TroopValueState::assignTribeArcherAttackPosition) + assignTribeArcherAttackPosition; MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051B0C0, &TroopValueState::getSupportPointIndex) getSupportPointIndex; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051B110, - &TroopValueState::pruneStaleSupportPoints) - pruneStaleSupportPoints; + &TroopValueState::validateSupportPointEntries) + validateSupportPointEntries; MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051B240, &TroopValueState::getSiegeIndexForTile) getSiegeIndexForTile; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051B290, - &TroopValueState::pruneStaleTentPoints) - pruneStaleTentPoints; + &TroopValueState::validateTentPointEntries) + validateTentPointEntries; - MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(int, CommandBuildingType), false, - Address::SHC_3BB0A8C1_0x0051B310, &TroopValueState::placeSiegeTentAtAttackAngle) - placeSiegeTentAtAttackAngle; + MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(int, CommandBuildingTypeInt), false, + Address::SHC_3BB0A8C1_0x0051B310, &TroopValueState::placeSiegeTentAndOrderConstruction) + placeSiegeTentAndOrderConstruction; - MACRO_FUNCTION_RESOLVER(BOOLEnum (TroopValueState::*)(int, CommandBuildingType, uint, UnitInstructionType), - false, Address::SHC_3BB0A8C1_0x0051B420, + MACRO_FUNCTION_RESOLVER( + BOOLEnum (TroopValueState::*)(int, CommandBuildingTypeInt, uint, UnitInstructionTypeInt), false, + Address::SHC_3BB0A8C1_0x0051B420, &TroopValueState::placeSiegeTentOrTunnelAtSuitableLocationAndAssignEngineers) placeSiegeTentOrTunnelAtSuitableLocationAndAssignEngineers; @@ -233,8 +238,8 @@ namespace Map { clearAIInfoLayerOutsideStartZone; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051B6C0, - &TroopValueState::playAttackAlarmSound) - playAttackAlarmSound; + &TroopValueState::playAttackStartHorn) + playAttackStartHorn; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0051B710, &TroopValueState::placeSiegeTentsAndAssignEngineers) @@ -244,25 +249,25 @@ namespace Map { &TroopValueState::placeTunnelForEveryTunneler) placeTunnelForEveryTunneler; - MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(undefined4, int, AITribeType, undefined4), false, + MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(undefined4, int, AITribeTypeShort, undefined4), false, Address::SHC_3BB0A8C1_0x0051BC70, &TroopValueState::addUnitToNewTribe) addUnitToNewTribe; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051BD10, - &TroopValueState::exitSiegeEquipmentForWave) - exitSiegeEquipmentForWave; + &TroopValueState::commandSiegeCrewsExitEquipment) + commandSiegeCrewsExitEquipment; - MACRO_FUNCTION_RESOLVER(BOOLEnum (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051BDE0, + MACRO_FUNCTION_RESOLVER(undefined (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051BDE0, &TroopValueState::getPlayerNot1AndHasKeep) getPlayerNot1AndHasKeep; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051BE60, - &TroopValueState::registerSpottedEnemyTile) - registerSpottedEnemyTile; + &TroopValueState::addAttackTargetTile) + addAttackTargetTile; MACRO_FUNCTION_RESOLVER(BOOLEnum (TroopValueState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0051BF20, - &TroopValueState::shouldLightPitchBasedOnTroopValue) - shouldLightPitchBasedOnTroopValue; + &TroopValueState::shouldLightPitchBecauseOfTroopValue) + shouldLightPitchBecauseOfTroopValue; MACRO_FUNCTION_RESOLVER(undefined4 (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051BF70, &TroopValueState::giveLightPitchInstructionToUnitClosestToPitch) @@ -273,16 +278,16 @@ namespace Map { lightPitchIfNecessary; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051C2D0, - &TroopValueState::updateArcherBrazierProximityFlags) - updateArcherBrazierProximityFlags; + &TroopValueState::updateArcherBrazierFlags) + updateArcherBrazierFlags; - MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(UnitType), false, Address::SHC_3BB0A8C1_0x0051C360, + MACRO_FUNCTION_RESOLVER(int (TroopValueState::*)(UnitTypeInt), false, Address::SHC_3BB0A8C1_0x0051C360, &TroopValueState::getValueOfTroopType) getValueOfTroopType; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051C470, - &TroopValueState::queueOilThrowForIdleArchers) - queueOilThrowForIdleArchers; + &TroopValueState::aiEngineersThrowOil) + aiEngineersThrowOil; MACRO_FUNCTION_RESOLVER(undefined4 (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051C570, &TroopValueState::ifNecessaryThrowOilAutomatically) @@ -293,52 +298,52 @@ namespace Map { commandUnitsToMoveToKeep; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051CA50, - &TroopValueState::collectArcherUnitsByLocation) - collectArcherUnitsByLocation; + &TroopValueState::collectAIArchersForRepositioning) + collectAIArchersForRepositioning; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051CBD0, - &TroopValueState::redeployArchersToDefensivePositions) - redeployArchersToDefensivePositions; + &TroopValueState::refillWallArcherPositions) + refillWallArcherPositions; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051CCB0, &TroopValueState::assignMacemenAndKnightsNotFromPlayer1ToTribes) assignMacemenAndKnightsNotFromPlayer1ToTribes; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051CF90, - &TroopValueState::trySendMacemenTribeToAttack) - trySendMacemenTribeToAttack; + &TroopValueState::dispatchAggressiveMacemenTribe) + dispatchAggressiveMacemenTribe; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051D020, - &TroopValueState::trySendKnightTribeToAttack) - trySendKnightTribeToAttack; + &TroopValueState::dispatchAggressiveKnightTribe) + dispatchAggressiveKnightTribe; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051D0D0, &TroopValueState::sendAttackingPatrolTribeToComputedDestination) sendAttackingPatrolTribeToComputedDestination; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051D1C0, - &TroopValueState::moveTribeToReachableNearbyTile) - moveTribeToReachableNearbyTile; + &TroopValueState::sendTribeAlongAttackPath) + sendTribeAlongAttackPath; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051D2B0, - &TroopValueState::decideAndExecuteTribeAttackAction) - decideAndExecuteTribeAttackAction; + &TroopValueState::decideTribeAttackTarget) + decideTribeAttackTarget; MACRO_FUNCTION_RESOLVER(undefined4 (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051D450, - &TroopValueState::moveTribeToNearbyGatehouse) - moveTribeToNearbyGatehouse; + &TroopValueState::commandTribeMoveToNearestEnemyGatehouse) + commandTribeMoveToNearestEnemyGatehouse; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051D510, &TroopValueState::moveTowardsParticularUnits) moveTowardsParticularUnits; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051D690, - &TroopValueState::advanceAttackWaveStaging) - advanceAttackWaveStaging; + &TroopValueState::dispatchAttackWavePeopleAssault) + dispatchAttackWavePeopleAssault; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051D730, - &TroopValueState::updateActiveAttackWaveState) - updateActiveAttackWaveState; + &TroopValueState::processSiegeRetreatWave) + processSiegeRetreatWave; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051D7F0, &TroopValueState::updateTribeBehaviorBasedOnBehaviorType) @@ -349,20 +354,16 @@ namespace Map { recomputeAttackInfo; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051F340, - &TroopValueState::scanForArcherPoints) - scanForArcherPoints; + &TroopValueState::computeAIArcherAttackPoints) + computeAIArcherAttackPoints; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051F4B0, - &TroopValueState::scanForSupportPoints) - scanForSupportPoints; + &TroopValueState::computeAISupportPoints) + computeAISupportPoints; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051F5C0, - &TroopValueState::scanForSiegeTentPoints) - scanForSiegeTentPoints; - - MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051F950, - &TroopValueState::processSpottedEnemyTiles) - processSpottedEnemyTiles; + &TroopValueState::computeAISiegeTentPoints) + computeAISiegeTentPoints; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051F9C0, &TroopValueState::recountTotalTroopValue) @@ -372,7 +373,7 @@ namespace Map { &TroopValueState::recomputeTotalTroopValueOfTroopsNearKeep) recomputeTotalTroopValueOfTroopsNearKeep; - MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, + MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, Address::SHC_3BB0A8C1_0x0051FB80, &TroopValueState::uselessFunction) uselessFunction; @@ -380,13 +381,9 @@ namespace Map { &TroopValueState::recountAttackTroopValue) recountAttackTroopValue; - MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051FE80, - &TroopValueState::updateAttackInfoTick) - updateAttackInfoTick; - MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x0051FF90, - &TroopValueState::initializeOrAdvanceAttackWave) - initializeOrAdvanceAttackWave; + &TroopValueState::startAttackWave) + startAttackWave; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int, int), false, Address::SHC_3BB0A8C1_0x005200A0, &TroopValueState::aiRecomputeAttacks2) @@ -397,18 +394,18 @@ namespace Map { aiRecomputeAttacks; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x00520450, - &TroopValueState::updateInProgressAttackWave) - updateInProgressAttackWave; + &TroopValueState::processSiegeAttackWave) + processSiegeAttackWave; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x005205A0, - &TroopValueState::executeAttackWaveTargetAssignment) - executeAttackWaveTargetAssignment; + &TroopValueState::runAiAttackWaveLogic) + runAiAttackWaveLogic; MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(int), false, Address::SHC_3BB0A8C1_0x00520CD0, - &TroopValueState::executeDelayedAttackWaveTargetAssignment) - executeDelayedAttackWaveTargetAssignment; + &TroopValueState::runAiAttackWaveLogicSimple) + runAiAttackWaveLogicSimple; - MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x00520F70, + MACRO_FUNCTION_RESOLVER(void (TroopValueState::*)(), false, Address::SHC_3BB0A8C1_0x0051F950, &TroopValueState::aiControlNonSkirmishUnitMovement) aiControlNonSkirmishUnitMovement; diff --git a/src/OpenSHC/Map/Units/TroopValueState.hpp b/src/OpenSHC/Map/Units/TroopValueState.hpp index 745758ed..01bb11fd 100644 --- a/src/OpenSHC/Map/Units/TroopValueState.hpp +++ b/src/OpenSHC/Map/Units/TroopValueState.hpp @@ -8,26 +8,28 @@ #pragma once -#include "OpenSHC/AI/Tribes/AITribeType.hpp" -#include "OpenSHC/Commands/CommandBuildingType.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" +#include "OpenSHC/AI/Tribes/AITribeTypeShort.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" #include "OpenSHC/Map/AttackInfo.hpp" -#include "OpenSHC/Map/Units/SomeTribeBehaviorType.hpp" -#include "OpenSHC/Map/Units/UnitInstructionType.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Map/Units/SomeTribeBehaviorTypeInt.hpp" +#include "OpenSHC/Map/Units/SomeTribeBehaviorTypeShort.hpp" +#include "OpenSHC/Map/Units/UnitInstructionTypeInt.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Map { namespace Units { - using OpenSHC::AI::Tribes::AITribeType; - using OpenSHC::Commands::CommandBuildingType; - using OpenSHC::IO::PackagedFileMagicNum; + using OpenSHC::AI::Tribes::AITribeTypeShort; + using OpenSHC::Commands::CommandBuildingTypeInt; + using OpenSHC::IO::PackagedFileMagicNumInt; using OpenSHC::Map::AttackInfo; - using OpenSHC::Map::Units::SomeTribeBehaviorType; - using OpenSHC::Map::Units::UnitInstructionType; - using OpenSHC::Map::Units::UnitType; + using OpenSHC::Map::Units::SomeTribeBehaviorTypeInt; + using OpenSHC::Map::Units::SomeTribeBehaviorTypeShort; + using OpenSHC::Map::Units::UnitInstructionTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -49,67 +51,67 @@ namespace Map { ~TroopValueState() {}; // Constructor - TroopValueState* constructTroopValueState(); + TroopValueState* Constructor_TroopValueState(); void clearAttackInfo(); - void initializeAttackWaveSlot(int param_1, int param_2); + void resetAttackAndAssignSignpost(int param_1, int param_2); BOOLEnum searchTribeWithProperties(int param_1); - undefined4 isAttackWaveComplete(); + undefined4 areAllAttacksFinished(); - void sortAttackInfoTribeIDArrayBasedOn( - int attackWave, int shrinkSize, int tribeSizeSumLimit, SomeTribeBehaviorType someTribeTypeIdentifier); + void sortAttackInfoTribeIDArrayBasedOn(int attackWave, int shrinkSize, int tribeSizeSumLimit, + SomeTribeBehaviorTypeInt someTribeTypeIdentifier); - void applyTribeBehaviorTypes( - SomeTribeBehaviorType tribeBehaviorType, SomeTribeBehaviorType tribeBehaviorType2, int off1, int off2); + void applyTribeBehaviorTypes(SomeTribeBehaviorTypeInt tribeBehaviorType, + SomeTribeBehaviorTypeInt tribeBehaviorType2, int off1, int off2); - void assignBehaviorTypeToNearbyTribes( - SomeTribeBehaviorType param_1, undefined4 param_2, short param_3, short param_4); + void assignBehaviorToReachableTribes( + SomeTribeBehaviorTypeShort param_1, undefined4 param_2, short param_3, short param_4); - void assignBehaviorTypeAndLinkSupportTribe( - int param_1, int param_2, SomeTribeBehaviorType param_3, undefined4 param_4, undefined4 param_5); + void assignTribeBehaviorAndPairArchers( + int param_1, int param_2, SomeTribeBehaviorTypeShort param_3, undefined4 param_4, undefined4 param_5); BOOLEnum isLessThanPercentageOfTribesInAttackDying(int attackID, int leDyingPerc); - void renderAttackInfoDebugOverlay(int x, int y, int width, int height); + void renderAIAttackDebugOverlay(int x, int y, int width, int height); - void computeAttackWaveTroopComposition(); + void computeAttackWaveScaling(); - void buildRallyPointsFromSiegeUnits(int tribeID); + void buildSiegeRallyPoints(int tribeID); - void setRallyPointForLaddermenTribe(int param_1); + void setLaddermanRallyPoint(int param_1); - void initializeAttackZoneSearch(int param_1); + void initAttackInfoStartZone(int param_1); void recomputeTargetedBuildingTilesArray(int playerID); BOOLEnum getTileInTargetedBuildingTiles(int tile); - void computeSiegeSpotScores(int attackedPlayerID, int attackingPlayerID); + void hack2related(int attackedPlayerID, int attackingPlayerID); undefined4 findEnemyWalls(int unitID); void setScale3(int one, int playerID); - undefined4 findNearestAvailableScalePoint(int unitID); + undefined4 findAttackInfoScaleTarget(int unitID); void setTown2(int param_1, int playerID); undefined4 findEnemyBuildingsClosestToUnit(int unitID); - void countAvailablePeopleValueSlots(int param_1); + void countAvailablePeopleTargets(int param_1); - void countAvailableLordValueSlots(int param_1); + void countAvailableLordTargets(int param_1); undefined4 calculateTile2PeoplValueClosestToUnit(int unitID); - int findEnemyLord(undefined4 param_1); + int assignUnitToEnemyLordTarget(undefined4 param_1); void setGate2(int param_1, int param_2); - undefined4 findEnemyTowersOrGates(int unitID); + undefined4 assignUnitToNearestEnemyGateTarget(int unitID); void setWide3(int param_1, int param_2); @@ -119,134 +121,131 @@ namespace Map { undefined4 calculateTile2MoatValueClosestToUnit(int unitID); - int findNearestDiggableMoatPoint(int param_1); + int findMoatTileToDig(int param_1); - undefined4 findTribeWithMoatAttackBehavior(); + undefined4 findMoatDiggingTribeTarget(); - void countAvailableHighValueSlots(int param_1); + void countAvailableHighTargets(int param_1); int calculateHigh2ClostestToTribeTargetUnit(int tribeID); - void countAvailableArcherValueSlots(int param_1); + void countAvailableArcherTargets(int param_1); int calculateArch2ClosestToTribeTargetUnit(int tribeID); - void expandAIZoneLayerStage1(); + void recomputeAIApproachLayer1(); - void expandAIZoneLayerStage2(); + void recomputeAIApproachLayer2(); - void expandAIZoneLayerStage3(); + void recomputeAIApproachLayer4(); - int findOrReserveArcherPointSlot(int param_1); + int findArcherPointIndexForTile(int param_1); - void pruneStaleArcherPoints(); + void validateAttackInfoEntries(); - int claimArcherAttackPoint(int param_1); + int assignTribeArcherAttackPosition(int param_1); int getSupportPointIndex(int tile); - void pruneStaleSupportPoints(); + void validateSupportPointEntries(); int getSiegeIndexForTile(int tile); - void pruneStaleTentPoints(); + void validateTentPointEntries(); - int placeSiegeTentAtAttackAngle(int tribeID, CommandBuildingType commandBuildingType); + int placeSiegeTentAndOrderConstruction(int tribeID, CommandBuildingTypeInt commandBuildingType); BOOLEnum placeSiegeTentOrTunnelAtSuitableLocationAndAssignEngineers(int tribeID, - CommandBuildingType commandBuildingType, uint strategicDistance, UnitInstructionType instruction); + CommandBuildingTypeInt commandBuildingType, uint strategicDistance, UnitInstructionTypeInt instruction); int placeTunnelEntrances(int tribeID); void clearAIInfoLayerOutsideStartZone(); - void playAttackAlarmSound(); + void playAttackStartHorn(); void placeSiegeTentsAndAssignEngineers(int param_1, int param_2); void placeTunnelForEveryTunneler(int attackWave); - int addUnitToNewTribe(undefined4 unitID, int attackWave, AITribeType tribeType, undefined4 playerID); + int addUnitToNewTribe(undefined4 unitID, int attackWave, AITribeTypeShort tribeType, undefined4 playerID); - void exitSiegeEquipmentForWave(int wave); + void commandSiegeCrewsExitEquipment(int wave); - BOOLEnum getPlayerNot1AndHasKeep(int playerID); + undefined getPlayerNot1AndHasKeep(); - void registerSpottedEnemyTile(int param_1); + void addAttackTargetTile(int param_1); - BOOLEnum shouldLightPitchBasedOnTroopValue(int tile, int playerID); + BOOLEnum shouldLightPitchBecauseOfTroopValue(int tile, int playerID); undefined4 giveLightPitchInstructionToUnitClosestToPitch(int tile); void lightPitchIfNecessary(int unitID, int unitID2); - void updateArcherBrazierProximityFlags(); + void updateArcherBrazierFlags(); - int getValueOfTroopType(UnitType unitType); + int getValueOfTroopType(UnitTypeInt unitType); - void queueOilThrowForIdleArchers(); + void aiEngineersThrowOil(); undefined4 ifNecessaryThrowOilAutomatically(int param_1); void commandUnitsToMoveToKeep(); - void collectArcherUnitsByLocation(); + void collectAIArchersForRepositioning(); - void redeployArchersToDefensivePositions(); + void refillWallArcherPositions(); void assignMacemenAndKnightsNotFromPlayer1ToTribes(); - void trySendMacemenTribeToAttack(); + void dispatchAggressiveMacemenTribe(); - void trySendKnightTribeToAttack(); + void dispatchAggressiveKnightTribe(); void sendAttackingPatrolTribeToComputedDestination(int tribeID); - void moveTribeToReachableNearbyTile(int param_1); + void sendTribeAlongAttackPath(int param_1); - void decideAndExecuteTribeAttackAction(int tribeID); + void decideTribeAttackTarget(int tribeID); - undefined4 moveTribeToNearbyGatehouse(int param_1); + undefined4 commandTribeMoveToNearestEnemyGatehouse(int param_1); void moveTowardsParticularUnits(int param_1); - void advanceAttackWaveStaging(int param_1); + void dispatchAttackWavePeopleAssault(int param_1); - void updateActiveAttackWaveState(int attackWave); + void processSiegeRetreatWave(int attackWave); void updateTribeBehaviorBasedOnBehaviorType(int tribeID); void recomputeAttackInfo(int playerID, int attackedPlayerID); - void scanForArcherPoints(); + void computeAIArcherAttackPoints(); - void scanForSupportPoints(); + void computeAISupportPoints(); - void scanForSiegeTentPoints(); - - void processSpottedEnemyTiles(); + void computeAISiegeTentPoints(); void recountTotalTroopValue(); void recomputeTotalTroopValueOfTroopsNearKeep(); - void uselessFunction(PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + void uselessFunction( + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); void recountAttackTroopValue(int param_1); - void updateAttackInfoTick(); - - void initializeOrAdvanceAttackWave(int param_1); + void startAttackWave(int param_1); void aiRecomputeAttacks2(int param_1, int param_2); void aiRecomputeAttacks(undefined4 param_1, int param_2); - void updateInProgressAttackWave(int attackID); + void processSiegeAttackWave(int attackID); - void executeAttackWaveTargetAssignment(int param_1); + void runAiAttackWaveLogic(int param_1); - void executeDelayedAttackWaveTargetAssignment(int param_1); + void runAiAttackWaveLogicSimple(int param_1); void aiControlNonSkirmishUnitMovement(); }; diff --git a/src/OpenSHC/Map/Units/Unit.hpp b/src/OpenSHC/Map/Units/Unit.hpp index 52b84df2..be230179 100644 --- a/src/OpenSHC/Map/Units/Unit.hpp +++ b/src/OpenSHC/Map/Units/Unit.hpp @@ -43,13 +43,13 @@ namespace Map { short drawWidth; // 0x00000018 length: 2 short drawHeight1; // 0x0000001A length: 2 undefined1 padding_0x1c[2]; // 0x0000001C length: 2 - short spriteWidthUnk; // 0x0000001E length: 2 - short spriteHeightUnk; // 0x00000020 length: 2 + short nSpriteWidth; // 0x0000001E length: 2 + short nSpriteHeight; // 0x00000020 length: 2 short drawXOffset; // 0x00000022 length: 2 short someDrawYOffset; // 0x00000024 length: 2 short orientationRelatedPositionX; // 0x00000026 length: 2 short orientationRelatedPositionY; // 0x00000028 length: 2 - short field22_0x2a; // 0x0000002A length: 2 + short renderSpriteBaseOffset; // 0x0000002A length: 2 int unknownV; // 0x0000002C length: 4 int field_0x30_animRelated; // 0x00000030 length: 4 short isSelected; // 0x00000034 length: 2 @@ -63,15 +63,15 @@ namespace Map { undefined1 padding_0x4c[4]; // 0x0000004C length: 4 BOOLEnum animationCycleNumberHasJustIncremented; // 0x00000050 length: 4 short facingDirectionMapOrientationCorrected; // 0x00000054 length: 2 - short field41_0x56; // 0x00000056 length: 2 - short field42_0x58; // 0x00000058 length: 2 + short nPeasantSubState; // 0x00000056 length: 2 + short nTribeInstructionPending; // 0x00000058 length: 2 short field43_0x5a; // 0x0000005A length: 2 - int field44_0x5c; // 0x0000005C length: 4 - int field45_0x60; // 0x00000060 length: 4 - int field46_0x64; // 0x00000064 length: 4 + int nClimbRenderOffset; // 0x0000005C length: 4 + int ladderExitSavedValue; // 0x00000060 length: 4 + int climbState; // 0x00000064 length: 4 int vanish; // 0x00000068 length: 4 - short field48_0x6c; // 0x0000006C length: 2 - short field49_0x6e; // 0x0000006E length: 2 + short unitControlOrderMode; // 0x0000006C length: 2 + short unitControlValue; // 0x0000006E length: 2 byte negativeHeight; // 0x00000070 length: 1 byte antelopeBasedRngValue; // 0x00000071 length: 1 undefined1 padding_0x72[2]; // 0x00000072 length: 2 @@ -83,12 +83,12 @@ namespace Map { undefined1 heightDiv10; // 0x00000082 length: 1 undefined1 padding_0x83[1]; // 0x00000083 length: 1 short field61_0x84; // 0x00000084 length: 2 - short field62_0x86; // 0x00000086 length: 2 + short renderPosOffsetY; // 0x00000086 length: 2 short field63_0x88; // 0x00000088 length: 2 short drawYOffset; // 0x0000008A length: 2 UnitLogicStateShort logicalState; // 0x0000008C length: 2 UnitTypeShort unitType; // 0x0000008E length: 2 - short field67_0x90; // 0x00000090 length: 2 + short nIsAttackingTarget; // 0x00000090 length: 2 undefined1 padding_0x92[2]; // 0x00000092 length: 2 short moveRelatedFlag; // 0x00000094 length: 2 short owner; // 0x00000096 length: 2 @@ -112,17 +112,17 @@ namespace Map { short destinationYPosition; // 0x000000CA length: 2 short ladderExitXPosition; // 0x000000CC length: 2 short ladderExitYPosition; // 0x000000CE length: 2 - short field103_0xd0; // 0x000000D0 length: 2 - short field104_0xd2; // 0x000000D2 length: 2 + short nDamageProcessValue; // 0x000000D0 length: 2 + short nCatapultStateCounter; // 0x000000D2 length: 2 int tile; // 0x000000D4 length: 4 int destinationTilePosition; // 0x000000D8 length: 4 int previousTilePosition; // 0x000000DC length: 4 short mimicCurrentXPosition; // 0x000000E0 length: 2 short mimicCurrentYPosition; // 0x000000E2 length: 2 int nextTileUnk; // 0x000000E4 length: 4 - int field111_0xe8; // 0x000000E8 length: 4 - short destinationX_2Unk; // 0x000000EC length: 2 - short destinationY_2Unk; // 0x000000EE length: 2 + int nPositionUpdatedFlag; // 0x000000E8 length: 4 + short nDestinationX; // 0x000000EC length: 2 + short nDestinationY; // 0x000000EE length: 2 short _someX_2; // 0x000000F0 length: 2 short _someY_2; // 0x000000F2 length: 2 short moveDelay; // 0x000000F4 length: 2 @@ -143,9 +143,9 @@ namespace Map { ushort nextUnitOnTheSameTile; // 0x000002A2 length: 2 short isSelectable_OR_matchTime; // 0x000002A4 length: 2 short closestEnemyMicroDistance; // 0x000002A6 length: 2 - short field135_0x2a8; // 0x000002A8 length: 2 + short nDestinationPathZone; // 0x000002A8 length: 2 short targetShootRelated; // 0x000002AA length: 2 - short field137_0x2ac; // 0x000002AC length: 2 + short nWorkerProducingFlag; // 0x000002AC length: 2 short graphicSize; // 0x000002AE length: 2 int animationCycleNumber; // 0x000002B0 length: 4 short facingDirection; // 0x000002B4 length: 2 @@ -155,7 +155,7 @@ namespace Map { short stateBasedSpeed; // 0x000002BE length: 2 UnitStateUnion state; // 0x000002C0 length: 2 UnitStateShort cachedState; // 0x000002C2 length: 2 - short field150_0x2c4; // 0x000002C4 length: 2 + short nArcherShootState; // 0x000002C4 length: 2 UnitStateUnion state_3; // 0x000002C6 length: 2 short updateTickTracker; // 0x000002C8 length: 2 UnitTypeShort unitTypeToChangeInto; // 0x000002CA length: 2 @@ -178,12 +178,12 @@ namespace Map { int workRelatedC; // 0x000002F4 length: 4 int av; // 0x000002F8 length: 4 short working; // 0x000002FC length: 2 - short field173_0x2fe; // 0x000002FE length: 2 - short field174_0x300; // 0x00000300 length: 2 + short nIsRestingFlag; // 0x000002FE length: 2 + short nUnitRestState; // 0x00000300 length: 2 short unknownDigMoatOrWallAttackFlag1015; // 0x00000302 length: 2 short productivityMod100; // 0x00000304 length: 2 short productivityDiv100; // 0x00000306 length: 2 - short field178_0x308; // 0x00000308 length: 2 + short nFadeBehindStructureState; // 0x00000308 length: 2 short idle; // 0x0000030A length: 2 short banked; // 0x0000030C length: 2 short target; // 0x0000030E length: 2 @@ -193,7 +193,7 @@ namespace Map { int manningEngineerUIDRef; // 0x0000031C length: 4 undefined1 padding_0x320[12]; // 0x00000320 length: 12 byte unknownTestAgainst0_1; // 0x0000032C length: 1 - char field199_0x32d; // 0x0000032D length: 1 + char cRabbitState; // 0x0000032D length: 1 byte disappearFadeAlphaCountdown; // 0x0000032E length: 1 byte engineerManningSiegeStateRef_checkType; // 0x0000032F length: 1 int someMatchTimeVariable; // 0x00000330 length: 4 @@ -203,18 +203,18 @@ namespace Map { short targetX_2; // 0x0000033A length: 2 short targetY_2; // 0x0000033C length: 2 short attackedUnitID; // 0x0000033E length: 2 - int field210_0x340; // 0x00000340 length: 4 + int nMeleeTargetRef; // 0x00000340 length: 4 short shootTargetedUnit; // 0x00000344 length: 2 short movementType_OR_targetUnitID; // 0x00000346 length: 2 short workplaceBuildingTilePosition; // 0x00000348 length: 2 short calculatedMovementSpeed; // 0x0000034A length: 2 short movementSpeed; // 0x0000034C length: 2 undefined1 padding_0x34e[2]; // 0x0000034E length: 2 - int field218_0x350; // 0x00000350 length: 4 - int field219_0x354; // 0x00000354 length: 4 + int nUnitTickStamp; // 0x00000350 length: 4 + int nUnitTickStampAlt; // 0x00000354 length: 4 short unknownTestAgainst0_2; // 0x00000358 length: 2 short distanceToEnemyUnitLadders; // 0x0000035A length: 2 - short field222_0x35c; // 0x0000035C length: 2 + short nClimbingStateFlag; // 0x0000035C length: 2 short climbingDirection; // 0x0000035E length: 2 short unitCanClimb; // 0x00000360 length: 2 short stoneAmmunition; // 0x00000362 length: 2 @@ -226,10 +226,10 @@ namespace Map { short isDisappearingUnk; // 0x00000372 length: 2 DestinationNeededEnumShort destinationNeeded; // 0x00000374 length: 2 short unknownStateCopyClimbRelated; // 0x00000376 length: 2 - short field234_0x378; // 0x00000378 length: 2 - short field235_0x37a; // 0x0000037A length: 2 - short field236_0x37c; // 0x0000037C length: 2 - short field237_0x37e; // 0x0000037E length: 2 + short nActiveMovementDirection; // 0x00000378 length: 2 + short nMoveSubTileCounter; // 0x0000037A length: 2 + short nMoveSubTileCounter2; // 0x0000037C length: 2 + short nFarmerWorkFlag; // 0x0000037E length: 2 short substate; // 0x00000380 length: 2 undefined1 padding_0x382[2]; // 0x00000382 length: 2 uint fixedRng; // 0x00000384 length: 4 @@ -241,7 +241,7 @@ namespace Map { short resourcesGatheredCount; // 0x00000394 length: 2 short workerIndex; // 0x00000396 length: 2 short buildingID; // 0x00000398 length: 2 - short field253_0x39a; // 0x0000039A length: 2 + short nShootTargetFlag; // 0x0000039A length: 2 UnitInstructionTypeShort targetingType; // 0x0000039C length: 2 short targetedUnitID__OR__engineerMannedSiegeEngineRef; // 0x0000039E length: 2 int targetedUnitUIDUnk_OR_someAppearTileUnk_OR_buildingUID_OR_pitchDitchUID_OR_entityUID; // 0x000003A0 @@ -251,29 +251,29 @@ namespace Map { uint targetedBuildingTile; // 0x000003A8 length: 4 short lookForEnemy; // 0x000003AC length: 2 short attackedBy; // 0x000003AE length: 2 - short field263_0x3b0; // 0x000003B0 length: 2 + short instructionActiveFlag; // 0x000003B0 length: 2 short huntedBy; // 0x000003B2 length: 2 short digTileX__OR__countCurrentlyManningEnginers__OR__forCowsRandomBelow300; // 0x000003B4 length: 2 short digTileY__OR__countLifeCycleEngineersSentToManSiegeEngine; // 0x000003B6 length: 2 int digTileTarget; // 0x000003B8 length: 4 - int field268_0x3bc; // 0x000003BC length: 4 + int siegeTargetTile; // 0x000003BC length: 4 short field269_0x3c0; // 0x000003C0 length: 2 - char field270_0x3c2; // 0x000003C2 length: 1 + char cDeerCamelState; // 0x000003C2 length: 1 undefined1 padding_0x3c3[1]; // 0x000003C3 length: 1 - byte field272_0x3c4; // 0x000003C4 length: 1 - byte field273_0x3c5; // 0x000003C5 length: 1 - short field274_0x3c6; // 0x000003C6 length: 2 + byte bWorkerDestinationFlag; // 0x000003C4 length: 1 + byte unitInstructionCode; // 0x000003C5 length: 1 + short nActiveAnimFrame; // 0x000003C6 length: 2 int health; // 0x000003C8 length: 4 int maxHealth; // 0x000003CC length: 4 byte occupancyOrFlag; // 0x000003D0 length: 1 byte field278_0x3d1; // 0x000003D1 length: 1 - short field279_0x3d2; // 0x000003D2 length: 2 + short moveSpeedModifier; // 0x000003D2 length: 2 short unknownBool01; // 0x000003D4 length: 2 short horseOriginStablesBuildingIndexUnk; // 0x000003D6 length: 2 short shootBeforeStop; // 0x000003D8 length: 2 undefined1 padding_0x3da[2]; // 0x000003DA length: 2 - short field285_0x3dc; // 0x000003DC length: 2 - short field286_0x3de; // 0x000003DE length: 2 + short nShootTargetScoreWeight; // 0x000003DC length: 2 + short nShootTargetEvalValue; // 0x000003DE length: 2 undefined1 horseOriginStableIDUnk; // 0x000003E0 length: 1 undefined1 padding_0x3e1[3]; // 0x000003E1 length: 3 int blessedAmount; // 0x000003E4 length: 4 @@ -284,10 +284,10 @@ namespace Map { char nextAttackHurtsWall; // 0x000003EE length: 1 undefined1 poleturner_spearOrPike; // 0x000003EF length: 1 short killedFlagUnk; // 0x000003F0 length: 2 - short field299_0x3f2; // 0x000003F2 length: 2 - short field300_0x3f4; // 0x000003F4 length: 2 + short animalStateFlag; // 0x000003F2 length: 2 + short nHealerCounter; // 0x000003F4 length: 2 undefined1 padding_0x3f6[2]; // 0x000003F6 length: 2 - byte field303_0x3f8; // 0x000003F8 length: 1 + byte archerInstructionGateFlag; // 0x000003F8 length: 1 undefined1 unkLadderClimbRelated; // 0x000003F9 length: 1 byte fadeCounter; // 0x000003FA length: 1 byte fadeType; // 0x000003FB length: 1 @@ -299,32 +299,32 @@ namespace Map { byte wasOnStoneGate; // 0x00000403 length: 1 int currentTilePosition_2Unk; // 0x00000404 length: 4 short counter; // 0x00000408 length: 2 - short field315_0x40a; // 0x0000040A length: 2 + short nFireWatchActiveFlag; // 0x0000040A length: 2 bool isMatchingSpeed; // 0x0000040C length: 1 undefined1 padding_0x40d[3]; // 0x0000040D length: 3 - byte field320_0x410; // 0x00000410 length: 1 + byte bQuarryWorkerState; // 0x00000410 length: 1 undefined1 padding_0x411[1]; // 0x00000411 length: 1 byte ownerOfAssassinScaledObject; // 0x00000412 length: 1 - byte field323_0x413; // 0x00000413 length: 1 + byte bHasAssignedTarget; // 0x00000413 length: 1 short assassinHeightDifference; // 0x00000414 length: 2 short assassinClimbingUpUnk_OR_previousFacingDirection; // 0x00000416 length: 2 - short field326_0x418; // 0x00000418 length: 2 - undefined2 field327_0x41a; // 0x0000041A length: 2 - int field328_0x41c; // 0x0000041C length: 4 - int field329_0x420; // 0x00000420 length: 4 + short assassinDecayCounter; // 0x00000418 length: 2 + undefined2 assassinTimer; // 0x0000041A length: 2 + int nOverlayDrawX; // 0x0000041C length: 4 + int nOverlayDrawY; // 0x00000420 length: 4 short horseArcherShootingVariation; // 0x00000424 length: 2 short horseArcherShootCheckInterval; // 0x00000426 length: 2 - short field332_0x428; // 0x00000428 length: 2 + short nActiveAnimCounter; // 0x00000428 length: 2 short aiUnitBehaviourType; // 0x0000042A length: 2 short rallyRelatedFlag; // 0x0000042C length: 2 short engineerRelatedUnk; // 0x0000042E length: 2 - short field336_0x430; // 0x00000430 length: 2 + short nCountInTribePercentage; // 0x00000430 length: 2 short siegeTargetPlayerID; // 0x00000432 length: 2 short unknownLordTypeBasedMissionSpecificValue_01; // 0x00000434 length: 2 short lastEncounteredEnemyUnitIDUnk; // 0x00000436 length: 2 int assassinsMicroDistanceToEnemyUnk; // 0x00000438 length: 4 int enemyNoticeFrequencyUnk; // 0x0000043C length: 4 - ushort field342_0x440; // 0x00000440 length: 2 + ushort wMoveSpeedAccumulator; // 0x00000440 length: 2 short field343_0x442; // 0x00000442 length: 2 short idleCounterUnk; // 0x00000444 length: 2 short moveableUnk; // 0x00000446 length: 2 diff --git a/src/OpenSHC/Map/Units/UnitPropertiesDefinedData.hpp b/src/OpenSHC/Map/Units/UnitPropertiesDefinedData.hpp index 1504d609..098b5881 100644 --- a/src/OpenSHC/Map/Units/UnitPropertiesDefinedData.hpp +++ b/src/OpenSHC/Map/Units/UnitPropertiesDefinedData.hpp @@ -25,7 +25,8 @@ namespace Map { typedef struct UnitPropertiesDefinedData { byte ANIM_Frames_Shared_UnitClimbingDown[20]; // 0x00000000 length: 20 - NoArgCallback* PTR_UpdateUnitFunctions[80]; // 0x00000014 length: 320 + NoArgCallback* PTR_UpdateUnitFunctions; // 0x00000014 length: 4 + undefined1 padding_0x18[316]; // 0x00000018 length: 316 int DAT_SPRITE_ID[80]; // 0x00000154 length: 320 int DAT_GRAPHIC_SIZE[80]; // 0x00000294 length: 320 int DAT_COMPUTER_CONTROLLED[80]; // 0x000003D4 length: 320 diff --git a/src/OpenSHC/Map/Units/UnitsState.func.hpp b/src/OpenSHC/Map/Units/UnitsState.func.hpp index b9b386ab..2ad9daf6 100644 --- a/src/OpenSHC/Map/Units/UnitsState.func.hpp +++ b/src/OpenSHC/Map/Units/UnitsState.func.hpp @@ -2,12 +2,12 @@ path: 'OpenSHC/Map/Units/UnitsState.func.hpp' */ -#include "OpenSHC/IO/Graphics/GmID.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" -#include "OpenSHC/Map/Entities/EntityType.hpp" -#include "OpenSHC/Map/Units/Instructions/MatchSpeedInstructionEnum.hpp" -#include "OpenSHC/Map/Units/UnitInstructionType.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/IO/Graphics/GmIDInt.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" +#include "OpenSHC/Map/Entities/EntityTypeInt.hpp" +#include "OpenSHC/Map/Units/Instructions/MatchSpeedInstructionEnumInt.hpp" +#include "OpenSHC/Map/Units/UnitInstructionTypeInt.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/Map/Units/UnitsState.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { @@ -15,19 +15,19 @@ namespace Map { namespace Units { namespace UnitsState_Func { - using OpenSHC::IO::PackagedFileMagicNum; - using OpenSHC::IO::Graphics::GmID; - using OpenSHC::Map::Entities::EntityType; - using OpenSHC::Map::Units::UnitInstructionType; - using OpenSHC::Map::Units::UnitType; - using OpenSHC::Map::Units::Instructions::MatchSpeedInstructionEnum; + using OpenSHC::IO::PackagedFileMagicNumInt; + using OpenSHC::IO::Graphics::GmIDInt; + using OpenSHC::Map::Entities::EntityTypeInt; + using OpenSHC::Map::Units::UnitInstructionTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; + using OpenSHC::Map::Units::Instructions::MatchSpeedInstructionEnumInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER( void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x0052E7B0, &UnitsState::clearAllUnits) clearAllUnits; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(UnitType, int, int, int), false, + MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(UnitTypeInt, int, int, int), false, Address::SHC_3BB0A8C1_0x0052E830, &UnitsState::assignPeasantToBuilding) assignPeasantToBuilding; @@ -35,7 +35,7 @@ namespace Map { Address::SHC_3BB0A8C1_0x0052E960, &UnitsState::euroRecruit) euroRecruit; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(UnitType, undefined4, int, int), false, + MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(UnitTypeInt, undefined4, int, int), false, Address::SHC_3BB0A8C1_0x0052EC10, &UnitsState::nonEuroRecruit) nonEuroRecruit; @@ -51,7 +51,7 @@ namespace Map { &UnitsState::removeUnitFromItsTribe) removeUnitFromItsTribe; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0052F070, + MACRO_FUNCTION_RESOLVER(undefined (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x0052F070, &UnitsState::makeUnitStopWalkingByClearingPathProgressState) makeUnitStopWalkingByClearingPathProgressState; @@ -72,10 +72,10 @@ namespace Map { setupUnitSharingTileIDs; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0052F4E0, - &UnitsState::isUnitRegisteredOnItsOwnTile) - isUnitRegisteredOnItsOwnTile; + &UnitsState::isUnitLinkedOnTile) + isUnitLinkedOnTile; - MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0052F550, + MACRO_FUNCTION_RESOLVER(undefined (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x0052F550, &UnitsState::ifAnyUnitOnSameTileIsLadder) ifAnyUnitOnSameTileIsLadder; @@ -83,9 +83,9 @@ namespace Map { &UnitsState::ifAnyUnitOnSameTileIsLadderInRightDirection) ifAnyUnitOnSameTileIsLadderInRightDirection; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0052F680, - &UnitsState::triggerDesyncIfTileUnitLinkageInvalid) - triggerDesyncIfTileUnitLinkageInvalid; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0052F680, &UnitsState::detectTileUnitDesync) + detectTileUnitDesync; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x0052F730, &UnitsState::removeUnitsSameTileLinkageIfNoLongerApplicable) @@ -95,29 +95,29 @@ namespace Map { &UnitsState::calculateUnitMovementSpeed) calculateUnitMovementSpeed; - MACRO_FUNCTION_RESOLVER( - undefined4 (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0052FBB0, &UnitsState::standUpIfSeated) - standUpIfSeated; + MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0052FBB0, + &UnitsState::makeSeatedUnitStand) + makeSeatedUnitStand; - MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0052FBF0, - &UnitsState::sitDownIfStanding) - sitDownIfStanding; + MACRO_FUNCTION_RESOLVER( + undefined4 (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0052FBF0, &UnitsState::makeUnitSit) + makeUnitSit; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0052FC30, - &UnitsState::setFacingDirectionTowardUnit) - setFacingDirectionTowardUnit; + &UnitsState::setUnitFacingTowardUnit) + setUnitFacingTowardUnit; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0052FCA0, - &UnitsState::setFacingDirectionTowardCoords) - setFacingDirectionTowardCoords; + &UnitsState::setUnitFacingTowardPoint) + setUnitFacingTowardPoint; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0052FD00, &UnitsState::setUnitFacingDirectionTowardsTarget) setUnitFacingDirectionTowardsTarget; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0052FE00, - &UnitsState::setFacingDirectionTowardUnitMicro) - setFacingDirectionTowardUnitMicro; + &UnitsState::orientUnitTowardUnit) + orientUnitTowardUnit; MACRO_FUNCTION_RESOLVER(bool (UnitsState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0052FE90, &UnitsState::setUnitFacingDirectionForTargetXandY) @@ -128,36 +128,36 @@ namespace Map { setUnitFacingDirectionBasedOnBuilding; MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00530080, - &UnitsState::isComputerManagedNonPeasant) - isComputerManagedNonPeasant; + &UnitsState::isUnitComputerManaged) + isUnitComputerManaged; MACRO_FUNCTION_RESOLVER( void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x005300B0, &UnitsState::playHurtSFXForUnit) playHurtSFXForUnit; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x005301F0, - &UnitsState::countLivingNondyingUnitsForPlayer) - countLivingNondyingUnitsForPlayer; + MACRO_FUNCTION_RESOLVER( + int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x005301F0, &UnitsState::countAlivePlayerUnits) + countAlivePlayerUnits; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00530240, - &UnitsState::triggerStoneTowerDeathForPlayer) - triggerStoneTowerDeathForPlayer; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00530240, &UnitsState::killPlayerTowerUnits) + killPlayerTowerUnits; MACRO_FUNCTION_RESOLVER( void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005302B0, &UnitsState::killAllUnownedUnits) killAllUnownedUnits; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00530310, - &UnitsState::triggerDeathAnimationForAllWildlife) - triggerDeathAnimationForAllWildlife; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00530310, &UnitsState::removeWildlifeAnimals) + removeWildlifeAnimals; MACRO_FUNCTION_RESOLVER( void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00530390, &UnitsState::killUnits) killUnits; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00530400, - &UnitsState::transferNonCourtUnitsToPlayer) - transferNonCourtUnitsToPlayer; + &UnitsState::reassignFarmAnimals) + reassignFarmAnimals; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00530500, &UnitsState::makeCourtMemberUnitsDisappearAndSwapAllOtherUnitsOwnership) @@ -175,13 +175,13 @@ namespace Map { &UnitsState::setMissionNumberSpecificLord) setMissionNumberSpecificLord; - MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00530FD0, + MACRO_FUNCTION_RESOLVER(undefined (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00530FD0, &UnitsState::checkIfCitizenUnitIsAliveBasedOnState) checkIfCitizenUnitIsAliveBasedOnState; MACRO_FUNCTION_RESOLVER(bool (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00531000, - &UnitsState::shouldUnitsEngageInMelee) - shouldUnitsEngageInMelee; + &UnitsState::canUnitsEngageEachOther) + canUnitsEngageEachOther; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x005311F0, &UnitsState::ComputeDamageFearFactorBonus) @@ -199,7 +199,7 @@ namespace Map { &UnitsState::processFireDamageToUnit) processFireDamageToUnit; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, EntityType, int, int, int), false, + MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, EntityTypeInt, int, int, int), false, Address::SHC_3BB0A8C1_0x00532700, &UnitsState::shootProjectile) shootProjectile; @@ -212,12 +212,12 @@ namespace Map { getArmySize; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00532F80, - &UnitsState::computeDistanceToNearestEnemyForLegacyMissions) - computeDistanceToNearestEnemyForLegacyMissions; + &UnitsState::distanceComputationForSomeOldCodeForSomeMissions) + distanceComputationForSomeOldCodeForSomeMissions; MACRO_FUNCTION_RESOLVER( - BOOLEnum (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00533090, &UnitsState::returnFalseStub) - returnFalseStub; + BOOLEnum (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00533090, &UnitsState::returnFalse) + returnFalse; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int, int, int), false, Address::SHC_3BB0A8C1_0x005330A0, &UnitsState::setRandomShootLocation) @@ -236,28 +236,28 @@ namespace Map { findClosestLaddermanWithLadderPosition; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00533810, - &UnitsState::findAndDestroyAdjacentEnemyLadder) - findAndDestroyAdjacentEnemyLadder; + &UnitsState::findAndDestroyAdjacentLadder) + findAndDestroyAdjacentLadder; MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x00533920, &UnitsState::getDestination2EqualsGivenCoordinates) getDestination2EqualsGivenCoordinates; - MACRO_FUNCTION_RESOLVER(bool (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00533960, - &UnitsState::isAtSecondaryDestination) - isAtSecondaryDestination; + MACRO_FUNCTION_RESOLVER( + bool (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00533960, &UnitsState::isUnitAtDestination) + isUnitAtDestination; MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x005339A0, - &UnitsState::hasUnitReachedDestination) - hasUnitReachedDestination; + &UnitsState::unitReachedDestination) + unitReachedDestination; MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x005339F0, - &UnitsState::hasTunnelerNotFinishedDigging) - hasTunnelerNotFinishedDigging; + &UnitsState::isTunnelerNotFinished) + isTunnelerNotFinished; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int, uint, int, int), false, - Address::SHC_3BB0A8C1_0x00533A10, &UnitsState::computeLadderClimbPath) - computeLadderClimbPath; + Address::SHC_3BB0A8C1_0x00533A10, &UnitsState::commitUnitLadderClimbPath) + commitUnitLadderClimbPath; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00533B30, &UnitsState::changeDestinationByAmount) @@ -272,16 +272,16 @@ namespace Map { tracePathFromLadderExitSetDestination; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00533D50, - &UnitsState::updateUnitFadeAndVisibilityNearStructures) - updateUnitFadeAndVisibilityNearStructures; + &UnitsState::updateUnitFadeBehindStructures) + updateUnitFadeBehindStructures; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00533F90, - &UnitsState::saveUnitStateBeforeInterruption) - saveUnitStateBeforeInterruption; + MACRO_FUNCTION_RESOLVER(undefined (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00533F90, + &UnitsState::markTunnelerFinishedDigging) + markTunnelerFinishedDigging; MACRO_FUNCTION_RESOLVER( - void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00533FC0, &UnitsState::despawnUnreachableUnit) - despawnUnreachableUnit; + void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00533FC0, &UnitsState::removeTrappedWallUnit) + removeTrappedWallUnit; MACRO_FUNCTION_RESOLVER( void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00534030, &UnitsState::updateMicroPosition) @@ -291,17 +291,17 @@ namespace Map { &UnitsState::adjustUnitMapOrientationRelatedPositionBasedOnMapOrientationCorrectedFacingDirection) adjustUnitMapOrientationRelatedPositionBasedOnMapOrientationCorrectedFacingDirection; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(uint), false, Address::SHC_3BB0A8C1_0x00534130, - &UnitsState::applyTunnelDamageAlongPathPlan) - applyTunnelDamageAlongPathPlan; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(uint), false, Address::SHC_3BB0A8C1_0x00534130, &UnitsState::digTunnelAlongPath) + digTunnelAlongPath; MACRO_FUNCTION_RESOLVER( int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00534240, &UnitsState::stopUnitIfNextToTarget) stopUnitIfNextToTarget; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00534380, - &UnitsState::isWorkplaceBuildingOnAdjacentTile) - isWorkplaceBuildingOnAdjacentTile; + &UnitsState::isUnitAdjacentToWorkplace) + isUnitAdjacentToWorkplace; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x005343F0, &UnitsState::setWorkplaceBuildingEntryAsTarget) @@ -311,44 +311,44 @@ namespace Map { BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00534460, &UnitsState::unitIsInMoat) unitIsInMoat; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00534490, - &UnitsState::stampOccupancyFlagOnSurroundingTiles) - stampOccupancyFlagOnSurroundingTiles; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00534490, &UnitsState::markUnitTileOccupancy) + markUnitTileOccupancy; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, undefined4), false, Address::SHC_3BB0A8C1_0x00534520, &UnitsState::writeSixToTileMap1104InAllDirections) writeSixToTileMap1104InAllDirections; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int, int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x005345A0, &UnitsState::findEligibleUnitByTimeAndLocation) - findEligibleUnitByTimeAndLocation; + Address::SHC_3BB0A8C1_0x005345A0, &UnitsState::getUnitThatFulfillsSomeTimebasedAndLocationBasedCriteria) + getUnitThatFulfillsSomeTimebasedAndLocationBasedCriteria; MACRO_FUNCTION_RESOLVER( int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x005346D0, &UnitsState::selectNewBlessingTarget) selectNewBlessingTarget; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005347E0, - &UnitsState::applyDragBoxSelectionByPriority) - applyDragBoxSelectionByPriority; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005347E0, &UnitsState::selectUnitsInDragBox) + selectUnitsInDragBox; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00534D10, - &UnitsState::selectUnitsInDragBoxForCurrentPlayer) - selectUnitsInDragBoxForCurrentPlayer; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00534D10, &UnitsState::selectOwnUnitsInDragBox) + selectOwnUnitsInDragBox; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00534EE0, - &UnitsState::selectFirstUnitInDragBoxAnyPlayer) - selectFirstUnitInDragBoxAnyPlayer; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00534EE0, &UnitsState::selectSingleUnitInDragBox) + selectSingleUnitInDragBox; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x005350B0, - &UnitsState::selectAllUnitsOfTypeForPlayer) - selectAllUnitsOfTypeForPlayer; + &UnitsState::selectAllUnitsOfType) + selectAllUnitsOfType; MACRO_FUNCTION_RESOLVER( void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535150, &UnitsState::deselectAllUnitsOneByOne) deselectAllUnitsOneByOne; MACRO_FUNCTION_RESOLVER( - void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00535190, &UnitsState::deselectUnit) + undefined (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535190, &UnitsState::deselectUnit) deselectUnit; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x005351C0, @@ -363,9 +363,9 @@ namespace Map { void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535240, &UnitsState::recountUnitsInSelection) recountUnitsInSelection; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535520, - &UnitsState::selectionContainsEngineersOnly) - selectionContainsEngineersOnly; + MACRO_FUNCTION_RESOLVER( + int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535520, &UnitsState::isSelectionOnlyEngineers) + isSelectionOnlyEngineers; MACRO_FUNCTION_RESOLVER( BOOLEnum (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535550, &UnitsState::selectionHasEngineers) @@ -376,56 +376,56 @@ namespace Map { selectionHasArchers; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535580, - &UnitsState::selectionHasMobileAssaultUnits) - selectionHasMobileAssaultUnits; + &UnitsState::selectionHasAdvancedUnit) + selectionHasAdvancedUnit; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005355E0, - &UnitsState::selectionHasMixedAssaultAndInfantry) - selectionHasMixedAssaultAndInfantry; + &UnitsState::selectionHasSiegeAndOther) + selectionHasSiegeAndOther; - MACRO_FUNCTION_RESOLVER(uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535680, - &UnitsState::getSelectedEngineerCarryingResource) - getSelectedEngineerCarryingResource; + MACRO_FUNCTION_RESOLVER( + uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535680, &UnitsState::findEngineerAtOilSmelter) + findEngineerAtOilSmelter; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535700, - &UnitsState::selectionContainsTunnelersOnly) - selectionContainsTunnelersOnly; + MACRO_FUNCTION_RESOLVER( + int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535700, &UnitsState::isSelectionOnlyTunnelers) + isSelectionOnlyTunnelers; MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535730, &UnitsState::selectionContainsRangedOnlyUnits) selectionContainsRangedOnlyUnits; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005357E0, - &UnitsState::selectionContainsLadermenOnly) - selectionContainsLadermenOnly; + MACRO_FUNCTION_RESOLVER( + int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005357E0, &UnitsState::isSelectionOnlyLaddermen) + isSelectionOnlyLaddermen; MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535810, &UnitsState::selectionContainsOnlyArabAssassins) selectionContainsOnlyArabAssassins; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535840, - &UnitsState::selectionContainsShieldmenOnly) - selectionContainsShieldmenOnly; + MACRO_FUNCTION_RESOLVER( + int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535840, &UnitsState::isSelectionOnlyShields) + isSelectionOnlyShields; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535870, - &UnitsState::selectionHasShieldOrSiegeMobileUnits) - selectionHasShieldOrSiegeMobileUnits; + &UnitsState::selectionHasSiegeCoverAndOther) + selectionHasSiegeCoverAndOther; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005358C0, - &UnitsState::selectionHasShieldOrSiegeTower) - selectionHasShieldOrSiegeTower; + &UnitsState::selectionHasShieldOrTowerAndOther) + selectionHasShieldOrTowerAndOther; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535910, &UnitsState::selectionHasNoRangedUnits) selectionHasNoRangedUnits; - MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535980, - &UnitsState::selectionHasFootSoldiers) - selectionHasFootSoldiers; + MACRO_FUNCTION_RESOLVER( + undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535980, &UnitsState::selectionCanDigMoat) + selectionCanDigMoat; - MACRO_FUNCTION_RESOLVER(uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005359C0, - &UnitsState::getSelectedLordIDIfOwnedByCurrentPlayer) - getSelectedLordIDIfOwnedByCurrentPlayer; + MACRO_FUNCTION_RESOLVER( + uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005359C0, &UnitsState::getSelectedLordUnit) + getSelectedLordUnit; MACRO_FUNCTION_RESOLVER( int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00535A30, &UnitsState::createUnitSelection) @@ -440,12 +440,12 @@ namespace Map { playerMakeUnitSelection; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x00535DF0, - &UnitsState::getFirstSelectedUnitID) - getFirstSelectedUnitID; + &UnitsState::queueTribeCommand) + queueTribeCommand; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x00535E20, - &UnitsState::selectSiegeEngineAndPlayFeedback) - selectSiegeEngineAndPlayFeedback; + &UnitsState::assignUnitToTribeWithSiegeSpeech) + assignUnitToTribeWithSiegeSpeech; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00535FD0, &UnitsState::makeSelectionBasedOnShortcut) @@ -456,28 +456,28 @@ namespace Map { isUnitShortcutAvailable; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00536190, - &UnitsState::selectTribeUnitsForPlayer) - selectTribeUnitsForPlayer; + &UnitsState::selectAllTribeUnitsForPlayer) + selectAllTribeUnitsForPlayer; - MACRO_FUNCTION_RESOLVER(UnitType (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005361F0, + MACRO_FUNCTION_RESOLVER(UnitTypeInt (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005361F0, &UnitsState::getUnitTypeOfFirstSelectedUnit) getUnitTypeOfFirstSelectedUnit; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536260, - &UnitsState::selectionHasMovableNonSiegeUnit) - selectionHasMovableNonSiegeUnit; + &UnitsState::selectionHasFieldUnit) + selectionHasFieldUnit; MACRO_FUNCTION_RESOLVER(uint (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x005362F0, - &UnitsState::getFirstSelectedUnitOfEitherType) - getFirstSelectedUnitOfEitherType; + &UnitsState::findSelectedUnitOfTypes) + findSelectedUnitOfTypes; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536370, - &UnitsState::getMaxStoneAmmoInSelectedSiegeEngines) - getMaxStoneAmmoInSelectedSiegeEngines; + MACRO_FUNCTION_RESOLVER( + int (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536370, &UnitsState::getMaxSelectedCatapultAmmo) + getMaxSelectedCatapultAmmo; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536400, - &UnitsState::countSelectedCatapultsAndTrebuchets) - countSelectedCatapultsAndTrebuchets; + &UnitsState::countSelectedStoneThrowers) + countSelectedStoneThrowers; MACRO_FUNCTION_RESOLVER(uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005364C0, &UnitsState::returnFirstSelectedEngineer) @@ -487,63 +487,63 @@ namespace Map { &UnitsState::getTunnelerIDOnlyIfFirstSelected) getTunnelerIDOnlyIfFirstSelected; - MACRO_FUNCTION_RESOLVER(uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005365A0, - &UnitsState::getFirstSelectedLadderUnitID) - getFirstSelectedLadderUnitID; + MACRO_FUNCTION_RESOLVER( + uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x005365A0, &UnitsState::getSelectedLadderUnit) + getSelectedLadderUnit; MACRO_FUNCTION_RESOLVER( undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536610, &UnitsState::canAUnitClimb) canAUnitClimb; - MACRO_FUNCTION_RESOLVER(uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536690, - &UnitsState::getFirstSelectedSiegeEngineID) - getFirstSelectedSiegeEngineID; + MACRO_FUNCTION_RESOLVER( + uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536690, &UnitsState::getSelectedSiegeEngine) + getSelectedSiegeEngine; - MACRO_FUNCTION_RESOLVER(uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536710, - &UnitsState::getFirstSelectedCatapultOrTrebuchetID) - getFirstSelectedCatapultOrTrebuchetID; + MACRO_FUNCTION_RESOLVER( + uint (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536710, &UnitsState::getSelectedStoneThrower) + getSelectedStoneThrower; MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00536780, - &UnitsState::isTowerTileOvercrowdedByCurrentPlayer) - isTowerTileOvercrowdedByCurrentPlayer; + &UnitsState::canCaptureTowerAtTile) + canCaptureTowerAtTile; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536970, &UnitsState::checkAnySelectedUnitCannotClimb) checkAnySelectedUnitCannotClimb; - MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x005369F0, - &UnitsState::selectionHasUnmannedSiegeEngine) - selectionHasUnmannedSiegeEngine; + MACRO_FUNCTION_RESOLVER( + BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x005369F0, &UnitsState::canManSiegeEngine) + canManSiegeEngine; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(uint), false, Address::SHC_3BB0A8C1_0x00536A60, &UnitsState::selectionContainsCombatUnit) selectionContainsCombatUnit; MACRO_FUNCTION_RESOLVER( - void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536C70, &UnitsState::queueStopCommand) - queueStopCommand; + void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536C70, &UnitsState::queueUnitCommand0F) + queueUnitCommand0F; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x00536C90, - &UnitsState::queueUnitTypeCommand) - queueUnitTypeCommand; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x00536C90, &UnitsState::queueCommand0xF) + queueCommand0xF; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x00536CC0, &UnitsState::queueClickNavigateMenuOrEscape) queueClickNavigateMenuOrEscape; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, uint, int), false, Address::SHC_3BB0A8C1_0x00536CF0, - &UnitsState::clearOrDeselectUnitFromSelection) - clearOrDeselectUnitFromSelection; + &UnitsState::clearUnitSelectionAndTribe) + clearUnitSelectionAndTribe; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536DE0, - &UnitsState::clearSelectionCountsAndPlayerIDs) - clearSelectionCountsAndPlayerIDs; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x00536DE0, &UnitsState::clearSelectionCounts) + clearSelectionCounts; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, int, int, int, int), false, Address::SHC_3BB0A8C1_0x00536E30, &UnitsState::giveMoveCommand) giveMoveCommand; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, uint, uint, int, MatchSpeedInstructionEnum), false, + MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, uint, uint, int, MatchSpeedInstructionEnumInt), false, Address::SHC_3BB0A8C1_0x00537070, &UnitsState::giveTribeMoveInstructionHumans) giveTribeMoveInstructionHumans; @@ -552,25 +552,25 @@ namespace Map { extendRallyPoint; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(undefined4, undefined4), false, - Address::SHC_3BB0A8C1_0x00537100, &UnitsState::queueDisbandAndAttackCommand2Params) - queueDisbandAndAttackCommand2Params; + Address::SHC_3BB0A8C1_0x00537100, &UnitsState::queueDisbandAndAttackCommand) + queueDisbandAndAttackCommand; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(undefined4, undefined4, undefined4), false, - Address::SHC_3BB0A8C1_0x00537130, &UnitsState::queueDisbandAndAttackCommand3Params) - queueDisbandAndAttackCommand3Params; + Address::SHC_3BB0A8C1_0x00537130, &UnitsState::queueDisbandAndAttackUnitsCommand) + queueDisbandAndAttackUnitsCommand; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(undefined4, undefined4, undefined4, undefined4), false, - Address::SHC_3BB0A8C1_0x00537160, &UnitsState::queueDisbandAndAttackCommand4Params) - queueDisbandAndAttackCommand4Params; + Address::SHC_3BB0A8C1_0x00537160, &UnitsState::queueCommand_36d) + queueCommand_36d; MACRO_FUNCTION_RESOLVER( - void (UnitsState::*)(undefined4, UnitInstructionType, undefined4, undefined4, undefined4), false, - Address::SHC_3BB0A8C1_0x005371A0, &UnitsState::queueDisbandAndAttackCommand5Params) - queueDisbandAndAttackCommand5Params; + void (UnitsState::*)(undefined4, UnitInstructionTypeInt, undefined4, undefined4, undefined4), false, + Address::SHC_3BB0A8C1_0x005371A0, &UnitsState::queueCommand_36_variation2) + queueCommand_36_variation2; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, UnitInstructionType, int, int, int), false, - Address::SHC_3BB0A8C1_0x005371E0, &UnitsState::relayTribeInstruction) - relayTribeInstruction; + MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, UnitInstructionTypeInt, int, int, int), false, + Address::SHC_3BB0A8C1_0x005371E0, &UnitsState::giveTribeAnInstruction2) + giveTribeAnInstruction2; MACRO_FUNCTION_RESOLVER(uint (UnitsState::*)(uint, uint), false, Address::SHC_3BB0A8C1_0x005371F0, &UnitsState::findFreeTileNearby) @@ -589,20 +589,20 @@ namespace Map { getRawDeerCount; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00537880, - &UnitsState::findNearestShootableDeer) - findNearestShootableDeer; + &UnitsState::findNearestHuntableDeer) + findNearestHuntableDeer; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x00537A00, - &UnitsState::findNearestIdleCowForPlayer) - findNearestIdleCowForPlayer; + &UnitsState::findNearestIdleCow) + findNearestIdleCow; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int, BOOLEnum, uint, uint), false, Address::SHC_3BB0A8C1_0x00537AA0, &UnitsState::findClosestAnimalStoreResult) findClosestAnimalStoreResult; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int, uint, uint, int), false, Address::SHC_3BB0A8C1_0x00537C10, - &UnitsState::findClosestEnemyByAreaAndRange) - findClosestEnemyByAreaAndRange; + &UnitsState::findClosestEnemyUnitInArea) + findClosestEnemyUnitInArea; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x00537D60, &UnitsState::tryAttackUnitID) @@ -617,28 +617,28 @@ namespace Map { setAIControlStatusTo100000; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int, int*), false, Address::SHC_3BB0A8C1_0x00537F60, - &UnitsState::clearUnitPositionCommitState) - clearUnitPositionCommitState; + &UnitsState::getUnitAnimationIndex) + getUnitAnimationIndex; MACRO_FUNCTION_RESOLVER( - GmID (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00539BE0, &UnitsState::getPeasantGmID) + GmIDInt (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x00539BE0, &UnitsState::getPeasantGmID) getPeasantGmID; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int*, int*), false, Address::SHC_3BB0A8C1_0x00539DF0, &UnitsState::chooseHusbandAndWife) chooseHusbandAndWife; - MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053A070, - &UnitsState::isWorkerAtProductionIdleState) - isWorkerAtProductionIdleState; + MACRO_FUNCTION_RESOLVER(undefined (UnitsState::*)(), false, Address::SHC_3BB0A8C1_0x0053A070, + &UnitsState::isWorkerInProductionState) + isWorkerInProductionState; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053A150, - &UnitsState::getWorkerBlockingStateIfStuck) - getWorkerBlockingStateIfStuck; + MACRO_FUNCTION_RESOLVER( + int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053A150, &UnitsState::computeWorkerNextAction) + computeWorkerNextAction; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053A4D0, - &UnitsState::findActiveSiegeEngineForTribe) - findActiveSiegeEngineForTribe; + &UnitsState::findPlayerOperationalSiegeEngine) + findPlayerOperationalSiegeEngine; MACRO_FUNCTION_RESOLVER( int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053A560, &UnitsState::getLivingSelectableUnit) @@ -648,13 +648,13 @@ namespace Map { &UnitsState::renderDebugDataUnitData) renderDebugDataUnitData; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, UnitType), false, Address::SHC_3BB0A8C1_0x0053B8E0, + MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, UnitTypeInt), false, Address::SHC_3BB0A8C1_0x0053B8E0, &UnitsState::setUnitValues) setUnitValues; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053BB10, - &UnitsState::commitPendingUnitPosition) - commitPendingUnitPosition; + &UnitsState::commitUnitPositionUpdate) + commitUnitPositionUpdate; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053BB70, &UnitsState::setupUnitSharingCurrentTilePosition) @@ -673,16 +673,16 @@ namespace Map { prepareProjectileTarget; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053D030, - &UnitsState::harassBuildingsWithSiegeAI) - harassBuildingsWithSiegeAI; + &UnitsState::aiSiegeUnitPickTargetAndShoot) + aiSiegeUnitPickTargetAndShoot; MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(int, uint, uint, int), false, Address::SHC_3BB0A8C1_0x0053D3D0, &UnitsState::setDestinationForUnit) setDestinationForUnit; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053D850, - &UnitsState::resumeMovementAfterInterruption) - resumeMovementAfterInterruption; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053D850, &UnitsState::resumeUnitMovement) + resumeUnitMovement; MACRO_FUNCTION_RESOLVER( void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053D900, &UnitsState::exitLadder) @@ -693,18 +693,18 @@ namespace Map { getUnitInHitBox; MACRO_FUNCTION_RESOLVER(undefined4 (UnitsState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0053DCC0, - &UnitsState::setDestinationNearTargetedBuilding) - setDestinationNearTargetedBuilding; + &UnitsState::setUnitDestinationNextToTargetBuilding) + setUnitDestinationNextToTargetBuilding; MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053DDD0, - &UnitsState::selectWorkerSpeechOrMoraleStateID) - selectWorkerSpeechOrMoraleStateID; + &UnitsState::computePeasantThoughtBubble) + computePeasantThoughtBubble; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(PackagedFileMagicNum, PackagedFileMagicNum), false, + MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(PackagedFileMagicNumInt, PackagedFileMagicNumInt), false, Address::SHC_3BB0A8C1_0x0053E390, &UnitsState::upgradeMapFormatForUnits) upgradeMapFormatForUnits; - MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int, int, int, int, int, UnitType), false, + MACRO_FUNCTION_RESOLVER(int (UnitsState::*)(int, int, int, int, int, UnitTypeInt), false, Address::SHC_3BB0A8C1_0x0053E440, &UnitsState::spawnUnit) spawnUnit; @@ -721,12 +721,12 @@ namespace Map { commitUnitLocation; MACRO_FUNCTION_RESOLVER( - void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053E870, &UnitsState::resetUnitMovementState) - resetUnitMovementState; + void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053E870, &UnitsState::someUnitMoveFunction) + someUnitMoveFunction; - MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053E8D0, - &UnitsState::clearHiddenFlagAndUpdatePosition) - clearHiddenFlagAndUpdatePosition; + MACRO_FUNCTION_RESOLVER( + void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0053E8D0, &UnitsState::revealHiddenUnit) + revealHiddenUnit; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int, uint, uint, undefined4), false, Address::SHC_3BB0A8C1_0x0053E900, &UnitsState::setPositionOfUnit) @@ -745,16 +745,16 @@ namespace Map { processMeleeInitiation; MACRO_FUNCTION_RESOLVER(void (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0054A770, - &UnitsState::resumeMovementIfNoAttackTarget) - resumeMovementIfNoAttackTarget; + &UnitsState::resumeUnitIfNotAttacking) + resumeUnitIfNotAttacking; MACRO_FUNCTION_RESOLVER(dword (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0054A7B0, - &UnitsState::findNearestEnemyAndHeadTowardsIt) - findNearestEnemyAndHeadTowardsIt; + &UnitsState::unitAcquireBestEnemyTargetAndPursue) + unitAcquireBestEnemyTargetAndPursue; MACRO_FUNCTION_RESOLVER(BOOLEnum (UnitsState::*)(short*), false, Address::SHC_3BB0A8C1_0x0054B0D0, - &UnitsState::acquireShootTarget) - acquireShootTarget; + &UnitsState::acquireAndSetShootTarget) + acquireAndSetShootTarget; MACRO_FUNCTION_RESOLVER( BOOLEnum (UnitsState::*)(int), false, Address::SHC_3BB0A8C1_0x0054BFC0, &UnitsState::updateClimbing) diff --git a/src/OpenSHC/Map/Units/UnitsState.hpp b/src/OpenSHC/Map/Units/UnitsState.hpp index 54490217..964ce0bd 100644 --- a/src/OpenSHC/Map/Units/UnitsState.hpp +++ b/src/OpenSHC/Map/Units/UnitsState.hpp @@ -8,13 +8,13 @@ #pragma once -#include "OpenSHC/IO/Graphics/GmID.hpp" -#include "OpenSHC/IO/PackagedFileMagicNum.hpp" -#include "OpenSHC/Map/Entities/EntityType.hpp" -#include "OpenSHC/Map/Units/Instructions/MatchSpeedInstructionEnum.hpp" +#include "OpenSHC/IO/Graphics/GmIDInt.hpp" +#include "OpenSHC/IO/PackagedFileMagicNumInt.hpp" +#include "OpenSHC/Map/Entities/EntityTypeInt.hpp" +#include "OpenSHC/Map/Units/Instructions/MatchSpeedInstructionEnumInt.hpp" #include "OpenSHC/Map/Units/Unit.hpp" -#include "OpenSHC/Map/Units/UnitInstructionType.hpp" -#include "OpenSHC/Map/Units/UnitType.hpp" +#include "OpenSHC/Map/Units/UnitInstructionTypeInt.hpp" +#include "OpenSHC/Map/Units/UnitTypeInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "WinDef.h" @@ -23,13 +23,13 @@ namespace OpenSHC { namespace Map { namespace Units { - using OpenSHC::IO::PackagedFileMagicNum; - using OpenSHC::IO::Graphics::GmID; - using OpenSHC::Map::Entities::EntityType; + using OpenSHC::IO::PackagedFileMagicNumInt; + using OpenSHC::IO::Graphics::GmIDInt; + using OpenSHC::Map::Entities::EntityTypeInt; using OpenSHC::Map::Units::Unit; - using OpenSHC::Map::Units::UnitInstructionType; - using OpenSHC::Map::Units::UnitType; - using OpenSHC::Map::Units::Instructions::MatchSpeedInstructionEnum; + using OpenSHC::Map::Units::UnitInstructionTypeInt; + using OpenSHC::Map::Units::UnitTypeInt; + using OpenSHC::Map::Units::Instructions::MatchSpeedInstructionEnumInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -39,20 +39,20 @@ namespace Map { public: uint maxUnitCount; // 0x00000000 length: 4 uint DAT_UnitCount; // 0x00000004 length: 4 - undefined4 unknownInitially0_01; // 0x00000008 length: 4 + undefined4 dwUnitMoveProcessCounter; // 0x00000008 length: 4 undefined4 DAT_LastSelectedUnitID; // 0x0000000C length: 4 undefined4 unitControlsRelated; // 0x00000010 length: 4 - BOOLEnum field5_0x14; // 0x00000014 length: 4 + undefined4 dwUnitCommandUIState; // 0x00000014 length: 4 undefined4 DAT_LostChimps; // 0x00000018 length: 4 - undefined4 unitDistanceComputationResultUnk; // 0x0000001C length: 4 + undefined4 dwNearestEnemyDistanceResult; // 0x0000001C length: 4 undefined4 totalUnitsInSelection; // 0x00000020 length: 4 int unitCountOfSelection[9]; // 0x00000024 length: 36 byte unusedBytes01[44]; // 0x00000048 length: 44 byte DAT_SelectedUnitsBitFlags[400]; // 0x00000074 length: 400 byte unusedBytes02[852]; // 0x00000204 length: 852 BOOLEnum hasEngineerSelected; // 0x00000558 length: 4 - int field14_0x55c; // 0x0000055C length: 4 - int field15_0x560; // 0x00000560 length: 4 + undefined4 dwSelectionEnemyOwnerID; // 0x0000055C length: 4 + undefined4 dwLastSelectedStoneThrowerID; // 0x00000560 length: 4 undefined4 selectionEuropeanArchers; // 0x00000564 length: 4 undefined4 selectionSpearmen; // 0x00000568 length: 4 undefined4 selectionMacemen; // 0x0000056C length: 4 @@ -71,7 +71,7 @@ namespace Map { int selectionShield; // 0x000005A0 length: 4 int selectionMangonel; // 0x000005A4 length: 4 int selectionBallista; // 0x000005A8 length: 4 - int nSelectionFireBallistas; // 0x000005AC length: 4 + int field34_0x5ac; // 0x000005AC length: 4 int selectionArabArcher; // 0x000005B0 length: 4 int selectionArabSlave; // 0x000005B4 length: 4 int selectionArabSlinger; // 0x000005B8 length: 4 @@ -81,12 +81,12 @@ namespace Map { int selectionArabFireThrower; // 0x000005C8 length: 4 int selectionFireBallista; // 0x000005CC length: 4 int selectionSlots[8]; // 0x000005D0 length: 32 - int nHasOwnedUnitInSelection; // 0x000005F0 length: 4 - undefined4 unknownX_01; // 0x000005F4 length: 4 - undefined4 unknownY_01; // 0x000005F8 length: 4 + int nSelectionChangedFlag; // 0x000005F0 length: 4 + undefined4 dwLadderClimbTargetX; // 0x000005F4 length: 4 + undefined4 dwLadderClimbTargetY; // 0x000005F8 length: 4 byte unusedBytes03[8]; // 0x000005FC length: 8 - dword field48_0x604; // 0x00000604 length: 4 - uint field49_0x608; // 0x00000608 length: 4 + undefined4 dwLastSelectionClickTimeMs; // 0x00000604 length: 4 + undefined4 dwDoubleClickSelectedUnitID; // 0x00000608 length: 4 undefined4 DAT_EuroUnitAcquisitionFailReason; // 0x0000060C length: 4 undefined4 DAT_EuroUnitRequiredResource; // 0x00000610 length: 4 Unit units[2500]; // 0x00000614 length: 2920000 @@ -103,15 +103,15 @@ namespace Map { ~UnitsState() {}; // Constructor - UnitsState* constructUnitsState(); + UnitsState* Constructor_UnitsState(); void clearAllUnits(); - int assignPeasantToBuilding(UnitType unitType, int buildingID, int playerID, int workerIndex); + int assignPeasantToBuilding(UnitTypeInt unitType, int buildingID, int playerID, int workerIndex); int euroRecruit(int unitType, undefined4 playersBarracksID, int playerID, int param_4); - int nonEuroRecruit(UnitType unitType, undefined4 recruitmentBuilding, int playerID, int param_4); + int nonEuroRecruit(UnitTypeInt unitType, undefined4 recruitmentBuilding, int playerID, int param_4); int disbandUnit(int unitID); @@ -119,7 +119,7 @@ namespace Map { void removeUnitFromItsTribe(uint unitID, int unitUID); - void makeUnitStopWalkingByClearingPathProgressState(int unitID); + undefined makeUnitStopWalkingByClearingPathProgressState(); int checkUnitHasPropertyBasedOnUnitType(int unitID, int property); @@ -129,49 +129,49 @@ namespace Map { void setupUnitSharingTileIDs(int unitID, int unitCurrentTilePosition); - undefined4 isUnitRegisteredOnItsOwnTile(int unitID); + undefined4 isUnitLinkedOnTile(int unitID); - BOOLEnum ifAnyUnitOnSameTileIsLadder(int unitID); + undefined ifAnyUnitOnSameTileIsLadder(); undefined4 ifAnyUnitOnSameTileIsLadderInRightDirection(int tile, int y); - void triggerDesyncIfTileUnitLinkageInvalid(int tile); + void detectTileUnitDesync(int tile); void removeUnitsSameTileLinkageIfNoLongerApplicable(); void calculateUnitMovementSpeed(int unitID); - undefined4 standUpIfSeated(int param_1); + undefined4 makeSeatedUnitStand(int param_1); - undefined4 sitDownIfStanding(int param_1); + undefined4 makeUnitSit(int param_1); - void setFacingDirectionTowardUnit(int param_1, int param_2); + void setUnitFacingTowardUnit(int param_1, int param_2); - void setFacingDirectionTowardCoords(int param_1, int param_2, int param_3); + void setUnitFacingTowardPoint(int param_1, int param_2, int param_3); undefined4 setUnitFacingDirectionTowardsTarget(int unitID, int targetUnitID); - void setFacingDirectionTowardUnitMicro(int param_1, int param_2); + void orientUnitTowardUnit(int param_1, int param_2); bool setUnitFacingDirectionForTargetXandY(int unitID, int targetX, int targetY); uint setUnitFacingDirectionBasedOnBuilding(int unitID, int buildingID); - BOOLEnum isComputerManagedNonPeasant(int param_1); + BOOLEnum isUnitComputerManaged(int param_1); void playHurtSFXForUnit(int unitID); - int countLivingNondyingUnitsForPlayer(int param_1); + int countAlivePlayerUnits(int param_1); - void triggerStoneTowerDeathForPlayer(int param_1); + void killPlayerTowerUnits(int param_1); void killAllUnownedUnits(); - void triggerDeathAnimationForAllWildlife(); + void removeWildlifeAnimals(); void killUnits(int playerID); - void transferNonCourtUnitsToPlayer(int fromPlayer, int toPlayer); + void reassignFarmAnimals(int fromPlayer, int toPlayer); void makeCourtMemberUnitsDisappearAndSwapAllOtherUnitsOwnership(int param_1, int param_2); @@ -181,9 +181,9 @@ namespace Map { void setMissionNumberSpecificLord(int missionNumber); - BOOLEnum checkIfCitizenUnitIsAliveBasedOnState(int param_1); + undefined checkIfCitizenUnitIsAliveBasedOnState(); - bool shouldUnitsEngageInMelee(int param_1, int param_2); + bool canUnitsEngageEachOther(int param_1, int param_2); int ComputeDamageFearFactorBonus(int damage, int playerID); @@ -193,15 +193,15 @@ namespace Map { undefined4 processFireDamageToUnit(int unitID, int playerID, int halfTheDamage); - void shootProjectile(int unitID, EntityType projectileType, int targetX, int targetY, int targetZUnk); + void shootProjectile(int unitID, EntityTypeInt projectileType, int targetX, int targetY, int targetZUnk); void recomputeTroopValuesForPlayer(int playerID); int getArmySize(int playerID); - int computeDistanceToNearestEnemyForLegacyMissions(int param_1); + int distanceComputationForSomeOldCodeForSomeMissions(int param_1); - BOOLEnum returnFalseStub(); + BOOLEnum returnFalse(); void setRandomShootLocation(int unitID, int microX, int microY, int z); @@ -211,17 +211,17 @@ namespace Map { BOOLEnum findClosestLaddermanWithLadderPosition(int unitID); - int findAndDestroyAdjacentEnemyLadder(int param_1, int param_2); + int findAndDestroyAdjacentLadder(int param_1, int param_2); BOOLEnum getDestination2EqualsGivenCoordinates(int unitID, int x, int y); - bool isAtSecondaryDestination(int param_1); + bool isUnitAtDestination(int param_1); - BOOLEnum hasUnitReachedDestination(int unitID); + BOOLEnum unitReachedDestination(int unitID); - BOOLEnum hasTunnelerNotFinishedDigging(int param_1); + BOOLEnum isTunnelerNotFinished(int param_1); - undefined4 computeLadderClimbPath(int unitID, uint param_2, int param_3, int param_4); + undefined4 commitUnitLadderClimbPath(int unitID, uint param_2, int param_3, int param_4); void changeDestinationByAmount(int unitID, int leftover); @@ -229,46 +229,46 @@ namespace Map { void tracePathFromLadderExitSetDestination(int unitID); - void updateUnitFadeAndVisibilityNearStructures(int unitID); + void updateUnitFadeBehindStructures(int unitID); - void saveUnitStateBeforeInterruption(int param_1); + undefined markTunnelerFinishedDigging(); - void despawnUnreachableUnit(int param_1); + void removeTrappedWallUnit(int param_1); void updateMicroPosition(int unitID); void adjustUnitMapOrientationRelatedPositionBasedOnMapOrientationCorrectedFacingDirection(int param_1); - void applyTunnelDamageAlongPathPlan(uint unitID); + void digTunnelAlongPath(uint unitID); int stopUnitIfNextToTarget(int unitID); - undefined4 isWorkplaceBuildingOnAdjacentTile(int param_1); + undefined4 isUnitAdjacentToWorkplace(int param_1); undefined4 setWorkplaceBuildingEntryAsTarget(int unitID, int entryAngleUnk); BOOLEnum unitIsInMoat(int unitID); - void stampOccupancyFlagOnSurroundingTiles(int param_1); + void markUnitTileOccupancy(int param_1); void writeSixToTileMap1104InAllDirections(int unitID, undefined4 six); - int findEligibleUnitByTimeAndLocation( + int getUnitThatFulfillsSomeTimebasedAndLocationBasedCriteria( int unitID, int playerID, int unitXPosition, int unitYPosition, int zero1, int zero2); int selectNewBlessingTarget(int unitID); - void applyDragBoxSelectionByPriority(); + void selectUnitsInDragBox(); - void selectUnitsInDragBoxForCurrentPlayer(); + void selectOwnUnitsInDragBox(); - void selectFirstUnitInDragBoxAnyPlayer(); + void selectSingleUnitInDragBox(); - void selectAllUnitsOfTypeForPlayer(int param_1, int param_2); + void selectAllUnitsOfType(int param_1, int param_2); void deselectAllUnitsOneByOne(); - void deselectUnit(int unitID); + undefined deselectUnit(); void filterUnitSelectionExcludeUnitType(int unitType); @@ -276,37 +276,37 @@ namespace Map { void recountUnitsInSelection(); - int selectionContainsEngineersOnly(); + int isSelectionOnlyEngineers(); BOOLEnum selectionHasEngineers(); BOOLEnum selectionHasArchers(); - undefined4 selectionHasMobileAssaultUnits(); + undefined4 selectionHasAdvancedUnit(); - undefined4 selectionHasMixedAssaultAndInfantry(); + undefined4 selectionHasSiegeAndOther(); - uint getSelectedEngineerCarryingResource(); + uint findEngineerAtOilSmelter(); - int selectionContainsTunnelersOnly(); + int isSelectionOnlyTunnelers(); BOOLEnum selectionContainsRangedOnlyUnits(); - int selectionContainsLadermenOnly(); + int isSelectionOnlyLaddermen(); BOOLEnum selectionContainsOnlyArabAssassins(); - int selectionContainsShieldmenOnly(); + int isSelectionOnlyShields(); - undefined4 selectionHasShieldOrSiegeMobileUnits(); + undefined4 selectionHasSiegeCoverAndOther(); - undefined4 selectionHasShieldOrSiegeTower(); + undefined4 selectionHasShieldOrTowerAndOther(); undefined4 selectionHasNoRangedUnits(); - undefined4 selectionHasFootSoldiers(); + undefined4 selectionCanDigMoat(); - uint getSelectedLordIDIfOwnedByCurrentPlayer(); + uint getSelectedLordUnit(); int createUnitSelection(); @@ -314,75 +314,74 @@ namespace Map { void playerMakeUnitSelection(int playerID, int tribeID); - void getFirstSelectedUnitID(undefined4 param_1); + void queueTribeCommand(undefined4 param_1); - void selectSiegeEngineAndPlayFeedback(int playerID, int unitID, int tribeID); + void assignUnitToTribeWithSiegeSpeech(int playerID, int unitID, int tribeID); void makeSelectionBasedOnShortcut(int section1099ID); BOOLEnum isUnitShortcutAvailable(int unitHotKeyNumber); - void selectTribeUnitsForPlayer(int playerID, int tribeID); + void selectAllTribeUnitsForPlayer(int playerID, int tribeID); - UnitType getUnitTypeOfFirstSelectedUnit(); + UnitTypeInt getUnitTypeOfFirstSelectedUnit(); - undefined4 selectionHasMovableNonSiegeUnit(); + undefined4 selectionHasFieldUnit(); - uint getFirstSelectedUnitOfEitherType(int param_1, int param_2); + uint findSelectedUnitOfTypes(int param_1, int param_2); - int getMaxStoneAmmoInSelectedSiegeEngines(); + int getMaxSelectedCatapultAmmo(); - undefined4 countSelectedCatapultsAndTrebuchets(); + undefined4 countSelectedStoneThrowers(); uint returnFirstSelectedEngineer(); uint getTunnelerIDOnlyIfFirstSelected(); - uint getFirstSelectedLadderUnitID(); + uint getSelectedLadderUnit(); undefined4 canAUnitClimb(); - uint getFirstSelectedSiegeEngineID(); + uint getSelectedSiegeEngine(); - uint getFirstSelectedCatapultOrTrebuchetID(); + uint getSelectedStoneThrower(); - BOOLEnum isTowerTileOvercrowdedByCurrentPlayer(int param_1); + BOOLEnum canCaptureTowerAtTile(int param_1); undefined4 checkAnySelectedUnitCannotClimb(); - BOOLEnum selectionHasUnmannedSiegeEngine(int param_1); + BOOLEnum canManSiegeEngine(int param_1); int selectionContainsCombatUnit(uint unitID); - void queueStopCommand(); + void queueUnitCommand0F(); - void queueUnitTypeCommand(undefined4 unitType); + void queueCommand0xF(undefined4 unitType); void queueClickNavigateMenuOrEscape(undefined4 param_1); - void clearOrDeselectUnitFromSelection(int playerID, uint unitID, int unitType); + void clearUnitSelectionAndTribe(int playerID, uint unitID, int unitType); - void clearSelectionCountsAndPlayerIDs(); + void clearSelectionCounts(); void giveMoveCommand(int tribeID, int x, int y, int patrol, int matchUnitSpeeds); void giveTribeMoveInstructionHumans( - int tribeID, uint x, uint y, int rallyBool, MatchSpeedInstructionEnum speedMatching); + int tribeID, uint x, uint y, int rallyBool, MatchSpeedInstructionEnumInt speedMatching); void extendRallyPoint(int tribeID, int mouseX, int mouseY, int rallyCount); - void queueDisbandAndAttackCommand2Params(undefined4 param_1, undefined4 param_2); + void queueDisbandAndAttackCommand(undefined4 param_1, undefined4 param_2); - void queueDisbandAndAttackCommand3Params(undefined4 param_1, undefined4 param_2, undefined4 param_3); + void queueDisbandAndAttackUnitsCommand(undefined4 param_1, undefined4 param_2, undefined4 param_3); - void queueDisbandAndAttackCommand4Params( - undefined4 param_1, undefined4 param_2, undefined4 param_3, undefined4 param_4); + void queueCommand_36d(undefined4 param_1, undefined4 param_2, undefined4 param_3, undefined4 param_4); - void queueDisbandAndAttackCommand5Params(undefined4 param_1, UnitInstructionType instruction, - undefined4 param_3, undefined4 param_4, undefined4 param_5); + void queueCommand_36_variation2(undefined4 param_1, UnitInstructionTypeInt instruction, undefined4 param_3, + undefined4 param_4, undefined4 param_5); - void relayTribeInstruction( - int tribeID, UnitInstructionType instructionType, int targetID_1, int targetID_2, int param_5); + void giveTribeAnInstruction2( + int tribeID, UnitInstructionTypeInt instructionType, int targetID_1, int targetID_2, int param_5); uint findFreeTileNearby(uint unitID, uint tile); @@ -392,13 +391,13 @@ namespace Map { int getRawDeerCount(); - void findNearestShootableDeer(int param_1); + void findNearestHuntableDeer(int param_1); - int findNearestIdleCowForPlayer(int param_1, int param_2, int param_3); + int findNearestIdleCow(int param_1, int param_2, int param_3); int findClosestAnimalStoreResult(int maxDistance, BOOLEnum excludeCows, uint x, uint y); - int findClosestEnemyByAreaAndRange(int param_1, uint param_2, uint param_3, int param_4); + int findClosestEnemyUnitInArea(int param_1, uint param_2, uint param_3, int param_4); undefined4 tryAttackUnitID(int unitID_1, int unitID_2); @@ -406,25 +405,25 @@ namespace Map { void setAIControlStatusTo100000(); - int clearUnitPositionCommitState(int unitIndex, int* param_2); + int getUnitAnimationIndex(int unitIndex, int* param_2); - GmID getPeasantGmID(int unitID); + GmIDInt getPeasantGmID(int unitID); undefined4 chooseHusbandAndWife(int* husbandID, int* wifeID); - undefined4 isWorkerAtProductionIdleState(int param_1); + undefined isWorkerInProductionState(); - int getWorkerBlockingStateIfStuck(int param_1); + int computeWorkerNextAction(int param_1); - int findActiveSiegeEngineForTribe(int param_1); + int findPlayerOperationalSiegeEngine(int param_1); int getLivingSelectableUnit(int playerID); void renderDebugDataUnitData(int x, int y, int width, int height); - void setUnitValues(int unitID, UnitType unitType); + void setUnitValues(int unitID, UnitTypeInt unitType); - void commitPendingUnitPosition(int unitID); + void commitUnitPositionUpdate(int unitID); void setupUnitSharingCurrentTilePosition(int unitID); @@ -434,25 +433,25 @@ namespace Map { int prepareProjectileTarget(int shooterID, int targetID, int param_3); - undefined4 harassBuildingsWithSiegeAI(int unitID); + undefined4 aiSiegeUnitPickTargetAndShoot(int unitID); BOOLEnum setDestinationForUnit(int unitID, uint x, uint y, int reusePathingInfo); - void resumeMovementAfterInterruption(int unitID); + void resumeUnitMovement(int unitID); void exitLadder(int unitID); uint getUnitInHitBox(undefined4 param_1); - undefined4 setDestinationNearTargetedBuilding(int unitID, int param_2); + undefined4 setUnitDestinationNextToTargetBuilding(int unitID, int param_2); - int selectWorkerSpeechOrMoraleStateID(int unitID); + int computePeasantThoughtBubble(int unitID); void upgradeMapFormatForUnits( - PackagedFileMagicNum receivedMapVersion, PackagedFileMagicNum packagerMapVersion); + PackagedFileMagicNumInt receivedMapVersion, PackagedFileMagicNumInt packagerMapVersion); int spawnUnit(int playerID, int displayColor, int microXPosition, int microYPosition, int terrainHeight, - UnitType unitType); + UnitTypeInt unitType); int changeUnitType(int unitID); @@ -460,9 +459,9 @@ namespace Map { void commitUnitLocation(int unitID); - void resetUnitMovementState(int unitID); + void someUnitMoveFunction(int unitID); - void clearHiddenFlagAndUpdatePosition(int unitID); + void revealHiddenUnit(int unitID); void setPositionOfUnit(int unitID, uint x, uint y, undefined4 height); @@ -472,11 +471,11 @@ namespace Map { void processMeleeInitiation(int unitID); - void resumeMovementIfNoAttackTarget(int param_1); + void resumeUnitIfNotAttacking(int param_1); - dword findNearestEnemyAndHeadTowardsIt(int unitID); + dword unitAcquireBestEnemyTargetAndPursue(int unitID); - BOOLEnum acquireShootTarget(short* unitID); + BOOLEnum acquireAndSetShootTarget(short* unitID); BOOLEnum updateClimbing(int unitID); diff --git a/src/OpenSHC/Map/Version.func.hpp b/src/OpenSHC/Map/Version.func.hpp index f832ee71..d65d35bb 100644 --- a/src/OpenSHC/Map/Version.func.hpp +++ b/src/OpenSHC/Map/Version.func.hpp @@ -101,53 +101,53 @@ namespace Map { &OpenSHC::Map::Version::UpdateDestroyedBuildingCountData) UpdateDestroyedBuildingCountData; - MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0045ACC0, - &OpenSHC::Map::Version::validateLadyAndJesterUnitRefs) - validateLadyAndJesterUnitRefs; + MACRO_FUNCTION_RESOLVER( + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0045ACC0, &OpenSHC::Map::Version::validateCourtUnitRefs) + validateCourtUnitRefs; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0045AD10, - &OpenSHC::Map::Version::initPopularityAndRecruitableDefaults) - initPopularityAndRecruitableDefaults; + &OpenSHC::Map::Version::upgradeRecruitAvailability) + upgradeRecruitAvailability; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0045AE00, &OpenSHC::Map::Version::resetTeams) - resetTeams; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0045AE00, &OpenSHC::Map::Version::resetTeamsForVersion) + resetTeamsForVersion; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004F38A0, &OpenSHC::Map::Version::UpdateTreesOfCertainTypes) UpdateTreesOfCertainTypes; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x005011F0, - &OpenSHC::Map::Version::UpgradeMapLogicToVersion_Unknown1) - UpgradeMapLogicToVersion_Unknown1; + &OpenSHC::Map::Version::upgradeMapClearInvalidDisplayFlag) + upgradeMapClearInvalidDisplayFlag; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00501350, - &OpenSHC::Map::Version::UpgradeMapLogicToVersion_Unknown2) - UpgradeMapLogicToVersion_Unknown2; + &OpenSHC::Map::Version::upgradeMapFixSunkenStairs) + upgradeMapFixSunkenStairs; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00501760, - &OpenSHC::Map::Version::UpgradeMapLogicToVersion_Unknown3) - UpgradeMapLogicToVersion_Unknown3; + &OpenSHC::Map::Version::upgradeMapMarkCompletedMoats) + upgradeMapMarkCompletedMoats; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00523E00, &OpenSHC::Map::Version::UpgradeMapTribesStateVersionTo_142) UpgradeMapTribesStateVersionTo_142; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00523E30, - &OpenSHC::Map::Version::UpgradeMapTribesStateVersionTo_Unknown1) - UpgradeMapTribesStateVersionTo_Unknown1; + &OpenSHC::Map::Version::upgradeMapInitTribeRallyFields) + upgradeMapInitTribeRallyFields; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00523EB0, - &OpenSHC::Map::Version::UpgradeMapTribesStateVersionTo_Unknown2) - UpgradeMapTribesStateVersionTo_Unknown2; + &OpenSHC::Map::Version::upgradeMapRefreshTribeHasUnits) + upgradeMapRefreshTribeHasUnits; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0053B1F0, &OpenSHC::Map::Version::UpgradeMapUnitsTo_117) UpgradeMapUnitsTo_117; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0053B260, - &OpenSHC::Map::Version::UpgradeMapUnitsTo_UnknownVersion2) - UpgradeMapUnitsTo_UnknownVersion2; + &OpenSHC::Map::Version::upgradeMapRederiveUnitCombatAndHealth) + upgradeMapRederiveUnitCombatAndHealth; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0053B310, &OpenSHC::Map::Version::UpgradeMapUnitsTo_114) @@ -162,8 +162,8 @@ namespace Map { UpgradeMapUnitsTo_100; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0053B3E0, - &OpenSHC::Map::Version::UpgradeMapUnitsTo_UnknownVersion1) - UpgradeMapUnitsTo_UnknownVersion1; + &OpenSHC::Map::Version::upgradeMapRederiveUnitGraphicsAndStats) + upgradeMapRederiveUnitGraphicsAndStats; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0053B4F0, &OpenSHC::Map::Version::UpgradeMapUnitsAttackTileLogicTo_122) diff --git a/src/OpenSHC/Map/Version.hpp b/src/OpenSHC/Map/Version.hpp index 38f1d3e8..6a19e689 100644 --- a/src/OpenSHC/Map/Version.hpp +++ b/src/OpenSHC/Map/Version.hpp @@ -56,29 +56,29 @@ namespace Map { void __cdecl UpdateDestroyedBuildingCountData(int param_1); - void __stdcall validateLadyAndJesterUnitRefs(); + void __stdcall validateCourtUnitRefs(); - void __stdcall initPopularityAndRecruitableDefaults(); + void __stdcall upgradeRecruitAvailability(); - void __stdcall resetTeams(); + void __stdcall resetTeamsForVersion(); void __stdcall UpdateTreesOfCertainTypes(); - void __stdcall UpgradeMapLogicToVersion_Unknown1(); + void __stdcall upgradeMapClearInvalidDisplayFlag(); - void __stdcall UpgradeMapLogicToVersion_Unknown2(); + void __stdcall upgradeMapFixSunkenStairs(); - void __stdcall UpgradeMapLogicToVersion_Unknown3(); + void __stdcall upgradeMapMarkCompletedMoats(); void __stdcall UpgradeMapTribesStateVersionTo_142(); - void __stdcall UpgradeMapTribesStateVersionTo_Unknown1(); + void __stdcall upgradeMapInitTribeRallyFields(); - void __stdcall UpgradeMapTribesStateVersionTo_Unknown2(); + void __stdcall upgradeMapRefreshTribeHasUnits(); void __stdcall UpgradeMapUnitsTo_117(); - void __stdcall UpgradeMapUnitsTo_UnknownVersion2(); + void __stdcall upgradeMapRederiveUnitCombatAndHealth(); void __stdcall UpgradeMapUnitsTo_114(); @@ -86,7 +86,7 @@ namespace Map { void __stdcall UpgradeMapUnitsTo_100(); - void __stdcall UpgradeMapUnitsTo_UnknownVersion1(); + void __stdcall upgradeMapRederiveUnitGraphicsAndStats(); void __stdcall UpgradeMapUnitsAttackTileLogicTo_122(); diff --git a/src/OpenSHC/Map/WallAndPitchState.func.hpp b/src/OpenSHC/Map/WallAndPitchState.func.hpp index 846eef90..d2beabd7 100644 --- a/src/OpenSHC/Map/WallAndPitchState.func.hpp +++ b/src/OpenSHC/Map/WallAndPitchState.func.hpp @@ -8,20 +8,20 @@ namespace Map { namespace WallAndPitchState_Func { MACRO_FUNCTION_RESOLVER(void (WallAndPitchState::*)(int), false, Address::SHC_3BB0A8C1_0x00500C20, - &WallAndPitchState::startBuildingDestructionConfirmation) - startBuildingDestructionConfirmation; + &WallAndPitchState::beginBuildingPlacementUndo) + beginBuildingPlacementUndo; MACRO_FUNCTION_RESOLVER(void (WallAndPitchState::*)(), false, Address::SHC_3BB0A8C1_0x00500C80, &WallAndPitchState::resetWallAndPitchState) resetWallAndPitchState; MACRO_FUNCTION_RESOLVER(void (WallAndPitchState::*)(int), false, Address::SHC_3BB0A8C1_0x00500CB0, - &WallAndPitchState::startEntityDestructionConfirmation) - startEntityDestructionConfirmation; + &WallAndPitchState::beginEntityPlacementUndo) + beginEntityPlacementUndo; MACRO_FUNCTION_RESOLVER(void (WallAndPitchState::*)(int), false, Address::SHC_3BB0A8C1_0x00500CF0, - &WallAndPitchState::startUnitDestructionConfirmation) - startUnitDestructionConfirmation; + &WallAndPitchState::beginUnitPlacementUndo) + beginUnitPlacementUndo; MACRO_FUNCTION_RESOLVER(void (WallAndPitchState::*)(), false, Address::SHC_3BB0A8C1_0x00500D30, &WallAndPitchState::resetWallPlacementInfo) @@ -44,12 +44,12 @@ namespace Map { destroyPitch; MACRO_FUNCTION_RESOLVER(void (WallAndPitchState::*)(), false, Address::SHC_3BB0A8C1_0x00500F40, - &WallAndPitchState::updateDestructionConfirmationCountdown) - updateDestructionConfirmationCountdown; + &WallAndPitchState::tickPlacementUndoTimer) + tickPlacementUndoTimer; MACRO_FUNCTION_RESOLVER(void (WallAndPitchState::*)(), false, Address::SHC_3BB0A8C1_0x005118C0, - &WallAndPitchState::confirmAndQueueDestructionCommand) - confirmAndQueueDestructionCommand; + &WallAndPitchState::commitPlacementUndo) + commitPlacementUndo; } // namespace WallAndPitchState_Func } // namespace Map diff --git a/src/OpenSHC/Map/WallAndPitchState.hpp b/src/OpenSHC/Map/WallAndPitchState.hpp index 5319cf5d..908d0dd4 100644 --- a/src/OpenSHC/Map/WallAndPitchState.hpp +++ b/src/OpenSHC/Map/WallAndPitchState.hpp @@ -39,13 +39,13 @@ namespace Map { WallAndPitchState() {}; ~WallAndPitchState() {}; - void startBuildingDestructionConfirmation(int buildingID); + void beginBuildingPlacementUndo(int buildingID); void resetWallAndPitchState(); - void startEntityDestructionConfirmation(int entityID); + void beginEntityPlacementUndo(int entityID); - void startUnitDestructionConfirmation(int unitID); + void beginUnitPlacementUndo(int unitID); void resetWallPlacementInfo(); @@ -57,9 +57,9 @@ namespace Map { void destroyPitch(int playerID, int count, int amount); - void updateDestructionConfirmationCountdown(); + void tickPlacementUndoTimer(); - void confirmAndQueueDestructionCommand(); + void commitPlacementUndo(); }; static_assert_cpp98_obj(sizeof(WallAndPitchState) == 2432, WallAndPitchState); diff --git a/src/OpenSHC/Map/WildlifeState.func.hpp b/src/OpenSHC/Map/WildlifeState.func.hpp index 89c5da0f..a8972e58 100644 --- a/src/OpenSHC/Map/WildlifeState.func.hpp +++ b/src/OpenSHC/Map/WildlifeState.func.hpp @@ -19,41 +19,41 @@ namespace Map { &WildlifeState::renderDebugDataMapData) renderDebugDataMapData; - MACRO_FUNCTION_RESOLVER(void (WildlifeState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0052C570, - &WildlifeState::floodFillField13FromCell) - floodFillField13FromCell; + MACRO_FUNCTION_RESOLVER(undefined (WildlifeState::*)(), false, Address::SHC_3BB0A8C1_0x0052C570, + &WildlifeState::floodFillWildlifeDangerField) + floodFillWildlifeDangerField; - MACRO_FUNCTION_RESOLVER(void (WildlifeState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0052C810, - &WildlifeState::floodFillField20FromCell) - floodFillField20FromCell; + MACRO_FUNCTION_RESOLVER(undefined (WildlifeState::*)(), false, Address::SHC_3BB0A8C1_0x0052C810, + &WildlifeState::floodFillWildlifeGrazingField) + floodFillWildlifeGrazingField; MACRO_FUNCTION_RESOLVER(void (WildlifeState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0052CAB0, &WildlifeState::findAndSetNewRallyPointForDeerAndLions) findAndSetNewRallyPointForDeerAndLions; MACRO_FUNCTION_RESOLVER(undefined4 (WildlifeState::*)(int), false, Address::SHC_3BB0A8C1_0x0052CFE0, - &WildlifeState::buildRallyPointPathForTribe) - buildRallyPointPathForTribe; + &WildlifeState::buildWildlifeGrazingPath) + buildWildlifeGrazingPath; MACRO_FUNCTION_RESOLVER(undefined4 (WildlifeState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0052D620, - &WildlifeState::hasAdjacentCellWithField24Or25) - hasAdjacentCellWithField24Or25; + &WildlifeState::hasAdjacentWildlifeMarker) + hasAdjacentWildlifeMarker; MACRO_FUNCTION_RESOLVER(undefined4 (WildlifeState::*)(int, int), false, Address::SHC_3BB0A8C1_0x0052D690, - &WildlifeState::isSuitableWildlifeSpawnCell) - isSuitableWildlifeSpawnCell; + &WildlifeState::isGoodGrazingCell) + isGoodGrazingCell; MACRO_FUNCTION_RESOLVER(void (WildlifeState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0052D720, - &WildlifeState::floodFillUnknownNonZero01FromCell) - floodFillUnknownNonZero01FromCell; + &WildlifeState::floodFillWildlifeClaimField) + floodFillWildlifeClaimField; - MACRO_FUNCTION_RESOLVER(void (WildlifeState::*)(), false, Address::SHC_3BB0A8C1_0x0052D9D0, - &WildlifeState::floodFillCasDisFromSignpost) - floodFillCasDisFromSignpost; + MACRO_FUNCTION_RESOLVER(undefined (WildlifeState::*)(), false, Address::SHC_3BB0A8C1_0x0052D9D0, + &WildlifeState::mapWildlifeFromAttackSignpost) + mapWildlifeFromAttackSignpost; MACRO_FUNCTION_RESOLVER(int (WildlifeState::*)(), false, Address::SHC_3BB0A8C1_0x0052DD20, - &WildlifeState::getDistanceToNearestUnknownNonZero01FromSignpost) - getDistanceToNearestUnknownNonZero01FromSignpost; + &WildlifeState::distanceFromSignpostToClaimedCell) + distanceFromSignpostToClaimedCell; MACRO_FUNCTION_RESOLVER( void (WildlifeState::*)(), false, Address::SHC_3BB0A8C1_0x0052DF30, &WildlifeState::updateWildlife) diff --git a/src/OpenSHC/Map/WildlifeState.hpp b/src/OpenSHC/Map/WildlifeState.hpp index 4f160706..39505887 100644 --- a/src/OpenSHC/Map/WildlifeState.hpp +++ b/src/OpenSHC/Map/WildlifeState.hpp @@ -45,23 +45,23 @@ namespace Map { void renderDebugDataMapData(int x, int y, int width, int height); - void floodFillField13FromCell(int param_1, int param_2, int param_3); + undefined floodFillWildlifeDangerField(); - void floodFillField20FromCell(int param_1, int param_2, int param_3); + undefined floodFillWildlifeGrazingField(); void findAndSetNewRallyPointForDeerAndLions(int tribeID, int always2or3or5, int always0or1); - undefined4 buildRallyPointPathForTribe(int param_1); + undefined4 buildWildlifeGrazingPath(int param_1); - undefined4 hasAdjacentCellWithField24Or25(int param_1, int param_2); + undefined4 hasAdjacentWildlifeMarker(int param_1, int param_2); - undefined4 isSuitableWildlifeSpawnCell(int param_1, int param_2); + undefined4 isGoodGrazingCell(int param_1, int param_2); - void floodFillUnknownNonZero01FromCell(int param_1, int param_2, int param_3); + void floodFillWildlifeClaimField(int param_1, int param_2, int param_3); - void floodFillCasDisFromSignpost(); + undefined mapWildlifeFromAttackSignpost(); - int getDistanceToNearestUnknownNonZero01FromSignpost(); + int distanceFromSignpostToClaimedCell(); void updateWildlife(); diff --git a/src/OpenSHC/Meta.func.hpp b/src/OpenSHC/Meta.func.hpp index bf31d39a..5229b3ae 100644 --- a/src/OpenSHC/Meta.func.hpp +++ b/src/OpenSHC/Meta.func.hpp @@ -29,8 +29,8 @@ namespace Meta_Func { Destructor_MenuView_UnusedEconomicMissionSelect; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CD70, - &OpenSHC::Meta::Destructor_MenuView_UnusedSomeMissionStartUnk) - Destructor_MenuView_UnusedSomeMissionStartUnk; + &OpenSHC::Meta::Destructor_MenuView_UnusedMissionStart) + Destructor_MenuView_UnusedMissionStart; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CD80, &OpenSHC::Meta::Destructor_MenuView_UnusedOldTitleMenu) @@ -41,28 +41,28 @@ namespace Meta_Func { Destructor_MenuView_MpConnection; MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CDA0, &OpenSHC::Meta::Destructor_MenuView_Unknown21) - Destructor_MenuView_Unknown21; + void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CDA0, &OpenSHC::Meta::Destructor_MenuView_MainMenuModal21) + Destructor_MenuView_MainMenuModal21; MACRO_FUNCTION_RESOLVER( void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CDB0, &OpenSHC::Meta::Destructor_MenuView_LobbyMenu) Destructor_MenuView_LobbyMenu; - MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CDC0, &OpenSHC::Meta::Destructor_MenuView_Unknown33) - Destructor_MenuView_Unknown33; + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CDC0, + &OpenSHC::Meta::Destructor_MenuView_LobbyReadyLaunch33) + Destructor_MenuView_LobbyReadyLaunch33; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CDD0, - &OpenSHC::Meta::Destructor_MenuView_Unknown61ReturnToSkrimishMenuUnk) - Destructor_MenuView_Unknown61ReturnToSkrimishMenuUnk; + &OpenSHC::Meta::Destructor_MenuView_ReturnToSkirmishMenu61) + Destructor_MenuView_ReturnToSkirmishMenu61; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CDE0, &OpenSHC::Meta::Destructor_MenuView_SingleplayerMapChoice) Destructor_MenuView_SingleplayerMapChoice; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CDF0, - &OpenSHC::Meta::Destructor_MenuView_Unknown49DoesNothingUnk) - Destructor_MenuView_Unknown49DoesNothingUnk; + &OpenSHC::Meta::Destructor_MenuView_Placeholder49DoesNothing) + Destructor_MenuView_Placeholder49DoesNothing; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CE00, &OpenSHC::Meta::Destructor_MenuView_MapEditorLandscaping) @@ -105,12 +105,12 @@ namespace Meta_Func { Destructor_MenuView_UnusedCreateSiege; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CEA0, - &OpenSHC::Meta::Destructor_MenuView_Unknown26_CampaignRelatedUnk) - Destructor_MenuView_Unknown26_CampaignRelatedUnk; + &OpenSHC::Meta::Destructor_MenuView_CampaignCredits26) + Destructor_MenuView_CampaignCredits26; MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CEB0, &OpenSHC::Meta::Destructor_MenuView_CampaignUnk) - Destructor_MenuView_CampaignUnk; + void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CEB0, &OpenSHC::Meta::Destructor_MenuView_Campaign27) + Destructor_MenuView_Campaign27; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059CEC0, &OpenSHC::Meta::Destructor_MenuView_ScenarioDescription) @@ -221,8 +221,8 @@ namespace Meta_Func { Destructor_MenuModal_DebugDataUnitData; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D080, - &OpenSHC::Meta::Destructor_MenuModal_DebugDataZoneDataUnk) - Destructor_MenuModal_DebugDataZoneDataUnk; + &OpenSHC::Meta::Destructor_MenuModal_DebugDataZoneData) + Destructor_MenuModal_DebugDataZoneData; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D090, &OpenSHC::Meta::Destructor_MenuModal_DebugDataNetwork) @@ -341,8 +341,8 @@ namespace Meta_Func { Destructor_MenuModal_StartGoods; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D260, - &OpenSHC::Meta::Destructor_MenuModal_UnusedSiegeAttackingForceUnk) - Destructor_MenuModal_UnusedSiegeAttackingForceUnk; + &OpenSHC::Meta::Destructor_MenuModal_UnusedSiegeAttackingForce) + Destructor_MenuModal_UnusedSiegeAttackingForce; MACRO_FUNCTION_RESOLVER( void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D270, &OpenSHC::Meta::Destructor_MenuModal_NewInvasion) @@ -444,9 +444,9 @@ namespace Meta_Func { void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D3F0, &OpenSHC::Meta::Destructor_MenuModal_SendMapTo) Destructor_MenuModal_SendMapTo; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D400, - &OpenSHC::Meta::Destructor_MenuModal_ReceiveMapFromUnk) - Destructor_MenuModal_ReceiveMapFromUnk; + MACRO_FUNCTION_RESOLVER( + void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D400, &OpenSHC::Meta::Destructor_MenuModal_ReceiveMapFrom) + Destructor_MenuModal_ReceiveMapFrom; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D410, &OpenSHC::Meta::Destructor_MenuModal_BasicAiLordSelect) @@ -493,8 +493,8 @@ namespace Meta_Func { Destructor_MenuModal_TacticalPowerBar; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D4C0, - &OpenSHC::Meta::Destructor_MenuModal_DebugDataAivStateUnk) - Destructor_MenuModal_DebugDataAivStateUnk; + &OpenSHC::Meta::Destructor_MenuModal_DebugDataAivState) + Destructor_MenuModal_DebugDataAivState; MACRO_FUNCTION_RESOLVER( void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D4D0, &OpenSHC::Meta::Destructor_0059d4d0) @@ -569,8 +569,8 @@ namespace Meta_Func { Destructor_Stopwatch_Gameloop; MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D5F0, &OpenSHC::Meta::Destructor_Stopwatch_Unknown) - Destructor_Stopwatch_Unknown; + void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D5F0, &OpenSHC::Meta::Destructor_Stopwatch) + Destructor_Stopwatch; MACRO_FUNCTION_RESOLVER( void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0059D600, &OpenSHC::Meta::Destructor_0059d600) diff --git a/src/OpenSHC/Meta.hpp b/src/OpenSHC/Meta.hpp index cf520112..7f7be25a 100644 --- a/src/OpenSHC/Meta.hpp +++ b/src/OpenSHC/Meta.hpp @@ -19,23 +19,23 @@ namespace Meta { void __cdecl Destructor_MenuView_UnusedEconomicMissionSelect(); - void __cdecl Destructor_MenuView_UnusedSomeMissionStartUnk(); + void __cdecl Destructor_MenuView_UnusedMissionStart(); void __cdecl Destructor_MenuView_UnusedOldTitleMenu(); void __cdecl Destructor_MenuView_MpConnection(); - void __cdecl Destructor_MenuView_Unknown21(); + void __cdecl Destructor_MenuView_MainMenuModal21(); void __cdecl Destructor_MenuView_LobbyMenu(); - void __cdecl Destructor_MenuView_Unknown33(); + void __cdecl Destructor_MenuView_LobbyReadyLaunch33(); - void __cdecl Destructor_MenuView_Unknown61ReturnToSkrimishMenuUnk(); + void __cdecl Destructor_MenuView_ReturnToSkirmishMenu61(); void __cdecl Destructor_MenuView_SingleplayerMapChoice(); - void __cdecl Destructor_MenuView_Unknown49DoesNothingUnk(); + void __cdecl Destructor_MenuView_Placeholder49DoesNothing(); void __cdecl Destructor_MenuView_MapEditorLandscaping(); @@ -57,9 +57,9 @@ namespace Meta { void __cdecl Destructor_MenuView_UnusedCreateSiege(); - void __cdecl Destructor_MenuView_Unknown26_CampaignRelatedUnk(); + void __cdecl Destructor_MenuView_CampaignCredits26(); - void __cdecl Destructor_MenuView_CampaignUnk(); + void __cdecl Destructor_MenuView_Campaign27(); void __cdecl Destructor_MenuView_ScenarioDescription(); @@ -115,7 +115,7 @@ namespace Meta { void __cdecl Destructor_MenuModal_DebugDataUnitData(); - void __cdecl Destructor_MenuModal_DebugDataZoneDataUnk(); + void __cdecl Destructor_MenuModal_DebugDataZoneData(); void __cdecl Destructor_MenuModal_DebugDataNetwork(); @@ -175,7 +175,7 @@ namespace Meta { void __cdecl Destructor_MenuModal_StartGoods(); - void __cdecl Destructor_MenuModal_UnusedSiegeAttackingForceUnk(); + void __cdecl Destructor_MenuModal_UnusedSiegeAttackingForce(); void __cdecl Destructor_MenuModal_NewInvasion(); @@ -227,7 +227,7 @@ namespace Meta { void __cdecl Destructor_MenuModal_SendMapTo(); - void __cdecl Destructor_MenuModal_ReceiveMapFromUnk(); + void __cdecl Destructor_MenuModal_ReceiveMapFrom(); void __cdecl Destructor_MenuModal_BasicAiLordSelect(); @@ -251,7 +251,7 @@ namespace Meta { void __cdecl Destructor_MenuModal_TacticalPowerBar(); - void __cdecl Destructor_MenuModal_DebugDataAivStateUnk(); + void __cdecl Destructor_MenuModal_DebugDataAivState(); void __cdecl Destructor_0059d4d0(); @@ -289,7 +289,7 @@ namespace Meta { void __cdecl Destructor_Stopwatch_Gameloop(); - void __cdecl Destructor_Stopwatch_Unknown(); + void __cdecl Destructor_Stopwatch(); void __cdecl Destructor_0059d600(); diff --git a/src/OpenSHC/OS.func.hpp b/src/OpenSHC/OS.func.hpp index e1d376cc..3dc1218c 100644 --- a/src/OpenSHC/OS.func.hpp +++ b/src/OpenSHC/OS.func.hpp @@ -30,9 +30,9 @@ namespace OS_Func { Address::SHC_3BB0A8C1_0x0047C5D0, &OpenSHC::OS::isEqualGUID) isEqualGUID; - MACRO_FUNCTION_RESOLVER( - tm*(__cdecl*)(time_t* _Time), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057F5FE, &OpenSHC::OS::_localtime) - _localtime; + MACRO_FUNCTION_RESOLVER(tm*(__cdecl*)(__time32_t * _Time), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057F5FE, + &OpenSHC::OS::__localtime64) + __localtime64; MACRO_FUNCTION_RESOLVER(__time64_t(__cdecl*)(__time64_t* _Time), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0057F622, &OpenSHC::OS::__time64) @@ -153,6 +153,10 @@ namespace OS_Func { REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x0058277E, &OpenSHC::OS::_ucrt_lseek) _ucrt_lseek; + MACRO_FUNCTION_RESOLVER( + undefined4(__stdcall*)(), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x005834A0, &OpenSHC::OS::__alloca_probe) + __alloca_probe; + MACRO_FUNCTION_RESOLVER(int(__cdecl*)(char* _Str1, char* _Str2, size_t _MaxCount), REIMPLEMENTED_CRT, Address::SHC_3BB0A8C1_0x005835BB, &OpenSHC::OS::__strnicmp) __strnicmp; diff --git a/src/OpenSHC/OS.hpp b/src/OpenSHC/OS.hpp index ca61c822..475a466a 100644 --- a/src/OpenSHC/OS.hpp +++ b/src/OpenSHC/OS.hpp @@ -27,7 +27,7 @@ namespace OS { BOOLEnum __cdecl isEqualGUID(GUID* param_1, GUID* param_2); - tm* __cdecl _localtime(time_t* _Time); + tm* __cdecl __localtime64(__time32_t* _Time); __time64_t __cdecl __time64(__time64_t* _Time); @@ -89,6 +89,8 @@ namespace OS { int __cdecl _ucrt_lseek(int fileDescriptor, long lDistanceToMove, DWORD moveMethod); + undefined4 __stdcall __alloca_probe(); + int __cdecl __strnicmp(char* _Str1, char* _Str2, size_t _MaxCount); void __cdecl _exit(int _Code); diff --git a/src/OpenSHC/Rendering.func.hpp b/src/OpenSHC/Rendering.func.hpp index c33c5194..5545c0f8 100644 --- a/src/OpenSHC/Rendering.func.hpp +++ b/src/OpenSHC/Rendering.func.hpp @@ -17,12 +17,12 @@ namespace Rendering_Func { ApplyBlending; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00453B00, &OpenSHC::Rendering::BlitMapImageWithVerticalClip) - BlitMapImageWithVerticalClip; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00453B00, &OpenSHC::Rendering::blitGmSpriteToMapSurface) + blitGmSpriteToMapSurface; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00454080, - &OpenSHC::Rendering::BlitMapImageWithVerticalClipAndYOffset) - BlitMapImageWithVerticalClipAndYOffset; + &OpenSHC::Rendering::blitGmSpriteToMapSurfacePartial) + blitGmSpriteToMapSurfacePartial; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0046CF10, &OpenSHC::Rendering::TicksStartCounter) @@ -33,12 +33,12 @@ namespace Rendering_Func { viewportBasedTileNumber; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004E0A50, &OpenSHC::Rendering::ProcessCreditsScriptCommands) - ProcessCreditsScriptCommands; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004E0A50, &OpenSHC::Rendering::processCreditsCommandSequence) + processCreditsCommandSequence; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004E12C0, &OpenSHC::Rendering::RenderActiveCreditsElements) - RenderActiveCreditsElements; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004E12C0, &OpenSHC::Rendering::renderCreditsScreen) + renderCreditsScreen; } // namespace Rendering_Func } // namespace OpenSHC diff --git a/src/OpenSHC/Rendering.hpp b/src/OpenSHC/Rendering.hpp index f184c903..9e45da80 100644 --- a/src/OpenSHC/Rendering.hpp +++ b/src/OpenSHC/Rendering.hpp @@ -13,17 +13,17 @@ namespace Rendering { void __cdecl ApplyBlending(int param_1); - void __stdcall BlitMapImageWithVerticalClip(); + void __stdcall blitGmSpriteToMapSurface(); - void __stdcall BlitMapImageWithVerticalClipAndYOffset(); + void __stdcall blitGmSpriteToMapSurfacePartial(); void __stdcall TicksStartCounter(); int __stdcall viewportBasedTileNumber(); - void __stdcall ProcessCreditsScriptCommands(); + void __stdcall processCreditsCommandSequence(); - void __stdcall RenderActiveCreditsElements(); + void __stdcall renderCreditsScreen(); } // namespace Rendering } // namespace OpenSHC diff --git a/src/OpenSHC/Rendering/Bink/AIMessageQueue.func.hpp b/src/OpenSHC/Rendering/Bink/AIMessageQueue.func.hpp index 11fd9043..b6a48c4d 100644 --- a/src/OpenSHC/Rendering/Bink/AIMessageQueue.func.hpp +++ b/src/OpenSHC/Rendering/Bink/AIMessageQueue.func.hpp @@ -19,8 +19,8 @@ namespace Rendering { &AIMessageQueue::playAiLordMessage) playAiLordMessage; - MACRO_FUNCTION_RESOLVER(void (AIMessageQueue::*)(char*, char*, char*), false, - Address::SHC_3BB0A8C1_0x004BE7E0, &AIMessageQueue::playEventVideoBik) + MACRO_FUNCTION_RESOLVER(undefined (AIMessageQueue::*)(), false, Address::SHC_3BB0A8C1_0x004BE7E0, + &AIMessageQueue::playEventVideoBik) playEventVideoBik; MACRO_FUNCTION_RESOLVER(void (AIMessageQueue::*)(char*, char*, char*, int), false, diff --git a/src/OpenSHC/Rendering/Bink/AIMessageQueue.hpp b/src/OpenSHC/Rendering/Bink/AIMessageQueue.hpp index cdfc7cf0..be470e8c 100644 --- a/src/OpenSHC/Rendering/Bink/AIMessageQueue.hpp +++ b/src/OpenSHC/Rendering/Bink/AIMessageQueue.hpp @@ -49,7 +49,7 @@ namespace Rendering { void playAiLordMessage(int param_1, int param_2); - void playEventVideoBik(char* eventText, char* eventVideoBik, char* eventWavFile); + undefined playEventVideoBik(); void prepareSFXandVFX(char* messageText, char* messageVfxFile, char* messageSfxFile, int param_4); diff --git a/src/OpenSHC/Rendering/Bink/BinkControlClass.func.hpp b/src/OpenSHC/Rendering/Bink/BinkControlClass.func.hpp index 999749e0..a1133f31 100644 --- a/src/OpenSHC/Rendering/Bink/BinkControlClass.func.hpp +++ b/src/OpenSHC/Rendering/Bink/BinkControlClass.func.hpp @@ -2,7 +2,7 @@ path: 'OpenSHC/Rendering/Bink/BinkControlClass.func.hpp' */ -#include "OpenSHC/Audio/MSS/enums/SHC_SoundStream.hpp" +#include "OpenSHC/Audio/MSS/enums/SHC_SoundStreamInt.hpp" #include "OpenSHC/Rendering/Bink/BinkControlClass.hpp" #include "Mss32.h" @@ -12,7 +12,7 @@ namespace Rendering { namespace Bink { namespace BinkControlClass_Func { - using OpenSHC::Audio::MSS::enums::SHC_SoundStream; + using OpenSHC::Audio::MSS::enums::SHC_SoundStreamInt; MACRO_FUNCTION_RESOLVER(void (BinkControlClass::*)(HDIGDRIVER), false, Address::SHC_3BB0A8C1_0x00408E10, &BinkControlClass::zeroBinkPtrAndLoadBinkSoundSystem) @@ -22,7 +22,7 @@ namespace Rendering { &BinkControlClass::stopBinkPlayback) stopBinkPlayback; - MACRO_FUNCTION_RESOLVER(void (BinkControlClass::*)(int, SHC_SoundStream), false, + MACRO_FUNCTION_RESOLVER(void (BinkControlClass::*)(int, SHC_SoundStreamInt), false, Address::SHC_3BB0A8C1_0x00408E70, &BinkControlClass::setBinkSndStreamAndStartTime) setBinkSndStreamAndStartTime; diff --git a/src/OpenSHC/Rendering/Bink/BinkControlClass.hpp b/src/OpenSHC/Rendering/Bink/BinkControlClass.hpp index 3b3d9dbe..2b9641de 100644 --- a/src/OpenSHC/Rendering/Bink/BinkControlClass.hpp +++ b/src/OpenSHC/Rendering/Bink/BinkControlClass.hpp @@ -8,7 +8,6 @@ #pragma once -#include "OpenSHC/Audio/MSS/enums/SHC_SoundStream.hpp" #include "OpenSHC/Audio/MSS/enums/SHC_SoundStreamInt.hpp" #include "OpenSHC/Rendering/Bink/UnsortedBinkFlagInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -21,7 +20,6 @@ namespace OpenSHC { namespace Rendering { namespace Bink { - using OpenSHC::Audio::MSS::enums::SHC_SoundStream; using OpenSHC::Audio::MSS::enums::SHC_SoundStreamInt; using OpenSHC::Rendering::Bink::UnsortedBinkFlagInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; @@ -57,7 +55,7 @@ namespace Rendering { void stopBinkPlayback(int binkObjIndex); - void setBinkSndStreamAndStartTime(int binkObjIndex, SHC_SoundStream soundStreamIndexUnk); + void setBinkSndStreamAndStartTime(int binkObjIndex, SHC_SoundStreamInt soundStreamIndexUnk); void stopAllBinkPlayback(); diff --git a/src/OpenSHC/Rendering/CreditsRelatedStructure2.hpp b/src/OpenSHC/Rendering/CreditsRelatedStructure2.hpp index 510e7b6b..d62e4048 100644 --- a/src/OpenSHC/Rendering/CreditsRelatedStructure2.hpp +++ b/src/OpenSHC/Rendering/CreditsRelatedStructure2.hpp @@ -8,13 +8,13 @@ #pragma once -#include "OpenSHC/Audio/MSS/SoundFlagsAndLoopCount.hpp" +#include "OpenSHC/Audio/MSS/UnkSoundFlagsAndLoopCount.hpp" #include "OpenSHC/Audio/MSS/enums/SHC_SoundStreamInt.hpp" namespace OpenSHC { namespace Rendering { - using OpenSHC::Audio::MSS::SoundFlagsAndLoopCount; + using OpenSHC::Audio::MSS::UnkSoundFlagsAndLoopCount; using OpenSHC::Audio::MSS::enums::SHC_SoundStreamInt; #pragma pack(push, 1) @@ -29,7 +29,7 @@ namespace Rendering { int field5_0x14; // 0x00000014 length: 4 int field6_0x18; // 0x00000018 length: 4 undefined1 padding_0x1c[4]; // 0x0000001C length: 4 - SoundFlagsAndLoopCount flagLoopCount; // 0x00000020 length: 4 + UnkSoundFlagsAndLoopCount flagLoopCount; // 0x00000020 length: 4 int binkObjIndex; // 0x00000024 length: 4 int field13_0x28; // 0x00000028 length: 4 int volume; // 0x0000002C length: 4 diff --git a/src/OpenSHC/Rendering/MapRenderDefinedData.hpp b/src/OpenSHC/Rendering/MapRenderDefinedData.hpp index 9fcb92f1..0ccc2aef 100644 --- a/src/OpenSHC/Rendering/MapRenderDefinedData.hpp +++ b/src/OpenSHC/Rendering/MapRenderDefinedData.hpp @@ -221,15 +221,15 @@ namespace Rendering { int field202_0x4d0; // 0x000004D0 length: 4 int field203_0x4d4; // 0x000004D4 length: 4 int field204_0x4d8; // 0x000004D8 length: 4 - int field205_0x4dc[12]; // 0x000004DC length: 48 + int mapCfg_0x4dc[12]; // 0x000004DC length: 48 undefined1 padding_0x50c[408]; // 0x0000050C length: 408 - int field614_0x6a4[32]; // 0x000006A4 length: 128 - byte field615_0x724[512]; // 0x00000724 length: 512 - byte field616_0x924[512]; // 0x00000924 length: 512 - byte field617_0xb24[256]; // 0x00000B24 length: 256 - int field618_0xc24[16][16]; // 0x00000C24 length: 1024 - int field619_0x1024[16][16]; // 0x00001024 length: 1024 - int field620_0x1424[16][16]; // 0x00001424 length: 1024 + int mapCfg_0x6a4[32]; // 0x000006A4 length: 128 + byte mapCfg_0x724[512]; // 0x00000724 length: 512 + byte mapCfg_0x924[512]; // 0x00000924 length: 512 + byte mapCfg_0xb24[256]; // 0x00000B24 length: 256 + int updateBuildingPreviewPositCfg_0xc24[16][16]; // 0x00000C24 length: 1024 + int updateBuildingPreviewPositCfg_0x1024[16][16]; // 0x00001024 length: 1024 + int updateBuildingPreviewPositCfg_0x1424[16][16]; // 0x00001424 length: 1024 XYPair DAT_BuildingPreviewPositionRelatedOffsets[110][2]; // 0x00001824 length: 1760 } MapRenderDefinedData; diff --git a/src/OpenSHC/Rendering/ViewportRenderState.func.hpp b/src/OpenSHC/Rendering/ViewportRenderState.func.hpp index 6f1924d7..0a731d73 100644 --- a/src/OpenSHC/Rendering/ViewportRenderState.func.hpp +++ b/src/OpenSHC/Rendering/ViewportRenderState.func.hpp @@ -2,14 +2,14 @@ path: 'OpenSHC/Rendering/ViewportRenderState.func.hpp' */ -#include "OpenSHC/IO/Graphics/GmID.hpp" +#include "OpenSHC/IO/Graphics/GmIDInt.hpp" #include "OpenSHC/Rendering/ViewportRenderState.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace Rendering { namespace ViewportRenderState_Func { - using OpenSHC::IO::Graphics::GmID; + using OpenSHC::IO::Graphics::GmIDInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(BOOLEnum (ViewportRenderState::*)(uint, uint), false, Address::SHC_3BB0A8C1_0x00401000, @@ -21,8 +21,8 @@ namespace Rendering { translateXYToTile; MACRO_FUNCTION_RESOLVER(int (ViewportRenderState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004092E0, - &ViewportRenderState::computeTileXOffset) - computeTileXOffset; + &ViewportRenderState::tileIndexToColumn) + tileIndexToColumn; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E2050, &ViewportRenderState::setTileSystemMemoryLookupArrays) @@ -37,8 +37,8 @@ namespace Rendering { resetBatchedRender; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(int), false, Address::SHC_3BB0A8C1_0x004E2630, - &ViewportRenderState::renderAssassinClimbingOverlay) - renderAssassinClimbingOverlay; + &ViewportRenderState::renderAssassinClimbOverlay) + renderAssassinClimbOverlay; MACRO_FUNCTION_RESOLVER( void (ViewportRenderState::*)(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, int), @@ -65,11 +65,11 @@ namespace Rendering { &ViewportRenderState::setViewportBasedOnMapSize) setViewportBasedOnMapSize; - MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E5D80, + MACRO_FUNCTION_RESOLVER(undefined (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E5D80, &ViewportRenderState::setupMouseTileXY2) setupMouseTileXY2; - MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E5DD0, + MACRO_FUNCTION_RESOLVER(undefined (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E5DD0, &ViewportRenderState::setupMouseTileXY) setupMouseTileXY; @@ -78,23 +78,23 @@ namespace Rendering { focusOnTile; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004E5ED0, - &ViewportRenderState::computeMouseTileFromScreenPosition) - computeMouseTileFromScreenPosition; + &ViewportRenderState::computeHoveredTileWithHeight) + computeHoveredTileWithHeight; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E6340, - &ViewportRenderState::clearAllFloatingLayerElements) - clearAllFloatingLayerElements; + &ViewportRenderState::clearAllFloaters) + clearAllFloaters; - MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(GmID, int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x004E63A0, &ViewportRenderState::createFloatingLayerElement) - createFloatingLayerElement; + MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(GmIDInt, int, int, int, int, int), false, + Address::SHC_3BB0A8C1_0x004E63A0, &ViewportRenderState::creataAFloatingLayerElement) + creataAFloatingLayerElement; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(int, int, int, int), false, Address::SHC_3BB0A8C1_0x004E64D0, &ViewportRenderState::renderDebugDataMousePointing) renderDebugDataMousePointing; - MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(undefined4, undefined4, undefined4, undefined4), false, - Address::SHC_3BB0A8C1_0x004E66F0, &ViewportRenderState::setupViewport) + MACRO_FUNCTION_RESOLVER(undefined (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E66F0, + &ViewportRenderState::setupViewport) setupViewport; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(int), false, Address::SHC_3BB0A8C1_0x004E7770, @@ -114,20 +114,20 @@ namespace Rendering { updateBuildingPreviewPosition; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E8C50, - &ViewportRenderState::saveFocusTileAndCenterPreview) - saveFocusTileAndCenterPreview; + &ViewportRenderState::centerBuildingPreview) + centerBuildingPreview; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E8C90, - &ViewportRenderState::restoreFocusTile) - restoreFocusTile; + &ViewportRenderState::focusOnSavedTile) + focusOnSavedTile; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004E8CA0, &ViewportRenderState::focusOnCoordinate) focusOnCoordinate; MACRO_FUNCTION_RESOLVER(void (ViewportRenderState::*)(int, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x004E8CC0, &ViewportRenderState::createFloatingTextElement) - createFloatingTextElement; + Address::SHC_3BB0A8C1_0x004E8CC0, &ViewportRenderState::addFloatingDisplayElement) + addFloatingDisplayElement; MACRO_FUNCTION_RESOLVER( void (ViewportRenderState::*)(), false, Address::SHC_3BB0A8C1_0x004E8CF0, &ViewportRenderState::renderMap) diff --git a/src/OpenSHC/Rendering/ViewportRenderState.hpp b/src/OpenSHC/Rendering/ViewportRenderState.hpp index bbbfded9..dd40e0ff 100644 --- a/src/OpenSHC/Rendering/ViewportRenderState.hpp +++ b/src/OpenSHC/Rendering/ViewportRenderState.hpp @@ -8,7 +8,7 @@ #pragma once -#include "OpenSHC/IO/Graphics/GmID.hpp" +#include "OpenSHC/IO/Graphics/GmIDInt.hpp" #include "OpenSHC/Map/Floaters/Floater.hpp" #include "OpenSHC/Map/Matrices/TranslationMatrixTriplet.hpp" #include "OpenSHC/Rendering/UnitRenderHelpStructure.hpp" @@ -18,7 +18,7 @@ namespace OpenSHC { namespace Rendering { - using OpenSHC::IO::Graphics::GmID; + using OpenSHC::IO::Graphics::GmIDInt; using OpenSHC::Map::Floaters::Floater; using OpenSHC::Map::Matrices::TranslationMatrixTriplet; using OpenSHC::Rendering::UnitRenderHelpStructure; @@ -99,13 +99,13 @@ namespace Rendering { ~ViewportRenderState() {}; // Constructor - ViewportRenderState* constructViewportRenderState(); + ViewportRenderState* Constructor_ViewportRenderState(); BOOLEnum xyAreValid(uint x, uint y); int translateXYToTile(int x, int y); - int computeTileXOffset(int param_1, int param_2); + int tileIndexToColumn(int param_1, int param_2); void setTileSystemMemoryLookupArrays(); @@ -113,7 +113,7 @@ namespace Rendering { void resetBatchedRender(); - void renderAssassinClimbingOverlay(int param_1); + void renderAssassinClimbOverlay(int param_1); void scheduleUnitForBatchedRendering(undefined4 unitIDOrStatus, undefined4 drawX, undefined4 drawY, undefined4 imageID, undefined4 blendStrength, undefined4 gmID, int param_7); @@ -128,22 +128,21 @@ namespace Rendering { void setViewportBasedOnMapSize(); - void setupMouseTileXY2(); + undefined setupMouseTileXY2(); - void setupMouseTileXY(); + undefined setupMouseTileXY(); void focusOnTile(int tile); - void computeMouseTileFromScreenPosition(int param_1, int param_2); + void computeHoveredTileWithHeight(int param_1, int param_2); - void clearAllFloatingLayerElements(); + void clearAllFloaters(); - void createFloatingLayerElement(GmID gmID, int imageID, int imageX, int imageY, int tile, int variation); + void creataAFloatingLayerElement(GmIDInt gmID, int imageID, int imageX, int imageY, int tile, int variation); void renderDebugDataMousePointing(int x, int y, int width, int height); - void setupViewport( - undefined4 windowX, undefined4 windowY, undefined4 screenPixelWidth, undefined4 screenPixelHeight); + undefined setupViewport(); void resetupViewport(int zoomUnk); @@ -153,13 +152,13 @@ namespace Rendering { void updateBuildingPreviewPosition(int mouseXScreenSpace, int mouseYScreenSpace); - void saveFocusTileAndCenterPreview(); + void centerBuildingPreview(); - void restoreFocusTile(); + void focusOnSavedTile(); void focusOnCoordinate(int x, int y); - void createFloatingTextElement(int param_1, int param_2, int param_3, int param_4, int param_5); + void addFloatingDisplayElement(int param_1, int param_2, int param_3, int param_4, int param_5); void renderMap(); }; diff --git a/src/OpenSHC/Rendering/ViewportState.hpp b/src/OpenSHC/Rendering/ViewportState.hpp index f07f6008..5c4b01d8 100644 --- a/src/OpenSHC/Rendering/ViewportState.hpp +++ b/src/OpenSHC/Rendering/ViewportState.hpp @@ -20,17 +20,17 @@ namespace Rendering { int mouseTileY; // 0x00000008 length: 4 int mouseTile; // 0x0000000C length: 4 int field4_0x10; // 0x00000010 length: 4 - undefined4 field5_0x14; // 0x00000014 length: 4 - undefined4 field6_0x18; // 0x00000018 length: 4 + undefined4 dwPreviewWorldX; // 0x00000014 length: 4 + undefined4 dwPreviewWorldY; // 0x00000018 length: 4 int mouseRayBuildingID; // 0x0000001C length: 4 undefined4 field8_0x20; // 0x00000020 length: 4 int mouseRayEntityID; // 0x00000024 length: 4 int mouseRayUnitID; // 0x00000028 length: 4 undefined4 field11_0x2c; // 0x0000002C length: 4 int mouseRayLastUnitID; // 0x00000030 length: 4 - undefined4 field13_0x34; // 0x00000034 length: 4 + undefined4 dwLastInteractionTime; // 0x00000034 length: 4 undefined4 field14_0x38; // 0x00000038 length: 4 - undefined4 field15_0x3c; // 0x0000003C length: 4 + undefined4 dwBuildingPlacementValid; // 0x0000003C length: 4 undefined4 field16_0x40; // 0x00000040 length: 4 int somePitchDitchID; // 0x00000044 length: 4 undefined4 field18_0x48; // 0x00000048 length: 4 diff --git a/src/OpenSHC/Rendering/WindowInformation.func.hpp b/src/OpenSHC/Rendering/WindowInformation.func.hpp index a0b28899..3b068929 100644 --- a/src/OpenSHC/Rendering/WindowInformation.func.hpp +++ b/src/OpenSHC/Rendering/WindowInformation.func.hpp @@ -10,8 +10,8 @@ namespace Rendering { namespace WindowInformation_Func { MACRO_FUNCTION_RESOLVER(void (WindowInformation::*)(LONG, LONG, LONG, LONG), false, - Address::SHC_3BB0A8C1_0x00467F60, &WindowInformation::storeWindowRectangleInfoUnk) - storeWindowRectangleInfoUnk; + Address::SHC_3BB0A8C1_0x00467F60, &WindowInformation::storeGameWindowRect) + storeGameWindowRect; } // namespace WindowInformation_Func } // namespace Rendering diff --git a/src/OpenSHC/Rendering/WindowInformation.hpp b/src/OpenSHC/Rendering/WindowInformation.hpp index 350dd178..bd0dcfa9 100644 --- a/src/OpenSHC/Rendering/WindowInformation.hpp +++ b/src/OpenSHC/Rendering/WindowInformation.hpp @@ -30,7 +30,7 @@ namespace Rendering { WindowInformation() {}; ~WindowInformation() {}; - void storeWindowRectangleInfoUnk(LONG param_1, LONG param_2, LONG param_3, LONG param_4); + void storeGameWindowRect(LONG param_1, LONG param_2, LONG param_3, LONG param_4); }; static_assert_cpp98_obj(sizeof(WindowInformation) == 64, WindowInformation); diff --git a/src/OpenSHC/Synchrony.func.hpp b/src/OpenSHC/Synchrony.func.hpp index dd7002b4..ca5b2ec9 100644 --- a/src/OpenSHC/Synchrony.func.hpp +++ b/src/OpenSHC/Synchrony.func.hpp @@ -13,12 +13,12 @@ namespace OpenSHC { namespace Synchrony_Func { MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004AE7C0, &OpenSHC::Synchrony::clearHoveredAI) - clearHoveredAI; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004AE7C0, &OpenSHC::Synchrony::clearLobbyHoveredAI) + clearLobbyHoveredAI; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004AEA10, &OpenSHC::Synchrony::syncPlayerGroupArrays) - syncPlayerGroupArrays; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004AEA10, &OpenSHC::Synchrony::snapshotPlayerGroups) + snapshotPlayerGroups; } // namespace Synchrony_Func } // namespace OpenSHC diff --git a/src/OpenSHC/Synchrony.hpp b/src/OpenSHC/Synchrony.hpp index 033d8df5..f9492bf9 100644 --- a/src/OpenSHC/Synchrony.hpp +++ b/src/OpenSHC/Synchrony.hpp @@ -11,9 +11,9 @@ namespace OpenSHC { namespace Synchrony { - void __stdcall clearHoveredAI(); + void __stdcall clearLobbyHoveredAI(); - void __stdcall syncPlayerGroupArrays(); + void __stdcall snapshotPlayerGroups(); } // namespace Synchrony } // namespace OpenSHC diff --git a/src/OpenSHC/Synchrony/GameSynchronyState.func.hpp b/src/OpenSHC/Synchrony/GameSynchronyState.func.hpp index 5ac6ed92..97459738 100644 --- a/src/OpenSHC/Synchrony/GameSynchronyState.func.hpp +++ b/src/OpenSHC/Synchrony/GameSynchronyState.func.hpp @@ -2,10 +2,10 @@ path: 'OpenSHC/Synchrony/GameSynchronyState.func.hpp' */ -#include "OpenSHC/Commands/GameCommandParameterLocation.hpp" -#include "OpenSHC/Commands/GameCommandParameterReadWrite.hpp" -#include "OpenSHC/Commands/GameCommandType.hpp" -#include "OpenSHC/DirectPlay/DPERR.hpp" +#include "OpenSHC/Commands/GameCommandParameterLocationInt.hpp" +#include "OpenSHC/Commands/GameCommandParameterReadWriteInt.hpp" +#include "OpenSHC/Commands/GameCommandTypeInt.hpp" +#include "OpenSHC/DirectPlay/DPERRInt.hpp" #include "OpenSHC/Synchrony/GameSynchronyState.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -17,16 +17,20 @@ namespace OpenSHC { namespace Synchrony { namespace GameSynchronyState_Func { - using OpenSHC::Commands::GameCommandParameterLocation; - using OpenSHC::Commands::GameCommandParameterReadWrite; - using OpenSHC::Commands::GameCommandType; - using OpenSHC::DirectPlay::DPERR; + using OpenSHC::Commands::GameCommandParameterLocationInt; + using OpenSHC::Commands::GameCommandParameterReadWriteInt; + using OpenSHC::Commands::GameCommandTypeInt; + using OpenSHC::DirectPlay::DPERRInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(BOOLEnum (GameSynchronyState::*)(int), false, Address::SHC_3BB0A8C1_0x004010B0, &GameSynchronyState::isAIPlayer) isAIPlayer; + MACRO_FUNCTION_RESOLVER(int (GameSynchronyState::*)(char*), false, Address::SHC_3BB0A8C1_0x00479C20, + &GameSynchronyState::loadSoundFile) + loadSoundFile; + MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(GUID*), false, Address::SHC_3BB0A8C1_0x0047D4A0, &GameSynchronyState::getGUIDForSelectedProvider) getGUIDForSelectedProvider; @@ -35,7 +39,7 @@ namespace Synchrony { &GameSynchronyState::setMenuTypeBasedOnDirectPlayGUID) setMenuTypeBasedOnDirectPlayGUID; - MACRO_FUNCTION_RESOLVER(DPERR (GameSynchronyState::*)(LPVOID*, SIZE_T*), false, + MACRO_FUNCTION_RESOLVER(DPERRInt (GameSynchronyState::*)(LPVOID*, SIZE_T*), false, Address::SHC_3BB0A8C1_0x0047D6A0, &GameSynchronyState::createCompoundAddressBasedOnSelectedProvider) createCompoundAddressBasedOnSelectedProvider; @@ -43,7 +47,7 @@ namespace Synchrony { &GameSynchronyState::setDPlaySessionNameValue) setDPlaySessionNameValue; - MACRO_FUNCTION_RESOLVER(DPERR (GameSynchronyState::*)(BOOLEnum), false, Address::SHC_3BB0A8C1_0x0047DB10, + MACRO_FUNCTION_RESOLVER(DPERRInt (GameSynchronyState::*)(BOOLEnum), false, Address::SHC_3BB0A8C1_0x0047DB10, &GameSynchronyState::initializeDirectPlayAndCreateOrJoinSession) initializeDirectPlayAndCreateOrJoinSession; @@ -52,8 +56,8 @@ namespace Synchrony { setSessionDescription; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0047DEA0, - &GameSynchronyState::setDirectPlaySessionDescription) - setDirectPlaySessionDescription; + &GameSynchronyState::hostDirectPlaySession) + hostDirectPlaySession; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(GUID*), false, Address::SHC_3BB0A8C1_0x0047E010, &GameSynchronyState::fetchSessionGUID) @@ -76,20 +80,16 @@ namespace Synchrony { readGameSpyConfig; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(int), false, Address::SHC_3BB0A8C1_0x0047E5B0, - &GameSynchronyState::computeLatencyAdjustmentFromMatchTimes) - computeLatencyAdjustmentFromMatchTimes; + &GameSynchronyState::resetMatchTimers) + resetMatchTimers; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(void*, void*), false, Address::SHC_3BB0A8C1_0x0047E800, &GameSynchronyState::decompressTooLongPacketData) decompressTooLongPacketData; - MACRO_FUNCTION_RESOLVER(int (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0047E830, - &GameSynchronyState::countActiveHumanPlayers) - countActiveHumanPlayers; - MACRO_FUNCTION_RESOLVER(int (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0047E890, - &GameSynchronyState::countOccupiedPlayerSlots) - countOccupiedPlayerSlots; + &GameSynchronyState::countActivePlayers) + countActivePlayers; MACRO_FUNCTION_RESOLVER(int (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0047E8F0, &GameSynchronyState::checkPlayerSetValid) @@ -99,7 +99,7 @@ namespace Synchrony { &GameSynchronyState::countPlayersInSameTeam) countPlayersInSameTeam; - MACRO_FUNCTION_RESOLVER(uint (GameSynchronyState::*)(int), false, Address::SHC_3BB0A8C1_0x0047EAF0, + MACRO_FUNCTION_RESOLVER(undefined (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0047EAF0, &GameSynchronyState::translateMultiplayerIDsIntoPlayerIDs) translateMultiplayerIDsIntoPlayerIDs; @@ -112,8 +112,8 @@ namespace Synchrony { handleUnexpectedDPlayXResult; MACRO_FUNCTION_RESOLVER(undefined4 (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0047EDE0, - &GameSynchronyState::checkAllPlayersReadyAndCleanupSlots) - checkAllPlayersReadyAndCleanupSlots; + &GameSynchronyState::areAllPlayersReady) + areAllPlayersReady; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(int, int, int, int), false, Address::SHC_3BB0A8C1_0x0047EED0, &GameSynchronyState::renderDebugDataSplitInfo) @@ -128,12 +128,12 @@ namespace Synchrony { clearChatEvents; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0047F860, - &GameSynchronyState::renderInGameChat) - renderInGameChat; + &GameSynchronyState::renderChatMessagesFloatingOverlay) + renderChatMessagesFloatingOverlay; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0047FB50, - &GameSynchronyState::renderChatMessageList) - renderChatMessageList; + &GameSynchronyState::renderInGameChatMessages) + renderInGameChatMessages; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x00480050, &GameSynchronyState::resetGameCommands) @@ -143,11 +143,11 @@ namespace Synchrony { &GameSynchronyState::clearGameCommandEntry) clearGameCommandEntry; - MACRO_FUNCTION_RESOLVER(int (GameSynchronyState::*)(GameCommandType), false, Address::SHC_3BB0A8C1_0x004800E0, - &GameSynchronyState::sendLongerDataSuchAsResync) + MACRO_FUNCTION_RESOLVER(int (GameSynchronyState::*)(GameCommandTypeInt), false, + Address::SHC_3BB0A8C1_0x004800E0, &GameSynchronyState::sendLongerDataSuchAsResync) sendLongerDataSuchAsResync; - MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(GameCommandType, DWORD, dword, void*), false, + MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(GameCommandTypeInt, DWORD, dword, void*), false, Address::SHC_3BB0A8C1_0x00480210, &GameSynchronyState::scheduleReceivedCommand) scheduleReceivedCommand; @@ -163,8 +163,8 @@ namespace Synchrony { &GameSynchronyState::getPendingGameCommandsCount) getPendingGameCommandsCount; - MACRO_FUNCTION_RESOLVER( - void (GameSynchronyState::*)(void*, size_t, GameCommandParameterLocation, GameCommandParameterReadWrite), + MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)( + void*, size_t, GameCommandParameterLocationInt, GameCommandParameterReadWriteInt), false, Address::SHC_3BB0A8C1_0x004805D0, &GameSynchronyState::serializeOrDeserializeCommandParameter) serializeOrDeserializeCommandParameter; @@ -177,8 +177,8 @@ namespace Synchrony { getLordTypeForPlayer; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(int), false, Address::SHC_3BB0A8C1_0x00486F20, - &GameSynchronyState::initializeFinalResultsForActivePlayers) - initializeFinalResultsForActivePlayers; + &GameSynchronyState::applyPlayerNameInput) + applyPlayerNameInput; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x00487250, &GameSynchronyState::invokeDirectPlayEnumConnections) @@ -189,8 +189,8 @@ namespace Synchrony { restartDPlaySessionEnumeration; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x004874B0, - &GameSynchronyState::createDirectPlayInterfaceModem) - createDirectPlayInterfaceModem; + &GameSynchronyState::createDirectPlayModemInterface) + createDirectPlayModemInterface; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x00487650, &GameSynchronyState::setupSkirmishLobby) @@ -209,8 +209,8 @@ namespace Synchrony { sendSomeMultiplayerSyncMessageWithType; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x00488010, - &GameSynchronyState::processSyncPacket) - processSyncPacket; + &GameSynchronyState::updateTurnDelayFromSyncPacket) + updateTurnDelayFromSyncPacket; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x004880E0, &GameSynchronyState::sendSyncPacket126) @@ -224,8 +224,8 @@ namespace Synchrony { Address::SHC_3BB0A8C1_0x00488540, &GameSynchronyState::renderDebugDataNetwork) renderDebugDataNetwork; - MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(GameCommandType), false, Address::SHC_3BB0A8C1_0x00489100, - &GameSynchronyState::queueCommand) + MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(GameCommandTypeInt), false, + Address::SHC_3BB0A8C1_0x00489100, &GameSynchronyState::queueCommand) queueCommand; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x004892F0, @@ -237,12 +237,8 @@ namespace Synchrony { compareGameVersions; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0048BF80, - &GameSynchronyState::initializeMultiplayerLobby) - initializeMultiplayerLobby; - - MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0048C230, - &GameSynchronyState::initMultiplayerLobbyState) - initMultiplayerLobbyState; + &GameSynchronyState::initMultiplayerLobby) + initMultiplayerLobby; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0048C660, &GameSynchronyState::queueSynchronizedAutosaveProtocol) @@ -264,29 +260,9 @@ namespace Synchrony { &GameSynchronyState::recomputeHashesAndSendResync) recomputeHashesAndSendResync; - MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0048DA60, - &GameSynchronyState::checkLagAndSyncStatus) - checkLagAndSyncStatus; - - MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0048DC50, - &GameSynchronyState::broadcastDesyncResyncCommands) - broadcastDesyncResyncCommands; - - MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0048E680, - &GameSynchronyState::sendPendingResyncCommandsInBudget) - sendPendingResyncCommandsInBudget; - - MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0048F3D0, - &GameSynchronyState::advanceSyncStatusAndKickLaggers) - advanceSyncStatusAndKickLaggers; - - MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x0048F4C0, - &GameSynchronyState::checkGameLagStatusAndKickAccordingly) - checkGameLagStatusAndKickAccordingly; - MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(), false, Address::SHC_3BB0A8C1_0x00490340, - &GameSynchronyState::throttledMultiplayerSyncUpdate) - throttledMultiplayerSyncUpdate; + &GameSynchronyState::someMultiplayerMessageSending) + someMultiplayerMessageSending; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(int), false, Address::SHC_3BB0A8C1_0x00490380, &GameSynchronyState::removePlayerFromLobby) @@ -309,8 +285,8 @@ namespace Synchrony { handleCommandLineArguments; MACRO_FUNCTION_RESOLVER(void (GameSynchronyState::*)(int, int, DWORD), false, Address::SHC_3BB0A8C1_0x004AF800, - &GameSynchronyState::renderInGameChatDisplayElement) - renderInGameChatDisplayElement; + &GameSynchronyState::RenderInGameChatDisplayElement) + RenderInGameChatDisplayElement; } // namespace GameSynchronyState_Func } // namespace Synchrony diff --git a/src/OpenSHC/Synchrony/GameSynchronyState.hpp b/src/OpenSHC/Synchrony/GameSynchronyState.hpp index d7387517..3cd72c8d 100644 --- a/src/OpenSHC/Synchrony/GameSynchronyState.hpp +++ b/src/OpenSHC/Synchrony/GameSynchronyState.hpp @@ -9,11 +9,10 @@ #pragma once #include "OpenSHC/Commands/GameCommand.hpp" -#include "OpenSHC/Commands/GameCommandParameterLocation.hpp" -#include "OpenSHC/Commands/GameCommandParameterReadWrite.hpp" +#include "OpenSHC/Commands/GameCommandParameterLocationInt.hpp" +#include "OpenSHC/Commands/GameCommandParameterReadWriteInt.hpp" #include "OpenSHC/Commands/GameCommandSchedulingInt.hpp" -#include "OpenSHC/Commands/GameCommandType.hpp" -#include "OpenSHC/DirectPlay/DPERR.hpp" +#include "OpenSHC/Commands/GameCommandTypeInt.hpp" #include "OpenSHC/DirectPlay/DPERRInt.hpp" #include "OpenSHC/Game/GameModeInt.hpp" #include "OpenSHC/Game/Skirmish/SkirmishStatistics.hpp" @@ -39,11 +38,10 @@ namespace OpenSHC { namespace Synchrony { using OpenSHC::Commands::GameCommand; - using OpenSHC::Commands::GameCommandParameterLocation; - using OpenSHC::Commands::GameCommandParameterReadWrite; + using OpenSHC::Commands::GameCommandParameterLocationInt; + using OpenSHC::Commands::GameCommandParameterReadWriteInt; using OpenSHC::Commands::GameCommandSchedulingInt; - using OpenSHC::Commands::GameCommandType; - using OpenSHC::DirectPlay::DPERR; + using OpenSHC::Commands::GameCommandTypeInt; using OpenSHC::DirectPlay::DPERRInt; using OpenSHC::Game::GameModeInt; using OpenSHC::Game::Skirmish::SkirmishStatistics; @@ -86,7 +84,7 @@ namespace Synchrony { undefined4 connectPort; // 0x000002B0 length: 4 undefined4 willHost; // 0x000002B4 length: 4 char shellExecuteTarget[600]; // 0x000002B8 length: 600 - int field32_0x510; // 0x00000510 length: 4 + int nNetworkSessionFlag; // 0x00000510 length: 4 BOOLEnum openOnClose; // 0x00000514 length: 4 byte connectName[256]; // 0x00000518 length: 256 GameModeInt DAT_CurrentGameMode; // 0x00000618 length: 4 @@ -116,23 +114,23 @@ namespace Synchrony { WCHAR DPLAY_PlayerShortName[125]; // 0x00000A8E length: 250 int packetsReceived; // 0x00000B88 length: 4 undefined4 transmissionCounterUnk; // 0x00000B8C length: 4 - undefined4 field62_0xb90; // 0x00000B90 length: 4 + undefined4 dwReceivedCommandCounter; // 0x00000B90 length: 4 undefined4 DAT_GameHalted; // 0x00000B94 length: 4 undefined4 syncStatus; // 0x00000B98 length: 4 undefined4 field65_0xb9c; // 0x00000B9C length: 4 undefined4 field66_0xba0; // 0x00000BA0 length: 4 - undefined4 field67_0xba4; // 0x00000BA4 length: 4 - undefined4 field68_0xba8; // 0x00000BA8 length: 4 + undefined4 dwSyncCommandParam1; // 0x00000BA4 length: 4 + undefined4 dwSyncTimeoutMs; // 0x00000BA8 length: 4 undefined4 somePacketSubTypeUnk; // 0x00000BAC length: 4 undefined4 field70_0xbb0; // 0x00000BB0 length: 4 undefined4 field71_0xbb4; // 0x00000BB4 length: 4 int syncRelatedStatusArray[9]; // 0x00000BB8 length: 36 - undefined4 field73_0xbdc; // 0x00000BDC length: 4 + undefined4 dwDesyncHashValue; // 0x00000BDC length: 4 undefined4 currentPacketTotalSize; // 0x00000BE0 length: 4 - undefined4 field75_0xbe4; // 0x00000BE4 length: 4 - undefined4 field76_0xbe8; // 0x00000BE8 length: 4 + undefined4 dwLastAutoSaveTime; // 0x00000BE4 length: 4 + undefined4 dwSyncTimeCopy; // 0x00000BE8 length: 4 undefined4 flag_0xbec; // 0x00000BEC length: 4 - undefined4 field78_0xbf0; // 0x00000BF0 length: 4 + undefined4 dwMultiplayerLaunchFlag; // 0x00000BF0 length: 4 undefined4 splinterType; // 0x00000BF4 length: 4 undefined4 totalSplitDataItems; // 0x00000BF8 length: 4 undefined4 totalSplitChimps; // 0x00000BFC length: 4 @@ -162,16 +160,16 @@ namespace Synchrony { undefined4 firstSplitZone; // 0x00000C60 length: 4 undefined1 padding_0xc64[8]; // 0x00000C64 length: 8 undefined4 quitGameVoteRelated; // 0x00000C6C length: 4 - int field122_0xc70[9]; // 0x00000C70 length: 36 + int pQuitGameVotes[9]; // 0x00000C70 length: 36 int quitGameVoteRequestTime; // 0x00000C94 length: 4 - int announcementReceivedByPlayer[9]; // 0x00000C98 length: 36 + int announcementReceivedByArray[9]; // 0x00000C98 length: 36 undefined4 saveRelated; // 0x00000CBC length: 4 undefined4 shouldSendAnnouncementUnk; // 0x00000CC0 length: 4 BOOLEnum announcementReceivedBool; // 0x00000CC4 length: 4 undefined4 announcementReceiveTime; // 0x00000CC8 length: 4 undefined4 laggingPlayerIDUnk; // 0x00000CCC length: 4 undefined4 DAT_SomeTime; // 0x00000CD0 length: 4 - undefined4 field131_0xcd4; // 0x00000CD4 length: 4 + undefined4 dwLaggingPlayerPing; // 0x00000CD4 length: 4 PacketUnion DPLAY_ReceiveData; // 0x00000CD8 length: 61000 byte DAT_PacketDecodingDestination[61100]; // 0x0000FB20 length: 61100 PacketUnion DAT_Packet; // 0x0001E9CC length: 61000 @@ -230,16 +228,16 @@ namespace Synchrony { int HASH_Unknown2[9][40]; // 0x00100868 length: 1440 int HASH_AIVS[9][9]; // 0x00100E08 length: 324 int HASH_HeatMaps[9][80]; // 0x00100F4C length: 2880 - int receivedSyncStatusByPlayerUnk[9]; // 0x00101A8C length: 36 + int receivedSyncStatusUnk[9]; // 0x00101A8C length: 36 int syncStatus10Related[9]; // 0x00101AB0 length: 36 - undefined4 field196_0x101ad4; // 0x00101AD4 length: 4 + undefined4 dwGameTicksToPerform; // 0x00101AD4 length: 4 char receivedChatMessage[250]; // 0x00101AD8 length: 250 char DAT_ChatMessageArray[20][250]; // 0x00101BD2 length: 5000 char DAT_ChatMessageSubjectPlayerNameArray[20][250]; // 0x00102F5A length: 5000 char DAT_ChatMessageObjectPlayerNameArray[20][250]; // 0x001042E2 length: 5000 undefined1 padding_0x10566a[2]; // 0x0010566A length: 2 undefined4 DAT_ChatMessageArrayIndex; // 0x0010566C length: 4 - undefined4 field204_0x105670; // 0x00105670 length: 4 + undefined4 dwChatRenderIndex; // 0x00105670 length: 4 undefined4 DAT_InsultTextIndex; // 0x00105674 length: 4 ChatEvent DAT_ChatEventArray[20]; // 0x00105678 length: 320 char shortMapName[120]; // 0x001057B8 length: 120 @@ -250,10 +248,10 @@ namespace Synchrony { int DAT_PlayerSlotArraySomeValue[9]; // 0x00106DB0 length: 36 int unknownPlayerInfo_01[9]; // 0x00106DD4 length: 36 int unknownPlayerInfo_03[9]; // 0x00106DF8 length: 36 - int field215_0x106e1c; // 0x00106E1C length: 4 + int nLocalPlayerReadyFlag; // 0x00106E1C length: 4 int field216_0x106e20; // 0x00106E20 length: 4 int field217_0x106e24; // 0x00106E24 length: 4 - int field218_0x106e28; // 0x00106E28 length: 4 + int nMultiplayerGameStartedFlag; // 0x00106E28 length: 4 int field219_0x106e2c; // 0x00106E2C length: 4 int startGold; // 0x00106E30 length: 4 int defaultPopularity; // 0x00106E34 length: 4 @@ -263,18 +261,18 @@ namespace Synchrony { undefined4 field225_0x106e90; // 0x00106E90 length: 4 int unknownSkirmishBalanceRelatedArray[10]; // 0x00106E94 length: 40 byte unused03[40]; // 0x00106EBC length: 40 - int field228_0x106ee4; // 0x00106EE4 length: 4 + int nRandomEnemiesFlag; // 0x00106EE4 length: 4 undefined4 DAT_SkirmishBalanceRelated; // 0x00106EE8 length: 4 undefined1 padding_0x106eec[4]; // 0x00106EEC length: 4 undefined4 DAT_SkirmishSettingRelated; // 0x00106EF0 length: 4 undefined4 SEC_Section1084; // 0x00106EF4 length: 4 char unknownMapName_01[1004]; // 0x00106EF8 length: 1004 undefined4 SEC_CurrentAdvantageBalance; // 0x001072E4 length: 4 - int field238_0x1072e8; // 0x001072E8 length: 4 - int field239_0x1072ec; // 0x001072EC length: 4 + int nPendingIntensityChange; // 0x001072E8 length: 4 + int nPendingSpeedChange; // 0x001072EC length: 4 undefined4 field240_0x1072f0; // 0x001072F0 length: 4 BOOLEnum reparseMaps; // 0x001072F4 length: 4 - int field242_0x1072f8; // 0x001072F8 length: 4 + int nMapSelectState; // 0x001072F8 length: 4 undefined4 DAT_MapSelectionScrollOffset; // 0x001072FC length: 4 undefined4 DAT_MapSelectionTotalNumber; // 0x00107300 length: 4 int DAT_MapSelectionRelativeSelected; // 0x00107304 length: 4 @@ -283,7 +281,7 @@ namespace Synchrony { int mapPlayerCountArray[500]; // 0x00107AE0 length: 2000 int mapBalanceArray[500]; // 0x001082B0 length: 2000 int mapU4Int0_2Array[500]; // 0x00108A80 length: 2000 - undefined4 field251_0x109250; // 0x00109250 length: 4 + undefined4 dwMapSelectMode; // 0x00109250 length: 4 undefined4 savedMapTimeInTicks; // 0x00109254 length: 4 undefined4 savedUnitsCRC32Hash; // 0x00109258 length: 4 undefined1 padding_0x10925c[4]; // 0x0010925C length: 4 @@ -291,7 +289,7 @@ namespace Synchrony { int DAT_ChatMessageReceiverArray[9]; // 0x00109264 length: 36 undefined4 DAT_ChatTauntOrMessage; // 0x00109288 length: 4 undefined4 SEC_Section1093; // 0x0010928C length: 4 - dword field262_0x109290; // 0x00109290 length: 4 + dword dwResyncStartTime; // 0x00109290 length: 4 int kickedAtTime; // 0x00109294 length: 4 undefined4 field264_0x109298; // 0x00109298 length: 4 undefined4 kickDueToLagStatusUnk; // 0x0010929C length: 4 @@ -301,12 +299,12 @@ namespace Synchrony { undefined4 DAT_HashCountdown; // 0x001092AC length: 4 undefined4 field270_0x1092b0; // 0x001092B0 length: 4 undefined4 DAT_StrongWalls; // 0x001092B4 length: 4 - undefined4 field272_0x1092b8; // 0x001092B8 length: 4 + undefined4 dwAdvancedOptionToggle1; // 0x001092B8 length: 4 undefined4 DAT_NoCowThrowing; // 0x001092BC length: 4 undefined4 DAT_NoDogs; // 0x001092C0 length: 4 undefined4 DAT_NoRushSetting; // 0x001092C4 length: 4 - undefined4 field276_0x1092c8; // 0x001092C8 length: 4 - undefined4 field277_0x1092cc; // 0x001092CC length: 4 + undefined4 dwAdvancedOptionToggle2; // 0x001092C8 length: 4 + undefined4 dwAdvancedOptionToggle3; // 0x001092CC length: 4 int unknownPlayerInfoArray_01[9]; // 0x001092D0 length: 36 int DAT_ReceivedAIVFileAvailabilityPerAIArray[9][20]; // 0x001092F4 length: 720 SkirmishStatistics SEC_FinalResults; // 0x001095C4 length: 1912 @@ -317,18 +315,18 @@ namespace Synchrony { int ipArrayIndex; // 0x00109D8C length: 4 undefined4 DAT_TwoIfNotHost; // 0x00109D90 length: 4 undefined4 DAT_MapFileReceivingState; // 0x00109D94 length: 4 - short field288_0x109d98[9]; // 0x00109D98 length: 18 + short pMapSendStatus[9]; // 0x00109D98 length: 18 undefined1 padding_0x109daa[2]; // 0x00109DAA length: 2 int mapSendingFileSize; // 0x00109DAC length: 4 int mapSendingByteBufferAddress[9]; // 0x00109DB0 length: 36 FILE* mapSendingFileHandles[9]; // 0x00109DD4 length: 36 FILE* FILEPTR_ReceivedMapFile; // 0x00109DF8 length: 4 int field295_0x109dfc[9]; // 0x00109DFC length: 36 - int field296_0x109e20[9]; // 0x00109E20 length: 36 + int pMapPartReceived[9]; // 0x00109E20 length: 36 byte DAT_RoundTableOrderArray[9]; // 0x00109E44 length: 9 byte DAT_PlayerGroupArray[9]; // 0x00109E4D length: 9 byte playerGroupArray2Unk[9]; // 0x00109E56 length: 9 - byte field300_0x109e5f[9]; // 0x00109E5F length: 9 + byte pPlayerSlotType[9]; // 0x00109E5F length: 9 byte DAT_PlayerPositionsArray[8]; // 0x00109E68 length: 8 undefined4 protocolInvokerPlayerID; // 0x00109E70 length: 4 undefined4 currentPlayerSlotID; // 0x00109E74 length: 4 @@ -338,7 +336,7 @@ namespace Synchrony { undefined1 padding_0x109e89[3]; // 0x00109E89 length: 3 int field310_0x109e8c; // 0x00109E8C length: 4 undefined1 padding_0x109e90[4]; // 0x00109E90 length: 4 - undefined4 field315_0x109e94; // 0x00109E94 length: 4 + undefined4 dwLastNetworkMessageTime; // 0x00109E94 length: 4 undefined4 field316_0x109e98; // 0x00109E98 length: 4 undefined4 mapTimeInTicksSinglePlayer; // 0x00109E9C length: 4 undefined4 field318_0x109ea0; // 0x00109EA0 length: 4 @@ -374,23 +372,25 @@ namespace Synchrony { ~GameSynchronyState() {}; // Constructor - GameSynchronyState* constructGameSynchronyState(); + GameSynchronyState* Constructor_GameSynchronyState(); BOOLEnum isAIPlayer(int playerID); + int loadSoundFile(char* fileName); + void getGUIDForSelectedProvider(GUID* param_1); void setMenuTypeBasedOnDirectPlayGUID(); - DPERR createCompoundAddressBasedOnSelectedProvider(LPVOID* pCompoundAddress, SIZE_T* param_2); + DPERRInt createCompoundAddressBasedOnSelectedProvider(LPVOID* pCompoundAddress, SIZE_T* param_2); void setDPlaySessionNameValue(); - DPERR initializeDirectPlayAndCreateOrJoinSession(BOOLEnum join); + DPERRInt initializeDirectPlayAndCreateOrJoinSession(BOOLEnum join); void setSessionDescription(); - void setDirectPlaySessionDescription(); + void hostDirectPlaySession(); void fetchSessionGUID(GUID* pGUID); @@ -402,25 +402,23 @@ namespace Synchrony { void readGameSpyConfig(); - void computeLatencyAdjustmentFromMatchTimes(int param_1); + void resetMatchTimers(int param_1); void decompressTooLongPacketData(void* source, void* destination); - int countActiveHumanPlayers(); - - int countOccupiedPlayerSlots(); + int countActivePlayers(); int checkPlayerSetValid(); int countPlayersInSameTeam(int playerID); - uint translateMultiplayerIDsIntoPlayerIDs(int multiplayerID); + undefined translateMultiplayerIDsIntoPlayerIDs(); int addPlayerToCurrentPlayerArray(int playerFullID); void handleUnexpectedDPlayXResult(); - undefined4 checkAllPlayersReadyAndCleanupSlots(); + undefined4 areAllPlayersReady(); void renderDebugDataSplitInfo(int x, int y, int width, int height); @@ -428,17 +426,18 @@ namespace Synchrony { void clearChatEvents(); - void renderInGameChat(int param_1, int param_2, int param_3); + void renderChatMessagesFloatingOverlay(int param_1, int param_2, int param_3); - void renderChatMessageList(int xPos, int yPos, int param_3); + void renderInGameChatMessages(int xPos, int yPos, int param_3); void resetGameCommands(); void clearGameCommandEntry(int gameCommandID); - int sendLongerDataSuchAsResync(GameCommandType commandCategory); + int sendLongerDataSuchAsResync(GameCommandTypeInt commandCategory); - void scheduleReceivedCommand(GameCommandType commandCategory, DWORD dxPlayerHandle, dword time, void* address); + void scheduleReceivedCommand( + GameCommandTypeInt commandCategory, DWORD dxPlayerHandle, dword time, void* address); int getCommandIDFromCommandSelectionStuff(); @@ -447,19 +446,19 @@ namespace Synchrony { int getPendingGameCommandsCount(); void serializeOrDeserializeCommandParameter(void* destination, size_t size, - GameCommandParameterLocation srcSwitch, GameCommandParameterReadWrite destSwitch); + GameCommandParameterLocationInt srcSwitch, GameCommandParameterReadWriteInt destSwitch); void checkSkirmishGameDefeat(); int getLordTypeForPlayer(int playerID); - void initializeFinalResultsForActivePlayers(int param_1); + void applyPlayerNameInput(int param_1); void invokeDirectPlayEnumConnections(); void restartDPlaySessionEnumeration(BOOLEnum respectTimeout); - void createDirectPlayInterfaceModem(); + void createDirectPlayModemInterface(); void setupSkirmishLobby(); @@ -470,7 +469,7 @@ namespace Synchrony { void sendSomeMultiplayerSyncMessageWithType(undefined4 syncPacketType2); - void processSyncPacket(); + void updateTurnDelayFromSyncPacket(); void sendSyncPacket126(); @@ -478,15 +477,13 @@ namespace Synchrony { void renderDebugDataNetwork(int x, int y, int width, int height); - void queueCommand(GameCommandType commandType); + void queueCommand(GameCommandTypeInt commandType); void processWaitingCommands(); void compareGameVersions(); - void initializeMultiplayerLobby(); - - void initMultiplayerLobbyState(); + void initMultiplayerLobby(); void queueSynchronizedAutosaveProtocol(); @@ -498,17 +495,7 @@ namespace Synchrony { void recomputeHashesAndSendResync(int dontSendSyncCommand); - void checkLagAndSyncStatus(); - - void broadcastDesyncResyncCommands(); - - void sendPendingResyncCommandsInBudget(); - - void advanceSyncStatusAndKickLaggers(); - - void checkGameLagStatusAndKickAccordingly(); - - void throttledMultiplayerSyncUpdate(); + void someMultiplayerMessageSending(); void removePlayerFromLobby(int playerID); @@ -520,7 +507,7 @@ namespace Synchrony { void handleCommandLineArguments(char* arguments); - void renderInGameChatDisplayElement(int posX, int posY, DWORD elementState); + void RenderInGameChatDisplayElement(int posX, int posY, DWORD elementState); }; static_assert_cpp98_obj(sizeof(GameSynchronyState) == 1090072, GameSynchronyState); diff --git a/src/OpenSHC/Synchrony/ProtocolDefinedData.hpp b/src/OpenSHC/Synchrony/ProtocolDefinedData.hpp index abe73d82..366b45c1 100644 --- a/src/OpenSHC/Synchrony/ProtocolDefinedData.hpp +++ b/src/OpenSHC/Synchrony/ProtocolDefinedData.hpp @@ -20,132 +20,132 @@ namespace Synchrony { typedef struct ProtocolDefinedData { undefined1 padding_0x0[4]; // 0x00000000 length: 4 - int field4_0x4[12][2]; // 0x00000004 length: 96 - int field5_0x64[39][3]; // 0x00000064 length: 468 + int resetMatchTimersCfg_0x4[12][2]; // 0x00000004 length: 96 + int resetMatchTimersCfg_0x64[39][3]; // 0x00000064 length: 468 undefined1 padding_0x238[8]; // 0x00000238 length: 8 - char** field14_0x240[21]; // 0x00000240 length: 84 + char** clickTauntOrChatCfg_0x240[21]; // 0x00000240 length: 84 NoArgCallback* handleFunctions; // 0x00000294 length: 4 NoArgCallback* field16_0x298; // 0x00000298 length: 4 - NoArgCallback* field17_0x29c; // 0x0000029C length: 4 - NoArgCallback* field18_0x2a0; // 0x000002A0 length: 4 - NoArgCallback* field19_0x2a4; // 0x000002A4 length: 4 + NoArgCallback* waitForMultiplayerHostCfg_0x29c; // 0x0000029C length: 4 + NoArgCallback* initialAnnounceToHostCfg_0x2a0; // 0x000002A0 length: 4 + NoArgCallback* scenarioDescription_MainCfg_0x2a4; // 0x000002A4 length: 4 NoArgCallback* field20_0x2a8; // 0x000002A8 length: 4 - NoArgCallback* field21_0x2ac; // 0x000002AC length: 4 - NoArgCallback* field22_0x2b0; // 0x000002B0 length: 4 + NoArgCallback* gameLost_DoEveryFrameCfg_0x2ac; // 0x000002AC length: 4 + NoArgCallback* triggerLobbyPlayerInformatCfg_0x2b0; // 0x000002B0 length: 4 NoArgCallback* field23_0x2b4; // 0x000002B4 length: 4 - NoArgCallback* field24_0x2b8; // 0x000002B8 length: 4 - NoArgCallback* field25_0x2bc; // 0x000002BC length: 4 - NoArgCallback* field26_0x2c0; // 0x000002C0 length: 4 - NoArgCallback* field27_0x2c4; // 0x000002C4 length: 4 - NoArgCallback* field28_0x2c8; // 0x000002C8 length: 4 - NoArgCallback* field29_0x2cc; // 0x000002CC length: 4 - NoArgCallback* field30_0x2d0; // 0x000002D0 length: 4 - NoArgCallback* field31_0x2d4; // 0x000002D4 length: 4 - NoArgCallback* field32_0x2d8; // 0x000002D8 length: 4 - NoArgCallback* field33_0x2dc; // 0x000002DC length: 4 - NoArgCallback* field34_0x2e0; // 0x000002E0 length: 4 - NoArgCallback* field35_0x2e4; // 0x000002E4 length: 4 - NoArgCallback* field36_0x2e8; // 0x000002E8 length: 4 - NoArgCallback* field37_0x2ec; // 0x000002EC length: 4 - NoArgCallback* field38_0x2f0; // 0x000002F0 length: 4 - NoArgCallback* field39_0x2f4; // 0x000002F4 length: 4 - NoArgCallback* field40_0x2f8; // 0x000002F8 length: 4 - NoArgCallback* field41_0x2fc; // 0x000002FC length: 4 - NoArgCallback* field42_0x300; // 0x00000300 length: 4 - NoArgCallback* field43_0x304; // 0x00000304 length: 4 - NoArgCallback* field44_0x308; // 0x00000308 length: 4 + NoArgCallback* lobbyMenu_DoEveryFrameCfg_0x2b8; // 0x000002B8 length: 4 + NoArgCallback* triggerLobbyPlayerInformatCfg_0x2bc; // 0x000002BC length: 4 + NoArgCallback* lobbyMenu_LobbyscreenStartCfg_0x2c0; // 0x000002C0 length: 4 + NoArgCallback* recomputeHashesAndSendResyCfg_0x2c4; // 0x000002C4 length: 4 + NoArgCallback* reorderTeamsAndPositionsCfg_0x2c8; // 0x000002C8 length: 4 + NoArgCallback* someChatMessageSelectionCfg_0x2cc; // 0x000002CC length: 4 + NoArgCallback* queueClickNavigateMenuOrEsCfg_0x2d0; // 0x000002D0 length: 4 + NoArgCallback* createTribeFromSelectedUniCfg_0x2d4; // 0x000002D4 length: 4 + NoArgCallback* giveMoveCommandCfg_0x2d8; // 0x000002D8 length: 4 + NoArgCallback* mapEditorLandscaping_QueueCfg_0x2dc; // 0x000002DC length: 4 + NoArgCallback* mapEditorLandscaping_QueueCfg_0x2e0; // 0x000002E0 length: 4 + NoArgCallback* mapEditorLandscaping_QueueCfg_0x2e4; // 0x000002E4 length: 4 + NoArgCallback* inGameMenu_TriggerPlaceBuiCfg_0x2e8; // 0x000002E8 length: 4 + NoArgCallback* mapEditorLandscaping_QueueCfg_0x2ec; // 0x000002EC length: 4 + NoArgCallback* mapEditorLandscaping_QueueCfg_0x2f0; // 0x000002F0 length: 4 + NoArgCallback* mapEditorLandscaping_QueueCfg_0x2f4; // 0x000002F4 length: 4 + NoArgCallback* inGameMenu_TriggerPlaceWalCfg_0x2f8; // 0x000002F8 length: 4 + NoArgCallback* mapEditorLandscaping_QueueCfg_0x2fc; // 0x000002FC length: 4 + NoArgCallback* mapEditorLandscaping_QueueCfg_0x300; // 0x00000300 length: 4 + NoArgCallback* inGameMenu_TriggerPlaceBuiCfg_0x304; // 0x00000304 length: 4 + NoArgCallback* buildMenu_DeleteActionCfg_0x308; // 0x00000308 length: 4 NoArgCallback* field45_0x30c; // 0x0000030C length: 4 - NoArgCallback* field46_0x310; // 0x00000310 length: 4 + NoArgCallback* buildingAndStatusMenu_MercCfg_0x310; // 0x00000310 length: 4 NoArgCallback* field47_0x314; // 0x00000314 length: 4 - NoArgCallback* field48_0x318; // 0x00000318 length: 4 - NoArgCallback* field49_0x31c; // 0x0000031C length: 4 - NoArgCallback* field50_0x320; // 0x00000320 length: 4 - NoArgCallback* field51_0x324; // 0x00000324 length: 4 - NoArgCallback* field52_0x328; // 0x00000328 length: 4 - NoArgCallback* field53_0x32c; // 0x0000032C length: 4 - NoArgCallback* field54_0x330; // 0x00000330 length: 4 - NoArgCallback* field55_0x334; // 0x00000334 length: 4 - NoArgCallback* field56_0x338; // 0x00000338 length: 4 - NoArgCallback* field57_0x33c; // 0x0000033C length: 4 - NoArgCallback* field58_0x340; // 0x00000340 length: 4 + NoArgCallback* buildingAndStatusMenu_WorkCfg_0x318; // 0x00000318 length: 4 + NoArgCallback* queueChangeTaxesCfg_0x31c; // 0x0000031C length: 4 + NoArgCallback* buildingAndStatusMenu_ChanCfg_0x320; // 0x00000320 length: 4 + NoArgCallback* queueCommand_36_variation2Cfg_0x324; // 0x00000324 length: 4 + NoArgCallback* buildingAndStatusMenu_DrawCfg_0x328; // 0x00000328 length: 4 + NoArgCallback* buildingAndStatusMenu_BuySCfg_0x32c; // 0x0000032C length: 4 + NoArgCallback* general_LaunchOrQuitMultipCfg_0x330; // 0x00000330 length: 4 + NoArgCallback* saveLoadMap_ButtonsCfg_0x334; // 0x00000334 length: 4 + NoArgCallback* buildMenu_DeleteActionCfg_0x338; // 0x00000338 length: 4 + NoArgCallback* inGameMenu_TriggerPlaceBuiCfg_0x33c; // 0x0000033C length: 4 + NoArgCallback* buildingAndStatusMenu_BuilCfg_0x340; // 0x00000340 length: 4 NoArgCallback* field59_0x344; // 0x00000344 length: 4 - NoArgCallback* field60_0x348; // 0x00000348 length: 4 - NoArgCallback* field61_0x34c; // 0x0000034C length: 4 - NoArgCallback* field62_0x350; // 0x00000350 length: 4 - NoArgCallback* field63_0x354; // 0x00000354 length: 4 - NoArgCallback* field64_0x358; // 0x00000358 length: 4 - NoArgCallback* field65_0x35c; // 0x0000035C length: 4 - NoArgCallback* field66_0x360; // 0x00000360 length: 4 - NoArgCallback* field67_0x364; // 0x00000364 length: 4 - NoArgCallback* field68_0x368; // 0x00000368 length: 4 - NoArgCallback* field69_0x36c; // 0x0000036C length: 4 - NoArgCallback* field70_0x370; // 0x00000370 length: 4 - NoArgCallback* field71_0x374; // 0x00000374 length: 4 - NoArgCallback* field72_0x378; // 0x00000378 length: 4 - NoArgCallback* field73_0x37c; // 0x0000037C length: 4 - NoArgCallback* field74_0x380; // 0x00000380 length: 4 - NoArgCallback* field75_0x384; // 0x00000384 length: 4 - NoArgCallback* field76_0x388; // 0x00000388 length: 4 - NoArgCallback* field77_0x38c; // 0x0000038C length: 4 - NoArgCallback* field78_0x390; // 0x00000390 length: 4 - NoArgCallback* field79_0x394; // 0x00000394 length: 4 - NoArgCallback* field80_0x398; // 0x00000398 length: 4 - NoArgCallback* field81_0x39c; // 0x0000039C length: 4 - NoArgCallback* field82_0x3a0; // 0x000003A0 length: 4 - NoArgCallback* field83_0x3a4; // 0x000003A4 length: 4 - NoArgCallback* field84_0x3a8; // 0x000003A8 length: 4 - NoArgCallback* field85_0x3ac; // 0x000003AC length: 4 - NoArgCallback* field86_0x3b0; // 0x000003B0 length: 4 - NoArgCallback* field87_0x3b4; // 0x000003B4 length: 4 + NoArgCallback* buildingAndStatusMenu_GateCfg_0x348; // 0x00000348 length: 4 + NoArgCallback* processGameTickCfg_0x34c; // 0x0000034C length: 4 + NoArgCallback* lobbyMenu_LobbyscreenStartCfg_0x350; // 0x00000350 length: 4 + NoArgCallback* lobbyMenu_DoEveryFrameCfg_0x354; // 0x00000354 length: 4 + NoArgCallback* commandLoadMapHeaderCfg_0x358; // 0x00000358 length: 4 + NoArgCallback* loadOrSaveGameCfg_0x35c; // 0x0000035C length: 4 + NoArgCallback* submitMSVMapIndexAndProperCfg_0x360; // 0x00000360 length: 4 + NoArgCallback* lobbyMenu_LobbyscreenStartCfg_0x364; // 0x00000364 length: 4 + NoArgCallback* playerNameUnkCfg_0x368; // 0x00000368 length: 4 + NoArgCallback* checkGameSyncCfg_0x36c; // 0x0000036C length: 4 + NoArgCallback* processGameTickCfg_0x370; // 0x00000370 length: 4 + NoArgCallback* processGameTickCfg_0x374; // 0x00000374 length: 4 + NoArgCallback* processGameTickCfg_0x378; // 0x00000378 length: 4 + NoArgCallback* processGameTickCfg_0x37c; // 0x0000037C length: 4 + NoArgCallback* processGameTickCfg_0x380; // 0x00000380 length: 4 + NoArgCallback* processGameTickCfg_0x384; // 0x00000384 length: 4 + NoArgCallback* processGameTickCfg_0x388; // 0x00000388 length: 4 + NoArgCallback* processGameTickCfg_0x38c; // 0x0000038C length: 4 + NoArgCallback* processGameTickCfg_0x390; // 0x00000390 length: 4 + NoArgCallback* processGameTickCfg_0x394; // 0x00000394 length: 4 + NoArgCallback* processGameTickCfg_0x398; // 0x00000398 length: 4 + NoArgCallback* processGameTickCfg_0x39c; // 0x0000039C length: 4 + NoArgCallback* processGameTickCfg_0x3a0; // 0x000003A0 length: 4 + NoArgCallback* buildingAndStatusMenu_RepaCfg_0x3a4; // 0x000003A4 length: 4 + NoArgCallback* inGameMenu_TriggerPlaceBuiCfg_0x3a8; // 0x000003A8 length: 4 + NoArgCallback* queueUnitStanceCfg_0x3ac; // 0x000003AC length: 4 + NoArgCallback* extendRallyPointCfg_0x3b0; // 0x000003B0 length: 4 + NoArgCallback* queueTribeCommandCfg_0x3b4; // 0x000003B4 length: 4 NoArgCallback* field88_0x3b8; // 0x000003B8 length: 4 NoArgCallback* field89_0x3bc; // 0x000003BC length: 4 NoArgCallback* field90_0x3c0; // 0x000003C0 length: 4 - NoArgCallback* field91_0x3c4; // 0x000003C4 length: 4 + NoArgCallback* commitPlacementUndoCfg_0x3c4; // 0x000003C4 length: 4 NoArgCallback* field92_0x3c8; // 0x000003C8 length: 4 - NoArgCallback* field93_0x3cc; // 0x000003CC length: 4 - NoArgCallback* field94_0x3d0; // 0x000003D0 length: 4 - NoArgCallback* field95_0x3d4; // 0x000003D4 length: 4 - NoArgCallback* field96_0x3d8; // 0x000003D8 length: 4 - NoArgCallback* field97_0x3dc; // 0x000003DC length: 4 + NoArgCallback* inGameMenu_UnitSelectionAnCfg_0x3cc; // 0x000003CC length: 4 + NoArgCallback* detectTileUnitDesyncCfg_0x3d0; // 0x000003D0 length: 4 + NoArgCallback* processGameTickCfg_0x3d4; // 0x000003D4 length: 4 + NoArgCallback* processGameTickCfg_0x3d8; // 0x000003D8 length: 4 + NoArgCallback* processGameTickCfg_0x3dc; // 0x000003DC length: 4 NoArgCallback* field98_0x3e0; // 0x000003E0 length: 4 - NoArgCallback* field99_0x3e4; // 0x000003E4 length: 4 - NoArgCallback* field100_0x3e8; // 0x000003E8 length: 4 - NoArgCallback* field101_0x3ec; // 0x000003EC length: 4 - NoArgCallback* field102_0x3f0; // 0x000003F0 length: 4 - NoArgCallback* field103_0x3f4; // 0x000003F4 length: 4 - NoArgCallback* field104_0x3f8; // 0x000003F8 length: 4 - NoArgCallback* field105_0x3fc; // 0x000003FC length: 4 - NoArgCallback* field106_0x400; // 0x00000400 length: 4 - NoArgCallback* field107_0x404; // 0x00000404 length: 4 - NoArgCallback* field108_0x408; // 0x00000408 length: 4 - NoArgCallback* field109_0x40c; // 0x0000040C length: 4 - NoArgCallback* field110_0x410; // 0x00000410 length: 4 - NoArgCallback* field111_0x414; // 0x00000414 length: 4 - NoArgCallback* field112_0x418; // 0x00000418 length: 4 - NoArgCallback* field113_0x41c; // 0x0000041C length: 4 - NoArgCallback* field114_0x420; // 0x00000420 length: 4 - NoArgCallback* field115_0x424; // 0x00000424 length: 4 - NoArgCallback* field116_0x428; // 0x00000428 length: 4 - NoArgCallback* field117_0x42c; // 0x0000042C length: 4 - NoArgCallback* field118_0x430; // 0x00000430 length: 4 - NoArgCallback* field119_0x434; // 0x00000434 length: 4 - NoArgCallback* field120_0x438; // 0x00000438 length: 4 - NoArgCallback* field121_0x43c; // 0x0000043C length: 4 - NoArgCallback* field122_0x440; // 0x00000440 length: 4 + NoArgCallback* processGameTickCfg_0x3e4; // 0x000003E4 length: 4 + NoArgCallback* lobbyMenu_PlayerListAndNpcCfg_0x3e8; // 0x000003E8 length: 4 + NoArgCallback* general_ToolbarButtonPressCfg_0x3ec; // 0x000003EC length: 4 + NoArgCallback* processGameTickCfg_0x3f0; // 0x000003F0 length: 4 + NoArgCallback* syncRelatedSomethingCfg_0x3f4; // 0x000003F4 length: 4 + NoArgCallback* someMultiplayerInfoUnkDispCfg_0x3f8; // 0x000003F8 length: 4 + NoArgCallback* processGameTickCfg_0x3fc; // 0x000003FC length: 4 + NoArgCallback* onlineVoteQuitAndQuitGame_Cfg_0x400; // 0x00000400 length: 4 + NoArgCallback* windowMsgProcessingFuncCfg_0x404; // 0x00000404 length: 4 + NoArgCallback* checkMultiplayerLaggingPlaCfg_0x408; // 0x00000408 length: 4 + NoArgCallback* processGameTickCfg_0x40c; // 0x0000040C length: 4 + NoArgCallback* removePlayerFromLobbyCfg_0x410; // 0x00000410 length: 4 + NoArgCallback* identityOptions_ConfirmCfg_0x414; // 0x00000414 length: 4 + NoArgCallback* buildMenu_DeleteActionCfg_0x418; // 0x00000418 length: 4 + NoArgCallback* checkMultiplayerLaggingPlaCfg_0x41c; // 0x0000041C length: 4 + NoArgCallback* someMultiplayerInfoUnkDispCfg_0x420; // 0x00000420 length: 4 + NoArgCallback* processGameTickCfg_0x424; // 0x00000424 length: 4 + NoArgCallback* processGameTickCfg_0x428; // 0x00000428 length: 4 + NoArgCallback* inGameMenu_TriggerPlaceBuiCfg_0x42c; // 0x0000042C length: 4 + NoArgCallback* lobbyMenu_LobbyscreenStartCfg_0x430; // 0x00000430 length: 4 + NoArgCallback* windowMsgProcessingFuncCfg_0x434; // 0x00000434 length: 4 + NoArgCallback* sendReceiveMap_MainCfg_0x438; // 0x00000438 length: 4 + NoArgCallback* lobbyMenu_DoEveryFrameCfg_0x43c; // 0x0000043C length: 4 + NoArgCallback* sendReceiveMap_MainCfg_0x440; // 0x00000440 length: 4 NoArgCallback* field123_0x444; // 0x00000444 length: 4 NoArgCallback* field124_0x448; // 0x00000448 length: 4 - NoArgCallback* field125_0x44c; // 0x0000044C length: 4 + NoArgCallback* reorderTeamsAndPositionsCfg_0x44c; // 0x0000044C length: 4 NoArgCallback* field126_0x450; // 0x00000450 length: 4 - NoArgCallback* field127_0x454; // 0x00000454 length: 4 - NoArgCallback* field128_0x458; // 0x00000458 length: 4 - NoArgCallback* field129_0x45c; // 0x0000045C length: 4 - NoArgCallback* field130_0x460; // 0x00000460 length: 4 - NoArgCallback* field131_0x464; // 0x00000464 length: 4 - NoArgCallback* field132_0x468; // 0x00000468 length: 4 - NoArgCallback* field133_0x46c; // 0x0000046C length: 4 - NoArgCallback* field134_0x470; // 0x00000470 length: 4 - int field135_0x474[32]; // 0x00000474 length: 128 - char** field136_0x4f4; // 0x000004F4 length: 4 + NoArgCallback* aiLordSelect_MainCfg_0x454; // 0x00000454 length: 4 + NoArgCallback* alliesSendAndRequestGoods_Cfg_0x458; // 0x00000458 length: 4 + NoArgCallback* processGameTickCfg_0x45c; // 0x0000045C length: 4 + NoArgCallback* processGameTickCfg_0x460; // 0x00000460 length: 4 + NoArgCallback* progressBarBox_LoadAndSaveCfg_0x464; // 0x00000464 length: 4 + NoArgCallback* lobbyMenu_DoEveryFrameCfg_0x468; // 0x00000468 length: 4 + NoArgCallback* hostChecksLobbyAIVAvailabiCfg_0x46c; // 0x0000046C length: 4 + NoArgCallback* tacticalPowerBar_MainCfg_0x470; // 0x00000470 length: 4 + int menuModalRenderFunction_FiCfg_0x474[32]; // 0x00000474 length: 128 + char** base64EncodeCharacterLookuCfg_0x4f4; // 0x000004F4 length: 4 } ProtocolDefinedData; #pragma pack(pop) diff --git a/src/OpenSHC/Text/FontSizeClass.func.hpp b/src/OpenSHC/Text/FontSizeClass.func.hpp index c1620c9c..4af93d5f 100644 --- a/src/OpenSHC/Text/FontSizeClass.func.hpp +++ b/src/OpenSHC/Text/FontSizeClass.func.hpp @@ -2,19 +2,19 @@ path: 'OpenSHC/Text/FontSizeClass.func.hpp' */ -#include "OpenSHC/IO/Graphics/GmID.hpp" +#include "OpenSHC/IO/Graphics/GmIDInt.hpp" #include "OpenSHC/Rendering/Colors/BGR24.hpp" -#include "OpenSHC/Text/FontRenderType.hpp" +#include "OpenSHC/Text/FontRenderTypeInt.hpp" #include "OpenSHC/Text/FontSizeClass.hpp" namespace OpenSHC { namespace Text { namespace FontSizeClass_Func { - using OpenSHC::IO::Graphics::GmID; + using OpenSHC::IO::Graphics::GmIDInt; using OpenSHC::Rendering::Colors::BGR24; - using OpenSHC::Text::FontRenderType; + using OpenSHC::Text::FontRenderTypeInt; - MACRO_FUNCTION_RESOLVER(void (FontSizeClass::*)(GmID, int, FontRenderType, int, int, int, int), false, + MACRO_FUNCTION_RESOLVER(void (FontSizeClass::*)(GmIDInt, int, FontRenderTypeInt, int, int, int, int), false, Address::SHC_3BB0A8C1_0x00469A30, &FontSizeClass::setupFontSizeClassObject) setupFontSizeClassObject; @@ -26,13 +26,13 @@ namespace Text { Address::SHC_3BB0A8C1_0x00469B90, &FontSizeClass::getWordStartingFromPos) getWordStartingFromPos; - MACRO_FUNCTION_RESOLVER(void (FontSizeClass::*)(char*, int), false, Address::SHC_3BB0A8C1_0x00469C40, - &FontSizeClass::wrapTextIntoLines) - wrapTextIntoLines; + MACRO_FUNCTION_RESOLVER( + void (FontSizeClass::*)(char*, int), false, Address::SHC_3BB0A8C1_0x00469C40, &FontSizeClass::wordWrapText) + wordWrapText; MACRO_FUNCTION_RESOLVER( - int (FontSizeClass::*)(byte), false, Address::SHC_3BB0A8C1_0x00469E10, &FontSizeClass::getCharWidthUnk) - getCharWidthUnk; + int (FontSizeClass::*)(byte), false, Address::SHC_3BB0A8C1_0x00469E10, &FontSizeClass::getCharWidth) + getCharWidth; MACRO_FUNCTION_RESOLVER(int (FontSizeClass::*)(LPWSTR, int), false, Address::SHC_3BB0A8C1_0x00471610, &FontSizeClass::getWidthOfWideText) @@ -47,20 +47,20 @@ namespace Text { renderText; MACRO_FUNCTION_RESOLVER(int (FontSizeClass::*)(char*, int, int, int, BGR24, int, int), false, - Address::SHC_3BB0A8C1_0x00472EF0, &FontSizeClass::renderMultilineTextUnk) - renderMultilineTextUnk; + Address::SHC_3BB0A8C1_0x00472EF0, &FontSizeClass::renderWrappedMultilineText) + renderWrappedMultilineText; MACRO_FUNCTION_RESOLVER(int (FontSizeClass::*)(LPWSTR, int, int, int, uint, int, int), false, - Address::SHC_3BB0A8C1_0x00473300, &FontSizeClass::renderMultilineWideTextUnk) - renderMultilineWideTextUnk; + Address::SHC_3BB0A8C1_0x00473300, &FontSizeClass::renderWrappedMultilineWideText) + renderWrappedMultilineWideText; MACRO_FUNCTION_RESOLVER(void (FontSizeClass::*)(int, int, int, int, BGR24), false, - Address::SHC_3BB0A8C1_0x004733A0, &FontSizeClass::renderSomeSpecificTextUnk) - renderSomeSpecificTextUnk; + Address::SHC_3BB0A8C1_0x004733A0, &FontSizeClass::renderPartialMultilineText) + renderPartialMultilineText; MACRO_FUNCTION_RESOLVER(int (FontSizeClass::*)(char, int, int, int, int), false, - Address::SHC_3BB0A8C1_0x00473640, &FontSizeClass::renderCharUnk) - renderCharUnk; + Address::SHC_3BB0A8C1_0x00473640, &FontSizeClass::renderTextCharGlyph) + renderTextCharGlyph; MACRO_FUNCTION_RESOLVER(void (FontSizeClass::*)(LPWSTR, int, int, int, BGR24, int), false, Address::SHC_3BB0A8C1_0x004737B0, &FontSizeClass::renderWideText) diff --git a/src/OpenSHC/Text/FontSizeClass.hpp b/src/OpenSHC/Text/FontSizeClass.hpp index f371dd39..a1ff11b5 100644 --- a/src/OpenSHC/Text/FontSizeClass.hpp +++ b/src/OpenSHC/Text/FontSizeClass.hpp @@ -8,10 +8,8 @@ #pragma once -#include "OpenSHC/IO/Graphics/GmID.hpp" #include "OpenSHC/IO/Graphics/GmIDInt.hpp" #include "OpenSHC/Rendering/Colors/BGR24.hpp" -#include "OpenSHC/Text/FontRenderType.hpp" #include "OpenSHC/Text/FontRenderTypeInt.hpp" #include "WinDef.h" @@ -19,10 +17,8 @@ namespace OpenSHC { namespace Text { - using OpenSHC::IO::Graphics::GmID; using OpenSHC::IO::Graphics::GmIDInt; using OpenSHC::Rendering::Colors::BGR24; - using OpenSHC::Text::FontRenderType; using OpenSHC::Text::FontRenderTypeInt; #pragma pack(push, 1) @@ -48,7 +44,7 @@ namespace Text { FontSizeClass() {}; ~FontSizeClass() {}; - void setupFontSizeClassObject(GmID fontGmID, int numberOfFontStartInGm, FontRenderType renderType, + void setupFontSizeClassObject(GmIDInt fontGmID, int numberOfFontStartInGm, FontRenderTypeInt renderType, int baselineOffset, int lineHeight, int letterSpacing, int whiteSpaceWidth); int getWidthOfText(char* text, int length); @@ -56,9 +52,9 @@ namespace Text { int getWordStartingFromPos( char* text, int startAndRunIndex, char* wordReceiver, int maxWordBufferSize, int* wordStartIndexOutPtr); - void wrapTextIntoLines(char* text, int allowedWidth); + void wordWrapText(char* text, int allowedWidth); - int getCharWidthUnk(byte charUnk); + int getCharWidth(byte charUnk); int getWidthOfWideText(LPWSTR wideText, int numberOfChars); @@ -66,15 +62,15 @@ namespace Text { int renderText(char* text, int textLength, int xPos, int yPos, BGR24 color, int blendStrength); - int renderMultilineTextUnk( + int renderWrappedMultilineText( char* text, int xPos, int yPos, int maxWidth, BGR24 color, int blendStrength, int modeUnk); - int renderMultilineWideTextUnk( + int renderWrappedMultilineWideText( LPWSTR _wideText, int xPos, int yPos, int maxWidth, uint color, int blendStrength, int modeUnk); - void renderSomeSpecificTextUnk(int lengthUnk, int otherBlendValueUnk, int xPos, int yPos, BGR24 color); + void renderPartialMultilineText(int lengthUnk, int otherBlendValueUnk, int xPos, int yPos, BGR24 color); - int renderCharUnk(char charId, int xPos, int yPosUnk, int bgr24, int blendStrengthUnk); + int renderTextCharGlyph(char charId, int xPos, int yPosUnk, int bgr24, int blendStrengthUnk); void renderWideText(LPWSTR wideText, int textLength, int xPos, int yPos, BGR24 color, int blendStrength); diff --git a/src/OpenSHC/Text/TextEditorState.func.hpp b/src/OpenSHC/Text/TextEditorState.func.hpp index 26a8f015..442b75e0 100644 --- a/src/OpenSHC/Text/TextEditorState.func.hpp +++ b/src/OpenSHC/Text/TextEditorState.func.hpp @@ -11,36 +11,36 @@ namespace Text { namespace TextEditorState_Func { MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(undefined4, undefined4, undefined4, undefined4), false, - Address::SHC_3BB0A8C1_0x0045D080, &TextEditorState::setHelpWindowBounds) - setHelpWindowBounds; + Address::SHC_3BB0A8C1_0x0045D080, &TextEditorState::setTextEditorFields) + setTextEditorFields; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045D0C0, - &TextEditorState::resetHelpStateFields) - resetHelpStateFields; + &TextEditorState::resetTextEditorHandles) + resetTextEditorHandles; MACRO_FUNCTION_RESOLVER(int (TextEditorState::*)(char*), false, Address::SHC_3BB0A8C1_0x0045D140, - &TextEditorState::findHelpSectionIndexByName) - findHelpSectionIndexByName; + &TextEditorState::findHelpSectionIndex) + findHelpSectionIndex; MACRO_FUNCTION_RESOLVER(int (TextEditorState::*)(char*), false, Address::SHC_3BB0A8C1_0x0045D1A0, - &TextEditorState::findOrAddHelpSectionName) - findOrAddHelpSectionName; + &TextEditorState::findOrAddHelpSection) + findOrAddHelpSection; MACRO_FUNCTION_RESOLVER( WCHAR (TextEditorState::*)(FILE*), false, Address::SHC_3BB0A8C1_0x0045D200, &TextEditorState::parseHLPPart) parseHLPPart; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045D370, - &TextEditorState::loadHelpSectionGraphics) - loadHelpSectionGraphics; + &TextEditorState::loadTextEditorGfxResources) + loadTextEditorGfxResources; MACRO_FUNCTION_RESOLVER(undefined* (TextEditorState::*)(int*), false, Address::SHC_3BB0A8C1_0x0045D3C0, &TextEditorState::getWideCharPointer) getWideCharPointer; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045D430, - &TextEditorState::renderHelpImageHotspots) - renderHelpImageHotspots; + &TextEditorState::drawTextEditorGfxItems) + drawTextEditorGfxItems; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045D690, &TextEditorState::bltTextToScreenIfNeedBe) @@ -51,124 +51,120 @@ namespace Text { drawBorderStyle0x20; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045D740, - &TextEditorState::drawHelpWindowBackground) - drawHelpWindowBackground; + &TextEditorState::drawTextEditorBackground) + drawTextEditorBackground; MACRO_FUNCTION_RESOLVER(int (TextEditorState::*)(char*), false, Address::SHC_3BB0A8C1_0x0045D890, - &TextEditorState::findHelpGraphicIndexByName) - findHelpGraphicIndexByName; + &TextEditorState::findTextEditorGfxIndex) + findTextEditorGfxIndex; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(char*), false, Address::SHC_3BB0A8C1_0x0045D8F0, - &TextEditorState::findOrAddHelpGraphicName) - findOrAddHelpGraphicName; + &TextEditorState::findOrAddTextEditorGfx) + findOrAddTextEditorGfx; - MACRO_FUNCTION_RESOLVER(int (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045D950, - &TextEditorState::getNextHelpSectionID) - getNextHelpSectionID; + MACRO_FUNCTION_RESOLVER( + int (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045D950, &TextEditorState::getNextHelpPageId) + getNextHelpPageId; - MACRO_FUNCTION_RESOLVER(int (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045D990, - &TextEditorState::getPrevHelpSectionID) - getPrevHelpSectionID; + MACRO_FUNCTION_RESOLVER( + int (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045D990, &TextEditorState::getPrevHelpPageId) + getPrevHelpPageId; - MACRO_FUNCTION_RESOLVER(char* (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045D9E0, - &TextEditorState::getHelpSectionText) - getHelpSectionText; + MACRO_FUNCTION_RESOLVER( + char* (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045D9E0, &TextEditorState::getHelpPageText) + getHelpPageText; - MACRO_FUNCTION_RESOLVER(int (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045DA20, - &TextEditorState::getNextHelpColorEntryIndex) - getNextHelpColorEntryIndex; + MACRO_FUNCTION_RESOLVER(undefined (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045DA20, + &TextEditorState::getNextHelpEntryIndex) + getNextHelpEntryIndex; - MACRO_FUNCTION_RESOLVER(int (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045DA40, - &TextEditorState::getPrevHelpColorEntryIndex) - getPrevHelpColorEntryIndex; + MACRO_FUNCTION_RESOLVER(undefined (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045DA40, + &TextEditorState::getPrevHelpEntryIndex) + getPrevHelpEntryIndex; MACRO_FUNCTION_RESOLVER(int (TextEditorState::*)(char*), false, Address::SHC_3BB0A8C1_0x0045DA80, - &TextEditorState::findSoundIndexByName) - findSoundIndexByName; + &TextEditorState::findTextEditorString1Index) + findTextEditorString1Index; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(char*), false, Address::SHC_3BB0A8C1_0x0045DAE0, - &TextEditorState::findOrAddSoundName) - findOrAddSoundName; + &TextEditorState::findOrAddTextEditorString1) + findOrAddTextEditorString1; - MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045DB40, - &TextEditorState::saveHelpFileToResource) - saveHelpFileToResource; - - MACRO_FUNCTION_RESOLVER(undefined4 (TextEditorState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x0045F080, - &TextEditorState::getHelpTokenAdvanceLength) - getHelpTokenAdvanceLength; + MACRO_FUNCTION_RESOLVER(undefined (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045F080, + &TextEditorState::getTextTokenSlotCount) + getTextTokenSlotCount; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(undefined4), false, Address::SHC_3BB0A8C1_0x0045F0D0, - &TextEditorState::insertHelpTextToken) - insertHelpTextToken; + &TextEditorState::insertTextTokenSlots) + insertTextTokenSlots; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045F240, - &TextEditorState::closeHelpDialogAndReturnToMenu) - closeHelpDialogAndReturnToMenu; + &TextEditorState::someKindOfTextEscape) + someKindOfTextEscape; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(LPCSTR), false, Address::SHC_3BB0A8C1_0x0045F470, &TextEditorState::readCrusaderHelpHlp) readCrusaderHelpHlp; MACRO_FUNCTION_RESOLVER(undefined4 (TextEditorState::*)(FILE*), false, Address::SHC_3BB0A8C1_0x0045F580, - &TextEditorState::loadAndParseHelpFile) - loadAndParseHelpFile; + &TextEditorState::loadCrusaderHelpFile) + loadCrusaderHelpFile; MACRO_FUNCTION_RESOLVER( void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x0045F5B0, &TextEditorState::parseHlp) parseHlp; - MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045FDC0, - &TextEditorState::processHelpRichTextTokens) - processHelpRichTextTokens; + MACRO_FUNCTION_RESOLVER( + void (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x0045FDC0, &TextEditorState::layoutHelpText) + layoutHelpText; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x004613E0, &TextEditorState::setTextRenderingLogic) setTextRenderingLogic; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x004614D0, - &TextEditorState::initializeAndLayoutHelpText) - initializeAndLayoutHelpText; + &TextEditorState::rebuildHelpTextLayout) + rebuildHelpTextLayout; - MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x00461550, - &TextEditorState::renderHelpDialogIfOpen) - renderHelpDialogIfOpen; + MACRO_FUNCTION_RESOLVER( + void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x00461550, &TextEditorState::renderTextEditor) + renderTextEditor; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x004619D0, &TextEditorState::loadAndLayoutHelpContent) loadAndLayoutHelpContent; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x00461A20, - &TextEditorState::openBuildingHelpDialog) - openBuildingHelpDialog; + &TextEditorState::openBuildingHelpText) + openBuildingHelpText; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x00461B90, - &TextEditorState::openInGameHelpDialog) - openInGameHelpDialog; + &TextEditorState::openInGameHelpText) + openInGameHelpText; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x00461CF0, - &TextEditorState::openScenarioHelpDialog) - openScenarioHelpDialog; + &TextEditorState::openScenarioHelpText) + openScenarioHelpText; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x00461E50, - &TextEditorState::openCreditsScrollDialog) - openCreditsScrollDialog; + &TextEditorState::openCreditsScroll) + openCreditsScroll; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x00461F90, - &TextEditorState::openMapDescriptionEditorDialog) - openMapDescriptionEditorDialog; + &TextEditorState::openMapDescriptionEditor) + openMapDescriptionEditor; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(char*, undefined4), false, Address::SHC_3BB0A8C1_0x004620F0, - &TextEditorState::setCustomHelpText) - setCustomHelpText; + &TextEditorState::displayRawText) + displayRawText; MACRO_FUNCTION_RESOLVER( - void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x00462150, &TextEditorState::popHelpDialogStack) - popHelpDialogStack; + void (TextEditorState::*)(), false, Address::SHC_3BB0A8C1_0x00462150, &TextEditorState::goBackInHelpHistory) + goBackInHelpHistory; MACRO_FUNCTION_RESOLVER(void (TextEditorState::*)(int), false, Address::SHC_3BB0A8C1_0x00462190, - &TextEditorState::openUnusedHelpTextEditorDialog) - openUnusedHelpTextEditorDialog; + &TextEditorState::openHelpTextEditor) + openHelpTextEditor; } // namespace TextEditorState_Func } // namespace Text diff --git a/src/OpenSHC/Text/TextEditorState.hpp b/src/OpenSHC/Text/TextEditorState.hpp index 37a89641..1b84a18e 100644 --- a/src/OpenSHC/Text/TextEditorState.hpp +++ b/src/OpenSHC/Text/TextEditorState.hpp @@ -24,50 +24,79 @@ namespace Text { class TextEditorState { public: pointer* DAT_PointerToTemporaryTextMemory; // 0x00000000 length: 4 - undefined4 customHelpTextLength; // 0x00000004 length: 4 - undefined4 isDialogStateInitialized; // 0x00000008 length: 4 - undefined4 helpDialogVariant; // 0x0000000C length: 4 - undefined4 useInGameHelpHandler; // 0x00000010 length: 4 - undefined4 savedMenuViewType; // 0x00000014 length: 4 - undefined4 savedActiveMenuTab; // 0x00000018 length: 4 - undefined4 savedMenuFlag; // 0x0000001C length: 4 - BOOLEnum pendingCreditsFadeBorder; // 0x00000020 length: 4 - BOOLEnum helpSectionParseSucceeded; // 0x00000024 length: 4 - undefined4 currentHelpSectionID; // 0x00000028 length: 4 - undefined4 helpSectionHistoryStack[30]; // 0x0000002C length: 120 + undefined4 field1_0x4; // 0x00000004 length: 4 + undefined4 field2_0x8; // 0x00000008 length: 4 + undefined4 field3_0xc; // 0x0000000C length: 4 + undefined4 field4_0x10; // 0x00000010 length: 4 + undefined4 field5_0x14; // 0x00000014 length: 4 + undefined4 field6_0x18; // 0x00000018 length: 4 + undefined4 field7_0x1c; // 0x0000001C length: 4 + BOOLEnum field8_0x20; // 0x00000020 length: 4 + BOOLEnum field9_0x24; // 0x00000024 length: 4 + undefined4 field10_0x28; // 0x00000028 length: 4 + undefined4 field11_0x2c; // 0x0000002C length: 4 + undefined4 field12_0x30; // 0x00000030 length: 4 + undefined4 field13_0x34; // 0x00000034 length: 4 + undefined4 field14_0x38; // 0x00000038 length: 4 + undefined4 field15_0x3c; // 0x0000003C length: 4 + undefined4 field16_0x40; // 0x00000040 length: 4 + undefined4 field17_0x44; // 0x00000044 length: 4 + undefined4 field18_0x48; // 0x00000048 length: 4 + undefined4 field19_0x4c; // 0x0000004C length: 4 + undefined4 field20_0x50; // 0x00000050 length: 4 + undefined4 field21_0x54; // 0x00000054 length: 4 + undefined4 field22_0x58; // 0x00000058 length: 4 + undefined4 field23_0x5c; // 0x0000005C length: 4 + undefined4 field24_0x60; // 0x00000060 length: 4 + undefined4 field25_0x64; // 0x00000064 length: 4 + undefined4 field26_0x68; // 0x00000068 length: 4 + undefined4 field27_0x6c; // 0x0000006C length: 4 + undefined4 field28_0x70; // 0x00000070 length: 4 + undefined4 field29_0x74; // 0x00000074 length: 4 + undefined4 field30_0x78; // 0x00000078 length: 4 + undefined4 field31_0x7c; // 0x0000007C length: 4 + undefined4 field32_0x80; // 0x00000080 length: 4 + undefined4 field33_0x84; // 0x00000084 length: 4 + undefined4 field34_0x88; // 0x00000088 length: 4 + undefined4 field35_0x8c; // 0x0000008C length: 4 + undefined4 field36_0x90; // 0x00000090 length: 4 + undefined4 field37_0x94; // 0x00000094 length: 4 + undefined4 field38_0x98; // 0x00000098 length: 4 + undefined4 field39_0x9c; // 0x0000009C length: 4 + undefined4 field40_0xa0; // 0x000000A0 length: 4 undefined4 counter; // 0x000000A4 length: 4 - undefined4 helpContentScrollOffsetY; // 0x000000A8 length: 4 - undefined4 topVisibleLineIndex; // 0x000000AC length: 4 - undefined4 dialogX; // 0x000000B0 length: 4 - undefined4 dialogY; // 0x000000B4 length: 4 - undefined4 dialogWidth; // 0x000000B8 length: 4 - undefined4 dialogHeight; // 0x000000BC length: 4 - undefined4 dialogContentX; // 0x000000C0 length: 4 - undefined4 dialogContentY; // 0x000000C4 length: 4 - undefined4 dialogContentHeight; // 0x000000C8 length: 4 - undefined4 dialogContentWidth; // 0x000000CC length: 4 - undefined4 helpContentScrollX; // 0x000000D0 length: 4 - undefined4 helpContentScrollY; // 0x000000D4 length: 4 - undefined4 activeHelpHotspotIndex; // 0x000000D8 length: 4 - undefined4 helpDialogSubMode; // 0x000000DC length: 4 - undefined4 useAlternateHelpTab; // 0x000000E0 length: 4 - undefined4 isCustomTextMode; // 0x000000E4 length: 4 - undefined4 useWideHelpLayout; // 0x000000E8 length: 4 - undefined4 pendingTokenTypeToSkip; // 0x000000EC length: 4 - undefined4 isTextHelpDialogMode; // 0x000000F0 length: 4 - char* customHelpTextPointer; // 0x000000F4 length: 4 - undefined4 isCustomHelpTextWide; // 0x000000F8 length: 4 - undefined4 customHelpTextBufferSize; // 0x000000FC length: 4 - undefined4 customTextMaxLength; // 0x00000100 length: 4 - char soundFileNames[5][1000]; // 0x00000104 length: 5000 - byte soundFilePlayedFlags[5]; // 0x0000148C length: 5 + undefined4 field42_0xa8; // 0x000000A8 length: 4 + undefined4 field43_0xac; // 0x000000AC length: 4 + undefined4 field44_0xb0; // 0x000000B0 length: 4 + undefined4 field45_0xb4; // 0x000000B4 length: 4 + undefined4 field46_0xb8; // 0x000000B8 length: 4 + undefined4 field47_0xbc; // 0x000000BC length: 4 + undefined4 field48_0xc0; // 0x000000C0 length: 4 + undefined4 field49_0xc4; // 0x000000C4 length: 4 + undefined4 shortArray1Related; // 0x000000C8 length: 4 + undefined4 field51_0xcc; // 0x000000CC length: 4 + undefined4 field52_0xd0; // 0x000000D0 length: 4 + undefined4 field53_0xd4; // 0x000000D4 length: 4 + undefined4 field54_0xd8; // 0x000000D8 length: 4 + undefined4 field55_0xdc; // 0x000000DC length: 4 + undefined4 field56_0xe0; // 0x000000E0 length: 4 + undefined4 field57_0xe4; // 0x000000E4 length: 4 + undefined4 field58_0xe8; // 0x000000E8 length: 4 + undefined4 field59_0xec; // 0x000000EC length: 4 + undefined4 field60_0xf0; // 0x000000F0 length: 4 + undefined4 field61_0xf4; // 0x000000F4 length: 4 + undefined4 field62_0xf8; // 0x000000F8 length: 4 + undefined4 field63_0xfc; // 0x000000FC length: 4 + undefined4 field64_0x100; // 0x00000100 length: 4 + char stringArray1[5][1000]; // 0x00000104 length: 5000 + byte stringArray1Companion[5]; // 0x0000148C length: 5 undefined1 padding_0x1491[3]; // 0x00001491 length: 3 - undefined4 soundFileCount; // 0x00001494 length: 4 - char graphicFileNames[20][1000]; // 0x00001498 length: 20000 - undefined4 graphicFileCount; // 0x000062B8 length: 4 - short lineLayoutTable[60000]; // 0x000062BC length: 120000 - int imageHotspotCount; // 0x0002377C length: 4 - short imageHotspotTable[50][4]; // 0x00023780 length: 400 + undefined4 count1; // 0x00001494 length: 4 + char stringArray2[20][1000]; // 0x00001498 length: 20000 + undefined4 count2; // 0x000062B8 length: 4 + short shortArray1[60000]; // 0x000062BC length: 120000 + int shortArray1Count; // 0x0002377C length: 4 + short shortArray1Companion2[50][4]; // 0x00023780 length: 400 int intArray1[25]; // 0x00023910 length: 100 private: @@ -81,85 +110,83 @@ namespace Text { // Constructor TextEditorState* Constructor_TextEditorState(); - void setHelpWindowBounds(undefined4 param_1, undefined4 param_2, undefined4 param_3, undefined4 param_4); + void setTextEditorFields(undefined4 param_1, undefined4 param_2, undefined4 param_3, undefined4 param_4); - void resetHelpStateFields(); + void resetTextEditorHandles(); - int findHelpSectionIndexByName(char* param_1); + int findHelpSectionIndex(char* param_1); - int findOrAddHelpSectionName(char* param_1); + int findOrAddHelpSection(char* param_1); WCHAR parseHLPPart(FILE* filePointer); - void loadHelpSectionGraphics(); + void loadTextEditorGfxResources(); undefined* getWideCharPointer(int* param_1); - void renderHelpImageHotspots(); + void drawTextEditorGfxItems(); void bltTextToScreenIfNeedBe(); void drawBorderStyle0x20(int param_1, int param_2, int param_3, int param_4); - void drawHelpWindowBackground(); + void drawTextEditorBackground(); - int findHelpGraphicIndexByName(char* param_1); + int findTextEditorGfxIndex(char* param_1); - void findOrAddHelpGraphicName(char* param_1); + void findOrAddTextEditorGfx(char* param_1); - int getNextHelpSectionID(int param_1); + int getNextHelpPageId(int param_1); - int getPrevHelpSectionID(int param_1); + int getPrevHelpPageId(int param_1); - char* getHelpSectionText(int param_1); + char* getHelpPageText(int param_1); - int getNextHelpColorEntryIndex(int param_1); + undefined getNextHelpEntryIndex(); - int getPrevHelpColorEntryIndex(int param_1); + undefined getPrevHelpEntryIndex(); - int findSoundIndexByName(char* param_1); + int findTextEditorString1Index(char* param_1); - void findOrAddSoundName(char* param_1); + void findOrAddTextEditorString1(char* param_1); - void saveHelpFileToResource(); + undefined getTextTokenSlotCount(); - undefined4 getHelpTokenAdvanceLength(undefined4 param_1); + void insertTextTokenSlots(undefined4 param_1); - void insertHelpTextToken(undefined4 param_1); - - void closeHelpDialogAndReturnToMenu(); + void someKindOfTextEscape(); void readCrusaderHelpHlp(LPCSTR param_1); - undefined4 loadAndParseHelpFile(FILE* param_1); + undefined4 loadCrusaderHelpFile(FILE* param_1); void parseHlp(); - void processHelpRichTextTokens(int param_1); + void layoutHelpText(int param_1); void setTextRenderingLogic(); - void initializeAndLayoutHelpText(); + void rebuildHelpTextLayout(); - void renderHelpDialogIfOpen(); + void renderTextEditor(); void loadAndLayoutHelpContent(); - void openBuildingHelpDialog(int param_1); + void openBuildingHelpText(int param_1); - void openInGameHelpDialog(int param_1); + void openInGameHelpText(int param_1); - void openScenarioHelpDialog(int param_1); + void openScenarioHelpText(int param_1); - void openCreditsScrollDialog(int param_1); + void openCreditsScroll(int param_1); - void openMapDescriptionEditorDialog(int param_1); + void openMapDescriptionEditor(int param_1); - void setCustomHelpText(char* param_1, undefined4 param_2); + void displayRawText(char* param_1, undefined4 param_2); - void popHelpDialogStack(); + void goBackInHelpHistory(); - void openUnusedHelpTextEditorDialog(int param_1); + void openHelpTextEditor(int param_1); }; static_assert_cpp98_obj(sizeof(TextEditorState) == 145780, TextEditorState); diff --git a/src/OpenSHC/Text/TextManager.func.hpp b/src/OpenSHC/Text/TextManager.func.hpp index a832b44a..ca17dd1f 100644 --- a/src/OpenSHC/Text/TextManager.func.hpp +++ b/src/OpenSHC/Text/TextManager.func.hpp @@ -2,9 +2,9 @@ path: 'OpenSHC/Text/TextManager.func.hpp' */ -#include "OpenSHC/DE/SHCDE/eTextSections.hpp" +#include "OpenSHC/DE/SHCDE/eTextSectionsInt.hpp" #include "OpenSHC/Rendering/Colors/BGR24.hpp" -#include "OpenSHC/Text/TextAlignment.hpp" +#include "OpenSHC/Text/TextAlignmentInt.hpp" #include "OpenSHC/Text/TextManager.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -13,57 +13,58 @@ namespace OpenSHC { namespace Text { namespace TextManager_Func { - using OpenSHC::DE::SHCDE::eTextSections; + using OpenSHC::DE::SHCDE::eTextSectionsInt; using OpenSHC::Rendering::Colors::BGR24; - using OpenSHC::Text::TextAlignment; + using OpenSHC::Text::TextAlignmentInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(char*, int, int, TextAlignment, uint, uint, int, BOOLEnum), false, - Address::SHC_3BB0A8C1_0x00424320, &TextManager::renderInGameText) + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(char*, int, int, TextAlignmentInt, uint, uint, int, BOOLEnum), + false, Address::SHC_3BB0A8C1_0x00424320, &TextManager::renderInGameText) renderInGameText; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(char*, int, int, TextAlignment, BGR24, int, BOOLEnum), false, + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(char*, int, int, TextAlignmentInt, BGR24, int, BOOLEnum), false, Address::SHC_3BB0A8C1_0x00424360, &TextManager::renderTextToScreen2) renderTextToScreen2; MACRO_FUNCTION_RESOLVER( - void (TextManager::*)(eTextSections, int, int, int, TextAlignment, uint, uint, int, BOOLEnum), false, + void (TextManager::*)(eTextSectionsInt, int, int, int, TextAlignmentInt, uint, uint, int, BOOLEnum), false, Address::SHC_3BB0A8C1_0x00424390, &TextManager::renderText) renderText; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSections, int, int, int, TextAlignment, uint, int, BOOLEnum), - false, Address::SHC_3BB0A8C1_0x004243E0, &TextManager::renderText2) + MACRO_FUNCTION_RESOLVER( + void (TextManager::*)(eTextSectionsInt, int, int, int, TextAlignmentInt, uint, int, BOOLEnum), false, + Address::SHC_3BB0A8C1_0x004243E0, &TextManager::renderText2) renderText2; MACRO_FUNCTION_RESOLVER( - void (TextManager::*)(eTextSections, int, int, int, TextAlignment, uint, uint, int, BOOLEnum, int), false, - Address::SHC_3BB0A8C1_0x00424420, &TextManager::renderInGameText2) + void (TextManager::*)(eTextSectionsInt, int, int, int, TextAlignmentInt, uint, uint, int, BOOLEnum, int), + false, Address::SHC_3BB0A8C1_0x00424420, &TextManager::renderInGameText2) renderInGameText2; MACRO_FUNCTION_RESOLVER( - void (TextManager::*)(eTextSections, int, int, int, TextAlignment, uint, int, BOOLEnum, int), false, + void (TextManager::*)(eTextSectionsInt, int, int, int, TextAlignmentInt, uint, int, BOOLEnum, int), false, Address::SHC_3BB0A8C1_0x00424470, &TextManager::renderTextFromTextGroup) renderTextFromTextGroup; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSections, int, int, int), false, + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSectionsInt, int, int, int), false, Address::SHC_3BB0A8C1_0x004244C0, &TextManager::renderMultilineText2) renderMultilineText2; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSections, int, int, int, int, uint, int, int), false, - Address::SHC_3BB0A8C1_0x00424500, &TextManager::renderMultilineTextUnk) - renderMultilineTextUnk; + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSectionsInt, int, int, int, int, uint, int, int), false, + Address::SHC_3BB0A8C1_0x00424500, &TextManager::renderMultilineTextFromGroupWithBlend) + renderMultilineTextFromGroupWithBlend; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSections, int, int, int, int, uint, int), false, - Address::SHC_3BB0A8C1_0x00424540, &TextManager::renderMultilineText2Unk) - renderMultilineText2Unk; + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSectionsInt, int, int, int, int, uint, int), false, + Address::SHC_3BB0A8C1_0x00424540, &TextManager::renderMultilineTextFromGroup) + renderMultilineTextFromGroup; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSections, int, int, int, int, uint, uint, int, int), false, - Address::SHC_3BB0A8C1_0x00424580, &TextManager::renderMultilineText3Unk) - renderMultilineText3Unk; + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSectionsInt, int, int, int, int, uint, uint, int, int), + false, Address::SHC_3BB0A8C1_0x00424580, &TextManager::renderMultilineTextFromGroupWithShadow) + renderMultilineTextFromGroupWithShadow; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSections, int, int, int, int, uint, int, int), false, - Address::SHC_3BB0A8C1_0x004245D0, &TextManager::renderMultilineText4Unk) - renderMultilineText4Unk; + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(eTextSectionsInt, int, int, int, int, uint, int, int), false, + Address::SHC_3BB0A8C1_0x004245D0, &TextManager::renderMultilineTextFromGroupNoSpacing) + renderMultilineTextFromGroupNoSpacing; MACRO_FUNCTION_RESOLVER(void (TextManager::*)(int, int, int, uint, uint, int, BOOLEnum), false, Address::SHC_3BB0A8C1_0x00424620, &TextManager::renderNumber) @@ -73,12 +74,12 @@ namespace Text { Address::SHC_3BB0A8C1_0x00424650, &TextManager::renderLeftAlignedNumberToScreen) renderLeftAlignedNumberToScreen; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(int, int, int, TextAlignment, uint, int, BOOLEnum), false, + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(int, int, int, TextAlignmentInt, uint, int, BOOLEnum), false, Address::SHC_3BB0A8C1_0x00424680, &TextManager::renderNumberToScreen) renderNumberToScreen; - MACRO_FUNCTION_RESOLVER(int (TextManager::*)(eTextSections, int, int), false, Address::SHC_3BB0A8C1_0x004246B0, - &TextManager::computeTextWidthForTextGroup) + MACRO_FUNCTION_RESOLVER(int (TextManager::*)(eTextSectionsInt, int, int), false, + Address::SHC_3BB0A8C1_0x004246B0, &TextManager::computeTextWidthForTextGroup) computeTextWidthForTextGroup; MACRO_FUNCTION_RESOLVER( @@ -86,36 +87,36 @@ namespace Text { setupFontSizeClassObjects; MACRO_FUNCTION_RESOLVER(void (TextManager::*)(dword, dword), false, Address::SHC_3BB0A8C1_0x00469F20, - &TextManager::setTextClipRange) - setTextClipRange; + &TextManager::setTextManagerClipRange) + setTextManagerClipRange; MACRO_FUNCTION_RESOLVER( - void (TextManager::*)(), false, Address::SHC_3BB0A8C1_0x00469F40, &TextManager::resetTextClipRange) - resetTextClipRange; + void (TextManager::*)(), false, Address::SHC_3BB0A8C1_0x00469F40, &TextManager::resetTextManagerClipRange) + resetTextManagerClipRange; MACRO_FUNCTION_RESOLVER( void (TextManager::*)(char*, int, int), false, Address::SHC_3BB0A8C1_0x00469F50, &TextManager::trimText) trimText; MACRO_FUNCTION_RESOLVER(int (TextManager::*)(char*, int, int), false, Address::SHC_3BB0A8C1_0x00469F70, - &TextManager::getTextWidthTillCursorUnk) - getTextWidthTillCursorUnk; + &TextManager::getTextWidthTillCursor) + getTextWidthTillCursor; MACRO_FUNCTION_RESOLVER( void (TextManager::*)(int), false, Address::SHC_3BB0A8C1_0x00469FA0, &TextManager::fillIntegerTextBuffer) fillIntegerTextBuffer; - MACRO_FUNCTION_RESOLVER(char* (TextManager::*)(eTextSections, int), false, Address::SHC_3BB0A8C1_0x0046A050, + MACRO_FUNCTION_RESOLVER(char* (TextManager::*)(eTextSectionsInt, int), false, Address::SHC_3BB0A8C1_0x0046A050, &TextManager::getTextStringInGroupAtOffset) getTextStringInGroupAtOffset; MACRO_FUNCTION_RESOLVER(int (TextManager::*)(int, int, int, int, int, int, BOOL), false, - Address::SHC_3BB0A8C1_0x0046A2C0, &TextManager::renderPartOfNumberUnk) - renderPartOfNumberUnk; + Address::SHC_3BB0A8C1_0x0046A2C0, &TextManager::renderNumberDigitAtPlace) + renderNumberDigitAtPlace; - MACRO_FUNCTION_RESOLVER(int (TextManager::*)(int, int), false, Address::SHC_3BB0A8C1_0x0046A4D0, - &TextManager::calcRenderedNumberWidth) - calcRenderedNumberWidth; + MACRO_FUNCTION_RESOLVER( + int (TextManager::*)(int, int), false, Address::SHC_3BB0A8C1_0x0046A4D0, &TextManager::getNumberGfxWidth) + getNumberGfxWidth; MACRO_FUNCTION_RESOLVER( int (TextManager::*)(char, int), false, Address::SHC_3BB0A8C1_0x0046A720, &TextManager::getCharWidth) @@ -125,48 +126,49 @@ namespace Text { int (TextManager::*)(char*, int), false, Address::SHC_3BB0A8C1_0x00471690, &TextManager::computeTextWidth) computeTextWidth; - MACRO_FUNCTION_RESOLVER(int (TextManager::*)(int, int), false, Address::SHC_3BB0A8C1_0x004716D0, - &TextManager::computeNumberTextWidth) - computeNumberTextWidth; + MACRO_FUNCTION_RESOLVER( + int (TextManager::*)(int, int), false, Address::SHC_3BB0A8C1_0x004716D0, &TextManager::getIntegerTextWidth) + getIntegerTextWidth; MACRO_FUNCTION_RESOLVER( void (TextManager::*)(), false, Address::SHC_3BB0A8C1_0x00473870, &TextManager::loadCRTex) loadCRTex; MACRO_FUNCTION_RESOLVER(void (TextManager::*)(char*, int, int, int, uint, int, int), false, - Address::SHC_3BB0A8C1_0x00473A70, &TextManager::renderMultilineText5Unk) - renderMultilineText5Unk; + Address::SHC_3BB0A8C1_0x00473A70, &TextManager::renderMultilineTextAtFontSize) + renderMultilineTextAtFontSize; MACRO_FUNCTION_RESOLVER(void (TextManager::*)(char*, int, int, int, uint, uint, int, int), false, - Address::SHC_3BB0A8C1_0x00473AC0, &TextManager::renderMultilineText6Unk) - renderMultilineText6Unk; + Address::SHC_3BB0A8C1_0x00473AC0, &TextManager::renderMultilineTextWithShadow) + renderMultilineTextWithShadow; MACRO_FUNCTION_RESOLVER(void (TextManager::*)(LPWSTR, int, int, int, uint, uint, int, int), false, - Address::SHC_3BB0A8C1_0x00473B50, &TextManager::renderMultilineWideTextUnk) - renderMultilineWideTextUnk; + Address::SHC_3BB0A8C1_0x00473B50, &TextManager::renderMultilineWideTextWithShadow) + renderMultilineWideTextWithShadow; MACRO_FUNCTION_RESOLVER(void (TextManager::*)(int, int, int, int, uint, int), false, - Address::SHC_3BB0A8C1_0x00473BE0, &TextManager::renderSomeSpecificTextUnk) - renderSomeSpecificTextUnk; + Address::SHC_3BB0A8C1_0x00473BE0, &TextManager::renderPartialMultilineTextWrapper) + renderPartialMultilineTextWrapper; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(char*, int, int, TextAlignment, BGR24, int, BOOLEnum, int), false, - Address::SHC_3BB0A8C1_0x00474250, &TextManager::renderTextToScreen) + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(char*, int, int, TextAlignmentInt, BGR24, int, BOOLEnum, int), + false, Address::SHC_3BB0A8C1_0x00474250, &TextManager::renderTextToScreen) renderTextToScreen; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(LPWSTR, int, int, TextAlignment, uint, int, BOOL, int), false, + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(LPWSTR, int, int, TextAlignmentInt, uint, int, BOOL, int), false, Address::SHC_3BB0A8C1_0x004742F0, &TextManager::renderWideText) renderWideText; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(int, int, int, TextAlignment, uint, uint, int, BOOLEnum, int), + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(int, int, int, TextAlignmentInt, uint, uint, int, BOOLEnum, int), false, Address::SHC_3BB0A8C1_0x00474390, &TextManager::renderNumber2) renderNumber2; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(int, int, int, TextAlignment, uint, int, BOOLEnum, int), false, + MACRO_FUNCTION_RESOLVER(void (TextManager::*)(int, int, int, TextAlignmentInt, uint, int, BOOLEnum, int), false, Address::SHC_3BB0A8C1_0x00474430, &TextManager::renderNumberToScreen2) renderNumberToScreen2; - MACRO_FUNCTION_RESOLVER(void (TextManager::*)(char*, int, int, TextAlignment, uint, uint, int, BOOLEnum, int), - false, Address::SHC_3BB0A8C1_0x00475E00, &TextManager::renderInGameTextWithShadow) + MACRO_FUNCTION_RESOLVER( + void (TextManager::*)(char*, int, int, TextAlignmentInt, uint, uint, int, BOOLEnum, int), false, + Address::SHC_3BB0A8C1_0x00475E00, &TextManager::renderInGameTextWithShadow) renderInGameTextWithShadow; } // namespace TextManager_Func diff --git a/src/OpenSHC/Text/TextManager.hpp b/src/OpenSHC/Text/TextManager.hpp index b8c75932..57a5ce9b 100644 --- a/src/OpenSHC/Text/TextManager.hpp +++ b/src/OpenSHC/Text/TextManager.hpp @@ -8,12 +8,12 @@ #pragma once -#include "OpenSHC/DE/SHCDE/eTextSections.hpp" +#include "OpenSHC/DE/SHCDE/eTextSectionsInt.hpp" #include "OpenSHC/Rendering/Colors/BGR24.hpp" #include "OpenSHC/Rendering/Enums/RenderTargetInt.hpp" #include "OpenSHC/Text/FontSizeClass.hpp" #include "OpenSHC/Text/GameLanguageInt.hpp" -#include "OpenSHC/Text/TextAlignment.hpp" +#include "OpenSHC/Text/TextAlignmentInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "OpenSHC/WindowsHelper/Enums/CodePageInt.hpp" @@ -22,12 +22,12 @@ namespace OpenSHC { namespace Text { - using OpenSHC::DE::SHCDE::eTextSections; + using OpenSHC::DE::SHCDE::eTextSectionsInt; using OpenSHC::Rendering::Colors::BGR24; using OpenSHC::Rendering::Enums::RenderTargetInt; using OpenSHC::Text::FontSizeClass; using OpenSHC::Text::GameLanguageInt; - using OpenSHC::Text::TextAlignment; + using OpenSHC::Text::TextAlignmentInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; using OpenSHC::WindowsHelper::Enums::CodePageInt; @@ -72,37 +72,38 @@ namespace Text { TextManager() {}; ~TextManager() {}; - void renderInGameText(char* textAddress, int xParam, int yParam, TextAlignment alignment, uint color1, + void renderInGameText(char* textAddress, int xParam, int yParam, TextAlignmentInt alignment, uint color1, uint color2, int fontSize, BOOLEnum keepOffsetX); - void renderTextToScreen2(char* textAddress, int xParam, int yParam, TextAlignment alignment, BGR24 color, + void renderTextToScreen2(char* textAddress, int xParam, int yParam, TextAlignmentInt alignment, BGR24 color, int fontSize, BOOLEnum keepOffsetX); - void renderText(eTextSections textGroupIndex, int textNumInGroup, int xPosition, int yPosition, - TextAlignment textShift, uint color, uint param_7, int fontSize, BOOLEnum param_9); + void renderText(eTextSectionsInt textGroupIndex, int textNumInGroup, int xPosition, int yPosition, + TextAlignmentInt textShift, uint color, uint param_7, int fontSize, BOOLEnum param_9); - void renderText2(eTextSections textOffsetIndex, int textNumInGroup, int xParam, int yParam, - TextAlignment alignment, uint color, int fontSize, BOOLEnum keepOffsetX); + void renderText2(eTextSectionsInt textOffsetIndex, int textNumInGroup, int xParam, int yParam, + TextAlignmentInt alignment, uint color, int fontSize, BOOLEnum keepOffsetX); - void renderInGameText2(eTextSections textOffsetIndex, int textNumInGroup, int xParam, int yParam, - TextAlignment alignment, uint color1, uint color2, int fontSize, BOOLEnum keepOffsetX, int blendStrength); + void renderInGameText2(eTextSectionsInt textOffsetIndex, int textNumInGroup, int xParam, int yParam, + TextAlignmentInt alignment, uint color1, uint color2, int fontSize, BOOLEnum keepOffsetX, + int blendStrength); - void renderTextFromTextGroup(eTextSections offsetIndex, int numInGroup, int xParam, int yParam, - TextAlignment alignment, uint color, int fontSize, BOOLEnum keepOffsetX, int blendStrength); + void renderTextFromTextGroup(eTextSectionsInt offsetIndex, int numInGroup, int xParam, int yParam, + TextAlignmentInt alignment, uint color, int fontSize, BOOLEnum keepOffsetX, int blendStrength); - void renderMultilineText2(eTextSections param_1, int param_2, int param_3, int param_4); + void renderMultilineText2(eTextSectionsInt param_1, int param_2, int param_3, int param_4); - void renderMultilineTextUnk(eTextSections textOffsetIndex, int textNumInGroup, int xPos, int yPos, int maxWidth, - uint color, int fontSize, int blendStrength); + void renderMultilineTextFromGroupWithBlend(eTextSectionsInt textOffsetIndex, int textNumInGroup, int xPos, + int yPos, int maxWidth, uint color, int fontSize, int blendStrength); - void renderMultilineText2Unk(eTextSections textOffsetIndex, int textNumInGroup, int xPos, int yPos, + void renderMultilineTextFromGroup(eTextSectionsInt textOffsetIndex, int textNumInGroup, int xPos, int yPos, int maxWidth, uint color, int fontSize); - void renderMultilineText3Unk(eTextSections textOffsetIndex, int textNumInGroup, int xPos, int yPos, - int maxWidth, uint color1, uint color2, int fontSize, int blendStrength); + void renderMultilineTextFromGroupWithShadow(eTextSectionsInt textOffsetIndex, int textNumInGroup, int xPos, + int yPos, int maxWidth, uint color1, uint color2, int fontSize, int blendStrength); - void renderMultilineText4Unk(eTextSections textOffsetIndex, int textNumInGroup, int xPos, int yPos, - int maxWidth, uint color, int fontSize, int blendStrength); + void renderMultilineTextFromGroupNoSpacing(eTextSectionsInt textOffsetIndex, int textNumInGroup, int xPos, + int yPos, int maxWidth, uint color, int fontSize, int blendStrength); void renderNumber( int number, int xPosition, int yPosition, uint color1, uint color2, int fontSize, BOOLEnum keepOffsetX); @@ -110,63 +111,63 @@ namespace Text { void renderLeftAlignedNumberToScreen( int number, int xParam, int yParam, uint color, int fontSize, BOOL keepOffsetX); - void renderNumberToScreen(int number, int xParam, int yParam, TextAlignment alignment, uint color, int fontSize, - BOOLEnum keepOffsetX); + void renderNumberToScreen(int number, int xParam, int yParam, TextAlignmentInt alignment, uint color, + int fontSize, BOOLEnum keepOffsetX); - int computeTextWidthForTextGroup(eTextSections textOffsetIndex, int textNumInGroup, int fontSize); + int computeTextWidthForTextGroup(eTextSectionsInt textOffsetIndex, int textNumInGroup, int fontSize); void setupFontSizeClassObjects(); - void setTextClipRange(dword param_1, dword param_2); + void setTextManagerClipRange(dword param_1, dword param_2); - void resetTextClipRange(); + void resetTextManagerClipRange(); void trimText(char* text, int allowedWidth, int fontSize); - int getTextWidthTillCursorUnk(char* text, int cursorIndex, int fontSize); + int getTextWidthTillCursor(char* text, int cursorIndex, int fontSize); void fillIntegerTextBuffer(int numberInt); - char* getTextStringInGroupAtOffset(eTextSections offsetIndex, int numInGroup); + char* getTextStringInGroupAtOffset(eTextSectionsInt offsetIndex, int numInGroup); - int renderPartOfNumberUnk(int numberToRenderUnk, int xPosUnk, int yPosUnk, int integerPartToRenderUnk, + int renderNumberDigitAtPlace(int numberToRenderUnk, int xPosUnk, int yPosUnk, int integerPartToRenderUnk, int bgr24, int digitSet, BOOL useCurrentXOffsetUnk); - int calcRenderedNumberWidth(int param_1, int param_2); + int getNumberGfxWidth(int param_1, int param_2); int getCharWidth(char char_, int fontSize); int computeTextWidth(char* text, int fontSize); - int computeNumberTextWidth(int param_1, int param_2); + int getIntegerTextWidth(int param_1, int param_2); void loadCRTex(); - void renderMultilineText5Unk( + void renderMultilineTextAtFontSize( char* text, int xPos, int yPos, int maxWidth, uint color, int fontSize, int blendStrength); - void renderMultilineText6Unk( + void renderMultilineTextWithShadow( char* text, int xPos, int yPos, int maxWidth, uint color1, uint color2, int fontSize, int blendStrength); - void renderMultilineWideTextUnk(LPWSTR _wideText, int xPos, int yPos, int maxWidth, uint color1, uint color2, - int fontSize, int blendStrength); + void renderMultilineWideTextWithShadow(LPWSTR _wideText, int xPos, int yPos, int maxWidth, uint color1, + uint color2, int fontSize, int blendStrength); - void renderSomeSpecificTextUnk( + void renderPartialMultilineTextWrapper( int lengthUnk, int otherBlendValueUnk, int xPos, int yPos, uint color, int fontSize); - void renderTextToScreen(char* textAddress, int xParam, int yParam, TextAlignment alignment, BGR24 color, + void renderTextToScreen(char* textAddress, int xParam, int yParam, TextAlignmentInt alignment, BGR24 color, int fontSize, BOOLEnum keepOffsetX, int blendStrength); - void renderWideText(LPWSTR wideText, int xPos, int yPos, TextAlignment alignment, uint color, int fontSize, + void renderWideText(LPWSTR wideText, int xPos, int yPos, TextAlignmentInt alignment, uint color, int fontSize, BOOL keepXOffset, int blendStrength); - void renderNumber2(int integer, int xPosition, int yPosition, TextAlignment textShift, uint color, uint param_6, - int fontSize, BOOLEnum param_8, int param_9); + void renderNumber2(int integer, int xPosition, int yPosition, TextAlignmentInt textShift, uint color, + uint param_6, int fontSize, BOOLEnum param_8, int param_9); - void renderNumberToScreen2(int number, int xParam, int yParam, TextAlignment alignment, uint color, + void renderNumberToScreen2(int number, int xParam, int yParam, TextAlignmentInt alignment, uint color, int fontSize, BOOLEnum keepOffsetX, int blendStrength); - void renderInGameTextWithShadow(char* textAddress, int xParam, int yParam, TextAlignment alignment, + void renderInGameTextWithShadow(char* textAddress, int xParam, int yParam, TextAlignmentInt alignment, uint foregroundColor, uint backgroundColor, int fontSize, BOOLEnum keepOffsetX, int blendStrength); }; diff --git a/src/OpenSHC/Text/UserTextHandler.func.hpp b/src/OpenSHC/Text/UserTextHandler.func.hpp index a6a413ac..e0821d91 100644 --- a/src/OpenSHC/Text/UserTextHandler.func.hpp +++ b/src/OpenSHC/Text/UserTextHandler.func.hpp @@ -20,12 +20,12 @@ namespace Text { getTextArrayPointer; MACRO_FUNCTION_RESOLVER(void (UserTextHandler::*)(undefined4, undefined4), false, - Address::SHC_3BB0A8C1_0x00469800, &UserTextHandler::setTextEntryAndUpdateCursor) - setTextEntryAndUpdateCursor; + Address::SHC_3BB0A8C1_0x00469800, &UserTextHandler::setTextBoxContent) + setTextBoxContent; - MACRO_FUNCTION_RESOLVER( - int (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x00469860, &UserTextHandler::getCurrentFontSize) - getCurrentFontSize; + MACRO_FUNCTION_RESOLVER(int (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x00469860, + &UserTextHandler::getCurrentTextBoxFontSize) + getCurrentTextBoxFontSize; MACRO_FUNCTION_RESOLVER( void (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x00469870, &UserTextHandler::handleReturnKey) @@ -40,28 +40,28 @@ namespace Text { handleLeftKey; MACRO_FUNCTION_RESOLVER( - void (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x004698C0, &UserTextHandler::resetCursorToStart) - resetCursorToStart; + void (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x004698C0, &UserTextHandler::resetTextBoxCursor) + resetTextBoxCursor; MACRO_FUNCTION_RESOLVER( void (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x004698D0, &UserTextHandler::moveCursorToEnd) moveCursorToEnd; MACRO_FUNCTION_RESOLVER(void (UserTextHandler::*)(int, int), false, Address::SHC_3BB0A8C1_0x004698F0, - &UserTextHandler::shiftTextLeftAtCursor) - shiftTextLeftAtCursor; + &UserTextHandler::removeTextBoxChars) + removeTextBoxChars; MACRO_FUNCTION_RESOLVER(void (UserTextHandler::*)(int, int), false, Address::SHC_3BB0A8C1_0x00469930, - &UserTextHandler::shiftTextRightAtCursor) - shiftTextRightAtCursor; + &UserTextHandler::insertCharSlotInTextBox) + insertCharSlotInTextBox; MACRO_FUNCTION_RESOLVER(void (UserTextHandler::*)(int), false, Address::SHC_3BB0A8C1_0x00469980, &UserTextHandler::handleCharacterIntoInputBuffer) handleCharacterIntoInputBuffer; - MACRO_FUNCTION_RESOLVER(uint (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x004699E0, - &UserTextHandler::dequeueInputBufferChar) - dequeueInputBufferChar; + MACRO_FUNCTION_RESOLVER( + uint (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x004699E0, &UserTextHandler::dequeueInputChar) + dequeueInputChar; MACRO_FUNCTION_RESOLVER( void (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x004715A0, &UserTextHandler::handleBackspace) @@ -76,8 +76,8 @@ namespace Text { copyIntoTextArray; MACRO_FUNCTION_RESOLVER(int (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x00472CB0, - &UserTextHandler::isTextInputAtCapacity) - isTextInputAtCapacity; + &UserTextHandler::checkTextBoxInputRoom) + checkTextBoxInputRoom; MACRO_FUNCTION_RESOLVER( void (UserTextHandler::*)(), false, Address::SHC_3BB0A8C1_0x00472D00, &UserTextHandler::handleDeleteKey) diff --git a/src/OpenSHC/Text/UserTextHandler.hpp b/src/OpenSHC/Text/UserTextHandler.hpp index bf48ccb8..35660831 100644 --- a/src/OpenSHC/Text/UserTextHandler.hpp +++ b/src/OpenSHC/Text/UserTextHandler.hpp @@ -48,9 +48,9 @@ namespace Text { int getTextArrayPointer(int param_1); - void setTextEntryAndUpdateCursor(undefined4 param_1, undefined4 param_2); + void setTextBoxContent(undefined4 param_1, undefined4 param_2); - int getCurrentFontSize(); + int getCurrentTextBoxFontSize(); void handleReturnKey(); @@ -58,17 +58,17 @@ namespace Text { void handleLeftKey(); - void resetCursorToStart(); + void resetTextBoxCursor(); void moveCursorToEnd(); - void shiftTextLeftAtCursor(int param_1, int param_2); + void removeTextBoxChars(int param_1, int param_2); - void shiftTextRightAtCursor(int param_1, int param_2); + void insertCharSlotInTextBox(int param_1, int param_2); void handleCharacterIntoInputBuffer(int characterCode); - uint dequeueInputBufferChar(); + uint dequeueInputChar(); void handleBackspace(); @@ -76,7 +76,7 @@ namespace Text { void copyIntoTextArray(char* param_1); - int isTextInputAtCapacity(); + int checkTextBoxInputRoom(); void handleDeleteKey(); diff --git a/src/OpenSHC/UI.func.hpp b/src/OpenSHC/UI.func.hpp index 83c3f7fe..33b80be8 100644 --- a/src/OpenSHC/UI.func.hpp +++ b/src/OpenSHC/UI.func.hpp @@ -8,23 +8,23 @@ #pragma once -#include "OpenSHC/Commands/CommandBuildingType.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" #include "OpenSHC/UI.hpp" -#include "OpenSHC/UI/ChooseNetworkServiceProvider/ChooseNetworkServiceProviderButtonActions.hpp" -#include "OpenSHC/UI/Enums/SoundMenuClickType.hpp" -#include "OpenSHC/UI/Multiplayer/FindingNetworkSessions_ButtonParameters.hpp" +#include "OpenSHC/UI/ChooseNetworkServiceProvider/ChooseNetworkServiceProviderButtonActionsInt.hpp" +#include "OpenSHC/UI/Enums/SoundMenuClickTypeInt.hpp" +#include "OpenSHC/UI/Multiplayer/FindingNetworkSessions_ButtonParametersInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "WinDef.h" namespace OpenSHC { namespace UI_Func { - using OpenSHC::Commands::CommandBuildingType; - using OpenSHC::Game::Resources::ResourceType; - using OpenSHC::UI::ChooseNetworkServiceProvider::ChooseNetworkServiceProviderButtonActions; - using OpenSHC::UI::Enums::SoundMenuClickType; - using OpenSHC::UI::Multiplayer::FindingNetworkSessions_ButtonParameters; + using OpenSHC::Commands::CommandBuildingTypeInt; + using OpenSHC::Game::Resources::ResourceTypeInt; + using OpenSHC::UI::ChooseNetworkServiceProvider::ChooseNetworkServiceProviderButtonActionsInt; + using OpenSHC::UI::Enums::SoundMenuClickTypeInt; + using OpenSHC::UI::Multiplayer::FindingNetworkSessions_ButtonParametersInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER( @@ -152,12 +152,12 @@ namespace UI_Func { MenuModalRenderFunction_UnusedSetName; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00426750, - &OpenSHC::UI::MenuItemRenderFunction_UnusedSetName_ButtonsUnk) - MenuItemRenderFunction_UnusedSetName_ButtonsUnk; + &OpenSHC::UI::MenuItemRenderFunction_UnusedSetName_Buttons) + MenuItemRenderFunction_UnusedSetName_Buttons; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004267F0, - &OpenSHC::UI::MenuItemActionHandler_UnusedSetName_ButtonsUnk) - MenuItemActionHandler_UnusedSetName_ButtonsUnk; + &OpenSHC::UI::MenuItemActionHandler_UnusedSetName_Buttons) + MenuItemActionHandler_UnusedSetName_Buttons; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00426830, &OpenSHC::UI::MenuView_HistoricMissionSelect_Prepare) @@ -192,16 +192,16 @@ namespace UI_Func { MenuItemActionHandler_UnusedEconomicMissionSelect_General; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00426F80, - &OpenSHC::UI::MenuView_UnusedSomeMissionStartUnk_Prepare) - MenuView_UnusedSomeMissionStartUnk_Prepare; + &OpenSHC::UI::MenuView_UnusedSomeMissionStart_Prepare) + MenuView_UnusedSomeMissionStart_Prepare; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00426FB0, - &OpenSHC::UI::MenuItemRenderFunction_UnusedSomeMissionStartUnk_General) - MenuItemRenderFunction_UnusedSomeMissionStartUnk_General; + &OpenSHC::UI::MenuItemRenderFunction_UnusedSomeMissionStart_General) + MenuItemRenderFunction_UnusedSomeMissionStart_General; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00427080, - &OpenSHC::UI::MenuItemActionHandler_UnusedSomeMissionStartUnk_General) - MenuItemActionHandler_UnusedSomeMissionStartUnk_General; + &OpenSHC::UI::MenuItemActionHandler_UnusedSomeMissionStart_General) + MenuItemActionHandler_UnusedSomeMissionStart_General; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00427110, &OpenSHC::UI::MenuView_MpConnection_Prepare) @@ -212,12 +212,12 @@ namespace UI_Func { MenuView_General_DoEveryFrame_FirstGfxCentered; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00427240, - &OpenSHC::UI::MenuView_Unknown61ReturnToSkrimishMenuUnk_DoInitial) - MenuView_Unknown61ReturnToSkrimishMenuUnk_DoInitial; + &OpenSHC::UI::MenuView_ReturnToSkirmishMenu61_DoInitial) + MenuView_ReturnToSkirmishMenu61_DoInitial; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004272C0, - &OpenSHC::UI::MenuView_Unknown61ReturnToSkrimishMenuUnk_DoEveryFrame) - MenuView_Unknown61ReturnToSkrimishMenuUnk_DoEveryFrame; + &OpenSHC::UI::MenuView_ReturnToSkirmishMenu61_DoEveryFrame) + MenuView_ReturnToSkirmishMenu61_DoEveryFrame; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00427320, &OpenSHC::UI::MenuView_LobbyMenu_Prepare) @@ -269,8 +269,8 @@ namespace UI_Func { MenuItemActionHandler_LobbyMenu_SkirmishTypeAndBalance; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x0042AC40, - &OpenSHC::UI::MenuItemRenderFunction_LobbyMenu_Unknown) - MenuItemRenderFunction_LobbyMenu_Unknown; + &OpenSHC::UI::MenuItemRenderFunction_LobbyMenu_ConstructionCostText) + MenuItemRenderFunction_LobbyMenu_ConstructionCostText; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x0042AC90, &OpenSHC::UI::MenuItemRenderFunction_LobbyMenu_ChatBox) @@ -325,9 +325,9 @@ namespace UI_Func { &OpenSHC::UI::MenuItemRenderFunction_SelectCrusade_Main) MenuItemRenderFunction_SelectCrusade_Main; - MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0042C090, &OpenSHC::UI::MenuView_Unknown33_DoEveryFrame) - MenuView_Unknown33_DoEveryFrame; + MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0042C090, + &OpenSHC::UI::MenuView_LobbyReadyLaunchGame_DoEveryFrame) + MenuView_LobbyReadyLaunchGame_DoEveryFrame; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x0042D140, &OpenSHC::UI::MenuItemRenderFunction_SingleplayerMapChoice_ButtonsAndHands) @@ -489,8 +489,8 @@ namespace UI_Func { &OpenSHC::UI::MenuItemActionHandler_MapEditorLandscaping_CategoryButtons) MenuItemActionHandler_MapEditorLandscaping_CategoryButtons; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(CommandBuildingType param_1, ...), false, Address::SHC_3BB0A8C1_0x004314E0, - &OpenSHC::UI::MenuItemActionHandler_MapEditorLandscaping_GeneralButtons) + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(CommandBuildingTypeInt param_1, ...), false, + Address::SHC_3BB0A8C1_0x004314E0, &OpenSHC::UI::MenuItemActionHandler_MapEditorLandscaping_GeneralButtons) MenuItemActionHandler_MapEditorLandscaping_GeneralButtons; MACRO_FUNCTION_RESOLVER( @@ -506,12 +506,12 @@ namespace UI_Func { MenuView_BuildMenu_DoEveryFrame; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00433200, - &OpenSHC::UI::MenuItemActionHandler_BuildMenu_SomeKeepAndGranaryCheckUnk) - MenuItemActionHandler_BuildMenu_SomeKeepAndGranaryCheckUnk; + &OpenSHC::UI::MenuItemActionHandler_BuildMenu_RedirectFromWitchHoistIfHasKeep) + MenuItemActionHandler_BuildMenu_RedirectFromWitchHoistIfHasKeep; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00433230, - &OpenSHC::UI::MenuItemActionHandler_InGameMenu_UnknownBinkRelated) - MenuItemActionHandler_InGameMenu_UnknownBinkRelated; + &OpenSHC::UI::MenuItemActionHandler_InGameMenu_SkipBinkVideo) + MenuItemActionHandler_InGameMenu_SkipBinkVideo; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00433260, &OpenSHC::UI::RenderScribeFrame) @@ -537,8 +537,8 @@ namespace UI_Func { MenuItemRenderFunction_BuildMenu_BuildingKeepSubcategoryButton; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00434260, - &OpenSHC::UI::MenuItemActionHandler_General_Unknown2) - MenuItemActionHandler_General_Unknown2; + &OpenSHC::UI::MenuItemActionHandler_General_SetPreviousMenuTab) + MenuItemActionHandler_General_SetPreviousMenuTab; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00434270, &OpenSHC::UI::MenuItemActionHandler_InGameMenu_MiniMapInteraction) @@ -553,12 +553,8 @@ namespace UI_Func { MenuItemActionHandler_InGameMenu_PeasantBuildAndRightClickMenuSelection; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004348D0, - &OpenSHC::UI::MenuItemActionHandler_InGameMenu_UnitSelectionAndControlsUnk) - MenuItemActionHandler_InGameMenu_UnitSelectionAndControlsUnk; - - MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x00437CC0, &OpenSHC::UI::HandleWallTerrainMouseDrag) - HandleWallTerrainMouseDrag; + &OpenSHC::UI::MenuItemActionHandler_InGameMenu_UnitSelectionAndControls) + MenuItemActionHandler_InGameMenu_UnitSelectionAndControls; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00437ED0, &OpenSHC::UI::MenuItemActionHandler_InGameMenu_TriggerPlaceWallCommand) @@ -569,8 +565,8 @@ namespace UI_Func { MenuItemActionHandler_BuildMenu_DeleteAction; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00438B60, - &OpenSHC::UI::MenuItemActionHandler_InGameMenu_RightClickMenuAndMaybeResets) - MenuItemActionHandler_InGameMenu_RightClickMenuAndMaybeResets; + &OpenSHC::UI::MenuItemActionHandler_InGameMenu_RightClickDragAndMouseReset) + MenuItemActionHandler_InGameMenu_RightClickDragAndMouseReset; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int mapperValue, ...), false, Address::SHC_3BB0A8C1_0x00438BE0, &OpenSHC::UI::MenuItemRenderFunction_BuildMenu_UnitActionButtons) @@ -597,8 +593,8 @@ namespace UI_Func { MenuView_BuildingAndStatusMenu_DoInitial; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0043A850, - &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Countdown) - MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Countdown; + &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_SetCountdown) + MenuItemActionHandler_BuildingAndStatusMenu_SetCountdown; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0043A860, &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_BuildingHelpTextButton) @@ -629,8 +625,8 @@ namespace UI_Func { MenuItemRenderFunction_BuildingAndStatusMenu_StatusMainMenuButtons; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0043F2B0, - &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_PopularityMenuSwitchButtonUnk) - MenuItemActionHandler_BuildingAndStatusMenu_PopularityMenuSwitchButtonUnk; + &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_TogglePopularityPage) + MenuItemActionHandler_BuildingAndStatusMenu_TogglePopularityPage; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x0043F2C0, &OpenSHC::UI::MenuItemRenderFunction_BuildingAndStatusMenu_PopularityMenuSwitchButton) @@ -661,8 +657,8 @@ namespace UI_Func { MenuItemActionHandler_BuildingAndStatusMenu_ReturnToBuildMenu; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00440360, &OpenSHC::UI::CountPlayerUnitsByType) - CountPlayerUnitsByType; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00440360, &OpenSHC::UI::countPlayerUnitsByType) + countPlayerUnitsByType; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004403D0, &OpenSHC::UI::MenuView_UnusedHelpTextEditor_Prepare) @@ -673,8 +669,8 @@ namespace UI_Func { MenuView_UnusedHelpTextEditor_DoEveryFrame; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00440410, - &OpenSHC::UI::MenuItemFunction_General_Unknown) - MenuItemFunction_General_Unknown; + &OpenSHC::UI::MenuItemFunction_ClearStopHandling) + MenuItemFunction_ClearStopHandling; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00440420, &OpenSHC::UI::MenuItemActionHandler_UnusedOldTitleMenu_General) @@ -693,8 +689,8 @@ namespace UI_Func { MenuItemActionHandler_CustomScenarios_Main; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004409C0, - &OpenSHC::UI::MenuView_Unknown61ReturnToSkrimishMenuUnk_Prepare) - MenuView_Unknown61ReturnToSkrimishMenuUnk_Prepare; + &OpenSHC::UI::MenuView_ReturnToSkirmishMenu61_Prepare) + MenuView_ReturnToSkirmishMenu61_Prepare; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00440A50, &OpenSHC::UI::MenuItemActionHandler_LobbyMenu_MapSelectHeader) @@ -728,7 +724,7 @@ namespace UI_Func { &OpenSHC::UI::MenuItemActionHandler_MapEditorLandscaping_QueueCommandCallback) MenuItemActionHandler_MapEditorLandscaping_QueueCommandCallback; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(CommandBuildingType buttonID), false, Address::SHC_3BB0A8C1_0x00444410, + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(CommandBuildingTypeInt buttonID), false, Address::SHC_3BB0A8C1_0x00444410, &OpenSHC::UI::MenuItemActionHandler_General_ToolbarButtonPressed) MenuItemActionHandler_General_ToolbarButtonPressed; @@ -786,12 +782,12 @@ namespace UI_Func { MenuItemRenderFunction_TextEditor_Scrollbar; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x0045F120, - &OpenSHC::UI::MenuItemRenderFunction_DisplayScenarioHelpText_AnotherButtonUnk) - MenuItemRenderFunction_DisplayScenarioHelpText_AnotherButtonUnk; + &OpenSHC::UI::MenuItemRenderFunction_DisplayScenarioHelpText_ConditionalButton) + MenuItemRenderFunction_DisplayScenarioHelpText_ConditionalButton; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x00461570, - &OpenSHC::UI::MenuItemActionHandler_TextEditor_TextInputRelatedUnk) - MenuItemActionHandler_TextEditor_TextInputRelatedUnk; + MACRO_FUNCTION_RESOLVER( + void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x00461570, &OpenSHC::UI::processTextEditorInput) + processTextEditorInput; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00462340, &OpenSHC::UI::MenuItemActionHandler_TextEditor_Buttons) @@ -801,10 +797,6 @@ namespace UI_Func { &OpenSHC::UI::MenuItemRenderFunction_General_RenderCurrentButtonWithPossibleAlphaTexOnScreenMenuSurface) MenuItemRenderFunction_General_RenderCurrentButtonWithPossibleAlphaTexOnScreenMenuSurface; - MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x004641A0, &OpenSHC::UI::RenderButtonImageWithBlending) - RenderButtonImageWithBlending; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00464260, &OpenSHC::UI::MenuItemRenderFunction_ChooseRandomNumberOfEnemies_Main) MenuItemRenderFunction_ChooseRandomNumberOfEnemies_Main; @@ -818,26 +810,26 @@ namespace UI_Func { MenuItemRenderFunction_MapEditorLandscaping_GeneralButtons; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x004649C0, - &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Min1) - MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Min1; + &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_ResetSelectionA) + MenuItemActionHandler_BuildingAndStatusMenu_ResetSelectionA; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004649D0, &OpenSHC::UI::MenuItemRenderFunction_BuildingAndStatusMenu_BarracksWeaponAvailability) MenuItemRenderFunction_BuildingAndStatusMenu_BarracksWeaponAvailability; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x00464D90, - &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_UnknownMin1Unk) - MenuItemActionHandler_BuildingAndStatusMenu_UnknownMin1Unk; + &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_ResetSelectionB) + MenuItemActionHandler_BuildingAndStatusMenu_ResetSelectionB; MACRO_FUNCTION_RESOLVER( BOOLEnum(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x00465040, &OpenSHC::UI::HasEnoughGold) HasEnoughGold; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(ResourceType _weapon, ...), false, Address::SHC_3BB0A8C1_0x00465110, + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(ResourceTypeInt _weapon, ...), false, Address::SHC_3BB0A8C1_0x00465110, &OpenSHC::UI::MenuItemRenderFunction_BuildingAndStatusMenu_WorkshopWeaponSelection) MenuItemRenderFunction_BuildingAndStatusMenu_WorkshopWeaponSelection; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(ResourceType weapon, ...), false, Address::SHC_3BB0A8C1_0x00465200, + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(ResourceTypeInt weapon, ...), false, Address::SHC_3BB0A8C1_0x00465200, &OpenSHC::UI::MenuItemActionHandler_BuildingAndStatusMenu_WorkshopWeaponSelection) MenuItemActionHandler_BuildingAndStatusMenu_WorkshopWeaponSelection; @@ -981,8 +973,8 @@ namespace UI_Func { TicksSinceCounterStart; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00471A80, &OpenSHC::UI::exitToScenarioDescriptionMenu) - exitToScenarioDescriptionMenu; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00471A80, &OpenSHC::UI::gotoScenarioDescription) + gotoScenarioDescription; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x0047C670, &OpenSHC::UI::MenuItemRenderFunction_NetworkSessions_Buttons) @@ -994,8 +986,8 @@ namespace UI_Func { MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, int param_2, int* minValue, int* maxValue, int* currentValue), false, Address::SHC_3BB0A8C1_0x0047CA80, - &OpenSHC::UI::MenuItemActionHandler_ChooseNetworkServiceProvider_ProviderScrollbarUnk) - MenuItemActionHandler_ChooseNetworkServiceProvider_ProviderScrollbarUnk; + &OpenSHC::UI::MenuItemActionHandler_ChooseNetworkServiceProvider_ProviderScrollbar) + MenuItemActionHandler_ChooseNetworkServiceProvider_ProviderScrollbar; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x0047CB30, &OpenSHC::UI::MenuItemRenderFunction_ChooseNetworkServiceProvider_ProviderTableRows) @@ -1019,8 +1011,8 @@ namespace UI_Func { MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, int param_2, int* minValue, int* maxValue, int* currentValue), false, Address::SHC_3BB0A8C1_0x0047D070, - &OpenSHC::UI::MenuItemActionHandler_ChooseNetworkServiceProvider_ModemScrollbarUnk) - MenuItemActionHandler_ChooseNetworkServiceProvider_ModemScrollbarUnk; + &OpenSHC::UI::MenuItemActionHandler_ChooseNetworkServiceProvider_ModemScrollbar) + MenuItemActionHandler_ChooseNetworkServiceProvider_ModemScrollbar; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x0047D0E0, &OpenSHC::UI::MenuItemActionHandler_ChooseNetworkServiceProvider_ModemTableRows) @@ -1086,11 +1078,11 @@ namespace UI_Func { &OpenSHC::UI::MenuItemActionHandler_Chat_TauntButtons) MenuItemActionHandler_Chat_TauntButtons; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(ChooseNetworkServiceProviderButtonActions param_1, ...), false, + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(ChooseNetworkServiceProviderButtonActionsInt param_1, ...), false, Address::SHC_3BB0A8C1_0x004909E0, &OpenSHC::UI::MenuItemActionHandler_ChooseNetworkServiceProvider_Buttons) MenuItemActionHandler_ChooseNetworkServiceProvider_Buttons; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(FindingNetworkSessions_ButtonParameters param_1, ...), false, + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(FindingNetworkSessions_ButtonParametersInt param_1, ...), false, Address::SHC_3BB0A8C1_0x00490D90, &OpenSHC::UI::MenuItemActionHandler_FindingNetworkSessions_Buttons) MenuItemActionHandler_FindingNetworkSessions_Buttons; @@ -1255,13 +1247,13 @@ namespace UI_Func { &OpenSHC::UI::MenuItemActionHandler_VideoOptions_Main) MenuItemActionHandler_VideoOptions_Main; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(SoundMenuClickType param_1, ...), false, Address::SHC_3BB0A8C1_0x004940B0, + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(SoundMenuClickTypeInt param_1, ...), false, Address::SHC_3BB0A8C1_0x004940B0, &OpenSHC::UI::MenuItemActionHandler_SoundOptions_Buttons) MenuItemActionHandler_SoundOptions_Buttons; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004941F0, - &OpenSHC::UI::MenuItemActionHandler_NetworkOptions_LeaveButtonUnk) - MenuItemActionHandler_NetworkOptions_LeaveButtonUnk; + &OpenSHC::UI::MenuItemActionHandler_NetworkOptions_LeaveButton) + MenuItemActionHandler_NetworkOptions_LeaveButton; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int x, int y, int width, int height), false, Address::SHC_3BB0A8C1_0x00494210, &OpenSHC::UI::MenuModalRenderFunction_LoadMap) @@ -1279,17 +1271,17 @@ namespace UI_Func { &OpenSHC::UI::MenuItemActionHandler_SaveMap_ReturnKeySave) MenuItemActionHandler_SaveMap_ReturnKeySave; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00494950, - &OpenSHC::UI::MenuItemActionHandler_General_LaunchOrQuitMultiplayerGameUnk) - MenuItemActionHandler_General_LaunchOrQuitMultiplayerGameUnk; + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x0048C230, + &OpenSHC::UI::MenuItemActionHandler_General_LaunchOrQuitMultiplayerGame) + MenuItemActionHandler_General_LaunchOrQuitMultiplayerGame; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004950B0, &OpenSHC::UI::MenuItemActionHandler_ProgressBarBox_LoadAndSaveGameButtonLogic) MenuItemActionHandler_ProgressBarBox_LoadAndSaveGameButtonLogic; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x00495800, - &OpenSHC::UI::ShowProgressBarSaveLoadDialog) - ShowProgressBarSaveLoadDialog; + MACRO_FUNCTION_RESOLVER( + void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x00495800, &OpenSHC::UI::openLoadSaveProgressDialog) + openLoadSaveProgressDialog; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x00495860, &OpenSHC::UI::MenuItemActionHandler_OnlineVoteQuitAndQuitGame_Main) @@ -1328,8 +1320,8 @@ namespace UI_Func { MenuModalRenderFunction_DebugDataUnitData; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int x, int y, int width, int height), false, - Address::SHC_3BB0A8C1_0x004AAAA0, &OpenSHC::UI::MenuModalRenderFunction_DebugDataZoneDataUnk) - MenuModalRenderFunction_DebugDataZoneDataUnk; + Address::SHC_3BB0A8C1_0x004AAAA0, &OpenSHC::UI::MenuModalRenderFunction_DebugDataZoneData) + MenuModalRenderFunction_DebugDataZoneData; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int x, int y, int width, int height), false, Address::SHC_3BB0A8C1_0x004AAAC0, &OpenSHC::UI::MenuModalRenderFunction_DebugDataMousePointing) @@ -1372,8 +1364,8 @@ namespace UI_Func { MenuModalRenderFunction_StartGoods; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int x, int y, int width, int height), false, - Address::SHC_3BB0A8C1_0x004AB510, &OpenSHC::UI::MenuModalRenderFunction_UnusedSiegeAttackingForceUnk) - MenuModalRenderFunction_UnusedSiegeAttackingForceUnk; + Address::SHC_3BB0A8C1_0x004AB510, &OpenSHC::UI::MenuModalRenderFunction_UnusedSiegeAttackingForce) + MenuModalRenderFunction_UnusedSiegeAttackingForce; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int x, int y, int width, int height), false, Address::SHC_3BB0A8C1_0x004AB540, &OpenSHC::UI::MenuModalRenderFunction_CreateOrTriggerInvasion) @@ -1456,8 +1448,8 @@ namespace UI_Func { MenuModalRenderFunction_ReceiveMapFrom; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004AC650, &OpenSHC::UI::buildEnemyPlayerList) - buildEnemyPlayerList; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004AC650, &OpenSHC::UI::collectEnemyPlayerIDs) + collectEnemyPlayerIDs; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int x, int y, int width, int height), false, Address::SHC_3BB0A8C1_0x004AC6E0, &OpenSHC::UI::MenuModalRenderFunction_Allies) @@ -1516,16 +1508,16 @@ namespace UI_Func { MenuItemRenderFunction_Roundtable_Main; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int x, int y, int width, int height), false, - Address::SHC_3BB0A8C1_0x004AF4C0, &OpenSHC::UI::MenuModalRenderFunction_DebugDataAivStateUnk) - MenuModalRenderFunction_DebugDataAivStateUnk; + Address::SHC_3BB0A8C1_0x004AF4C0, &OpenSHC::UI::MenuModalRenderFunction_DebugDataAivState) + MenuModalRenderFunction_DebugDataAivState; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004B0F70, &OpenSHC::UI::MenuItemActionHandler_OverlaySlider_Deselect) MenuItemActionHandler_OverlaySlider_Deselect; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004B1000, - &OpenSHC::UI::MenuItemActionHandler_UnusedWinCondition_DeselectUnk) - MenuItemActionHandler_UnusedWinCondition_DeselectUnk; + &OpenSHC::UI::MenuItemActionHandler_UnusedWinCondition_CloseModalOnClickOutside) + MenuItemActionHandler_UnusedWinCondition_CloseModalOnClickOutside; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004B1090, &OpenSHC::UI::MenuItemActionHandler_UnusedWinCondition_Options) @@ -1564,12 +1556,12 @@ namespace UI_Func { MenuModalRenderFunction_Roundtable; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004B6500, - &OpenSHC::UI::MenuItemRenderFunction_InGameMenu_MapEventIconUnk) - MenuItemRenderFunction_InGameMenu_MapEventIconUnk; + &OpenSHC::UI::MenuItemRenderFunction_InGameMenu_MapEventIcon) + MenuItemRenderFunction_InGameMenu_MapEventIcon; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004B6530, - &OpenSHC::UI::MenuItemActionHandler_InGameMenu_MapEventIconUnk) - MenuItemActionHandler_InGameMenu_MapEventIconUnk; + &OpenSHC::UI::MenuItemActionHandler_InGameMenu_MapEventIconJumpTo) + MenuItemActionHandler_InGameMenu_MapEventIconJumpTo; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004B65A0, &OpenSHC::UI::MenuItemRenderFunction_InGameMenu_KeepEnclosedSymbol) @@ -1580,8 +1572,8 @@ namespace UI_Func { MenuItemRenderFunction_InGameMenu_BikMessagePlayerShield; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(uint param_1, int param_2), false, Address::SHC_3BB0A8C1_0x004B7F60, - &OpenSHC::UI::PlayMissionAestheticSFX) - PlayMissionAestheticSFX; + &OpenSHC::UI::playMissionAestheticSFX) + playMissionAestheticSFX; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004B8050, &OpenSHC::UI::MenuView_General_DoInitial_OnlySetMenuXY) @@ -1592,8 +1584,8 @@ namespace UI_Func { MenuView_EditScenario_DoEveryFrame; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004B8210, &OpenSHC::UI::RestoreScenarioGold) - RestoreScenarioGold; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004B8210, &OpenSHC::UI::restoreScenarioGold) + restoreScenarioGold; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004B8220, &OpenSHC::UI::MenuItemActionHandler_EditScenario_BaseMenuButtons) @@ -1641,8 +1633,8 @@ namespace UI_Func { MenuItemRenderFunction_NewInvasion_RepeatSlider; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004B9610, &OpenSHC::UI::CaptureCurrentTimeToUnknownTime01) - CaptureCurrentTimeToUnknownTime01; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004B9610, &OpenSHC::UI::captureCurrentTimeMs) + captureCurrentTimeMs; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004B9620, &OpenSHC::UI::MenuItemActionHandler_NewEventCondition_Main) @@ -1661,8 +1653,8 @@ namespace UI_Func { MenuItemRenderFunction_General_EventSlider; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int index, ...), false, Address::SHC_3BB0A8C1_0x004BA560, - &OpenSHC::UI::MenuItemActionHandler_UnusedCreateMessageEvent_Unknown) - MenuItemActionHandler_UnusedCreateMessageEvent_Unknown; + &OpenSHC::UI::MenuItemActionHandler_UnusedCreateMessageEvent_SetActionData) + MenuItemActionHandler_UnusedCreateMessageEvent_SetActionData; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004BA5C0, &OpenSHC::UI::MenuItemActionHandler_SiegeAttackingForceAndStartGoods_Main) @@ -1750,24 +1742,24 @@ namespace UI_Func { MenuItemRenderFunction_TriggerInvasion_Main; MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x004BC5F0, &OpenSHC::UI::initTutorialStepTransition) - initTutorialStepTransition; + void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x004BC5F0, &OpenSHC::UI::startTutorialTimer) + startTutorialTimer; MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x004BC630, &OpenSHC::UI::recordTutorialPlayerAction) - recordTutorialPlayerAction; + void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x004BC630, &OpenSHC::UI::trackTutorialEvent) + trackTutorialEvent; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004BC6C0, &OpenSHC::UI::resetTutorialActionTrackers) - resetTutorialActionTrackers; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004BC6C0, &OpenSHC::UI::resetTutorialTrackingState) + resetTutorialTrackingState; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, int param_2), false, Address::SHC_3BB0A8C1_0x004BC790, - &OpenSHC::UI::renderAnimatedTutorialFloatOverlay) - renderAnimatedTutorialFloatOverlay; + &OpenSHC::UI::renderTutorialPointer) + renderTutorialPointer; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x004BC910, - &OpenSHC::UI::renderTutorialFloatForUIElement) - renderTutorialFloatForUIElement; + MACRO_FUNCTION_RESOLVER( + void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x004BC910, &OpenSHC::UI::showTutorialHintPointer) + showTutorialHintPointer; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int x, int y, int width, int height), false, Address::SHC_3BB0A8C1_0x004BCBA0, &OpenSHC::UI::MenuModalRenderFunction_TutorialBox) @@ -1782,8 +1774,8 @@ namespace UI_Func { MenuItemRenderFunction_TutorialBox_Main; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004BD1B0, &OpenSHC::UI::updateTutorialStepAndProgress) - updateTutorialStepAndProgress; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004BD1B0, &OpenSHC::UI::updateTutorialStateMachine) + updateTutorialStateMachine; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004BEC10, &OpenSHC::UI::MenuView_EditScenario_Prepare) @@ -1798,8 +1790,8 @@ namespace UI_Func { MenuItemRenderFunction_EditScenario_TextBoxLike; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004BF720, - &OpenSHC::UI::MenuItemActionHandler_UnusedChooseMessageBox_Unknown) - MenuItemActionHandler_UnusedChooseMessageBox_Unknown; + &OpenSHC::UI::MenuItemActionHandler_UnusedChooseMessageBox_SelectItem) + MenuItemActionHandler_UnusedChooseMessageBox_SelectItem; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004BF760, &OpenSHC::UI::MenuItemActionHandler_NewInvasion_Buttons) @@ -1810,8 +1802,8 @@ namespace UI_Func { MenuItemRenderFunction_NewInvasion_Buttons; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004BFE20, - &OpenSHC::UI::MenuItemActionHandler_UnusedCreateMessageEvent_SetTextUnk) - MenuItemActionHandler_UnusedCreateMessageEvent_SetTextUnk; + &OpenSHC::UI::MenuItemActionHandler_UnusedCreateMessageEvent_ConfirmOrEditDate) + MenuItemActionHandler_UnusedCreateMessageEvent_ConfirmOrEditDate; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004BFFA0, &OpenSHC::UI::MenuItemRenderFunction_General_EventButtonAndData) @@ -1854,16 +1846,16 @@ namespace UI_Func { MenuItemRenderFunction_MissionEndscreen_Main; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004D6EF0, &OpenSHC::UI::MenuView_CampaignUnk_DoEveryFrame) - MenuView_CampaignUnk_DoEveryFrame; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004D6EF0, &OpenSHC::UI::MenuView_Campaign27_DoEveryFrame) + MenuView_Campaign27_DoEveryFrame; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004D6F20, - &OpenSHC::UI::MenuItemActionHandler_Unknown27CampaignUnk_Main) - MenuItemActionHandler_Unknown27CampaignUnk_Main; + &OpenSHC::UI::MenuItemActionHandler_Campaign27_Continue) + MenuItemActionHandler_Campaign27_Continue; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004D6F60, &OpenSHC::UI::ParseCampaignMapHotspotBitmap) - ParseCampaignMapHotspotBitmap; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004D6F60, &OpenSHC::UI::loadCampaignMapHotspots) + loadCampaignMapHotspots; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004D8250, &OpenSHC::UI::MenuItemRenderFunction_ScenarioDescription_Main) @@ -1874,8 +1866,8 @@ namespace UI_Func { MenuItemActionHandler_ScenarioDescription_Main; MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(char* param_1), false, Address::SHC_3BB0A8C1_0x004D8A20, &OpenSHC::UI::ReadMapHeaderFromFile) - ReadMapHeaderFromFile; + void(__cdecl*)(char* param_1), false, Address::SHC_3BB0A8C1_0x004D8A20, &OpenSHC::UI::loadMapFileHeader) + loadMapFileHeader; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004D8AB0, &OpenSHC::UI::MenuView_CrusadeMissionIntro_Prepare) @@ -1913,9 +1905,9 @@ namespace UI_Func { &OpenSHC::UI::MenuItemActionHandler_CrusadeEndscreen_Main) MenuItemActionHandler_CrusadeEndscreen_Main; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(undefined4 param_1), false, Address::SHC_3BB0A8C1_0x004D9270, - &OpenSHC::UI::SetActiveCreditsSequenceIndex) - SetActiveCreditsSequenceIndex; + MACRO_FUNCTION_RESOLVER( + void(__cdecl*)(undefined4 param_1), false, Address::SHC_3BB0A8C1_0x004D9270, &OpenSHC::UI::setCampaignMapField) + setCampaignMapField; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004D9700, &OpenSHC::UI::MenuView_RankingGames_Prepare) @@ -1959,91 +1951,91 @@ namespace UI_Func { MenuItemActionHandler_TacticalPowerBar_Main; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA180, &OpenSHC::UI::StopCreditsPlaybackAndSounds) - StopCreditsPlaybackAndSounds; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA180, &OpenSHC::UI::stopCreditsPlayback) + stopCreditsPlayback; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA200, &OpenSHC::UI::EndCreditsSegmentAndAdvanceToNext) - EndCreditsSegmentAndAdvanceToNext; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA200, &OpenSHC::UI::advanceCreditsSequence) + advanceCreditsSequence; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA300, &OpenSHC::UI::resetCredits) resetCredits; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(undefined4 param_1, undefined4 param_2), false, - Address::SHC_3BB0A8C1_0x004DA7A0, &OpenSHC::UI::AppendCreditsSoundEntry) - AppendCreditsSoundEntry; + Address::SHC_3BB0A8C1_0x004DA7A0, &OpenSHC::UI::addCreditsSoundEntry) + addCreditsSoundEntry; MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(undefined4 param_1), false, Address::SHC_3BB0A8C1_0x004DA7E0, &OpenSHC::UI::AppendCreditsCommand) - AppendCreditsCommand; + void(__cdecl*)(undefined4 param_1), false, Address::SHC_3BB0A8C1_0x004DA7E0, &OpenSHC::UI::appendCreditsCommand) + appendCreditsCommand; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA810, &OpenSHC::UI::AppendCreditsListTerminator) - AppendCreditsListTerminator; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA810, &OpenSHC::UI::appendCreditsCmd0x20) + appendCreditsCmd0x20; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA840, &OpenSHC::UI::AppendCreditsPauseCommand) - AppendCreditsPauseCommand; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA840, &OpenSHC::UI::appendCreditsCmd0x1c) + appendCreditsCmd0x1c; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA870, &OpenSHC::UI::AppendCreditsSegmentEndCommand) - AppendCreditsSegmentEndCommand; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA870, &OpenSHC::UI::appendCreditsCmd0x1f) + appendCreditsCmd0x1f; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA8A0, &OpenSHC::UI::AppendCreditsClearImageCommand) - AppendCreditsClearImageCommand; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DA8A0, &OpenSHC::UI::appendCreditsCmd0x28) + appendCreditsCmd0x28; MACRO_FUNCTION_RESOLVER( void(__cdecl*)(int param_1, int param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5), false, - Address::SHC_3BB0A8C1_0x004DA8D0, &OpenSHC::UI::AppendCreditsImageTransitionCommand) - AppendCreditsImageTransitionCommand; + Address::SHC_3BB0A8C1_0x004DA8D0, &OpenSHC::UI::addCreditsGfxElement) + addCreditsGfxElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, int param_2), false, Address::SHC_3BB0A8C1_0x004DA9A0, - &OpenSHC::UI::AppendCreditsImageEndCommand) - AppendCreditsImageEndCommand; + &OpenSHC::UI::addCreditsSoundElement) + addCreditsSoundElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, int param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6, undefined4 param_7, undefined4 param_8), - false, Address::SHC_3BB0A8C1_0x004DA9F0, &OpenSHC::UI::AppendCreditsShowImageCommand) - AppendCreditsShowImageCommand; + false, Address::SHC_3BB0A8C1_0x004DA9F0, &OpenSHC::UI::addCreditsPositionedGfxElement) + addCreditsPositionedGfxElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(undefined4 param_1, char* param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6), - false, Address::SHC_3BB0A8C1_0x004DAA80, &OpenSHC::UI::AppendCreditsBinkVideoCommand) - AppendCreditsBinkVideoCommand; + false, Address::SHC_3BB0A8C1_0x004DAA80, &OpenSHC::UI::addCreditsBinkElementWithName) + addCreditsBinkElementWithName; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, undefined4 param_2, undefined4 param_3), false, - Address::SHC_3BB0A8C1_0x004DAB00, &OpenSHC::UI::AppendCreditsFixedImageCommand) - AppendCreditsFixedImageCommand; + Address::SHC_3BB0A8C1_0x004DAB00, &OpenSHC::UI::addCreditsImageElement) + addCreditsImageElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(char* param_1, undefined4 param_2, int param_3, undefined4 param_4), false, - Address::SHC_3BB0A8C1_0x004DAB80, &OpenSHC::UI::AppendCreditsBinkVideoWithAudioCommand) - AppendCreditsBinkVideoWithAudioCommand; + Address::SHC_3BB0A8C1_0x004DAB80, &OpenSHC::UI::addCreditsBinkElementWithVolume) + addCreditsBinkElementWithVolume; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(undefined4 param_1, undefined4 param_2), false, - Address::SHC_3BB0A8C1_0x004DABF0, &OpenSHC::UI::AppendCreditsSoundStreamCommand) - AppendCreditsSoundStreamCommand; + Address::SHC_3BB0A8C1_0x004DABF0, &OpenSHC::UI::appendCreditsCommandWithSound) + appendCreditsCommandWithSound; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, int param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6, undefined4 param_7, undefined4 param_8), - false, Address::SHC_3BB0A8C1_0x004DAC30, &OpenSHC::UI::AppendCreditsTextCommand) - AppendCreditsTextCommand; + false, Address::SHC_3BB0A8C1_0x004DAC30, &OpenSHC::UI::addCreditsTextStringElement) + addCreditsTextStringElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, int param_2), false, Address::SHC_3BB0A8C1_0x004DACF0, - &OpenSHC::UI::AppendCreditsTextEndCommand) - AppendCreditsTextEndCommand; + &OpenSHC::UI::addCreditsTextStringSimple) + addCreditsTextStringSimple; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DAFB0, &OpenSHC::UI::RenderTextPageProgressBar) - RenderTextPageProgressBar; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DAFB0, &OpenSHC::UI::renderScrollingTextWithFade) + renderScrollingTextWithFade; MACRO_FUNCTION_RESOLVER( - void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x004DB0D0, &OpenSHC::UI::DisplayFullScreenTextPage) - DisplayFullScreenTextPage; + void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x004DB0D0, &OpenSHC::UI::renderScrollingTextPage) + renderScrollingTextPage; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(undefined4 param_1, undefined4 param_2), false, - Address::SHC_3BB0A8C1_0x004DB180, &OpenSHC::UI::BuildIntroLogoSequence) - BuildIntroLogoSequence; + Address::SHC_3BB0A8C1_0x004DB180, &OpenSHC::UI::buildIntroLogoSequence) + buildIntroLogoSequence; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int storedMenuStringIndex, undefined4 param_2, undefined4 param_3, int allowedWidth, undefined4 param_5, int fontSize), @@ -2051,8 +2043,8 @@ namespace UI_Func { TrimStoredMenuString; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(float param_1), false, Address::SHC_3BB0A8C1_0x004DB390, - &OpenSHC::UI::RenderScrollingCreditsTextFrame) - RenderScrollingCreditsTextFrame; + &OpenSHC::UI::renderAnimatedScrollingTextLine) + renderAnimatedScrollingTextLine; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DB4F0, &OpenSHC::UI::MenuView_HistoricMissionPicture_Prepare) @@ -2091,12 +2083,12 @@ namespace UI_Func { MenuView_HistoricCampaignOutro_DoEveryFrame; MACRO_FUNCTION_RESOLVER( - undefined4(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DC140, &OpenSHC::UI::FindCampaignMapHotspotAtMouse) - FindCampaignMapHotspotAtMouse; + undefined4(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DC140, &OpenSHC::UI::getCreditsElementAtMouse) + getCreditsElementAtMouse; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DC1C0, &OpenSHC::UI::BuildExtremeDemoIntroScript) - BuildExtremeDemoIntroScript; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DC1C0, &OpenSHC::UI::buildExtremeDemoSequence) + buildExtremeDemoSequence; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DC500, &OpenSHC::UI::MenuView_MissionFinishedTransition_DoEveryFrame) @@ -2106,17 +2098,17 @@ namespace UI_Func { void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DC9E0, &OpenSHC::UI::MenuView_GameLost_DoEveryFrame) MenuView_GameLost_DoEveryFrame; - MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DCC70, - &OpenSHC::UI::MenuView_Unknown26_CampaignRelatedUnk_Prepare) - MenuView_Unknown26_CampaignRelatedUnk_Prepare; + MACRO_FUNCTION_RESOLVER( + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DCC70, &OpenSHC::UI::MenuView_CampaignCredits26_Prepare) + MenuView_CampaignCredits26_Prepare; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DCC90, &OpenSHC::UI::MenuView_CampaignUnk_Prepare) - MenuView_CampaignUnk_Prepare; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DCC90, &OpenSHC::UI::MenuView_Campaign27_Prepare) + MenuView_Campaign27_Prepare; MACRO_FUNCTION_RESOLVER( - void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DD0C0, &OpenSHC::UI::MenuView_CampaignUnk_DoInitial) - MenuView_CampaignUnk_DoInitial; + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DD0C0, &OpenSHC::UI::MenuView_Campaign27_DoInitial) + MenuView_Campaign27_DoInitial; MACRO_FUNCTION_RESOLVER( void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DD100, &OpenSHC::UI::MenuView_ScenarioDescription_Prepare) @@ -2166,13 +2158,13 @@ namespace UI_Func { &OpenSHC::UI::MenuView_MissionFinishedTransition_Prepare) MenuView_MissionFinishedTransition_Prepare; - MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004E1E30, - &OpenSHC::UI::MenuView_Unknown26_CampaignRelatedUnk_DoInitial) - MenuView_Unknown26_CampaignRelatedUnk_DoInitial; + MACRO_FUNCTION_RESOLVER( + void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004E1E30, &OpenSHC::UI::MenuView_CampaignCredits26_DoInitial) + MenuView_CampaignCredits26_DoInitial; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004E1E70, - &OpenSHC::UI::MenuView_Unknown26_CampaignRelatedUnk_DoEveryFrame) - MenuView_Unknown26_CampaignRelatedUnk_DoEveryFrame; + &OpenSHC::UI::MenuView_CampaignCredits26_DoEveryFrame) + MenuView_CampaignCredits26_DoEveryFrame; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004E1F50, &OpenSHC::UI::MenuView_CrusadeEndscreen_DoEveryFrame) @@ -2183,8 +2175,8 @@ namespace UI_Func { MenuItemActionHandler_General_DisplayConditionalText; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1, ...), false, Address::SHC_3BB0A8C1_0x004F6A70, - &OpenSHC::UI::MenuItemActionHandler_General_RemoveConditionalTextOrReleaseHoverUnk) - MenuItemActionHandler_General_RemoveConditionalTextOrReleaseHoverUnk; + &OpenSHC::UI::MenuItemActionHandler_General_ExpireBottomLeftText) + MenuItemActionHandler_General_ExpireBottomLeftText; } // namespace UI_Func } // namespace OpenSHC diff --git a/src/OpenSHC/UI.hpp b/src/OpenSHC/UI.hpp index d9e0e919..3523d92c 100644 --- a/src/OpenSHC/UI.hpp +++ b/src/OpenSHC/UI.hpp @@ -8,22 +8,22 @@ #pragma once -#include "OpenSHC/Commands/CommandBuildingType.hpp" -#include "OpenSHC/Game/Resources/ResourceType.hpp" -#include "OpenSHC/UI/ChooseNetworkServiceProvider/ChooseNetworkServiceProviderButtonActions.hpp" -#include "OpenSHC/UI/Enums/SoundMenuClickType.hpp" -#include "OpenSHC/UI/Multiplayer/FindingNetworkSessions_ButtonParameters.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" +#include "OpenSHC/Game/Resources/ResourceTypeInt.hpp" +#include "OpenSHC/UI/ChooseNetworkServiceProvider/ChooseNetworkServiceProviderButtonActionsInt.hpp" +#include "OpenSHC/UI/Enums/SoundMenuClickTypeInt.hpp" +#include "OpenSHC/UI/Multiplayer/FindingNetworkSessions_ButtonParametersInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "WinDef.h" namespace OpenSHC { namespace UI { - using OpenSHC::Commands::CommandBuildingType; - using OpenSHC::Game::Resources::ResourceType; - using OpenSHC::UI::ChooseNetworkServiceProvider::ChooseNetworkServiceProviderButtonActions; - using OpenSHC::UI::Enums::SoundMenuClickType; - using OpenSHC::UI::Multiplayer::FindingNetworkSessions_ButtonParameters; + using OpenSHC::Commands::CommandBuildingTypeInt; + using OpenSHC::Game::Resources::ResourceTypeInt; + using OpenSHC::UI::ChooseNetworkServiceProvider::ChooseNetworkServiceProviderButtonActionsInt; + using OpenSHC::UI::Enums::SoundMenuClickTypeInt; + using OpenSHC::UI::Multiplayer::FindingNetworkSessions_ButtonParametersInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; void __stdcall MenuView_IntroLogos_Prepare(); @@ -88,9 +88,9 @@ namespace UI { void __cdecl MenuModalRenderFunction_UnusedSetName(int x, int y, int width, int height); - void __cdecl MenuItemRenderFunction_UnusedSetName_ButtonsUnk(int param_1, ...); + void __cdecl MenuItemRenderFunction_UnusedSetName_Buttons(int param_1, ...); - void __cdecl MenuItemActionHandler_UnusedSetName_ButtonsUnk(int param_1, ...); + void __cdecl MenuItemActionHandler_UnusedSetName_Buttons(int param_1, ...); void __stdcall MenuView_HistoricMissionSelect_Prepare(); @@ -108,19 +108,19 @@ namespace UI { void __cdecl MenuItemActionHandler_UnusedEconomicMissionSelect_General(int param_1, ...); - void __stdcall MenuView_UnusedSomeMissionStartUnk_Prepare(); + void __stdcall MenuView_UnusedSomeMissionStart_Prepare(); - void __cdecl MenuItemRenderFunction_UnusedSomeMissionStartUnk_General(int param_1, ...); + void __cdecl MenuItemRenderFunction_UnusedSomeMissionStart_General(int param_1, ...); - void __cdecl MenuItemActionHandler_UnusedSomeMissionStartUnk_General(int param_1, ...); + void __cdecl MenuItemActionHandler_UnusedSomeMissionStart_General(int param_1, ...); void __stdcall MenuView_MpConnection_Prepare(); void __stdcall MenuView_General_DoEveryFrame_FirstGfxCentered(); - void __stdcall MenuView_Unknown61ReturnToSkrimishMenuUnk_DoInitial(); + void __stdcall MenuView_ReturnToSkirmishMenu61_DoInitial(); - void __stdcall MenuView_Unknown61ReturnToSkrimishMenuUnk_DoEveryFrame(); + void __stdcall MenuView_ReturnToSkirmishMenu61_DoEveryFrame(); void __stdcall MenuView_LobbyMenu_Prepare(); @@ -148,7 +148,7 @@ namespace UI { void __cdecl MenuItemActionHandler_LobbyMenu_SkirmishTypeAndBalance(int param_1, ...); - void __cdecl MenuItemRenderFunction_LobbyMenu_Unknown(int param_1, ...); + void __cdecl MenuItemRenderFunction_LobbyMenu_ConstructionCostText(int param_1, ...); void __cdecl MenuItemRenderFunction_LobbyMenu_ChatBox(int param_1, ...); @@ -178,7 +178,7 @@ namespace UI { void __cdecl MenuItemRenderFunction_SelectCrusade_Main(int param_1, ...); - void __stdcall MenuView_Unknown33_DoEveryFrame(); + void __stdcall MenuView_LobbyReadyLaunchGame_DoEveryFrame(); void __cdecl MenuItemRenderFunction_SingleplayerMapChoice_ButtonsAndHands(int param_1, ...); @@ -261,7 +261,7 @@ namespace UI { void __cdecl MenuItemActionHandler_MapEditorLandscaping_CategoryButtons(int param_1, ...); - void __cdecl MenuItemActionHandler_MapEditorLandscaping_GeneralButtons(CommandBuildingType param_1, ...); + void __cdecl MenuItemActionHandler_MapEditorLandscaping_GeneralButtons(CommandBuildingTypeInt param_1, ...); void __stdcall MenuView_BuildMenu_Prepare(); @@ -269,9 +269,9 @@ namespace UI { void __stdcall MenuView_BuildMenu_DoEveryFrame(); - void __cdecl MenuItemActionHandler_BuildMenu_SomeKeepAndGranaryCheckUnk(int param_1, ...); + void __cdecl MenuItemActionHandler_BuildMenu_RedirectFromWitchHoistIfHasKeep(int param_1, ...); - void __cdecl MenuItemActionHandler_InGameMenu_UnknownBinkRelated(int param_1, ...); + void __cdecl MenuItemActionHandler_InGameMenu_SkipBinkVideo(int param_1, ...); void __stdcall RenderScribeFrame(); @@ -285,7 +285,7 @@ namespace UI { void __cdecl MenuItemRenderFunction_BuildMenu_BuildingKeepSubcategoryButton(int param_1, ...); - void __cdecl MenuItemActionHandler_General_Unknown2(int param_1, ...); + void __cdecl MenuItemActionHandler_General_SetPreviousMenuTab(int param_1, ...); void __cdecl MenuItemActionHandler_InGameMenu_MiniMapInteraction(int param_1, ...); @@ -293,15 +293,13 @@ namespace UI { void __cdecl MenuItemActionHandler_InGameMenu_PeasantBuildAndRightClickMenuSelection(int param_1, ...); - void __cdecl MenuItemActionHandler_InGameMenu_UnitSelectionAndControlsUnk(int param_1, ...); - - void __cdecl HandleWallTerrainMouseDrag(); + void __cdecl MenuItemActionHandler_InGameMenu_UnitSelectionAndControls(int param_1, ...); void __stdcall MenuItemActionHandler_InGameMenu_TriggerPlaceWallCommand(); void __cdecl MenuItemActionHandler_BuildMenu_DeleteAction(int param_1, ...); - void __cdecl MenuItemActionHandler_InGameMenu_RightClickMenuAndMaybeResets(int param_1, ...); + void __cdecl MenuItemActionHandler_InGameMenu_RightClickDragAndMouseReset(int param_1, ...); void __cdecl MenuItemRenderFunction_BuildMenu_UnitActionButtons(int mapperValue, ...); @@ -315,7 +313,7 @@ namespace UI { void __stdcall MenuView_BuildingAndStatusMenu_DoInitial(); - void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Countdown(); + void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_SetCountdown(); void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_BuildingHelpTextButton(); @@ -331,7 +329,7 @@ namespace UI { void __cdecl MenuItemRenderFunction_BuildingAndStatusMenu_StatusMainMenuButtons(int param_1, ...); - void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_PopularityMenuSwitchButtonUnk(); + void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_TogglePopularityPage(); void __cdecl MenuItemRenderFunction_BuildingAndStatusMenu_PopularityMenuSwitchButton(int param_1, ...); @@ -347,13 +345,13 @@ namespace UI { void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_ReturnToBuildMenu(int param_1, ...); - void __stdcall CountPlayerUnitsByType(); + void __stdcall countPlayerUnitsByType(); void __stdcall MenuView_UnusedHelpTextEditor_Prepare(); void __stdcall MenuView_UnusedHelpTextEditor_DoEveryFrame(); - void __cdecl MenuItemFunction_General_Unknown(int param_1, ...); + void __cdecl MenuItemFunction_ClearStopHandling(int param_1, ...); void __cdecl MenuItemActionHandler_UnusedOldTitleMenu_General(int param_1, ...); @@ -363,7 +361,7 @@ namespace UI { void __cdecl MenuItemActionHandler_CustomScenarios_Main(int param_1, ...); - void __stdcall MenuView_Unknown61ReturnToSkrimishMenuUnk_Prepare(); + void __stdcall MenuView_ReturnToSkirmishMenu61_Prepare(); void __cdecl MenuItemActionHandler_LobbyMenu_MapSelectHeader(int param_1, ...); @@ -382,7 +380,7 @@ namespace UI { void __cdecl MenuItemActionHandler_MapEditorLandscaping_QueueCommandCallback(); - void __cdecl MenuItemActionHandler_General_ToolbarButtonPressed(CommandBuildingType buttonID); + void __cdecl MenuItemActionHandler_General_ToolbarButtonPressed(CommandBuildingTypeInt buttonID); void __cdecl MenuItemActionHandler_InGameMenu_MainButtons(int param_1, ...); @@ -412,33 +410,31 @@ namespace UI { void __cdecl MenuItemRenderFunction_TextEditor_Scrollbar( int param_1, int thumbYPos, int param_3, int thumbHeight, BOOLEnum isDragged); - void __cdecl MenuItemRenderFunction_DisplayScenarioHelpText_AnotherButtonUnk(int param_1, ...); + void __cdecl MenuItemRenderFunction_DisplayScenarioHelpText_ConditionalButton(int param_1, ...); - void __cdecl MenuItemActionHandler_TextEditor_TextInputRelatedUnk(); + void __cdecl processTextEditorInput(); void __cdecl MenuItemActionHandler_TextEditor_Buttons(int param_1, ...); void __cdecl MenuItemRenderFunction_General_RenderCurrentButtonWithPossibleAlphaTexOnScreenMenuSurface(); - void __cdecl RenderButtonImageWithBlending(); - void __cdecl MenuItemRenderFunction_ChooseRandomNumberOfEnemies_Main(int param_1, ...); void __cdecl MenuItemRenderFunction_InGameMenu_MainButtons(int param_1, ...); void __cdecl MenuItemRenderFunction_MapEditorLandscaping_GeneralButtons(int param_1, ...); - void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Min1(); + void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_ResetSelectionA(); void __cdecl MenuItemRenderFunction_BuildingAndStatusMenu_BarracksWeaponAvailability(int param_1, ...); - void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_UnknownMin1Unk(); + void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_ResetSelectionB(); BOOLEnum __cdecl HasEnoughGold(int param_1); - void __cdecl MenuItemRenderFunction_BuildingAndStatusMenu_WorkshopWeaponSelection(ResourceType _weapon, ...); + void __cdecl MenuItemRenderFunction_BuildingAndStatusMenu_WorkshopWeaponSelection(ResourceTypeInt _weapon, ...); - void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_WorkshopWeaponSelection(ResourceType weapon, ...); + void __cdecl MenuItemActionHandler_BuildingAndStatusMenu_WorkshopWeaponSelection(ResourceTypeInt weapon, ...); void __cdecl MenuItemRenderFunction_BuildingAndStatusMenu_DrawbridgeOpenClose(int param_1, ...); @@ -512,13 +508,13 @@ namespace UI { undefined4 __cdecl TicksSinceCounterStart(); - void __stdcall exitToScenarioDescriptionMenu(); + void __stdcall gotoScenarioDescription(); void __cdecl MenuItemRenderFunction_NetworkSessions_Buttons(int param_1, ...); void __cdecl MenuModalRenderFunction_ChooseNetworkServiceProvider(int x, int y, int width, int height); - void __cdecl MenuItemActionHandler_ChooseNetworkServiceProvider_ProviderScrollbarUnk( + void __cdecl MenuItemActionHandler_ChooseNetworkServiceProvider_ProviderScrollbar( int param_1, int param_2, int* minValue, int* maxValue, int* currentValue); void __cdecl MenuItemRenderFunction_ChooseNetworkServiceProvider_ProviderTableRows(int param_1, ...); @@ -531,7 +527,7 @@ namespace UI { void __cdecl MenuItemRenderFunction_ChooseNetworkServiceProvider_YourIpDisplay(int param_1, ...); - void __cdecl MenuItemActionHandler_ChooseNetworkServiceProvider_ModemScrollbarUnk( + void __cdecl MenuItemActionHandler_ChooseNetworkServiceProvider_ModemScrollbar( int param_1, int param_2, int* minValue, int* maxValue, int* currentValue); void __cdecl MenuItemActionHandler_ChooseNetworkServiceProvider_ModemTableRows(int param_1, ...); @@ -568,10 +564,10 @@ namespace UI { void __cdecl MenuItemActionHandler_Chat_TauntButtons(int param_1, ...); void __cdecl MenuItemActionHandler_ChooseNetworkServiceProvider_Buttons( - ChooseNetworkServiceProviderButtonActions param_1, ...); + ChooseNetworkServiceProviderButtonActionsInt param_1, ...); void __cdecl MenuItemActionHandler_FindingNetworkSessions_Buttons( - FindingNetworkSessions_ButtonParameters param_1, ...); + FindingNetworkSessions_ButtonParametersInt param_1, ...); void __cdecl MenuItemActionHandler_WaitingForHost_ConnectToLobby(); @@ -659,9 +655,9 @@ namespace UI { void __cdecl MenuItemActionHandler_VideoOptions_Main(int param_1, ...); - void __cdecl MenuItemActionHandler_SoundOptions_Buttons(SoundMenuClickType param_1, ...); + void __cdecl MenuItemActionHandler_SoundOptions_Buttons(SoundMenuClickTypeInt param_1, ...); - void __cdecl MenuItemActionHandler_NetworkOptions_LeaveButtonUnk(int param_1, ...); + void __cdecl MenuItemActionHandler_NetworkOptions_LeaveButton(int param_1, ...); void __cdecl MenuModalRenderFunction_LoadMap(int x, int y, int width, int height); @@ -671,11 +667,11 @@ namespace UI { void __cdecl MenuItemActionHandler_SaveMap_ReturnKeySave(int param_1, ...); - void __cdecl MenuItemActionHandler_General_LaunchOrQuitMultiplayerGameUnk(int param_1, ...); + void __cdecl MenuItemActionHandler_General_LaunchOrQuitMultiplayerGame(int param_1, ...); void __cdecl MenuItemActionHandler_ProgressBarBox_LoadAndSaveGameButtonLogic(int param_1, ...); - void __cdecl ShowProgressBarSaveLoadDialog(int param_1); + void __cdecl openLoadSaveProgressDialog(int param_1); void __cdecl MenuItemActionHandler_OnlineVoteQuitAndQuitGame_Main(int param_1, ...); @@ -697,7 +693,7 @@ namespace UI { void __cdecl MenuModalRenderFunction_DebugDataUnitData(int x, int y, int width, int height); - void __cdecl MenuModalRenderFunction_DebugDataZoneDataUnk(int x, int y, int width, int height); + void __cdecl MenuModalRenderFunction_DebugDataZoneData(int x, int y, int width, int height); void __cdecl MenuModalRenderFunction_DebugDataMousePointing(int x, int y, int width, int height); @@ -719,7 +715,7 @@ namespace UI { void __cdecl MenuModalRenderFunction_StartGoods(int x, int y, int width, int height); - void __cdecl MenuModalRenderFunction_UnusedSiegeAttackingForceUnk(int x, int y, int width, int height); + void __cdecl MenuModalRenderFunction_UnusedSiegeAttackingForce(int x, int y, int width, int height); void __cdecl MenuModalRenderFunction_CreateOrTriggerInvasion(int x, int y, int width, int height); @@ -761,7 +757,7 @@ namespace UI { void __cdecl MenuModalRenderFunction_ReceiveMapFrom(int x, int y, int width, int height); - void __stdcall buildEnemyPlayerList(); + void __stdcall collectEnemyPlayerIDs(); void __cdecl MenuModalRenderFunction_Allies(int x, int y, int width, int height); @@ -791,11 +787,11 @@ namespace UI { void __cdecl MenuItemRenderFunction_Roundtable_Main(int param_1, ...); - void __cdecl MenuModalRenderFunction_DebugDataAivStateUnk(int x, int y, int width, int height); + void __cdecl MenuModalRenderFunction_DebugDataAivState(int x, int y, int width, int height); void __cdecl MenuItemActionHandler_OverlaySlider_Deselect(int param_1, ...); - void __cdecl MenuItemActionHandler_UnusedWinCondition_DeselectUnk(int param_1, ...); + void __cdecl MenuItemActionHandler_UnusedWinCondition_CloseModalOnClickOutside(int param_1, ...); void __cdecl MenuItemActionHandler_UnusedWinCondition_Options(int param_1, ...); @@ -815,21 +811,21 @@ namespace UI { void __cdecl MenuModalRenderFunction_Roundtable(int x, int y, int width, int height); - void __cdecl MenuItemRenderFunction_InGameMenu_MapEventIconUnk(int param_1, ...); + void __cdecl MenuItemRenderFunction_InGameMenu_MapEventIcon(int param_1, ...); - void __cdecl MenuItemActionHandler_InGameMenu_MapEventIconUnk(int param_1, ...); + void __cdecl MenuItemActionHandler_InGameMenu_MapEventIconJumpTo(int param_1, ...); void __cdecl MenuItemRenderFunction_InGameMenu_KeepEnclosedSymbol(int param_1, ...); void __cdecl MenuItemRenderFunction_InGameMenu_BikMessagePlayerShield(int param_1, ...); - void __cdecl PlayMissionAestheticSFX(uint param_1, int param_2); + void __cdecl playMissionAestheticSFX(uint param_1, int param_2); void __stdcall MenuView_General_DoInitial_OnlySetMenuXY(); void __stdcall MenuView_EditScenario_DoEveryFrame(); - void __stdcall RestoreScenarioGold(); + void __stdcall restoreScenarioGold(); void __cdecl MenuItemActionHandler_EditScenario_BaseMenuButtons(int param_1, ...); @@ -856,7 +852,7 @@ namespace UI { void __cdecl MenuItemRenderFunction_NewInvasion_RepeatSlider( int param_1, int thumbXPos, int sliderValue, int thumbWidth, BOOLEnum isDragged); - void __stdcall CaptureCurrentTimeToUnknownTime01(); + void __stdcall captureCurrentTimeMs(); void __cdecl MenuItemActionHandler_NewEventCondition_Main(int param_1, ...); @@ -868,7 +864,7 @@ namespace UI { void __cdecl MenuItemRenderFunction_General_EventSlider( int param_1, int thumbYPos, int param_3, int thumbHeight, BOOL isDragged); - void __cdecl MenuItemActionHandler_UnusedCreateMessageEvent_Unknown(int index, ...); + void __cdecl MenuItemActionHandler_UnusedCreateMessageEvent_SetActionData(int index, ...); void __cdecl MenuItemActionHandler_SiegeAttackingForceAndStartGoods_Main(int param_1, ...); @@ -915,15 +911,15 @@ namespace UI { void __cdecl MenuItemRenderFunction_TriggerInvasion_Main(int param_1, ...); - void __cdecl initTutorialStepTransition(int param_1); + void __cdecl startTutorialTimer(int param_1); - void __cdecl recordTutorialPlayerAction(int param_1); + void __cdecl trackTutorialEvent(int param_1); - void __stdcall resetTutorialActionTrackers(); + void __stdcall resetTutorialTrackingState(); - void __cdecl renderAnimatedTutorialFloatOverlay(int param_1, int param_2); + void __cdecl renderTutorialPointer(int param_1, int param_2); - void __cdecl renderTutorialFloatForUIElement(int param_1); + void __cdecl showTutorialHintPointer(int param_1); void __cdecl MenuModalRenderFunction_TutorialBox(int x, int y, int width, int height); @@ -931,7 +927,7 @@ namespace UI { void __cdecl MenuItemRenderFunction_TutorialBox_Main(int param_1, ...); - void __stdcall updateTutorialStepAndProgress(); + void __stdcall updateTutorialStateMachine(); void __stdcall MenuView_EditScenario_Prepare(); @@ -939,13 +935,13 @@ namespace UI { void __cdecl MenuItemRenderFunction_EditScenario_TextBoxLike(int param_1, ...); - void __cdecl MenuItemActionHandler_UnusedChooseMessageBox_Unknown(int param_1, ...); + void __cdecl MenuItemActionHandler_UnusedChooseMessageBox_SelectItem(int param_1, ...); void __cdecl MenuItemActionHandler_NewInvasion_Buttons(int param_1, ...); void __cdecl MenuItemRenderFunction_NewInvasion_Buttons(int param_1, ...); - void __cdecl MenuItemActionHandler_UnusedCreateMessageEvent_SetTextUnk(int param_1, ...); + void __cdecl MenuItemActionHandler_UnusedCreateMessageEvent_ConfirmOrEditDate(int param_1, ...); void __cdecl MenuItemRenderFunction_General_EventButtonAndData(int param_1, ...); @@ -967,17 +963,17 @@ namespace UI { void __cdecl MenuItemRenderFunction_MissionEndscreen_Main(int param_1, ...); - void __stdcall MenuView_CampaignUnk_DoEveryFrame(); + void __stdcall MenuView_Campaign27_DoEveryFrame(); - void __cdecl MenuItemActionHandler_Unknown27CampaignUnk_Main(int param_1, ...); + void __cdecl MenuItemActionHandler_Campaign27_Continue(int param_1, ...); - void __stdcall ParseCampaignMapHotspotBitmap(); + void __stdcall loadCampaignMapHotspots(); void __cdecl MenuItemRenderFunction_ScenarioDescription_Main(int param_1, ...); void __cdecl MenuItemActionHandler_ScenarioDescription_Main(int param_1, ...); - void __cdecl ReadMapHeaderFromFile(char* param_1); + void __cdecl loadMapFileHeader(char* param_1); void __stdcall MenuView_CrusadeMissionIntro_Prepare(); @@ -997,7 +993,7 @@ namespace UI { void __cdecl MenuItemActionHandler_CrusadeEndscreen_Main(int param_1, ...); - void __cdecl SetActiveCreditsSequenceIndex(undefined4 param_1); + void __cdecl setCampaignMapField(undefined4 param_1); void __stdcall MenuView_RankingGames_Prepare(); @@ -1021,57 +1017,56 @@ namespace UI { void __cdecl MenuItemActionHandler_TacticalPowerBar_Main(int param_1, ...); - void __stdcall StopCreditsPlaybackAndSounds(); + void __stdcall stopCreditsPlayback(); - void __stdcall EndCreditsSegmentAndAdvanceToNext(); + void __stdcall advanceCreditsSequence(); void __stdcall resetCredits(); - void __cdecl AppendCreditsSoundEntry(undefined4 param_1, undefined4 param_2); + void __cdecl addCreditsSoundEntry(undefined4 param_1, undefined4 param_2); - void __cdecl AppendCreditsCommand(undefined4 param_1); + void __cdecl appendCreditsCommand(undefined4 param_1); - void __stdcall AppendCreditsListTerminator(); + void __stdcall appendCreditsCmd0x20(); - void __stdcall AppendCreditsPauseCommand(); + void __stdcall appendCreditsCmd0x1c(); - void __stdcall AppendCreditsSegmentEndCommand(); + void __stdcall appendCreditsCmd0x1f(); - void __stdcall AppendCreditsClearImageCommand(); + void __stdcall appendCreditsCmd0x28(); - void __cdecl AppendCreditsImageTransitionCommand( + void __cdecl addCreditsGfxElement( int param_1, int param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5); - void __cdecl AppendCreditsImageEndCommand(int param_1, int param_2); + void __cdecl addCreditsSoundElement(int param_1, int param_2); - void __cdecl AppendCreditsShowImageCommand(int param_1, int param_2, undefined4 param_3, undefined4 param_4, + void __cdecl addCreditsPositionedGfxElement(int param_1, int param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6, undefined4 param_7, undefined4 param_8); - void __cdecl AppendCreditsBinkVideoCommand(undefined4 param_1, char* param_2, undefined4 param_3, + void __cdecl addCreditsBinkElementWithName(undefined4 param_1, char* param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6); - void __cdecl AppendCreditsFixedImageCommand(int param_1, undefined4 param_2, undefined4 param_3); + void __cdecl addCreditsImageElement(int param_1, undefined4 param_2, undefined4 param_3); - void __cdecl AppendCreditsBinkVideoWithAudioCommand( - char* param_1, undefined4 param_2, int param_3, undefined4 param_4); + void __cdecl addCreditsBinkElementWithVolume(char* param_1, undefined4 param_2, int param_3, undefined4 param_4); - void __cdecl AppendCreditsSoundStreamCommand(undefined4 param_1, undefined4 param_2); + void __cdecl appendCreditsCommandWithSound(undefined4 param_1, undefined4 param_2); - void __cdecl AppendCreditsTextCommand(int param_1, int param_2, undefined4 param_3, undefined4 param_4, + void __cdecl addCreditsTextStringElement(int param_1, int param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6, undefined4 param_7, undefined4 param_8); - void __cdecl AppendCreditsTextEndCommand(int param_1, int param_2); + void __cdecl addCreditsTextStringSimple(int param_1, int param_2); - void __stdcall RenderTextPageProgressBar(); + void __stdcall renderScrollingTextWithFade(); - void __cdecl DisplayFullScreenTextPage(int param_1); + void __cdecl renderScrollingTextPage(int param_1); - void __cdecl BuildIntroLogoSequence(undefined4 param_1, undefined4 param_2); + void __cdecl buildIntroLogoSequence(undefined4 param_1, undefined4 param_2); void __cdecl TrimStoredMenuString(int storedMenuStringIndex, undefined4 param_2, undefined4 param_3, int allowedWidth, undefined4 param_5, int fontSize); - void __cdecl RenderScrollingCreditsTextFrame(float param_1); + void __cdecl renderAnimatedScrollingTextLine(float param_1); void __stdcall MenuView_HistoricMissionPicture_Prepare(); @@ -1091,19 +1086,19 @@ namespace UI { void __stdcall MenuView_HistoricCampaignOutro_DoEveryFrame(); - undefined4 __stdcall FindCampaignMapHotspotAtMouse(); + undefined4 __stdcall getCreditsElementAtMouse(); - void __stdcall BuildExtremeDemoIntroScript(); + void __stdcall buildExtremeDemoSequence(); void __stdcall MenuView_MissionFinishedTransition_DoEveryFrame(); void __stdcall MenuView_GameLost_DoEveryFrame(); - void __stdcall MenuView_Unknown26_CampaignRelatedUnk_Prepare(); + void __stdcall MenuView_CampaignCredits26_Prepare(); - void __stdcall MenuView_CampaignUnk_Prepare(); + void __stdcall MenuView_Campaign27_Prepare(); - void __stdcall MenuView_CampaignUnk_DoInitial(); + void __stdcall MenuView_Campaign27_DoInitial(); void __stdcall MenuView_ScenarioDescription_Prepare(); @@ -1129,15 +1124,15 @@ namespace UI { void __stdcall MenuView_MissionFinishedTransition_Prepare(); - void __stdcall MenuView_Unknown26_CampaignRelatedUnk_DoInitial(); + void __stdcall MenuView_CampaignCredits26_DoInitial(); - void __stdcall MenuView_Unknown26_CampaignRelatedUnk_DoEveryFrame(); + void __stdcall MenuView_CampaignCredits26_DoEveryFrame(); void __stdcall MenuView_CrusadeEndscreen_DoEveryFrame(); void __cdecl MenuItemActionHandler_General_DisplayConditionalText(int param_1, ...); - void __cdecl MenuItemActionHandler_General_RemoveConditionalTextOrReleaseHoverUnk(int param_1, ...); + void __cdecl MenuItemActionHandler_General_ExpireBottomLeftText(int param_1, ...); } // namespace UI } // namespace OpenSHC diff --git a/src/OpenSHC/UI/DisplayElement.hpp b/src/OpenSHC/UI/DisplayElement.hpp index e9027514..5ed042ce 100644 --- a/src/OpenSHC/UI/DisplayElement.hpp +++ b/src/OpenSHC/UI/DisplayElement.hpp @@ -9,18 +9,16 @@ #pragma once #include "OpenSHC/UI/DisplayElementRenderFunc.hpp" -#include "OpenSHC/DE/SHCDE/eOnScreenText.hpp" +#include "OpenSHC/DE/SHCDE/eOnScreenTextInt.hpp" #include "OpenSHC/UI/Enums/DisplayElementIDInt.hpp" -#include "OpenSHC/UI/Enums/DisplayElementPositionModifier.hpp" #include "OpenSHC/UI/Enums/DisplayElementPositionModifierInt.hpp" namespace OpenSHC { namespace UI { - using OpenSHC::DE::SHCDE::eOnScreenText; + using OpenSHC::DE::SHCDE::eOnScreenTextInt; using OpenSHC::UI::DisplayElementRenderFunc; using OpenSHC::UI::Enums::DisplayElementIDInt; - using OpenSHC::UI::Enums::DisplayElementPositionModifier; using OpenSHC::UI::Enums::DisplayElementPositionModifierInt; #pragma pack(push, 1) @@ -47,8 +45,8 @@ namespace UI { ~DisplayElement() {}; // Constructor - DisplayElement* Constructor_DisplayElement(eOnScreenText elementID, int xPos, int yPos, dword elementState, - DisplayElementRenderFunc* renderFunction, DisplayElementPositionModifier positionModifier); + DisplayElement* Constructor_DisplayElement(eOnScreenTextInt elementID, int xPos, int yPos, dword elementState, + DisplayElementRenderFunc* renderFunction, DisplayElementPositionModifierInt positionModifier); }; static_assert_cpp98_obj(sizeof(DisplayElement) == 36, DisplayElement); diff --git a/src/OpenSHC/UI/Helpers.func.hpp b/src/OpenSHC/UI/Helpers.func.hpp index a85253ef..b8345b21 100644 --- a/src/OpenSHC/UI/Helpers.func.hpp +++ b/src/OpenSHC/UI/Helpers.func.hpp @@ -18,8 +18,8 @@ namespace UI { SomeSiegeUnitsComputation; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int param_1), false, Address::SHC_3BB0A8C1_0x0042C540, - &OpenSHC::UI::Helpers::SomeSiegeRelatedCopying) - SomeSiegeRelatedCopying; + &OpenSHC::UI::Helpers::loadSiegeScenarioInfo) + loadSiegeScenarioInfo; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int taxesSettingUnk), false, Address::SHC_3BB0A8C1_0x00433560, &OpenSHC::UI::Helpers::SetTaxesSetting_unknown) @@ -34,16 +34,16 @@ namespace UI { SomeUnitAndViewportCheck; MACRO_FUNCTION_RESOLVER(int(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0043E540, - &OpenSHC::UI::Helpers::SomePopularityRelatedComputation) - SomePopularityRelatedComputation; + &OpenSHC::UI::Helpers::getPopularityAdvisorIndex) + getPopularityAdvisorIndex; - MACRO_FUNCTION_RESOLVER(undefined4(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0043E5A0, + MACRO_FUNCTION_RESOLVER(undefined(__cdecl*)(), false, Address::SHC_3BB0A8C1_0x0043E5A0, &OpenSHC::UI::Helpers::SomeFearFactorComputation) SomeFearFactorComputation; MACRO_FUNCTION_RESOLVER(int(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0043E5F0, - &OpenSHC::UI::Helpers::SomeGoldRelatedComputation) - SomeGoldRelatedComputation; + &OpenSHC::UI::Helpers::getGoldAdvisorSpeechIndex) + getGoldAdvisorSpeechIndex; } // namespace Helpers_Func } // namespace UI diff --git a/src/OpenSHC/UI/Helpers.hpp b/src/OpenSHC/UI/Helpers.hpp index edd20c93..5329fed2 100644 --- a/src/OpenSHC/UI/Helpers.hpp +++ b/src/OpenSHC/UI/Helpers.hpp @@ -14,7 +14,7 @@ namespace UI { void __cdecl SomeSiegeUnitsComputation(int param_1); - void __cdecl SomeSiegeRelatedCopying(int param_1); + void __cdecl loadSiegeScenarioInfo(int param_1); void __cdecl SetTaxesSetting_unknown(int taxesSettingUnk); @@ -22,11 +22,11 @@ namespace UI { undefined4 __cdecl SomeUnitAndViewportCheck(int unitID); - int __stdcall SomePopularityRelatedComputation(); + int __stdcall getPopularityAdvisorIndex(); - undefined4 __cdecl SomeFearFactorComputation(); + undefined __cdecl SomeFearFactorComputation(); - int __stdcall SomeGoldRelatedComputation(); + int __stdcall getGoldAdvisorSpeechIndex(); } // namespace Helpers } // namespace UI diff --git a/src/OpenSHC/UI/HoveredState.func.hpp b/src/OpenSHC/UI/HoveredState.func.hpp index f0e76ace..85be66d6 100644 --- a/src/OpenSHC/UI/HoveredState.func.hpp +++ b/src/OpenSHC/UI/HoveredState.func.hpp @@ -2,23 +2,23 @@ path: 'OpenSHC/UI/HoveredState.func.hpp' */ -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/UI/HoveredState.hpp" namespace OpenSHC { namespace UI { namespace HoveredState_Func { - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::Commands::CommandBuildingTypeInt; MACRO_FUNCTION_RESOLVER( - void (HoveredState::*)(), false, Address::SHC_3BB0A8C1_0x005010C0, &HoveredState::clearHoveredState) + undefined (HoveredState::*)(), false, Address::SHC_3BB0A8C1_0x005010C0, &HoveredState::clearHoveredState) clearHoveredState; MACRO_FUNCTION_RESOLVER(void (HoveredState::*)(), false, Address::SHC_3BB0A8C1_0x005010E0, &HoveredState::clearInvalidatedHoverStates) clearInvalidatedHoverStates; - MACRO_FUNCTION_RESOLVER(void (HoveredState::*)(int, int, CommandBuildingType, int, int), false, + MACRO_FUNCTION_RESOLVER(void (HoveredState::*)(int, int, CommandBuildingTypeInt, int, int), false, Address::SHC_3BB0A8C1_0x00501110, &HoveredState::createHoverStateElement) createHoverStateElement; diff --git a/src/OpenSHC/UI/HoveredState.hpp b/src/OpenSHC/UI/HoveredState.hpp index 076eb41c..4057a44b 100644 --- a/src/OpenSHC/UI/HoveredState.hpp +++ b/src/OpenSHC/UI/HoveredState.hpp @@ -8,13 +8,13 @@ #pragma once -#include "OpenSHC/Commands/CommandBuildingType.hpp" +#include "OpenSHC/Commands/CommandBuildingTypeInt.hpp" #include "OpenSHC/UI/HoveredStateElement.hpp" namespace OpenSHC { namespace UI { - using OpenSHC::Commands::CommandBuildingType; + using OpenSHC::Commands::CommandBuildingTypeInt; using OpenSHC::UI::HoveredStateElement; #pragma pack(push, 1) @@ -35,11 +35,11 @@ namespace UI { // Constructor HoveredState* Constructor_HoveredState(); - void clearHoveredState(); + undefined clearHoveredState(); void clearInvalidatedHoverStates(); - void createHoverStateElement(int x, int y, CommandBuildingType type, int size, int flag); + void createHoverStateElement(int x, int y, CommandBuildingTypeInt type, int size, int flag); void calculateHoveredTile(); }; diff --git a/src/OpenSHC/UI/Menu.func.hpp b/src/OpenSHC/UI/Menu.func.hpp index f3857fb9..dc4ff416 100644 --- a/src/OpenSHC/UI/Menu.func.hpp +++ b/src/OpenSHC/UI/Menu.func.hpp @@ -2,16 +2,16 @@ path: 'OpenSHC/UI/Menu.func.hpp' */ -#include "OpenSHC/UI/Enums/MenuItemHandleState.hpp" +#include "OpenSHC/UI/Enums/MenuItemHandleStateInt.hpp" #include "OpenSHC/UI/Menu.hpp" namespace OpenSHC { namespace UI { namespace Menu_Func { - using OpenSHC::UI::Enums::MenuItemHandleState; + using OpenSHC::UI::Enums::MenuItemHandleStateInt; MACRO_FUNCTION_RESOLVER( - void (Menu::*)(MenuItemHandleState), false, Address::SHC_3BB0A8C1_0x004F6280, &Menu::handleMenuItems) + void (Menu::*)(MenuItemHandleStateInt), false, Address::SHC_3BB0A8C1_0x004F6280, &Menu::handleMenuItems) handleMenuItems; MACRO_FUNCTION_RESOLVER(void (Menu::*)(), false, Address::SHC_3BB0A8C1_0x004F6470, &Menu::updateMenuButtons) diff --git a/src/OpenSHC/UI/Menu.hpp b/src/OpenSHC/UI/Menu.hpp index 4496cd76..0e43172e 100644 --- a/src/OpenSHC/UI/Menu.hpp +++ b/src/OpenSHC/UI/Menu.hpp @@ -8,7 +8,7 @@ #pragma once -#include "OpenSHC/UI/Enums/MenuItemHandleState.hpp" +#include "OpenSHC/UI/Enums/MenuItemHandleStateInt.hpp" #include "OpenSHC/UI/FwdMenuMenuItem.hpp" #include "OpenSHC/UI/MenuItem.hpp" @@ -16,7 +16,7 @@ namespace OpenSHC { namespace UI { using OpenSHC::UI::MenuItem; - using OpenSHC::UI::Enums::MenuItemHandleState; + using OpenSHC::UI::Enums::MenuItemHandleStateInt; #pragma pack(push, 1) @@ -52,7 +52,7 @@ namespace UI { // Constructor Menu* Constructor_Menu(MenuItem* menuItemArrayAddress); - void handleMenuItems(MenuItemHandleState funcIndex); + void handleMenuItems(MenuItemHandleStateInt funcIndex); void updateMenuButtons(); diff --git a/src/OpenSHC/UI/MenuHandlerState.func.hpp b/src/OpenSHC/UI/MenuHandlerState.func.hpp index eaaa7d1b..e9f13ffe 100644 --- a/src/OpenSHC/UI/MenuHandlerState.func.hpp +++ b/src/OpenSHC/UI/MenuHandlerState.func.hpp @@ -2,7 +2,7 @@ path: 'OpenSHC/UI/MenuHandlerState.func.hpp' */ -#include "OpenSHC/UI/Enums/MenuViewType.hpp" +#include "OpenSHC/UI/Enums/MenuViewTypeInt.hpp" #include "OpenSHC/UI/MenuHandlerState.hpp" #include "OpenSHC/UI/MenuIDMenuElementAddressPair.hpp" #include "OpenSHC/UI/UC.hpp" @@ -12,7 +12,7 @@ namespace UI { using OpenSHC::UI::MenuIDMenuElementAddressPair; using OpenSHC::UI::UC; - using OpenSHC::UI::Enums::MenuViewType; + using OpenSHC::UI::Enums::MenuViewTypeInt; MACRO_FUNCTION_RESOLVER(void (MenuHandlerState::*)(dword, dword), false, Address::SHC_3BB0A8C1_0x004F4C60, &MenuHandlerState::setupBuildMenuState) @@ -30,7 +30,7 @@ namespace UI { Address::SHC_3BB0A8C1_0x004F6A20, &MenuHandlerState::initializeUI) initializeUI; - MACRO_FUNCTION_RESOLVER(void (MenuHandlerState::*)(MenuViewType), false, Address::SHC_3BB0A8C1_0x004F6A80, + MACRO_FUNCTION_RESOLVER(void (MenuHandlerState::*)(MenuViewTypeInt), false, Address::SHC_3BB0A8C1_0x004F6A80, &MenuHandlerState::setupMenuForRendering) setupMenuForRendering; diff --git a/src/OpenSHC/UI/MenuHandlerState.hpp b/src/OpenSHC/UI/MenuHandlerState.hpp index 4483b452..ecf3c2d2 100644 --- a/src/OpenSHC/UI/MenuHandlerState.hpp +++ b/src/OpenSHC/UI/MenuHandlerState.hpp @@ -8,7 +8,7 @@ #pragma once -#include "OpenSHC/UI/Enums/MenuViewType.hpp" +#include "OpenSHC/UI/Enums/MenuViewTypeInt.hpp" #include "OpenSHC/UI/Menu.hpp" #include "OpenSHC/UI/MenuIDMenuElementAddressPair.hpp" #include "OpenSHC/UI/UC.hpp" @@ -22,7 +22,7 @@ namespace UI { using OpenSHC::UI::MenuIDMenuElementAddressPair; using OpenSHC::UI::UC; using OpenSHC::UI::UCPointerStruct; - using OpenSHC::UI::Enums::MenuViewType; + using OpenSHC::UI::Enums::MenuViewTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -64,7 +64,7 @@ namespace UI { void initializeUI( MenuIDMenuElementAddressPair* menuIDMenuElementAddressPair, UC* ucPtr, char* ptrStrongholdUCString); - void setupMenuForRendering(MenuViewType menuID); + void setupMenuForRendering(MenuViewTypeInt menuID); }; static_assert_cpp98_obj(sizeof(MenuHandlerState) == 64, MenuHandlerState); diff --git a/src/OpenSHC/UI/MenuItem.func.hpp b/src/OpenSHC/UI/MenuItem.func.hpp index f44a9a84..837b3cf2 100644 --- a/src/OpenSHC/UI/MenuItem.func.hpp +++ b/src/OpenSHC/UI/MenuItem.func.hpp @@ -19,8 +19,8 @@ namespace UI { prepareAndRenderMenuItems; MACRO_FUNCTION_RESOLVER( - void (MenuItem::*)(), false, Address::SHC_3BB0A8C1_0x004F4C30, &MenuItem::resetMenuItemStateUnk) - resetMenuItemStateUnk; + void (MenuItem::*)(), false, Address::SHC_3BB0A8C1_0x004F4C30, &MenuItem::resetMenuItemInteractionState) + resetMenuItemInteractionState; } // namespace MenuItem_Func } // namespace UI diff --git a/src/OpenSHC/UI/MenuItem.hpp b/src/OpenSHC/UI/MenuItem.hpp index 0c8bec87..ebddbc8c 100644 --- a/src/OpenSHC/UI/MenuItem.hpp +++ b/src/OpenSHC/UI/MenuItem.hpp @@ -75,7 +75,7 @@ namespace UI { void prepareAndRenderMenuItems(); - void resetMenuItemStateUnk(); + void resetMenuItemInteractionState(); }; static_assert_cpp98_obj(sizeof(MenuItem) == 80, MenuItem); diff --git a/src/OpenSHC/UI/MenuModal.hpp b/src/OpenSHC/UI/MenuModal.hpp index 51eec916..77714b90 100644 --- a/src/OpenSHC/UI/MenuModal.hpp +++ b/src/OpenSHC/UI/MenuModal.hpp @@ -8,7 +8,6 @@ #pragma once -#include "OpenSHC/UI/Enums/MenuModalType.hpp" #include "OpenSHC/UI/Enums/MenuModalTypeInt.hpp" #include "OpenSHC/UI/Menu.hpp" #include "OpenSHC/UI/MenuModalRenderFunction.hpp" @@ -18,7 +17,6 @@ namespace UI { using OpenSHC::UI::Menu; using OpenSHC::UI::MenuModalRenderFunction; - using OpenSHC::UI::Enums::MenuModalType; using OpenSHC::UI::Enums::MenuModalTypeInt; #pragma pack(push, 1) @@ -46,7 +44,7 @@ namespace UI { ~MenuModal() {}; // Constructor - MenuModal* Constructor_MenuModal(MenuModalType menuModalId, int xPos, int yPos, int width, int height, + MenuModal* Constructor_MenuModal(MenuModalTypeInt menuModalId, int xPos, int yPos, int width, int height, int borderStyle, int backgroundColourIndex, MenuModalRenderFunction* renderFunctionPtr, Menu* menuPtr); }; diff --git a/src/OpenSHC/UI/MenuModalComposition.func.hpp b/src/OpenSHC/UI/MenuModalComposition.func.hpp index 58413c52..c326dc22 100644 --- a/src/OpenSHC/UI/MenuModalComposition.func.hpp +++ b/src/OpenSHC/UI/MenuModalComposition.func.hpp @@ -2,7 +2,7 @@ path: 'OpenSHC/UI/MenuModalComposition.func.hpp' */ -#include "OpenSHC/UI/Enums/MenuModalType.hpp" +#include "OpenSHC/UI/Enums/MenuModalTypeInt.hpp" #include "OpenSHC/UI/MenuModal.hpp" #include "OpenSHC/UI/MenuModalComposition.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -11,28 +11,28 @@ namespace UI { namespace MenuModalComposition_Func { using OpenSHC::UI::MenuModal; - using OpenSHC::UI::Enums::MenuModalType; + using OpenSHC::UI::Enums::MenuModalTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(), false, Address::SHC_3BB0A8C1_0x004A9E80, &MenuModalComposition::loadAllMenuElementsOfMenuModals) loadAllMenuElementsOfMenuModals; - MACRO_FUNCTION_RESOLVER(MenuModal* (MenuModalComposition::*)(MenuModalType), false, + MACRO_FUNCTION_RESOLVER(MenuModal* (MenuModalComposition::*)(MenuModalTypeInt), false, Address::SHC_3BB0A8C1_0x004A9EB0, &MenuModalComposition::findModalMenu) findModalMenu; - MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(MenuModalType, BOOLEnum), false, + MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(MenuModalTypeInt, BOOLEnum), false, Address::SHC_3BB0A8C1_0x004A9ED0, &MenuModalComposition::activateModalDialog) activateModalDialog; - MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(MenuModalType, int, int), false, + MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(MenuModalTypeInt, int, int), false, Address::SHC_3BB0A8C1_0x004AA0A0, &MenuModalComposition::setExtraActiveModalDialog) setExtraActiveModalDialog; MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(), false, Address::SHC_3BB0A8C1_0x004AA1F0, - &MenuModalComposition::handleActiveModalDialogUnk) - handleActiveModalDialogUnk; + &MenuModalComposition::updateActiveModalDialogDrag) + updateActiveModalDialogDrag; MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(int*, int*, int*, int*), false, Address::SHC_3BB0A8C1_0x004AA3E0, &MenuModalComposition::fillWithMenuModalDimensions) @@ -47,15 +47,15 @@ namespace UI { setSliderParameters2; MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(int, int, dword, dword, undefined*, undefined*), false, - Address::SHC_3BB0A8C1_0x004AA930, &MenuModalComposition::setModalSliderParameters) - setModalSliderParameters; + Address::SHC_3BB0A8C1_0x004AA930, &MenuModalComposition::setupModalSlider) + setupModalSlider; MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(), false, Address::SHC_3BB0A8C1_0x004B0B30, &MenuModalComposition::renderMenuModal) renderMenuModal; - MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(MenuModalType), false, Address::SHC_3BB0A8C1_0x004B2820, - &MenuModalComposition::activateModalDialog2) + MACRO_FUNCTION_RESOLVER(void (MenuModalComposition::*)(MenuModalTypeInt), false, + Address::SHC_3BB0A8C1_0x004B2820, &MenuModalComposition::activateModalDialog2) activateModalDialog2; } // namespace MenuModalComposition_Func diff --git a/src/OpenSHC/UI/MenuModalComposition.hpp b/src/OpenSHC/UI/MenuModalComposition.hpp index 24712566..f6a6d996 100644 --- a/src/OpenSHC/UI/MenuModalComposition.hpp +++ b/src/OpenSHC/UI/MenuModalComposition.hpp @@ -8,7 +8,6 @@ #pragma once -#include "OpenSHC/UI/Enums/MenuModalType.hpp" #include "OpenSHC/UI/Enums/MenuModalTypeInt.hpp" #include "OpenSHC/UI/MenuModal.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -17,7 +16,6 @@ namespace OpenSHC { namespace UI { using OpenSHC::UI::MenuModal; - using OpenSHC::UI::Enums::MenuModalType; using OpenSHC::UI::Enums::MenuModalTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; @@ -61,13 +59,13 @@ namespace UI { void loadAllMenuElementsOfMenuModals(); - MenuModal* findModalMenu(MenuModalType menuModalID); + MenuModal* findModalMenu(MenuModalTypeInt menuModalID); - void activateModalDialog(MenuModalType menuModalID, BOOLEnum retainOther); + void activateModalDialog(MenuModalTypeInt menuModalID, BOOLEnum retainOther); - void setExtraActiveModalDialog(MenuModalType menuModalID, int dialogX, int dialogY); + void setExtraActiveModalDialog(MenuModalTypeInt menuModalID, int dialogX, int dialogY); - void handleActiveModalDialogUnk(); + void updateActiveModalDialogDrag(); void fillWithMenuModalDimensions(int* xPtr, int* yPtr, int* widthPtr, int* heigthPtr); @@ -76,12 +74,12 @@ namespace UI { void setSliderParameters2( dword minimum, dword maximum, dword value, dword destination, undefined* callbackFunction); - void setModalSliderParameters( + void setupModalSlider( int param_1, int param_2, dword param_3, dword param_4, undefined* param_5, undefined* param_6); void renderMenuModal(); - void activateModalDialog2(MenuModalType modalDialogID); + void activateModalDialog2(MenuModalTypeInt modalDialogID); }; static_assert_cpp98_obj(sizeof(MenuModalComposition) == 124, MenuModalComposition); diff --git a/src/OpenSHC/UI/MenuTextInputState.func.hpp b/src/OpenSHC/UI/MenuTextInputState.func.hpp index bd569a1b..8a28f0b2 100644 --- a/src/OpenSHC/UI/MenuTextInputState.func.hpp +++ b/src/OpenSHC/UI/MenuTextInputState.func.hpp @@ -2,15 +2,15 @@ path: 'OpenSHC/UI/MenuTextInputState.func.hpp' */ -#include "OpenSHC/UI/Enums/MenuModalType.hpp" +#include "OpenSHC/UI/Enums/MenuModalTypeInt.hpp" #include "OpenSHC/UI/MenuTextInputState.hpp" namespace OpenSHC { namespace UI { namespace MenuTextInputState_Func { - using OpenSHC::UI::Enums::MenuModalType; + using OpenSHC::UI::Enums::MenuModalTypeInt; - MACRO_FUNCTION_RESOLVER(void (MenuTextInputState::*)(MenuModalType), false, Address::SHC_3BB0A8C1_0x004916C0, + MACRO_FUNCTION_RESOLVER(void (MenuTextInputState::*)(MenuModalTypeInt), false, Address::SHC_3BB0A8C1_0x004916C0, &MenuTextInputState::activateModalDialogAndClearText) activateModalDialogAndClearText; @@ -22,9 +22,9 @@ namespace UI { &MenuTextInputState::clearAnyOtherModalDialogs) clearAnyOtherModalDialogs; - MACRO_FUNCTION_RESOLVER( - void (MenuTextInputState::*)(), false, Address::SHC_3BB0A8C1_0x004917C0, &MenuTextInputState::meth_0x4917c0) - meth_0x4917c0; + MACRO_FUNCTION_RESOLVER(void (MenuTextInputState::*)(), false, Address::SHC_3BB0A8C1_0x004917C0, + &MenuTextInputState::resetMenuTextInputModals) + resetMenuTextInputModals; MACRO_FUNCTION_RESOLVER(void (MenuTextInputState::*)(), false, Address::SHC_3BB0A8C1_0x00493900, &MenuTextInputState::popModalDialog) @@ -34,7 +34,7 @@ namespace UI { &MenuTextInputState::activateLoadOrSaveMapUI) activateLoadOrSaveMapUI; - MACRO_FUNCTION_RESOLVER(void (MenuTextInputState::*)(MenuModalType), false, Address::SHC_3BB0A8C1_0x00493AC0, + MACRO_FUNCTION_RESOLVER(void (MenuTextInputState::*)(MenuModalTypeInt), false, Address::SHC_3BB0A8C1_0x00493AC0, &MenuTextInputState::loadOrSaveMap) loadOrSaveMap; diff --git a/src/OpenSHC/UI/MenuTextInputState.hpp b/src/OpenSHC/UI/MenuTextInputState.hpp index 98bf3c63..af7552bf 100644 --- a/src/OpenSHC/UI/MenuTextInputState.hpp +++ b/src/OpenSHC/UI/MenuTextInputState.hpp @@ -8,13 +8,11 @@ #pragma once -#include "OpenSHC/UI/Enums/MenuModalType.hpp" #include "OpenSHC/UI/Enums/MenuModalTypeInt.hpp" namespace OpenSHC { namespace UI { - using OpenSHC::UI::Enums::MenuModalType; using OpenSHC::UI::Enums::MenuModalTypeInt; #pragma pack(push, 1) @@ -84,19 +82,19 @@ namespace UI { // Constructor MenuTextInputState* Constructor_MenuTextInputState(); - void activateModalDialogAndClearText(MenuModalType dialogID); + void activateModalDialogAndClearText(MenuModalTypeInt dialogID); void clearModalDialog2to6(); void clearAnyOtherModalDialogs(); - void meth_0x4917c0(); + void resetMenuTextInputModals(); void popModalDialog(); void activateLoadOrSaveMapUI(int loadOrSaveMap); - void loadOrSaveMap(MenuModalType param_1); + void loadOrSaveMap(MenuModalTypeInt param_1); void loadOrSaveGame(int action); }; diff --git a/src/OpenSHC/UI/MenuView.func.hpp b/src/OpenSHC/UI/MenuView.func.hpp index 0c7fa2b0..aae4dd47 100644 --- a/src/OpenSHC/UI/MenuView.func.hpp +++ b/src/OpenSHC/UI/MenuView.func.hpp @@ -2,16 +2,16 @@ path: 'OpenSHC/UI/MenuView.func.hpp' */ -#include "OpenSHC/UI/Enums/MenuViewType.hpp" +#include "OpenSHC/UI/Enums/MenuViewTypeInt.hpp" #include "OpenSHC/UI/MenuView.hpp" namespace OpenSHC { namespace UI { namespace MenuView_Func { using OpenSHC::UI::MenuView; - using OpenSHC::UI::Enums::MenuViewType; + using OpenSHC::UI::Enums::MenuViewTypeInt; - MACRO_FUNCTION_RESOLVER(MenuView* (MenuView::*)(MenuViewType), false, Address::SHC_3BB0A8C1_0x004F4050, + MACRO_FUNCTION_RESOLVER(MenuView* (MenuView::*)(MenuViewTypeInt), false, Address::SHC_3BB0A8C1_0x004F4050, &MenuView::Constructor_MenuView_Reduced) Constructor_MenuView_Reduced; diff --git a/src/OpenSHC/UI/MenuView.hpp b/src/OpenSHC/UI/MenuView.hpp index 97e7b4f3..80d2ceef 100644 --- a/src/OpenSHC/UI/MenuView.hpp +++ b/src/OpenSHC/UI/MenuView.hpp @@ -9,13 +9,11 @@ #pragma once #include "OpenSHC/WindowsHelper/cdeclVoidFunc.hpp" -#include "OpenSHC/UI/Enums/MenuViewType.hpp" #include "OpenSHC/UI/Enums/MenuViewTypeInt.hpp" namespace OpenSHC { namespace UI { - using OpenSHC::UI::Enums::MenuViewType; using OpenSHC::UI::Enums::MenuViewTypeInt; using OpenSHC::WindowsHelper::cdeclVoidFunc; @@ -40,10 +38,10 @@ namespace UI { ~MenuView() {}; // Constructor - MenuView* Constructor_MenuView( - MenuViewType menuID, cdeclVoidFunc* prepareMenuView, cdeclVoidFunc* doInitial, cdeclVoidFunc* doEveryFrame); + MenuView* Constructor_MenuView(MenuViewTypeInt menuID, cdeclVoidFunc* prepareMenuView, cdeclVoidFunc* doInitial, + cdeclVoidFunc* doEveryFrame); - MenuView* Constructor_MenuView_Reduced(MenuViewType menuType); + MenuView* Constructor_MenuView_Reduced(MenuViewTypeInt menuType); }; static_assert_cpp98_obj(sizeof(MenuView) == 24, MenuView); diff --git a/src/OpenSHC/UI/MiniMap/MiniMapDefinedData.hpp b/src/OpenSHC/UI/MiniMap/MiniMapDefinedData.hpp index e1ed2430..9e8ef13c 100644 --- a/src/OpenSHC/UI/MiniMap/MiniMapDefinedData.hpp +++ b/src/OpenSHC/UI/MiniMap/MiniMapDefinedData.hpp @@ -20,34 +20,34 @@ namespace UI { // SIZE: 0x000002C4 typedef struct MiniMapDefinedData { - int field0_0x0[8]; // 0x00000000 length: 32 + int tileColorsUnkCfg_0x0[8]; // 0x00000000 length: 32 ushort field1_0x20[2]; // 0x00000020 length: 4 - ushort field2_0x24[16]; // 0x00000024 length: 32 - ushort field3_0x44[8]; // 0x00000044 length: 16 - ushort field4_0x54[8]; // 0x00000054 length: 16 + ushort tileColorsUnkCfg_0x24[16]; // 0x00000024 length: 32 + ushort tileColorsUnkCfg_0x44[8]; // 0x00000044 length: 16 + ushort tileColorsUnkCfg_0x54[8]; // 0x00000054 length: 16 ushort field5_0x64[8]; // 0x00000064 length: 16 - ushort field6_0x74[8]; // 0x00000074 length: 16 - ushort field7_0x84[16]; // 0x00000084 length: 32 + ushort minimapCfg_0x74[8]; // 0x00000074 length: 16 + ushort tileColorsUnkCfg_0x84[16]; // 0x00000084 length: 32 ushort DAT_MinimapColorArray[8]; // 0x000000A4 length: 16 - ushort field9_0xb4[8]; // 0x000000B4 length: 16 + ushort tileColorsUnkCfg_0xb4[8]; // 0x000000B4 length: 16 ushort field10_0xc4[8]; // 0x000000C4 length: 16 - ushort field11_0xd4[8]; // 0x000000D4 length: 16 - ushort field12_0xe4[8]; // 0x000000E4 length: 16 - ushort field13_0xf4[8]; // 0x000000F4 length: 16 - ushort field14_0x104[16]; // 0x00000104 length: 32 - ushort field15_0x124[16]; // 0x00000124 length: 32 - ushort field16_0x144[8]; // 0x00000144 length: 16 - ushort field17_0x154[8]; // 0x00000154 length: 16 - ushort field18_0x164[8]; // 0x00000164 length: 16 - ushort field19_0x174[8]; // 0x00000174 length: 16 - ushort field20_0x184[52]; // 0x00000184 length: 104 + ushort tileColorsUnkCfg_0xd4[8]; // 0x000000D4 length: 16 + ushort tileColorsUnkCfg_0xe4[8]; // 0x000000E4 length: 16 + ushort tileColorsUnkCfg_0xf4[8]; // 0x000000F4 length: 16 + ushort tileColorsUnkCfg_0x104[16]; // 0x00000104 length: 32 + ushort tileColorsUnkCfg_0x124[16]; // 0x00000124 length: 32 + ushort minimapCfg_0x144[8]; // 0x00000144 length: 16 + ushort tileColorsUnkCfg_0x154[8]; // 0x00000154 length: 16 + ushort tileColorsUnkCfg_0x164[8]; // 0x00000164 length: 16 + ushort tileColorsUnkCfg_0x174[8]; // 0x00000174 length: 16 + ushort tileColorsUnkCfg_0x184[52]; // 0x00000184 length: 104 ushort DAT_PlayerColorColors[2][2]; // 0x000001EC length: 8 ushort DAT_AnimalMinimapColour_RGB15; // 0x000001F4 length: 2 ushort DAT_AnimalMinimapColour_RGB16; // 0x000001F6 length: 2 ushort field24_0x1f8; // 0x000001F8 length: 2 ushort field25_0x1fa; // 0x000001FA length: 2 ushort DAT_PlayerColorColors_entry2; // 0x000001FC length: 2 - ushort field27_0x1fe; // 0x000001FE length: 2 + ushort minimapCfg_0x1fe; // 0x000001FE length: 2 ushort field28_0x200; // 0x00000200 length: 2 ushort field29_0x202; // 0x00000202 length: 2 ushort field30_0x204; // 0x00000204 length: 2 @@ -63,7 +63,7 @@ namespace UI { ushort field40_0x218; // 0x00000218 length: 2 ushort field41_0x21a; // 0x0000021A length: 2 ushort field42_0x21c; // 0x0000021C length: 2 - ushort field43_0x21e; // 0x0000021E length: 2 + ushort minimapCfg_0x21e; // 0x0000021E length: 2 ushort field44_0x220; // 0x00000220 length: 2 ushort field45_0x222; // 0x00000222 length: 2 ushort field46_0x224; // 0x00000224 length: 2 @@ -110,9 +110,9 @@ namespace UI { ushort field87_0x276; // 0x00000276 length: 2 ushort field88_0x278; // 0x00000278 length: 2 ushort field89_0x27a; // 0x0000027A length: 2 - MapColorRelatedStructure1 field90_0x27c[8]; // 0x0000027C length: 64 - int field91_0x2bc; // 0x000002BC length: 4 - int field92_0x2c0; // 0x000002C0 length: 4 + MapColorRelatedStructure1 minimapCfg_0x27c[8]; // 0x0000027C length: 64 + int inGameMenu_KeepEnclosedSymCfg_0x2bc; // 0x000002BC length: 4 + int minimapCfg_0x2c0; // 0x000002C0 length: 4 } MiniMapDefinedData; #pragma pack(pop) diff --git a/src/OpenSHC/UI/MinimapViewState.func.hpp b/src/OpenSHC/UI/MinimapViewState.func.hpp index 80c7b096..1f543eed 100644 --- a/src/OpenSHC/UI/MinimapViewState.func.hpp +++ b/src/OpenSHC/UI/MinimapViewState.func.hpp @@ -8,40 +8,40 @@ namespace UI { namespace MinimapViewState_Func { MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(), false, Address::SHC_3BB0A8C1_0x004B5110, - &MinimapViewState::scrollViewportToMinimapClick) - scrollViewportToMinimapClick; + &MinimapViewState::moveViewportToMinimapClick) + moveViewportToMinimapClick; MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(int*, int*), false, Address::SHC_3BB0A8C1_0x004B51A0, - &MinimapViewState::convertMinimapClickToTileXY) - convertMinimapClickToTileXY; + &MinimapViewState::convertMinimapClickToTile) + convertMinimapClickToTile; MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004B5280, &MinimapViewState::renderMinimapPreview) renderMinimapPreview; MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(), false, Address::SHC_3BB0A8C1_0x004B5300, - &MinimapViewState::triggerMinimapRedraw) - triggerMinimapRedraw; + &MinimapViewState::toggleMinimapState) + toggleMinimapState; MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(uint, int, int, uint, int), false, - Address::SHC_3BB0A8C1_0x004B5330, &MinimapViewState::renderMinimapTileStripWithLuminescence) - renderMinimapTileStripWithLuminescence; + Address::SHC_3BB0A8C1_0x004B5330, &MinimapViewState::renderMinimap) + renderMinimap; MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(uint, int, int, int, uint), false, Address::SHC_3BB0A8C1_0x004B58D0, &MinimapViewState::renderMinimapTileColors) renderMinimapTileColors; MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(uint, int, int), false, Address::SHC_3BB0A8C1_0x004B5F70, - &MinimapViewState::locatePlayerKeepPositionsOnMinimap) - locatePlayerKeepPositionsOnMinimap; + &MinimapViewState::renderMinimapContent) + renderMinimapContent; MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(), false, Address::SHC_3BB0A8C1_0x004B61F0, &MinimapViewState::generateMinimapImage) generateMinimapImage; MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(), false, Address::SHC_3BB0A8C1_0x004B6320, - &MinimapViewState::convertLoadedMinimapColors) - convertLoadedMinimapColors; + &MinimapViewState::expandMapPreviewMinimapToRGB) + expandMapPreviewMinimapToRGB; MACRO_FUNCTION_RESOLVER(void (MinimapViewState::*)(int, int), false, Address::SHC_3BB0A8C1_0x004B6430, &MinimapViewState::setSpawnMoment) diff --git a/src/OpenSHC/UI/MinimapViewState.hpp b/src/OpenSHC/UI/MinimapViewState.hpp index b30c7a95..2cedfb44 100644 --- a/src/OpenSHC/UI/MinimapViewState.hpp +++ b/src/OpenSHC/UI/MinimapViewState.hpp @@ -59,23 +59,23 @@ namespace UI { // Constructor MinimapViewState* Constructor_MinimapViewState(); - void scrollViewportToMinimapClick(); + void moveViewportToMinimapClick(); - void convertMinimapClickToTileXY(int* param_1, int* param_2); + void convertMinimapClickToTile(int* param_1, int* param_2); void renderMinimapPreview(int screenX, int screenY); - void triggerMinimapRedraw(); + void toggleMinimapState(); - void renderMinimapTileStripWithLuminescence(uint param_1, int param_2, int param_3, uint param_4, int param_5); + void renderMinimap(uint param_1, int param_2, int param_3, uint param_4, int param_5); void renderMinimapTileColors(uint param_1, int param_2, int param_3, int param_4, uint param_5); - void locatePlayerKeepPositionsOnMinimap(uint param_1, int param_2, int param_3); + void renderMinimapContent(uint param_1, int param_2, int param_3); void generateMinimapImage(); - void convertLoadedMinimapColors(); + void expandMapPreviewMinimapToRGB(); void setSpawnMoment(int x, int y); diff --git a/src/OpenSHC/UI/Rendering.func.hpp b/src/OpenSHC/UI/Rendering.func.hpp index e3b23c71..8573500f 100644 --- a/src/OpenSHC/UI/Rendering.func.hpp +++ b/src/OpenSHC/UI/Rendering.func.hpp @@ -8,7 +8,7 @@ #pragma once -#include "OpenSHC/UI/Enums/DisplayElementID.hpp" +#include "OpenSHC/UI/Enums/DisplayElementIDInt.hpp" #include "OpenSHC/UI/Rendering.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -17,7 +17,7 @@ namespace OpenSHC { namespace UI { namespace Rendering_Func { - using OpenSHC::UI::Enums::DisplayElementID; + using OpenSHC::UI::Enums::DisplayElementIDInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD tileType), false, @@ -170,8 +170,8 @@ namespace UI { RenderBuildingMenu_Cathedral; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int unitID, int xPos, int yPos), false, Address::SHC_3BB0A8C1_0x0043CC30, - &OpenSHC::UI::Rendering::RenderPeasantMenu_CurrentActionUnk) - RenderPeasantMenu_CurrentActionUnk; + &OpenSHC::UI::Rendering::renderUnitCurrentActionText) + renderUnitCurrentActionText; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x0043CDB0, &OpenSHC::UI::Rendering::RenderBuildingMenu_Marketplace) @@ -402,16 +402,16 @@ namespace UI { RenderTerrainTilesCenterPiece; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004640D0, - &OpenSHC::UI::Rendering::RenderCurrentNotActiveButtonWithPossibleAlphaTexOnCurrentSurfaceUnk) - RenderCurrentNotActiveButtonWithPossibleAlphaTexOnCurrentSurfaceUnk; + &OpenSHC::UI::Rendering::renderInactiveButtonWithAlpha) + renderInactiveButtonWithAlpha; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x00464300, &OpenSHC::UI::Rendering::RenderCurrentButtonOnScreenMenu) RenderCurrentButtonOnScreenMenu; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int blendStrengthUnk), false, Address::SHC_3BB0A8C1_0x00464370, - &OpenSHC::UI::Rendering::RenderCurrentButtonToScreenMenuWithBlendingUnk) - RenderCurrentButtonToScreenMenuWithBlendingUnk; + &OpenSHC::UI::Rendering::renderCurrentButtonBlendedToScreenMenu) + renderCurrentButtonBlendedToScreenMenu; MACRO_FUNCTION_RESOLVER(uint(__cdecl*)(int red, int green, int blue), false, Address::SHC_3BB0A8C1_0x00467850, &OpenSHC::UI::Rendering::TransformToCurrentModeColor) @@ -421,13 +421,13 @@ namespace UI { &OpenSHC::UI::Rendering::RenderLoadAndSaveBar) RenderLoadAndSaveBar; - MACRO_FUNCTION_RESOLVER(void(__cdecl*)(DisplayElementID displayElementID, uint toggleValue), false, - Address::SHC_3BB0A8C1_0x004AF6B0, &OpenSHC::UI::Rendering::TogglePlayerPingDisplayElementUnk) - TogglePlayerPingDisplayElementUnk; + MACRO_FUNCTION_RESOLVER(void(__cdecl*)(DisplayElementIDInt displayElementID, uint toggleValue), false, + Address::SHC_3BB0A8C1_0x004AF6B0, &OpenSHC::UI::Rendering::togglePlayerPingDisplayElement) + togglePlayerPingDisplayElement; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004AF700, - &OpenSHC::UI::Rendering::RenderDisplayElementsUnk) - RenderDisplayElementsUnk; + &OpenSHC::UI::Rendering::renderAllActiveDisplayElements) + renderAllActiveDisplayElements; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, Address::SHC_3BB0A8C1_0x004AF820, &OpenSHC::UI::Rendering::RenderResourceMissing1DisplayElement) @@ -442,12 +442,12 @@ namespace UI { RenderDebugNumbersDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, - Address::SHC_3BB0A8C1_0x004AFA50, &OpenSHC::UI::Rendering::RenderUnknownDisplayElement7) - RenderUnknownDisplayElement7; + Address::SHC_3BB0A8C1_0x004AFA50, &OpenSHC::UI::Rendering::renderStopwatchDurationDisplayElement) + renderStopwatchDurationDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD MissionNumPlus1Unk), false, - Address::SHC_3BB0A8C1_0x004AFA80, &OpenSHC::UI::Rendering::RenderSomeMissionNumberUnkDisplayElement9) - RenderSomeMissionNumberUnkDisplayElement9; + Address::SHC_3BB0A8C1_0x004AFA80, &OpenSHC::UI::Rendering::renderMissionNumberDisplayElement) + renderMissionNumberDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, Address::SHC_3BB0A8C1_0x004AFB00, &OpenSHC::UI::Rendering::RenderNoTreeGrowthTextDisplayElement) @@ -462,8 +462,8 @@ namespace UI { RenderMissionWinDefeatBannerDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, - Address::SHC_3BB0A8C1_0x004AFE10, &OpenSHC::UI::Rendering::RenderSomeMultiplayerInfoUnkDisplayElement19) - RenderSomeMultiplayerInfoUnkDisplayElement19; + Address::SHC_3BB0A8C1_0x004AFE10, &OpenSHC::UI::Rendering::renderMultiplayerResyncOverlayDisplayElement) + renderMultiplayerResyncOverlayDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, Address::SHC_3BB0A8C1_0x004B0390, &OpenSHC::UI::Rendering::RenderPlayerInfoOnHoverDisplayElement) @@ -474,8 +474,8 @@ namespace UI { RenderGameSpeedTextDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, - Address::SHC_3BB0A8C1_0x004B0820, &OpenSHC::UI::Rendering::RenderUnknownDisplayElement25) - RenderUnknownDisplayElement25; + Address::SHC_3BB0A8C1_0x004B0820, &OpenSHC::UI::Rendering::renderSkirmishPointsPerPlayerDebugOverlay) + renderSkirmishPointsPerPlayerDebugOverlay; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, Address::SHC_3BB0A8C1_0x004B0AC0, &OpenSHC::UI::Rendering::RenderPeopleLeftToPlaceDisplayElement) @@ -487,8 +487,8 @@ namespace UI { RenderAndPlayKeepAndGranaryPlacementInfoDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, - Address::SHC_3BB0A8C1_0x004B1D30, &OpenSHC::UI::Rendering::RenderPlayerPingUnkDisplayElement22) - RenderPlayerPingUnkDisplayElement22; + Address::SHC_3BB0A8C1_0x004B1D30, &OpenSHC::UI::Rendering::renderPlayerPingDisplayElement) + renderPlayerPingDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, Address::SHC_3BB0A8C1_0x004B1E60, &OpenSHC::UI::Rendering::RenderGamePausedTextDisplayElement) @@ -499,16 +499,16 @@ namespace UI { RenderTimeUntilVictoryDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, - Address::SHC_3BB0A8C1_0x004B20B0, &OpenSHC::UI::Rendering::RenderNoRushDisplayElementUnk) - RenderNoRushDisplayElementUnk; + Address::SHC_3BB0A8C1_0x004B20B0, &OpenSHC::UI::Rendering::renderNoRushDisplayElement) + renderNoRushDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, Address::SHC_3BB0A8C1_0x004B2280, &OpenSHC::UI::Rendering::RenderTimeUntilDefeatDisplayElement) RenderTimeUntilDefeatDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int posX, int posY, DWORD elementState), false, - Address::SHC_3BB0A8C1_0x004B2530, &OpenSHC::UI::Rendering::RenderSomeMultiplayerInfoUnkDisplayElement28) - RenderSomeMultiplayerInfoUnkDisplayElement28; + Address::SHC_3BB0A8C1_0x004B2530, &OpenSHC::UI::Rendering::renderLaggingPlayerEjectOverlayDisplayElement) + renderLaggingPlayerEjectOverlayDisplayElement; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int textNumInGroup), false, Address::SHC_3BB0A8C1_0x004BA910, &OpenSHC::UI::Rendering::RenderScenarioButtonWithText) @@ -519,20 +519,20 @@ namespace UI { RenderGreatestLordScreen; MACRO_FUNCTION_RESOLVER(int(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004D76A0, - &OpenSHC::UI::Rendering::RenderMissionObjectivesUnk) - RenderMissionObjectivesUnk; + &OpenSHC::UI::Rendering::renderScenarioDescriptionContent) + renderScenarioDescriptionContent; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int loadedGfxIndex, int xPosInMenuRect, int yPosInMenuRect), false, - Address::SHC_3BB0A8C1_0x004DA570, &OpenSHC::UI::Rendering::RenderGfxHelperUnk) - RenderGfxHelperUnk; + Address::SHC_3BB0A8C1_0x004DA570, &OpenSHC::UI::Rendering::renderMenuGfxAtPosition) + renderMenuGfxAtPosition; MACRO_FUNCTION_RESOLVER(void(__cdecl*)(int gfxIndex, int x, int y, int blendStrength), false, Address::SHC_3BB0A8C1_0x004DA640, &OpenSHC::UI::Rendering::RenderMenuGfxHelper) RenderMenuGfxHelper; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004DB490, - &OpenSHC::UI::Rendering::RenderHistoryBookEdgeUnk) - RenderHistoryBookEdgeUnk; + &OpenSHC::UI::Rendering::renderAnimatedHistoryBookEdge) + renderAnimatedHistoryBookEdge; MACRO_FUNCTION_RESOLVER(void(__stdcall*)(), false, Address::SHC_3BB0A8C1_0x004F4070, &OpenSHC::UI::Rendering::RenderNoViewsFoundWarning) diff --git a/src/OpenSHC/UI/Rendering.hpp b/src/OpenSHC/UI/Rendering.hpp index 31357940..06bdb431 100644 --- a/src/OpenSHC/UI/Rendering.hpp +++ b/src/OpenSHC/UI/Rendering.hpp @@ -8,7 +8,7 @@ #pragma once -#include "OpenSHC/UI/Enums/DisplayElementID.hpp" +#include "OpenSHC/UI/Enums/DisplayElementIDInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" #include "WinDef.h" @@ -16,7 +16,7 @@ namespace OpenSHC { namespace UI { namespace Rendering { - using OpenSHC::UI::Enums::DisplayElementID; + using OpenSHC::UI::Enums::DisplayElementIDInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; void __cdecl RenderConnectAndPathLinkageInfoTextDisplayElement(int posX, int posY, DWORD tileType); @@ -93,7 +93,7 @@ namespace UI { void __stdcall RenderBuildingMenu_Cathedral(); - void __cdecl RenderPeasantMenu_CurrentActionUnk(int unitID, int xPos, int yPos); + void __cdecl renderUnitCurrentActionText(int unitID, int xPos, int yPos); void __stdcall RenderBuildingMenu_Marketplace(); @@ -209,19 +209,19 @@ namespace UI { void __stdcall RenderTerrainTilesCenterPiece(); - void __stdcall RenderCurrentNotActiveButtonWithPossibleAlphaTexOnCurrentSurfaceUnk(); + void __stdcall renderInactiveButtonWithAlpha(); void __stdcall RenderCurrentButtonOnScreenMenu(); - void __cdecl RenderCurrentButtonToScreenMenuWithBlendingUnk(int blendStrengthUnk); + void __cdecl renderCurrentButtonBlendedToScreenMenu(int blendStrengthUnk); uint __cdecl TransformToCurrentModeColor(int red, int green, int blue); void __cdecl RenderLoadAndSaveBar(int progressValueUnk); - void __cdecl TogglePlayerPingDisplayElementUnk(DisplayElementID displayElementID, uint toggleValue); + void __cdecl togglePlayerPingDisplayElement(DisplayElementIDInt displayElementID, uint toggleValue); - void __stdcall RenderDisplayElementsUnk(); + void __stdcall renderAllActiveDisplayElements(); void __cdecl RenderResourceMissing1DisplayElement(int posX, int posY, DWORD elementState); @@ -229,9 +229,9 @@ namespace UI { void __cdecl RenderDebugNumbersDisplayElement(int posX, int posY, DWORD elementState); - void __cdecl RenderUnknownDisplayElement7(int posX, int posY, DWORD elementState); + void __cdecl renderStopwatchDurationDisplayElement(int posX, int posY, DWORD elementState); - void __cdecl RenderSomeMissionNumberUnkDisplayElement9(int posX, int posY, DWORD MissionNumPlus1Unk); + void __cdecl renderMissionNumberDisplayElement(int posX, int posY, DWORD MissionNumPlus1Unk); void __cdecl RenderNoTreeGrowthTextDisplayElement(int posX, int posY, DWORD elementState); @@ -239,42 +239,42 @@ namespace UI { void __cdecl RenderMissionWinDefeatBannerDisplayElement(int posX, int posY, DWORD winDefeatState); - void __cdecl RenderSomeMultiplayerInfoUnkDisplayElement19(int posX, int posY, DWORD elementState); + void __cdecl renderMultiplayerResyncOverlayDisplayElement(int posX, int posY, DWORD elementState); void __cdecl RenderPlayerInfoOnHoverDisplayElement(int posX, int posY, DWORD elementState); void __cdecl RenderGameSpeedTextDisplayElement(int posX, int posY, DWORD elementState); - void __cdecl RenderUnknownDisplayElement25(int posX, int posY, DWORD elementState); + void __cdecl renderSkirmishPointsPerPlayerDebugOverlay(int posX, int posY, DWORD elementState); void __cdecl RenderPeopleLeftToPlaceDisplayElement(int posX, int posY, DWORD elementState); void __cdecl RenderAndPlayKeepAndGranaryPlacementInfoDisplayElement( int posX, int posY, DWORD whichBuildingIsMissing); - void __cdecl RenderPlayerPingUnkDisplayElement22(int posX, int posY, DWORD elementState); + void __cdecl renderPlayerPingDisplayElement(int posX, int posY, DWORD elementState); void __cdecl RenderGamePausedTextDisplayElement(int posX, int posY, DWORD elementState); void __cdecl RenderTimeUntilVictoryDisplayElement(int posX, int posY, DWORD elementState); - void __cdecl RenderNoRushDisplayElementUnk(int posX, int posY, DWORD elementState); + void __cdecl renderNoRushDisplayElement(int posX, int posY, DWORD elementState); void __cdecl RenderTimeUntilDefeatDisplayElement(int posX, int posY, DWORD elementState); - void __cdecl RenderSomeMultiplayerInfoUnkDisplayElement28(int posX, int posY, DWORD elementState); + void __cdecl renderLaggingPlayerEjectOverlayDisplayElement(int posX, int posY, DWORD elementState); void __cdecl RenderScenarioButtonWithText(int textNumInGroup); void __stdcall RenderGreatestLordScreen(); - int __stdcall RenderMissionObjectivesUnk(); + int __stdcall renderScenarioDescriptionContent(); - void __cdecl RenderGfxHelperUnk(int loadedGfxIndex, int xPosInMenuRect, int yPosInMenuRect); + void __cdecl renderMenuGfxAtPosition(int loadedGfxIndex, int xPosInMenuRect, int yPosInMenuRect); void __cdecl RenderMenuGfxHelper(int gfxIndex, int x, int y, int blendStrength); - void __stdcall RenderHistoryBookEdgeUnk(); + void __stdcall renderAnimatedHistoryBookEdge(); void __stdcall RenderNoViewsFoundWarning(); diff --git a/src/OpenSHC/UI/Rendering/AlphaAndButtonSurface.func.hpp b/src/OpenSHC/UI/Rendering/AlphaAndButtonSurface.func.hpp index 694c7e2f..0beed7d6 100644 --- a/src/OpenSHC/UI/Rendering/AlphaAndButtonSurface.func.hpp +++ b/src/OpenSHC/UI/Rendering/AlphaAndButtonSurface.func.hpp @@ -2,7 +2,7 @@ path: 'OpenSHC/UI/Rendering/AlphaAndButtonSurface.func.hpp' */ -#include "OpenSHC/Rendering/Enums/RenderTarget.hpp" +#include "OpenSHC/Rendering/Enums/RenderTargetInt.hpp" #include "OpenSHC/UI/Rendering/AlphaAndButtonSurface.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { @@ -10,7 +10,7 @@ namespace UI { namespace Rendering { namespace AlphaAndButtonSurface_Func { - using OpenSHC::Rendering::Enums::RenderTarget; + using OpenSHC::Rendering::Enums::RenderTargetInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(void (AlphaAndButtonSurface::*)(int), false, Address::SHC_3BB0A8C1_0x004246E0, @@ -26,22 +26,22 @@ namespace UI { prepareButtonAndAlphaSurface; MACRO_FUNCTION_RESOLVER(BOOLEnum (AlphaAndButtonSurface::*)(), false, Address::SHC_3BB0A8C1_0x004630D0, - &AlphaAndButtonSurface::isMouseOnButtonImageUnk) - isMouseOnButtonImageUnk; + &AlphaAndButtonSurface::isMouseOverButtonPixel) + isMouseOverButtonPixel; MACRO_FUNCTION_RESOLVER(void (AlphaAndButtonSurface::*)(int), false, Address::SHC_3BB0A8C1_0x00463270, - &AlphaAndButtonSurface::ProcessBuildingClickBonus) - ProcessBuildingClickBonus; + &AlphaAndButtonSurface::handleFriendlyBuildingClick) + handleFriendlyBuildingClick; MACRO_FUNCTION_RESOLVER(BOOLEnum (AlphaAndButtonSurface::*)(int), false, Address::SHC_3BB0A8C1_0x00463310, &AlphaAndButtonSurface::openBuildingStatusMenuForBuildingID) openBuildingStatusMenuForBuildingID; MACRO_FUNCTION_RESOLVER(BOOLEnum (AlphaAndButtonSurface::*)(int), false, Address::SHC_3BB0A8C1_0x00463A00, - &AlphaAndButtonSurface::SelectUnitAndOpenStatusMenu) - SelectUnitAndOpenStatusMenu; + &AlphaAndButtonSurface::selectOwnUnit) + selectOwnUnit; - MACRO_FUNCTION_RESOLVER(void (AlphaAndButtonSurface::*)(int, RenderTarget), false, + MACRO_FUNCTION_RESOLVER(void (AlphaAndButtonSurface::*)(int, RenderTargetInt), false, Address::SHC_3BB0A8C1_0x00463A90, &AlphaAndButtonSurface::renderBasicButton) renderBasicButton; diff --git a/src/OpenSHC/UI/Rendering/AlphaAndButtonSurface.hpp b/src/OpenSHC/UI/Rendering/AlphaAndButtonSurface.hpp index c1c745db..b60fae53 100644 --- a/src/OpenSHC/UI/Rendering/AlphaAndButtonSurface.hpp +++ b/src/OpenSHC/UI/Rendering/AlphaAndButtonSurface.hpp @@ -8,14 +8,14 @@ #pragma once -#include "OpenSHC/Rendering/Enums/RenderTarget.hpp" +#include "OpenSHC/Rendering/Enums/RenderTargetInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace UI { namespace Rendering { - using OpenSHC::Rendering::Enums::RenderTarget; + using OpenSHC::Rendering::Enums::RenderTargetInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -45,15 +45,15 @@ namespace UI { void prepareButtonAndAlphaSurface(); - BOOLEnum isMouseOnButtonImageUnk(); + BOOLEnum isMouseOverButtonPixel(); - void ProcessBuildingClickBonus(int buildingIndex); + void handleFriendlyBuildingClick(int buildingIndex); BOOLEnum openBuildingStatusMenuForBuildingID(int buildingID); - BOOLEnum SelectUnitAndOpenStatusMenu(int unitIndex); + BOOLEnum selectOwnUnit(int unitIndex); - void renderBasicButton(int reverseOrBlendStrength, RenderTarget renderSurface); + void renderBasicButton(int reverseOrBlendStrength, RenderTargetInt renderSurface); }; static_assert_cpp98_obj(sizeof(AlphaAndButtonSurface) == 16, AlphaAndButtonSurface); diff --git a/src/OpenSHC/UI/Rendering/ButtonGmData.func.hpp b/src/OpenSHC/UI/Rendering/ButtonGmData.func.hpp index ad6b0b39..78a1cde5 100644 --- a/src/OpenSHC/UI/Rendering/ButtonGmData.func.hpp +++ b/src/OpenSHC/UI/Rendering/ButtonGmData.func.hpp @@ -3,15 +3,12 @@ */ #include "OpenSHC/UI/Rendering/ButtonGmData.hpp" -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace UI { namespace Rendering { namespace ButtonGmData_Func { - using OpenSHC::WindowsHelper::Enums::BOOLEnum; - - MACRO_FUNCTION_RESOLVER(int (ButtonGmData::*)(BOOLEnum), false, Address::SHC_3BB0A8C1_0x004630B0, + MACRO_FUNCTION_RESOLVER(undefined (ButtonGmData::*)(), false, Address::SHC_3BB0A8C1_0x004630B0, &ButtonGmData::getPictureNumberInGm) getPictureNumberInGm; diff --git a/src/OpenSHC/UI/Rendering/ButtonGmData.hpp b/src/OpenSHC/UI/Rendering/ButtonGmData.hpp index af8758ff..73846c1c 100644 --- a/src/OpenSHC/UI/Rendering/ButtonGmData.hpp +++ b/src/OpenSHC/UI/Rendering/ButtonGmData.hpp @@ -9,14 +9,12 @@ #pragma once #include "OpenSHC/IO/Graphics/GmIDInt.hpp" -#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { namespace UI { namespace Rendering { using OpenSHC::IO::Graphics::GmIDInt; - using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -39,7 +37,7 @@ namespace UI { ButtonGmData() {}; ~ButtonGmData() {}; - int getPictureNumberInGm(BOOLEnum buttonIsInteracting); + undefined getPictureNumberInGm(); }; static_assert_cpp98_obj(sizeof(ButtonGmData) == 28, ButtonGmData); diff --git a/src/OpenSHC/UI/Rendering/PencilRenderCore.func.hpp b/src/OpenSHC/UI/Rendering/PencilRenderCore.func.hpp index 1fa8f39c..7a9b2c72 100644 --- a/src/OpenSHC/UI/Rendering/PencilRenderCore.func.hpp +++ b/src/OpenSHC/UI/Rendering/PencilRenderCore.func.hpp @@ -2,7 +2,7 @@ path: 'OpenSHC/UI/Rendering/PencilRenderCore.func.hpp' */ -#include "OpenSHC/UI/Enums/RoundedBoxEdgeRoundingLevel.hpp" +#include "OpenSHC/UI/Enums/RoundedBoxEdgeRoundingLevelInt.hpp" #include "OpenSHC/UI/Rendering/PencilRenderCore.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { @@ -10,7 +10,7 @@ namespace UI { namespace Rendering { namespace PencilRenderCore_Func { - using OpenSHC::UI::Enums::RoundedBoxEdgeRoundingLevel; + using OpenSHC::UI::Enums::RoundedBoxEdgeRoundingLevelInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x00468C50, @@ -50,8 +50,8 @@ namespace UI { drawScrollbar; MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(int, int), false, Address::SHC_3BB0A8C1_0x00469290, - &PencilRenderCore::renderUpDownButtonUnk) - renderUpDownButtonUnk; + &PencilRenderCore::renderUpDownArrowButton) + renderUpDownArrowButton; MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(BOOLEnum, int, int), false, Address::SHC_3BB0A8C1_0x004692E0, &PencilRenderCore::drawTableCellBackground) @@ -61,8 +61,9 @@ namespace UI { Address::SHC_3BB0A8C1_0x00470E90, &PencilRenderCore::drawColorBox) drawColorBox; - MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(int, int, int, int, ushort, RoundedBoxEdgeRoundingLevel), - false, Address::SHC_3BB0A8C1_0x00470EE0, &PencilRenderCore::drawBoxWithRoundedEdgesAndColor) + MACRO_FUNCTION_RESOLVER( + void (PencilRenderCore::*)(int, int, int, int, ushort, RoundedBoxEdgeRoundingLevelInt), false, + Address::SHC_3BB0A8C1_0x00470EE0, &PencilRenderCore::drawBoxWithRoundedEdgesAndColor) drawBoxWithRoundedEdgesAndColor; MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(int, int, int, int, int), false, @@ -73,8 +74,8 @@ namespace UI { Address::SHC_3BB0A8C1_0x00471050, &PencilRenderCore::dimBox) dimBox; - MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(int, int, int, int, RoundedBoxEdgeRoundingLevel), false, - Address::SHC_3BB0A8C1_0x004710A0, &PencilRenderCore::drawBoxWithRoundedEdges) + MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(int, int, int, int, RoundedBoxEdgeRoundingLevelInt), + false, Address::SHC_3BB0A8C1_0x004710A0, &PencilRenderCore::drawBoxWithRoundedEdges) drawBoxWithRoundedEdges; MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(int, int, int, int, ushort), false, @@ -82,12 +83,12 @@ namespace UI { drawBorderBox; MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x00471220, - &PencilRenderCore::drawDiagonalHeigherThanWideUnk) - drawDiagonalHeigherThanWideUnk; + &PencilRenderCore::drawLineBresenhamSteep) + drawLineBresenhamSteep; MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x00471280, - &PencilRenderCore::drawDiagonalWiderThanHighUnk) - drawDiagonalWiderThanHighUnk; + &PencilRenderCore::drawLineBresenhamShallow) + drawLineBresenhamShallow; MACRO_FUNCTION_RESOLVER(void (PencilRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x004712E0, &PencilRenderCore::drawPixelPattern4x4OverWholeScreen) diff --git a/src/OpenSHC/UI/Rendering/PencilRenderCore.hpp b/src/OpenSHC/UI/Rendering/PencilRenderCore.hpp index 2961da10..52837c18 100644 --- a/src/OpenSHC/UI/Rendering/PencilRenderCore.hpp +++ b/src/OpenSHC/UI/Rendering/PencilRenderCore.hpp @@ -9,7 +9,7 @@ #pragma once #include "OpenSHC/Rendering/Enums/RenderTargetInt.hpp" -#include "OpenSHC/UI/Enums/RoundedBoxEdgeRoundingLevel.hpp" +#include "OpenSHC/UI/Enums/RoundedBoxEdgeRoundingLevelInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { @@ -17,7 +17,7 @@ namespace UI { namespace Rendering { using OpenSHC::Rendering::Enums::RenderTargetInt; - using OpenSHC::UI::Enums::RoundedBoxEdgeRoundingLevel; + using OpenSHC::UI::Enums::RoundedBoxEdgeRoundingLevelInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; #pragma pack(push, 1) @@ -71,27 +71,27 @@ namespace UI { void drawScrollbar( uint xPos, int yPos, int height, int thumbYPos, BOOLEnum isDragged, int thumbHeight, int blendStrength); - void renderUpDownButtonUnk(int isDownButtonUnk, int blendStrengthUnk); + void renderUpDownArrowButton(int isDownButtonUnk, int blendStrengthUnk); void drawTableCellBackground(BOOLEnum isSelected, int indexToGetStripes, int blendStrength); void drawColorBox(int left, int top, int right, int bottom, ushort color); void drawBoxWithRoundedEdgesAndColor( - int left, int top, int right, int bottom, ushort color, RoundedBoxEdgeRoundingLevel roundingLevel); + int left, int top, int right, int bottom, ushort color, RoundedBoxEdgeRoundingLevelInt roundingLevel); void drawBlendedBlackBox(int left, int top, int right, int bottom, int blendStrengh); void dimBox(int left, int top, int right, int bottom); void drawBoxWithRoundedEdges( - int left, int top, int right, int bottom, RoundedBoxEdgeRoundingLevel roundingLevel); + int left, int top, int right, int bottom, RoundedBoxEdgeRoundingLevelInt roundingLevel); void drawBorderBox(int left, int top, int right, int bottom, ushort color); - void drawDiagonalHeigherThanWideUnk(); + void drawLineBresenhamSteep(); - void drawDiagonalWiderThanHighUnk(); + void drawLineBresenhamShallow(); void drawPixelPattern4x4OverWholeScreen(); diff --git a/src/OpenSHC/UI/Rendering/TextureRenderCore.func.hpp b/src/OpenSHC/UI/Rendering/TextureRenderCore.func.hpp index 7606c18e..40b6a92d 100644 --- a/src/OpenSHC/UI/Rendering/TextureRenderCore.func.hpp +++ b/src/OpenSHC/UI/Rendering/TextureRenderCore.func.hpp @@ -2,11 +2,11 @@ path: 'OpenSHC/UI/Rendering/TextureRenderCore.func.hpp' */ -#include "OpenSHC/DE/SHCDE/eGM.hpp" -#include "OpenSHC/IO/Graphics/GmID.hpp" +#include "OpenSHC/DE/SHCDE/eGMInt.hpp" +#include "OpenSHC/IO/Graphics/GmIDInt.hpp" #include "OpenSHC/Rendering/Colors/BGR24.hpp" #include "OpenSHC/Rendering/Colors/RGB15.hpp" -#include "OpenSHC/Text/FontRenderType.hpp" +#include "OpenSHC/Text/FontRenderTypeInt.hpp" #include "OpenSHC/UI/Rendering/TextureRenderCore.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" namespace OpenSHC { @@ -14,34 +14,34 @@ namespace UI { namespace Rendering { namespace TextureRenderCore_Func { - using OpenSHC::DE::SHCDE::eGM; - using OpenSHC::IO::Graphics::GmID; + using OpenSHC::DE::SHCDE::eGMInt; + using OpenSHC::IO::Graphics::GmIDInt; using OpenSHC::Rendering::Colors::BGR24; using OpenSHC::Rendering::Colors::RGB15; - using OpenSHC::Text::FontRenderType; + using OpenSHC::Text::FontRenderTypeInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x0044C7E0, &TextureRenderCore::Destructor_TextureRenderCore) Destructor_TextureRenderCore; - MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmID, int), false, Address::SHC_3BB0A8C1_0x0044C850, - &TextureRenderCore::drawLoadingBarUnk) - drawLoadingBarUnk; + MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmIDInt, int), false, Address::SHC_3BB0A8C1_0x0044C850, + &TextureRenderCore::drawLoadingProgressBar) + drawLoadingProgressBar; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int), false, Address::SHC_3BB0A8C1_0x0044C8F0, &TextureRenderCore::transformGmColorTableFromRGB555To565IfRequired) transformGmColorTableFromRGB555To565IfRequired; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int), false, Address::SHC_3BB0A8C1_0x0044C940, - &TextureRenderCore::transformRawWithMarkerUnkToRGB555To565) - transformRawWithMarkerUnkToRGB555To565; + &TextureRenderCore::convertImageRGB555ToRGB565) + convertImageRGB555ToRGB565; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(ushort*, int), false, Address::SHC_3BB0A8C1_0x0044C9C0, &TextureRenderCore::transformTgxFromRGB555ToRGB565) transformTgxFromRGB555ToRGB565; - MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int), false, Address::SHC_3BB0A8C1_0x0044CAE0, + MACRO_FUNCTION_RESOLVER(undefined (TextureRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x0044CAE0, &TextureRenderCore::transformTileObjectToRGB565) transformTileObjectToRGB565; @@ -62,16 +62,16 @@ namespace UI { setMapSurfaceHeightRange; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x0044CCC0, - &TextureRenderCore::setMapSurfaceHeightRangeUnk) - setMapSurfaceHeightRangeUnk; + &TextureRenderCore::setMapSurfaceHeightRangeFull) + setMapSurfaceHeightRangeFull; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x0044CCD0, - &TextureRenderCore::temporarySaveMapSurfaceHeightRangeUnk) - temporarySaveMapSurfaceHeightRangeUnk; + &TextureRenderCore::saveMapSurfaceHeightRange) + saveMapSurfaceHeightRange; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x0044CCF0, - &TextureRenderCore::restoreMapSurfaceHeightRangeFromTemporaryUnk) - restoreMapSurfaceHeightRangeFromTemporaryUnk; + &TextureRenderCore::restoreMapSurfaceHeightRange) + restoreMapSurfaceHeightRange; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int), false, Address::SHC_3BB0A8C1_0x0044CD10, &TextureRenderCore::setScreenMenuSurfaceHeightRange) @@ -86,12 +86,12 @@ namespace UI { drawBitmapFace; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x0044CE00, - &TextureRenderCore::renderFacesSmallUnk) - renderFacesSmallUnk; + &TextureRenderCore::renderFaceHalfSize) + renderFaceHalfSize; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int, int), false, - Address::SHC_3BB0A8C1_0x0044CEB0, &TextureRenderCore::drawBitmapFaceWithBlendUnk) - drawBitmapFaceWithBlendUnk; + Address::SHC_3BB0A8C1_0x0044CEB0, &TextureRenderCore::drawBitmapFaceBlended) + drawBitmapFaceBlended; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int, int, ushort*), false, Address::SHC_3BB0A8C1_0x0044D3D0, &TextureRenderCore::renderFunctionResponsibleForManyGameObjects) @@ -110,20 +110,20 @@ namespace UI { renderGmWithPreparedAlphaMask; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int, int, ushort*, ushort), false, - Address::SHC_3BB0A8C1_0x0044F6F0, &TextureRenderCore::renderTgxWithColorUnk) - renderTgxWithColorUnk; + Address::SHC_3BB0A8C1_0x0044F6F0, &TextureRenderCore::blitTgxAsSolidColor) + blitTgxAsSolidColor; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int, int, ushort*, ushort, int), false, - Address::SHC_3BB0A8C1_0x0044F850, &TextureRenderCore::renderTgxWithColorAndBlendingUnk) - renderTgxWithColorAndBlendingUnk; + Address::SHC_3BB0A8C1_0x0044F850, &TextureRenderCore::renderTgxTintedBlended) + renderTgxTintedBlended; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int, int, byte*), false, - Address::SHC_3BB0A8C1_0x0044FBF0, &TextureRenderCore::renderUnitAnimationUnk) - renderUnitAnimationUnk; + Address::SHC_3BB0A8C1_0x0044FBF0, &TextureRenderCore::blitUnitSpriteRLE) + blitUnitSpriteRLE; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int, int, byte*, int), false, - Address::SHC_3BB0A8C1_0x00451E00, &TextureRenderCore::renderUnitAnimationWithBlendingUnk) - renderUnitAnimationWithBlendingUnk; + Address::SHC_3BB0A8C1_0x00451E00, &TextureRenderCore::blitUnitSpriteRLEBlended) + blitUnitSpriteRLEBlended; MACRO_FUNCTION_RESOLVER(int (TextureRenderCore::*)(char*), false, Address::SHC_3BB0A8C1_0x00454620, &TextureRenderCore::loadGfxFile) @@ -137,9 +137,9 @@ namespace UI { &TextureRenderCore::loadGfxAtBufferEnd) loadGfxAtBufferEnd; - MACRO_FUNCTION_RESOLVER(BOOLEnum (TextureRenderCore::*)(char*), false, Address::SHC_3BB0A8C1_0x004548D0, - &TextureRenderCore::CheckGfxResourceExists) - CheckGfxResourceExists; + MACRO_FUNCTION_RESOLVER(undefined (TextureRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x004548D0, + &TextureRenderCore::gfxResourceExists) + gfxResourceExists; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int), false, Address::SHC_3BB0A8C1_0x00454900, &TextureRenderCore::renderLoadedGfx) @@ -166,12 +166,12 @@ namespace UI { drawTgxOnFlaggedSurface; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x00454CB0, - &TextureRenderCore::loadCampaignMapGfxUnk) - loadCampaignMapGfxUnk; + &TextureRenderCore::loadCampaignMapPalettes) + loadCampaignMapPalettes; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int), false, Address::SHC_3BB0A8C1_0x00454EE0, - &TextureRenderCore::setMenuTabIndexUnk) - setMenuTabIndexUnk; + &TextureRenderCore::setActiveMenuTabIndex) + setActiveMenuTabIndex; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(), false, Address::SHC_3BB0A8C1_0x00454EF0, &TextureRenderCore::setActiveMenuTabIndexToZero) @@ -182,8 +182,8 @@ namespace UI { moveOverlappingMenuPartsToMapSurface; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int), false, Address::SHC_3BB0A8C1_0x00455250, - &TextureRenderCore::transformUncompressedImageWithMarkerUnkToRGB565) - transformUncompressedImageWithMarkerUnkToRGB565; + &TextureRenderCore::transformUncompressedImageWithMarkerToRGB565) + transformUncompressedImageWithMarkerToRGB565; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int), false, Address::SHC_3BB0A8C1_0x00455270, &TextureRenderCore::transformTgxCompressedImageToRGB565) @@ -197,23 +197,23 @@ namespace UI { &TextureRenderCore::transformUncompressedImageToRGB565) transformUncompressedImageToRGB565; - MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(eGM, int, int, int), false, + MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(eGMInt, int, int, int), false, Address::SHC_3BB0A8C1_0x00455300, &TextureRenderCore::renderGM) renderGM; - MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmID, int, int, int, int), false, + MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmIDInt, int, int, int, int), false, Address::SHC_3BB0A8C1_0x00455390, &TextureRenderCore::renderGMWithBlending) renderGMWithBlending; - MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmID, int, int, int), false, + MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmIDInt, int, int, int), false, Address::SHC_3BB0A8C1_0x004554A0, &TextureRenderCore::drawTgxGmOnFlaggedSurface) drawTgxGmOnFlaggedSurface; - MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int, FontRenderType, int, ushort, int), false, - Address::SHC_3BB0A8C1_0x00455540, &TextureRenderCore::renderTextChar) + MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(int, int, int, FontRenderTypeInt, int, ushort, int), + false, Address::SHC_3BB0A8C1_0x00455540, &TextureRenderCore::renderTextChar) renderTextChar; - MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmID, int, int, int, GmID, int, int), false, + MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmIDInt, int, int, int, GmIDInt, int, int), false, Address::SHC_3BB0A8C1_0x004557B0, &TextureRenderCore::renderGMWithAlphaMask) renderGMWithAlphaMask; @@ -225,8 +225,8 @@ namespace UI { &TextureRenderCore::adaptGmColorsToRGB565IfRequired) adaptGmColorsToRGB565IfRequired; - MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmID, char*), false, Address::SHC_3BB0A8C1_0x004559B0, - &TextureRenderCore::loadGMFile) + MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(GmIDInt, char*), false, + Address::SHC_3BB0A8C1_0x004559B0, &TextureRenderCore::loadGMFile) loadGMFile; MACRO_FUNCTION_RESOLVER(void (TextureRenderCore::*)(char*), false, Address::SHC_3BB0A8C1_0x00455C60, diff --git a/src/OpenSHC/UI/Rendering/TextureRenderCore.hpp b/src/OpenSHC/UI/Rendering/TextureRenderCore.hpp index fea65120..c7697b48 100644 --- a/src/OpenSHC/UI/Rendering/TextureRenderCore.hpp +++ b/src/OpenSHC/UI/Rendering/TextureRenderCore.hpp @@ -8,14 +8,14 @@ #pragma once -#include "OpenSHC/DE/SHCDE/eGM.hpp" +#include "OpenSHC/DE/SHCDE/eGMInt.hpp" #include "OpenSHC/IO/Graphics/GMFileHeaderColorpalette.hpp" #include "OpenSHC/IO/Graphics/GfxRef.hpp" -#include "OpenSHC/IO/Graphics/GmID.hpp" +#include "OpenSHC/IO/Graphics/GmIDInt.hpp" #include "OpenSHC/Rendering/Colors/BGR24.hpp" #include "OpenSHC/Rendering/Colors/RGB15.hpp" #include "OpenSHC/Rendering/Enums/RenderTargetInt.hpp" -#include "OpenSHC/Text/FontRenderType.hpp" +#include "OpenSHC/Text/FontRenderTypeInt.hpp" #include "OpenSHC/UI/Rendering/Range.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -25,14 +25,14 @@ namespace OpenSHC { namespace UI { namespace Rendering { - using OpenSHC::DE::SHCDE::eGM; + using OpenSHC::DE::SHCDE::eGMInt; using OpenSHC::IO::Graphics::GfxRef; using OpenSHC::IO::Graphics::GMFileHeaderColorpalette; - using OpenSHC::IO::Graphics::GmID; + using OpenSHC::IO::Graphics::GmIDInt; using OpenSHC::Rendering::Colors::BGR24; using OpenSHC::Rendering::Colors::RGB15; using OpenSHC::Rendering::Enums::RenderTargetInt; - using OpenSHC::Text::FontRenderType; + using OpenSHC::Text::FontRenderTypeInt; using OpenSHC::UI::Rendering::Range; using OpenSHC::WindowsHelper::Enums::BOOLEnum; @@ -123,15 +123,15 @@ namespace UI { void Destructor_TextureRenderCore(); - void drawLoadingBarUnk(GmID currentGmId, int barLengthUnk); + void drawLoadingProgressBar(GmIDInt currentGmId, int barLengthUnk); void transformGmColorTableFromRGB555To565IfRequired(int gmID); - void transformRawWithMarkerUnkToRGB555To565(int imageOffset, int imageSize); + void convertImageRGB555ToRGB565(int imageOffset, int imageSize); void transformTgxFromRGB555ToRGB565(ushort* tgxDataPtr, int tgxByteSize); - void transformTileObjectToRGB565(int imageOffset); + undefined transformTileObjectToRGB565(); void transformRawToRGB555To565(int imageOffset, int imageSize); @@ -141,11 +141,11 @@ namespace UI { void setMapSurfaceHeightRange(int start, int end); - void setMapSurfaceHeightRangeUnk(); + void setMapSurfaceHeightRangeFull(); - void temporarySaveMapSurfaceHeightRangeUnk(); + void saveMapSurfaceHeightRange(); - void restoreMapSurfaceHeightRangeFromTemporaryUnk(); + void restoreMapSurfaceHeightRange(); void setScreenMenuSurfaceHeightRange(int start, int end); @@ -153,9 +153,9 @@ namespace UI { void drawBitmapFace(int bitmapFaceIndex, int xPos, int yPos); - void renderFacesSmallUnk(int facesIndex, int drawX, int drawY); + void renderFaceHalfSize(int facesIndex, int drawX, int drawY); - void drawBitmapFaceWithBlendUnk(int bitmapFaceIndex, int xPos, int yPos, int colorOrBlendOrGammaUnk); + void drawBitmapFaceBlended(int bitmapFaceIndex, int xPos, int yPos, int colorOrBlendOrGammaUnk); void renderFunctionResponsibleForManyGameObjects( int drawX, int drawY, int imageWidth, int imageHeight, ushort* imageAddress); @@ -168,15 +168,15 @@ namespace UI { void renderGmWithPreparedAlphaMask( int x, int y, int width, int height, ushort* imageDataPtr, int blendStrength); - void renderTgxWithColorUnk( + void blitTgxAsSolidColor( int xPos, int yPos, int width, int height, ushort* imageSource, ushort fillColorUnk); - void renderTgxWithColorAndBlendingUnk(int xPos, int yPos, int width, int height, ushort* imageSource, + void renderTgxTintedBlended(int xPos, int yPos, int width, int height, ushort* imageSource, ushort fillColorUnk, int blendStrengthUnk); - void renderUnitAnimationUnk(int xPosition, int yPosition, int width, int height, byte* imageAddress); + void blitUnitSpriteRLE(int xPosition, int yPosition, int width, int height, byte* imageAddress); - void renderUnitAnimationWithBlendingUnk( + void blitUnitSpriteRLEBlended( int xPosition, int yPosition, int width, int height, byte* imageAddress, int blendStrengthUnk); int loadGfxFile(char* tgxFileName); @@ -185,7 +185,7 @@ namespace UI { int loadGfxAtBufferEnd(char* fileName); - BOOLEnum CheckGfxResourceExists(char* param_1); + undefined gfxResourceExists(); void renderLoadedGfx(int loadedGfxIndex, int xPos, int yPos); @@ -199,15 +199,15 @@ namespace UI { void drawTgxOnFlaggedSurface(int xPos, int yPos, int gfxWidth, int gfxHeight, ushort* tgxSourcePtr); - void loadCampaignMapGfxUnk(); + void loadCampaignMapPalettes(); - void setMenuTabIndexUnk(int indexToSetToMinusOne); + void setActiveMenuTabIndex(int indexToSetToMinusOne); void setActiveMenuTabIndexToZero(); void moveOverlappingMenuPartsToMapSurface(); - void transformUncompressedImageWithMarkerUnkToRGB565(int imageIndex); + void transformUncompressedImageWithMarkerToRGB565(int imageIndex); void transformTgxCompressedImageToRGB565(int imageIndex); @@ -215,23 +215,23 @@ namespace UI { void transformUncompressedImageToRGB565(int imageIndex); - void renderGM(eGM gmID, int imageID, int drawX, int drawY); + void renderGM(eGMInt gmID, int imageID, int drawX, int drawY); - void renderGMWithBlending(GmID GmID, int imageID, int drawX, int drawY, int blendStrengthUnk); + void renderGMWithBlending(GmIDInt GmID, int imageID, int drawX, int drawY, int blendStrengthUnk); - void drawTgxGmOnFlaggedSurface(GmID gmId, int imageIndexInGm, int xPos, int yPos); + void drawTgxGmOnFlaggedSurface(GmIDInt gmId, int imageIndexInGm, int xPos, int yPos); - void renderTextChar(int xPos, int yPos, int imageId, FontRenderType renderType, int lineHeight, + void renderTextChar(int xPos, int yPos, int imageId, FontRenderTypeInt renderType, int lineHeight, ushort fillColor, int blendStrength); void renderGMWithAlphaMask( - GmID gmID, int imageID, int xPos, int yPos, GmID maskGmID, int alphaImageID, int blendStrength); + GmIDInt gmID, int imageID, int xPos, int yPos, GmIDInt maskGmID, int alphaImageID, int blendStrength); void drawGfxOnFlaggedSurface(int gfxIndex, int xPos, int yPos); void adaptGmColorsToRGB565IfRequired(int gmID, int imageIndex); - void loadGMFile(GmID gmID, char* gmFileName); + void loadGMFile(GmIDInt gmID, char* gmFileName); void loadGmFiles(char* fileNameArray); }; diff --git a/src/OpenSHC/UI/Rendering/WindowAndDirectDraw.func.hpp b/src/OpenSHC/UI/Rendering/WindowAndDirectDraw.func.hpp index 5ba2b3ca..11de21cd 100644 --- a/src/OpenSHC/UI/Rendering/WindowAndDirectDraw.func.hpp +++ b/src/OpenSHC/UI/Rendering/WindowAndDirectDraw.func.hpp @@ -2,7 +2,7 @@ path: 'OpenSHC/UI/Rendering/WindowAndDirectDraw.func.hpp' */ -#include "OpenSHC/Rendering/ScreenResolutionEnum.hpp" +#include "OpenSHC/Rendering/ScreenResolutionEnumInt.hpp" #include "OpenSHC/UI/Rendering/WindowAndDirectDraw.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -13,7 +13,7 @@ namespace UI { namespace Rendering { namespace WindowAndDirectDraw_Func { - using OpenSHC::Rendering::ScreenResolutionEnum; + using OpenSHC::Rendering::ScreenResolutionEnumInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; MACRO_FUNCTION_RESOLVER(BOOLEnum (WindowAndDirectDraw::*)(LPCSTR, uint), false, @@ -33,8 +33,8 @@ namespace UI { finalizeDirectDrawShutdown; MACRO_FUNCTION_RESOLVER(void (WindowAndDirectDraw::*)(LPRECT, LPRECT), false, - Address::SHC_3BB0A8C1_0x00467E50, &WindowAndDirectDraw::adjustForNotExclusiveFullscreenUnk) - adjustForNotExclusiveFullscreenUnk; + Address::SHC_3BB0A8C1_0x00467E50, &WindowAndDirectDraw::clampBlitRectsToScreen) + clampBlitRectsToScreen; MACRO_FUNCTION_RESOLVER(BOOLEnum (WindowAndDirectDraw::*)(), false, Address::SHC_3BB0A8C1_0x00467EC0, &WindowAndDirectDraw::restoreDXSurfaces) @@ -61,8 +61,8 @@ namespace UI { createCrusaderWindow; MACRO_FUNCTION_RESOLVER(void (WindowAndDirectDraw::*)(), false, Address::SHC_3BB0A8C1_0x0046FFB0, - &WindowAndDirectDraw::prepareWindowAndDDrawUnk) - prepareWindowAndDDrawUnk; + &WindowAndDirectDraw::reinitWindowAndDirectDraw) + reinitWindowAndDirectDraw; MACRO_FUNCTION_RESOLVER(void (WindowAndDirectDraw::*)(int), false, Address::SHC_3BB0A8C1_0x00470040, &WindowAndDirectDraw::renderBltAndFlip) @@ -88,9 +88,9 @@ namespace UI { &WindowAndDirectDraw::reinitWindow) reinitWindow; - MACRO_FUNCTION_RESOLVER(void (WindowAndDirectDraw::*)(BOOLEnum, ScreenResolutionEnum), false, - Address::SHC_3BB0A8C1_0x004729B0, &WindowAndDirectDraw::prepareWindowAndDDraw_2Unk) - prepareWindowAndDDraw_2Unk; + MACRO_FUNCTION_RESOLVER(void (WindowAndDirectDraw::*)(BOOLEnum, ScreenResolutionEnumInt), false, + Address::SHC_3BB0A8C1_0x004729B0, &WindowAndDirectDraw::reinitWindowAndDirectDrawWithMode) + reinitWindowAndDirectDrawWithMode; MACRO_FUNCTION_RESOLVER(void (WindowAndDirectDraw::*)(int), false, Address::SHC_3BB0A8C1_0x00479540, &WindowAndDirectDraw::takeScreenshot) diff --git a/src/OpenSHC/UI/Rendering/WindowAndDirectDraw.hpp b/src/OpenSHC/UI/Rendering/WindowAndDirectDraw.hpp index 20e614a8..7e64f051 100644 --- a/src/OpenSHC/UI/Rendering/WindowAndDirectDraw.hpp +++ b/src/OpenSHC/UI/Rendering/WindowAndDirectDraw.hpp @@ -10,7 +10,6 @@ #include "OpenSHC/Rendering/ColorModeInt.hpp" #include "OpenSHC/Rendering/ScreenResolutionArrayStruct.hpp" -#include "OpenSHC/Rendering/ScreenResolutionEnum.hpp" #include "OpenSHC/Rendering/ScreenResolutionEnumInt.hpp" #include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp" @@ -24,7 +23,6 @@ namespace UI { using OpenSHC::Rendering::ColorModeInt; using OpenSHC::Rendering::ScreenResolutionArrayStruct; - using OpenSHC::Rendering::ScreenResolutionEnum; using OpenSHC::Rendering::ScreenResolutionEnumInt; using OpenSHC::WindowsHelper::Enums::BOOLEnum; @@ -103,7 +101,7 @@ namespace UI { void finalizeDirectDrawShutdown(); - void adjustForNotExclusiveFullscreenUnk(LPRECT destinationRect, LPRECT sourceRect); + void clampBlitRectsToScreen(LPRECT destinationRect, LPRECT sourceRect); BOOLEnum restoreDXSurfaces(); @@ -117,7 +115,7 @@ namespace UI { void createCrusaderWindow(HINSTANCE hInstance, LPCSTR windowName, uint cursorResource); - void prepareWindowAndDDrawUnk(); + void reinitWindowAndDirectDraw(); void renderBltAndFlip(int param_1); @@ -131,7 +129,7 @@ namespace UI { void reinitWindow(); - void prepareWindowAndDDraw_2Unk(BOOLEnum runAsExclusiveFullscreen, ScreenResolutionEnum resEnum); + void reinitWindowAndDirectDrawWithMode(BOOLEnum runAsExclusiveFullscreen, ScreenResolutionEnumInt resEnum); void takeScreenshot(int param_1); }; diff --git a/src/OpenSHC/UI/ScrollingHandler.func.hpp b/src/OpenSHC/UI/ScrollingHandler.func.hpp index 7efb110d..d1274858 100644 --- a/src/OpenSHC/UI/ScrollingHandler.func.hpp +++ b/src/OpenSHC/UI/ScrollingHandler.func.hpp @@ -12,8 +12,8 @@ namespace UI { handleScrolling; MACRO_FUNCTION_RESOLVER(int (ScrollingHandler::*)(), false, Address::SHC_3BB0A8C1_0x00468C30, - &ScrollingHandler::getScrollDistanceBaseUnk) - getScrollDistanceBaseUnk; + &ScrollingHandler::getScrollDistanceBase) + getScrollDistanceBase; } // namespace ScrollingHandler_Func } // namespace UI diff --git a/src/OpenSHC/UI/ScrollingHandler.hpp b/src/OpenSHC/UI/ScrollingHandler.hpp index 8476b93c..cf58820e 100644 --- a/src/OpenSHC/UI/ScrollingHandler.hpp +++ b/src/OpenSHC/UI/ScrollingHandler.hpp @@ -56,7 +56,7 @@ namespace UI { void handleScrolling(); - int getScrollDistanceBaseUnk(); + int getScrollDistanceBase(); }; static_assert_cpp98_obj(sizeof(ScrollingHandler) == 72, ScrollingHandler); diff --git a/src/OpenSHC/UI/ShortcutDefinedData.hpp b/src/OpenSHC/UI/ShortcutDefinedData.hpp index ae179435..26909626 100644 --- a/src/OpenSHC/UI/ShortcutDefinedData.hpp +++ b/src/OpenSHC/UI/ShortcutDefinedData.hpp @@ -17,7 +17,7 @@ namespace UI { undefined4 DAT_ScreenshotFilenameVariant; // 0x00000000 length: 4 undefined4 DAT_CyclingLordID; // 0x00000004 length: 4 - char cheatCode[16]; // 0x00000008 length: 16 + char DAT_CheatCodeString[16]; // 0x00000008 length: 16 undefined1 padding_0x18[4]; // 0x00000018 length: 4 } ShortcutDefinedData; diff --git a/src/OpenSHC/Util/WideCharMultiByteState.func.hpp b/src/OpenSHC/Util/WideCharMultiByteState.func.hpp index 6be6f1dc..72a31d93 100644 --- a/src/OpenSHC/Util/WideCharMultiByteState.func.hpp +++ b/src/OpenSHC/Util/WideCharMultiByteState.func.hpp @@ -26,8 +26,8 @@ namespace Util { multiByteToWideCharThunk; MACRO_FUNCTION_RESOLVER(char (WideCharMultiByteState::*)(WCHAR), false, Address::SHC_3BB0A8C1_0x0046B170, - &WideCharMultiByteState::wideCharToByteUnk) - wideCharToByteUnk; + &WideCharMultiByteState::wideCharToByte) + wideCharToByte; MACRO_FUNCTION_RESOLVER(void (WideCharMultiByteState::*)(undefined), false, Address::SHC_3BB0A8C1_0x0046B1B0, &WideCharMultiByteState::multiByteToWideCharThunk2) diff --git a/src/OpenSHC/Util/WideCharMultiByteState.hpp b/src/OpenSHC/Util/WideCharMultiByteState.hpp index 26a7338b..51e2b29f 100644 --- a/src/OpenSHC/Util/WideCharMultiByteState.hpp +++ b/src/OpenSHC/Util/WideCharMultiByteState.hpp @@ -36,7 +36,7 @@ namespace Util { void multiByteToWideCharThunk(LPWSTR param_1, LPCSTR param_2, int param_3); - char wideCharToByteUnk(WCHAR wideChar); + char wideCharToByte(WCHAR wideChar); void multiByteToWideCharThunk2(undefined param_1); }; diff --git a/src/precomp/addresses-SHC-3BB0A8C1.hpp b/src/precomp/addresses-SHC-3BB0A8C1.hpp index 4041fc8f..941820ca 100644 --- a/src/precomp/addresses-SHC-3BB0A8C1.hpp +++ b/src/precomp/addresses-SHC-3BB0A8C1.hpp @@ -576,37 +576,53 @@ enum { SHC_3BB0A8C1_0x00400260 = 0x00400260, // type: PE/IMAGE_SECTION_HEADER SHC_3BB0A8C1_0x00400288 = 0x00400288, + // label: _HoldStrong::Rendering::ViewportRenderState::xyAreValid // label: xyAreValid + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x00401000 = 0x00401000, + // label: _HoldStrong::Rendering::ViewportRenderState::translateXYToTile // label: translateXYToTile + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x00401040 = 0x00401040, + // label: _HoldStrong::Map::TileMapState::processEntityDamageToBuildingCollateralThunk // label: processEntityDamageToBuildingCollateralThunk + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00401060 = 0x00401060, + // label: _HoldStrong::Game::GameStateStructures::isSameTeam // label: isSameTeam + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00401090 = 0x00401090, + // label: _HoldStrong::Synchrony::GameSynchronyState::isAIPlayer // label: isAIPlayer + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x004010B0 = 0x004010B0, + // label: _HoldStrong::Map::Entities::EntityState::clearEntityArrayAndSec1077 // label: clearEntityArrayAndSec1077 + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004010E0 = 0x004010E0, // type: function SHC_3BB0A8C1_0x00401120 = 0x00401120, + // label: _HoldStrong::Map::Entities::EntityState::meth_0x401150 // label: playerHasEntityOfType + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401150 = 0x00401150, + // label: _HoldStrong::Map::Entities::EntityState::setProjectileEntityValues2 // label: setProjectileEntityValues2 + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004011D0 = 0x004011D0, @@ -622,79 +638,115 @@ enum { SHC_3BB0A8C1_0x004012DC = 0x004012DC, // type: /undefined *32 SHC_3BB0A8C1_0x004012E0 = 0x004012E0, + // label: _HoldStrong::Map::Entities::EntityState::setEntityParameters // label: setEntityParameters + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004012F0 = 0x004012F0, + // label: _HoldStrong::Map::Entities::EntityState::drawEntityEffect // label: drawEntityEffect + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401380 = 0x00401380, - // label: markEntityDestroyed + // label: _HoldStrong::Map::Entities::EntityState::meth_0x401400 + // label: beginEntityDeath + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401400 = 0x00401400, - // label: tickEntityDecayCounter + // label: _HoldStrong::Map::Entities::EntityState::meth_0x401430 + // label: tickEntityLifetime + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401430 = 0x00401430, - // label: doSomethingWithOtherEntitiesOnTile + // label: _HoldStrong::Map::Entities::EntityState::doSomethingWithOtherEntitiesOnTile + // label: unlinkEntityFromTileChain + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401460 = 0x00401460, + // label: _HoldStrong::Map::Entities::EntityState::getFireEntityIDAtTile // label: getFireEntityIDAtTile + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401540 = 0x00401540, + // label: _HoldStrong::Map::Entities::EntityState::updateAllFireEntitiesAtTile // label: updateAllFireEntitiesAtTile + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401570 = 0x00401570, + // label: _HoldStrong::Map::Entities::EntityState::processFireDamageToUnitsAtTile // label: processFireDamageToUnitsAtTile + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004015D0 = 0x004015D0, // type: function SHC_3BB0A8C1_0x004015F0 = 0x004015F0, - // label: recountActiveFires + // label: _HoldStrong::Map::Entities::EntityState::meth_0x401620 + // label: rebuildFireTileOccupancy + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401620 = 0x00401620, - // label: flagUnitsWithActiveEntity + // label: _HoldStrong::Map::Entities::EntityState::meth_0x401690 + // label: markUnitsWithActiveEntity + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401690 = 0x00401690, - // label: somethingWithSeparateAreas1 + // label: _HoldStrong::Map::Entities::EntityState::somethingWithSeparateAreas1 + // label: findNearestReachablePoisonCow + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004016E0 = 0x004016E0, // type: function SHC_3BB0A8C1_0x00401730 = 0x00401730, - // label: refreshPoisonCloudNearUnit + // label: _HoldStrong::Map::Entities::EntityState::meth_0x401880 + // label: refreshPoisonCloudsNearUnit + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401880 = 0x00401880, - // label: assignPoisonCloudTargetEntity + // label: _HoldStrong::Map::Entities::EntityState::meth_0x401910 + // label: assignPoisonCloudToEntity + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401910 = 0x00401910, + // label: _HoldStrong::Map::Entities::EntityState::destroyEntitiesOnTile // label: destroyEntitiesOnTile + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004019D0 = 0x004019D0, + // label: _HoldStrong::Map::Entities::EntityState::isBrazierNearby // label: isBrazierNearby + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401A50 = 0x00401A50, - // label: reassignEntitiesOwner + // label: _HoldStrong::Map::Entities::EntityState::meth_0x401ae0 + // label: reassignEntityOwnership + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401AE0 = 0x00401AE0, + // label: _HoldStrong::Map::Entities::EntityState::swapEntityOwnership // label: swapEntityOwnership + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401B20 = 0x00401B20, + // label: _HoldStrong::Map::Entities::EntityState::destroyEntitiesPart2 // label: destroyEntitiesPart2 + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00401B60 = 0x00401B60, @@ -722,11 +774,15 @@ enum { // location: OpenSHC/Map/Entities // type: function SHC_3BB0A8C1_0x00401DB0 = 0x00401DB0, - // label: UpdateEntity_20_37 + // label: UpdateBallistaBoltEntity + // label: _HoldStrong::Map::Entities::UpdateEntity_20_37 + // location: // location: OpenSHC/Map/Entities // type: function SHC_3BB0A8C1_0x00401E20 = 0x00401E20, - // label: UpdateEntity_21 + // label: UpdateDustCloudEntity + // label: _HoldStrong::Map::Entities::UpdateEntity_21 + // location: // location: OpenSHC/Map/Entities // type: function SHC_3BB0A8C1_0x00401EA0 = 0x00401EA0, @@ -738,7 +794,9 @@ enum { // location: OpenSHC/Map/Entities // type: function SHC_3BB0A8C1_0x00402180 = 0x00402180, - // label: UpdateEntity_26 + // label: UpdateExplosionEntity + // label: _HoldStrong::Map::Entities::UpdateEntity_26 + // location: // location: OpenSHC/Map/Entities // type: function SHC_3BB0A8C1_0x00402260 = 0x00402260, @@ -746,7 +804,9 @@ enum { // location: OpenSHC/Map/Entities // type: function SHC_3BB0A8C1_0x00402330 = 0x00402330, - // label: UpdateEntity_28 + // label: UpdateCrowEntity + // label: _HoldStrong::Map::Entities::UpdateEntity_28 + // location: // location: OpenSHC/Map/Entities // type: function SHC_3BB0A8C1_0x004023A0 = 0x004023A0, @@ -798,7 +858,9 @@ enum { // location: OpenSHC/Map/Entities // type: function SHC_3BB0A8C1_0x00402AB0 = 0x00402AB0, - // label: updateEntityMicroMovement + // label: _HoldStrong::Map::Entities::EntityState::meth_0x402ae0 + // label: stepEntityMicroMovement + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00402AE0 = 0x00402AE0, @@ -812,29 +874,39 @@ enum { SHC_3BB0A8C1_0x00402BC8 = 0x00402BC8, // type: /pointer SHC_3BB0A8C1_0x00402BCC = 0x00402BCC, - // label: angleToRotationFrameIndex + // label: heightDeltaToSpriteIndex // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00402BD0 = 0x00402BD0, + // label: _HoldStrong::Map::Entities::EntityState::math_atan_1 // label: math_atan_1 + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00402C50 = 0x00402C50, + // label: _HoldStrong::Map::Entities::EntityState::computeVelocity // label: computeVelocity + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00402DA0 = 0x00402DA0, - // label: computeLineOfSightDistance + // label: _HoldStrong::Map::Entities::EntityState::meth_0x402e20 + // label: traceLineOfSight + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00402E20 = 0x00402E20, // type: function SHC_3BB0A8C1_0x00403200 = 0x00403200, - // label: calculateEntityDrawOffset + // label: _HoldStrong::Map::Entities::EntityState::meth_0x4036f0 + // label: updateEntitySubtilePixelOffset + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004036F0 = 0x004036F0, - // label: initializeSeagullMovementVector + // label: _HoldStrong::Map::Entities::EntityState::meth_0x403790 + // label: setupSeagullMovement + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00403790 = 0x00403790, @@ -846,27 +918,37 @@ enum { // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x004038B0 = 0x004038B0, - // label: removeEntityFromTileLinkedList + // label: removeEntityFromTileList // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00403900 = 0x00403900, // label: Constructor_EntityState + // label: _HoldStrong::Map::Entities::EntityState::Constructor_EntityState + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00403980 = 0x00403980, + // label: _HoldStrong::Map::Entities::EntityState::meth_0x4039b0 // label: activateProjectileEntity + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004039B0 = 0x004039B0, + // label: _HoldStrong::Map::Entities::EntityState::deleteEntity // label: deleteEntity + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004039F0 = 0x004039F0, + // label: _HoldStrong::Map::Entities::EntityState::initializeProjectileVelocities // label: initializeProjectileVelocities + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00403A20 = 0x00403A20, - // label: handleProjectileWallBounce + // label: _HoldStrong::Map::Entities::EntityState::meth_0x403ff0 + // label: bounceProjectileOffWall + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00403FF0 = 0x00403FF0, @@ -1502,7 +1584,9 @@ enum { SHC_3BB0A8C1_0x004049F8 = 0x004049F8, // type: /byte SHC_3BB0A8C1_0x00404A00 = 0x00404A00, - // label: arrowShootingRelated + // label: _HoldStrong::Map::Entities::EntityState::arrowShootingRelated + // label: checkProjectileLineOfSight + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00404A10 = 0x00404A10, @@ -1510,7 +1594,9 @@ enum { // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x00404A70 = 0x00404A70, + // label: _HoldStrong::Map::Entities::EntityState::spawnProjectileEntity // label: spawnProjectileEntity + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00404AE0 = 0x00404AE0, @@ -2046,11 +2132,15 @@ enum { // location: OpenSHC/Map/Entities // type: function SHC_3BB0A8C1_0x00405C00 = 0x00405C00, - // label: setProjectileTargetPosition + // label: _HoldStrong::Map::Entities::EntityState::meth_0x405cf0 + // label: launchProjectileAt + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00405CF0 = 0x00405CF0, - // label: spawnProjectileImpactDebris + // label: _HoldStrong::Map::Entities::EntityState::meth_0x405da0 + // label: spawnProjectileImpactFragments + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00405DA0 = 0x00405DA0, @@ -2686,11 +2776,15 @@ enum { SHC_3BB0A8C1_0x00406640 = 0x00406640, // type: /byte SHC_3BB0A8C1_0x00406648 = 0x00406648, + // label: _HoldStrong::Map::Entities::EntityState::createSeagull // label: createSeagull + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00406650 = 0x00406650, + // label: _HoldStrong::Map::Entities::EntityState::processSeaGulls // label: processSeaGulls + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00406900 = 0x00406900, @@ -2706,7 +2800,9 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00407160 = 0x00407160, + // label: _HoldStrong::Map::Entities::EntityState::processEntityHitBuildingOrUnit // label: processEntityHitBuildingOrUnit + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00407190 = 0x00407190, @@ -2798,7 +2894,9 @@ enum { SHC_3BB0A8C1_0x004081D4 = 0x004081D4, // type: /byte SHC_3BB0A8C1_0x004081D5 = 0x004081D5, - // label: updateProjectileHeightAndCollision + // label: _HoldStrong::Map::Entities::EntityState::meth_0x4081e0 + // label: updateProjectileHeight + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004081E0 = 0x004081E0, @@ -2806,23 +2904,31 @@ enum { // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x00408250 = 0x00408250, + // label: _HoldStrong::Map::Entities::EntityState::spawnEntityEffect2 // label: spawnEntityEffect2 + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004082A0 = 0x004082A0, + // label: _HoldStrong::Map::Entities::EntityState::spawnEntityEffect1 // label: spawnEntityEffect1 + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004083A0 = 0x004083A0, + // label: _HoldStrong::Map::Entities::EntityState::moveProjectileEntity // label: moveProjectileEntity + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004084A0 = 0x004084A0, - // label: handleMapVersionUpgrade + // label: migrateEntityDataForMapVersion // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x00408770 = 0x00408770, + // label: _HoldStrong::Map::Entities::EntityState::updateEntities // label: updateEntities + // location: // location: OpenSHC/Map/Entities/EntityState // type: function SHC_3BB0A8C1_0x004087C0 = 0x004087C0, @@ -2940,27 +3046,39 @@ enum { SHC_3BB0A8C1_0x00408E04 = 0x00408E04, // type: /undefined *32 SHC_3BB0A8C1_0x00408E08 = 0x00408E08, + // label: _HoldStrong::Rendering::Bink::BinkControlClass::zeroBinkPtrAndLoadBinkSoundSystem // label: zeroBinkPtrAndLoadBinkSoundSystem + // location: // location: OpenSHC/Rendering/Bink/BinkControlClass // type: function SHC_3BB0A8C1_0x00408E10 = 0x00408E10, + // label: _HoldStrong::Rendering::Bink::BinkControlClass::stopBinkPlayback // label: stopBinkPlayback + // location: // location: OpenSHC/Rendering/Bink/BinkControlClass // type: function SHC_3BB0A8C1_0x00408E30 = 0x00408E30, + // label: _HoldStrong::Rendering::Bink::BinkControlClass::setBinkSndStreamAndStartTime // label: setBinkSndStreamAndStartTime + // location: // location: OpenSHC/Rendering/Bink/BinkControlClass // type: function SHC_3BB0A8C1_0x00408E70 = 0x00408E70, + // label: _HoldStrong::Rendering::Bink::BinkControlClass::stopAllBinkPlayback // label: stopAllBinkPlayback + // location: // location: OpenSHC/Rendering/Bink/BinkControlClass // type: function SHC_3BB0A8C1_0x00408EB0 = 0x00408EB0, + // label: _HoldStrong::Rendering::Bink::BinkControlClass::playBINK // label: playBINK + // location: // location: OpenSHC/Rendering/Bink/BinkControlClass // type: function SHC_3BB0A8C1_0x00408ED0 = 0x00408ED0, + // label: _HoldStrong::Rendering::Bink::BinkControlClass::copyBinkToVideoBuffer // label: copyBinkToVideoBuffer + // location: // location: OpenSHC/Rendering/Bink/BinkControlClass // type: function SHC_3BB0A8C1_0x00408FC0 = 0x00408FC0, @@ -2982,31 +3100,45 @@ enum { // label: prt_409195_f3096517 // location: OpenSHC/Rendering/Bink/BinkControlClass/copyBinkToVideoBuffer/override SHC_3BB0A8C1_0x00409195 = 0x00409195, + // label: _HoldStrong::Rendering::Bink::BinkControlClass::processBinkFrames // label: processBinkFrames + // location: // location: OpenSHC/Rendering/Bink/BinkControlClass // type: function SHC_3BB0A8C1_0x00409200 = 0x00409200, + // label: _HoldStrong::Rendering::Bink::BinkControlClass::stopAllBinkPlaybackThunk // label: stopAllBinkPlaybackThunk + // location: // location: OpenSHC/Rendering/Bink/BinkControlClass // type: function SHC_3BB0A8C1_0x004092B0 = 0x004092B0, + // label: _HoldStrong::Map::Navigation::DirectionAlgorithmState::computeHealthPercentage // label: computeHealthPercentage + // location: // location: OpenSHC/Map/Navigation/DirectionAlgorithmState // type: function SHC_3BB0A8C1_0x004092C0 = 0x004092C0, - // label: computeTileXOffset + // label: _HoldStrong::Rendering::ViewportRenderState::meth_0x4092e0 + // label: tileIndexToColumn + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004092E0 = 0x004092E0, + // label: _HoldStrong::Map::TileMapState::processDamageToBuildingThunk // label: processDamageToBuildingThunk + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00409300 = 0x00409300, - // label: getBuildingResourceAmountByUid + // label: _HoldStrong::Map::Buildings::BuildingsState::someArrayIndexingOnBuildingField0x120 + // label: someArrayIndexingOnBuildingField0x120 + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00409330 = 0x00409330, + // label: _HoldStrong::Map::Buildings::BuildingsState::convertCommandBuildingTypeToBuildingType // label: convertCommandBuildingTypeToBuildingType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00409370 = 0x00409370, @@ -3856,7 +3988,9 @@ enum { SHC_3BB0A8C1_0x00409929 = 0x00409929, // type: /byte SHC_3BB0A8C1_0x0040992A = 0x0040992A, + // label: _HoldStrong::Map::Buildings::BuildingsState::convertBuildingTypeToCommandBuildingType // label: convertBuildingTypeToCommandBuildingType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00409930 = 0x00409930, @@ -4074,7 +4208,9 @@ enum { SHC_3BB0A8C1_0x00409DA8 = 0x00409DA8, // type: /undefined *32 SHC_3BB0A8C1_0x00409DAC = 0x00409DAC, + // label: _HoldStrong::Map::Buildings::BuildingsState::getBuildingHeightForBuildingID // label: getBuildingHeightForBuildingID + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00409DB0 = 0x00409DB0, @@ -4176,7 +4312,9 @@ enum { SHC_3BB0A8C1_0x00409E75 = 0x00409E75, // type: /byte SHC_3BB0A8C1_0x00409E76 = 0x00409E76, - // label: getBuildingHeightForBuildingID2 + // label: GetBuildingHeightForBuildingID_type2 + // label: _HoldStrong::Map::Buildings::BuildingsState::GetBuildingHeightForBuildingID_type2 + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00409E80 = 0x00409E80, @@ -4276,19 +4414,27 @@ enum { SHC_3BB0A8C1_0x00409F41 = 0x00409F41, // type: /byte SHC_3BB0A8C1_0x00409F42 = 0x00409F42, + // label: _HoldStrong::Map::Buildings::BuildingsState::getSpriteID // label: getSpriteID + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00409F50 = 0x00409F50, + // label: _HoldStrong::Map::Buildings::BuildingsState::getSpriteID2 // label: getSpriteID2 + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00409FF0 = 0x00409FF0, + // label: _HoldStrong::Map::Buildings::BuildingsState::clearBuildings // label: clearBuildings + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040A020 = 0x0040A020, + // label: _HoldStrong::Map::Buildings::BuildingsState::displayPopularityAndGoldPopups // label: displayPopularityAndGoldPopups + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040A060 = 0x0040A060, @@ -4360,7 +4506,9 @@ enum { SHC_3BB0A8C1_0x0040A254 = 0x0040A254, // type: /byte SHC_3BB0A8C1_0x0040A255 = 0x0040A255, + // label: _HoldStrong::Map::Buildings::BuildingsState::spawnCrowForBuilding // label: spawnCrowForBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040A260 = 0x0040A260, @@ -4478,111 +4626,159 @@ enum { SHC_3BB0A8C1_0x0040A3F9 = 0x0040A3F9, // type: /byte SHC_3BB0A8C1_0x0040A3FA = 0x0040A3FA, + // label: _HoldStrong::Map::Buildings::BuildingsState::isFearFactorBuilding // label: isFearFactorBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040A400 = 0x0040A400, + // label: _HoldStrong::Map::Buildings::BuildingsState::isReligiousBuilding // label: isReligiousBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040A4A0 = 0x0040A4A0, + // label: _HoldStrong::Map::Buildings::BuildingsState::copyPlayerDataArrayValues // label: copyPlayerDataArrayValues + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040A4E0 = 0x0040A4E0, + // label: _HoldStrong::Map::Buildings::BuildingsState::chooseProductionItemType // label: chooseProductionItemType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040A8A0 = 0x0040A8A0, + // label: _HoldStrong::Map::Buildings::BuildingsState::getEmptyBuildingCount // label: getEmptyBuildingCount + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040A950 = 0x0040A950, + // label: _HoldStrong::Map::Buildings::BuildingsState::countBuildingsForPlayer // label: countBuildingsForPlayer + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040A9B0 = 0x0040A9B0, + // label: _HoldStrong::Map::Buildings::BuildingsState::countFarms // label: countFarms + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040AA10 = 0x0040AA10, + // label: _HoldStrong::Map::Buildings::BuildingsState::findFirstBuildingOfType // label: findFirstBuildingOfType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040AA80 = 0x0040AA80, + // label: _HoldStrong::Map::Buildings::BuildingsState::findFirstBuildingIDForPlayerAndType // label: findFirstBuildingIDForPlayerAndType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040AAD0 = 0x0040AAD0, + // label: _HoldStrong::Map::Buildings::BuildingsState::findNextBuildingForPlayerAndType // label: findNextBuildingForPlayerAndType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040AB30 = 0x0040AB30, - // label: findNextBuildingIDForOwnerAndType + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40ab90 + // label: findNextOwnedBuildingOfType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040AB90 = 0x0040AB90, - // label: findNextBuildingForPlayerAndOneOfThreeTypes + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40ac00 + // label: findNextOwnedBuildingOfTypes + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040AC00 = 0x0040AC00, + // label: _HoldStrong::Map::Buildings::BuildingsState::canNavigateToDefensiveBuilding // label: canNavigateToDefensiveBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040AC80 = 0x0040AC80, - // label: findNextReachableDefensiveBuildingForPlayer + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40adb0 + // label: findNextReachableDefensiveBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040ADB0 = 0x0040ADB0, + // label: _HoldStrong::Map::Buildings::BuildingsState::pickARandomBuildingOfType // label: pickARandomBuildingOfType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040AEF0 = 0x0040AEF0, + // label: _HoldStrong::Map::Buildings::BuildingsState::pickARandomBuildingIDOfTheseThreeTypes // label: pickARandomBuildingIDOfTheseThreeTypes + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040AFB0 = 0x0040AFB0, // type: function SHC_3BB0A8C1_0x0040B040 = 0x0040B040, + // label: _HoldStrong::Map::Buildings::BuildingsState::pickARandomPositiveFearFactorBuilding // label: pickARandomPositiveFearFactorBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B090 = 0x0040B090, - // label: findClosestInnBuildingID + // label: _HoldStrong::Map::Buildings::BuildingsState::closestInnBuildingID + // label: closestInnBuildingID + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B1A0 = 0x0040B1A0, // type: function SHC_3BB0A8C1_0x0040B1E0 = 0x0040B1E0, + // label: _HoldStrong::Map::Buildings::BuildingsState::recomputeAllFearFactors // label: recomputeAllFearFactors + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B260 = 0x0040B260, + // label: _HoldStrong::Map::Buildings::BuildingsState::findBuildingOfTypeForPlayer // label: findBuildingOfTypeForPlayer + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B4E0 = 0x0040B4E0, + // label: _HoldStrong::Map::Buildings::BuildingsState::removeSiegeBuildings // label: removeSiegeBuildings + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B540 = 0x0040B540, + // label: _HoldStrong::Map::Buildings::BuildingsState::setBuildingInitialEntryTileTry // label: setBuildingInitialEntryTileTry + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B5D0 = 0x0040B5D0, + // label: _HoldStrong::Map::Buildings::BuildingsState::prepareCampgroundCoords // label: prepareCampgroundCoords + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B660 = 0x0040B660, - // label: hasBuildingEntranceFlagForOrientation + // label: getBuildingOrientationFlag // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B720 = 0x0040B720, - // label: hasBuildingExitFlagForOrientation + // label: getBuildingOrientationFlag2 // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B7B0 = 0x0040B7B0, - // label: isBuildingPathBlockerOrDamageable + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40b840 + // label: isBuildingBlockingOrDestructible + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B840 = 0x0040B840, @@ -4658,7 +4854,9 @@ enum { SHC_3BB0A8C1_0x0040B8F8 = 0x0040B8F8, // type: /byte SHC_3BB0A8C1_0x0040B8F9 = 0x0040B8F9, + // label: _HoldStrong::Map::Buildings::BuildingsState::getBuildingHasHealthProperty // label: getBuildingHasHealthProperty + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B900 = 0x0040B900, @@ -4734,11 +4932,15 @@ enum { SHC_3BB0A8C1_0x0040B970 = 0x0040B970, // type: /byte SHC_3BB0A8C1_0x0040B971 = 0x0040B971, - // label: hasHumanPlayerUnitsOnBuilding + // label: _HoldStrong::Map::Buildings::BuildingsState::trueIfAnyUnitsOnBuildingAreFromHumanPlayer + // label: trueIfAnyUnitsOnBuildingAreFromHumanPlayer + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040B980 = 0x0040B980, + // label: _HoldStrong::Map::Buildings::BuildingsState::setupBuildingEntrancesOffset // label: setupBuildingEntrancesOffset + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040BA10 = 0x0040BA10, @@ -4770,7 +4972,9 @@ enum { SHC_3BB0A8C1_0x0040BC1C = 0x0040BC1C, // type: /undefined *32[7] SHC_3BB0A8C1_0x0040BC20 = 0x0040BC20, + // label: _HoldStrong::Map::Buildings::BuildingsState::setupNextCandidateLocationComputeOffsets2 // label: setupNextCandidateLocationComputeOffsets2 + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040BC40 = 0x0040BC40, @@ -4802,59 +5006,87 @@ enum { SHC_3BB0A8C1_0x0040BE44 = 0x0040BE44, // type: /undefined *32[7] SHC_3BB0A8C1_0x0040BE48 = 0x0040BE48, + // label: _HoldStrong::Map::Buildings::BuildingsState::buildingHasSpaceForResource // label: buildingHasSpaceForResource + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040BE70 = 0x0040BE70, - // label: extendResourceCountdownForPlayerBuildingsOfType + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40bee0 + // label: raiseBuildingCountdownForType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040BEE0 = 0x0040BEE0, + // label: _HoldStrong::Map::Buildings::BuildingsState::canBuildingStoreTheAmount // label: canBuildingStoreTheAmount + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040BF40 = 0x0040BF40, + // label: _HoldStrong::Map::Buildings::BuildingsState::getResourceCountThatCanBeDeposited // label: getResourceCountThatCanBeDeposited + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040BFA0 = 0x0040BFA0, + // label: _HoldStrong::Map::Buildings::BuildingsState::getBuildingStorageTypeForResourceType // label: getBuildingStorageTypeForResourceType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040BFD0 = 0x0040BFD0, + // label: _HoldStrong::Map::Buildings::BuildingsState::getStorageBuildingForResourceTypeAndAmount // label: getStorageBuildingForResourceTypeAndAmount + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040BFE0 = 0x0040BFE0, - // label: getArmoryIDIfSpaceLeft + // label: _HoldStrong::Map::Buildings::BuildingsState::ifArmoryReturnIDIfSpaceLeft + // label: ifArmoryReturnIDIfSpaceLeft + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C060 = 0x0040C060, - // label: computeArmoryRemainingCapacity + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40c0d0 + // label: getArmoryFreeCapacity + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C0D0 = 0x0040C0D0, + // label: _HoldStrong::Map::Buildings::BuildingsState::computeResourceSumForBuilding // label: computeResourceSumForBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C130 = 0x0040C130, + // label: _HoldStrong::Map::Buildings::BuildingsState::hasLessWoodThanTheCostOfAWoodcuttersHutAndNoWoodcutters // label: hasLessWoodThanTheCostOfAWoodcuttersHutAndNoWoodcutters + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C1A0 = 0x0040C1A0, + // label: _HoldStrong::Map::Buildings::BuildingsState::getResourceSpace // label: getResourceSpace + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C1F0 = 0x0040C1F0, + // label: _HoldStrong::Map::Buildings::BuildingsState::countPlayerResources // label: countPlayerResources + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C300 = 0x0040C300, + // label: _HoldStrong::Map::Buildings::BuildingsState::recomputePlayerDataStocksBasedOnStorageBuildings // label: recomputePlayerDataStocksBasedOnStorageBuildings + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C4B0 = 0x0040C4B0, + // label: _HoldStrong::Map::Buildings::BuildingsState::getBuildingCostUnk // label: getBuildingCost + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C5F0 = 0x0040C5F0, @@ -5270,7 +5502,9 @@ enum { SHC_3BB0A8C1_0x0040C7F7 = 0x0040C7F7, // type: /byte SHC_3BB0A8C1_0x0040C7F8 = 0x0040C7F8, + // label: _HoldStrong::Map::Buildings::BuildingsState::getPriceForDisbandedUnitType // label: getPriceForDisbandedUnitType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C800 = 0x0040C800, @@ -5458,153 +5692,215 @@ enum { SHC_3BB0A8C1_0x0040C9AB = 0x0040C9AB, // type: /byte SHC_3BB0A8C1_0x0040C9AC = 0x0040C9AC, + // label: _HoldStrong::Map::Buildings::BuildingsState::resourceGainForKillingPitAndPitchDitch // label: resourceGainForKillingPitAndPitchDitch + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C9B0 = 0x0040C9B0, + // label: _HoldStrong::Map::Buildings::BuildingsState::subtractPitchAndMoatFromStartingGoldInSiegeThatMode // label: subtractPitchAndMoatFromStartingGoldInSiegeThatMode + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040C9F0 = 0x0040C9F0, + // label: _HoldStrong::Map::Buildings::BuildingsState::hasEnoughGoldForMoat // label: hasEnoughGoldForMoat + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040CAC0 = 0x0040CAC0, + // label: _HoldStrong::Map::Buildings::BuildingsState::getFarmThatHasTile // label: getFarmThatHasTile + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040CB10 = 0x0040CB10, - // label: isFarmTileReadyForWheatStageChange + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40cb90 + // label: hasFarmTileReadyToHarvest + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040CB90 = 0x0040CB90, // type: function SHC_3BB0A8C1_0x0040CBB0 = 0x0040CBB0, + // label: _HoldStrong::Map::Buildings::BuildingsState::growWheat // label: growWheat + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040CC30 = 0x0040CC30, - // label: updateWheatFieldTileGraphics + // label: _HoldStrong::Map::Buildings::BuildingsState::unkWheatRelated1 + // label: updateWheatFieldCropGraphics + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040CF20 = 0x0040CF20, + // label: _HoldStrong::Map::Buildings::BuildingsState::harmWheatFarmsOfPlayer // label: harmWheatFarmsOfPlayer + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040D090 = 0x0040D090, - // label: setupBarracksCampgroundPositions + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40d120 + // label: computeBarracksParadePositions + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040D120 = 0x0040D120, // type: function SHC_3BB0A8C1_0x0040D190 = 0x0040D190, - // label: setupMercenaryPostCampgroundPositions + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40d400 + // label: computeMercenaryParadePositions + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040D400 = 0x0040D400, // type: function SHC_3BB0A8C1_0x0040D470 = 0x0040D470, - // label: isSpaceAvailableAtUnitRallyPoint + // label: _HoldStrong::Map::Buildings::BuildingsState::getIsAnySpaceAvailableAtUnitRallyPoint + // label: getIsAnySpaceAvailableAtUnitRallyPoint + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040D6E0 = 0x0040D6E0, // type: function SHC_3BB0A8C1_0x0040D910 = 0x0040D910, - // label: getKeepLocationForAIUnit + // label: _HoldStrong::Map::Buildings::BuildingsState::ifAIUnitReturnKeepLocation + // label: ifAIUnitReturnKeepLocation + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040D9C0 = 0x0040D9C0, + // label: _HoldStrong::Map::Buildings::BuildingsState::createEntityForAssemblyPointsForActiveTabType // label: createEntityForAssemblyPointsForActiveTabType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040DC70 = 0x0040DC70, - // label: setupEngineersGuildCampgroundPositions + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40e040 + // label: computeEngineersCampgroundPositions + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040E040 = 0x0040E040, - // label: findFreeEngineerAssemblyTile + // label: _HoldStrong::Map::Buildings::BuildingsState::someLaddermanFunction1 + // label: someLaddermanFunction1 + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040E120 = 0x0040E120, - // label: setupTunnelersGuildCampgroundPositions + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40e330 + // label: computeTunnelersCampgroundPositions + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040E330 = 0x0040E330, - // label: findFreeTunnelerAssemblyTile + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40e410 + // label: findTunnelerMusterTile + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040E410 = 0x0040E410, // type: function SHC_3BB0A8C1_0x0040E550 = 0x0040E550, - // label: findFreeCathedralAssemblyTile + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40e610 + // label: findCathedralMusterTile + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040E610 = 0x0040E610, // type: function SHC_3BB0A8C1_0x0040E660 = 0x0040E660, + // label: _HoldStrong::Map::Buildings::BuildingsState::setTileRefsForOilSmelter // label: setTileRefsForOilSmelter + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040E740 = 0x0040E740, // type: function SHC_3BB0A8C1_0x0040E760 = 0x0040E760, - // label: isEngineerNotAtAssignedWorkTile + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40e900 + // label: getWorkerSlotDestinationTile + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040E900 = 0x0040E900, - // label: getActiveEngineerForBuilding + // label: getActiveEngineerWorker // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040E990 = 0x0040E990, + // label: _HoldStrong::Map::Buildings::BuildingsState::setNewOnFarmDestination // label: setNewOnFarmDestination + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040EA00 = 0x0040EA00, + // label: _HoldStrong::Map::Buildings::BuildingsState::growHops // label: growHops + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040EBF0 = 0x0040EBF0, // type: function SHC_3BB0A8C1_0x0040EC20 = 0x0040EC20, - // label: updateHopsFieldTileGraphics + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40edf0 + // label: updateFarmCropTileGraphics + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040EDF0 = 0x0040EDF0, // type: function SHC_3BB0A8C1_0x0040EE30 = 0x0040EE30, - // label: harmHopFarmsOfPlayer + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40ef40 + // label: harvestHopFarm + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040EF40 = 0x0040EF40, - // label: updateBuildingAreaTileGraphics + // label: updateFarmFieldTileGraphics // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040EFD0 = 0x0040EFD0, + // label: _HoldStrong::Map::Buildings::BuildingsState::setDairyFarmCheeseCounter // label: setDairyFarmCheeseCounter + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F040 = 0x0040F040, - // label: harmAppleFarmTreesOfPlayer + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40f090 + // label: regrowAppleFarmOrchard + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F090 = 0x0040F090, + // label: _HoldStrong::Map::Buildings::BuildingsState::setSignpostDataForBuildings // label: setSignpostDataForBuildings + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F1E0 = 0x0040F1E0, + // label: _HoldStrong::Map::Buildings::BuildingsState::destroySignpostData // label: destroySignpostData + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F240 = 0x0040F240, - // label: updateBuildingSignpostCounter + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40f360 + // label: setBuildingDisplayState + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F360 = 0x0040F360, + // label: _HoldStrong::Map::Buildings::BuildingsState::setBuildingToAppleFarm // label: setBuildingToAppleFarm + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F3D0 = 0x0040F3D0, - // label: clearBuildingValueWhenStateIsTwo + // label: _HoldStrong::Map::Buildings::BuildingsState::setBuildingValueBasedOnBuildingStateBeing2 + // label: setBuildingValueBasedOnBuildingStateBeing2 + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F3F0 = 0x0040F3F0, @@ -5616,51 +5912,73 @@ enum { // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F440 = 0x0040F440, + // label: _HoldStrong::Map::Buildings::BuildingsState::determinePeasantSitPosition // label: determinePeasantSitPosition + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F460 = 0x0040F460, - // label: refreshAllBuildingTileDisplays + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40f4f0 + // label: refreshAllBuildingDisplayLayers + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F4F0 = 0x0040F4F0, + // label: _HoldStrong::Map::Buildings::BuildingsState::hasWorker // label: hasWorker + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F540 = 0x0040F540, + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40f5c0 // label: assignWorkerToBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F5C0 = 0x0040F5C0, + // label: _HoldStrong::Map::Buildings::BuildingsState::updateNeededEmployeeCount // label: updateNeededEmployeeCount + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F620 = 0x0040F620, + // label: _HoldStrong::Map::Buildings::BuildingsState::getBuildingPriority // label: getBuildingPriority + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F700 = 0x0040F700, // type: function SHC_3BB0A8C1_0x0040F730 = 0x0040F730, + // label: _HoldStrong::Map::Buildings::BuildingsState::updateAllBuildingsSnoozedState // label: updateAllBuildingsSnoozedState + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F750 = 0x0040F750, // type: function SHC_3BB0A8C1_0x0040F790 = 0x0040F790, + // label: _HoldStrong::Map::Buildings::BuildingsState::applySnoozedStateBasedOnPlayerData // label: applySnoozedStateBasedOnPlayerData + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F8A0 = 0x0040F8A0, + // label: _HoldStrong::Map::Buildings::BuildingsState::processBuildingIDsNeedPeasantsQueue // label: processBuildingIDsNeedPeasantsQueue + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040F9D0 = 0x0040F9D0, - // label: updateLordLadyJesterAndGhostUnits + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x40fc40 + // label: updatePlayerCourtUnits + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0040FC40 = 0x0040FC40, + // label: _HoldStrong::Map::Buildings::BuildingsState::getRequiredEngineerCountForSiegeBuilding // label: getRequiredEngineerCountForSiegeBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00410200 = 0x00410200, @@ -5736,31 +6054,43 @@ enum { SHC_3BB0A8C1_0x00410285 = 0x00410285, // type: /byte SHC_3BB0A8C1_0x00410286 = 0x00410286, + // label: _HoldStrong::Map::Buildings::BuildingsState::updateVisuallyActiveState // label: updateVisuallyActiveState + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00410290 = 0x00410290, + // label: _HoldStrong::Map::Buildings::BuildingsState::updateRepairCostAndReturnIfDamaged // label: updateRepairCostAndReturnIfDamaged + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00410320 = 0x00410320, - // label: canUnitReachBuildingPerimeter + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x410440 + // label: canUnitReachBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00410440 = 0x00410440, - // label: canUnitReachAdjacentTile + // label: canUnitReachTileNeighbor // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x004105F0 = 0x004105F0, + // label: _HoldStrong::Map::Buildings::BuildingsState::processDamageToUnitsOnBuilding // label: processDamageToUnitsOnBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x004106D0 = 0x004106D0, - // label: spawnRandomFireEffectOnBuilding + // label: _HoldStrong::Map::Buildings::BuildingsState::slaveFireRelated1 + // label: spawnBuildingFirePops + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00410800 = 0x00410800, - // label: getBuildingFlammabilityFactor + // label: _HoldStrong::Map::Buildings::BuildingsState::fireRelatedBuildingParameter + // label: getBuildingFireClass + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00410920 = 0x00410920, @@ -5986,15 +6316,21 @@ enum { SHC_3BB0A8C1_0x004109E1 = 0x004109E1, // type: /byte SHC_3BB0A8C1_0x004109E2 = 0x004109E2, + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x4109f0 // label: extinguishBuildingFire + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x004109F0 = 0x004109F0, - // label: findClosestReachableAlliedBuilding + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x410b10 + // label: findNearestReachableTeamBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00410B10 = 0x00410B10, + // label: _HoldStrong::Map::Buildings::BuildingsState::playerHasBurningBuilding // label: playerHasBurningBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00410C40 = 0x00410C40, @@ -6196,11 +6532,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00416F80 = 0x00416F80, - // label: validateBuildingTetheredUnits + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x4173d0 + // label: revalidateBuildingOccupants + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x004173D0 = 0x004173D0, - // label: removeTetheredUnitFromBuilding + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x417450 + // label: removeOccupantFromBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00417450 = 0x00417450, @@ -6296,11 +6636,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00418C80 = 0x00418C80, - // label: getRequiredEngineersCount + // label: _HoldStrong::Map::Buildings::BuildingsState::requiredEngineersCount + // label: requiredEngineersCount + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00418EC0 = 0x00418EC0, - // label: UpdateBadBuildingCessPitOrDancingBearUnk + // label: _HoldStrong::Global::UpdateBadBuildingCessPitOrDancingBearUnk + // label: resetBuildingDisplayAnimation + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00418F70 = 0x00418F70, @@ -6344,43 +6688,57 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004196D0 = 0x004196D0, + // label: _HoldStrong::Map::Buildings::BuildingsState::initBuildingCosts // label: initBuildingCosts + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419780 = 0x00419780, // type: function SHC_3BB0A8C1_0x00419790 = 0x00419790, + // label: _HoldStrong::Map::Buildings::BuildingsState::updatePathLinkageLayerForAllBuildings // label: updatePathLinkageLayerForAllBuildings + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x004197C0 = 0x004197C0, + // label: _HoldStrong::Map::Buildings::BuildingsState::processDamageFromKillingPit // label: processDamageFromKillingPit + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419800 = 0x00419800, - // label: updatePathLinkageTileMap + // label: _HoldStrong::Map::Buildings::BuildingsState::unkUpdatePathLinkageTileMap + // label: unkUpdatePathLinkageTileMap + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419960 = 0x00419960, - // label: initializeGatePathfindingForOwner + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x419a30 + // label: initPlayerGatehousePathLinks + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419A30 = 0x00419A30, - // label: rebuildTileLogicLayerForGatesAndWalls + // label: applyWallMoatTilesToMap // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419AC0 = 0x00419AC0, // type: function SHC_3BB0A8C1_0x00419AE0 = 0x00419AE0, - // label: rebuildTileLogicLayerForKeeps + // label: markKeepTilesInLogicLayer // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419BE0 = 0x00419BE0, + // label: _HoldStrong::Map::Buildings::BuildingsState::updatePathLinkageForGatesKeepsSiegeTowers // label: updatePathLinkageForGatesKeepsSiegeTowers + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419C70 = 0x00419C70, + // label: _HoldStrong::Map::Buildings::BuildingsState::updateEnemyBuildings // label: updateEnemyBuildings + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419D70 = 0x00419D70, @@ -6578,11 +6936,13 @@ enum { SHC_3BB0A8C1_0x00419EA1 = 0x00419EA1, // type: /byte SHC_3BB0A8C1_0x00419EA2 = 0x00419EA2, - // label: aiFindBuildingToAttack + // label: AIfindBuildingToAttack + // label: _HoldStrong::Map::Buildings::BuildingsState::AIfindBuildingToAttack + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419EB0 = 0x00419EB0, - // label: findClosestEnemyBuildingWithinRadius + // label: findNearestEnemyBuildingInRadius // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00419FA0 = 0x00419FA0, @@ -6884,23 +7244,33 @@ enum { // location: OpenSHC/IO // type: function SHC_3BB0A8C1_0x0041A740 = 0x0041A740, - // label: constructBuildingsState + // label: Constructor_BuildingsState + // label: _HoldStrong::Map::Buildings::BuildingsState::Constructor_BuildingsState + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041A760 = 0x0041A760, + // label: _HoldStrong::Map::Buildings::BuildingsState::destroyBuilding // label: destroyBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041A7A0 = 0x0041A7A0, + // label: _HoldStrong::Map::Buildings::BuildingsState::destroyBuildings // label: destroyBuildings + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041A860 = 0x0041A860, + // label: _HoldStrong::Map::Buildings::BuildingsState::swapOwnersOfCastle // label: swapOwnersOfCastle + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041A8D0 = 0x0041A8D0, + // label: _HoldStrong::Map::Buildings::BuildingsState::determineBuildingEntranceFromKeepArea // label: determineBuildingEntranceFromKeepArea + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041ADE0 = 0x0041ADE0, @@ -6909,81 +7279,115 @@ enum { SHC_3BB0A8C1_0x0041B11E = 0x0041B11E, // type: function SHC_3BB0A8C1_0x0041B190 = 0x0041B190, + // label: _HoldStrong::Map::Buildings::BuildingsState::determineBuildingEntranceFromCustomArea // label: determineBuildingEntranceFromCustomArea + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041B2B0 = 0x0041B2B0, // type: function SHC_3BB0A8C1_0x0041B6A0 = 0x0041B6A0, - // label: computeBuildingEntranceFlagsForOrientations + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x41b7c0 + // label: updateBuildingBlockedAccessTiles + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041B7C0 = 0x0041B7C0, + // label: _HoldStrong::Map::Buildings::BuildingsState::findQuarryPileLocation // label: findQuarryPileLocation + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041B890 = 0x0041B890, + // label: _HoldStrong::Map::Buildings::BuildingsState::hasBuildingAsNeighbour // label: hasBuildingAsNeighbour + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041B940 = 0x0041B940, + // label: _HoldStrong::Map::Buildings::BuildingsState::findParticularBuilding // label: findParticularBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041BA00 = 0x0041BA00, - // label: findAccessibleAreaNearBuildingLocation + // label: _HoldStrong::Map::Buildings::BuildingsState::getAreaForSurroundingTileUnk + // label: getBuildingEntranceAreaID + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041BAB0 = 0x0041BAB0, + // label: _HoldStrong::Map::Buildings::BuildingsState::addResourceToStockpile // label: addResourceToStockpile + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041BB30 = 0x0041BB30, + // label: _HoldStrong::Map::Buildings::BuildingsState::addResourceToGranary // label: addResourceToGranary + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041BC10 = 0x0041BC10, + // label: _HoldStrong::Map::Buildings::BuildingsState::addResourceToArmory // label: addResourceToArmory + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041BCA0 = 0x0041BCA0, + // label: _HoldStrong::Map::Buildings::BuildingsState::processResourceLoss // label: processResourceLoss + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041BD70 = 0x0041BD70, // type: function SHC_3BB0A8C1_0x0041BE30 = 0x0041BE30, + // label: _HoldStrong::Map::Buildings::BuildingsState::subtractResourcesStoredInBuilding // label: subtractResourcesStoredInBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041BF50 = 0x0041BF50, // type: function SHC_3BB0A8C1_0x0041BF90 = 0x0041BF90, + // label: _HoldStrong::Map::Buildings::BuildingsState::processPlacementResourceLossForBuildingType // label: processPlacementResourceLossForBuildingType + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041BFD0 = 0x0041BFD0, + // label: _HoldStrong::Map::Buildings::BuildingsState::processWallBuildingLoss // label: processWallBuildingLoss + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041C190 = 0x0041C190, - // label: applyFoodLossPercentageToPlayer + // label: removeFoodResourcesByPercent // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041C240 = 0x0041C240, + // label: _HoldStrong::Map::Buildings::BuildingsState::processResourceGain // label: processResourceGain + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041C310 = 0x0041C310, - // label: applyGateOrDrawbridgeOpenCloseChange + // label: ApplyGateOrDrawbridgeOpenCloseChange + // label: _HoldStrong::Map::Buildings::BuildingsState::ApplyGateOrDrawbridgeOpenCloseChange + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041C570 = 0x0041C570, + // label: _HoldStrong::Map::Buildings::BuildingsState::sortBuildingIDsNeedPeasantsQueue // label: sortBuildingIDsNeedPeasantsQueue + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041C6F0 = 0x0041C6F0, + // label: _HoldStrong::Map::Buildings::BuildingsState::lightUpBuilding // label: lightUpBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x0041C810 = 0x0041C810, @@ -7117,11 +7521,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00420A30 = 0x00420A30, - // label: upgradeBuildingsForMapVersion + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x420bf0 + // label: migrateBuildingsForMapVersion + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00420BF0 = 0x00420BF0, + // label: _HoldStrong::Map::Buildings::BuildingsState::setupBuildingData // label: setupBuildingData + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00420D20 = 0x00420D20, @@ -7391,41 +7799,63 @@ enum { SHC_3BB0A8C1_0x00421881 = 0x00421881, // type: /byte SHC_3BB0A8C1_0x00421882 = 0x00421882, + // label: _HoldStrong::Map::Buildings::BuildingsState::deleteBuilding // label: deleteBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00421890 = 0x00421890, - // label: destroyBuildingAndLinkedDuplicates + // label: _HoldStrong::Map::Buildings::BuildingsState::someBuildingDestroyFunction + // label: someBuildingDestroyFunction + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00421990 = 0x00421990, + // label: _HoldStrong::Map::Buildings::BuildingsState::buildingIsAccessible // label: buildingIsAccessible + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00421A40 = 0x00421A40, - // label: resolveBuildingEntryAccessibility + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x421be0 + // label: checkBuildingAccessFromArea + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00421BE0 = 0x00421BE0, + // label: _HoldStrong::Map::Buildings::BuildingsState::giveBackResourceForDestroyedBuilding // label: giveBackResourceForDestroyedBuilding + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00421D70 = 0x00421D70, + // label: _HoldStrong::Map::Buildings::BuildingsState::getBuildingThatCanStoreThisResource // label: getBuildingThatCanStoreThisResource + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00422230 = 0x00422230, + // label: _HoldStrong::Map::Buildings::BuildingsState::getArmoryWithSpaceLeft // label: getArmoryWithSpaceLeft + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00422370 = 0x00422370, + // label: findAccessibleArmoryWithSpace + // location: + // type: function + SHC_3BB0A8C1_0x00422396 = 0x00422396, + // label: _HoldStrong::Map::Buildings::BuildingsState::findQuarryPileThatIsCloseAndHasMostStone // label: findQuarryPileThatIsCloseAndHasMostStone + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00422400 = 0x00422400, // type: function SHC_3BB0A8C1_0x00422430 = 0x00422430, - // label: updateGateDrawBridgeOpenCloseLogic + // label: UpdateGateDrawBridgeOpenCloseLogic + // label: _HoldStrong::Map::Buildings::BuildingsState::UpdateGateDrawBridgeOpenCloseLogic + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x004224F0 = 0x004224F0, @@ -7435,17 +7865,23 @@ enum { SHC_3BB0A8C1_0x00422830 = 0x00422830, // type: function SHC_3BB0A8C1_0x00422A70 = 0x00422A70, + // label: _HoldStrong::Map::Buildings::BuildingsState::checkBuildingsNeedPeasants // label: checkBuildingsNeedPeasants + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00422B80 = 0x00422B80, - // label: spreadFireRandomlyToBuildings + // label: _HoldStrong::Map::Buildings::BuildingsState::randomFireSpreadToBuildingsUnk + // label: igniteRandomPlayerBuildings + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00422C60 = 0x00422C60, // type: function SHC_3BB0A8C1_0x00422D10 = 0x00422D10, + // label: _HoldStrong::Map::Buildings::BuildingsState::updateBuildings // label: updateBuildings + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00422E20 = 0x00422E20, @@ -7543,83 +7979,122 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004240D0 = 0x004240D0, - // label: recomputeAccessibilityForAllBuildings + // label: _HoldStrong::Map::Buildings::BuildingsState::meth_0x424220 + // label: recomputeAllBuildingAccessibility + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00424220 = 0x00424220, + // label: _HoldStrong::Map::Buildings::BuildingsState::updateHeatmapBasedOnBuildingAccessibility // label: updateHeatmapBasedOnBuildingAccessibility + // location: // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00424270 = 0x00424270, - // label: applyVersionUpgradeAccessibilityRecompute + // label: recomputeBuildingAccessibilityOnLoad // location: OpenSHC/Map/Buildings/BuildingsState // type: function SHC_3BB0A8C1_0x00424310 = 0x00424310, + // label: ?SetItem@CListCtrl@@QAEHHHIPB_WHIIJ@Z + // label: _HoldStrong::Text::TextManager::renderInGameText // label: renderInGameText + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424320 = 0x00424320, + // label: _HoldStrong::Text::TextManager::renderTextToScreen2 // label: renderTextToScreen2 + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424360 = 0x00424360, + // label: _HoldStrong::Text::TextManager::renderText // label: renderText + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424390 = 0x00424390, + // label: _HoldStrong::Text::TextManager::renderText2 // label: renderText2 + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x004243E0 = 0x004243E0, + // label: _HoldStrong::Text::TextManager::renderInGameText2 // label: renderInGameText2 + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424420 = 0x00424420, + // label: _HoldStrong::Text::TextManager::renderTextFromTextGroup // label: renderTextFromTextGroup + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424470 = 0x00424470, + // label: _HoldStrong::Text::TextManager::renderMultilineText2 // label: renderMultilineText2 + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x004244C0 = 0x004244C0, - // label: renderMultilineTextUnk + // label: _HoldStrong::Text::TextManager::renderMultilineTextUnk + // label: renderMultilineTextFromGroupWithBlend + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424500 = 0x00424500, - // label: renderMultilineText2Unk + // label: _HoldStrong::Text::TextManager::renderMultilineText2Unk + // label: renderMultilineTextFromGroup + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424540 = 0x00424540, - // label: renderMultilineText3Unk + // label: _HoldStrong::Text::TextManager::renderMultilineText3Unk + // label: renderMultilineTextFromGroupWithShadow + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424580 = 0x00424580, - // label: renderMultilineText4Unk + // label: _HoldStrong::Text::TextManager::renderMultilineText4Unk + // label: renderMultilineTextFromGroupNoSpacing + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x004245D0 = 0x004245D0, + // label: _HoldStrong::Text::TextManager::renderNumber // label: renderNumber + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424620 = 0x00424620, + // label: _HoldStrong::Text::TextManager::renderLeftAlignedNumberToScreen // label: renderLeftAlignedNumberToScreen + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424650 = 0x00424650, + // label: _HoldStrong::Text::TextManager::renderNumberToScreen // label: renderNumberToScreen + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00424680 = 0x00424680, + // label: _HoldStrong::Text::TextManager::computeTextWidthForTextGroup // label: computeTextWidthForTextGroup + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x004246B0 = 0x004246B0, + // label: _HoldStrong::UI::Rendering::AlphaAndButtonSurface::renderNonInteractingButtonBackground // label: renderNonInteractingButtonBackground + // location: // location: OpenSHC/UI/Rendering/AlphaAndButtonSurface // type: function SHC_3BB0A8C1_0x004246E0 = 0x004246E0, - // label: endSpeechStreamsAndResetLoopFlags + // label: _HoldStrong::Audio::MSS::SoundSystem::meth_0x424700 + // label: stopSpeechStreams + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00424700 = 0x00424700, @@ -7801,11 +8276,15 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004266E0 = 0x004266E0, - // label: MenuItemRenderFunction_UnusedSetName_ButtonsUnk + // label: MenuItemRenderFunction_UnusedSetName_Buttons + // label: _HoldStrong::UI::MenuItemRenderFunction_UnusedSetName_ButtonsUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00426750 = 0x00426750, - // label: MenuItemActionHandler_UnusedSetName_ButtonsUnk + // label: MenuItemActionHandler_UnusedSetName_Buttons + // label: _HoldStrong::UI::MenuItemActionHandler_UnusedSetName_ButtonsUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004267F0 = 0x004267F0, @@ -7841,15 +8320,21 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00426ED0 = 0x00426ED0, - // label: MenuView_UnusedSomeMissionStartUnk_Prepare + // label: MenuView_UnusedSomeMissionStart_Prepare + // label: _HoldStrong::UI::MenuView_UnusedSomeMissionStartUnk_Prepare + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00426F80 = 0x00426F80, - // label: MenuItemRenderFunction_UnusedSomeMissionStartUnk_General + // label: MenuItemRenderFunction_UnusedSomeMissionStart_General + // label: _HoldStrong::UI::MenuItemRenderFunction_UnusedSomeMissionStartUnk_General + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00426FB0 = 0x00426FB0, - // label: MenuItemActionHandler_UnusedSomeMissionStartUnk_General + // label: MenuItemActionHandler_UnusedSomeMissionStart_General + // label: _HoldStrong::UI::MenuItemActionHandler_UnusedSomeMissionStartUnk_General + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00427080 = 0x00427080, @@ -7857,7 +8342,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00427110 = 0x00427110, - // label: MainMenu_Unknown21_Prepare + // label: MenuView_MainMenuModal21_Prepare + // label: _HoldStrong::Global::MainMenu_Unknown21_Prepare + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00427180 = 0x00427180, @@ -7869,11 +8356,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00427210 = 0x00427210, - // label: MenuView_Unknown61ReturnToSkrimishMenuUnk_DoInitial + // label: MenuView_ReturnToSkirmishMenu61_DoInitial + // label: _HoldStrong::UI::MenuView_Unknown61ReturnToSkrimishMenuUnk_DoInitial + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00427240 = 0x00427240, - // label: MenuView_Unknown61ReturnToSkrimishMenuUnk_DoEveryFrame + // label: MenuView_ReturnToSkirmishMenu61_DoEveryFrame + // label: _HoldStrong::UI::MenuView_Unknown61ReturnToSkrimishMenuUnk_DoEveryFrame + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004272C0 = 0x004272C0, @@ -8022,8 +8513,10 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00429A40 = 0x00429A40, + // label: sendChatMessageCommand + // location: // type: function - SHC_3BB0A8C1_0x0042A380 = 0x0042A380, + SHC_3BB0A8C1_0x0042A37B = 0x0042A37B, // type: /undefined *32 SHC_3BB0A8C1_0x0042A460 = 0x0042A460, // type: /undefined *32 @@ -8080,7 +8573,9 @@ enum { SHC_3BB0A8C1_0x0042AC34 = 0x0042AC34, // type: /undefined *32 SHC_3BB0A8C1_0x0042AC38 = 0x0042AC38, - // label: MenuItemRenderFunction_LobbyMenu_Unknown + // label: MenuItemRenderFunction_LobbyMenu_ConstructionCostText + // label: _HoldStrong::UI::MenuItemRenderFunction_LobbyMenu_Unknown + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0042AC40 = 0x0042AC40, @@ -8592,7 +9087,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0042C060 = 0x0042C060, - // label: MenuView_Unknown33_DoEveryFrame + // label: MenuView_LobbyReadyLaunchGame_DoEveryFrame + // label: _HoldStrong::UI::MenuView_Unknown33_DoEveryFrame + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0042C090 = 0x0042C090, @@ -8608,11 +9105,15 @@ enum { SHC_3BB0A8C1_0x0042C2F0 = 0x0042C2F0, // type: function SHC_3BB0A8C1_0x0042C450 = 0x0042C450, - // label: SomeSiegeRelatedCopying + // label: _HoldStrong::UI::Helpers::SomeSiegeRelatedCopying + // label: loadSiegeScenarioInfo + // location: // location: OpenSHC/UI/Helpers // type: function SHC_3BB0A8C1_0x0042C540 = 0x0042C540, - // label: LaunchSinglePlayerGameUnk + // label: _HoldStrong::Global::LaunchSinglePlayerGameUnk + // label: launchSinglePlayerGame + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0042C620 = 0x0042C620, @@ -9866,10 +10367,6 @@ enum { SHC_3BB0A8C1_0x0042E900 = 0x0042E900, // type: function SHC_3BB0A8C1_0x0042E95F = 0x0042E95F, - // type: function - SHC_3BB0A8C1_0x0042E96A = 0x0042E96A, - // type: function - SHC_3BB0A8C1_0x0042EA59 = 0x0042EA59, // label: MenuItemRenderFunction_MapEditorProperties_MapDescriptionBox // location: OpenSHC/UI // type: function @@ -11254,10 +11751,6 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00430550 = 0x00430550, - // type: function - SHC_3BB0A8C1_0x004305B0 = 0x004305B0, - // type: function - SHC_3BB0A8C1_0x004305CF = 0x004305CF, // label: MenuItemActionHandler_UnusedChooseGameType_Main // location: OpenSHC/UI // type: function @@ -12304,7 +12797,9 @@ enum { SHC_3BB0A8C1_0x00431989 = 0x00431989, // type: /byte SHC_3BB0A8C1_0x0043198A = 0x0043198A, - // label: ResetSomeValuesFunctionUnk + // label: _HoldStrong::Global::ResetSomeValuesFunctionUnk + // label: resetGameUIStateOnMenuSwitch + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00431990 = 0x00431990, @@ -12320,11 +12815,15 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00433030 = 0x00433030, - // label: MenuItemActionHandler_BuildMenu_SomeKeepAndGranaryCheckUnk + // label: MenuItemActionHandler_BuildMenu_RedirectFromWitchHoistIfHasKeep + // label: _HoldStrong::UI::MenuItemActionHandler_BuildMenu_SomeKeepAndGranaryCheckUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00433200 = 0x00433200, - // label: MenuItemActionHandler_InGameMenu_UnknownBinkRelated + // label: MenuItemActionHandler_InGameMenu_SkipBinkVideo + // label: _HoldStrong::UI::MenuItemActionHandler_InGameMenu_UnknownBinkRelated + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00433230 = 0x00433230, @@ -12380,9 +12879,12 @@ enum { SHC_3BB0A8C1_0x00434120 = 0x00434120, // label: AdjustViewPortAndMore // location: OpenSHC/Global + // type: function SHC_3BB0A8C1_0x004341D9 = 0x004341D9, // type: function SHC_3BB0A8C1_0x004341E1 = 0x004341E1, + // type: function + SHC_3BB0A8C1_0x004341E7 = 0x004341E7, // type: /undefined *32 SHC_3BB0A8C1_0x0043420C = 0x0043420C, // type: /undefined *32 @@ -12403,7 +12905,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00434230 = 0x00434230, - // label: MenuItemActionHandler_General_Unknown2 + // label: MenuItemActionHandler_General_SetPreviousMenuTab + // label: _HoldStrong::UI::MenuItemActionHandler_General_Unknown2 + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00434260 = 0x00434260, @@ -12427,25 +12931,23 @@ enum { // location: OpenSHC/UI/Helpers // type: function SHC_3BB0A8C1_0x004347F0 = 0x004347F0, - // label: MenuItemActionHandler_InGameMenu_UnitSelectionAndControlsUnk + // label: MenuItemActionHandler_InGameMenu_UnitSelectionAndControls + // label: _HoldStrong::UI::MenuItemActionHandler_InGameMenu_UnitSelectionAndControlsUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004348D0 = 0x004348D0, // type: function - SHC_3BB0A8C1_0x00434F28 = 0x00434F28, - // type: function - SHC_3BB0A8C1_0x00435324 = 0x00435324, - // type: function - SHC_3BB0A8C1_0x00435360 = 0x00435360, - // type: function - SHC_3BB0A8C1_0x00435753 = 0x00435753, + SHC_3BB0A8C1_0x00434FE0 = 0x00434FE0, // label: LAB_moveToTileUI // location: SHC_3BB0A8C1_0x004363CA = 0x004363CA, // type: function - SHC_3BB0A8C1_0x004368A3 = 0x004368A3, - // type: function SHC_3BB0A8C1_0x004369A0 = 0x004369A0, + // type: function + SHC_3BB0A8C1_0x0043783F = 0x0043783F, + // type: function + SHC_3BB0A8C1_0x00437851 = 0x00437851, // type: /pointer[2] SHC_3BB0A8C1_0x004378AC = 0x004378AC, // type: /byte[15] @@ -13600,8 +14102,8 @@ enum { SHC_3BB0A8C1_0x00437CAC = 0x00437CAC, // type: /pointer SHC_3BB0A8C1_0x00437CB0 = 0x00437CB0, - // label: HandleWallTerrainMouseDrag - // location: OpenSHC/UI + // label: handleWallPlacementDrag + // location: // type: function SHC_3BB0A8C1_0x00437CC0 = 0x00437CC0, // label: MenuItemActionHandler_InGameMenu_TriggerPlaceWallCommand @@ -13876,7 +14378,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004387D0 = 0x004387D0, - // label: MenuItemActionHandler_InGameMenu_RightClickMenuAndMaybeResets + // label: MenuItemActionHandler_InGameMenu_RightClickDragAndMouseReset + // label: _HoldStrong::UI::MenuItemActionHandler_InGameMenu_RightClickMenuAndMaybeResets + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00438B60 = 0x00438B60, @@ -14346,7 +14850,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004398B0 = 0x004398B0, - // label: MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Countdown + // label: MenuItemActionHandler_BuildingAndStatusMenu_SetCountdown + // label: _HoldStrong::UI::MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Countdown + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0043A850 = 0x0043A850, @@ -14520,7 +15026,9 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x0043CB90 = 0x0043CB90, - // label: RenderPeasantMenu_CurrentActionUnk + // label: _HoldStrong::UI::Rendering::RenderPeasantMenu_CurrentActionUnk + // label: renderUnitCurrentActionText + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x0043CC30 = 0x0043CC30, @@ -14710,7 +15218,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0043E4E0 = 0x0043E4E0, - // label: SomePopularityRelatedComputation + // label: _HoldStrong::UI::Helpers::SomePopularityRelatedComputation + // label: getPopularityAdvisorIndex + // location: // location: OpenSHC/UI/Helpers // type: function SHC_3BB0A8C1_0x0043E540 = 0x0043E540, @@ -14718,7 +15228,9 @@ enum { // location: OpenSHC/UI/Helpers // type: function SHC_3BB0A8C1_0x0043E5A0 = 0x0043E5A0, - // label: SomeGoldRelatedComputation + // label: _HoldStrong::UI::Helpers::SomeGoldRelatedComputation + // label: getGoldAdvisorSpeechIndex + // location: // location: OpenSHC/UI/Helpers // type: function SHC_3BB0A8C1_0x0043E5F0 = 0x0043E5F0, @@ -14726,7 +15238,9 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x0043E6C0 = 0x0043E6C0, - // label: MenuItemActionHandler_BuildingAndStatusMenu_PopularityMenuSwitchButtonUnk + // label: MenuItemActionHandler_BuildingAndStatusMenu_TogglePopularityPage + // label: _HoldStrong::UI::MenuItemActionHandler_BuildingAndStatusMenu_PopularityMenuSwitchButtonUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0043F2B0 = 0x0043F2B0, @@ -14788,7 +15302,7 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00440280 = 0x00440280, - // label: CountPlayerUnitsByType + // label: countPlayerUnitsByType // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00440360 = 0x00440360, @@ -14800,7 +15314,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00440400 = 0x00440400, - // label: MenuItemFunction_General_Unknown + // label: MenuItemFunction_ClearStopHandling + // label: _HoldStrong::UI::MenuItemFunction_General_Unknown + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00440410 = 0x00440410, @@ -14836,7 +15352,9 @@ enum { SHC_3BB0A8C1_0x004409B0 = 0x004409B0, // type: /undefined *32 SHC_3BB0A8C1_0x004409B4 = 0x004409B4, - // label: MenuView_Unknown61ReturnToSkrimishMenuUnk_Prepare + // label: MenuView_ReturnToSkirmishMenu61_Prepare + // label: _HoldStrong::UI::MenuView_Unknown61ReturnToSkrimishMenuUnk_Prepare + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004409C0 = 0x004409C0, @@ -16692,8 +17210,6 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004451C0 = 0x004451C0, - // type: function - SHC_3BB0A8C1_0x0044544B = 0x0044544B, // type: /pointer SHC_3BB0A8C1_0x004467CC = 0x004467CC, // type: /pointer @@ -17833,87 +18349,123 @@ enum { SHC_3BB0A8C1_0x00449B0C = 0x00449B0C, // type: /undefined *32 SHC_3BB0A8C1_0x00449B10 = 0x00449B10, + // label: _HoldStrong::Audio::SFX::SFXState::freeMemoryAt // label: freeMemoryAt + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x00449B20 = 0x00449B20, + // label: _HoldStrong::Audio::SFX::SFXState::loadWavSounds // label: loadWavSounds + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x00449B30 = 0x00449B30, - // label: setUpSFXToPlayUnk + // label: _HoldStrong::Audio::SFX::SFXState::setUpSFXToPlayUnk + // label: scheduleSFXWithVariation + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x00449C40 = 0x00449C40, + // label: _HoldStrong::Audio::SFX::SFXState::setSoundWithVariation // label: setSoundWithVariation + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x00449CC0 = 0x00449CC0, + // label: _HoldStrong::Audio::SFX::SFXState::scheduleSFXVariation // label: scheduleSFXVariation + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x00449D50 = 0x00449D50, + // label: _HoldStrong::Audio::SFX::SFXState::playSFXAtLocation // label: playSFXAtLocation + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x00449DC0 = 0x00449DC0, + // label: _HoldStrong::Audio::SFX::SFXState::someVolumeAdjustmentFunction // label: someVolumeAdjustmentFunction + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x00449F10 = 0x00449F10, - // label: resetScheduledSoundRequests - // location: OpenSHC/Audio/SFX/SFXState + // label: resetSoundRequestSlots + // location: // type: function SHC_3BB0A8C1_0x00449FF0 = 0x00449FF0, // type: function SHC_3BB0A8C1_0x0044A010 = 0x0044A010, - // label: resetAmbientEventCounters + // label: _HoldStrong::Audio::SFX::SFXState::meth_0x44a050 + // label: resetAmbientSoundCounters + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A050 = 0x0044A050, + // label: _HoldStrong::Audio::SFX::SFXState::notifyAmbientSoundEvent // label: notifyAmbientSoundEvent + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A0D0 = 0x0044A0D0, - // label: playAmbientSoundStreamUnk + // label: _HoldStrong::Audio::SFX::SFXState::playAmbientSoundStreamUnk + // label: playAmbientSFXStream + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A0F0 = 0x0044A0F0, - // label: playAmbientSoundStream2Unk + // label: _HoldStrong::Audio::SFX::SFXState::playAmbientSoundStream2Unk + // label: playAmbientSFXStream2 + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A1B0 = 0x0044A1B0, + // label: _HoldStrong::Audio::SFX::SFXState::getSoundVolumeForFilename // label: getSoundVolumeForFilename + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A240 = 0x0044A240, + // label: _HoldStrong::Audio::SFX::SFXState::playUnitSpeechEffect // label: playUnitSpeechEffect + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A290 = 0x0044A290, // type: function SHC_3BB0A8C1_0x0044A360 = 0x0044A360, // label: PlaySpeechSFX + // label: _HoldStrong::Audio::SFX::SFXState::PlaySpeechSFX + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A3A0 = 0x0044A3A0, + // label: _HoldStrong::Audio::SFX::SFXState::playWAVSFX // label: playWAVSFX + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A460 = 0x0044A460, + // label: _HoldStrong::Audio::SFX::SFXState::playOnSpeechSfxStream // label: playOnSpeechSfxStream + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A500 = 0x0044A500, + // label: _HoldStrong::Audio::SFX::SFXState::playSpeechSFX // label: playSpeechSFX + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A5A0 = 0x0044A5A0, - // label: playVictoryMusic678 - // location: OpenSHC/Audio/SFX/SFXState + // label: playVictoryMusicSequence + // location: // type: function SHC_3BB0A8C1_0x0044A620 = 0x0044A620, + // label: _HoldStrong::Audio::SFX::SFXState::playSFXWeAreUnderAttack // label: playSFXWeAreUnderAttack + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044A6E0 = 0x0044A6E0, @@ -17942,19 +18494,25 @@ enum { // type: function SHC_3BB0A8C1_0x0044AAB0 = 0x0044AAB0, // label: Constructor_SFXState + // label: _HoldStrong::Audio::SFX::SFXState::Constructor_SFXState + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044AB70 = 0x0044AB70, + // label: _HoldStrong::Audio::SFX::SFXState::tweakVolume // label: tweakVolume + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044ABB0 = 0x0044ABB0, + // label: _HoldStrong::Audio::SFX::SFXState::readVolumeFileAndSetupSoundVolumes // label: readVolumeFileAndSetupSoundVolumes + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044AE90 = 0x0044AE90, - // label: playUnitSpeech - // location: OpenSHC/Audio/SFX/SFXState + // label: PlayUnitSpeech + // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0044B210 = 0x0044B210, // type: /undefined *32 @@ -18177,11 +18735,15 @@ enum { SHC_3BB0A8C1_0x0044B840 = 0x0044B840, // type: function SHC_3BB0A8C1_0x0044B890 = 0x0044B890, + // label: _HoldStrong::Audio::SFX::SFXState::loadSFX // label: loadSFX + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044BCA0 = 0x0044BCA0, + // label: _HoldStrong::Audio::SFX::SFXState::updateAmbientSoundStream // label: updateAmbientSoundStream + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044BCE0 = 0x0044BCE0, @@ -18205,71 +18767,105 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0044C410 = 0x0044C410, - // label: soundRelatedMethod1 + // label: _HoldStrong::Audio::SFX::SFXState::soundRelatedMethod1 + // label: updateSFXAndPlayQueuedSounds + // location: // location: OpenSHC/Audio/SFX/SFXState // type: function SHC_3BB0A8C1_0x0044C740 = 0x0044C740, // label: Destructor_TextureRenderCore + // label: _HoldStrong::UI::Rendering::TextureRenderCore::Destructor_TextureRenderCore + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044C7E0 = 0x0044C7E0, - // label: drawLoadingBarUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::drawLoadingBarUnk + // label: drawLoadingProgressBar + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044C850 = 0x0044C850, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformGmColorTableFromRGB555To565IfRequired // label: transformGmColorTableFromRGB555To565IfRequired + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044C8F0 = 0x0044C8F0, - // label: transformRawWithMarkerUnkToRGB555To565 + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformRawWithMarkerUnkToRGB555To565 + // label: convertImageRGB555ToRGB565 + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044C940 = 0x0044C940, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformTgxFromRGB555ToRGB565 // label: transformTgxFromRGB555ToRGB565 + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044C9C0 = 0x0044C9C0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformTileObjectToRGB565 // label: transformTileObjectToRGB565 + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CAE0 = 0x0044CAE0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformRawToRGB555To565 // label: transformRawToRGB555To565 + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CB60 = 0x0044CB60, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformBGR24ToScreenColor // label: transformBGR24ToScreenColor + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CBE0 = 0x0044CBE0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::clearSomeMemory // label: clearSomeMemory + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CC30 = 0x0044CC30, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::setMapSurfaceHeightRange // label: setMapSurfaceHeightRange + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CCA0 = 0x0044CCA0, - // label: setMapSurfaceHeightRangeUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::setMapSurfaceHeightRangeUnk + // label: setMapSurfaceHeightRangeFull + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CCC0 = 0x0044CCC0, - // label: temporarySaveMapSurfaceHeightRangeUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::temporarySaveMapSurfaceHeightRangeUnk + // label: saveMapSurfaceHeightRange + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CCD0 = 0x0044CCD0, - // label: restoreMapSurfaceHeightRangeFromTemporaryUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::restoreMapSurfaceHeightRangeFromTemporaryUnk + // label: restoreMapSurfaceHeightRange + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CCF0 = 0x0044CCF0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::setScreenMenuSurfaceHeightRange // label: setScreenMenuSurfaceHeightRange + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CD10 = 0x0044CD10, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::setScreenMenuSurfaceHeightRangeToResolution // label: setScreenMenuSurfaceHeightRangeToResolution + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CD30 = 0x0044CD30, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::drawBitmapFace // label: drawBitmapFace + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CD40 = 0x0044CD40, @@ -18277,13 +18873,17 @@ enum { SHC_3BB0A8C1_0x0044CDC0 = 0x0044CDC0, // type: function SHC_3BB0A8C1_0x0044CDD0 = 0x0044CDD0, - // label: renderFacesSmallUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderFacesSmallUnk + // label: renderFaceHalfSize + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CE00 = 0x0044CE00, // type: function SHC_3BB0A8C1_0x0044CE80 = 0x0044CE80, - // label: drawBitmapFaceWithBlendUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::drawBitmapFaceWithBlendUnk + // label: drawBitmapFaceBlended + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044CEB0 = 0x0044CEB0, @@ -18295,39 +18895,57 @@ enum { SHC_3BB0A8C1_0x0044D330 = 0x0044D330, // type: function SHC_3BB0A8C1_0x0044D340 = 0x0044D340, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderFunctionResponsibleForManyGameObjects // label: renderFunctionResponsibleForManyGameObjects + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044D3D0 = 0x0044D3D0, - // label: InitBlendFilterArraysUnk + // label: _HoldStrong::Global::InitBlendFilterArraysUnk + // label: initBlendFilterTables + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0044E510 = 0x0044E510, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderInterfaceOrBuildingOccupationArea // label: renderInterfaceOrBuildingOccupationArea + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044E630 = 0x0044E630, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderBlendedBlackBox // label: renderBlendedBlackBox + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044F020 = 0x0044F020, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderGmWithPreparedAlphaMask // label: renderGmWithPreparedAlphaMask + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044F170 = 0x0044F170, - // label: renderTgxWithColorUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderTgxWithColorUnk + // label: blitTgxAsSolidColor + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044F6F0 = 0x0044F6F0, - // label: renderTgxWithColorAndBlendingUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderTgxWithColorAndBlendingUnk + // label: renderTgxTintedBlended + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044F850 = 0x0044F850, - // label: renderUnitAnimationUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderUnitAnimationUnk + // label: blitUnitSpriteRLE + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x0044FBF0 = 0x0044FBF0, - // label: renderUnitAnimationWithBlendingUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderUnitAnimationWithBlendingUnk + // label: blitUnitSpriteRLEBlended + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00451E00 = 0x00451E00, @@ -18339,55 +18957,75 @@ enum { // location: OpenSHC/Rendering // type: function SHC_3BB0A8C1_0x00453600 = 0x00453600, - // label: BlitMapImageWithVerticalClip + // label: blitGmSpriteToMapSurface // location: OpenSHC/Rendering // type: function SHC_3BB0A8C1_0x00453B00 = 0x00453B00, - // label: BlitMapImageWithVerticalClipAndYOffset + // label: blitGmSpriteToMapSurfacePartial // location: OpenSHC/Rendering // type: function SHC_3BB0A8C1_0x00454080 = 0x00454080, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::loadGfxFile // label: loadGfxFile + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454620 = 0x00454620, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::loadGFX8 // label: loadGFX8 + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454700 = 0x00454700, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::loadGfxAtBufferEnd // label: loadGfxAtBufferEnd + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x004547C0 = 0x004547C0, - // label: CheckGfxResourceExists + // label: gfxResourceExists // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x004548D0 = 0x004548D0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderLoadedGfx // label: renderLoadedGfx + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454900 = 0x00454900, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::setRenderingRectToGameResolution // label: setRenderingRectToGameResolution + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454960 = 0x00454960, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::setRenderingRect // label: setRenderingRect + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454990 = 0x00454990, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::checkIfGfxTgxStartsWithTransparentPixels // label: checkIfGfxTgxStartsWithTransparentPixels + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x004549C0 = 0x004549C0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderGfxTgxWithBlending // label: renderGfxTgxWithBlending + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x004549F0 = 0x004549F0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::drawTgxOnFlaggedSurface // label: drawTgxOnFlaggedSurface + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454A60 = 0x00454A60, - // label: loadCampaignMapGfxUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::loadCampaignMapGfxUnk + // label: loadCampaignMapPalettes + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454CB0 = 0x00454CB0, @@ -18395,99 +19033,145 @@ enum { SHC_3BB0A8C1_0x00454CE0 = 0x00454CE0, // type: function SHC_3BB0A8C1_0x00454D20 = 0x00454D20, - // label: setMenuTabIndexUnk + // label: _HoldStrong::UI::Rendering::TextureRenderCore::setMenuTabIndexUnk + // label: setActiveMenuTabIndex + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454EE0 = 0x00454EE0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::setActiveMenuTabIndexToZero // label: setActiveMenuTabIndexToZero + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454EF0 = 0x00454EF0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::moveOverlappingMenuPartsToMapSurface // label: moveOverlappingMenuPartsToMapSurface + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00454F00 = 0x00454F00, // label: Constructor_TextureRenderCore + // label: _HoldStrong::UI::Rendering::TextureRenderCore::Constructor_TextureRenderCore + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00455050 = 0x00455050, - // label: transformUncompressedImageWithMarkerUnkToRGB565 + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformUncompressedImageWithMarkerUnkToRGB565 + // label: transformUncompressedImageWithMarkerToRGB565 + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00455250 = 0x00455250, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformTgxCompressedImageToRGB565 // label: transformTgxCompressedImageToRGB565 + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00455270 = 0x00455270, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformTilesetToRGB565 // label: transformTilesetToRGB565 + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00455290 = 0x00455290, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::transformUncompressedImageToRGB565 // label: transformUncompressedImageToRGB565 + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x004552E0 = 0x004552E0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderGM // label: renderGM + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00455300 = 0x00455300, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderGMWithBlending // label: renderGMWithBlending + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00455390 = 0x00455390, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::drawTgxGmOnFlaggedSurface // label: drawTgxGmOnFlaggedSurface + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x004554A0 = 0x004554A0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderTextChar // label: renderTextChar + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00455540 = 0x00455540, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::renderGMWithAlphaMask // label: renderGMWithAlphaMask + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x004557B0 = 0x004557B0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::drawGfxOnFlaggedSurface // label: drawGfxOnFlaggedSurface + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x004558E0 = 0x004558E0, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::adaptGmColorsToRGB565IfRequired // label: adaptGmColorsToRGB565IfRequired + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00455930 = 0x00455930, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::loadGMFile // label: loadGMFile + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x004559B0 = 0x004559B0, // type: function SHC_3BB0A8C1_0x00455B70 = 0x00455B70, + // label: _HoldStrong::UI::Rendering::TextureRenderCore::loadGmFiles // label: loadGmFiles + // location: // location: OpenSHC/UI/Rendering/TextureRenderCore // type: function SHC_3BB0A8C1_0x00455C60 = 0x00455C60, + // label: _HoldStrong::Game::GameStateStructures::clearMapAndTimeAndPlayerData // label: clearMapAndTimeAndPlayerData + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00455D40 = 0x00455D40, - // label: clearCurrentResourcesAndStrongWalls + // label: _HoldStrong::Game::GameStateStructures::meth_0x455d90 + // label: resetAllPlayerResources + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00455D90 = 0x00455D90, + // label: _HoldStrong::Game::GameStateStructures::resetVariousCountsAndStatisticsAndStartGoodsAndResources // label: resetVariousCountsAndStatisticsAndStartGoodsAndResources + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00455E10 = 0x00455E10, // type: function SHC_3BB0A8C1_0x00455E40 = 0x00455E40, + // label: _HoldStrong::Game::GameStateStructures::resetCountsAndStatistics // label: resetCountsAndStatistics + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004560F0 = 0x004560F0, + // label: _HoldStrong::Game::GameStateStructures::isFullIDEqualsToMinus1 // label: isFullIDEqualsToMinus1 + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004563B0 = 0x004563B0, + // label: _HoldStrong::Game::GameStateStructures::processUnitLossStatistic // label: processUnitLossStatistic + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004563D0 = 0x004563D0, @@ -18573,63 +19257,93 @@ enum { SHC_3BB0A8C1_0x00456591 = 0x00456591, // type: /byte SHC_3BB0A8C1_0x00456592 = 0x00456592, + // label: _HoldStrong::Game::GameStateStructures::setLastEncounteredTroopUnit // label: setLastEncounteredTroopUnit + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004565A0 = 0x004565A0, + // label: _HoldStrong::Game::GameStateStructures::updateDateAndTime // label: updateDateAndTime + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00456670 = 0x00456670, + // label: _HoldStrong::Game::GameStateStructures::setMonthAndYear // label: setMonthAndYear + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00456750 = 0x00456750, - // label: clearSignpostData + // label: _HoldStrong::Game::GameStateStructures::meth_0x4567a0 + // label: resetSignpostState + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004567A0 = 0x004567A0, + // label: _HoldStrong::Game::GameStateStructures::computeSignPostEntryData // label: computeSignPostEntryData + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00456810 = 0x00456810, + // label: _HoldStrong::Game::GameStateStructures::nof_fpoints_locationFinder // label: nof_fpoints_locationFinder + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00456870 = 0x00456870, + // label: _HoldStrong::Game::GameStateStructures::calculateAttackVectorsToCampFireOfPlayer // label: calculateAttackVectorsToCampFireOfPlayer + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004568B0 = 0x004568B0, + // label: _HoldStrong::Game::GameStateStructures::meth_0x4568f0 // label: countActiveSignposts + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004568F0 = 0x004568F0, - // label: hasAnySignpost + // label: _HoldStrong::Game::GameStateStructures::meth_0x4569e0 + // label: hasAnyActiveSignpost + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004569E0 = 0x004569E0, - // label: pickRandomAccessibleSignpostEntry + // label: _HoldStrong::Game::GameStateStructures::meth_0x456ad0 + // label: pickRandomSignpostInLargeZone + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00456AD0 = 0x00456AD0, + // label: _HoldStrong::Game::GameStateStructures::clearDataAndSignpostDataIfNecessary // label: clearDataAndSignpostDataIfNecessary + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00456C50 = 0x00456C50, + // label: _HoldStrong::Game::GameStateStructures::addSignpostToBuildingEntryData // label: addSignpostToBuildingEntryData + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00456EF0 = 0x00456EF0, - // label: computeBuildingCategoryEntryPoint + // label: _HoldStrong::Game::GameStateStructures::meth_0x456fd0 + // label: setPlayerKeyBuildingRef + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00456FD0 = 0x00456FD0, - // label: validateBuildingCategoryReference + // label: _HoldStrong::Game::GameStateStructures::meth_0x4572a0 + // label: validatePlayerKeyBuildingRef + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004572A0 = 0x004572A0, + // label: _HoldStrong::Game::GameStateStructures::checkKeepEnclosed // label: checkKeepEnclosed + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004574C0 = 0x004574C0, @@ -19125,155 +19839,225 @@ enum { SHC_3BB0A8C1_0x004576D3 = 0x004576D3, // type: /byte SHC_3BB0A8C1_0x004576D4 = 0x004576D4, + // label: _HoldStrong::Game::GameStateStructures::canNavigateFromKeepToKeep // label: canNavigateFromKeepToKeep + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004576E0 = 0x004576E0, + // label: _HoldStrong::Game::GameStateStructures::canUnitsNavigateFromKeepToKeep // label: canUnitsNavigateFromKeepToKeep + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457770 = 0x00457770, + // label: _HoldStrong::Game::GameStateStructures::unitsCanMoveFromKeepOfPlayerToAnotherArea // label: unitsCanMoveFromKeepOfPlayerToAnotherArea + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457800 = 0x00457800, - // label: canKeepReachSignpostZone + // label: _HoldStrong::Game::GameStateStructures::meth_0x457870 + // label: canReachSignpostFromKeep + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457870 = 0x00457870, - // label: canKeepReachSignpostZoneViaPathfinder + // label: _HoldStrong::Game::GameStateStructures::meth_0x4578f0 + // label: canReachSignpostFromKeepWithClimb + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004578F0 = 0x004578F0, + // label: _HoldStrong::Game::GameStateStructures::updatePrimaryBuildingPlayerDataReferences // label: updatePrimaryBuildingPlayerDataReferences + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457960 = 0x00457960, + // label: _HoldStrong::Game::GameStateStructures::changePlayerOwnership // label: changePlayerOwnership + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457A70 = 0x00457A70, + // label: _HoldStrong::Game::GameStateStructures::swapOwnership // label: swapOwnership + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457AD0 = 0x00457AD0, + // label: _HoldStrong::Game::GameStateStructures::destroyPlayerCompletely // label: destroyPlayerCompletely + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457B40 = 0x00457B40, + // label: _HoldStrong::Game::GameStateStructures::checkRequiredResourcesForBuildingOrPlanToBuy // label: checkRequiredResourcesForBuildingOrPlanToBuy + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457B80 = 0x00457B80, + // label: _HoldStrong::Game::GameStateStructures::getWallTilesThatCanBeBuilt // label: getWallTilesThatCanBeBuilt + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457E80 = 0x00457E80, + // label: _HoldStrong::Game::GameStateStructures::showPopAndGoldPopup // label: showPopAndGoldPopup + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457F20 = 0x00457F20, + // label: _HoldStrong::Game::GameStateStructures::createStatsPopUpEntities // label: createStatsPopUpEntities + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00457FD0 = 0x00457FD0, + // label: _HoldStrong::Game::GameStateStructures::displayPlayerTradeVisualEffect // label: displayPlayerTradeVisualEffect + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458070 = 0x00458070, + // label: _HoldStrong::Game::GameStateStructures::spawnChicken // label: spawnChicken + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004580C0 = 0x004580C0, // type: function SHC_3BB0A8C1_0x004580F0 = 0x004580F0, + // label: _HoldStrong::Game::GameStateStructures::spawnMotherOrChild // label: spawnMotherOrChild + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458280 = 0x00458280, // type: function SHC_3BB0A8C1_0x00458360 = 0x00458360, + // label: _HoldStrong::Game::GameStateStructures::playerHasACampground // label: playerHasACampground + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004585B0 = 0x004585B0, + // label: _HoldStrong::Game::GameStateStructures::moveUnitAroundCampfire // label: moveUnitAroundCampfire + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004585F0 = 0x004585F0, - // label: activateTraderState + // label: _HoldStrong::Game::GameStateStructures::meth_0x4586d0 + // label: enableTraderVisits + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004586D0 = 0x004586D0, - // label: resetTraderState + // label: _HoldStrong::Game::GameStateStructures::meth_0x4586f0 + // label: disableTraderVisits + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004586F0 = 0x004586F0, + // label: _HoldStrong::Game::GameStateStructures::meth_0x458700 // label: findNextPlayerWithMarketplace + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458700 = 0x00458700, // type: function SHC_3BB0A8C1_0x00458720 = 0x00458720, + // label: _HoldStrong::Game::GameStateStructures::isResourceTypeTradeable // label: isResourceTypeTradeable + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458740 = 0x00458740, + // label: _HoldStrong::Game::GameStateStructures::anyGoodsAreAllowedForSale // label: anyGoodsAreAllowedForSale + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458760 = 0x00458760, + // label: _HoldStrong::Game::GameStateStructures::getNextGoodFilteringUnallowed // label: getNextGoodFilteringUnallowed + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004587A0 = 0x004587A0, // type: function SHC_3BB0A8C1_0x004587C0 = 0x004587C0, + // label: _HoldStrong::Game::GameStateStructures::getPreviousGoodsFilteringUnallowed // label: getPreviousGoodsFilteringUnallowed + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458820 = 0x00458820, // type: function SHC_3BB0A8C1_0x00458840 = 0x00458840, + // label: _HoldStrong::Game::GameStateStructures::getBatchBuyPrice // label: getBatchBuyPrice + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458890 = 0x00458890, + // label: _HoldStrong::Game::GameStateStructures::getBuyPrice // label: getBuyPrice + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004588A0 = 0x004588A0, - // label: getBuyPriceForOneUnit + // label: _HoldStrong::Game::GameStateStructures::meth_0x4588d0 + // label: getResourceSellPrice + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004588D0 = 0x004588D0, + // label: _HoldStrong::Game::GameStateStructures::getSalePriceOfGood // label: getSalePriceOfGood + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004588F0 = 0x004588F0, + // label: _HoldStrong::Game::GameStateStructures::getSellPrice // label: getSellPrice + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458910 = 0x00458910, + // label: _HoldStrong::Game::GameStateStructures::getSellResourceAmount // label: getSellResourceAmount + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458940 = 0x00458940, + // label: _HoldStrong::Game::GameStateStructures::setVariousGameStateToInitialValues // label: setVariousGameStateToInitialValues + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458990 = 0x00458990, + // label: _HoldStrong::Game::GameStateStructures::processPeasantsForBuildings // label: processPeasantsForBuildings + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004589E0 = 0x004589E0, + // label: _HoldStrong::Game::GameStateStructures::updateFoodTypesInStockForAllPlayers // label: updateFoodTypesInStockForAllPlayers + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458A70 = 0x00458A70, // type: function SHC_3BB0A8C1_0x00458A80 = 0x00458A80, + // label: _HoldStrong::Game::GameStateStructures::processFoodConsumption // label: processFoodConsumption + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458AD0 = 0x00458AD0, @@ -19287,43 +20071,63 @@ enum { SHC_3BB0A8C1_0x00458D44 = 0x00458D44, // type: /pointer SHC_3BB0A8C1_0x00458D48 = 0x00458D48, + // label: _HoldStrong::Game::GameStateStructures::updateAleRate // label: updateAleRate + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458D50 = 0x00458D50, + // label: _HoldStrong::Game::GameStateStructures::computeAleCoverage // label: computeAleCoverage + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458E20 = 0x00458E20, + // label: _HoldStrong::Game::GameStateStructures::updateCrowding // label: updateCrowding + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458E60 = 0x00458E60, + // label: _HoldStrong::Game::GameStateStructures::updateFearFactorProductivity // label: updateFearFactorProductivity + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458EC0 = 0x00458EC0, + // label: _HoldStrong::Game::GameStateStructures::recomputeReligionBonuses // label: recomputeReligionBonuses + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00458F70 = 0x00458F70, + // label: _HoldStrong::Game::GameStateStructures::calculateTaxIncomeForPlayer // label: calculateTaxIncomeForPlayer + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459080 = 0x00459080, + // label: _HoldStrong::Game::GameStateStructures::calculateTaxBribeExpenseForPlayer // label: calculateTaxBribeExpenseForPlayer + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459140 = 0x00459140, + // label: _HoldStrong::Game::GameStateStructures::getNumberToDisplayPlayerTaxIncome // label: getNumberToDisplayPlayerTaxIncome + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459170 = 0x00459170, + // label: _HoldStrong::Game::GameStateStructures::getNumberToDisplayBribeIncome // label: getNumberToDisplayBribeIncome + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004591B0 = 0x004591B0, + // label: _HoldStrong::Game::GameStateStructures::despawnPeasantOrWorker // label: despawnPeasantOrWorker + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004591F0 = 0x004591F0, @@ -19443,75 +20247,103 @@ enum { SHC_3BB0A8C1_0x00459484 = 0x00459484, // type: /byte SHC_3BB0A8C1_0x00459485 = 0x00459485, + // label: _HoldStrong::Game::GameStateStructures::spawnDrunkard // label: spawnDrunkard + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459490 = 0x00459490, // type: function SHC_3BB0A8C1_0x00459550 = 0x00459550, + // label: _HoldStrong::Game::GameStateStructures::singlePlayerHasKeepAndGranaryCheck // label: singlePlayerHasKeepAndGranaryCheck + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004595D0 = 0x004595D0, + // label: _HoldStrong::Game::GameStateStructures::resetTeams // label: resetTeams + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459640 = 0x00459640, + // label: _HoldStrong::Game::GameStateStructures::getTeamsDifferent // label: getTeamsDifferent + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004596D0 = 0x004596D0, + // label: _HoldStrong::Game::GameStateStructures::findAITeamMate // label: findAITeamMate + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459700 = 0x00459700, - // label: TeamToBitFlagsUnk + // label: _HoldStrong::Game::GameStateStructures::TeamToBitFlagsUnk + // label: getUnitTeammatesBitmask + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459740 = 0x00459740, - // label: areActivePlayersMostlySameTeam + // label: _HoldStrong::Game::GameStateStructures::meth_0x4597d0 + // label: isOnlyOneTeamRemaining + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004597D0 = 0x004597D0, + // label: _HoldStrong::Game::GameStateStructures::recountStablesAndHorses // label: recountStablesAndHorses + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x004598B0 = 0x004598B0, - // label: linkageBetweenHorseUnitAndStableUnk + // label: _HoldStrong::Game::GameStateStructures::linkageBetweenHorseUnitAndStableUnk + // label: assignHorseUnitToStable + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459930 = 0x00459930, + // label: _HoldStrong::Game::GameStateStructures::spawnPoisonCloudsAroundBuilding // label: spawnPoisonCloudsAroundBuilding + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459A20 = 0x00459A20, // type: function SHC_3BB0A8C1_0x00459A40 = 0x00459A40, + // label: _HoldStrong::Game::GameStateStructures::playSFXNoSpaceInTheStockPile // label: playSFXNoSpaceInTheStockPile + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459B50 = 0x00459B50, - // label: clearTribeHotKey + // label: clearUnitSelectionHotkeyGroup // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459BB0 = 0x00459BB0, + // label: _HoldStrong::Game::GameStateStructures::fillWith0xFF // label: fillWith0xFF + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459BE0 = 0x00459BE0, // type: function SHC_3BB0A8C1_0x00459BF0 = 0x00459BF0, + // label: _HoldStrong::Game::GameStateStructures::assignSelectionToKey // label: assignSelectionToKey + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459C10 = 0x00459C10, // type: function SHC_3BB0A8C1_0x00459CC0 = 0x00459CC0, - // label: computeArmySizeLimit - // location: OpenSHC/Game/GameStateStructures + // label: computeIntervalFromAlivePlayerCount + // location: // type: function SHC_3BB0A8C1_0x00459D80 = 0x00459D80, // label: HandleActivateTacticalPowers + // label: _HoldStrong::Game::GameStateStructures::HandleActivateTacticalPowers + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x00459E40 = 0x00459E40, @@ -19605,77 +20437,105 @@ enum { SHC_3BB0A8C1_0x0045A05D = 0x0045A05D, // type: /byte SHC_3BB0A8C1_0x0045A05E = 0x0045A05E, + // label: _HoldStrong::Game::GameStateStructures::renderDebugDataCurrentPlayerData // label: renderDebugDataCurrentPlayerData + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045A060 = 0x0045A060, - // label: validateLadyAndJesterUnitRefs + // label: validateCourtUnitRefs // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x0045ACC0 = 0x0045ACC0, - // label: initPopularityAndRecruitableDefaults + // label: upgradeRecruitAvailability // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x0045AD10 = 0x0045AD10, - // label: resetTeams + // label: resetTeamsForVersion // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x0045AE00 = 0x0045AE00, + // label: _HoldStrong::Game::GameStateStructures::addBuildingInRegistry // label: addBuildingInRegistry + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045AE10 = 0x0045AE10, + // label: _HoldStrong::Game::GameStateStructures::resetBuildingsCurrentIndexCounter // label: resetBuildingsCurrentIndexCounter + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045AE70 = 0x0045AE70, + // label: _HoldStrong::Game::GameStateStructures::selectARandomBuildingOwnedByPlayer // label: selectARandomBuildingOwnedByPlayer + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045AEB0 = 0x0045AEB0, - // label: resetSomethingBuildingRelatedForAllPlayers + // label: _HoldStrong::Game::GameStateStructures::resetSomethingBuildingRelatedForAllPlayers + // label: revalidateAllPlayerKeyBuildings + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045AF00 = 0x0045AF00, + // label: _HoldStrong::Game::GameStateStructures::computePopulationStatistics // label: computePopulationStatistics + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045AF30 = 0x0045AF30, - // label: clearEnemyRelatedStructures + // label: _HoldStrong::Game::GameStateStructures::clearEnemyRelatedStructures + // label: resetGameStateForNewMap + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045B1C0 = 0x0045B1C0, // type: function SHC_3BB0A8C1_0x0045B3A0 = 0x0045B3A0, - // label: initializeGameStateAfterMapLoad + // label: _HoldStrong::Game::GameStateStructures::meth_0x45b3e0 + // label: initGameStateAfterMapLoad + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045B3E0 = 0x0045B3E0, + // label: _HoldStrong::Game::GameStateStructures::switchPlayerOwnership + // location: // type: function SHC_3BB0A8C1_0x0045B460 = 0x0045B460, - // label: ProcessPeasantSpawnAndDespawnCycle + // label: updatePeasantSpawning // location: // type: function SHC_3BB0A8C1_0x0045B4A0 = 0x0045B4A0, + // label: _HoldStrong::Game::GameStateStructures::updateTrader // label: updateTrader + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045B6B0 = 0x0045B6B0, + // label: _HoldStrong::Game::GameStateStructures::getSalesPrice // label: getSalesPrice + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045B7F0 = 0x0045B7F0, + // label: _HoldStrong::Game::GameStateStructures::updatePopularity // label: updatePopularity + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045B830 = 0x0045B830, // type: function SHC_3BB0A8C1_0x0045B860 = 0x0045B860, + // label: _HoldStrong::Game::GameStateStructures::updateTaxing // label: updateTaxing + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045BF50 = 0x0045BF50, + // label: _HoldStrong::Game::GameStateStructures::spawnPoisonCloudsAtRandomStorageOrArmyBuilding // label: spawnPoisonCloudsAtRandomStorageOrArmyBuilding + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045C050 = 0x0045C050, @@ -19761,7 +20621,9 @@ enum { SHC_3BB0A8C1_0x0045C1B8 = 0x0045C1B8, // type: /byte SHC_3BB0A8C1_0x0045C1B9 = 0x0045C1B9, + // label: _HoldStrong::Game::GameStateStructures::meth_0x45c1c0 // label: migrateGameStateForMapVersion + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045C1C0 = 0x0045C1C0, @@ -19771,11 +20633,15 @@ enum { SHC_3BB0A8C1_0x0045C9D0 = 0x0045C9D0, // type: function SHC_3BB0A8C1_0x0045C9E0 = 0x0045C9E0, + // label: _HoldStrong::Game::GameStateStructures::processSingleTimeTick // label: processSingleTimeTick + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045CA20 = 0x0045CA20, + // label: _HoldStrong::Game::GameStateStructures::processGameTick // label: processGameTick + // location: // location: OpenSHC/Game/GameStateStructures // type: function SHC_3BB0A8C1_0x0045CD10 = 0x0045CD10, @@ -19783,27 +20649,39 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0045D060 = 0x0045D060, - // label: setHelpWindowBounds + // label: _HoldStrong::Text::TextEditorState::meth_0x45d080 + // label: setTextEditorFields + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D080 = 0x0045D080, + // label: _HoldStrong::UI::Rendering::AlphaAndButtonSurface::freeMemory // label: freeMemory + // location: // location: OpenSHC/UI/Rendering/AlphaAndButtonSurface // type: function SHC_3BB0A8C1_0x0045D0B0 = 0x0045D0B0, - // label: resetHelpStateFields + // label: _HoldStrong::Text::TextEditorState::meth_0x45d0c0 + // label: resetTextEditorHandles + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D0C0 = 0x0045D0C0, - // label: findHelpSectionIndexByName + // label: _HoldStrong::Text::TextEditorState::meth_0x45d140 + // label: findHelpSectionIndex + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D140 = 0x0045D140, - // label: findOrAddHelpSectionName + // label: _HoldStrong::Text::TextEditorState::meth_0x45d1a0 + // label: findOrAddHelpSection + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D1A0 = 0x0045D1A0, + // label: _HoldStrong::Text::TextEditorState::parseHLPPart // label: parseHLPPart + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D200 = 0x0045D200, @@ -19975,72 +20853,92 @@ enum { SHC_3BB0A8C1_0x0045D364 = 0x0045D364, // type: /byte SHC_3BB0A8C1_0x0045D365 = 0x0045D365, - // label: loadHelpSectionGraphics + // label: _HoldStrong::Text::TextEditorState::meth_0x45d370 + // label: loadTextEditorGfxResources + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D370 = 0x0045D370, + // label: _HoldStrong::Text::TextEditorState::getWideCharPointer // label: getWideCharPointer + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D3C0 = 0x0045D3C0, - // label: renderHelpImageHotspots + // label: _HoldStrong::Text::TextEditorState::meth_0x45d430 + // label: drawTextEditorGfxItems + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D430 = 0x0045D430, // type: function SHC_3BB0A8C1_0x0045D460 = 0x0045D460, + // label: _HoldStrong::Text::TextEditorState::bltTextToScreenIfNeedBe // label: bltTextToScreenIfNeedBe + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D690 = 0x0045D690, + // label: _HoldStrong::Text::TextEditorState::drawBorderStyle0x20 // label: drawBorderStyle0x20 + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D6C0 = 0x0045D6C0, - // label: drawHelpWindowBackground + // label: _HoldStrong::Text::TextEditorState::meth_0x45d740 + // label: drawTextEditorBackground + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D740 = 0x0045D740, - // label: findHelpGraphicIndexByName + // label: _HoldStrong::Text::TextEditorState::meth_0x45d890 + // label: findTextEditorGfxIndex + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D890 = 0x0045D890, - // label: findOrAddHelpGraphicName + // label: _HoldStrong::Text::TextEditorState::meth_0x45d8f0 + // label: findOrAddTextEditorGfx + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D8F0 = 0x0045D8F0, - // label: getNextHelpSectionID + // label: getNextHelpPageId // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D950 = 0x0045D950, - // label: getPrevHelpSectionID + // label: getPrevHelpPageId // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D990 = 0x0045D990, - // label: getHelpSectionText + // label: getHelpPageText // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045D9E0 = 0x0045D9E0, - // label: getNextHelpColorEntryIndex + // label: getNextHelpEntryIndex // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045DA20 = 0x0045DA20, - // label: getPrevHelpColorEntryIndex + // label: getPrevHelpEntryIndex // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045DA40 = 0x0045DA40, // type: function SHC_3BB0A8C1_0x0045DA60 = 0x0045DA60, - // label: findSoundIndexByName + // label: _HoldStrong::Text::TextEditorState::meth_0x45da80 + // label: findTextEditorString1Index + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045DA80 = 0x0045DA80, - // label: findOrAddSoundName + // label: _HoldStrong::Text::TextEditorState::meth_0x45dae0 + // label: findOrAddTextEditorString1 + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045DAE0 = 0x0045DAE0, - // label: saveHelpFileToResource - // location: OpenSHC/Text/TextEditorState + // label: exportHelpSectionToMarkupFile + // location: // type: function SHC_3BB0A8C1_0x0045DB40 = 0x0045DB40, // type: /undefined *32 @@ -20395,7 +21293,7 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0045EF90 = 0x0045EF90, - // label: getHelpTokenAdvanceLength + // label: getTextTokenSlotCount // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045F080 = 0x0045F080, @@ -20433,35 +21331,49 @@ enum { SHC_3BB0A8C1_0x0045F0CC = 0x0045F0CC, // type: /byte SHC_3BB0A8C1_0x0045F0CD = 0x0045F0CD, - // label: insertHelpTextToken + // label: _HoldStrong::Text::TextEditorState::meth_0x45f0d0 + // label: insertTextTokenSlots + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045F0D0 = 0x0045F0D0, - // label: MenuItemRenderFunction_DisplayScenarioHelpText_AnotherButtonUnk + // label: MenuItemRenderFunction_DisplayScenarioHelpText_ConditionalButton + // label: _HoldStrong::UI::MenuItemRenderFunction_DisplayScenarioHelpText_AnotherButtonUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0045F120 = 0x0045F120, // label: Constructor_TextEditorState + // label: _HoldStrong::Text::TextEditorState::Constructor_TextEditorState + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045F130 = 0x0045F130, - // label: closeHelpDialogAndReturnToMenu + // label: _HoldStrong::Text::TextEditorState::someKindOfTextEscape + // label: someKindOfTextEscape + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045F240 = 0x0045F240, + // label: _HoldStrong::Text::TextEditorState::readCrusaderHelpHlp // label: readCrusaderHelpHlp + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045F470 = 0x0045F470, - // label: loadAndParseHelpFile + // label: _HoldStrong::Text::TextEditorState::meth_0x45f580 + // label: loadCrusaderHelpFile + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045F580 = 0x0045F580, + // label: _HoldStrong::Text::TextEditorState::parseHlp // label: parseHlp + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045F5B0 = 0x0045F5B0, - // label: processHelpRichTextTokens + // label: layoutHelpText // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x0045FDC0 = 0x0045FDC0, @@ -20529,11 +21441,15 @@ enum { SHC_3BB0A8C1_0x004613D0 = 0x004613D0, // type: /pointer SHC_3BB0A8C1_0x004613D4 = 0x004613D4, + // label: _HoldStrong::Text::TextEditorState::setTextRenderingLogic // label: setTextRenderingLogic + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x004613E0 = 0x004613E0, - // label: initializeAndLayoutHelpText + // label: _HoldStrong::Text::TextEditorState::meth_0x4614d0 + // label: rebuildHelpTextLayout + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x004614D0 = 0x004614D0, @@ -20541,11 +21457,15 @@ enum { SHC_3BB0A8C1_0x004614F0 = 0x004614F0, // type: function SHC_3BB0A8C1_0x00461520 = 0x00461520, - // label: renderHelpDialogIfOpen + // label: _HoldStrong::Text::TextEditorState::meth_0x461550 + // label: renderTextEditor + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x00461550 = 0x00461550, - // label: MenuItemActionHandler_TextEditor_TextInputRelatedUnk + // label: _HoldStrong::UI::MenuItemActionHandler_TextEditor_TextInputRelatedUnk + // label: processTextEditorInput + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00461570 = 0x00461570, @@ -20591,39 +21511,55 @@ enum { SHC_3BB0A8C1_0x004619C4 = 0x004619C4, // type: /undefined *32 SHC_3BB0A8C1_0x004619C8 = 0x004619C8, + // label: _HoldStrong::Text::TextEditorState::meth_0x4619d0 // label: loadAndLayoutHelpContent + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x004619D0 = 0x004619D0, - // label: openBuildingHelpDialog + // label: _HoldStrong::Text::TextEditorState::meth_0x461a20 + // label: openBuildingHelpText + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x00461A20 = 0x00461A20, - // label: openInGameHelpDialog + // label: _HoldStrong::Text::TextEditorState::meth_0x461b90 + // label: openInGameHelpText + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x00461B90 = 0x00461B90, - // label: openScenarioHelpDialog + // label: _HoldStrong::Text::TextEditorState::meth_0x461cf0 + // label: openScenarioHelpText + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x00461CF0 = 0x00461CF0, - // label: openCreditsScrollDialog + // label: _HoldStrong::Text::TextEditorState::meth_0x461e50 + // label: openCreditsScroll + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x00461E50 = 0x00461E50, - // label: openMapDescriptionEditorDialog + // label: _HoldStrong::Text::TextEditorState::meth_0x461f90 + // label: openMapDescriptionEditor + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x00461F90 = 0x00461F90, - // label: setCustomHelpText + // label: _HoldStrong::Text::TextEditorState::meth_0x4620f0 + // label: displayRawText + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x004620F0 = 0x004620F0, - // label: popHelpDialogStack + // label: goBackInHelpHistory // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x00462150 = 0x00462150, - // label: openUnusedHelpTextEditorDialog + // label: _HoldStrong::Text::TextEditorState::meth_0x462190 + // label: openHelpTextEditor + // location: // location: OpenSHC/Text/TextEditorState // type: function SHC_3BB0A8C1_0x00462190 = 0x00462190, @@ -20882,26 +21818,36 @@ enum { // type: /byte SHC_3BB0A8C1_0x00462FDF = 0x00462FDF, // label: Constructor_AlphaAndButtonSurface + // label: _HoldStrong::UI::Rendering::AlphaAndButtonSurface::Constructor_AlphaAndButtonSurface + // location: // location: OpenSHC/UI/Rendering/AlphaAndButtonSurface // type: function SHC_3BB0A8C1_0x00462FE0 = 0x00462FE0, + // label: _HoldStrong::UI::Rendering::AlphaAndButtonSurface::prepareButtonAndAlphaSurface // label: prepareButtonAndAlphaSurface + // location: // location: OpenSHC/UI/Rendering/AlphaAndButtonSurface // type: function SHC_3BB0A8C1_0x00462FF0 = 0x00462FF0, + // label: _HoldStrong::UI::Rendering::ButtonGmData::getPictureNumberInGm // label: getPictureNumberInGm + // location: // location: OpenSHC/UI/Rendering/ButtonGmData // type: function SHC_3BB0A8C1_0x004630B0 = 0x004630B0, - // label: isMouseOnButtonImageUnk + // label: _HoldStrong::UI::Rendering::AlphaAndButtonSurface::isMouseOnButtonImageUnk + // label: isMouseOverButtonPixel + // location: // location: OpenSHC/UI/Rendering/AlphaAndButtonSurface // type: function SHC_3BB0A8C1_0x004630D0 = 0x004630D0, - // label: ProcessBuildingClickBonus + // label: handleFriendlyBuildingClick // location: OpenSHC/UI/Rendering/AlphaAndButtonSurface // type: function SHC_3BB0A8C1_0x00463270 = 0x00463270, + // label: _HoldStrong::UI::Rendering::AlphaAndButtonSurface::openBuildingStatusMenuForBuildingID // label: openBuildingStatusMenuForBuildingID + // location: // location: OpenSHC/UI/Rendering/AlphaAndButtonSurface // type: function SHC_3BB0A8C1_0x00463310 = 0x00463310, @@ -21491,11 +22437,13 @@ enum { SHC_3BB0A8C1_0x004639F9 = 0x004639F9, // type: /byte SHC_3BB0A8C1_0x004639FA = 0x004639FA, - // label: SelectUnitAndOpenStatusMenu + // label: selectOwnUnit // location: OpenSHC/UI/Rendering/AlphaAndButtonSurface // type: function SHC_3BB0A8C1_0x00463A00 = 0x00463A00, + // label: _HoldStrong::UI::Rendering::AlphaAndButtonSurface::renderBasicButton // label: renderBasicButton + // location: // location: OpenSHC/UI/Rendering/AlphaAndButtonSurface // type: function SHC_3BB0A8C1_0x00463A90 = 0x00463A90, @@ -21503,12 +22451,14 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00463FF0 = 0x00463FF0, - // label: RenderCurrentNotActiveButtonWithPossibleAlphaTexOnCurrentSurfaceUnk + // label: _HoldStrong::UI::Rendering::RenderCurrentNotActiveButtonWithPossibleAlphaTexOnCurrentSurfaceUnk + // label: renderInactiveButtonWithAlpha + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004640D0 = 0x004640D0, - // label: RenderButtonImageWithBlending - // location: OpenSHC/UI + // label: renderButtonGmPicture + // location: // type: function SHC_3BB0A8C1_0x004641A0 = 0x004641A0, // label: MenuItemRenderFunction_ChooseRandomNumberOfEnemies_Main @@ -21519,7 +22469,9 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x00464300 = 0x00464300, - // label: RenderCurrentButtonToScreenMenuWithBlendingUnk + // label: _HoldStrong::UI::Rendering::RenderCurrentButtonToScreenMenuWithBlendingUnk + // label: renderCurrentButtonBlendedToScreenMenu + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x00464370 = 0x00464370, @@ -21607,7 +22559,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00464860 = 0x00464860, - // label: MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Min1 + // label: MenuItemActionHandler_BuildingAndStatusMenu_ResetSelectionA + // label: _HoldStrong::UI::MenuItemActionHandler_BuildingAndStatusMenu_Unknown_Min1 + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004649C0 = 0x004649C0, @@ -21615,11 +22569,15 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004649D0 = 0x004649D0, - // label: MenuItemActionHandler_BuildingAndStatusMenu_UnknownMin1Unk + // label: MenuItemActionHandler_BuildingAndStatusMenu_ResetSelectionB + // label: _HoldStrong::UI::MenuItemActionHandler_BuildingAndStatusMenu_UnknownMin1Unk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00464D90 = 0x00464D90, - // label: IsEuroUnitRecruitableUnk + // label: _HoldStrong::Global::IsEuroUnitRecruitableUnk + // label: getEuroUnitRecruitableState + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00464DA0 = 0x00464DA0, @@ -21751,7 +22709,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00465A20 = 0x00465A20, - // label: SetPlayerBuyingResultStateUnk + // label: _HoldStrong::Global::SetPlayerBuyingResultStateUnk + // label: setStorageFullEmptyNotification + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00465DB0 = 0x00465DB0, @@ -21857,7 +22817,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00466D10 = 0x00466D10, - // label: SetEnoughGoldForRequestedUnitToTrueUnk + // label: _HoldStrong::Global::SetEnoughGoldForRequestedUnitToTrueUnk + // label: setEnoughGoldForRequestedUnit + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00466E00 = 0x00466E00, @@ -21889,15 +22851,21 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00467670 = 0x00467670, + // label: HoldStrong_lib::std::bad_alloc::~bad_alloc // label: ~bad_alloc + // location: // location: HoldStrong_lib/std/bad_alloc // type: function SHC_3BB0A8C1_0x00467680 = 0x00467680, - // label: meth_0x4676b0 + // label: HoldStrong_lib::std::locale::_Locimp::meth_0x4676b0 + // label: _Locimp_Incref + // location: // location: HoldStrong_lib/std/locale/_Locimp // type: function SHC_3BB0A8C1_0x004676B0 = 0x004676B0, - // label: meth_0x4676e0 + // label: HoldStrong_lib::meth_0x4676e0 + // label: facet_Decref + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x004676E0 = 0x004676E0, @@ -21905,31 +22873,45 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00467720 = 0x00467720, - // label: meth_0x467730 + // label: HoldStrong_lib::std::locale::_Locimp::meth_0x467730 + // label: releaseLocaleFacet + // location: // location: HoldStrong_lib/std/locale/_Locimp // type: function SHC_3BB0A8C1_0x00467730 = 0x00467730, + // label: HoldStrong_lib::std::codecvt::virt_meth_0x467780 // label: virt_meth_0x467780 + // location: // location: HoldStrong_lib/std/codecvt // type: function SHC_3BB0A8C1_0x00467780 = 0x00467780, + // label: HoldStrong_lib::std::codecvt::virt_meth_0x467790 // label: virt_meth_0x467790 + // location: // location: HoldStrong_lib/std/codecvt // type: function SHC_3BB0A8C1_0x00467790 = 0x00467790, - // label: meth_0x4677a0 + // label: HoldStrong_lib::meth_0x4677a0 + // label: getLocaleFacetRef + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x004677A0 = 0x004677A0, + // label: HoldStrong_lib::stdLib::ios::ios_base::~ios_base // label: ~ios_base + // location: // location: HoldStrong_lib/stdLib/ios/ios_base // type: function SHC_3BB0A8C1_0x004677E0 = 0x004677E0, + // label: _HoldStrong::Audio::MSS::SoundSystem::stopMusicPlayback // label: stopMusicPlayback + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00467810 = 0x00467810, - // label: endSoundStreamsUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::endSoundStreamsUnk + // label: endAllSoundStreams + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00467830 = 0x00467830, @@ -21937,19 +22919,27 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x00467850 = 0x00467850, - // label: SetSomeColorsUnk + // label: _HoldStrong::Global::SetSomeColorsUnk + // label: initNamedColorsForColorMode + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00467890 = 0x00467890, // label: Constructor_WindowAndDirectDraw + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::Constructor_WindowAndDirectDraw + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x004679F0 = 0x004679F0, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::createWindow // label: createWindow + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x00467A90 = 0x00467A90, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::getDeviceCapsAndSetup // label: getDeviceCapsAndSetup + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x00467B40 = 0x00467B40, @@ -21957,7 +22947,9 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00467BC0 = 0x00467BC0, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::releaseSurfacesAndDirectDraw // label: releaseSurfacesAndDirectDraw + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x00467D80 = 0x00467D80, @@ -21979,15 +22971,21 @@ enum { // label: prt_467e26_c34967f8 // location: OpenSHC/UI/Rendering/WindowAndDirectDraw/releaseSurfacesAndDirectDraw/override SHC_3BB0A8C1_0x00467E26 = 0x00467E26, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::finalizeDirectDrawShutdown // label: finalizeDirectDrawShutdown + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x00467E40 = 0x00467E40, - // label: adjustForNotExclusiveFullscreenUnk + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::adjustForNotExclusiveFullscreenUnk + // label: clampBlitRectsToScreen + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x00467E50 = 0x00467E50, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::restoreDXSurfaces // label: restoreDXSurfaces + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x00467EC0 = 0x00467EC0, @@ -21995,235 +22993,341 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x00467F50 = 0x00467F50, - // label: storeWindowRectangleInfoUnk + // label: _HoldStrong::Rendering::WindowInformation::storeWindowRectangleInfoUnk + // label: storeGameWindowRect + // location: // location: OpenSHC/Rendering/WindowInformation // type: function SHC_3BB0A8C1_0x00467F60 = 0x00467F60, + // label: _HoldStrong::Input::MouseState::makeSelectedCursorTypeCurrent // label: makeSelectedCursorTypeCurrent + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00467F80 = 0x00467F80, + // label: _HoldStrong::Input::MouseState::updateMousePositionAndClicks // label: updateMousePositionAndClicks + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00468030 = 0x00468030, + // label: _HoldStrong::Input::MouseState::updateMouseWheelStatus // label: updateMouseWheelStatus + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x004680B0 = 0x004680B0, + // label: _HoldStrong::Input::MouseState::isMouseInsideBox // label: isMouseInsideBox + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x004680C0 = 0x004680C0, + // label: _HoldStrong::Input::MouseState::updateMouseStateBasedOnCursorAndTime // label: updateMouseStateBasedOnCursorAndTime + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00468100 = 0x00468100, + // label: _HoldStrong::Input::MouseState::setCursor // label: setCursor + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00468370 = 0x00468370, - // label: beginPointSelectionBox + // label: _HoldStrong::Input::MouseState::meth_0x468420 + // label: computeMouseWorldPickBox + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00468420 = 0x00468420, + // label: _HoldStrong::Input::MouseState::setupHitBox // label: setupHitBox + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x004684D0 = 0x004684D0, + // label: _HoldStrong::Input::MouseState::resetMouseCursorState // label: resetMouseCursorState + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00468590 = 0x00468590, + // label: _HoldStrong::Input::MouseState::renderPreviewAtMouseLocation // label: renderPreviewAtMouseLocation + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x004685C0 = 0x004685C0, + // label: _HoldStrong::Input::MouseState::storeXYAndResetMouseState // label: storeXYAndResetMouseState + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x004687F0 = 0x004687F0, + // label: _HoldStrong::Input::MouseState::resetMouseState2 // label: resetMouseState2 + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x004689D0 = 0x004689D0, // label: Constructor_ModifierKeyState + // label: _HoldStrong::Input::ModifierKeyState::Constructor_ModifierKeyState + // location: // location: OpenSHC/Input/ModifierKeyState // type: function SHC_3BB0A8C1_0x00468A10 = 0x00468A10, + // label: _HoldStrong::Input::ModifierKeyState::updateCtrlShiftAltKeyStateMemory // label: updateCtrlShiftAltKeyStateMemory + // location: // location: OpenSHC/Input/ModifierKeyState // type: function SHC_3BB0A8C1_0x00468A20 = 0x00468A20, // label: Constructor_ScrollingHandler + // label: _HoldStrong::UI::ScrollingHandler::Constructor_ScrollingHandler + // location: // location: OpenSHC/UI/ScrollingHandler // type: function SHC_3BB0A8C1_0x00468A90 = 0x00468A90, + // label: _HoldStrong::UI::ScrollingHandler::handleScrolling // label: handleScrolling + // location: // location: OpenSHC/UI/ScrollingHandler // type: function SHC_3BB0A8C1_0x00468AD0 = 0x00468AD0, - // label: getScrollDistanceBaseUnk + // label: _HoldStrong::UI::ScrollingHandler::getScrollDistanceBaseUnk + // label: getScrollDistanceBase + // location: // location: OpenSHC/UI/ScrollingHandler // type: function SHC_3BB0A8C1_0x00468C30 = 0x00468C30, // label: Constructor_InsertKeyState + // label: _HoldStrong::Input::InsertKeyState::Constructor_InsertKeyState + // location: // location: OpenSHC/Input/InsertKeyState // type: function SHC_3BB0A8C1_0x00468C40 = 0x00468C40, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::setupPencilSurface // label: setupPencilSurface + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00468C50 = 0x00468C50, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::setupPencil // label: setupPencil + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00468C80 = 0x00468C80, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawHorizontalLine // label: drawHorizontalLine + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00468DE0 = 0x00468DE0, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawVerticalLine // label: drawVerticalLine + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00468E40 = 0x00468E40, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::dimHorizontalLine // label: dimHorizontalLine + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00468EA0 = 0x00468EA0, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawCurrentPixel // label: drawCurrentPixel + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00468F20 = 0x00468F20, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawPixelPattern4x4 // label: drawPixelPattern4x4 + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00468F70 = 0x00468F70, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawHeaderBanner // label: drawHeaderBanner + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00468FE0 = 0x00468FE0, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawScrollbar // label: drawScrollbar + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x004690E0 = 0x004690E0, - // label: renderUpDownButtonUnk + // label: _HoldStrong::UI::Rendering::PencilRenderCore::renderUpDownButtonUnk + // label: renderUpDownArrowButton + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00469290 = 0x00469290, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawTableCellBackground // label: drawTableCellBackground + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x004692E0 = 0x004692E0, + // label: initTextInputBoxes + // location: + // type: function + SHC_3BB0A8C1_0x004694A0 = 0x004694A0, + // label: _HoldStrong::Text::UserTextHandler::resetToTextIndex // label: resetToTextIndex + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00469790 = 0x00469790, + // label: _HoldStrong::Text::UserTextHandler::getCurrentText // label: getCurrentText + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x004697C0 = 0x004697C0, + // label: _HoldStrong::Text::UserTextHandler::getTextArrayPointer // label: getTextArrayPointer + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x004697E0 = 0x004697E0, - // label: setTextEntryAndUpdateCursor + // label: setTextBoxContent // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00469800 = 0x00469800, - // label: getCurrentFontSize + // label: getCurrentTextBoxFontSize // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00469860 = 0x00469860, + // label: _HoldStrong::Text::UserTextHandler::handleReturnKey // label: handleReturnKey + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00469870 = 0x00469870, + // label: _HoldStrong::Text::UserTextHandler::handleRightKey // label: handleRightKey + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00469880 = 0x00469880, + // label: _HoldStrong::Text::UserTextHandler::handleLeftKey // label: handleLeftKey + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x004698A0 = 0x004698A0, - // label: resetCursorToStart + // label: resetTextBoxCursor // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x004698C0 = 0x004698C0, + // label: _HoldStrong::Text::UserTextHandler::moveCursorToEnd // label: moveCursorToEnd + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x004698D0 = 0x004698D0, - // label: shiftTextLeftAtCursor + // label: removeTextBoxChars // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x004698F0 = 0x004698F0, - // label: shiftTextRightAtCursor + // label: insertCharSlotInTextBox // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00469930 = 0x00469930, + // label: _HoldStrong::Text::UserTextHandler::handleCharacterIntoInputBuffer // label: handleCharacterIntoInputBuffer + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00469980 = 0x00469980, - // label: dequeueInputBufferChar + // label: dequeueInputChar // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x004699E0 = 0x004699E0, + // label: _HoldStrong::Text::FontSizeClass::setupFontSizeClassObject // label: setupFontSizeClassObject + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00469A30 = 0x00469A30, + // label: _HoldStrong::Text::FontSizeClass::getWidthOfText // label: getWidthOfText + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00469A70 = 0x00469A70, // type: function SHC_3BB0A8C1_0x00469AD0 = 0x00469AD0, + // label: _HoldStrong::Text::FontSizeClass::getWordStartingFromPos // label: getWordStartingFromPos + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00469B90 = 0x00469B90, // type: function SHC_3BB0A8C1_0x00469BE0 = 0x00469BE0, - // label: wrapTextIntoLines + // label: _HoldStrong::Text::FontSizeClass::meth_0x469c40 + // label: wordWrapText + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00469C40 = 0x00469C40, - // label: getCharWidthUnk + // label: _HoldStrong::Text::FontSizeClass::getCharWidthUnk + // label: getCharWidth + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00469E10 = 0x00469E10, + // label: _HoldStrong::Text::TextManager::setupFontSizeClassObjects // label: setupFontSizeClassObjects + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00469E70 = 0x00469E70, - // label: DoNothing + // label: _HoldStrong::Global::FUN_Useless + // label: noOp + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00469F10 = 0x00469F10, - // label: setTextClipRange + // label: _HoldStrong::Text::TextManager::meth_0x469f20 + // label: setTextManagerClipRange + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00469F20 = 0x00469F20, - // label: resetTextClipRange + // label: _HoldStrong::Text::TextManager::meth_0x469f40 + // label: resetTextManagerClipRange + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00469F40 = 0x00469F40, + // label: _HoldStrong::Text::TextManager::trimText // label: trimText + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00469F50 = 0x00469F50, - // label: getTextWidthTillCursorUnk + // label: _HoldStrong::Text::TextManager::getTextWidthTillCursorUnk + // label: getTextWidthTillCursor + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00469F70 = 0x00469F70, + // label: _HoldStrong::Text::TextManager::fillIntegerTextBuffer // label: fillIntegerTextBuffer + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00469FA0 = 0x00469FA0, + // label: _HoldStrong::Text::TextManager::getTextStringInGroupAtOffset // label: getTextStringInGroupAtOffset + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x0046A050 = 0x0046A050, @@ -22725,7 +23829,9 @@ enum { SHC_3BB0A8C1_0x0046A2B8 = 0x0046A2B8, // type: /pointer SHC_3BB0A8C1_0x0046A2BC = 0x0046A2BC, - // label: renderPartOfNumberUnk + // label: _HoldStrong::Text::TextManager::renderPartOfNumberUnk + // label: renderNumberDigitAtPlace + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x0046A2C0 = 0x0046A2C0, @@ -22743,118 +23849,174 @@ enum { SHC_3BB0A8C1_0x0046A4C4 = 0x0046A4C4, // type: /undefined *32 SHC_3BB0A8C1_0x0046A4C8 = 0x0046A4C8, - // label: calcRenderedNumberWidth + // label: getNumberGfxWidth // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x0046A4D0 = 0x0046A4D0, + // label: _HoldStrong::Text::TextManager::getCharWidth // label: getCharWidth + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x0046A720 = 0x0046A720, + // label: _HoldStrong::Random::RNG::setTimeBasedSeed // label: setTimeBasedSeed + // location: // location: OpenSHC/Random/RNG // type: function SHC_3BB0A8C1_0x0046A740 = 0x0046A740, + // label: _HoldStrong::Random::RNG::populateRNG1040 // label: populateRNG1040 + // location: // location: OpenSHC/Random/RNG // type: function SHC_3BB0A8C1_0x0046A760 = 0x0046A760, + // label: _HoldStrong::Random::RNG::nextRandomNumber2 // label: nextRandomNumber2 + // location: // location: OpenSHC/Random/RNG // type: function SHC_3BB0A8C1_0x0046A7D0 = 0x0046A7D0, + // label: _HoldStrong::Random::RNG::nextRandomNumber1 // label: nextRandomNumber1 + // location: // location: OpenSHC/Random/RNG // type: function SHC_3BB0A8C1_0x0046A800 = 0x0046A800, + // label: _HoldStrong::IO::LowLevelMemory::moveLowerThreeBytesIntoParam2 // label: moveLowerThreeBytesIntoParam2 + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046A830 = 0x0046A830, - // label: setMemoryToValue_0x001 + // label: _HoldStrong::IO::LowLevelMemory::setMemoryToValue0x001 + // label: setMemoryToValue0x001 + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046A850 = 0x0046A850, - // label: setMemoryToValue_0x002 + // label: _HoldStrong::IO::LowLevelMemory::setMemoryToValue0x002 + // label: setMemoryToValue0x002 + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046A890 = 0x0046A890, - // label: setMemoryToValue_0x004 + // label: _HoldStrong::IO::LowLevelMemory::setMemoryToValue0x004 + // label: setMemoryToValue0x004 + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046A8D0 = 0x0046A8D0, - // label: setMemoryToValue_0x010 + // label: _HoldStrong::IO::LowLevelMemory::setMemoryToValue0x010 + // label: setMemoryToValue0x010 + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046A910 = 0x0046A910, - // label: setMemoryToValue_0x100 + // label: _HoldStrong::IO::LowLevelMemory::setMemoryToValue0x100 + // label: setMemoryToValue0x100 + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046A970 = 0x0046A970, - // label: copyData_0x001 + // label: _HoldStrong::IO::LowLevelMemory::copyData0x001 + // label: copyData0x001 + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046AAF0 = 0x0046AAF0, - // label: copyData_0x010 + // label: _HoldStrong::IO::LowLevelMemory::copyData0x010 + // label: copyData0x010 + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046AB30 = 0x0046AB30, - // label: copyData_0x100 + // label: _HoldStrong::IO::LowLevelMemory::copyData0x100 + // label: copyData0x100 + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046ABA0 = 0x0046ABA0, + // label: _HoldStrong::IO::LowLevelMemory::copyStringUntilFirstDot // label: copyStringUntilFirstDot + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046AE50 = 0x0046AE50, + // label: _HoldStrong::IO::LowLevelMemory::putFileNameAndAppendFileExtension // label: putFileNameAndAppendFileExtension + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046AE80 = 0x0046AE80, + // label: _HoldStrong::IO::LowLevelMemory::isLordNameCallable // label: isLordNameCallable + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x0046AEC0 = 0x0046AEC0, + // label: _HoldStrong::Util::WideCharMultiByteState::wideCharToMultiByteComplete // label: wideCharToMultiByteComplete + // location: // location: OpenSHC/Util/WideCharMultiByteState // type: function SHC_3BB0A8C1_0x0046B080 = 0x0046B080, + // label: _HoldStrong::Util::WideCharMultiByteState::multiByteToWideCharacter // label: multiByteToWideCharacter + // location: // location: OpenSHC/Util/WideCharMultiByteState // type: function SHC_3BB0A8C1_0x0046B0D0 = 0x0046B0D0, + // label: _HoldStrong::Util::WideCharMultiByteState::wideCharToMultiByteWithSize // label: wideCharToMultiByteWithSize + // location: // location: OpenSHC/Util/WideCharMultiByteState // type: function SHC_3BB0A8C1_0x0046B110 = 0x0046B110, + // label: _HoldStrong::Util::WideCharMultiByteState::multiByteToWideCharThunk // label: multiByteToWideCharThunk + // location: // location: OpenSHC/Util/WideCharMultiByteState // type: function SHC_3BB0A8C1_0x0046B140 = 0x0046B140, - // label: wideCharToByteUnk + // label: _HoldStrong::Util::WideCharMultiByteState::wideCharToByteUnk + // label: wideCharToByte + // location: // location: OpenSHC/Util/WideCharMultiByteState // type: function SHC_3BB0A8C1_0x0046B170 = 0x0046B170, + // label: _HoldStrong::Util::WideCharMultiByteState::multiByteToWideCharThunk2 // label: multiByteToWideCharThunk2 + // location: // location: OpenSHC/Util/WideCharMultiByteState // type: function SHC_3BB0A8C1_0x0046B1B0 = 0x0046B1B0, // label: Constructor_GameCore + // label: _HoldStrong::Game::GameCore::Constructor_GameCore + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046B1F0 = 0x0046B1F0, - // label: setViewOnExitUnk + // label: _HoldStrong::Game::GameCore::setViewOnExitUnk + // label: setMenuViewOnExit + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046B2F0 = 0x0046B2F0, + // label: _HoldStrong::Game::GameCore::setTabToSwitchTo // label: setTabToSwitchTo + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046B300 = 0x0046B300, - // label: swapBuildMenuTab + // label: _HoldStrong::Game::GameCore::meth_0x46b320 + // label: toggleSiegeTentBuildTab + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046B320 = 0x0046B320, + // label: _HoldStrong::Game::GameCore::switchToMenuView + // location: // type: function SHC_3BB0A8C1_0x0046B340 = 0x0046B340, // type: /pointer @@ -22987,135 +24149,191 @@ enum { SHC_3BB0A8C1_0x0046B975 = 0x0046B975, // type: /byte SHC_3BB0A8C1_0x0046B976 = 0x0046B976, + // label: _HoldStrong::Game::GameCore::processMenuViewSwitch // label: processMenuViewSwitch + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046B980 = 0x0046B980, - // label: viewportAndScrollingRelated + // label: _HoldStrong::Game::GameCore::viewportAndScrollingRelated + // label: updateViewportScrollCountdown + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046BB20 = 0x0046BB20, + // label: _HoldStrong::Game::GameCore::getAreWeInAInGameMenu // label: getAreWeInAInGameMenu + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046BB60 = 0x0046BB60, + // label: _HoldStrong::Game::GameCore::isInBuildingTab // label: isInBuildingTab + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046BB80 = 0x0046BB80, + // label: _HoldStrong::Game::GameCore::removeJesterAndLadyUnitsInCertainMissions // label: removeJesterAndLadyUnitsInCertainMissions + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046BBD0 = 0x0046BBD0, - // label: removeLadyAndJester + // label: removePlayerLadyAndJester // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046BC90 = 0x0046BC90, + // label: _HoldStrong::Game::GameCore::isGameHaltingMenuOpen // label: isGameHaltingMenuOpen + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046BD20 = 0x0046BD20, - // label: setStartDateUnk + // label: _HoldStrong::Game::GameCore::setStartDateUnk + // label: computeTrailMissionStartDates + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x0046BD50 = 0x0046BD50, // type: function SHC_3BB0A8C1_0x0046BDB0 = 0x0046BDB0, + // label: _HoldStrong::IO::ResourceManager::loadMapMetaByID // label: loadMapMetaByID + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C200 = 0x0046C200, + // label: _HoldStrong::IO::ResourceManager::getChecksumOfMapByName // label: getChecksumOfMapByName + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C280 = 0x0046C280, + // label: _HoldStrong::IO::ResourceManager::getLoadedMapNameForIndex // label: getLoadedMapNameForIndex + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C2E0 = 0x0046C2E0, + // label: _HoldStrong::IO::ResourceManager::getFileNameOfCurrentActiveResource // label: getFileNameOfCurrentActiveResource + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C300 = 0x0046C300, + // label: _HoldStrong::IO::ResourceManager::loadConfigPathTxt // label: loadConfigPathTxt + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C320 = 0x0046C320, + // label: _HoldStrong::IO::ResourceManager::doesFileExist // label: doesFileExist + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C420 = 0x0046C420, - // label: setGfxFileFilter + // label: _HoldStrong::IO::ResourceManager::meth_0x46c450 + // label: setupGfxFileDialog + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C450 = 0x0046C450, - // label: setHelpFileFilter + // label: _HoldStrong::IO::ResourceManager::meth_0x46c480 + // label: setupHelpFileDialog + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C480 = 0x0046C480, - // label: setSoundFileFilter + // label: _HoldStrong::IO::ResourceManager::meth_0x46c4b0 + // label: setupFxFileDialog + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C4B0 = 0x0046C4B0, - // label: getSimpleFirst1024ByteSumOfFile + // label: _HoldStrong::IO::ResourceManager::getSimpleFirst1024ByteSumOfFile + // label: getSignedByteSumOfFile_or_minus1 + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x0046C4E0 = 0x0046C4E0, // type: function SHC_3BB0A8C1_0x0046C520 = 0x0046C520, // label: Constructor_BitMapState + // label: _HoldStrong::IO::BitMapState::Constructor_BitMapState + // location: // location: OpenSHC/IO/BitMapState // type: function SHC_3BB0A8C1_0x0046C580 = 0x0046C580, + // label: _HoldStrong::IO::BitMapState::readBitmapFace // label: readBitmapFace + // location: // location: OpenSHC/IO/BitMapState // type: function SHC_3BB0A8C1_0x0046C5A0 = 0x0046C5A0, // type: function SHC_3BB0A8C1_0x0046C5F0 = 0x0046C5F0, + // label: _HoldStrong::IO::BitMapState::blitBitmap24BitToSurface565 // label: blitBitmap24BitToSurface565 + // location: // location: OpenSHC/IO/BitMapState // type: function SHC_3BB0A8C1_0x0046C680 = 0x0046C680, + // label: _HoldStrong::IO::BitMapState::blitPalettedBitmapToSurface565 // label: blitPalettedBitmapToSurface565 + // location: // location: OpenSHC/IO/BitMapState // type: function SHC_3BB0A8C1_0x0046C7A0 = 0x0046C7A0, // type: function SHC_3BB0A8C1_0x0046C7D0 = 0x0046C7D0, + // label: _HoldStrong::IO::BitMapState::copyBitmapToTextureBuffer // label: copyBitmapToTextureBuffer + // location: // location: OpenSHC/IO/BitMapState // type: function SHC_3BB0A8C1_0x0046C8D0 = 0x0046C8D0, + // label: _HoldStrong::Map::Navigation::DirectionAlgorithmState::calculateOrientation // label: calculateOrientation + // location: // location: OpenSHC/Map/Navigation/DirectionAlgorithmState // type: function SHC_3BB0A8C1_0x0046C920 = 0x0046C920, - // label: calculateOrientationFromTiles + // label: calculateOrientationBetweenTiles // location: OpenSHC/Map/Navigation/DirectionAlgorithmState // type: function SHC_3BB0A8C1_0x0046C9A0 = 0x0046C9A0, + // label: _HoldStrong::Map::Navigation::DirectionAlgorithmState::calculatePreferredRelativeOrientation // label: calculatePreferredRelativeOrientation + // location: // location: OpenSHC/Map/Navigation/DirectionAlgorithmState // type: function SHC_3BB0A8C1_0x0046C9E0 = 0x0046C9E0, - // label: somethingWithProjectileDistance + // label: _HoldStrong::Map::Navigation::DirectionAlgorithmState::somethingWithProjectileDistance + // label: computeOrientationToTarget + // location: // location: OpenSHC/Map/Navigation/DirectionAlgorithmState // type: function SHC_3BB0A8C1_0x0046CAA0 = 0x0046CAA0, + // label: _HoldStrong::Map::Navigation::DirectionAlgorithmState::setAxisBasedDistanceResult // label: setAxisBasedDistanceResult + // location: // location: OpenSHC/Map/Navigation/DirectionAlgorithmState // type: function SHC_3BB0A8C1_0x0046CC80 = 0x0046CC80, + // label: _HoldStrong::Map::Navigation::DirectionAlgorithmState::getMouseVectorLengthBasedOnDirection // label: getMouseVectorLengthBasedOnDirection + // location: // location: OpenSHC/Map/Navigation/DirectionAlgorithmState // type: function SHC_3BB0A8C1_0x0046CCD0 = 0x0046CCD0, + // label: _HoldStrong::Map::Navigation::DirectionAlgorithmState::computeHash // label: computeHash + // location: // location: OpenSHC/Map/Navigation/DirectionAlgorithmState // type: function SHC_3BB0A8C1_0x0046CD30 = 0x0046CD30, - // label: computeMaskedBitAccumulator + // label: computeMaskedRotatingHash // location: OpenSHC/Map/Navigation/DirectionAlgorithmState // type: function SHC_3BB0A8C1_0x0046CDF0 = 0x0046CDF0, @@ -23138,14 +24356,20 @@ enum { // type: /undefined *32 SHC_3BB0A8C1_0x0046CEB0 = 0x0046CEB0, // label: Cosntructor_Stopwatch + // label: _HoldStrong::Util::Timing::Stopwatch::Cosntructor_Stopwatch + // location: // location: OpenSHC/Util/Timing/Stopwatch // type: function SHC_3BB0A8C1_0x0046CEC0 = 0x0046CEC0, + // label: _HoldStrong::Util::Timing::Stopwatch::start // label: start + // location: // location: OpenSHC/Util/Timing/Stopwatch // type: function SHC_3BB0A8C1_0x0046CED0 = 0x0046CED0, + // label: _HoldStrong::Util::Timing::Stopwatch::stop // label: stop + // location: // location: OpenSHC/Util/Timing/Stopwatch // type: function SHC_3BB0A8C1_0x0046CEF0 = 0x0046CEF0, @@ -23158,22 +24382,32 @@ enum { // type: function SHC_3BB0A8C1_0x0046CF90 = 0x0046CF90, // label: Constructor_FilePackager + // label: _HoldStrong::IO::FilePackager::Constructor_FilePackager + // location: // location: OpenSHC/IO/FilePackager // type: function SHC_3BB0A8C1_0x0046D070 = 0x0046D070, + // label: _HoldStrong::IO::FilePackager::copyFromOldToNewMapDirectory // label: copyFromOldToNewMapDirectory + // location: // location: OpenSHC/IO/FilePackager // type: function SHC_3BB0A8C1_0x0046D090 = 0x0046D090, // label: Constructor_DecoderState + // label: _HoldStrong::IO::DecoderState::Constructor_DecoderState + // location: // location: OpenSHC/IO/DecoderState // type: function SHC_3BB0A8C1_0x0046D140 = 0x0046D140, + // label: _HoldStrong::IO::DecoderState::compressRLE // label: compressRLE + // location: // location: OpenSHC/IO/DecoderState // type: function SHC_3BB0A8C1_0x0046D150 = 0x0046D150, + // label: _HoldStrong::IO::DecoderState::decompressRLE // label: decompressRLE + // location: // location: OpenSHC/IO/DecoderState // type: function SHC_3BB0A8C1_0x0046D200 = 0x0046D200, @@ -23393,23 +24627,31 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0046F570 = 0x0046F570, - // label: FUN_0046f610 + // label: ostream_setVbaseVftable // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0046F610 = 0x0046F610, - // label: meth_0x46f620 + // label: HoldStrong_lib::stdLib::ios::ios_base::meth_0x46f620 + // label: ios_base_dtor + // location: // location: HoldStrong_lib/stdLib/ios/ios_base // type: function SHC_3BB0A8C1_0x0046F620 = 0x0046F620, - // label: meth_0x46f630 + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::meth_0x46f630 + // label: streambuf_getActivePtr + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x0046F630 = 0x0046F630, - // label: meth_0x46f650 + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::meth_0x46f650 + // label: streambuf_getLocaleRef + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x0046F650 = 0x0046F650, - // label: unwind_related_02 + // label: HoldStrong_lib::unwind_related_02 + // label: stl_ehUnwindReleaseLock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0046F690 = 0x0046F690, @@ -23417,22 +24659,34 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0046F6B0 = 0x0046F6B0, + // label: stl_badAllocCtor + // location: + // type: function + SHC_3BB0A8C1_0x0046F710 = 0x0046F710, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::cleanDirectDraw // label: cleanDirectDraw + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x0046F730 = 0x0046F730, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::setWindowStyleRectAndPosition // label: setWindowStyleRectAndPosition + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x0046F750 = 0x0046F750, // label: prt_46f77c_fef6e54e // location: OpenSHC/UI/Rendering/WindowAndDirectDraw/setWindowStyleRectAndPosition/override SHC_3BB0A8C1_0x0046F77C = 0x0046F77C, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::setupPreferredScreenResolution // label: setupPreferredScreenResolution + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x0046F880 = 0x0046F880, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::initializeDirectDraw // label: initializeDirectDraw + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x0046FA70 = 0x0046FA70, @@ -23481,121 +24735,183 @@ enum { // label: prt_46fe9e_9b16d2f0 // location: OpenSHC/UI/Rendering/WindowAndDirectDraw/initializeDirectDraw/override SHC_3BB0A8C1_0x0046FE9E = 0x0046FE9E, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::createCrusaderWindow // label: createCrusaderWindow + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x0046FF50 = 0x0046FF50, - // label: prepareWindowAndDDrawUnk + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::prepareWindowAndDDrawUnk + // label: reinitWindowAndDirectDraw + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x0046FFB0 = 0x0046FFB0, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::renderBltAndFlip // label: renderBltAndFlip + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x00470040 = 0x00470040, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::bltMapGameSurfaceToScreenMenuSurfaceComplete // label: bltMapGameSurfaceToScreenMenuSurfaceComplete + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x00470610 = 0x00470610, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::bltMapGameSurfaceToScreenMenuSurface // label: bltMapGameSurfaceToScreenMenuSurface + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x004706A0 = 0x004706A0, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::bltMapGameSurfaceToScreen // label: bltMapGameSurfaceToScreen + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x004706E0 = 0x004706E0, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::bltScreenMenuSurfaceToScreen // label: bltScreenMenuSurfaceToScreen + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x004707F0 = 0x004707F0, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::reinitWindow // label: reinitWindow + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x004708F0 = 0x004708F0, // label: Constructor_MouseState + // label: _HoldStrong::Input::MouseState::Constructor_MouseState + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x004709B0 = 0x004709B0, + // label: _HoldStrong::Input::MouseState::loadAndSetCursor // label: loadAndSetCursor + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00470A00 = 0x00470A00, - // label: extendSelectionBoxToMouse + // label: _HoldStrong::Input::MouseState::meth_0x470b30 + // label: updateMouseSelectionEndBox + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00470B30 = 0x00470B30, - // label: updateRightDragCameraControl + // label: _HoldStrong::Input::MouseState::rightClickMenuUnk + // label: processRightClickDragGesture + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00470BC0 = 0x00470BC0, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawColorBox // label: drawColorBox + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00470E90 = 0x00470E90, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawBoxWithRoundedEdgesAndColor // label: drawBoxWithRoundedEdgesAndColor + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00470EE0 = 0x00470EE0, // type: function SHC_3BB0A8C1_0x00470FC0 = 0x00470FC0, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawBlendedBlackBox // label: drawBlendedBlackBox + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00471000 = 0x00471000, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::dimBox // label: dimBox + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00471050 = 0x00471050, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawBoxWithRoundedEdges // label: drawBoxWithRoundedEdges + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x004710A0 = 0x004710A0, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawBorderBox // label: drawBorderBox + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x004711B0 = 0x004711B0, - // label: drawDiagonalHeigherThanWideUnk + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawDiagonalHeigherThanWideUnk + // label: drawLineBresenhamSteep + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00471220 = 0x00471220, - // label: drawDiagonalWiderThanHighUnk + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawDiagonalWiderThanHighUnk + // label: drawLineBresenhamShallow + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00471280 = 0x00471280, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawPixelPattern4x4OverWholeScreen // label: drawPixelPattern4x4OverWholeScreen + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x004712E0 = 0x004712E0, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawBorderedBoxWithBlendedBackground // label: drawBorderedBoxWithBlendedBackground + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00471340 = 0x00471340, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawBorderedBoxWithCustomBlendedBackground // label: drawBorderedBoxWithCustomBlendedBackground + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00471440 = 0x00471440, + // label: getCursorTextWidth + // location: + // type: function + SHC_3BB0A8C1_0x00471570 = 0x00471570, + // label: _HoldStrong::Text::UserTextHandler::handleBackspace // label: handleBackspace + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x004715A0 = 0x004715A0, + // label: _HoldStrong::Text::FontSizeClass::getWidthOfWideText // label: getWidthOfWideText + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00471610 = 0x00471610, + // label: _HoldStrong::Text::FontSizeClass::meth_0x471670 // label: getWideCharWidth + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00471670 = 0x00471670, + // label: _HoldStrong::Text::TextManager::computeTextWidth // label: computeTextWidth + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00471690 = 0x00471690, - // label: computeNumberTextWidth + // label: _HoldStrong::Text::TextManager::meth_0x4716d0 + // label: getIntegerTextWidth + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x004716D0 = 0x004716D0, + // label: _HoldStrong::Audio::MissingResourceState::playResourceLackSFX // label: playResourceLackSFX + // location: // location: OpenSHC/Audio/MissingResourceState // type: function SHC_3BB0A8C1_0x00471720 = 0x00471720, @@ -23612,190 +24928,280 @@ enum { // type: /undefined *32 SHC_3BB0A8C1_0x00471804 = 0x00471804, // label: Constructor_RNG + // label: _HoldStrong::Random::RNG::Constructor_RNG + // location: // location: OpenSHC/Random/RNG // type: function SHC_3BB0A8C1_0x00471810 = 0x00471810, + // label: _HoldStrong::IO::LowLevelMemory::copyData // label: copyData + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x00471830 = 0x00471830, + // label: _HoldStrong::IO::LowLevelMemory::fillMemoryWithIntegerValue // label: fillMemoryWithIntegerValue + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x00471860 = 0x00471860, + // label: _HoldStrong::IO::LowLevelMemory::fillMemoryWithShortValue // label: fillMemoryWithShortValue + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x00471890 = 0x00471890, + // label: _HoldStrong::IO::LowLevelMemory::fillMemoryWithByteValue // label: fillMemoryWithByteValue + // location: // location: OpenSHC/IO/LowLevelMemory // type: function SHC_3BB0A8C1_0x004718C0 = 0x004718C0, + // label: _HoldStrong::Game::GameCore::incrementMissionProgress // label: incrementMissionProgress + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x004718F0 = 0x004718F0, + // label: _HoldStrong::Game::GameCore::switchToScenarioDescriptionMenuView + // location: // type: function SHC_3BB0A8C1_0x004719E0 = 0x004719E0, - // label: incrementMission + // label: _HoldStrong::Game::GameCore::meth_0x471a00 + // label: advanceToNextMission + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x00471A00 = 0x00471A00, - // label: exitToScenarioDescriptionMenu + // label: gotoScenarioDescription // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00471A80 = 0x00471A80, + // label: _HoldStrong::Game::GameCore::hideOrUnhideUI // label: hideOrUnhideUI + // location: // location: OpenSHC/Game/GameCore // type: function SHC_3BB0A8C1_0x00471AA0 = 0x00471AA0, // label: Constructor_ResourceManager + // label: _HoldStrong::IO::ResourceManager::Constructor_ResourceManager + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471BE0 = 0x00471BE0, + // label: _HoldStrong::IO::ResourceManager::syncLoadedMapNames // label: syncLoadedMapNames + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471C10 = 0x00471C10, + // label: _HoldStrong::IO::ResourceManager::swapMapDataWithNextMap // label: swapMapDataWithNextMap + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471C50 = 0x00471C50, + // label: _HoldStrong::IO::ResourceManager::replaceMapNameWith // label: replaceMapNameWith + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471CD0 = 0x00471CD0, - // label: getCurrentResourceCoreNameUnk + // label: _HoldStrong::IO::ResourceManager::getCurrentResourceCoreNameUnk + // label: getCurrentResourceBaseName + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471D30 = 0x00471D30, + // label: _HoldStrong::IO::ResourceManager::doesFileOfActiveResourceExist // label: doesFileOfActiveResourceExist + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471DC0 = 0x00471DC0, - // label: resetOpenFileNameStruct + // label: _HoldStrong::IO::ResourceManager::meth_0x471df0 + // label: initOpenFileNameStruct + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471DF0 = 0x00471DF0, + // label: _HoldStrong::IO::ResourceManager::readCurrentResourceIntoDestination // label: readCurrentResourceIntoDestination + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471E50 = 0x00471E50, + // label: _HoldStrong::IO::ResourceManager::getCurrentResourceSize // label: getCurrentResourceSize + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471EB0 = 0x00471EB0, + // label: _HoldStrong::IO::ResourceManager::readFirstPartOfCurrentResourceIntoMemory // label: readFirstPartOfCurrentResourceIntoMemory + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471F10 = 0x00471F10, + // label: _HoldStrong::IO::ResourceManager::readNextPartOfCurrentResourceIntoMemory // label: readNextPartOfCurrentResourceIntoMemory + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00471FC0 = 0x00471FC0, - // label: showOpenGfxFileDialog + // label: _HoldStrong::IO::ResourceManager::meth_0x472080 + // label: showImportTgxDialog + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00472080 = 0x00472080, + // label: _HoldStrong::IO::ResourceManager::meth_0x4720c0 // label: showOpenHelpFileDialog + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x004720C0 = 0x004720C0, + // label: _HoldStrong::IO::ResourceManager::meth_0x472100 // label: showSaveHelpFileDialog + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00472100 = 0x00472100, - // label: showOpenSoundFileDialog + // label: _HoldStrong::IO::ResourceManager::meth_0x472140 + // label: showImportSoundDialog + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00472140 = 0x00472140, + // label: _HoldStrong::IO::ResourceManager::fileHashFunctionByteByByte // label: fileHashFunctionByteByByte + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00472180 = 0x00472180, // type: function SHC_3BB0A8C1_0x004721D0 = 0x004721D0, + // label: _HoldStrong::IO::BitMapState::setBMPFacesToMagenta // label: setBMPFacesToMagenta + // location: // location: OpenSHC/IO/BitMapState // type: function SHC_3BB0A8C1_0x00472230 = 0x00472230, // type: function SHC_3BB0A8C1_0x00472240 = 0x00472240, + // label: _HoldStrong::IO::BitMapState::loadBitmapHeader // label: loadBitmapHeader + // location: // location: OpenSHC/IO/BitMapState // type: function SHC_3BB0A8C1_0x00472270 = 0x00472270, + // label: _HoldStrong::IO::BitMapState::loadAndBlitBitmap // label: loadAndBlitBitmap + // location: // location: OpenSHC/IO/BitMapState // type: function SHC_3BB0A8C1_0x004723E0 = 0x004723E0, + // label: _HoldStrong::IO::DecoderState::doImplode // label: doImplode + // location: // location: OpenSHC/IO/DecoderState // type: function SHC_3BB0A8C1_0x004724C0 = 0x004724C0, + // label: _HoldStrong::IO::DecoderState::doExplode // label: doExplode + // location: // location: OpenSHC/IO/DecoderState // type: function SHC_3BB0A8C1_0x004725A0 = 0x004725A0, - // label: meth_0x472680 + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::meth_0x472680 + // label: basic_streambuf_dtor + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00472680 = 0x00472680, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x472700 // label: virt_meth_0x472700 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00472700 = 0x00472700, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x472710 // label: virt_meth_0x472710 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00472710 = 0x00472710, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x472720 // label: virt_meth_0x472720 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00472720 = 0x00472720, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x472740 // label: virt_meth_0x472740 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00472740 = 0x00472740, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x472750 // label: virt_meth_0x472750 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00472750 = 0x00472750, - // label: meth_0x472760 + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::meth_0x472760 + // label: streambufGetCurrentPtr + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00472760 = 0x00472760, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x472780 // label: virt_meth_0x472780 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00472780 = 0x00472780, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x4727b0 // label: virt_meth_0x4727b0 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x004727B0 = 0x004727B0, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x4727d0 // label: virt_meth_0x4727d0 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x004727D0 = 0x004727D0, + // label: + // HoldStrong_lib::stdLib::ios::basic_ostream_>::~basic_ostream> // label: ~basic_ostream> + // location: // location: HoldStrong_lib/stdLib/ios/basic_ostream_> // type: function SHC_3BB0A8C1_0x004727F0 = 0x004727F0, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x472830 // label: virt_meth_0x472830 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00472830 = 0x00472830, // label: ??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ // label: operator* + // label: std::_String_const_iterator,class_std::allocator_>::operator* // location: // location: std/_String_const_iterator,class_std/allocator_> // type: function SHC_3BB0A8C1_0x00472850 = 0x00472850, - // label: meth_0x472890 + // label: HoldStrong_lib::StringObject::meth_0x472890 + // label: stringFillRange + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00472890 = 0x00472890, - // label: meth_0x4728f0 + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::meth_0x4728f0 + // label: streambufInitPointers + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x004728F0 = 0x004728F0, @@ -23803,113 +25209,170 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00472950 = 0x00472950, - // label: prepareWindowAndDDraw_2Unk + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::prepareWindowAndDDraw_2Unk + // label: reinitWindowAndDirectDrawWithMode + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x004729B0 = 0x004729B0, + // label: _HoldStrong::Input::MouseState::drawMouseBasedBox // label: drawMouseBasedBox + // location: // location: OpenSHC/Input/MouseState // type: function SHC_3BB0A8C1_0x00472A90 = 0x00472A90, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawLine // label: drawLine + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00472B20 = 0x00472B20, + // label: _HoldStrong::Text::UserTextHandler::clearTextAndCursor // label: clearTextAndCursor + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00472B90 = 0x00472B90, + // label: clearTextInputBox + // location: + // type: function + SHC_3BB0A8C1_0x00472BE0 = 0x00472BE0, + // label: _HoldStrong::Text::UserTextHandler::copyIntoTextArray // label: copyIntoTextArray + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00472C30 = 0x00472C30, - // label: isTextInputAtCapacity + // label: checkTextBoxInputRoom // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00472CB0 = 0x00472CB0, + // label: _HoldStrong::Text::UserTextHandler::handleDeleteKey // label: handleDeleteKey + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00472D00 = 0x00472D00, + // label: _HoldStrong::Text::FontSizeClass::renderText // label: renderText + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00472D60 = 0x00472D60, // type: function SHC_3BB0A8C1_0x00472DD0 = 0x00472DD0, - // label: renderMultilineTextUnk + // label: _HoldStrong::Text::FontSizeClass::renderMultilineTextUnk + // label: renderWrappedMultilineText + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00472EF0 = 0x00472EF0, - // label: renderMultilineWideTextUnk + // label: _HoldStrong::Text::FontSizeClass::renderMultilineWideTextUnk + // label: renderWrappedMultilineWideText + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00473300 = 0x00473300, - // label: renderSomeSpecificTextUnk + // label: _HoldStrong::Text::FontSizeClass::renderSomeSpecificTextUnk + // label: renderPartialMultilineText + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x004733A0 = 0x004733A0, - // label: renderCharUnk + // label: _HoldStrong::Text::FontSizeClass::renderCharUnk + // label: renderTextCharGlyph + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00473640 = 0x00473640, + // label: _HoldStrong::Text::FontSizeClass::renderWideText // label: renderWideText + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x004737B0 = 0x004737B0, + // label: _HoldStrong::Text::FontSizeClass::meth_0x473830 // label: renderWideChar + // location: // location: OpenSHC/Text/FontSizeClass // type: function SHC_3BB0A8C1_0x00473830 = 0x00473830, + // label: _HoldStrong::Text::TextManager::loadCRTex // label: loadCRTex + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00473870 = 0x00473870, - // label: renderMultilineText5Unk + // label: _HoldStrong::Text::TextManager::renderMultilineText5Unk + // label: renderMultilineTextAtFontSize + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00473A70 = 0x00473A70, - // label: renderMultilineText6Unk + // label: _HoldStrong::Text::TextManager::renderMultilineText6Unk + // label: renderMultilineTextWithShadow + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00473AC0 = 0x00473AC0, - // label: renderMultilineWideTextUnk + // label: _HoldStrong::Text::TextManager::renderMultilineWideTextUnk + // label: renderMultilineWideTextWithShadow + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00473B50 = 0x00473B50, - // label: renderSomeSpecificTextUnk + // label: _HoldStrong::Text::TextManager::renderSomeSpecificTextUnk + // label: renderPartialMultilineTextWrapper + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00473BE0 = 0x00473BE0, + // label: _HoldStrong::IO::DecoderState::encodeData // label: encodeData + // location: // location: OpenSHC/IO/DecoderState // type: function SHC_3BB0A8C1_0x00473C10 = 0x00473C10, + // label: _HoldStrong::IO::DecoderState::decodeData // label: decodeData + // location: // location: OpenSHC/IO/DecoderState // type: function SHC_3BB0A8C1_0x00473C70 = 0x00473C70, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x473cf0 // label: virt_meth_0x473cf0 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00473CF0 = 0x00473CF0, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x473d90 // label: virt_meth_0x473d90 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00473D90 = 0x00473D90, - // label: meth_0x473e30 + // label: HoldStrong_lib::StringObject::meth_0x473e30 + // label: stringErase + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00473E30 = 0x00473E30, - // label: meth_0x473ec0 + // label: HoldStrong_lib::StringObject::meth_0x473ec0 + // label: stringShrinkToSmall + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00473EC0 = 0x00473EC0, + // label: + // HoldStrong_lib::stdLib::ios::basic_streambuf_>::basic_streambuf_> // label: basic_streambuf_> + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00473F10 = 0x00473F10, - // label: meth_0x473fc0 + // label: HoldStrong_lib::StringObject::meth_0x473fc0 + // label: stringReserveGrow + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00473FC0 = 0x00473FC0, @@ -23917,33 +25380,51 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0047403D = 0x0047403D, + // label: stl_ehFunclet_00474061 + // location: + // type: function + SHC_3BB0A8C1_0x00474061 = 0x00474061, + // label: stl_stringAssignN + // location: // type: function SHC_3BB0A8C1_0x00474067 = 0x00474067, // label: Catch_All@004740d0 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x004740D0 = 0x004740D0, + // label: _HoldStrong::Text::UserTextHandler::handleCharacterCode // label: handleCharacterCode + // location: // location: OpenSHC/Text/UserTextHandler // type: function SHC_3BB0A8C1_0x00474110 = 0x00474110, + // label: _HoldStrong::Text::TextManager::renderTextToScreen // label: renderTextToScreen + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00474250 = 0x00474250, + // label: _HoldStrong::Text::TextManager::renderWideText // label: renderWideText + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x004742F0 = 0x004742F0, + // label: _HoldStrong::Text::TextManager::renderNumber2 // label: renderNumber2 + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00474390 = 0x00474390, + // label: _HoldStrong::Text::TextManager::renderNumberToScreen2 // label: renderNumberToScreen2 + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00474430 = 0x00474430, + // label: _HoldStrong::IO::FilePackager::writeMapOrSaveFile // label: writeMapOrSaveFile + // location: // location: OpenSHC/IO/FilePackager // type: function SHC_3BB0A8C1_0x00474480 = 0x00474480, @@ -24359,269 +25840,384 @@ enum { SHC_3BB0A8C1_0x00474A0F = 0x00474A0F, // type: /byte SHC_3BB0A8C1_0x00474A10 = 0x00474A10, + // label: _HoldStrong::IO::FilePackager::readMapOrSavFile // label: readMapOrSavFile + // location: // location: OpenSHC/IO/FilePackager // type: function SHC_3BB0A8C1_0x00474A20 = 0x00474A20, // type: function SHC_3BB0A8C1_0x00474F30 = 0x00474F30, - // label: readMapHeaderSiegeInfoUnk + // label: _HoldStrong::IO::FilePackager::readMapHeaderSiegeInfoUnk + // label: readFilePackagerSectionByID + // location: // location: OpenSHC/IO/FilePackager // type: function SHC_3BB0A8C1_0x004750E0 = 0x004750E0, + // label: _HoldStrong::IO::FilePackager::readMapHeader // label: readMapHeader + // location: // location: OpenSHC/IO/FilePackager // type: function SHC_3BB0A8C1_0x004752D0 = 0x004752D0, + // label: _HoldStrong::IO::FilePackager::unpackAIVFile // label: unpackAIVFile + // location: // location: OpenSHC/IO/FilePackager // type: function SHC_3BB0A8C1_0x00475690 = 0x00475690, + // label: HoldStrong_lib::StringObject::destruct // label: destruct + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00475880 = 0x00475880, - // label: meth_0x4758b0 + // label: HoldStrong_lib::StringObject::meth_0x4758b0 + // label: stringMakeIterator + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x004758B0 = 0x004758B0, - // label: FUN_004758f0 + // label: fputcReturnsNotEof // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x004758F0 = 0x004758F0, + // label: HoldStrong_lib::std::basic_filebuf_>::virt_meth_0x475910 // label: virt_meth_0x475910 + // location: // location: HoldStrong_lib/std/basic_filebuf_> // type: function SHC_3BB0A8C1_0x00475910 = 0x00475910, + // label: HoldStrong_lib::std::basic_filebuf_>::virt_meth_0x475940 // label: virt_meth_0x475940 + // location: // location: HoldStrong_lib/std/basic_filebuf_> // type: function SHC_3BB0A8C1_0x00475940 = 0x00475940, + // label: HoldStrong_lib::std::basic_filebuf_>::virt_meth_0x4759b0 // label: virt_meth_0x4759b0 + // location: // location: HoldStrong_lib/std/basic_filebuf_> // type: function SHC_3BB0A8C1_0x004759B0 = 0x004759B0, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x475a00 // label: virt_meth_0x475a00 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00475A00 = 0x00475A00, - // label: meth_0x475a80 + // label: HoldStrong_lib::StringObject::meth_0x475a80 + // label: stringInsert + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00475A80 = 0x00475A80, + // label: HoldStrong_lib::std::runtime_error::virt_meth_0x475b80 // label: virt_meth_0x475b80 + // location: // location: HoldStrong_lib/std/runtime_error // type: function SHC_3BB0A8C1_0x00475B80 = 0x00475B80, + // label: HoldStrong_lib::std::runtime_error::~runtime_error // label: ~runtime_error + // location: // location: HoldStrong_lib/std/runtime_error // type: function SHC_3BB0A8C1_0x00475B90 = 0x00475B90, - // label: meth_0x475be0 + // label: HoldStrong_lib::cls_0x477080::meth_0x475be0 + // label: localeInfoDtor + // location: // location: HoldStrong_lib/cls_0x477080 // type: function SHC_3BB0A8C1_0x00475BE0 = 0x00475BE0, + // label: _HoldStrong::UI::Rendering::PencilRenderCore::drawHeaderTextBanner // label: drawHeaderTextBanner + // location: // location: OpenSHC/UI/Rendering/PencilRenderCore // type: function SHC_3BB0A8C1_0x00475CC0 = 0x00475CC0, + // label: _HoldStrong::Text::TextManager::renderInGameTextWithShadow // label: renderInGameTextWithShadow + // location: // location: OpenSHC/Text/TextManager // type: function SHC_3BB0A8C1_0x00475E00 = 0x00475E00, + // label: HoldStrong_lib::StringObject::cls_0x475e90_someBasicStr // label: cls_0x475e90_someBasicStr + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00475E90 = 0x00475E90, + // label: HoldStrong_lib::StringObject::someStringCopyOperation // label: someStringCopyOperation + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00475F40 = 0x00475F40, + // label: HoldStrong_lib::StringObject::append // label: append + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00476020 = 0x00476020, - // label: append2Unk + // label: HoldStrong_lib::StringObject::append2Unk + // label: stl_stringAssignCount + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00476110 = 0x00476110, + // label: _HoldStrong::Audio::MissingResourceState::renderResourceMissingText // label: renderResourceMissingText + // location: // location: OpenSHC/Audio/MissingResourceState // type: function SHC_3BB0A8C1_0x004761E0 = 0x004761E0, + // label: HoldStrong_lib::StringObject::cls_0x475e90_someBasicStr // label: cls_0x475e90_someBasicStr + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x004762C0 = 0x004762C0, + // label: HoldStrong_lib::std::basic_filebuf_>::virt_meth_0x4762f0 // label: virt_meth_0x4762f0 + // location: // location: HoldStrong_lib/std/basic_filebuf_> // type: function SHC_3BB0A8C1_0x004762F0 = 0x004762F0, - // label: FUN_00476650 + // label: appendCStringToStringObject // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00476650 = 0x00476650, // type: function SHC_3BB0A8C1_0x00476660 = 0x00476660, - // label: meth_0x476680 + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::meth_0x476680 + // label: filebufSync + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00476680 = 0x00476680, // type: function SHC_3BB0A8C1_0x00476720 = 0x00476720, + // label: HoldStrong_lib::std::logic_error::~logic_error // label: ~logic_error + // location: // location: HoldStrong_lib/std/logic_error // type: function SHC_3BB0A8C1_0x004769A0 = 0x004769A0, // label: meth_0x476a10 // location: HoldStrong_lib/std/runtime_error + // type: function SHC_3BB0A8C1_0x00476A10 = 0x00476A10, - // label: meth_0x476a50 + // label: HoldStrong_lib::StringObject::meth_0x476a50 + // label: stringAssignCStr + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00476A50 = 0x00476A50, + // label: HoldStrong_lib::std::basic_filebuf_>::virt_meth_0x476a90 // label: virt_meth_0x476a90 + // location: // location: HoldStrong_lib/std/basic_filebuf_> // type: function SHC_3BB0A8C1_0x00476A90 = 0x00476A90, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x476e60 // label: virt_meth_0x476e60 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00476E60 = 0x00476E60, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x476f40 // label: virt_meth_0x476f40 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00476F40 = 0x00476F40, - // label: meth_0x477030 + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::meth_0x477030 + // label: filebufClose + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00477030 = 0x00477030, + // label: HoldStrong_lib::cls_0x477080::cls_0x477080 // label: cls_0x477080 + // location: // location: HoldStrong_lib/cls_0x477080 // type: function SHC_3BB0A8C1_0x00477080 = 0x00477080, + // label: HoldStrong_lib::std::runtime_error::runtime_error // label: runtime_error + // location: // location: HoldStrong_lib/std/runtime_error // type: function SHC_3BB0A8C1_0x00477150 = 0x00477150, + // label: HoldStrong_lib::std::ctype::ctype // label: ctype + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x004771D0 = 0x004771D0, + // label: HoldStrong_lib::std::ctype::virt_meth_0x4772d0 // label: virt_meth_0x4772d0 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x004772D0 = 0x004772D0, + // label: HoldStrong_lib::std::ctype::virt_meth_0x4772f0 // label: virt_meth_0x4772f0 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x004772F0 = 0x004772F0, + // label: HoldStrong_lib::std::ctype::virt_meth_0x477320 // label: virt_meth_0x477320 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x00477320 = 0x00477320, + // label: HoldStrong_lib::std::ctype::virt_meth_0x477340 // label: virt_meth_0x477340 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x00477340 = 0x00477340, + // label: HoldStrong_lib::std::ctype::virt_meth_0x477370 // label: virt_meth_0x477370 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x00477370 = 0x00477370, + // label: HoldStrong_lib::std::ctype::virt_meth_0x477380 // label: virt_meth_0x477380 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x00477380 = 0x00477380, + // label: HoldStrong_lib::std::ctype::virt_meth_0x4773b0 // label: virt_meth_0x4773b0 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x004773B0 = 0x004773B0, + // label: HoldStrong_lib::std::ctype::virt_meth_0x4773f0 // label: virt_meth_0x4773f0 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x004773F0 = 0x004773F0, + // label: HoldStrong_lib::std::ctype::virt_meth_0x477400 // label: virt_meth_0x477400 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x00477400 = 0x00477400, + // label: HoldStrong_lib::std::ctype::virt_meth_0x477430 // label: virt_meth_0x477430 + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x00477430 = 0x00477430, + // label: HoldStrong_lib::std::ctype::~ctype // label: ~ctype + // location: // location: HoldStrong_lib/std/ctype // type: function SHC_3BB0A8C1_0x00477470 = 0x00477470, - // label: FUN_004774c0 + // label: ensureCtypeCharFacet // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x004774C0 = 0x004774C0, - // label: FUN_00477540 + // label: iosBaseClearAndThrowOnError // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00477540 = 0x00477540, // label: ctor_0x477670 // location: SHC_3BB0A8C1_0x00477670 = 0x00477670, - // label: FUN_00477690 + // label: initIosBaseWithLocale // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00477690 = 0x00477690, + // label: HoldStrong_lib::StringObject::string_prependUserPathToString // label: string_prependUserPathToString + // location: // location: HoldStrong_lib/StringObject // type: function SHC_3BB0A8C1_0x00477710 = 0x00477710, + // label: _HoldStrong::IO::ResourceManager::getDocumentsFolderString // label: getDocumentsFolderString + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x004778E0 = 0x004778E0, + // label: _HoldStrong::IO::ResourceManager::getSavesPath // label: getSavesPath + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x004779F0 = 0x004779F0, + // label: _HoldStrong::IO::ResourceManager::getDocumentsMapsFolderString // label: getDocumentsMapsFolderString + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00477B00 = 0x00477B00, - // label: meth_0x477c10 + // label: HoldStrong_lib::cls_0x477c10::meth_0x477c10 + // label: filebufDtor + // location: // location: HoldStrong_lib/cls_0x477c10 // type: function SHC_3BB0A8C1_0x00477C10 = 0x00477C10, + // label: HoldStrong_lib::cls_0x477c10::virt_meth_0x477c80 // label: virt_meth_0x477c80 + // location: // location: HoldStrong_lib/cls_0x477c10 // type: function SHC_3BB0A8C1_0x00477C80 = 0x00477C80, - // label: FUN_00477ca0 + // label: getLocaleFacetByIndex // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00477CA0 = 0x00477CA0, + // label: HoldStrong_lib::std::codecvt::codecvt // label: codecvt + // location: // location: HoldStrong_lib/std/codecvt // type: function SHC_3BB0A8C1_0x00477DD0 = 0x00477DD0, + // label: HoldStrong_lib::std::codecvt::virt_meth_0x477e60 // label: virt_meth_0x477e60 + // location: // location: HoldStrong_lib/std/codecvt // type: function SHC_3BB0A8C1_0x00477E60 = 0x00477E60, + // label: HoldStrong_lib::std::codecvt::virt_meth_0x477e80 // label: virt_meth_0x477e80 + // location: // location: HoldStrong_lib/std/codecvt // type: function SHC_3BB0A8C1_0x00477E80 = 0x00477E80, + // label: HoldStrong_lib::std::codecvt::virt_meth_0x477ea0 // label: virt_meth_0x477ea0 + // location: // location: HoldStrong_lib/std/codecvt // type: function SHC_3BB0A8C1_0x00477EA0 = 0x00477EA0, + // label: HoldStrong_lib::std::locale::facet::~facet // label: ~facet + // location: // location: HoldStrong_lib/std/locale/facet // type: function SHC_3BB0A8C1_0x00477EC0 = 0x00477EC0, + // label: _HoldStrong::IO::ResourceManager::discoverMapFiles // label: discoverMapFiles + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00477EE0 = 0x00477EE0, // type: function SHC_3BB0A8C1_0x00478010 = 0x00478010, + // label: _HoldStrong::IO::ResourceManager::resolveResourceFileName // label: resolveResourceFileName + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00478360 = 0x00478360, @@ -24669,19 +26265,23 @@ enum { SHC_3BB0A8C1_0x00478898 = 0x00478898, // type: /undefined *32 SHC_3BB0A8C1_0x0047889C = 0x0047889C, + // label: _HoldStrong::IO::BitMapState::loadFacesBMP // label: loadFacesBMP + // location: // location: OpenSHC/IO/BitMapState // type: function SHC_3BB0A8C1_0x004788A0 = 0x004788A0, - // label: meth_0x478920 + // label: HoldStrong_lib::std::basic_ofstream_>::meth_0x478920 + // label: ofstreamDtor + // location: // location: HoldStrong_lib/std/basic_ofstream_> // type: function SHC_3BB0A8C1_0x00478920 = 0x00478920, - // label: FUN_00478990 + // label: acquireAndReleaseLocaleFacet // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00478990 = 0x00478990, - // label: FUN_00478a50 + // label: ensureCodecvtFacet // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00478A50 = 0x00478A50, @@ -24689,27 +26289,34 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00478AC0 = 0x00478AC0, + // label: _HoldStrong::IO::ResourceManager::loadMapHeaders // label: loadMapHeaders + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00478AE0 = 0x00478AE0, + // label: _HoldStrong::IO::ResourceManager::filterMapsIfMapLock // label: filterMapsIfMapLock + // location: // location: OpenSHC/IO/ResourceManager // type: function SHC_3BB0A8C1_0x00478C60 = 0x00478C60, - // label: FUN_00478d30 + // label: ostreamFlushViaRdbuf // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00478D30 = 0x00478D30, + // label: + // HoldStrong_lib::std::basic_ofstream_>::~basic_ofstream_> // label: ~basic_ofstream_> + // location: // location: HoldStrong_lib/std/basic_ofstream_> // type: function SHC_3BB0A8C1_0x00478D80 = 0x00478D80, - // label: FUN_00478dc0 + // label: ostreamSentryConstructor // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00478DC0 = 0x00478DC0, - // label: FUN_00478e50 + // label: ostreamFlushIfNeeded // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00478E50 = 0x00478E50, @@ -24717,18 +26324,24 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00478EA3 = 0x00478EA3, - // label: FUN_00478eb0 + // label: getLocaleFacetByIndexB // location: HoldStrong_lib/stdLib/ios // type: function SHC_3BB0A8C1_0x00478EB0 = 0x00478EB0, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x478fe0 // label: virt_meth_0x478fe0 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00478FE0 = 0x00478FE0, - // label: meth_0x479020 + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::meth_0x479020 + // label: filebufOpen + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x00479020 = 0x00479020, + // label: stl_ostreamSentryDestructor + // location: // type: function SHC_3BB0A8C1_0x00479140 = 0x00479140, // label: basic_ofstream_write @@ -24741,100 +26354,153 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00479330 = 0x00479330, + // label: stl_ehFunclet_00479361 + // location: + // type: function + SHC_3BB0A8C1_0x00479361 = 0x00479361, // type: function SHC_3BB0A8C1_0x00479369 = 0x00479369, + // label: stl_iostreamFlushAndReleaseLock + // location: + // type: function + SHC_3BB0A8C1_0x00479372 = 0x00479372, + // label: + // HoldStrong_lib::std::basic_ofstream_>::basic_ofstream_> // label: basic_ofstream_> + // location: // location: HoldStrong_lib/std/basic_ofstream_> // type: function SHC_3BB0A8C1_0x00479400 = 0x00479400, + // label: _HoldStrong::UI::Rendering::WindowAndDirectDraw::takeScreenshot // label: takeScreenshot + // location: // location: OpenSHC/UI/Rendering/WindowAndDirectDraw // type: function SHC_3BB0A8C1_0x00479540 = 0x00479540, // type: function SHC_3BB0A8C1_0x00479790 = 0x00479790, + // label: _HoldStrong::Audio::MSS::SoundSystem::endSoundStream // label: endSoundStream + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x004799A0 = 0x004799A0, + // label: _HoldStrong::Audio::MSS::SoundSystem::isSampleOrStreamPlaying // label: isSampleOrStreamPlaying + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479A60 = 0x00479A60, + // label: _HoldStrong::Audio::MSS::SoundSystem::shouldSoundXNotBePlaying // label: shouldSoundXNotBePlaying + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479AB0 = 0x00479AB0, - // label: setStreamAndSampleVolumeUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::setStreamAndSampleVolumeUnk + // label: setSoundStreamVolume + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479AF0 = 0x00479AF0, - // label: restoreMusicVolumeAfterSpeechEnds + // label: _HoldStrong::Audio::MSS::SoundSystem::meth_0x479b70 + // label: updateMusicStreamVolume + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479B70 = 0x00479B70, - // label: loadSoundFileAndGetIndex - // location: OpenSHC/Audio/MSS/SoundSystem + // label: _HoldStrong::Synchrony::GameSynchronyState::meth_0x479c20 + // label: loadSoundFile + // location: + // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00479C20 = 0x00479C20, - // label: findSamplePlaceForSoundUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::findSamplePlaceForSoundUnk + // label: allocateSampleSlotForSound + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479C80 = 0x00479C80, + // label: _HoldStrong::Audio::MSS::SoundSystem::setupSampleForNextSound // label: setupSampleForNextSound + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479CF0 = 0x00479CF0, + // label: _HoldStrong::Audio::MSS::SoundSystem::getAndUpdateSampleStatus // label: getAndUpdateSampleStatus + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479D90 = 0x00479D90, + // label: _HoldStrong::Audio::MSS::SoundSystem::playSound // label: playSound + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479DF0 = 0x00479DF0, - // label: setVolumeUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::setVolumeUnk + // label: setStreamOrSampleVolume + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479E60 = 0x00479E60, - // label: deactivateSoundFromMenuFuncUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::deactivateSoundFromMenuFuncUnk + // label: deactivateAllSound + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479F30 = 0x00479F30, + // label: _HoldStrong::Audio::MSS::SoundSystem::pauseAudioSample // label: pauseAudioSample + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x00479FC0 = 0x00479FC0, + // label: _HoldStrong::Audio::MSS::SoundSystem::resumeAudioSample // label: resumeAudioSample + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A080 = 0x0047A080, - // label: mapLoadingAndLaunchGameRelated1 + // label: _HoldStrong::Audio::MSS::SoundSystem::mapLoadingAndLaunchGameRelated1 + // label: resetSoundAndBattleStateOnLaunch + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A130 = 0x0047A130, + // label: _HoldStrong::Audio::MSS::SoundSystem::setupVolumeAndSoundID // label: setupVolumeAndSoundID + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A1B0 = 0x0047A1B0, + // label: _HoldStrong::Audio::MSS::SoundSystem::setupVolumeAndSoundIDWithMultiplier // label: setupVolumeAndSoundIDWithMultiplier + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A220 = 0x0047A220, - // label: markMusicChangePending + // label: _HoldStrong::Audio::MSS::SoundSystem::meth_0x47a290 + // label: setSoundSystemFlag + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A290 = 0x0047A290, + // label: _HoldStrong::Audio::MSS::SoundSystem::setSomeSoundTime // label: setSomeSoundTime + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A2A0 = 0x0047A2A0, + // label: _HoldStrong::Audio::MSS::SoundSystem::setupVolumeAndSoundID0xF0_100 // label: setupVolumeAndSoundID0xF0_100 + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A310 = 0x0047A310, - // label: selectAndPlayMoodBasedMusic - // location: OpenSHC/Audio/MSS/SoundSystem + // label: selectRandomMusicTrack + // location: // type: function SHC_3BB0A8C1_0x0047A340 = 0x0047A340, // type: /undefined *32 @@ -24847,43 +26513,63 @@ enum { SHC_3BB0A8C1_0x0047A560 = 0x0047A560, // type: /undefined *32 SHC_3BB0A8C1_0x0047A564 = 0x0047A564, + // label: _HoldStrong::Audio::MSS::SoundSystem::setSection1079_28_4_ // label: setSection1079_28_4_ + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A570 = 0x0047A570, - // label: playBattleGloryMusicIfConditionsMet + // label: _HoldStrong::Audio::MSS::SoundSystem::meth_0x47a580 + // label: playBattleGloryMusic + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A580 = 0x0047A580, + // label: _HoldStrong::Audio::MSS::SoundSystem::playDarMehqOrGlory // label: playDarMehqOrGlory + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A5E0 = 0x0047A5E0, + // label: _HoldStrong::Audio::MSS::SoundSystem::playWinMusicVariation // label: playWinMusicVariation + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A630 = 0x0047A630, + // label: _HoldStrong::Audio::MSS::SoundSystem::setupLossMusic // label: setupLossMusic + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A660 = 0x0047A660, + // label: _HoldStrong::Audio::MSS::SoundSystem::shutdownSoundSystem // label: shutdownSoundSystem + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A690 = 0x0047A690, - // label: playMusicUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::playMusicUnk + // label: serviceMusicStreamBuffer + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A790 = 0x0047A790, - // label: stopAllActiveSounds + // label: _HoldStrong::Audio::MSS::SoundSystem::meth_0x47a9e0 + // label: stopAllSpeechAndSamples + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047A9E0 = 0x0047A9E0, + // label: _HoldStrong::Audio::MSS::SoundSystem::endSpeechSoundStreams // label: endSpeechSoundStreams + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047AA70 = 0x0047AA70, + // label: _HoldStrong::Audio::MSS::SoundSystem::playRandomMusic02 // label: playRandomMusic02 + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047AB10 = 0x0047AB10, @@ -24895,27 +26581,39 @@ enum { SHC_3BB0A8C1_0x0047AF3C = 0x0047AF3C, // type: /pointer SHC_3BB0A8C1_0x0047AF40 = 0x0047AF40, + // label: _HoldStrong::Audio::MSS::SoundSystem::handleBattleEndMusicTransition // label: handleBattleEndMusicTransition + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047AF50 = 0x0047AF50, - // label: playSoundStreamUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::playSoundStreamUnk + // label: playSoundStreamOnSlot + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B060 = 0x0047B060, - // label: playMusicFileByName + // label: _HoldStrong::Audio::MSS::SoundSystem::meth_0x47b250 + // label: setCurrentSoundFile + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B250 = 0x0047B250, - // label: playOrSetupMusicUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::playOrSetupMusicUnk + // label: playMusicOnceWithVolume + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B2F0 = 0x0047B2F0, - // label: playOrEndMusicUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::playOrEndMusicUnk + // label: playMusicLoopingWithVolume + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B3C0 = 0x0047B3C0, + // label: _HoldStrong::Audio::MSS::SoundSystem::openSound // label: openSound + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B490 = 0x0047B490, @@ -24923,58 +26621,86 @@ enum { // location: OpenSHC/Audio/MSS // type: function SHC_3BB0A8C1_0x0047B510 = 0x0047B510, - // label: playOnSfx1SoundStreamOnceOrOnRepeatUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::playOnSfx1SoundStreamOnceOrOnRepeatUnk + // label: playSfx1StreamLooping + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B590 = 0x0047B590, + // label: _HoldStrong::Audio::MSS::SoundSystem::playSoundOnSoundStream2 // label: playSoundOnSoundStream2 + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B5C0 = 0x0047B5C0, + // label: _HoldStrong::Audio::MSS::SoundSystem::playSoundOnSpeechStream // label: playSoundOnSpeechStream + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B5F0 = 0x0047B5F0, + // label: _HoldStrong::Audio::MSS::SoundSystem::playSpeechSfx // label: playSpeechSfx + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B670 = 0x0047B670, - // label: playAmbientStreamWithLoop + // label: _HoldStrong::Audio::MSS::SoundSystem::meth_0x47b700 + // label: playSoundStreamFile + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B700 = 0x0047B700, - // label: playSomeMusicUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::playSomeMusicUnk + // label: playMusicFile + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B760 = 0x0047B760, - // label: playOnSfx1SoundStreamUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::playOnSfx1SoundStreamUnk + // label: playSfx1Stream + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B7D0 = 0x0047B7D0, + // label: _HoldStrong::Audio::MSS::SoundSystem::playSoundOnSfxSoundStream2 // label: playSoundOnSfxSoundStream2 + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B800 = 0x0047B800, - // label: playSoundOnStream3Unk + // label: _HoldStrong::Audio::MSS::SoundSystem::playSoundOnStream3Unk + // label: playSpeechOnStream + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B830 = 0x0047B830, - // label: activateSoundFromMenuFuncUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::activateSoundFromMenuFuncUnk + // label: resumeMusicPlayback + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B870 = 0x0047B870, + // label: _HoldStrong::Audio::MSS::SoundSystem::playRandomAmbientMusic // label: playRandomAmbientMusic + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047B890 = 0x0047B890, - // label: playRandomBackgroundMusicUnk + // label: _HoldStrong::Audio::MSS::SoundSystem::playRandomBackgroundMusicUnk + // label: chooseNextBattleMusicTrack + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047BF20 = 0x0047BF20, + // label: _HoldStrong::Audio::MSS::SoundSystem::initMiles // label: initMiles + // location: // location: OpenSHC/Audio/MSS/SoundSystem // type: function SHC_3BB0A8C1_0x0047C400 = 0x0047C400, + // label: ??8@YAHABU_GUID@@0@Z + // label: ?IsEqualGUID@@YAHABU_GUID@@0@Z // label: FID_conflict:IsEqualGUID // label: isEqualGUID // location: @@ -24989,7 +26715,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0047C860 = 0x0047C860, - // label: MenuItemActionHandler_ChooseNetworkServiceProvider_ProviderScrollbarUnk + // label: MenuItemActionHandler_ChooseNetworkServiceProvider_ProviderScrollbar + // label: _HoldStrong::UI::MenuItemActionHandler_ChooseNetworkServiceProvider_ProviderScrollbarUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0047CA80 = 0x0047CA80, @@ -25043,7 +26771,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0047CF50 = 0x0047CF50, - // label: MenuItemActionHandler_ChooseNetworkServiceProvider_ModemScrollbarUnk + // label: MenuItemActionHandler_ChooseNetworkServiceProvider_ModemScrollbar + // label: _HoldStrong::UI::MenuItemActionHandler_ChooseNetworkServiceProvider_ModemScrollbarUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0047D070 = 0x0047D070, @@ -25091,11 +26821,15 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0047D410 = 0x0047D410, + // label: _HoldStrong::Synchrony::GameSynchronyState::getGUIDForSelectedProvider // label: getGUIDForSelectedProvider + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047D4A0 = 0x0047D4A0, + // label: _HoldStrong::Synchrony::GameSynchronyState::setMenuTypeBasedOnDirectPlayGUID // label: setMenuTypeBasedOnDirectPlayGUID + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047D500 = 0x0047D500, @@ -25103,23 +26837,42 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0047D5B0 = 0x0047D5B0, + // label: _HoldStrong::Synchrony::GameSynchronyState::createCompoundAddressBasedOnSelectedProvider // label: createCompoundAddressBasedOnSelectedProvider + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047D6A0 = 0x0047D6A0, + // label: _HoldStrong::Synchrony::GameSynchronyState::setDPlaySessionNameValue // label: setDPlaySessionNameValue + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047DA70 = 0x0047DA70, + // label: _HoldStrong::Synchrony::GameSynchronyState::initializeDirectPlayAndCreateOrJoinSession // label: initializeDirectPlayAndCreateOrJoinSession + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047DB10 = 0x0047DB10, + // label: LAB_close_and_release_if_err + // location: OpenSHC/Synchrony/GameSynchronyState/initializeDirectPlayAndCreateOrJoinSession + SHC_3BB0A8C1_0x0047DD42 = 0x0047DD42, + // label: LAB_release + // location: OpenSHC/Synchrony/GameSynchronyState/initializeDirectPlayAndCreateOrJoinSession + SHC_3BB0A8C1_0x0047DD54 = 0x0047DD54, + // label: LAB_return + // location: OpenSHC/Synchrony/GameSynchronyState/initializeDirectPlayAndCreateOrJoinSession + SHC_3BB0A8C1_0x0047DDE3 = 0x0047DDE3, + // label: _HoldStrong::Synchrony::GameSynchronyState::setSessionDescription // label: setSessionDescription + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047DE00 = 0x0047DE00, - // label: setDirectPlaySessionDescription + // label: _HoldStrong::Synchrony::GameSynchronyState::meth_0x47dea0 + // label: hostDirectPlaySession + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047DEA0 = 0x0047DEA0, @@ -25127,25 +26880,35 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0047DF40 = 0x0047DF40, + // label: _HoldStrong::Synchrony::GameSynchronyState::fetchSessionGUID // label: fetchSessionGUID + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E010 = 0x0047E010, + // label: _HoldStrong::Synchrony::GameSynchronyState::resolveEqualEntries // label: resolveEqualEntries + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E050 = 0x0047E050, + // label: _HoldStrong::Synchrony::GameSynchronyState::clearSessionsList // label: clearSessionsList + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E0E0 = 0x0047E0E0, - // label: DirectPlayModemRelated_MemoryAllocationFunction + // label: _HoldStrong::Global::DirectPlayModemRelated_MemoryAllocationFunction + // label: enumModemAddressCallback + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0047E160 = 0x0047E160, // type: function SHC_3BB0A8C1_0x0047E1A0 = 0x0047E1A0, + // label: _HoldStrong::Synchrony::GameSynchronyState::disconnectDPlay // label: disconnectDPlay + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E240 = 0x0047E240, @@ -25161,53 +26924,75 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0047E420 = 0x0047E420, + // label: _HoldStrong::Synchrony::GameSynchronyState::readGameSpyConfig // label: readGameSpyConfig + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E490 = 0x0047E490, - // label: computeLatencyAdjustmentFromMatchTimes + // label: _HoldStrong::Synchrony::GameSynchronyState::meth_0x47e5b0 + // label: resetMatchTimers + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E5B0 = 0x0047E5B0, // type: function SHC_3BB0A8C1_0x0047E5D0 = 0x0047E5D0, - // label: CompressOrCreateLengthPrefixedPacketUnk + // label: _HoldStrong::Global::CompressOrCreateLengthPrefixedPacketUnk + // label: compressOrCreateLengthPrefixedPacket + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0047E7E0 = 0x0047E7E0, + // label: _HoldStrong::Synchrony::GameSynchronyState::decompressTooLongPacketData // label: decompressTooLongPacketData + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E800 = 0x0047E800, - // label: countActiveHumanPlayers + // label: countActivePlayers // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E830 = 0x0047E830, - // label: countOccupiedPlayerSlots + // label: _HoldStrong::Synchrony::GameSynchronyState::aiPlayerCountUnk + // label: countActivePlayers + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E890 = 0x0047E890, + // label: _HoldStrong::Synchrony::GameSynchronyState::checkPlayerSetValid // label: checkPlayerSetValid + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047E8F0 = 0x0047E8F0, + // label: _HoldStrong::Synchrony::GameSynchronyState::countPlayersInSameTeam // label: countPlayersInSameTeam + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047EA40 = 0x0047EA40, + // label: _HoldStrong::Synchrony::GameSynchronyState::translateMultiplayerIDsIntoPlayerIDs // label: translateMultiplayerIDsIntoPlayerIDs + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047EAF0 = 0x0047EAF0, + // label: _HoldStrong::Synchrony::GameSynchronyState::addPlayerToCurrentPlayerArray // label: addPlayerToCurrentPlayerArray + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047EB80 = 0x0047EB80, + // label: _HoldStrong::Synchrony::GameSynchronyState::handleUnexpectedDPlayXResult // label: handleUnexpectedDPlayXResult + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047EC10 = 0x0047EC10, - // label: checkAllPlayersReadyAndCleanupSlots + // label: _HoldStrong::Synchrony::GameSynchronyState::meth_0x47ede0 + // label: areAllPlayersReady + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047EDE0 = 0x0047EDE0, @@ -25215,23 +27000,31 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0047EEB0 = 0x0047EEB0, + // label: _HoldStrong::Synchrony::GameSynchronyState::renderDebugDataSplitInfo // label: renderDebugDataSplitInfo + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047EED0 = 0x0047EED0, + // label: _HoldStrong::Synchrony::GameSynchronyState::addChatMessageToDisplayList // label: addChatMessageToDisplayList + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047F6A0 = 0x0047F6A0, + // label: _HoldStrong::Synchrony::GameSynchronyState::clearChatEvents // label: clearChatEvents + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047F7E0 = 0x0047F7E0, - // label: renderInGameChat + // label: _HoldStrong::Synchrony::GameSynchronyState::renderInGameChatUnk + // label: renderChatMessagesFloatingOverlay + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047F860 = 0x0047F860, - // label: renderChatMessageList + // label: renderInGameChatMessages // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0047FB50 = 0x0047FB50, @@ -25251,35 +27044,51 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0047FFE0 = 0x0047FFE0, + // label: _HoldStrong::Synchrony::GameSynchronyState::resetGameCommands // label: resetGameCommands + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00480050 = 0x00480050, + // label: _HoldStrong::Synchrony::GameSynchronyState::clearGameCommandEntry // label: clearGameCommandEntry + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x004800B0 = 0x004800B0, + // label: _HoldStrong::Synchrony::GameSynchronyState::sendLongerDataSuchAsResync // label: sendLongerDataSuchAsResync + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x004800E0 = 0x004800E0, + // label: _HoldStrong::Synchrony::GameSynchronyState::scheduleReceivedCommand // label: scheduleReceivedCommand + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00480210 = 0x00480210, + // label: _HoldStrong::Synchrony::GameSynchronyState::getCommandIDFromCommandSelectionStuff // label: getCommandIDFromCommandSelectionStuff + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00480440 = 0x00480440, + // label: _HoldStrong::Synchrony::GameSynchronyState::getGameCommandArrayIndex // label: getGameCommandArrayIndex + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00480570 = 0x00480570, + // label: _HoldStrong::Synchrony::GameSynchronyState::getPendingGameCommandsCount // label: getPendingGameCommandsCount + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00480580 = 0x00480580, + // label: _HoldStrong::Synchrony::GameSynchronyState::serializeOrDeserializeCommandParameter // label: serializeOrDeserializeCommandParameter + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x004805D0 = 0x004805D0, @@ -25355,7 +27164,9 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00481B50 = 0x00481B50, - // label: ClickRaiseLand2Unk + // label: _HoldStrong::Commands::ClickRaiseLand2Unk + // label: commandRaiseLand + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00481C80 = 0x00481C80, @@ -25463,7 +27274,9 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00482420 = 0x00482420, - // label: ClickSomethingWithDrawBridgeUnk + // label: _HoldStrong::Commands::ClickSomethingWithDrawBridgeUnk + // label: commandToggleDrawbridge + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00482550 = 0x00482550, @@ -25639,7 +27452,9 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x004843F0 = 0x004843F0, - // label: ResetSyncStatusUnk + // label: _HoldStrong::Commands::ResetSyncStatusUnk + // label: resetSyncStatus + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00484450 = 0x00484450, @@ -25659,11 +27474,11 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00484850 = 0x00484850, - // label: SiegeEngineRelated + // label: marshalSiegeEngineCommand // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00484960 = 0x00484960, - // label: TribeRelated1 + // label: marshalTribeUnitCommand // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00484A00 = 0x00484A00, @@ -25683,7 +27498,7 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00484DA0 = 0x00484DA0, - // label: SetField45To100 + // label: marshalSetMapTimeFlagCommand // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00484E10 = 0x00484E10, @@ -25691,7 +27506,9 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00484E70 = 0x00484E70, - // label: KickPlayerUnk + // label: _HoldStrong::Commands::KickPlayerUnk + // label: commandKickPlayer + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00484F30 = 0x00484F30, @@ -25699,7 +27516,9 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00485020 = 0x00485020, - // label: BroadCastSyncRelatedStatus + // label: _HoldStrong::Commands::BroadCastSyncRelatedStatus + // label: commandBroadcastSyncStatus + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x004850E0 = 0x004850E0, @@ -25707,7 +27526,7 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00485140 = 0x00485140, - // label: SyncPacketSizeAnnouncement + // label: marshalNetworkSyncCommand // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00485210 = 0x00485210, @@ -25723,15 +27542,19 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00485380 = 0x00485380, - // label: FlagsAndBraziersCommandUnk + // label: _HoldStrong::Commands::FlagsAndBraziersCommandUnk + // label: commandFlagsBraziers + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00485520 = 0x00485520, - // label: NotifyLaggingPlayer + // label: marshalLaggingPlayerCommand // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x004855C0 = 0x004855C0, - // label: SomeKindOfMultiplayerPingUnk + // label: _HoldStrong::Commands::SomeKindOfMultiplayerPingUnk + // label: commandReportLaggingPlayerPing + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00485650 = 0x00485650, @@ -25967,7 +27790,9 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00485CC0 = 0x00485CC0, - // label: MapSendingRelated + // label: _HoldStrong::Commands::MapSendingRelated + // label: commandMapFileTransferControl + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00485E80 = 0x00485E80, @@ -26007,11 +27832,15 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00486530 = 0x00486530, + // label: _HoldStrong::Synchrony::GameSynchronyState::checkSkirmishGameDefeat // label: checkSkirmishGameDefeat + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00486600 = 0x00486600, + // label: _HoldStrong::Synchrony::GameSynchronyState::getLordTypeForPlayer // label: getLordTypeForPlayer + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00486A70 = 0x00486A70, @@ -26059,13 +27888,17 @@ enum { SHC_3BB0A8C1_0x00486AF0 = 0x00486AF0, // type: function SHC_3BB0A8C1_0x00486B10 = 0x00486B10, + // label: _HoldStrong::Game::Skirmish::SkirmishLobbySetupStructure::commitSkirmishSettings // label: commitSkirmishSettings + // location: // location: OpenSHC/Game/Skirmish/SkirmishLobbySetupStructure // type: function SHC_3BB0A8C1_0x00486C40 = 0x00486C40, // type: function SHC_3BB0A8C1_0x00486C60 = 0x00486C60, - // label: initializeFinalResultsForActivePlayers + // label: _HoldStrong::Synchrony::GameSynchronyState::meth_0x486f20 + // label: applyPlayerNameInput + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00486F20 = 0x00486F20, @@ -26085,22 +27918,30 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00487200 = 0x00487200, + // label: _HoldStrong::Synchrony::GameSynchronyState::invokeDirectPlayEnumConnections // label: invokeDirectPlayEnumConnections + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00487250 = 0x00487250, + // label: _HoldStrong::Synchrony::GameSynchronyState::restartDPlaySessionEnumeration // label: restartDPlaySessionEnumeration + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00487390 = 0x00487390, - // label: createDirectPlayInterfaceModem + // label: _HoldStrong::Synchrony::GameSynchronyState::createDirectPlayInterfaceModemUnk + // label: createDirectPlayModemInterface + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x004874B0 = 0x004874B0, // label: prt_487555_c0916b4a - // location: OpenSHC/Synchrony/GameSynchronyState/createDirectPlayInterfaceModem/override + // location: OpenSHC/Synchrony/GameSynchronyState/createDirectPlayInterfaceModemUnk/override SHC_3BB0A8C1_0x00487555 = 0x00487555, + // label: _HoldStrong::Synchrony::GameSynchronyState::setupSkirmishLobby // label: setupSkirmishLobby + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00487650 = 0x00487650, @@ -26108,27 +27949,39 @@ enum { SHC_3BB0A8C1_0x00487770 = 0x00487770, // type: function SHC_3BB0A8C1_0x00487800 = 0x00487800, + // label: _HoldStrong::Synchrony::GameSynchronyState::determineGameTicksToPerform // label: determineGameTicksToPerform + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00487A30 = 0x00487A30, + // label: _HoldStrong::Synchrony::GameSynchronyState::transmitCommand // label: transmitCommand + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00487C50 = 0x00487C50, + // label: _HoldStrong::Synchrony::GameSynchronyState::sendSomeMultiplayerSyncMessageWithType // label: sendSomeMultiplayerSyncMessageWithType + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00487E30 = 0x00487E30, - // label: processSyncPacket + // label: _HoldStrong::Synchrony::GameSynchronyState::processSyncPacketUnk + // label: updateTurnDelayFromSyncPacket + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00488010 = 0x00488010, + // label: _HoldStrong::Synchrony::GameSynchronyState::sendSyncPacket126 // label: sendSyncPacket126 + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x004880E0 = 0x004880E0, + // label: _HoldStrong::Synchrony::GameSynchronyState::computeAndSetLatencyInformation // label: computeAndSetLatencyInformation + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x004882A0 = 0x004882A0, @@ -26136,15 +27989,21 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00488480 = 0x00488480, + // label: _HoldStrong::Synchrony::GameSynchronyState::renderDebugDataNetwork // label: renderDebugDataNetwork + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00488540 = 0x00488540, + // label: _HoldStrong::Synchrony::GameSynchronyState::queueCommand // label: queueCommand + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00489100 = 0x00489100, + // label: _HoldStrong::Synchrony::GameSynchronyState::processWaitingCommands // label: processWaitingCommands + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x004892F0 = 0x004892F0, @@ -26172,7 +28031,9 @@ enum { SHC_3BB0A8C1_0x00489880 = 0x00489880, // type: function SHC_3BB0A8C1_0x00489A10 = 0x00489A10, - // label: SetPlayerNameUnk + // label: _HoldStrong::Commands::SetPlayerNameUnk + // label: commandSyncMapNameAndBeginLoad + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x00489AC0 = 0x00489AC0, @@ -26206,7 +28067,9 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x0048A460 = 0x0048A460, - // label: SendResyncUnknown + // label: _HoldStrong::Commands::SendResyncUnknown + // label: commandSendResyncGlobals + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x0048A510 = 0x0048A510, @@ -26240,7 +28103,9 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x0048ACB0 = 0x0048ACB0, - // label: SyncRelatedSomething + // label: _HoldStrong::Commands::SyncRelatedSomething + // label: commandSyncStatusExchange + // location: // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x0048B170 = 0x0048B170, @@ -26278,7 +28143,9 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x0048BC90 = 0x0048BC90, + // label: _HoldStrong::Synchrony::GameSynchronyState::compareGameVersions // label: compareGameVersions + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0048BD40 = 0x0048BD40, @@ -26288,37 +28155,49 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x0048BF70 = 0x0048BF70, - // label: initializeMultiplayerLobby + // label: _HoldStrong::Synchrony::GameSynchronyState::createMultiplayerLobbyUnk + // label: initMultiplayerLobby + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0048BF80 = 0x0048BF80, - // label: constructGameSynchronyState + // label: Constructor_GameSynchronyState + // label: _HoldStrong::Synchrony::GameSynchronyState::Constructor_GameSynchronyState + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0048C150 = 0x0048C150, - // label: initMultiplayerLobbyState - // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0048C230 = 0x0048C230, // type: function SHC_3BB0A8C1_0x0048C310 = 0x0048C310, + // label: _HoldStrong::Synchrony::GameSynchronyState::queueSynchronizedAutosaveProtocol // label: queueSynchronizedAutosaveProtocol + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0048C660 = 0x0048C660, + // label: _HoldStrong::Synchrony::GameSynchronyState::multiplayerSyncMessagesUnk // label: sendPeriodicSyncMessages + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0048C750 = 0x0048C750, + // label: _HoldStrong::Synchrony::GameSynchronyState::reorderTeamsAndPositions // label: reorderTeamsAndPositions + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0048C7B0 = 0x0048C7B0, + // label: _HoldStrong::Synchrony::GameSynchronyState::checkGameSync // label: checkGameSync + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0048CB00 = 0x0048CB00, + // label: _HoldStrong::Synchrony::GameSynchronyState::recomputeHashesAndSendResync // label: recomputeHashesAndSendResync + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x0048CC90 = 0x0048CC90, @@ -26330,12 +28209,12 @@ enum { SHC_3BB0A8C1_0x0048D250 = 0x0048D250, // type: function SHC_3BB0A8C1_0x0048D7C0 = 0x0048D7C0, - // label: checkLagAndSyncStatus - // location: OpenSHC/Synchrony/GameSynchronyState + // label: detectDesyncAndShareSyncStatus + // location: // type: function SHC_3BB0A8C1_0x0048DA60 = 0x0048DA60, - // label: broadcastDesyncResyncCommands - // location: OpenSHC/Synchrony/GameSynchronyState + // label: hostSendResyncForDesyncedState + // location: // type: function SHC_3BB0A8C1_0x0048DC50 = 0x0048DC50, // type: function @@ -26354,8 +28233,8 @@ enum { SHC_3BB0A8C1_0x0048E4A0 = 0x0048E4A0, // type: function SHC_3BB0A8C1_0x0048E4B0 = 0x0048E4B0, - // label: sendPendingResyncCommandsInBudget - // location: OpenSHC/Synchrony/GameSynchronyState + // label: hostSendResyncChunked + // location: // type: function SHC_3BB0A8C1_0x0048E680 = 0x0048E680, // type: function @@ -26398,14 +28277,14 @@ enum { SHC_3BB0A8C1_0x0048F3C8 = 0x0048F3C8, // type: /pointer SHC_3BB0A8C1_0x0048F3CC = 0x0048F3CC, - // label: advanceSyncStatusAndKickLaggers - // location: OpenSHC/Synchrony/GameSynchronyState + // label: awaitAllPlayersSyncStatus + // location: // type: function SHC_3BB0A8C1_0x0048F3D0 = 0x0048F3D0, // type: function SHC_3BB0A8C1_0x0048F440 = 0x0048F440, - // label: checkGameLagStatusAndKickAccordingly - // location: OpenSHC/Synchrony/GameSynchronyState + // label: awaitAllPlayersAnnouncementAck + // location: // type: function SHC_3BB0A8C1_0x0048F4C0 = 0x0048F4C0, // label: MenuItemActionHandler_Chat_MostButtons @@ -26512,6 +28391,10 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x0048F870 = 0x0048F870, + // label: hostProcessPlayerJoin + // location: + // type: function + SHC_3BB0A8C1_0x0048F941 = 0x0048F941, // label: HostShareLobbyState // location: OpenSHC/Commands // type: function @@ -26528,29 +28411,41 @@ enum { // location: OpenSHC/Commands // type: function SHC_3BB0A8C1_0x0048FFD0 = 0x0048FFD0, + // label: _HoldStrong::Game::Skirmish::SkirmishLobbySetupStructure::restoreSkirmishLobbySetup // label: restoreSkirmishLobbySetup + // location: // location: OpenSHC/Game/Skirmish/SkirmishLobbySetupStructure // type: function SHC_3BB0A8C1_0x00490060 = 0x00490060, // type: function SHC_3BB0A8C1_0x00490080 = 0x00490080, - // label: throttledMultiplayerSyncUpdate + // label: _HoldStrong::Synchrony::GameSynchronyState::someMultiplayerMessageSending + // label: someMultiplayerMessageSending + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00490340 = 0x00490340, + // label: _HoldStrong::Synchrony::GameSynchronyState::removePlayerFromLobby // label: removePlayerFromLobby + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00490380 = 0x00490380, + // label: _HoldStrong::Synchrony::GameSynchronyState::checkMultiplayerLaggingPlayers // label: checkMultiplayerLaggingPlayers + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00490480 = 0x00490480, + // label: _HoldStrong::Synchrony::GameSynchronyState::receiveAllTransmittedCommands // label: receiveAllTransmittedCommands + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00490690 = 0x00490690, + // label: _HoldStrong::Synchrony::GameSynchronyState::waitForMultiplayerHost // label: waitForMultiplayerHost + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00490920 = 0x00490920, @@ -26567,7 +28462,9 @@ enum { // label: LAB_Return // location: OpenSHC/UI/MenuItemActionHandler_FindingNetworkSessions_Buttons SHC_3BB0A8C1_0x0049102D = 0x0049102D, + // label: _HoldStrong::Synchrony::GameSynchronyState::handleCommandLineArguments // label: handleCommandLineArguments + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x00491040 = 0x00491040, @@ -26584,22 +28481,32 @@ enum { // type: function SHC_3BB0A8C1_0x004914D0 = 0x004914D0, // label: Constructor_MenuTextInputState + // label: _HoldStrong::UI::MenuTextInputState::Constructor_MenuTextInputState + // location: // location: OpenSHC/UI/MenuTextInputState // type: function SHC_3BB0A8C1_0x00491680 = 0x00491680, + // label: _HoldStrong::UI::MenuTextInputState::activateModalDialogAndClearText // label: activateModalDialogAndClearText + // location: // location: OpenSHC/UI/MenuTextInputState // type: function SHC_3BB0A8C1_0x004916C0 = 0x004916C0, + // label: _HoldStrong::UI::MenuTextInputState::clearModalDialog2to6 // label: clearModalDialog2to6 + // location: // location: OpenSHC/UI/MenuTextInputState // type: function SHC_3BB0A8C1_0x00491730 = 0x00491730, + // label: _HoldStrong::UI::MenuTextInputState::clearAnyOtherModalDialogs // label: clearAnyOtherModalDialogs + // location: // location: OpenSHC/UI/MenuTextInputState // type: function SHC_3BB0A8C1_0x00491750 = 0x00491750, - // label: meth_0x4917c0 + // label: _HoldStrong::UI::MenuTextInputState::meth_0x4917c0 + // label: resetMenuTextInputModals + // location: // location: OpenSHC/UI/MenuTextInputState // type: function SHC_3BB0A8C1_0x004917C0 = 0x004917C0, @@ -26789,7 +28696,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00492FD0 = 0x00492FD0, - // label: SetupPreviewMinimapDataUnk + // label: _HoldStrong::Global::SetupPreviewMinimapDataUnk + // label: loadSelectedMapHeaderForPreview + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00493050 = 0x00493050, @@ -26885,8 +28794,6 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x00493690 = 0x00493690, - // type: function - SHC_3BB0A8C1_0x004937A4 = 0x004937A4, // label: MenuModalRenderFunction_OnlineQuitGame // location: OpenSHC/UI // type: function @@ -26909,15 +28816,21 @@ enum { SHC_3BB0A8C1_0x004938F8 = 0x004938F8, // type: /undefined *32 SHC_3BB0A8C1_0x004938FC = 0x004938FC, + // label: _HoldStrong::UI::MenuTextInputState::popModalDialog // label: popModalDialog + // location: // location: OpenSHC/UI/MenuTextInputState // type: function SHC_3BB0A8C1_0x00493900 = 0x00493900, + // label: _HoldStrong::UI::MenuTextInputState::activateLoadOrSaveMapUI // label: activateLoadOrSaveMapUI + // location: // location: OpenSHC/UI/MenuTextInputState // type: function SHC_3BB0A8C1_0x00493980 = 0x00493980, + // label: _HoldStrong::UI::MenuTextInputState::loadOrSaveMap // label: loadOrSaveMap + // location: // location: OpenSHC/UI/MenuTextInputState // type: function SHC_3BB0A8C1_0x00493AC0 = 0x00493AC0, @@ -27118,7 +29031,11 @@ enum { // type: function SHC_3BB0A8C1_0x00493E20 = 0x00493E20, // type: function + SHC_3BB0A8C1_0x00493EB9 = 0x00493EB9, + // type: function SHC_3BB0A8C1_0x0049404E = 0x0049404E, + // type: function + SHC_3BB0A8C1_0x00494059 = 0x00494059, // type: /undefined *32 SHC_3BB0A8C1_0x00494064 = 0x00494064, // type: /undefined *32 @@ -27321,7 +29238,9 @@ enum { SHC_3BB0A8C1_0x004941E7 = 0x004941E7, // type: /byte SHC_3BB0A8C1_0x004941E8 = 0x004941E8, - // label: MenuItemActionHandler_NetworkOptions_LeaveButtonUnk + // label: MenuItemActionHandler_NetworkOptions_LeaveButton + // label: _HoldStrong::UI::MenuItemActionHandler_NetworkOptions_LeaveButtonUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004941F0 = 0x004941F0, @@ -27403,7 +29322,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00494920 = 0x00494920, - // label: MenuItemActionHandler_General_LaunchOrQuitMultiplayerGameUnk + // label: MenuItemActionHandler_General_LaunchOrQuitMultiplayerGame + // label: _HoldStrong::UI::MenuItemActionHandler_General_LaunchOrQuitMultiplayerGameUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00494950 = 0x00494950, @@ -27507,11 +29428,13 @@ enum { SHC_3BB0A8C1_0x00495230 = 0x00495230, // type: function SHC_3BB0A8C1_0x004954A0 = 0x004954A0, - // label: ShowProgressBarSaveLoadDialog + // label: openLoadSaveProgressDialog // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x00495800 = 0x00495800, - // label: ProgressBarRelated + // label: _HoldStrong::Global::ProgressBarRelated + // label: showLoadSaveProgressBar + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00495840 = 0x00495840, @@ -27529,15 +29452,21 @@ enum { SHC_3BB0A8C1_0x00495A20 = 0x00495A20, // type: /undefined *32 SHC_3BB0A8C1_0x00495A24 = 0x00495A24, + // label: _HoldStrong::IO::SettingsFileState::readUserConfig // label: readUserConfig + // location: // location: OpenSHC/IO/SettingsFileState // type: function SHC_3BB0A8C1_0x00495A30 = 0x00495A30, + // label: _HoldStrong::IO::SettingsFileState::writeUserConfig // label: writeUserConfig + // location: // location: OpenSHC/IO/SettingsFileState // type: function SHC_3BB0A8C1_0x00496400 = 0x00496400, + // label: _HoldStrong::UI::MenuTextInputState::loadOrSaveGame // label: loadOrSaveGame + // location: // location: OpenSHC/UI/MenuTextInputState // type: function SHC_3BB0A8C1_0x004968A0 = 0x004968A0, @@ -27651,11 +29580,15 @@ enum { SHC_3BB0A8C1_0x00496E19 = 0x00496E19, // type: /byte SHC_3BB0A8C1_0x00496E1A = 0x00496E1A, + // label: _HoldStrong::Map::Navigation::PathFindingState::getComputationalTileIndex // label: getComputationalTileIndex + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00496E20 = 0x00496E20, + // label: _HoldStrong::Map::Navigation::PathFindingState::getTileInSearchQueue // label: getTileInSearchQueue + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00496E30 = 0x00496E30, @@ -27663,145 +29596,204 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00496E40 = 0x00496E40, + // label: _HoldStrong::Map::Navigation::PathFindingState::bindPathPlanToAlgorithmStateAndReset // label: bindPathPlanToAlgorithmStateAndReset + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00496EA0 = 0x00496EA0, + // label: _HoldStrong::Map::Navigation::PathFindingState::findClosestTileToStartingTile // label: findClosestTileToStartingTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00496EC0 = 0x00496EC0, + // label: _HoldStrong::Map::Navigation::PathFindingState::findNextTileInExistingSearchThatIsModuloDistanceAway // label: findNextTileInExistingSearchThatIsModuloDistanceAway + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00496F90 = 0x00496F90, + // label: _HoldStrong::Map::Navigation::PathFindingState::pathFindingResultBased // label: pathFindingResultBased + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00497080 = 0x00497080, + // label: + // _HoldStrong::Map::Navigation::PathFindingState::findNextTileByModuloAmongPreviousSearchNotOnDefensiveStructure // label: findNextTileByModuloAmongPreviousSearchNotOnDefensiveStructure + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00497180 = 0x00497180, + // label: _HoldStrong::Map::Navigation::PathFindingState::doMoveFromTileToTile // label: doMoveFromTileToTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00497280 = 0x00497280, + // label: _HoldStrong::Map::Navigation::PathFindingState::findNeighbourTileThatCanServeAsClimbPointClosestToXY // label: findNeighbourTileThatCanServeAsClimbPointClosestToXY + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004974D0 = 0x004974D0, + // label: _HoldStrong::Map::Navigation::PathFindingState::findPositionForGivenClimbArea // label: findPositionForGivenClimbArea + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00497690 = 0x00497690, + // label: _HoldStrong::Map::Navigation::PathFindingState::findLinkageBasedPathOrWalkRadius // label: findLinkageBasedPathOrWalkRadius + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00497740 = 0x00497740, - // label: findSuitableSpawnLocationUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::findSuitableSpawnLocationUnk + // label: bfsFindReachableFreeTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00497B80 = 0x00497B80, + // label: _HoldStrong::Map::Navigation::PathFindingState::findPathUsingClimbingWithHeightMargin16 // label: findPathUsingClimbingWithHeightMargin16 + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00498020 = 0x00498020, // type: function SHC_3BB0A8C1_0x00498170 = 0x00498170, + // label: _HoldStrong::Map::Navigation::PathFindingState::pathFindingWithBuildingsIncluded // label: pathFindingWithBuildingsIncluded + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00498400 = 0x00498400, // type: function SHC_3BB0A8C1_0x004985D0 = 0x004985D0, + // label: _HoldStrong::Map::Navigation::PathFindingState::calculatePathKeepAndWallsGatesNotAllowed // label: calculatePathKeepAndWallsGatesNotAllowed + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00498A40 = 0x00498A40, // type: function SHC_3BB0A8C1_0x00498B70 = 0x00498B70, + // label: _HoldStrong::Map::Navigation::PathFindingState::commitUnitPathPlanUsingWalkLayer // label: commitUnitPathPlanUsingWalkLayer + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00498FD0 = 0x00498FD0, // type: function SHC_3BB0A8C1_0x004990F0 = 0x004990F0, + // label: _HoldStrong::Map::Navigation::PathFindingState::updateSeparateAreaTileMap // label: updateSeparateAreaTileMap + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004995E0 = 0x004995E0, // type: function SHC_3BB0A8C1_0x00499970 = 0x00499970, - // label: updatePathLinkageLayerBasedOnBuildingsUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::updatePathLinkageLayerBasedOnBuildingsUnk + // label: computeTilePathLinkageBits + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004999C0 = 0x004999C0, + // label: _HoldStrong::Map::Navigation::PathFindingState::updatePathLinkageLayerAtTileForSomeLogicalReason // label: updatePathLinkageLayerAtTileForSomeLogicalReason + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00499DC0 = 0x00499DC0, - // label: updatePathLinkageTileMapRelatedToGates + // label: _HoldStrong::Map::Navigation::PathFindingState::updatePathLinkageTileMapRelatedToGates + // label: setGatePassabilityLinkage + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x00499FA0 = 0x00499FA0, - // label: updatePathLinkageTileMapRelatedToKeeps + // label: _HoldStrong::Map::Navigation::PathFindingState::updatePathLinkageTileMapRelatedToKeeps + // label: setKeepEntranceLinkage + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049A1C0 = 0x0049A1C0, - // label: updatePathLinkageTileMapRelatedToSiegeTower + // label: _HoldStrong::Map::Navigation::PathFindingState::updatePathLinkageTileMapRelatedToSiegeTower + // label: setSiegeTowerLinkage + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049A2E0 = 0x0049A2E0, + // label: _HoldStrong::Map::Navigation::PathFindingState::tracePathPlanToDestinationViaUnoccupiedTiles // label: tracePathPlanToDestinationViaUnoccupiedTiles + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049A370 = 0x0049A370, + // label: _HoldStrong::Map::Navigation::PathFindingState::reverseCurrentPathPlan // label: reverseCurrentPathPlan + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049A5E0 = 0x0049A5E0, // type: function SHC_3BB0A8C1_0x0049A610 = 0x0049A610, + // label: _HoldStrong::Map::Navigation::PathFindingState::raiseLand2 // label: raiseLand2 + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049A6D0 = 0x0049A6D0, // type: function SHC_3BB0A8C1_0x0049A800 = 0x0049A800, + // label: _HoldStrong::Map::Navigation::PathFindingState::updateWalkAndPathLayer // label: updateWalkAndPathLayer + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049AAD0 = 0x0049AAD0, // type: function SHC_3BB0A8C1_0x0049AC80 = 0x0049AC80, + // label: _HoldStrong::Map::Navigation::PathFindingState::setChangedLayerZeroBasedOn40x40Layer // label: setChangedLayerZeroBasedOn40x40Layer + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049AF50 = 0x0049AF50, // type: function SHC_3BB0A8C1_0x0049B000 = 0x0049B000, + // label: _HoldStrong::Map::Navigation::PathFindingState::getYSmallerThanYLimit // label: getYSmallerThanYLimit + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049B1C0 = 0x0049B1C0, - // label: pathFindingDeerAndLionsUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::pathFindingDeerAndLionsUnk + // label: findNearestTileInOriginArea + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049B1D0 = 0x0049B1D0, // type: function SHC_3BB0A8C1_0x0049B2B0 = 0x0049B2B0, + // label: _HoldStrong::Map::Navigation::PathFindingState::algTunnelerFindTarget // label: algTunnelerFindTarget + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049B5B0 = 0x0049B5B0, // type: function SHC_3BB0A8C1_0x0049B6B0 = 0x0049B6B0, - // label: calcApproxEuclideanDistance + // label: approximateEuclideanDistance // location: OpenSHC/Map/Navigation // type: function SHC_3BB0A8C1_0x0049B8C0 = 0x0049B8C0, + // label: _HoldStrong::Map::Navigation::PathFindingState::findMapBorderEdgeTileAndStoreInSignpostData // label: findMapBorderEdgeTileAndStoreInSignpostData + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049B940 = 0x0049B940, @@ -27809,7 +29801,9 @@ enum { SHC_3BB0A8C1_0x0049BA30 = 0x0049BA30, // type: function SHC_3BB0A8C1_0x0049BA90 = 0x0049BA90, + // label: _HoldStrong::Map::Navigation::PathFindingState::findFurthestSeaTile // label: findFurthestSeaTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049BBF0 = 0x0049BBF0, @@ -27817,11 +29811,15 @@ enum { SHC_3BB0A8C1_0x0049BCD0 = 0x0049BCD0, // type: function SHC_3BB0A8C1_0x0049BD40 = 0x0049BD40, + // label: _HoldStrong::Map::Navigation::PathFindingState::getTileInSquareBrush // label: getTileInSquareBrush + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049BE60 = 0x0049BE60, + // label: _HoldStrong::Map::Navigation::PathFindingState::setupBabyTreeLocationInfo // label: setupBabyTreeLocationInfo + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049C020 = 0x0049C020, @@ -28035,47 +30033,63 @@ enum { SHC_3BB0A8C1_0x0049C360 = 0x0049C360, // type: /byte SHC_3BB0A8C1_0x0049C361 = 0x0049C361, + // label: _HoldStrong::Map::Navigation::PathFindingState::findNoTreeInRange // label: findNoTreeInRange + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049C370 = 0x0049C370, // type: function SHC_3BB0A8C1_0x0049C4A0 = 0x0049C4A0, + // label: _HoldStrong::Map::Navigation::PathFindingState::findDestinationCostLowerThan6 // label: findDestinationCostLowerThan6 + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049C5C0 = 0x0049C5C0, + // label: _HoldStrong::Map::Navigation::PathFindingState::computeTotalUnitsWithinDistance // label: computeTotalUnitsWithinDistance + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049C690 = 0x0049C690, // type: function SHC_3BB0A8C1_0x0049C730 = 0x0049C730, + // label: _HoldStrong::Map::Navigation::PathFindingState::computeNextRallyPointDestination // label: computeNextRallyPointDestination + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049CB00 = 0x0049CB00, // type: function SHC_3BB0A8C1_0x0049CBE0 = 0x0049CBE0, + // label: _HoldStrong::Map::Navigation::PathFindingState::findDirectNeighbourWalkableTile // label: findDirectNeighbourWalkableTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049CD60 = 0x0049CD60, // type: function SHC_3BB0A8C1_0x0049CDB0 = 0x0049CDB0, + // label: _HoldStrong::Map::Navigation::PathFindingState::findPathableTileWithoutUnitWithBuildingAtXY // label: findPathableTileWithoutUnitWithBuildingAtXY + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049CE40 = 0x0049CE40, // type: function SHC_3BB0A8C1_0x0049CF30 = 0x0049CF30, + // label: _HoldStrong::Map::Navigation::PathFindingState::findFreeTileOnDefensiveStructure // label: findFreeTileOnDefensiveStructure + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049D0E0 = 0x0049D0E0, // type: function SHC_3BB0A8C1_0x0049D240 = 0x0049D240, + // label: _HoldStrong::Map::Navigation::PathFindingState::findWalkableTileThatDoesNotContainUnit // label: findWalkableTileThatDoesNotContainUnit + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049D340 = 0x0049D340, @@ -28083,63 +30097,89 @@ enum { SHC_3BB0A8C1_0x0049D470 = 0x0049D470, // type: function SHC_3BB0A8C1_0x0049D520 = 0x0049D520, + // label: _HoldStrong::Map::Navigation::PathFindingState::someBinaryAlgFunctionPathFinding // label: someBinaryAlgFunctionPathFinding + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049D640 = 0x0049D640, + // label: _HoldStrong::Map::Navigation::PathFindingState::findClosestFreeTileNearUnitOnBuilding // label: findClosestFreeTileNearUnitOnBuilding + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049D880 = 0x0049D880, // type: function SHC_3BB0A8C1_0x0049D970 = 0x0049D970, + // label: _HoldStrong::Map::Navigation::PathFindingState::checkEnemyBuildingOrDefensiveStructureWithin12Tiles // label: checkEnemyBuildingOrDefensiveStructureWithin12Tiles + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049DB30 = 0x0049DB30, + // label: _HoldStrong::Map::Navigation::PathFindingState::budgetFloodFillOnCertainPathLayer // label: budgetFloodFillOnCertainPathLayer + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049DDC0 = 0x0049DDC0, + // label: _HoldStrong::Map::Navigation::PathFindingState::updateUnitDeathHeatmapIn3SpacesAroundTile // label: updateUnitDeathHeatmapIn3SpacesAroundTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049E0D0 = 0x0049E0D0, - // label: recomputeALGPathFindingTileMapUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::recomputeALGPathFindingTileMapUnk + // label: floodMarkAIInfoLayer + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049E510 = 0x0049E510, + // label: _HoldStrong::Map::Navigation::PathFindingState::updateAIZoneWithFloodFill0x20 // label: updateAIZoneWithFloodFill0x20 + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049E9E0 = 0x0049E9E0, // type: function SHC_3BB0A8C1_0x0049EB00 = 0x0049EB00, + // label: _HoldStrong::Map::Navigation::PathFindingState::findAIZoneWithFlags // label: findAIZoneWithFlags + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049EDF0 = 0x0049EDF0, // type: function SHC_3BB0A8C1_0x0049EED0 = 0x0049EED0, - // label: findArcherRelatedAttackInfoIndex + // label: _HoldStrong::Map::Navigation::PathFindingState::findArcherRelatedAttackInfoIndex + // label: bfsFindAvailableArcherDefensePoint + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049F040 = 0x0049F040, + // label: _HoldStrong::Map::Navigation::PathFindingState::findSupportPointIndex // label: findSupportPointIndex + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049F2D0 = 0x0049F2D0, + // label: _HoldStrong::Map::Navigation::PathFindingState::algFindAttackAngle // label: algFindAttackAngle + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049F540 = 0x0049F540, + // label: _HoldStrong::Map::Navigation::PathFindingState::findAppropriateLocationForSiegeTent // label: findAppropriateLocationForSiegeTent + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049F7D0 = 0x0049F7D0, // type: function SHC_3BB0A8C1_0x0049F9B0 = 0x0049F9B0, - // label: pathFindingRelated + // label: _HoldStrong::Map::Navigation::PathFindingState::pathFindingRelated + // label: bfsFindBestCostTileWithinRange + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049FC00 = 0x0049FC00, @@ -28147,33 +30187,45 @@ enum { SHC_3BB0A8C1_0x0049FD10 = 0x0049FD10, // type: function SHC_3BB0A8C1_0x0049FD70 = 0x0049FD70, - // label: pathfindingRelated49ff20 + // label: _HoldStrong::Map::Navigation::PathFindingState::pathfindingRelated49ff20 + // label: bfsFindBestTileMatchingAttackMarker + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x0049FF20 = 0x0049FF20, // type: function SHC_3BB0A8C1_0x004A0050 = 0x004A0050, - // label: findBestAttackTileByPathCost + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a01d0 + // label: findBestAttackPathTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A01D0 = 0x004A01D0, // type: function SHC_3BB0A8C1_0x004A0300 = 0x004A0300, - // label: findNearestEnemyBuildingWithinDistance + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a0460 + // label: bfsFindNearestEnemyBuilding + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A0460 = 0x004A0460, - // label: findNearestEnemyUnitWithinDistance + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a06b0 + // label: bfsFindNearestEnemyUnit + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A06B0 = 0x004A06B0, // type: function SHC_3BB0A8C1_0x004A07C0 = 0x004A07C0, - // label: getGatehouseNearSomethingUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::getGatehouseNearSomethingUnk + // label: findNearestEnemyGatehouse + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A08E0 = 0x004A08E0, - // label: findDistanceOrThreatLevelToUnitUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::findDistanceOrThreatLevelToUnitUnk + // label: bfsFindHighestPriorityEnemyUnit + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A0B20 = 0x004A0B20, @@ -28309,11 +30361,15 @@ enum { SHC_3BB0A8C1_0x004A0E4A = 0x004A0E4A, // type: /byte SHC_3BB0A8C1_0x004A0E4B = 0x004A0E4B, + // label: _HoldStrong::Map::Navigation::PathFindingState::setWalkabilityBorderLogicLayerForSmallerMapSizes // label: setWalkabilityBorderLogicLayerForSmallerMapSizes + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A0E50 = 0x004A0E50, + // label: _HoldStrong::Map::Navigation::PathFindingState::aggressiveStanceTargetBuildingAtRange // label: aggressiveStanceTargetBuildingAtRange + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A1230 = 0x004A1230, @@ -28449,11 +30505,15 @@ enum { SHC_3BB0A8C1_0x004A15AE = 0x004A15AE, // type: /byte SHC_3BB0A8C1_0x004A15AF = 0x004A15AF, - // label: isEnemyTooCloseUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::isEnemyTooCloseUnk + // label: isEnemyTooClose + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A15B0 = 0x004A15B0, - // label: tracePathToFriendlyDefensesAndReturnTileUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::tracePathToFriendlyDefensesAndReturnTileUnk + // label: bfsFindReachableFriendlyDefenseTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A16C0 = 0x004A16C0, @@ -28605,31 +30665,41 @@ enum { SHC_3BB0A8C1_0x004A19AD = 0x004A19AD, // type: /byte SHC_3BB0A8C1_0x004A19AE = 0x004A19AE, + // label: _HoldStrong::Map::Navigation::PathFindingState::findOwnedGatehouse // label: findOwnedGatehouse + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A19B0 = 0x004A19B0, // type: function SHC_3BB0A8C1_0x004A1AF0 = 0x004A1AF0, + // label: _HoldStrong::Map::Navigation::PathFindingState::isTileInRangeOfKeepRange // label: isTileInRangeOfKeepRange + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A1C40 = 0x004A1C40, // type: function SHC_3BB0A8C1_0x004A1CC0 = 0x004A1CC0, - // label: findSomeSuitableLocationUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::findSomeSuitableLocationUnk + // label: bfsEnemyStructureWithinRange + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A1D30 = 0x004A1D30, // type: function SHC_3BB0A8C1_0x004A1E10 = 0x004A1E10, + // label: _HoldStrong::Map::Navigation::PathFindingState::placeCommemoratingStatueAtGoodLocation // label: placeCommemoratingStatueAtGoodLocation + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A21B0 = 0x004A21B0, // type: function SHC_3BB0A8C1_0x004A22C0 = 0x004A22C0, + // label: _HoldStrong::Map::Navigation::PathFindingState::isSignPostWithinDistance // label: isSignPostWithinDistance + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A2650 = 0x004A2650, @@ -28637,7 +30707,9 @@ enum { SHC_3BB0A8C1_0x004A2740 = 0x004A2740, // type: function SHC_3BB0A8C1_0x004A27D0 = 0x004A27D0, - // label: spreadAlgorithmForFlagsAndBraziersUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::spreadAlgorithmForFlagsAndBraziersUnk + // label: findOrRemovePlayerFlagsAndBraziersBFS + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A2A90 = 0x004A2A90, @@ -28655,7 +30727,9 @@ enum { SHC_3BB0A8C1_0x004A2DC4 = 0x004A2DC4, // type: /pointer SHC_3BB0A8C1_0x004A2DC8 = 0x004A2DC8, + // label: _HoldStrong::Map::Navigation::PathFindingState::igniteFireAtTilesDistanceAway // label: igniteFireAtTilesDistanceAway + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A2DD0 = 0x004A2DD0, @@ -28663,11 +30737,15 @@ enum { SHC_3BB0A8C1_0x004A2F00 = 0x004A2F00, // type: function SHC_3BB0A8C1_0x004A31D0 = 0x004A31D0, + // label: _HoldStrong::Map::Navigation::PathFindingState::findAccessibleWallAndNearbyFreeTile // label: findAccessibleWallAndNearbyFreeTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A3220 = 0x004A3220, - // label: healUnitsOfPlayerWithinRadius + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a36b0 + // label: bfsHealOwnerUnits + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A36B0 = 0x004A36B0, @@ -28675,17 +30753,23 @@ enum { SHC_3BB0A8C1_0x004A37D0 = 0x004A37D0, // type: function SHC_3BB0A8C1_0x004A3860 = 0x004A3860, - // label: certainDamageToUnitsUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::certainDamageToUnitsUnk + // label: applyAreaDamageToEnemyUnits + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A3B20 = 0x004A3B20, // type: function SHC_3BB0A8C1_0x004A3E80 = 0x004A3E80, + // label: _HoldStrong::Map::Navigation::PathFindingState::pathFindingToAttackCastleIncludingMoat // label: pathFindingToAttackCastleIncludingMoat + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A4140 = 0x004A4140, + // label: _HoldStrong::Map::Navigation::PathFindingState::computeAIZoneLayer // label: computeAIZoneLayer + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A4470 = 0x004A4470, @@ -28695,23 +30779,33 @@ enum { SHC_3BB0A8C1_0x004A4550 = 0x004A4550, // type: function SHC_3BB0A8C1_0x004A46C0 = 0x004A46C0, + // label: _HoldStrong::Map::Navigation::PathFindingState::setClimbBasedOnClosestClimbData // label: setClimbBasedOnClosestClimbData + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A4930 = 0x004A4930, + // label: _HoldStrong::Map::Navigation::PathFindingState::isUsableClimbWallWithinArea // label: isUsableClimbWallWithinArea + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A4B30 = 0x004A4B30, + // label: _HoldStrong::Map::Navigation::PathFindingState::clearLaddermanWalledData // label: clearLaddermanWalledData + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A4B80 = 0x004A4B80, + // label: _HoldStrong::Map::Navigation::PathFindingState::reprocessLadddermanWallData // label: reprocessLadddermanWallData + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A4BB0 = 0x004A4BB0, - // label: registerUnitOnClimbData + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a4c70 + // label: assignUnitToClimbPoint + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A4C70 = 0x004A4C70, @@ -28735,11 +30829,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004A5230 = 0x004A5230, - // label: clearActiveClimbDataOfType6And7 + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a52d0 + // label: clearLaddermanClimbData + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A52D0 = 0x004A52D0, + // label: _HoldStrong::Map::Navigation::PathFindingState::calculateCanPlayerUnitsNavigateToAreaFromArea // label: calculateCanPlayerUnitsNavigateToAreaFromArea + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A5320 = 0x004A5320, @@ -28747,7 +30845,9 @@ enum { SHC_3BB0A8C1_0x004A5420 = 0x004A5420, // type: function SHC_3BB0A8C1_0x004A5770 = 0x004A5770, - // label: findConnectingAreaBetweenTwoAreas + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a58a0 + // label: traverseAreaConnectivityGraph + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A58A0 = 0x004A58A0, @@ -28755,51 +30855,75 @@ enum { SHC_3BB0A8C1_0x004A5980 = 0x004A5980, // type: function SHC_3BB0A8C1_0x004A5A30 = 0x004A5A30, + // label: _HoldStrong::Map::Navigation::PathFindingState::calculateCanReachUsingCachedAreaLogic // label: calculateCanReachUsingCachedAreaLogic + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A5B00 = 0x004A5B00, - // label: findBestAdjacentClimbTileToTarget + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a5da0 + // label: findReachableTileNextToTarget + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A5DA0 = 0x004A5DA0, + // label: _HoldStrong::Map::Navigation::PathFindingState::updatePathLinkageLayerForEachBuildingAtEachTile // label: updatePathLinkageLayerForEachBuildingAtEachTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A5F60 = 0x004A5F60, + // label: _HoldStrong::Map::Navigation::PathFindingState::updatePathLinkagesInAllEightDirections // label: updatePathLinkagesInAllEightDirections + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A5F90 = 0x004A5F90, - // label: findBestAttackTargetTileWithHeightAndOwner + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a6010 + // label: findBestSiegeTargetTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A6010 = 0x004A6010, // type: function SHC_3BB0A8C1_0x004A6120 = 0x004A6120, - // label: storeDestinationOptionsUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::storeDestinationOptionsUnk + // label: storeDispersedMoveDestinations + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A6520 = 0x004A6520, + // label: _HoldStrong::Map::Navigation::PathFindingState::setDestinationPairsBasedOnPreviousSearch // label: setDestinationPairsBasedOnPreviousSearch + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A65E0 = 0x004A65E0, + // label: _HoldStrong::Map::Navigation::PathFindingState::setMoveDestinationPairs // label: setMoveDestinationPairs + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A66D0 = 0x004A66D0, + // label: _HoldStrong::Map::Navigation::PathFindingState::spawnUnitAndAddToTribe // label: spawnUnitAndAddToTribe + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A67D0 = 0x004A67D0, + // label: floodFillReachableZones + // location: // type: function SHC_3BB0A8C1_0x004A6940 = 0x004A6940, + // label: _HoldStrong::Map::Navigation::PathFindingState::computeAttackVectorsBasedOnXAndY // label: computeAttackVectorsBasedOnXAndY + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A69F0 = 0x004A69F0, - // label: findCrossAreaBridgeTileToTarget + // label: _HoldStrong::Map::Navigation::PathFindingState::meth_0x4a6ab0 + // label: findClosestReachableTileForUnit + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A6AB0 = 0x004A6AB0, @@ -28807,25 +30931,36 @@ enum { SHC_3BB0A8C1_0x004A6BE0 = 0x004A6BE0, // type: function SHC_3BB0A8C1_0x004A6C40 = 0x004A6C40, + // label: _HoldStrong::Map::Navigation::PathFindingState::canNavigateFunctionReturnsArea // label: canNavigateFunctionReturnsArea + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A6DF0 = 0x004A6DF0, // type: function SHC_3BB0A8C1_0x004A6ED0 = 0x004A6ED0, + // label: _HoldStrong::Map::Navigation::PathFindingState::updateWalkLayerAndAIPathCostLayer // label: updateWalkLayerAndAIPathCostLayer + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A7090 = 0x004A7090, - // label: pathfindingForAttacksUnk + // label: _HoldStrong::Map::Navigation::PathFindingState::pathfindingForAttacksUnk + // label: buildBuildingAttackApproachTiles + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A75B0 = 0x004A75B0, + // label: _HoldStrong::Map::Navigation::PathFindingState::pathPlanningForTribe // label: pathPlanningForTribe + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A79A0 = 0x004A79A0, + // label: + // _HoldStrong::Map::Navigation::PathFindingState::findFreeSpaceNextToEnemyDefensiveStructureInSameAreaWithinDistance // label: findFreeSpaceNextToEnemyDefensiveStructureInSameAreaWithinDistance + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A7F50 = 0x004A7F50, @@ -28835,21 +30970,30 @@ enum { SHC_3BB0A8C1_0x004A8220 = 0x004A8220, // type: function SHC_3BB0A8C1_0x004A8340 = 0x004A8340, + // label: + // _HoldStrong::Map::Navigation::PathFindingState::populateDestinationsArrayWithWallTileAndFreeTilePairInSameArea // label: populateDestinationsArrayWithWallTileAndFreeTilePairInSameArea + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A83B0 = 0x004A83B0, + // label: _HoldStrong::Map::Navigation::PathFindingState::findUnitPreferredOrientationBasedConnectedTile // label: findUnitPreferredOrientationBasedConnectedTile + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A8780 = 0x004A8780, + // label: _HoldStrong::Map::Navigation::PathFindingState::findBuildingAccessPoint // label: findBuildingAccessPoint + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A8860 = 0x004A8860, // type: function SHC_3BB0A8C1_0x004A8900 = 0x004A8900, + // label: _HoldStrong::Map::Navigation::PathFindingState::pathfindingUpdate_0x4a8ab0 // label: pathfindingUpdate_0x4a8ab0 + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A8AB0 = 0x004A8AB0, @@ -28985,73 +31129,105 @@ enum { SHC_3BB0A8C1_0x004A91F6 = 0x004A91F6, // type: /byte SHC_3BB0A8C1_0x004A91F7 = 0x004A91F7, + // label: _HoldStrong::Map::Navigation::PathFindingState::isOpponentBuildingInRange // label: isOpponentBuildingInRange + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A9200 = 0x004A9200, + // label: _HoldStrong::Map::Navigation::PathFindingState::clearAllLadderManWalledData // label: clearAllLadderManWalledData + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A94E0 = 0x004A94E0, + // label: _HoldStrong::Map::Navigation::PathFindingState::createClimbData // label: createClimbData + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A9510 = 0x004A9510, + // label: _HoldStrong::Map::Navigation::PathFindingState::updateClimbData // label: updateClimbData + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A9680 = 0x004A9680, // type: function SHC_3BB0A8C1_0x004A96B0 = 0x004A96B0, // label: Constructor_PathFindingState + // label: _HoldStrong::Map::Navigation::PathFindingState::Constructor_PathFindingState + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A9760 = 0x004A9760, + // label: _HoldStrong::Map::Navigation::PathFindingState::traceAndCommitPathPlan // label: traceAndCommitPathPlan + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A97D0 = 0x004A97D0, // type: function SHC_3BB0A8C1_0x004A98C0 = 0x004A98C0, + // label: _HoldStrong::Map::Navigation::PathFindingState::doPathfinding // label: doPathfinding + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A9B20 = 0x004A9B20, + // label: _HoldStrong::Map::Navigation::PathFindingState::retraceAndCommitPathPlan // label: retraceAndCommitPathPlan + // location: // location: OpenSHC/Map/Navigation/PathFindingState // type: function SHC_3BB0A8C1_0x004A9DD0 = 0x004A9DD0, // label: Constructor_MenuModal + // label: _HoldStrong::UI::MenuModal::Constructor_MenuModal + // location: // location: OpenSHC/UI/MenuModal // type: function SHC_3BB0A8C1_0x004A9E00 = 0x004A9E00, // label: Constructor_MenuModalComposition + // label: _HoldStrong::UI::MenuModalComposition::Constructor_MenuModalComposition + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004A9E60 = 0x004A9E60, + // label: _HoldStrong::UI::MenuModalComposition::loadAllMenuElementsOfMenuModals // label: loadAllMenuElementsOfMenuModals + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004A9E80 = 0x004A9E80, // type: function SHC_3BB0A8C1_0x004A9E90 = 0x004A9E90, + // label: _HoldStrong::UI::MenuModalComposition::findModalMenu // label: findModalMenu + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004A9EB0 = 0x004A9EB0, + // label: _HoldStrong::UI::MenuModalComposition::activateModalDialog // label: activateModalDialog + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004A9ED0 = 0x004A9ED0, + // label: _HoldStrong::UI::MenuModalComposition::setExtraActiveModalDialog // label: setExtraActiveModalDialog + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004AA0A0 = 0x004AA0A0, - // label: handleActiveModalDialogUnk + // label: _HoldStrong::UI::MenuModalComposition::handleActiveModalDialogUnk + // label: updateActiveModalDialogDrag + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004AA1F0 = 0x004AA1F0, + // label: _HoldStrong::UI::MenuModalComposition::fillWithMenuModalDimensions // label: fillWithMenuModalDimensions + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004AA3E0 = 0x004AA3E0, @@ -29059,11 +31235,15 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AA440 = 0x004AA440, + // label: _HoldStrong::UI::MenuModalComposition::setSliderParameters // label: setSliderParameters + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004AA480 = 0x004AA480, + // label: _HoldStrong::UI::MenuModalComposition::setSliderParameters2 // label: setSliderParameters2 + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004AA540 = 0x004AA540, @@ -29089,7 +31269,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AA800 = 0x004AA800, - // label: setModalSliderParameters + // label: _HoldStrong::UI::MenuModalComposition::meth_0x4aa930 + // label: setupModalSlider + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004AA930 = 0x004AA930, @@ -29109,7 +31291,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AAA80 = 0x004AAA80, - // label: MenuModalRenderFunction_DebugDataZoneDataUnk + // label: MenuModalRenderFunction_DebugDataZoneData + // label: _HoldStrong::UI::MenuModalRenderFunction_DebugDataZoneDataUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AAAA0 = 0x004AAAA0, @@ -29153,7 +31337,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AB4E0 = 0x004AB4E0, - // label: MenuModalRenderFunction_UnusedSiegeAttackingForceUnk + // label: MenuModalRenderFunction_UnusedSiegeAttackingForce + // label: _HoldStrong::UI::MenuModalRenderFunction_UnusedSiegeAttackingForceUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AB510 = 0x004AB510, @@ -29269,6 +31455,10 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004ABEB0 = 0x004ABEB0, + // type: function + SHC_3BB0A8C1_0x004ABF01 = 0x004ABF01, + // type: function + SHC_3BB0A8C1_0x004ABFB0 = 0x004ABFB0, // type: /undefined *32 SHC_3BB0A8C1_0x004AC008 = 0x004AC008, // type: /undefined *32 @@ -29441,7 +31631,7 @@ enum { // location: OpenSHC/Game/Skirmish // type: function SHC_3BB0A8C1_0x004AC570 = 0x004AC570, - // label: buildEnemyPlayerList + // label: collectEnemyPlayerIDs // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AC650 = 0x004AC650, @@ -29555,7 +31745,7 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AE720 = 0x004AE720, - // label: clearHoveredAI + // label: clearLobbyHoveredAI // location: OpenSHC/Synchrony // type: function SHC_3BB0A8C1_0x004AE7C0 = 0x004AE7C0, @@ -29567,7 +31757,7 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AE950 = 0x004AE950, - // label: syncPlayerGroupArrays + // label: snapshotPlayerGroups // location: OpenSHC/Synchrony // type: function SHC_3BB0A8C1_0x004AEA10 = 0x004AEA10, @@ -29595,11 +31785,15 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AEF70 = 0x004AEF70, - // label: MenuModalRenderFunction_DebugDataAivStateUnk + // label: MenuModalRenderFunction_DebugDataAivState + // label: _HoldStrong::UI::MenuModalRenderFunction_DebugDataAivStateUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004AF4C0 = 0x004AF4C0, // label: Constructor_DisplayElement + // label: _HoldStrong::UI::DisplayElement::Constructor_DisplayElement + // location: // location: OpenSHC/UI/DisplayElement // type: function SHC_3BB0A8C1_0x004AF5E0 = 0x004AF5E0, @@ -29611,11 +31805,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004AF650 = 0x004AF650, - // label: ActivateGameSpeedAndResourceLackDisplayElementUnk + // label: _HoldStrong::Global::ActivateGameSpeedAndResourceLackDisplayElementUnk + // label: activateDisplayElementForDuration + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004AF680 = 0x004AF680, - // label: TogglePlayerPingDisplayElementUnk + // label: _HoldStrong::UI::Rendering::TogglePlayerPingDisplayElementUnk + // label: togglePlayerPingDisplayElement + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004AF6B0 = 0x004AF6B0, @@ -29623,11 +31821,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004AF6E0 = 0x004AF6E0, - // label: RenderDisplayElementsUnk + // label: _HoldStrong::UI::Rendering::RenderDisplayElementsUnk + // label: renderAllActiveDisplayElements + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004AF700 = 0x004AF700, - // label: renderInGameChatDisplayElement + // label: RenderInGameChatDisplayElement + // label: _HoldStrong::Synchrony::GameSynchronyState::RenderInGameChatDisplayElementUnk + // location: // location: OpenSHC/Synchrony/GameSynchronyState // type: function SHC_3BB0A8C1_0x004AF800 = 0x004AF800, @@ -29643,11 +31845,15 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004AF860 = 0x004AF860, - // label: RenderUnknownDisplayElement7 + // label: _HoldStrong::UI::Rendering::RenderUnknownDisplayElement7 + // label: renderStopwatchDurationDisplayElement + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004AFA50 = 0x004AFA50, - // label: RenderSomeMissionNumberUnkDisplayElement9 + // label: _HoldStrong::UI::Rendering::RenderSomeMissionNumberUnkDisplayElement9 + // label: renderMissionNumberDisplayElement + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004AFA80 = 0x004AFA80, @@ -29663,7 +31869,9 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004AFDA0 = 0x004AFDA0, - // label: RenderSomeMultiplayerInfoUnkDisplayElement19 + // label: _HoldStrong::UI::Rendering::RenderSomeMultiplayerInfoUnkDisplayElement19 + // label: renderMultiplayerResyncOverlayDisplayElement + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004AFE10 = 0x004AFE10, @@ -29675,7 +31883,9 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004B07C0 = 0x004B07C0, - // label: RenderUnknownDisplayElement25 + // label: _HoldStrong::UI::Rendering::RenderUnknownDisplayElement25 + // label: renderSkirmishPointsPerPlayerDebugOverlay + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004B0820 = 0x004B0820, @@ -29683,7 +31893,9 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004B0AC0 = 0x004B0AC0, + // label: _HoldStrong::UI::MenuModalComposition::renderMenuModal // label: renderMenuModal + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004B0B30 = 0x004B0B30, @@ -29709,7 +31921,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B0F70 = 0x004B0F70, - // label: MenuItemActionHandler_UnusedWinCondition_DeselectUnk + // label: MenuItemActionHandler_UnusedWinCondition_CloseModalOnClickOutside + // label: _HoldStrong::UI::MenuItemActionHandler_UnusedWinCondition_DeselectUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B1000 = 0x004B1000, @@ -29731,8 +31945,6 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B1410 = 0x004B1410, - // type: function - SHC_3BB0A8C1_0x004B1471 = 0x004B1471, // label: MenuItemActionHandler_AlliesSendAndRequestGoods_Main // location: OpenSHC/UI // type: function @@ -29759,7 +31971,9 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004B1C30 = 0x004B1C30, - // label: RenderPlayerPingUnkDisplayElement22 + // label: _HoldStrong::UI::Rendering::RenderPlayerPingUnkDisplayElement22 + // label: renderPlayerPingDisplayElement + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004B1D30 = 0x004B1D30, @@ -29773,19 +31987,29 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004B1EB0 = 0x004B1EB0, - // label: RenderNoRushDisplayElementUnk + // label: _HoldStrong::UI::Rendering::RenderNoRushDisplayElementUnk + // label: renderNoRushDisplayElement + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004B20B0 = 0x004B20B0, + // label: renderNoRushText + // location: + // type: function + SHC_3BB0A8C1_0x004B20D7 = 0x004B20D7, // label: RenderTimeUntilDefeatDisplayElement // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004B2280 = 0x004B2280, - // label: RenderSomeMultiplayerInfoUnkDisplayElement28 + // label: _HoldStrong::UI::Rendering::RenderSomeMultiplayerInfoUnkDisplayElement28 + // label: renderLaggingPlayerEjectOverlayDisplayElement + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004B2530 = 0x004B2530, + // label: _HoldStrong::UI::MenuModalComposition::activateModalDialog2 // label: activateModalDialog2 + // location: // location: OpenSHC/UI/MenuModalComposition // type: function SHC_3BB0A8C1_0x004B2820 = 0x004B2820, @@ -30664,66 +32888,90 @@ enum { // type: /pointer SHC_3BB0A8C1_0x004B50FC = 0x004B50FC, // label: Constructor_MinimapViewState + // label: _HoldStrong::UI::MinimapViewState::Constructor_MinimapViewState + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B5100 = 0x004B5100, - // label: scrollViewportToMinimapClick + // label: moveViewportToMinimapClick // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B5110 = 0x004B5110, - // label: convertMinimapClickToTileXY + // label: _HoldStrong::UI::MinimapViewState::meth_0x4b51a0 + // label: convertMinimapClickToTile + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B51A0 = 0x004B51A0, + // label: _HoldStrong::UI::MinimapViewState::renderMinimapPreview // label: renderMinimapPreview + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B5280 = 0x004B5280, - // label: triggerMinimapRedraw + // label: _HoldStrong::UI::MinimapViewState::meth_0x4b5300 + // label: toggleMinimapState + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B5300 = 0x004B5300, - // label: renderMinimapTileStripWithLuminescence + // label: renderMinimap // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B5330 = 0x004B5330, // type: function SHC_3BB0A8C1_0x004B5480 = 0x004B5480, + // label: _HoldStrong::UI::MinimapViewState::setTileColorsUnk // label: renderMinimapTileColors + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B58D0 = 0x004B58D0, // type: function SHC_3BB0A8C1_0x004B5A20 = 0x004B5A20, - // label: locatePlayerKeepPositionsOnMinimap + // label: _HoldStrong::UI::MinimapViewState::meth_0x4b5f70 + // label: renderMinimapContent + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B5F70 = 0x004B5F70, + // label: _HoldStrong::UI::MinimapViewState::generateMinimapImage // label: generateMinimapImage + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B61F0 = 0x004B61F0, - // label: convertLoadedMinimapColors + // label: _HoldStrong::UI::MinimapViewState::createMapPreviewMiniMap_ConvertColorsUnk + // label: expandMapPreviewMinimapToRGB + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B6320 = 0x004B6320, // type: function SHC_3BB0A8C1_0x004B63C0 = 0x004B63C0, + // label: _HoldStrong::UI::MinimapViewState::setSpawnMoment // label: setSpawnMoment + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B6430 = 0x004B6430, + // label: _HoldStrong::UI::MinimapViewState::clearOldSpawnMoment // label: clearOldSpawnMoment + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B6480 = 0x004B6480, // type: function SHC_3BB0A8C1_0x004B64D0 = 0x004B64D0, - // label: MenuItemRenderFunction_InGameMenu_MapEventIconUnk + // label: MenuItemRenderFunction_InGameMenu_MapEventIcon + // label: _HoldStrong::UI::MenuItemRenderFunction_InGameMenu_MapEventIconUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B6500 = 0x004B6500, - // label: MenuItemActionHandler_InGameMenu_MapEventIconUnk + // label: MenuItemActionHandler_InGameMenu_MapEventIconJumpTo + // label: _HoldStrong::UI::MenuItemActionHandler_InGameMenu_MapEventIconUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B6530 = 0x004B6530, @@ -30737,15 +32985,21 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B65F0 = 0x004B65F0, + // label: _HoldStrong::UI::MinimapViewState::setMapPropertyDependingOnMapSize // label: setMapPropertyDependingOnMapSize + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B6640 = 0x004B6640, + // label: _HoldStrong::UI::MinimapViewState::setTileColorsDependingOnMapSize // label: setTileColorsDependingOnMapSize + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B6680 = 0x004B6680, + // label: _HoldStrong::UI::MinimapViewState::drawMinimap // label: drawMinimap + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B66C0 = 0x004B66C0, @@ -30891,55 +33145,79 @@ enum { SHC_3BB0A8C1_0x004B72F9 = 0x004B72F9, // type: /byte SHC_3BB0A8C1_0x004B72FA = 0x004B72FA, + // label: _HoldStrong::UI::MinimapViewState::renderMinimapMain // label: renderMinimapMain + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B7300 = 0x004B7300, + // label: _HoldStrong::UI::MinimapViewState::renderMinimapLandscaping // label: renderMinimapLandscaping + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B7460 = 0x004B7460, + // label: _HoldStrong::UI::MinimapViewState::renderMinimapEditor // label: renderMinimapEditor + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B7530 = 0x004B7530, + // label: _HoldStrong::UI::MinimapViewState::renderMiniMapForSaving // label: renderMiniMapForSaving + // location: // location: OpenSHC/UI/MinimapViewState // type: function SHC_3BB0A8C1_0x004B7600 = 0x004B7600, + // label: _HoldStrong::Map::Units::TribesState::giveUnitSelectionMoveInstructionNoMatchedSpeed // label: giveUnitSelectionMoveInstructionNoMatchedSpeed + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x004B7700 = 0x004B7700, + // label: _HoldStrong::Game::ScenarioEvents::InGameEventUnionVersion::resetEvent // label: resetEvent + // location: // location: OpenSHC/Game/ScenarioEvents/InGameEventUnionVersion // type: function SHC_3BB0A8C1_0x004B7730 = 0x004B7730, + // label: _HoldStrong::Game::ScenarioEvents::InGameEventUnionVersion::initializeScenarioEvent // label: initializeScenarioEvent + // location: // location: OpenSHC/Game/ScenarioEvents/InGameEventUnionVersion // type: function SHC_3BB0A8C1_0x004B77A0 = 0x004B77A0, - // label: isValueInRangeOneToTwenty + // label: _HoldStrong::Map::MapPropertiesState::isParam1LessThan21 + // label: isParam1LessThan21 + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004B77E0 = 0x004B77E0, + // label: _HoldStrong::Map::MapPropertiesState::importTradingCosts // label: importTradingCosts + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004B7800 = 0x004B7800, + // label: _HoldStrong::Map::MapPropertiesState::mapHasCertainEvent // label: mapHasCertainEvent + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004B7890 = 0x004B7890, + // label: _HoldStrong::Map::MapPropertiesState::getEventIDForTimeUntilDefeatEventType // label: getEventIDForTimeUntilDefeatEventType + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004B78D0 = 0x004B78D0, - // label: activateScenarioTypeEvents + // label: activateMatchingScenarioEvents // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004B7930 = 0x004B7930, - // label: determineScenarioMissionTypeAndResetEvents + // label: _HoldStrong::Map::MapPropertiesState::meth_0x4b7980 + // label: checkScenarioSiegeEvents + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004B7980 = 0x004B7980, @@ -30949,23 +33227,31 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004B7AB0 = 0x004B7AB0, + // label: _HoldStrong::Rendering::Bink::AIMessageQueue::playVideoOverMap // label: playVideoOverMap + // location: // location: OpenSHC/Rendering/Bink/AIMessageQueue // type: function SHC_3BB0A8C1_0x004B7AF0 = 0x004B7AF0, + // label: _HoldStrong::Rendering::Bink::AIMessageQueue::playAiLordMessage // label: playAiLordMessage + // location: // location: OpenSHC/Rendering/Bink/AIMessageQueue // type: function SHC_3BB0A8C1_0x004B7C90 = 0x004B7C90, - // label: PlayMissionAestheticSFX + // label: playMissionAestheticSFX // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B7F60 = 0x004B7F60, + // label: _HoldStrong::Map::MapPropertiesState::sumUnitPoints // label: sumUnitPoints + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004B7FA0 = 0x004B7FA0, + // label: _HoldStrong::Map::MapPropertiesState::sumUnitCounts // label: sumUnitCounts + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004B8000 = 0x004B8000, @@ -30981,7 +33267,7 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004B8200 = 0x004B8200, - // label: RestoreScenarioGold + // label: restoreScenarioGold // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B8210 = 0x004B8210, @@ -31535,7 +33821,7 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B9530 = 0x004B9530, - // label: CaptureCurrentTimeToUnknownTime01 + // label: captureCurrentTimeMs // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004B9610 = 0x004B9610, @@ -32985,7 +35271,9 @@ enum { SHC_3BB0A8C1_0x004BA558 = 0x004BA558, // type: /byte SHC_3BB0A8C1_0x004BA559 = 0x004BA559, - // label: MenuItemActionHandler_UnusedCreateMessageEvent_Unknown + // label: MenuItemActionHandler_UnusedCreateMessageEvent_SetActionData + // label: _HoldStrong::UI::MenuItemActionHandler_UnusedCreateMessageEvent_Unknown + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BA560 = 0x004BA560, @@ -32997,11 +35285,15 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BA780 = 0x004BA780, - // label: sortEventsByDate + // label: _HoldStrong::Map::MapPropertiesState::meth_0x4ba7d0 + // label: sortScenarioEvents + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BA7D0 = 0x004BA7D0, - // label: removeEventAtIndex + // label: _HoldStrong::Map::MapPropertiesState::meth_0x4ba8b0 + // label: removeScenarioEvent + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BA8B0 = 0x004BA8B0, @@ -33045,15 +35337,19 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BAE80 = 0x004BAE80, + // label: _HoldStrong::Map::MapPropertiesState::commitBuildingAvailability // label: commitBuildingAvailability + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BAEC0 = 0x004BAEC0, + // label: _HoldStrong::Map::MapPropertiesState::isMapperAvailable // label: isMapperAvailable + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BB010 = 0x004BB010, - // label: isMercRecruitableForBuildingType + // label: isMercRecruitable // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BB0B0 = 0x004BB0B0, @@ -33267,19 +35563,27 @@ enum { SHC_3BB0A8C1_0x004BB8F8 = 0x004BB8F8, // type: /undefined *32 SHC_3BB0A8C1_0x004BB8FC = 0x004BB8FC, + // label: _HoldStrong::Map::MapPropertiesState::resetEuroUnitRestrictions // label: resetEuroUnitRestrictions + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BB900 = 0x004BB900, - // label: pruneInvalidEventTriggerLinks + // label: _HoldStrong::Map::MapPropertiesState::meth_0x4bb990 + // label: cleanupType3ScenarioEvents + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BB990 = 0x004BB990, + // label: _HoldStrong::Map::MapPropertiesState::openEventTriggerMenu // label: openEventTriggerMenu + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BB9F0 = 0x004BB9F0, + // label: _HoldStrong::Map::MapPropertiesState::sumInvasionEventUnitCount // label: sumInvasionEventUnitCount + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BBA20 = 0x004BBA20, @@ -33851,11 +36155,13 @@ enum { SHC_3BB0A8C1_0x004BC100 = 0x004BC100, // type: /undefined *32 SHC_3BB0A8C1_0x004BC104 = 0x004BC104, - // label: adjustEventMonthAndYearForSection1047 + // label: _HoldStrong::Map::MapPropertiesState::tweakMonthAndYearBasedOnSection1047 + // label: tweakMonthAndYearBasedOnSection1047 + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BC110 = 0x004BC110, - // label: spawnAttackWaveForPlayer + // label: spawnScenarioInvasionWave // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BC1C0 = 0x004BC1C0, @@ -34059,7 +36365,7 @@ enum { // location: OpenSHC/IO // type: function SHC_3BB0A8C1_0x004BC5B0 = 0x004BC5B0, - // label: initTutorialStepTransition + // label: startTutorialTimer // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BC5F0 = 0x004BC5F0, @@ -34067,29 +36373,31 @@ enum { // location: OpenSHC/Input // type: function SHC_3BB0A8C1_0x004BC620 = 0x004BC620, - // label: recordTutorialPlayerAction + // label: trackTutorialEvent // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BC630 = 0x004BC630, - // label: SetTutorialBuildingActionState + // label: recordTutorialBuildingAction // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004BC690 = 0x004BC690, - // label: resetTutorialActionTrackers + // label: resetTutorialTrackingState // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BC6C0 = 0x004BC6C0, + // label: initTutorialStateMachine + // location: // type: function SHC_3BB0A8C1_0x004BC6F0 = 0x004BC6F0, - // label: SetTutorialHintActiveWithTimestamp + // label: triggerTutorialHighlight // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004BC770 = 0x004BC770, - // label: renderAnimatedTutorialFloatOverlay + // label: renderTutorialPointer // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BC790 = 0x004BC790, - // label: renderTutorialFloatForUIElement + // label: showTutorialHintPointer // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BC910 = 0x004BC910, @@ -34173,7 +36481,7 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BD0F0 = 0x004BD0F0, - // label: updateTutorialStepAndProgress + // label: updateTutorialStateMachine // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BD1B0 = 0x004BD1B0, @@ -34255,15 +36563,21 @@ enum { SHC_3BB0A8C1_0x004BD978 = 0x004BD978, // type: /pointer SHC_3BB0A8C1_0x004BD97C = 0x004BD97C, - // label: createScenarioEventForNextMonth + // label: _HoldStrong::Map::MapPropertiesState::meth_0x4bd980 + // label: createScenarioEvent + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BD980 = 0x004BD980, - // label: createChainedMissionOutcomeEvents + // label: _HoldStrong::Map::MapPropertiesState::meth_0x4bda80 + // label: createLinkedScenarioEvents + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BDA80 = 0x004BDA80, - // label: computeMissionCompletionScore + // label: _HoldStrong::Map::MapPropertiesState::computeSomeKindOfMissionCompletionScore + // label: computeSomeKindOfMissionCompletionScore + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BDE40 = 0x004BDE40, @@ -34485,29 +36799,41 @@ enum { SHC_3BB0A8C1_0x004BE585 = 0x004BE585, // type: /byte SHC_3BB0A8C1_0x004BE586 = 0x004BE586, + // label: _HoldStrong::Map::MapPropertiesState::setStartingYearAndStartingResources // label: setStartingYearAndStartingResources + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BE590 = 0x004BE590, + // label: _HoldStrong::Rendering::Bink::AIMessageQueue::playEventVideoBik // label: playEventVideoBik + // location: // location: OpenSHC/Rendering/Bink/AIMessageQueue // type: function SHC_3BB0A8C1_0x004BE7E0 = 0x004BE7E0, + // label: _HoldStrong::Rendering::Bink::AIMessageQueue::prepareSFXandVFX // label: prepareSFXandVFX + // location: // location: OpenSHC/Rendering/Bink/AIMessageQueue // type: function SHC_3BB0A8C1_0x004BE8A0 = 0x004BE8A0, + // label: _HoldStrong::Rendering::Bink::AIMessageQueue::playNextStoredAIMessage // label: playNextStoredAIMessage + // location: // location: OpenSHC/Rendering/Bink/AIMessageQueue // type: function SHC_3BB0A8C1_0x004BE960 = 0x004BE960, // type: function SHC_3BB0A8C1_0x004BEA20 = 0x004BEA20, + // label: _HoldStrong::Rendering::Bink::AIMessageQueue::playBikVideoFromPlayer // label: playBikVideoFromPlayer + // location: // location: OpenSHC/Rendering/Bink/AIMessageQueue // type: function SHC_3BB0A8C1_0x004BEA90 = 0x004BEA90, - // label: updateEventYearsAndCommitBuildingAvailability + // label: _HoldStrong::Map::MapPropertiesState::meth_0x4beb20 + // label: setupStartingYear + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004BEB20 = 0x004BEB20, @@ -34749,7 +37075,9 @@ enum { SHC_3BB0A8C1_0x004BF711 = 0x004BF711, // type: /byte SHC_3BB0A8C1_0x004BF712 = 0x004BF712, - // label: MenuItemActionHandler_UnusedChooseMessageBox_Unknown + // label: MenuItemActionHandler_UnusedChooseMessageBox_SelectItem + // label: _HoldStrong::UI::MenuItemActionHandler_UnusedChooseMessageBox_Unknown + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BF720 = 0x004BF720, @@ -36137,7 +38465,9 @@ enum { SHC_3BB0A8C1_0x004BFE12 = 0x004BFE12, // type: /byte SHC_3BB0A8C1_0x004BFE13 = 0x004BFE13, - // label: MenuItemActionHandler_UnusedCreateMessageEvent_SetTextUnk + // label: MenuItemActionHandler_UnusedCreateMessageEvent_ConfirmOrEditDate + // label: _HoldStrong::UI::MenuItemActionHandler_UnusedCreateMessageEvent_SetTextUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004BFE20 = 0x004BFE20, @@ -37235,7 +39565,9 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004C1070 = 0x004C1070, - // label: removeProcessedInvasionEvents + // label: _HoldStrong::Map::MapPropertiesState::meth_0x4c1320 + // label: migrateScenarioEventData + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004C1320 = 0x004C1320, @@ -37243,7 +39575,9 @@ enum { SHC_3BB0A8C1_0x004C1370 = 0x004C1370, // type: function SHC_3BB0A8C1_0x004C1390 = 0x004C1390, - // label: spawnInvasionEventAttackWave + // label: _HoldStrong::Map::MapPropertiesState::meth_0x4c13f0 + // label: setupScenarioInvasionData + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004C13F0 = 0x004C13F0, @@ -37300,17 +39634,27 @@ enum { // type: function SHC_3BB0A8C1_0x004C1770 = 0x004C1770, // type: function - SHC_3BB0A8C1_0x004C17EA = 0x004C17EA, + SHC_3BB0A8C1_0x004C17B6 = 0x004C17B6, + // type: function + SHC_3BB0A8C1_0x004C17D0 = 0x004C17D0, + // type: function + SHC_3BB0A8C1_0x004C17DB = 0x004C17DB, + // type: function + SHC_3BB0A8C1_0x004C1817 = 0x004C1817, // type: function SHC_3BB0A8C1_0x004C19E6 = 0x004C19E6, // label: applyActionMarriage // location: + // type: function SHC_3BB0A8C1_0x004C1A7B = 0x004C1A7B, // label: applyActionJester // location: + // type: function SHC_3BB0A8C1_0x004C1AF2 = 0x004C1AF2, // type: function - SHC_3BB0A8C1_0x004C1B34 = 0x004C1B34, + SHC_3BB0A8C1_0x004C1B93 = 0x004C1B93, + // type: function + SHC_3BB0A8C1_0x004C1C90 = 0x004C1C90, // type: /undefined *32 SHC_3BB0A8C1_0x004C20DC = 0x004C20DC, // type: /undefined *32 @@ -37955,18 +40299,26 @@ enum { SHC_3BB0A8C1_0x004C226F = 0x004C226F, // type: /byte SHC_3BB0A8C1_0x004C2270 = 0x004C2270, - // label: updateMilitaryCampaignMissionState + // label: updateVictoryDefeatState // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004C2280 = 0x004C2280, - // label: loadMapSiegeHeaderSections - // location: OpenSHC/Map/MapPropertiesState + // label: loadMapScenarioSections + // location: // type: function SHC_3BB0A8C1_0x004C3110 = 0x004C3110, + // label: _HoldStrong::Map::MapPropertiesState::processSingleplayerEvents // label: processSingleplayerEvents + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004C31A0 = 0x004C31A0, + // type: function + SHC_3BB0A8C1_0x004C35B0 = 0x004C35B0, + // type: function + SHC_3BB0A8C1_0x004C3650 = 0x004C3650, + // type: function + SHC_3BB0A8C1_0x004C5FB0 = 0x004C5FB0, // type: /undefined *32[25] SHC_3BB0A8C1_0x004C6134 = 0x004C6134, // type: /byte[40] @@ -37975,19 +40327,23 @@ enum { SHC_3BB0A8C1_0x004C61C0 = 0x004C61C0, // type: /undefined *32[24] SHC_3BB0A8C1_0x004C623C = 0x004C623C, + // label: _HoldStrong::Rendering::Bink::AIMessageQueue::playNextStoredBinkVideo // label: playNextStoredBinkVideo + // location: // location: OpenSHC/Rendering/Bink/AIMessageQueue // type: function SHC_3BB0A8C1_0x004C62A0 = 0x004C62A0, + // label: _HoldStrong::Map::MapPropertiesState::loadMap // label: loadMap + // location: // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004C62C0 = 0x004C62C0, - // label: loadMapSiegeHeaderForMissionIndex + // label: loadMissionMapSiegeInfo // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004C6820 = 0x004C6820, - // label: loadMissionMapAndSetLord + // label: loadMissionMapByNumber // location: OpenSHC/Map/MapPropertiesState // type: function SHC_3BB0A8C1_0x004C6880 = 0x004C6880, @@ -38005,79 +40361,117 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004C6CD0 = 0x004C6CD0, + // label: _HoldStrong::AI::AICState::wipeAICMemory // label: wipeAICMemory + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C6D30 = 0x004C6D30, + // label: _HoldStrong::AI::AICState::setAICParameters_01 // label: setAICParameters_01 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C6D60 = 0x004C6D60, + // label: _HoldStrong::AI::AICState::setAICParameters_02 // label: setAICParameters_02 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C7120 = 0x004C7120, + // label: _HoldStrong::AI::AICState::setAICParameters_03 // label: setAICParameters_03 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C7520 = 0x004C7520, + // label: _HoldStrong::AI::AICState::setAICParameters_04 // label: setAICParameters_04 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C7910 = 0x004C7910, + // label: _HoldStrong::AI::AICState::setAICParameters_05 // label: setAICParameters_05 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C7D20 = 0x004C7D20, + // label: _HoldStrong::AI::AICState::setAICParameters_06 // label: setAICParameters_06 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C8110 = 0x004C8110, + // label: _HoldStrong::AI::AICState::setAICParameters_07 // label: setAICParameters_07 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C8530 = 0x004C8530, + // label: _HoldStrong::AI::AICState::setAICParameters_08 // label: setAICParameters_08 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C8920 = 0x004C8920, + // label: _HoldStrong::AI::AICState::setAICParameters_09 // label: setAICParameters_09 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C8D20 = 0x004C8D20, + // label: _HoldStrong::AI::AICState::setAICParameters_10 // label: setAICParameters_10 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C9120 = 0x004C9120, + // label: _HoldStrong::AI::AICState::setAICParameters_11 // label: setAICParameters_11 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C94F0 = 0x004C94F0, + // label: _HoldStrong::AI::AICState::setAICParameters_12 // label: setAICParameters_12 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C9900 = 0x004C9900, + // label: _HoldStrong::AI::AICState::setAICParameters_13 // label: setAICParameters_13 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004C9CF0 = 0x004C9CF0, + // label: _HoldStrong::AI::AICState::setAICParameters_14 // label: setAICParameters_14 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CA0C0 = 0x004CA0C0, + // label: _HoldStrong::AI::AICState::setAICParameters_15 // label: setAICParameters_15 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CA4D0 = 0x004CA4D0, + // label: _HoldStrong::AI::AICState::setAICParameters_16 // label: setAICParameters_16 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CA8A0 = 0x004CA8A0, + // label: _HoldStrong::AI::AICState::clearPlayerDataInformationChunk // label: clearPlayerDataInformationChunk + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CAC70 = 0x004CAC70, + // label: _HoldStrong::AI::AICState::setTargetForTribeBasedOnTargetChoiceLogic // label: setTargetForTribeBasedOnTargetChoiceLogic + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CACB0 = 0x004CACB0, @@ -38085,59 +40479,87 @@ enum { SHC_3BB0A8C1_0x004CAD10 = 0x004CAD10, // type: function SHC_3BB0A8C1_0x004CAE20 = 0x004CAE20, + // label: _HoldStrong::AI::AICState::updateTaxesAndRationsForAI // label: updateTaxesAndRationsForAI + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CAEA0 = 0x004CAEA0, + // label: _HoldStrong::AI::AICState::setFoodBuyPlan // label: setFoodBuyPlan + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB060 = 0x004CB060, + // label: _HoldStrong::AI::AICState::getAIBuildInterval // label: getAIBuildInterval + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB120 = 0x004CB120, + // label: _HoldStrong::AI::AICState::getResourceRebuildDelay // label: getResourceRebuildDelay + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB150 = 0x004CB150, + // label: _HoldStrong::AI::AICState::aiFarmChoice // label: aiFarmChoice + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB180 = 0x004CB180, + // label: _HoldStrong::AI::AICState::setNextFarmTypeToBuild // label: setNextFarmTypeToBuild + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB1B0 = 0x004CB1B0, + // label: _HoldStrong::AI::AICState::aiShouldBuildFarm // label: aiShouldBuildFarm + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB220 = 0x004CB220, + // label: _HoldStrong::AI::AICState::aiShouldBuildWoodcutter // label: aiShouldBuildWoodcutter + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB290 = 0x004CB290, + // label: _HoldStrong::AI::AICState::aiShouldBuildQuarry // label: aiShouldBuildQuarry + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB330 = 0x004CB330, + // label: _HoldStrong::AI::AICState::aiRequiresExtraOxtethers // label: aiRequiresExtraOxtethers + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB3A0 = 0x004CB3A0, + // label: _HoldStrong::AI::AICState::aiShouldBuildIronMine // label: aiShouldBuildIronMine + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB4D0 = 0x004CB4D0, + // label: _HoldStrong::AI::AICState::aiShouldBuildPitchrig // label: aiShouldBuildPitchrig + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB540 = 0x004CB540, + // label: _HoldStrong::AI::AICState::shouldNotBeBuildingHovel // label: shouldNotBeBuildingHovel + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB5B0 = 0x004CB5B0, + // label: _HoldStrong::AI::AICState::shouldWaitWithBuildingNegativeFearFactor // label: shouldWaitWithBuildingNegativeFearFactor + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB610 = 0x004CB610, @@ -38417,7 +40839,9 @@ enum { SHC_3BB0A8C1_0x004CB6FA = 0x004CB6FA, // type: /byte SHC_3BB0A8C1_0x004CB6FB = 0x004CB6FB, + // label: _HoldStrong::AI::AICState::shouldWaitWithBuildingAPositiveFearFactor // label: shouldWaitWithBuildingAPositiveFearFactor + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB700 = 0x004CB700, @@ -38763,43 +41187,63 @@ enum { SHC_3BB0A8C1_0x004CB803 = 0x004CB803, // type: /byte SHC_3BB0A8C1_0x004CB804 = 0x004CB804, + // label: _HoldStrong::AI::AICState::destroyHouse // label: destroyHouse + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB810 = 0x004CB810, - // label: shouldDestroyWoodCutterUnk + // label: _HoldStrong::AI::AICState::shouldDestroyWoodCutterUnk + // label: aiMaybeDestroyWoodcutterHut + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB890 = 0x004CB890, + // label: _HoldStrong::AI::AICState::destroyBuildingIfNoWorker // label: destroyBuildingIfNoWorker + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB940 = 0x004CB940, + // label: _HoldStrong::AI::AICState::shouldNotBuildMarketArmoryGranaryBarracksMercenarypost // label: shouldNotBuildMarketArmoryGranaryBarracksMercenarypost + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CB9F0 = 0x004CB9F0, + // label: _HoldStrong::AI::AICState::planToBuyWhenLowOnResourceAndSnoozeBuildings // label: planToBuyWhenLowOnResourceAndSnoozeBuildings + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CBA50 = 0x004CBA50, + // label: _HoldStrong::AI::AICState::setupWorkshopProductionType // label: setupWorkshopProductionType + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CBE30 = 0x004CBE30, + // label: _HoldStrong::AI::AICState::sellGoods // label: sellGoods + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CBFA0 = 0x004CBFA0, + // label: _HoldStrong::AI::AICState::buyGoods // label: buyGoods + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC000 = 0x004CC000, + // label: _HoldStrong::AI::AICState::randomlySelectAttackUnitTypeToRecruit // label: randomlySelectAttackUnitTypeToRecruit + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC070 = 0x004CC070, + // label: _HoldStrong::AI::AICState::getUnitTypeForUnitBehaviourType // label: getUnitTypeForUnitBehaviourType + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC250 = 0x004CC250, @@ -38807,57 +41251,83 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004CC390 = 0x004CC390, + // label: _HoldStrong::AI::AICState::generateSiegeCreationInformation // label: generateSiegeCreationInformation + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC420 = 0x004CC420, + // label: _HoldStrong::AI::AICState::recruitEngineers // label: recruitEngineers + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC520 = 0x004CC520, + // label: _HoldStrong::AI::AICState::assignRequiredIdleEngineersToNewTribe // label: assignRequiredIdleEngineersToNewTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC5A0 = 0x004CC5A0, + // label: _HoldStrong::AI::AICState::addEngineersToSelection // label: addEngineersToSelection + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC680 = 0x004CC680, // type: function SHC_3BB0A8C1_0x004CC6B0 = 0x004CC6B0, + // label: _HoldStrong::AI::AICState::addUnitsToTribe166 // label: addUnitsToTribe166 + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC720 = 0x004CC720, + // label: _HoldStrong::AI::AICState::syncBehaviourType7UnitTribes // label: syncBehaviourType7UnitTribes + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC7B0 = 0x004CC7B0, - // label: addUnitToTribeType10_moatdiggersUnk + // label: _HoldStrong::AI::AICState::addUnitToTribeType10_moatdiggersUnk + // label: aiAddUnitToMoatDiggerTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC840 = 0x004CC840, + // label: _HoldStrong::AI::AICState::unitIDIsRangedOrArmored // label: unitIDIsRangedOrArmored + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC8D0 = 0x004CC8D0, + // label: _HoldStrong::AI::AICState::createTribeForUnitType // label: createTribeForUnitType + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC910 = 0x004CC910, + // label: _HoldStrong::AI::AICState::smallestTribeOfUnitType // label: smallestTribeOfUnitType + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CC990 = 0x004CC990, + // label: _HoldStrong::Map::Units::TribesState::getSmallestPatrolTribe // label: getSmallestPatrolTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x004CCAF0 = 0x004CCAF0, + // label: _HoldStrong::AI::AICState::getDefensiveTribeForUnit // label: getDefensiveTribeForUnit + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CCBE0 = 0x004CCBE0, + // label: _HoldStrong::AI::AICState::addUnitToSmallestBehaviourTypeTribe // label: addUnitToSmallestBehaviourTypeTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CCD20 = 0x004CCD20, @@ -39235,111 +41705,163 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004CD070 = 0x004CD070, + // label: _HoldStrong::AI::AICState::sendUnitsToKeep // label: sendUnitsToKeep + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CD0C0 = 0x004CD0C0, + // label: _HoldStrong::AI::AICState::sendUnitsToCampfire // label: sendUnitsToCampfire + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CD110 = 0x004CD110, + // label: _HoldStrong::AI::AICState::digNearestMoat // label: digNearestMoat + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CD160 = 0x004CD160, + // label: _HoldStrong::AI::AICState::canNavigateUnitsFromTileToTargetTile // label: canNavigateUnitsFromTileToTargetTile + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CD250 = 0x004CD250, + // label: _HoldStrong::AI::AICState::recruitHarrassingSiegeEngines // label: recruitHarrassingSiegeEngines + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CD2A0 = 0x004CD2A0, + // label: _HoldStrong::AI::AICState::recruitSortieRangedUnits // label: recruitSortieRangedUnits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CD560 = 0x004CD560, + // label: _HoldStrong::AI::AICState::recruitSortieMeleeUnits // label: recruitSortieMeleeUnits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CD690 = 0x004CD690, + // label: _HoldStrong::AI::AICState::instructTribe166ToMove // label: instructTribe166ToMove + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CD7B0 = 0x004CD7B0, + // label: _HoldStrong::AI::AICState::giveMoveCommandToSortieUnits // label: giveMoveCommandToSortieUnits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CD8F0 = 0x004CD8F0, + // label: _HoldStrong::AI::AICState::addBuildingToTargetableBuildings // label: addBuildingToTargetableBuildings + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CDA50 = 0x004CDA50, + // label: _HoldStrong::AI::AICState::selectBuildingFromAListOfBuildingTypes // label: selectBuildingFromAListOfBuildingTypes + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CDAB0 = 0x004CDAB0, + // label: _HoldStrong::AI::AICState::chooseRandomBuildingIDFromPlayersArrayOfBuildings // label: chooseRandomBuildingIDFromPlayersArrayOfBuildings + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CDB20 = 0x004CDB20, + // label: _HoldStrong::AI::AICState::getTargetableBuildingForPlayerID // label: getTargetableBuildingForPlayerID + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CDBC0 = 0x004CDBC0, + // label: _HoldStrong::AI::AICState::selectRandomBuildingIDFromListOfBuildingTypes // label: selectRandomBuildingIDFromListOfBuildingTypes + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CDCA0 = 0x004CDCA0, + // label: _HoldStrong::AI::AICState::shouldWeAttackOrWaitForTeammates // label: shouldWeAttackOrWaitForTeammates + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CDCF0 = 0x004CDCF0, + // label: _HoldStrong::AI::AICState::setCurrentAttackStrength // label: setCurrentAttackStrength + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CDE60 = 0x004CDE60, + // label: _HoldStrong::AI::AICState::setCurrentAttackRaidParameter // label: setCurrentAttackRaidParameter + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CDF10 = 0x004CDF10, + // label: _HoldStrong::AI::AICState::setAttackPrimeInfo // label: setAttackPrimeInfo + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CDFD0 = 0x004CDFD0, - // label: recomputeDistancesToAttackedKeepRelated + // label: _HoldStrong::AI::AICState::recomputeDistancesToAttackedKeepRelated + // label: recomputeAIPathCostToAttackedKeep + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE040 = 0x004CE040, + // label: _HoldStrong::AI::AICState::recomputeAttackAIZone // label: recomputeAttackAIZone + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE110 = 0x004CE110, + // label: _HoldStrong::AI::AICState::recomputeAIZonerLayer // label: recomputeAIZonerLayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE1A0 = 0x004CE1A0, - // label: computeAndStoreShortestDistanceToKeepUnk + // label: _HoldStrong::AI::AICState::computeAndStoreShortestDistanceToKeepUnk + // label: computeEnemyKeepApproachTile + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE200 = 0x004CE200, // type: function SHC_3BB0A8C1_0x004CE270 = 0x004CE270, + // label: _HoldStrong::AI::AICState::setNextMoveLocationForUnits // label: setNextMoveLocationForUnits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE3B0 = 0x004CE3B0, + // label: _HoldStrong::AI::AICState::removeOrganismsAndSetMoveDestinationPairs // label: removeOrganismsAndSetMoveDestinationPairs + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE430 = 0x004CE430, + // label: _HoldStrong::AI::AICState::aiRetreatUnits // label: aiRetreatUnits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE4D0 = 0x004CE4D0, // type: function SHC_3BB0A8C1_0x004CE530 = 0x004CE530, + // label: _HoldStrong::AI::AICState::sendUnitsToPlayerIDsKeepIfPossible // label: sendUnitsToPlayerIDsKeepIfPossible + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE5F0 = 0x004CE5F0, @@ -39347,11 +41869,15 @@ enum { SHC_3BB0A8C1_0x004CE660 = 0x004CE660, // type: function SHC_3BB0A8C1_0x004CE6B0 = 0x004CE6B0, - // label: setRallyRelatedFlagOnAllAIAttackTribes + // label: _HoldStrong::AI::AICState::setRallyRelatedFlagOnAllAIAttackTribes + // label: clearRallyFlagOnAllAIAttackTribes + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE790 = 0x004CE790, + // label: _HoldStrong::AI::AICState::moveAttackTribesToLocations // label: moveAttackTribesToLocations + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE830 = 0x004CE830, @@ -39359,197 +41885,289 @@ enum { SHC_3BB0A8C1_0x004CE860 = 0x004CE860, // type: function SHC_3BB0A8C1_0x004CE890 = 0x004CE890, + // label: _HoldStrong::AI::AICState::findAttackTribePositionAndPathToDefenses // label: findAttackTribePositionAndPathToDefenses + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CE930 = 0x004CE930, + // label: _HoldStrong::AI::AICState::makeUnitsGoDefensiveAndBackToSomeLocation // label: makeUnitsGoDefensiveAndBackToSomeLocation + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CEA50 = 0x004CEA50, + // label: _HoldStrong::AI::AICState::giveMoveCommandToAttackTribes // label: giveMoveCommandToAttackTribes + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CEB50 = 0x004CEB50, // type: function SHC_3BB0A8C1_0x004CEB80 = 0x004CEB80, + // label: _HoldStrong::AI::AICState::aiChoiceAttForceRallyPercentage // label: aiChoiceAttForceRallyPercentage + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CEC80 = 0x004CEC80, + // label: _HoldStrong::AI::AICState::percentageNonMovingTribesGTEAICSpecified // label: percentageNonMovingTribesGTEAICSpecified + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CED90 = 0x004CED90, + // label: _HoldStrong::AI::AICState::processAttForceRallyPercentage // label: processAttForceRallyPercentage + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CEEA0 = 0x004CEEA0, + // label: _HoldStrong::AI::AICState::useAITribe_0x12_toPlaceSiegeTentsAndAssignEngineers // label: useAITribe_0x12_toPlaceSiegeTentsAndAssignEngineers + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CEFD0 = 0x004CEFD0, // type: function SHC_3BB0A8C1_0x004CF060 = 0x004CF060, + // label: _HoldStrong::AI::AICState::useAITribe_0xe_toPlaceTunnels // label: useAITribe_0xe_toPlaceTunnels + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF180 = 0x004CF180, - // label: aiAttackWave_tribe13Unk + // label: _HoldStrong::AI::AICState::aiAttackWave_tribe13Unk + // label: aiCommandTribe13DefensiveWave + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF270 = 0x004CF270, - // label: aiAttackWave_tribe12Unk + // label: _HoldStrong::AI::AICState::aiAttackWave_tribe12Unk + // label: aiCommandTribe12AggressiveApproach + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF2E0 = 0x004CF2E0, + // label: _HoldStrong::AI::AICState::setTribe0xCtoAggressiveAndAttack // label: setTribe0xCtoAggressiveAndAttack + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF400 = 0x004CF400, - // label: aiAttackWave_tribe11Unk + // label: _HoldStrong::AI::AICState::aiAttackWave_tribe11Unk + // label: aiCommandTribe11StandGroundToGate + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF470 = 0x004CF470, + // label: _HoldStrong::AI::AICState::sendAITribe_0xf_toAttackPatrol // label: sendAITribe_0xf_toAttackPatrol + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF4F0 = 0x004CF4F0, + // label: _HoldStrong::AI::AICState::setTribe0x11ToAggressiveAndAttackIfConditionMet // label: setTribe0x11ToAggressiveAndAttackIfConditionMet + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF560 = 0x004CF560, + // label: _HoldStrong::AI::AICState::setEightTribe0xc0TribesToAggressiveAndAttack // label: setEightTribe0xc0TribesToAggressiveAndAttack + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF5E0 = 0x004CF5E0, - // label: aiAttackWallsSmthUnk + // label: _HoldStrong::AI::AICState::aiAttackWallsSmthUnk + // label: aiCommandWallAssaultTribes + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF660 = 0x004CF660, + // label: _HoldStrong::AI::AICState::setTribe0xbToAggressiveAndAttack // label: setTribe0xbToAggressiveAndAttack + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF6E0 = 0x004CF6E0, + // label: _HoldStrong::AI::AICState::sendTribeToAttack // label: sendTribeToAttack + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF750 = 0x004CF750, + // label: _HoldStrong::AI::AICState::commandFourTribesToMove // label: commandFourTribesToMove + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF7C0 = 0x004CF7C0, // type: function SHC_3BB0A8C1_0x004CF7F0 = 0x004CF7F0, + // label: _HoldStrong::AI::AICState::clearOutdatedAITribes // label: clearOutdatedAITribes + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF870 = 0x004CF870, + // label: _HoldStrong::AI::AICState::giveSomeRaidCommand // label: giveSomeRaidCommand + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CF920 = 0x004CF920, + // label: _HoldStrong::AI::AICState::addRallyPointForTribe // label: addRallyPointForTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CFA10 = 0x004CFA10, + // label: _HoldStrong::AI::AICState::disbandAIPlayerSiegeUnits // label: disbandAIPlayerSiegeUnits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CFB20 = 0x004CFB20, + // label: _HoldStrong::AI::AICState::countSiegeEngineUnits // label: countSiegeEngineUnits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CFBC0 = 0x004CFBC0, - // label: aiAttackWaveSiegeUnitsUnk + // label: _HoldStrong::AI::AICState::aiAttackWaveSiegeUnitsUnk + // label: aiCommandSiegeEngineTribes + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CFCD0 = 0x004CFCD0, + // label: _HoldStrong::AI::AICState::yieldCowThrow // label: yieldCowThrow + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CFF60 = 0x004CFF60, + // label: _HoldStrong::AI::AICState::hasNoTroopsOrAllAreDiggers // label: hasNoTroopsOrAllAreDiggers + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004CFFD0 = 0x004CFFD0, + // label: _HoldStrong::AI::AICState::hasNotEnoughSupplies // label: hasNotEnoughSupplies + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D00A0 = 0x004D00A0, - // label: setAttackWillingnessUnk + // label: _HoldStrong::AI::AICState::setAttackWillingnessUnk + // label: aiRollAttackWillingness + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0110 = 0x004D0110, + // label: _HoldStrong::AI::AICState::teamIsWeakRelativeToEnemy // label: teamIsWeakRelativeToEnemy + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0190 = 0x004D0190, + // label: _HoldStrong::AI::AICState::destroyAnyBuildingInCategory // label: destroyAnyBuildingInCategory + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0280 = 0x004D0280, + // label: _HoldStrong::AI::AICState::isResourceLargerOrEqualThanMinimumGoodsRequiredAfterTrade // label: isResourceLargerOrEqualThanMinimumGoodsRequiredAfterTrade + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0520 = 0x004D0520, + // label: _HoldStrong::AI::AICState::aiOfTypeInCurrentGame // label: aiOfTypeInCurrentGame + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0580 = 0x004D0580, + // label: _HoldStrong::AI::AICState::shareGoldAmongTeamMembers // label: shareGoldAmongTeamMembers + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D05D0 = 0x004D05D0, // type: function SHC_3BB0A8C1_0x004D0720 = 0x004D0720, + // label: _HoldStrong::AI::AICState::playTauntToAttackedPlayerBikFromPlayer // label: playTauntToAttackedPlayerBikFromPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D07C0 = 0x004D07C0, + // label: _HoldStrong::AI::AICState::playAnger1BikFromPlayer // label: playAnger1BikFromPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0830 = 0x004D0830, + // label: _HoldStrong::AI::AICState::playPlayerKilledBiksFromKilledAndKillerPlayer // label: playPlayerKilledBiksFromKilledAndKillerPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D08B0 = 0x004D08B0, // type: function SHC_3BB0A8C1_0x004D0910 = 0x004D0910, + // label: _HoldStrong::AI::AICState::playGoodsRequestBikFromPlayerToPlayer // label: playGoodsRequestBikFromPlayerToPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0A20 = 0x004D0A20, + // label: _HoldStrong::AI::AICState::playThanksBikFromPlayerToPlayer // label: playThanksBikFromPlayerToPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0A80 = 0x004D0A80, + // label: _HoldStrong::AI::AICState::playNervous2BikFromPlayer // label: playNervous2BikFromPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0B10 = 0x004D0B10, + // label: _HoldStrong::AI::AICState::playGoodsNotSentBikFromPlayer // label: playGoodsNotSentBikFromPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0B70 = 0x004D0B70, + // label: _HoldStrong::AI::AICState::playGoodsSentBikFromPlayerToPlayer // label: playGoodsSentBikFromPlayerToPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0BB0 = 0x004D0BB0, + // label: _HoldStrong::AI::AICState::playAnger2BikFromPlayerToPlayer // label: playAnger2BikFromPlayerToPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0C00 = 0x004D0C00, + // label: _HoldStrong::AI::AICState::playVictory2BikFromPlayerToPlayer // label: playVictory2BikFromPlayerToPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0C70 = 0x004D0C70, + // label: _HoldStrong::AI::AICState::playNervous1BikFromPlayer // label: playNervous1BikFromPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0CF0 = 0x004D0CF0, + // label: _HoldStrong::AI::AICState::playRequestHelpBikFromPlayer // label: playRequestHelpBikFromPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0D40 = 0x004D0D40, @@ -39577,37 +42195,53 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004D0F40 = 0x004D0F40, + // label: _HoldStrong::AI::AICState::playJokeBikFromAIToHuman // label: playJokeBikFromAIToHuman + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0F90 = 0x004D0F90, + // label: _HoldStrong::AI::AICState::playFriendlyVictoryBikFromPlayer // label: playFriendlyVictoryBikFromPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D0FC0 = 0x004D0FC0, + // label: _HoldStrong::AI::AICState::playTeamWinningBikFromPlayer // label: playTeamWinningBikFromPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D1000 = 0x004D1000, + // label: _HoldStrong::AI::AICState::playNoHelpBikFromPlayer // label: playNoHelpBikFromPlayer + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D1050 = 0x004D1050, + // label: _HoldStrong::AI::AICState::setSomeTimeToNowIfInIngameMenu // label: setSomeTimeToNowIfInIngameMenu + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D1090 = 0x004D1090, + // label: _HoldStrong::AI::AICState::someChatMessageSelection // label: someChatMessageSelection + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D10B0 = 0x004D10B0, // type: function SHC_3BB0A8C1_0x004D11C0 = 0x004D11C0, + // label: _HoldStrong::AI::AICState::getCurrentDesiredAttackRaidUnitCount // label: getCurrentDesiredAttackRaidUnitCount + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D12A0 = 0x004D12A0, + // label: _HoldStrong::AI::AICState::renderDebugDataAiInfo // label: renderDebugDataAiInfo + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D1320 = 0x004D1320, @@ -39617,27 +42251,37 @@ enum { SHC_3BB0A8C1_0x004D1700 = 0x004D1700, // type: function SHC_3BB0A8C1_0x004D1710 = 0x004D1710, + // label: _HoldStrong::AI::AICState::setInitialAIC // label: setInitialAIC + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D18B0 = 0x004D18B0, - // label: aiGiveCommandToOutpostTribesUnk + // label: _HoldStrong::AI::AICState::aiGiveCommandToOutpostTribesUnk + // label: aiRegisterTribeAndAssignTarget + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D1950 = 0x004D1950, + // label: _HoldStrong::AI::AICState::decideOnTribeAttackLocation // label: decideOnTribeAttackLocation + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D1A00 = 0x004D1A00, - // label: sellExcessGoods - // location: OpenSHC/AI/AICState + // label: aiSellSurplusGoods + // location: // type: function SHC_3BB0A8C1_0x004D1D60 = 0x004D1D60, + // label: _HoldStrong::AI::AICState::requestGoods // label: requestGoods + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D1F00 = 0x004D1F00, + // label: _HoldStrong::AI::AICState::aiCreateSiegeUnits // label: aiCreateSiegeUnits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2000 = 0x004D2000, @@ -39645,155 +42289,225 @@ enum { SHC_3BB0A8C1_0x004D2080 = 0x004D2080, // type: function SHC_3BB0A8C1_0x004D20C0 = 0x004D20C0, + // label: _HoldStrong::AI::AICState::aiRecruitEngineerForOilDuty // label: aiRecruitEngineerForOilDuty + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2500 = 0x004D2500, + // label: _HoldStrong::AI::AICState::assignUnitToATribe // label: assignUnitToATribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2660 = 0x004D2660, + // label: _HoldStrong::AI::AICState::addUnitToSmallestPatrolTribe // label: addUnitToSmallestPatrolTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2730 = 0x004D2730, - // label: addUnitToDefensiveTroopsTribeUnk + // label: _HoldStrong::AI::AICState::addUnitToDefensiveTroopsTribeUnk + // label: aiAssignUnitToDefensiveTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2790 = 0x004D2790, + // label: _HoldStrong::AI::AICState::addUnitToItsTribe // label: addUnitToItsTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D27E0 = 0x004D27E0, + // label: _HoldStrong::AI::AICState::ifHasTribe0SendUnitsToKeep // label: ifHasTribe0SendUnitsToKeep + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2830 = 0x004D2830, + // label: _HoldStrong::AI::AICState::sendTribeAtOffset1ToCampfire // label: sendTribeAtOffset1ToCampfire + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2870 = 0x004D2870, + // label: _HoldStrong::AI::AICState::aiGiveOuterPatrolCommand // label: aiGiveOuterPatrolCommand + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D28B0 = 0x004D28B0, + // label: _HoldStrong::AI::AICState::aiGiveRaidInstructions // label: aiGiveRaidInstructions + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2A70 = 0x004D2A70, + // label: _HoldStrong::AI::AICState::sendTribeToAIVLocationSlot // label: sendTribeToAIVLocationSlot + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2E00 = 0x004D2E00, + // label: _HoldStrong::AI::AICState::computeAttackPossibilities // label: computeAttackPossibilities + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2EC0 = 0x004D2EC0, + // label: _HoldStrong::AI::AICState::moveAttackingUnitsToNextRallyPoint // label: moveAttackingUnitsToNextRallyPoint + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D2F80 = 0x004D2F80, + // label: _HoldStrong::AI::AICState::sendUnitsToAttackBreachedCastle // label: sendUnitsToAttackBreachedCastle + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D30E0 = 0x004D30E0, + // label: _HoldStrong::AI::AICState::updateAIStrengthState // label: updateAIStrengthState + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D3320 = 0x004D3320, + // label: _HoldStrong::AI::AICState::computeNervousness // label: computeNervousness + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D3780 = 0x004D3780, + // label: _HoldStrong::AI::AICState::determineAIPlayerHelp // label: determineAIPlayerHelp + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D3850 = 0x004D3850, + // label: _HoldStrong::AI::AICState::determineAIPlayerAttackRequestResponse // label: determineAIPlayerAttackRequestResponse + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D38C0 = 0x004D38C0, // label: Constructor_AICState + // label: _HoldStrong::AI::AICState::Constructor_AICState + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D3940 = 0x004D3940, + // label: _HoldStrong::AI::AICState::makeOutpostTribesAttack // label: makeOutpostTribesAttack + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D3960 = 0x004D3960, - // label: buyRequiredGoods - // location: OpenSHC/AI/AICState + // label: aiBuyNeededGoods + // location: // type: function SHC_3BB0A8C1_0x004D39B0 = 0x004D39B0, // type: function SHC_3BB0A8C1_0x004D39F0 = 0x004D39F0, + // label: _HoldStrong::AI::AICState::aiRecruitUnits // label: aiRecruitUnits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D3AE0 = 0x004D3AE0, - // label: assignMoatDiggersUnk + // label: _HoldStrong::AI::AICState::assignMoatDiggersUnk + // label: aiAssignCombatUnitsToTribesOrMoat + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D3F20 = 0x004D3F20, + // label: _HoldStrong::AI::AICState::addEngineersToTribe // label: addEngineersToTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D4040 = 0x004D4040, - // label: redirectTunnelersUnk + // label: _HoldStrong::AI::AICState::redirectTunnelersUnk + // label: aiReassignTunnelersToTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D40B0 = 0x004D40B0, + // label: _HoldStrong::AI::AICState::sendRangedUnitTribesToAIVSlotsOrKeepIfNervous // label: sendRangedUnitTribesToAIVSlotsOrKeepIfNervous + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D4130 = 0x004D4130, + // label: _HoldStrong::AI::AICState::sendCertainUnitTribesToAIVSlotsOrKeepIfNervousAndNotEnclosed // label: sendCertainUnitTribesToAIVSlotsOrKeepIfNervousAndNotEnclosed + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D4220 = 0x004D4220, + // label: _HoldStrong::AI::AICState::sendWallPatrolUnitTribesToAIVLocations // label: sendWallPatrolUnitTribesToAIVLocations + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D4340 = 0x004D4340, // type: function SHC_3BB0A8C1_0x004D4400 = 0x004D4400, + // label: _HoldStrong::AI::AICState::sendOilMenForOilPickupOrToAIVLocations // label: sendOilMenForOilPickupOrToAIVLocations + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D44E0 = 0x004D44E0, // type: function SHC_3BB0A8C1_0x004D4530 = 0x004D4530, + // label: _HoldStrong::AI::AICState::abortAttackAndGoIdle // label: abortAttackAndGoIdle + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D45E0 = 0x004D45E0, + // label: _HoldStrong::AI::AICState::recreateEngineersTribe // label: recreateEngineersTribe + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D4630 = 0x004D4630, + // label: _HoldStrong::AI::AICState::selectAttackTarget // label: selectAttackTarget + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D4680 = 0x004D4680, // type: function SHC_3BB0A8C1_0x004D4870 = 0x004D4870, + // label: _HoldStrong::AI::AICState::aiBuyAndSellGoods // label: aiBuyAndSellGoods + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D48F0 = 0x004D48F0, + // label: _HoldStrong::AI::AICState::updateTribeLocations // label: updateTribeLocations + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D4940 = 0x004D4940, + // label: _HoldStrong::AI::AICState::updateAIPlayerState // label: updateAIPlayerState + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D49E0 = 0x004D49E0, + // label: _HoldStrong::IO::SettingsFileState::readSkMasters2 // label: readSkMasters2 + // location: // location: OpenSHC/IO/SettingsFileState // type: function SHC_3BB0A8C1_0x004D5010 = 0x004D5010, + // label: _HoldStrong::IO::SettingsFileState::writeSkMasters2 // label: writeSkMasters2 + // location: // location: OpenSHC/IO/SettingsFileState // type: function SHC_3BB0A8C1_0x004D5180 = 0x004D5180, @@ -39807,7 +42521,9 @@ enum { SHC_3BB0A8C1_0x004D5370 = 0x004D5370, // type: function SHC_3BB0A8C1_0x004D53A0 = 0x004D53A0, + // label: _HoldStrong::AI::AICState::updateAIBehaviour // label: updateAIBehaviour + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004D53E0 = 0x004D53E0, @@ -40081,23 +42797,31 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004D6D20 = 0x004D6D20, - // label: MenuView_CampaignUnk_DoEveryFrame + // label: MenuView_Campaign27_DoEveryFrame + // label: _HoldStrong::UI::MenuView_CampaignUnk_DoEveryFrame + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004D6EF0 = 0x004D6EF0, - // label: MenuItemActionHandler_Unknown27CampaignUnk_Main + // label: MenuItemActionHandler_Campaign27_Continue + // label: _HoldStrong::UI::MenuItemActionHandler_Unknown27CampaignUnk_Main + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004D6F20 = 0x004D6F20, - // label: ParseCampaignMapHotspotBitmap + // label: loadCampaignMapHotspots // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004D6F60 = 0x004D6F60, - // label: ResetEventStatusUnk + // label: _HoldStrong::Global::ResetEventStatusUnk + // label: resetAndLoadScenarioEventConditions + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004D7200 = 0x004D7200, - // label: RenderMissionObjectivesUnk + // label: _HoldStrong::UI::Rendering::RenderMissionObjectivesUnk + // label: renderScenarioDescriptionContent + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004D76A0 = 0x004D76A0, @@ -40342,7 +43066,11 @@ enum { // type: function SHC_3BB0A8C1_0x004D8250 = 0x004D8250, // type: function - SHC_3BB0A8C1_0x004D839E = 0x004D839E, + SHC_3BB0A8C1_0x004D82F0 = 0x004D82F0, + // type: function + SHC_3BB0A8C1_0x004D83A1 = 0x004D83A1, + // type: function + SHC_3BB0A8C1_0x004D83A4 = 0x004D83A4, // label: MenuItemActionHandler_ScenarioDescription_Main // location: OpenSHC/UI // type: function @@ -40413,7 +43141,7 @@ enum { SHC_3BB0A8C1_0x004D8A14 = 0x004D8A14, // type: /pointer SHC_3BB0A8C1_0x004D8A18 = 0x004D8A18, - // label: ReadMapHeaderFromFile + // label: loadMapFileHeader // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004D8A20 = 0x004D8A20, @@ -40455,7 +43183,7 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004D9230 = 0x004D9230, - // label: SetActiveCreditsSequenceIndex + // label: setCampaignMapField // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004D9270 = 0x004D9270, @@ -40585,11 +43313,11 @@ enum { SHC_3BB0A8C1_0x004DA17E = 0x004DA17E, // type: /byte SHC_3BB0A8C1_0x004DA17F = 0x004DA17F, - // label: StopCreditsPlaybackAndSounds + // label: stopCreditsPlayback // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA180 = 0x004DA180, - // label: EndCreditsSegmentAndAdvanceToNext + // label: advanceCreditsSequence // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA200 = 0x004DA200, @@ -40605,7 +43333,9 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004DA360 = 0x004DA360, - // label: RenderGfxHelperUnk + // label: _HoldStrong::UI::Rendering::RenderGfxHelperUnk + // label: renderMenuGfxAtPosition + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004DA570 = 0x004DA570, @@ -40625,67 +43355,67 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004DA750 = 0x004DA750, - // label: AppendCreditsSoundEntry + // label: addCreditsSoundEntry // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA7A0 = 0x004DA7A0, - // label: AppendCreditsCommand + // label: appendCreditsCommand // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA7E0 = 0x004DA7E0, - // label: AppendCreditsListTerminator + // label: appendCreditsCmd0x20 // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA810 = 0x004DA810, - // label: AppendCreditsPauseCommand + // label: appendCreditsCmd0x1c // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA840 = 0x004DA840, - // label: AppendCreditsSegmentEndCommand + // label: appendCreditsCmd0x1f // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA870 = 0x004DA870, - // label: AppendCreditsClearImageCommand + // label: appendCreditsCmd0x28 // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA8A0 = 0x004DA8A0, - // label: AppendCreditsImageTransitionCommand + // label: addCreditsGfxElement // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA8D0 = 0x004DA8D0, - // label: AppendCreditsImageEndCommand + // label: addCreditsSoundElement // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA9A0 = 0x004DA9A0, - // label: AppendCreditsShowImageCommand + // label: addCreditsPositionedGfxElement // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DA9F0 = 0x004DA9F0, - // label: AppendCreditsBinkVideoCommand + // label: addCreditsBinkElementWithName // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DAA80 = 0x004DAA80, // type: function SHC_3BB0A8C1_0x004DAAB0 = 0x004DAAB0, - // label: AppendCreditsFixedImageCommand + // label: addCreditsImageElement // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DAB00 = 0x004DAB00, - // label: AppendCreditsBinkVideoWithAudioCommand + // label: addCreditsBinkElementWithVolume // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DAB80 = 0x004DAB80, // type: function SHC_3BB0A8C1_0x004DABB0 = 0x004DABB0, - // label: AppendCreditsSoundStreamCommand + // label: appendCreditsCommandWithSound // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DABF0 = 0x004DABF0, - // label: AppendCreditsTextCommand + // label: addCreditsTextStringElement // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DAC30 = 0x004DAC30, - // label: AppendCreditsTextEndCommand + // label: addCreditsTextStringSimple // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DACF0 = 0x004DACF0, @@ -40705,15 +43435,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004DAF50 = 0x004DAF50, - // label: RenderTextPageProgressBar + // label: renderScrollingTextWithFade // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DAFB0 = 0x004DAFB0, - // label: DisplayFullScreenTextPage + // label: renderScrollingTextPage // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DB0D0 = 0x004DB0D0, - // label: BuildIntroLogoSequence + // label: buildIntroLogoSequence // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DB180 = 0x004DB180, @@ -40725,11 +43455,13 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DB300 = 0x004DB300, - // label: RenderScrollingCreditsTextFrame + // label: renderAnimatedScrollingTextLine // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DB390 = 0x004DB390, - // label: RenderHistoryBookEdgeUnk + // label: _HoldStrong::UI::Rendering::RenderHistoryBookEdgeUnk + // label: renderAnimatedHistoryBookEdge + // location: // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004DB490 = 0x004DB490, @@ -40801,11 +43533,11 @@ enum { SHC_3BB0A8C1_0x004DC134 = 0x004DC134, // type: /pointer SHC_3BB0A8C1_0x004DC138 = 0x004DC138, - // label: FindCampaignMapHotspotAtMouse + // label: getCreditsElementAtMouse // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DC140 = 0x004DC140, - // label: BuildExtremeDemoIntroScript + // label: buildExtremeDemoSequence // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DC1C0 = 0x004DC1C0, @@ -40817,15 +43549,21 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DC9E0 = 0x004DC9E0, - // label: MenuView_Unknown26_CampaignRelatedUnk_Prepare + // label: MenuView_CampaignCredits26_Prepare + // label: _HoldStrong::UI::MenuView_Unknown26_CampaignRelatedUnk_Prepare + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DCC70 = 0x004DCC70, - // label: MenuView_CampaignUnk_Prepare + // label: MenuView_Campaign27_Prepare + // label: _HoldStrong::UI::MenuView_CampaignUnk_Prepare + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DCC90 = 0x004DCC90, - // label: MenuView_CampaignUnk_DoInitial + // label: MenuView_Campaign27_DoInitial + // label: _HoldStrong::UI::MenuView_CampaignUnk_DoInitial + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DD0C0 = 0x004DD0C0, @@ -40861,7 +43599,7 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004DFB90 = 0x004DFB90, - // label: ProcessCreditsScriptCommands + // label: processCreditsCommandSequence // location: OpenSHC/Rendering // type: function SHC_3BB0A8C1_0x004E0A50 = 0x004E0A50, @@ -40955,7 +43693,7 @@ enum { SHC_3BB0A8C1_0x004E12AC = 0x004E12AC, // type: /undefined *32 SHC_3BB0A8C1_0x004E12B0 = 0x004E12B0, - // label: RenderActiveCreditsElements + // label: renderCreditsScreen // location: OpenSHC/Rendering // type: function SHC_3BB0A8C1_0x004E12C0 = 0x004E12C0, @@ -40979,11 +43717,15 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004E1B30 = 0x004E1B30, - // label: MenuView_Unknown26_CampaignRelatedUnk_DoInitial + // label: MenuView_CampaignCredits26_DoInitial + // label: _HoldStrong::UI::MenuView_Unknown26_CampaignRelatedUnk_DoInitial + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004E1E30 = 0x004E1E30, - // label: MenuView_Unknown26_CampaignRelatedUnk_DoEveryFrame + // label: MenuView_CampaignCredits26_DoEveryFrame + // label: _HoldStrong::UI::MenuView_Unknown26_CampaignRelatedUnk_DoEveryFrame + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004E1E70 = 0x004E1E70, @@ -40991,11 +43733,15 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004E1F50 = 0x004E1F50, - // label: constructViewportRenderState + // label: Constructor_ViewportRenderState + // label: _HoldStrong::Rendering::ViewportRenderState::Constructor_ViewportRenderState + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E1FA0 = 0x004E1FA0, + // label: _HoldStrong::Rendering::ViewportRenderState::setTileSystemMemoryLookupArrays // label: setTileSystemMemoryLookupArrays + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E2050 = 0x004E2050, @@ -41003,19 +43749,25 @@ enum { SHC_3BB0A8C1_0x004E21E0 = 0x004E21E0, // type: function SHC_3BB0A8C1_0x004E2460 = 0x004E2460, + // label: _HoldStrong::Rendering::ViewportRenderState::tweakValidTilesToExcludeMapBorders // label: tweakValidTilesToExcludeMapBorders + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E25A0 = 0x004E25A0, + // label: _HoldStrong::Rendering::ViewportRenderState::resetBatchedRender // label: resetBatchedRender + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E2600 = 0x004E2600, - // label: renderAssassinClimbingOverlay + // label: renderAssassinClimbOverlay // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E2630 = 0x004E2630, + // label: _HoldStrong::Rendering::ViewportRenderState::scheduleUnitForBatchedRendering // label: scheduleUnitForBatchedRendering + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E26D0 = 0x004E26D0, @@ -41029,7 +43781,9 @@ enum { SHC_3BB0A8C1_0x004E2AC0 = 0x004E2AC0, // type: /undefined *32 SHC_3BB0A8C1_0x004E2AC4 = 0x004E2AC4, + // label: _HoldStrong::Rendering::ViewportRenderState::renderGmOverlayBuilding2 // label: renderGmOverlayBuilding2 + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E2AD0 = 0x004E2AD0, @@ -41117,16 +43871,23 @@ enum { SHC_3BB0A8C1_0x004E3868 = 0x004E3868, // type: /byte SHC_3BB0A8C1_0x004E3869 = 0x004E3869, - // label: renderSomethingMap3 + // label: _HoldStrong::Global::renderSomethingMap3 + // label: renderBuildingAnimationSprite + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004E3870 = 0x004E3870, + // label: _HoldStrong::Rendering::ViewportRenderState::renderGmOverlayBuilding // label: renderGmOverlayBuilding + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E3980 = 0x004E3980, // type: function SHC_3BB0A8C1_0x004E46C0 = 0x004E46C0, + // label: LAB_renderSomething + // location: OpenSHC/Rendering/ViewportRenderState/renderGmOverlayBuilding + SHC_3BB0A8C1_0x004E55E0 = 0x004E55E0, // type: /undefined *32 SHC_3BB0A8C1_0x004E592C = 0x004E592C, // type: /undefined *32 @@ -41495,31 +44256,45 @@ enum { SHC_3BB0A8C1_0x004E5A88 = 0x004E5A88, // type: /byte SHC_3BB0A8C1_0x004E5A89 = 0x004E5A89, + // label: _HoldStrong::Rendering::ViewportRenderState::updateWaterAnimationFrames // label: updateWaterAnimationFrames + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E5A90 = 0x004E5A90, + // label: _HoldStrong::Rendering::ViewportRenderState::assignRandomTiles // label: assignRandomTiles + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E5B80 = 0x004E5B80, + // label: _HoldStrong::Rendering::ViewportRenderState::setViewportBasedOnMapSize // label: setViewportBasedOnMapSize + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E5C00 = 0x004E5C00, + // label: _HoldStrong::Rendering::ViewportRenderState::setupMouseTileXY2 // label: setupMouseTileXY2 + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E5D80 = 0x004E5D80, + // label: _HoldStrong::Rendering::ViewportRenderState::setupMouseTileXY // label: setupMouseTileXY + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E5DD0 = 0x004E5DD0, + // label: _HoldStrong::Rendering::ViewportRenderState::focusOnTile // label: focusOnTile + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E5E20 = 0x004E5E20, - // label: computeMouseTileFromScreenPosition + // label: _HoldStrong::Rendering::ViewportRenderState::meth_0x4e5ed0 + // label: computeHoveredTileWithHeight + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E5ED0 = 0x004E5ED0, @@ -41605,35 +44380,49 @@ enum { SHC_3BB0A8C1_0x004E6335 = 0x004E6335, // type: /byte SHC_3BB0A8C1_0x004E6336 = 0x004E6336, - // label: clearAllFloatingLayerElements + // label: _HoldStrong::Rendering::ViewportRenderState::meth_0x4e6340 + // label: clearAllFloaters + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E6340 = 0x004E6340, // type: function SHC_3BB0A8C1_0x004E6360 = 0x004E6360, - // label: createFloatingLayerElement + // label: _HoldStrong::Rendering::ViewportRenderState::creataAFloatingLayerElement + // label: creataAFloatingLayerElement + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E63A0 = 0x004E63A0, // type: function SHC_3BB0A8C1_0x004E6410 = 0x004E6410, + // label: _HoldStrong::Rendering::ViewportRenderState::renderDebugDataMousePointing // label: renderDebugDataMousePointing + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E64D0 = 0x004E64D0, + // label: _HoldStrong::Rendering::ViewportRenderState::setupViewport // label: setupViewport + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E66F0 = 0x004E66F0, + // label: _HoldStrong::Rendering::ViewportRenderState::resetupViewport // label: resetupViewport + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E7770 = 0x004E7770, + // label: _HoldStrong::Rendering::ViewportRenderState::resetupViewportThunk // label: resetupViewportThunk + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E7800 = 0x004E7800, + // label: _HoldStrong::Rendering::ViewportRenderState::renderUnits // label: renderUnits + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E7810 = 0x004E7810, @@ -41865,7 +44654,9 @@ enum { SHC_3BB0A8C1_0x004E8429 = 0x004E8429, // type: /byte SHC_3BB0A8C1_0x004E842A = 0x004E842A, + // label: _HoldStrong::Rendering::ViewportRenderState::updateBuildingPreviewPosition // label: updateBuildingPreviewPosition + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E8430 = 0x004E8430, @@ -41983,23 +44774,31 @@ enum { SHC_3BB0A8C1_0x004E8C4B = 0x004E8C4B, // type: /byte SHC_3BB0A8C1_0x004E8C4C = 0x004E8C4C, - // label: saveFocusTileAndCenterPreview + // label: _HoldStrong::Rendering::ViewportRenderState::meth_0x4e8c50 + // label: centerBuildingPreview + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E8C50 = 0x004E8C50, - // label: restoreFocusTile + // label: _HoldStrong::Rendering::ViewportRenderState::meth_0x4e8c90 + // label: focusOnSavedTile + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E8C90 = 0x004E8C90, + // label: _HoldStrong::Rendering::ViewportRenderState::focusOnCoordinate // label: focusOnCoordinate + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E8CA0 = 0x004E8CA0, - // label: createFloatingTextElement + // label: addFloatingDisplayElement // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E8CC0 = 0x004E8CC0, + // label: _HoldStrong::Rendering::ViewportRenderState::renderMap // label: renderMap + // location: // location: OpenSHC/Rendering/ViewportRenderState // type: function SHC_3BB0A8C1_0x004E8CF0 = 0x004E8CF0, @@ -42012,31 +44811,13 @@ enum { // type: function SHC_3BB0A8C1_0x004EA050 = 0x004EA050, // type: function - SHC_3BB0A8C1_0x004EA8B6 = 0x004EA8B6, - // type: function - SHC_3BB0A8C1_0x004EA91D = 0x004EA91D, - // type: function - SHC_3BB0A8C1_0x004EAD4B = 0x004EAD4B, - // type: function - SHC_3BB0A8C1_0x004EADB1 = 0x004EADB1, - // type: function - SHC_3BB0A8C1_0x004EB0A8 = 0x004EB0A8, - // type: function - SHC_3BB0A8C1_0x004EB13F = 0x004EB13F, - // type: function SHC_3BB0A8C1_0x004EB200 = 0x004EB200, // type: function - SHC_3BB0A8C1_0x004EB3DF = 0x004EB3DF, - // type: function SHC_3BB0A8C1_0x004EB480 = 0x004EB480, // type: function - SHC_3BB0A8C1_0x004EB5FC = 0x004EB5FC, - // type: function SHC_3BB0A8C1_0x004EBB00 = 0x004EBB00, // type: function SHC_3BB0A8C1_0x004EC080 = 0x004EC080, - // type: function - SHC_3BB0A8C1_0x004EC70A = 0x004EC70A, // type: /undefined *32[8] SHC_3BB0A8C1_0x004EC878 = 0x004EC878, // type: /undefined *32[8] @@ -42059,27 +44840,39 @@ enum { SHC_3BB0A8C1_0x004EC99C = 0x004EC99C, // type: /undefined *32[5] SHC_3BB0A8C1_0x004ECA1C = 0x004ECA1C, + // label: _HoldStrong::AI::AICState::shouldNotBeBuildingGranary // label: shouldNotBeBuildingGranary + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004ECA30 = 0x004ECA30, + // label: _HoldStrong::AI::AICState::shouldNotBeBuildingArmoury // label: shouldNotBeBuildingArmoury + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004ECA60 = 0x004ECA60, + // label: _HoldStrong::AI::AICState::shouldNotBuildKillingPits // label: shouldNotBuildKillingPits + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004ECA90 = 0x004ECA90, + // label: _HoldStrong::AI::AICState::woodCuttersHutWhileNoWoodAvailable // label: woodCuttersHutWhileNoWoodAvailable + // location: // location: OpenSHC/AI/AICState // type: function SHC_3BB0A8C1_0x004ECAB0 = 0x004ECAB0, + // label: _HoldStrong::AI::AIVState::setAvailableAIV // label: setAvailableAIV + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ECAD0 = 0x004ECAD0, + // label: _HoldStrong::AI::AIVState::hostChecksLobbyAIVAvailability // label: hostChecksLobbyAIVAvailability + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ECBC0 = 0x004ECBC0, @@ -42087,7 +44880,9 @@ enum { SHC_3BB0A8C1_0x004ECCA0 = 0x004ECCA0, // type: function SHC_3BB0A8C1_0x004ECD90 = 0x004ECD90, + // label: _HoldStrong::AI::AIVState::setAIVFilePresenceByFileHashArray // label: setAIVFilePresenceByFileHashArray + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ECDB0 = 0x004ECDB0, @@ -42095,19 +44890,27 @@ enum { SHC_3BB0A8C1_0x004ECDE0 = 0x004ECDE0, // type: function SHC_3BB0A8C1_0x004ECDF0 = 0x004ECDF0, + // label: _HoldStrong::AI::AIVState::syncAIPlayerNamesAndBuildIntervals // label: syncAIPlayerNamesAndBuildIntervals + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ECE60 = 0x004ECE60, + // label: _HoldStrong::AI::AIVState::setupAIVMetadata // label: setupAIVMetadata + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ECEF0 = 0x004ECEF0, + // label: _HoldStrong::AI::AIVState::setKeepOffsetAndOrientation // label: setKeepOffsetAndOrientation + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ECF70 = 0x004ECF70, + // label: _HoldStrong::AI::AIVState::convertAIVBuildingTypeToCommandBuildingType // label: convertAIVBuildingTypeToCommandBuildingType + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ECFE0 = 0x004ECFE0, @@ -42141,31 +44944,45 @@ enum { SHC_3BB0A8C1_0x004ED0A4 = 0x004ED0A4, // type: /undefined *32 SHC_3BB0A8C1_0x004ED0A8 = 0x004ED0A8, + // label: _HoldStrong::AI::AIVState::rotateAIV // label: rotateAIV + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ED0B0 = 0x004ED0B0, + // label: _HoldStrong::AI::AIVState::aiPlaceFlag // label: aiPlaceFlag + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ED240 = 0x004ED240, + // label: _HoldStrong::AI::AIVState::aiPlaceBrazier // label: aiPlaceBrazier + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ED300 = 0x004ED300, + // label: _HoldStrong::AI::AIVState::incrementBuildingHeatMapTile // label: incrementBuildingHeatMapTile + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ED3B0 = 0x004ED3B0, + // label: _HoldStrong::AI::AIVState::aiPlaceAIVBuilding // label: aiPlaceAIVBuilding + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004ED410 = 0x004ED410, + // label: _HoldStrong::AI::AIVState::clearTheHeatmaps // label: clearTheHeatmaps + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EDC90 = 0x004EDC90, + // label: _HoldStrong::AI::AIVState::set0x13ValueTo10InHeatMap // label: set0x13ValueTo10InHeatMap + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EDCB0 = 0x004EDCB0, @@ -42173,33 +44990,45 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004EDD00 = 0x004EDD00, + // label: _HoldStrong::AI::AIVState::findSuitableLocationCloseToKeepAndPlaceBuilding // label: findSuitableLocationCloseToKeepAndPlaceBuilding + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EDDF0 = 0x004EDDF0, + // label: _HoldStrong::AI::AIVState::findAppropriateWoodCutterLocation // label: findAppropriateWoodCutterLocation + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EE140 = 0x004EE140, // type: function SHC_3BB0A8C1_0x004EE230 = 0x004EE230, + // label: _HoldStrong::AI::AIVState::findAppropriateBuildingLocationForResourceType // label: findAppropriateBuildingLocationForResourceType + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EE430 = 0x004EE430, + // label: _HoldStrong::AI::AIVState::recomputeAIAvailableGridTiles // label: recomputeAIAvailableGridTiles + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EE830 = 0x004EE830, // type: function SHC_3BB0A8C1_0x004EE920 = 0x004EE920, + // label: _HoldStrong::AI::AIVState::find2by2Location // label: find2by2Location + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EEBD0 = 0x004EEBD0, // type: function SHC_3BB0A8C1_0x004EECC0 = 0x004EECC0, + // label: _HoldStrong::AI::AIVState::findAppropriateBuildingLocation // label: findAppropriateBuildingLocation + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EEE10 = 0x004EEE10, @@ -42207,11 +45036,15 @@ enum { SHC_3BB0A8C1_0x004EEEC0 = 0x004EEEC0, // type: function SHC_3BB0A8C1_0x004EEF20 = 0x004EEF20, + // label: _HoldStrong::AI::AIVState::wipeAIVsAndHeatMaps // label: wipeAIVsAndHeatMaps + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EF090 = 0x004EF090, + // label: _HoldStrong::AI::AIVState::applyAIV // label: applyAIV + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EF0D0 = 0x004EF0D0, @@ -42222,7 +45055,9 @@ enum { // label: LAB_004ef450_continue // location: SHC_3BB0A8C1_0x004EF450 = 0x004EF450, + // label: _HoldStrong::AI::AIVState::computeAIVPlacementFit // label: computeAIVPlacementFit + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EF8C0 = 0x004EF8C0, @@ -42230,67 +45065,97 @@ enum { SHC_3BB0A8C1_0x004EF900 = 0x004EF900, // type: function SHC_3BB0A8C1_0x004EF920 = 0x004EF920, + // label: _HoldStrong::AI::AIVState::aiPlaceFarm // label: aiPlaceFarm + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EFA60 = 0x004EFA60, + // label: _HoldStrong::AI::AIVState::aiPlaceWoodcuttershut // label: aiPlaceWoodcuttershut + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EFAB0 = 0x004EFAB0, + // label: _HoldStrong::AI::AIVState::findSpotNearEngineersGuild // label: findSpotNearEngineersGuild + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EFB90 = 0x004EFB90, + // label: _HoldStrong::AI::AIVState::aiPlaceAdditionalOxtether // label: aiPlaceAdditionalOxtether + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EFC30 = 0x004EFC30, + // label: _HoldStrong::AI::AIVState::aiPlacePitchrig // label: aiPlacePitchrig + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EFD90 = 0x004EFD90, + // label: _HoldStrong::AI::AIVState::aiPlaceIronMine // label: aiPlaceIronMine + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EFE30 = 0x004EFE30, + // label: _HoldStrong::AI::AIVState::aiPlaceQuarryAndOxtether // label: aiPlaceQuarryAndOxtether + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004EFED0 = 0x004EFED0, + // label: _HoldStrong::AI::AIVState::executeDefaultCastleAIV // label: executeDefaultCastleAIV + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004F0060 = 0x004F0060, // type: function SHC_3BB0A8C1_0x004F0690 = 0x004F0690, + // label: _HoldStrong::AI::AIVState::recomputeHeatmaps // label: recomputeHeatmaps + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004F0E80 = 0x004F0E80, // type: function SHC_3BB0A8C1_0x004F1190 = 0x004F1190, // label: Constructor_AIVState + // label: _HoldStrong::AI::AIVState::Constructor_AIVState + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004F13E0 = 0x004F13E0, + // label: _HoldStrong::AI::AIVState::selectBestAIVwithRandomStart // label: selectBestAIVwithRandomStart + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004F13F0 = 0x004F13F0, + // label: _HoldStrong::AI::AIVState::tryPlaceAIVAndReturnFitPercentage // label: tryPlaceAIVAndReturnFitPercentage + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004F14F0 = 0x004F14F0, + // label: _HoldStrong::AI::AIVState::aiDecideOnNewBuildings // label: aiDecideOnNewBuildings + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004F15C0 = 0x004F15C0, + // label: _HoldStrong::AI::AIVState::updateBuildingsStateAndUpdateAIBuildingDecisions // label: updateBuildingsStateAndUpdateAIBuildingDecisions + // location: // location: OpenSHC/AI/AIVState // type: function SHC_3BB0A8C1_0x004F1860 = 0x004F1860, - // label: mapUITreeTypeToLogicalTreeType + // label: _HoldStrong::Map::LandscapeState::mapUITreeTypeToLogicalTreeTypeUnk + // label: mapTreeBrushIDToLogicalType + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F1A60 = 0x004F1A60, @@ -42566,7 +45431,9 @@ enum { SHC_3BB0A8C1_0x004F1BD3 = 0x004F1BD3, // type: /byte SHC_3BB0A8C1_0x004F1BD4 = 0x004F1BD4, + // label: _HoldStrong::Map::LandscapeState::getValueFrom0UpTo3ForTreeTypeAndTreeSeason // label: getValueFrom0UpTo3ForTreeTypeAndTreeSeason + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F1BE0 = 0x004F1BE0, @@ -42600,11 +45467,15 @@ enum { SHC_3BB0A8C1_0x004F1C4C = 0x004F1C4C, // type: /undefined *32 SHC_3BB0A8C1_0x004F1C50 = 0x004F1C50, + // label: _HoldStrong::Map::LandscapeState::clearRocksAndTrees // label: clearRocksAndTrees + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F1C60 = 0x004F1C60, + // label: _HoldStrong::Map::LandscapeState::createTree // label: createTree + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F1CE0 = 0x004F1CE0, @@ -42666,27 +45537,39 @@ enum { SHC_3BB0A8C1_0x004F2015 = 0x004F2015, // type: /byte SHC_3BB0A8C1_0x004F2016 = 0x004F2016, - // label: setTreeStageRelatedValues + // label: _HoldStrong::Map::LandscapeState::setTreeStageRelatedValues + // label: setTreeGrowthStageValues + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2020 = 0x004F2020, + // label: _HoldStrong::Map::LandscapeState::removeTreeUnk // label: removeTree + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2070 = 0x004F2070, + // label: _HoldStrong::Map::LandscapeState::setCurrentTimeOnSomeTrees // label: setCurrentTimeOnSomeTrees + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F20E0 = 0x004F20E0, + // label: _HoldStrong::Map::LandscapeState::createRock // label: createRock + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2140 = 0x004F2140, + // label: _HoldStrong::Map::LandscapeState::meth_0x4f2220 // label: removeRock + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2220 = 0x004F2220, + // label: _HoldStrong::Map::LandscapeState::lightUpTree // label: lightUpTree + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2280 = 0x004F2280, @@ -42786,7 +45669,7 @@ enum { // location: OpenSHC/Map/Trees // type: function SHC_3BB0A8C1_0x004F29C0 = 0x004F29C0, - // label: getRandomRockImageOffset + // label: getRandomRockGfxOffset // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2A10 = 0x004F2A10, @@ -42854,7 +45737,7 @@ enum { // location: OpenSHC/Map/Rocks // type: function SHC_3BB0A8C1_0x004F2C00 = 0x004F2C00, - // label: getTreeGrowthTargetStage + // label: getTreeVisualStage // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2C20 = 0x004F2C20, @@ -42904,59 +45787,85 @@ enum { SHC_3BB0A8C1_0x004F2CB9 = 0x004F2CB9, // type: /byte SHC_3BB0A8C1_0x004F2CBA = 0x004F2CBA, + // label: _HoldStrong::Map::LandscapeState::setTreeSpreadInterval // label: setTreeSpreadInterval + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2CC0 = 0x004F2CC0, + // label: _HoldStrong::Map::LandscapeState::killEveryFifthTree // label: killEveryFifthTree + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2DA0 = 0x004F2DA0, + // label: _HoldStrong::Map::LandscapeState::setupBabyTreeLocation // label: setupBabyTreeLocation + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2E00 = 0x004F2E00, // type: function SHC_3BB0A8C1_0x004F2E90 = 0x004F2E90, - // label: isTreeAliveAndMatchingUID + // label: _HoldStrong::Map::LandscapeState::meth_0x4f2fb0 + // label: isTreeChoppable + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2FB0 = 0x004F2FB0, + // label: _HoldStrong::Map::LandscapeState::isTreeMatchingUIDAndOfCertainState // label: isTreeMatchingUIDAndOfCertainState + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F2FE0 = 0x004F2FE0, - // label: damageTreeAndTriggerDeathIfDepleted + // label: _HoldStrong::Map::LandscapeState::meth_0x4f3010 + // label: chopTreeProgress + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3010 = 0x004F3010, - // label: advanceTreeDecayState + // label: _HoldStrong::Map::LandscapeState::meth_0x4f3080 + // label: advanceTreeStumpRemoval + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3080 = 0x004F3080, - // label: markNearbyTreesAsCrowTargets + // label: _HoldStrong::Map::LandscapeState::meth_0x4f30d0 + // label: markTreesNearTile + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F30D0 = 0x004F30D0, - // label: spawnCrowFromNearbyTree + // label: _HoldStrong::Map::LandscapeState::spawnACrowUnk + // label: spawnCrowsFromNearbyTrees + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3150 = 0x004F3150, // type: function SHC_3BB0A8C1_0x004F3180 = 0x004F3180, + // label: _HoldStrong::Map::LandscapeState::placeAppleTree // label: placeAppleTree + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3560 = 0x004F3560, + // label: _HoldStrong::Map::LandscapeState::selectClosestTree // label: selectClosestTree + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3610 = 0x004F3610, + // label: _HoldStrong::Map::LandscapeState::resetWind // label: resetWind + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3700 = 0x004F3700, + // label: _HoldStrong::Map::LandscapeState::updateWind // label: updateWind + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3730 = 0x004F3730, @@ -42964,7 +45873,9 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004F37B0 = 0x004F37B0, - // label: RemoveCertainRockTypesUnk + // label: _HoldStrong::Global::RemoveCertainRockTypesUnk + // label: removeStaleRocks + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004F3840 = 0x004F3840, @@ -42976,25 +45887,33 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x004F3900 = 0x004F3900, - // label: constructLandscapeState + // label: Constructor_LandscapeState + // label: _HoldStrong::Map::LandscapeState::Constructor_LandscapeState + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3930 = 0x004F3930, + // label: _HoldStrong::Map::LandscapeState::updateTreeStage // label: updateTreeStage + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3960 = 0x004F3960, + // label: _HoldStrong::Map::LandscapeState::findTree // label: findTree + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3B90 = 0x004F3B90, // type: function SHC_3BB0A8C1_0x004F3C50 = 0x004F3C50, - // label: upgradeTreesAndRocksForMapVersion + // label: migrateLandscapeForMapVersion // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3D30 = 0x004F3D30, + // label: _HoldStrong::Map::LandscapeState::updateTrees // label: updateTrees + // location: // location: OpenSHC/Map/LandscapeState // type: function SHC_3BB0A8C1_0x004F3D60 = 0x004F3D60, @@ -43011,10 +45930,14 @@ enum { // type: /pointer SHC_3BB0A8C1_0x004F4018 = 0x004F4018, // label: Constructor_MenuView + // label: _HoldStrong::UI::MenuView::Constructor_MenuView + // location: // location: OpenSHC/UI/MenuView // type: function SHC_3BB0A8C1_0x004F4020 = 0x004F4020, // label: Constructor_MenuView_Reduced + // label: _HoldStrong::UI::MenuView::Constructor_MenuView_Reduced + // location: // location: OpenSHC/UI/MenuView // type: function SHC_3BB0A8C1_0x004F4050 = 0x004F4050, @@ -43023,6 +45946,8 @@ enum { // type: function SHC_3BB0A8C1_0x004F4070 = 0x004F4070, // label: Constructor_Menu + // label: _HoldStrong::UI::Menu::Constructor_Menu + // location: // location: OpenSHC/UI/Menu // type: function SHC_3BB0A8C1_0x004F4100 = 0x004F4100, @@ -43032,43 +45957,63 @@ enum { SHC_3BB0A8C1_0x004F4180 = 0x004F4180, // type: function SHC_3BB0A8C1_0x004F4270 = 0x004F4270, + // label: _HoldStrong::UI::MenuItem::handleMenuElementsCallbacks // label: handleMenuElementsCallbacks + // location: // location: OpenSHC/UI/MenuItem // type: function SHC_3BB0A8C1_0x004F4290 = 0x004F4290, + // label: _HoldStrong::UI::MenuItem::prepareAndRenderMenuItems // label: prepareAndRenderMenuItems + // location: // location: OpenSHC/UI/MenuItem // type: function SHC_3BB0A8C1_0x004F49D0 = 0x004F49D0, - // label: resetMenuItemStateUnk + // label: _HoldStrong::UI::MenuItem::resetMenuItemStateUnk + // label: resetMenuItemInteractionState + // location: // location: OpenSHC/UI/MenuItem // type: function SHC_3BB0A8C1_0x004F4C30 = 0x004F4C30, + // label: _HoldStrong::UI::MenuHandlerState::setupBuildMenuState // label: setupBuildMenuState + // location: // location: OpenSHC/UI/MenuHandlerState // type: function SHC_3BB0A8C1_0x004F4C60 = 0x004F4C60, + // label: _HoldStrong::UI::MenuHandlerState::startBuildMenuTransition // label: startBuildMenuTransition + // location: // location: OpenSHC/UI/MenuHandlerState // type: function SHC_3BB0A8C1_0x004F4C80 = 0x004F4C80, + // label: _HoldStrong::UI::MenuHandlerState::computeBuildMenuTransitionShift // label: computeBuildMenuTransitionShift + // location: // location: OpenSHC/UI/MenuHandlerState // type: function SHC_3BB0A8C1_0x004F4CD0 = 0x004F4CD0, + // label: UCPointerStruct::setUCValues // label: setUCValues + // location: // location: UCPointerStruct // type: function SHC_3BB0A8C1_0x004F4D70 = 0x004F4D70, + // label: _HoldStrong::UI::BottomLeftTextDisplayState::setBottomLeftTextDisplayText // label: setBottomLeftTextDisplayText + // location: // location: OpenSHC/UI/BottomLeftTextDisplayState // type: function SHC_3BB0A8C1_0x004F4E00 = 0x004F4E00, + // label: _HoldStrong::UI::BottomLeftTextDisplayState::hasPassedCountdownOrDuration // label: hasPassedCountdownOrDuration + // location: // location: OpenSHC/UI/BottomLeftTextDisplayState // type: function SHC_3BB0A8C1_0x004F4EF0 = 0x004F4EF0, + // label: _HoldStrong::UI::BottomLeftTextDisplayState::renderCurrentlyDisplayedTextConstructionCost // label: renderCurrentlyDisplayedTextConstructionCost + // location: // location: OpenSHC/UI/BottomLeftTextDisplayState // type: function SHC_3BB0A8C1_0x004F4F60 = 0x004F4F60, @@ -43110,7 +46055,9 @@ enum { // location: OpenSHC/UI/Rendering // type: function SHC_3BB0A8C1_0x004F6210 = 0x004F6210, + // label: _HoldStrong::UI::Menu::handleMenuItems // label: handleMenuItems + // location: // location: OpenSHC/UI/Menu // type: function SHC_3BB0A8C1_0x004F6280 = 0x004F6280, @@ -43134,11 +46081,15 @@ enum { SHC_3BB0A8C1_0x004F6460 = 0x004F6460, // type: /pointer SHC_3BB0A8C1_0x004F6464 = 0x004F6464, + // label: _HoldStrong::UI::Menu::updateMenuButtons // label: updateMenuButtons + // location: // location: OpenSHC/UI/Menu // type: function SHC_3BB0A8C1_0x004F6470 = 0x004F6470, + // label: _HoldStrong::UI::Menu::renderConstructionMenu // label: renderConstructionMenu + // location: // location: OpenSHC/UI/Menu // type: function SHC_3BB0A8C1_0x004F64A0 = 0x004F64A0, @@ -43170,11 +46121,15 @@ enum { SHC_3BB0A8C1_0x004F69C8 = 0x004F69C8, // type: /undefined *32 SHC_3BB0A8C1_0x004F69CC = 0x004F69CC, + // label: _HoldStrong::UI::Menu::loadMenuElements // label: loadMenuElements + // location: // location: OpenSHC/UI/Menu // type: function SHC_3BB0A8C1_0x004F69D0 = 0x004F69D0, + // label: _HoldStrong::UI::MenuHandlerState::initializeUI // label: initializeUI + // location: // location: OpenSHC/UI/MenuHandlerState // type: function SHC_3BB0A8C1_0x004F6A20 = 0x004F6A20, @@ -43182,55 +46137,79 @@ enum { // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004F6A60 = 0x004F6A60, - // label: MenuItemActionHandler_General_RemoveConditionalTextOrReleaseHoverUnk + // label: MenuItemActionHandler_General_ExpireBottomLeftText + // label: _HoldStrong::UI::MenuItemActionHandler_General_RemoveConditionalTextOrReleaseHoverUnk + // location: // location: OpenSHC/UI // type: function SHC_3BB0A8C1_0x004F6A70 = 0x004F6A70, + // label: _HoldStrong::UI::MenuHandlerState::setupMenuForRendering // label: setupMenuForRendering + // location: // location: OpenSHC/UI/MenuHandlerState // type: function SHC_3BB0A8C1_0x004F6A80 = 0x004F6A80, + // label: _HoldStrong::Map::TileMapState::setChangedLayerToThreeAndMapping0x40x40 // label: setChangedLayerToThreeAndMapping0x40x40 + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F6AE0 = 0x004F6AE0, + // label: _HoldStrong::Map::TileMapState::setupMovementDirectionTranslationMatrix // label: setupMovementDirectionTranslationMatrix + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F6B20 = 0x004F6B20, // type: function SHC_3BB0A8C1_0x004F6C20 = 0x004F6C20, + // label: _HoldStrong::Map::TileMapState::setupLogicalMapBorders // label: setupLogicalMapBorders + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F6C60 = 0x004F6C60, + // label: _HoldStrong::Map::TileMapState::resetHeightAndMapBorders // label: resetHeightAndMapBorders + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F6CF0 = 0x004F6CF0, // type: function SHC_3BB0A8C1_0x004F6DC0 = 0x004F6DC0, + // label: _HoldStrong::Map::TileMapState::setMapSize // label: setMapSize + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F6F90 = 0x004F6F90, + // label: _HoldStrong::Map::TileMapState::triggerLoweredView // label: triggerLoweredView + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F6FD0 = 0x004F6FD0, + // label: _HoldStrong::Map::TileMapState::toggleFlatView // label: toggleFlatView + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F70B0 = 0x004F70B0, + // label: HoldStrong_lib::stdLib::ios::basic_streambuf_>::virt_meth_0x4f70d0 // label: virt_meth_0x4f70d0 + // location: // location: HoldStrong_lib/stdLib/ios/basic_streambuf_> // type: function SHC_3BB0A8C1_0x004F70D0 = 0x004F70D0, + // label: _HoldStrong::Map::TileMapState::setMapRotation // label: setMapRotation + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F70E0 = 0x004F70E0, - // label: updateLogicalTileMapRelatedSections + // label: _HoldStrong::Map::TileMapState::updateLogicalTileMapRelatedSections + // label: recomputeTileDisplayFlags + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F70F0 = 0x004F70F0, @@ -43238,11 +46217,11 @@ enum { SHC_3BB0A8C1_0x004F7140 = 0x004F7140, // type: function SHC_3BB0A8C1_0x004F7170 = 0x004F7170, - // label: rebuildShowHiLayerFromHeights - // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F79D0 = 0x004F79D0, + // label: _HoldStrong::Map::TileMapState::meth_0x4f7a80 // label: computeTileLuminescence + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F7A80 = 0x004F7A80, @@ -43262,19 +46241,27 @@ enum { SHC_3BB0A8C1_0x004F80D4 = 0x004F80D4, // type: /pointer SHC_3BB0A8C1_0x004F80D8 = 0x004F80D8, + // label: _HoldStrong::Map::TileMapState::increaseHeightForTunnelSingleTile // label: increaseHeightForTunnelSingleTile + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F80E0 = 0x004F80E0, + // label: _HoldStrong::Map::TileMapState::getNonFarmFieldBuildingHealthAtTileOr1000 // label: getNonFarmFieldBuildingHealthAtTileOr1000 + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8160 = 0x004F8160, - // label: resetTileToDefaultState + // label: _HoldStrong::Map::TileMapState::meth_0x4f81d0 + // label: resetTileToTerrain + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F81D0 = 0x004F81D0, + // label: _HoldStrong::Map::TileMapState::getBuildingHurtSFXID // label: getBuildingHurtSFXID + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8210 = 0x004F8210, @@ -43478,7 +46465,9 @@ enum { SHC_3BB0A8C1_0x004F82F0 = 0x004F82F0, // type: /byte SHC_3BB0A8C1_0x004F82F1 = 0x004F82F1, + // label: _HoldStrong::Map::TileMapState::rotateFearFactorBuildingVariations // label: rotateFearFactorBuildingVariations + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8300 = 0x004F8300, @@ -43840,77 +46829,113 @@ enum { SHC_3BB0A8C1_0x004F8523 = 0x004F8523, // type: /byte SHC_3BB0A8C1_0x004F8524 = 0x004F8524, + // label: _HoldStrong::Map::TileMapState::countPropertyInSurroundingTiles // label: countPropertyInSurroundingTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8530 = 0x004F8530, - // label: isTileEnclosedByWallsOrGates + // label: _HoldStrong::Map::TileMapState::meth_0x4f85b0 + // label: isSurroundedBySolidWalls + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F85B0 = 0x004F85B0, - // label: isTileEnclosedByWalls + // label: _HoldStrong::Map::TileMapState::meth_0x4f8640 + // label: isSurroundedByWallsMask2 + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8640 = 0x004F8640, - // label: isWallCornerForCardinalDirection + // label: _HoldStrong::Map::TileMapState::meth_0x4f86d0 + // label: getTileNeighborOffsets + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F86D0 = 0x004F86D0, - // label: isWallCornerForDiagonalDirection + // label: _HoldStrong::Map::TileMapState::meth_0x4f8780 + // label: checkWallWalkConnection + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8780 = 0x004F8780, - // label: isWallConnectionHeightValid + // label: _HoldStrong::Map::TileMapState::meth_0x4f8840 + // label: checkAdjacentWallStep + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8840 = 0x004F8840, - // label: hasOnlyTowerNeighborsNoWalls + // label: _HoldStrong::Map::TileMapState::meth_0x4f8900 + // label: hasDitchNeighborNoWall + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8900 = 0x004F8900, - // label: getWallFlagForOrientedDirection + // label: _HoldStrong::Map::TileMapState::meth_0x4f89c0 + // label: getOrientedNeighborWallFlag + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F89C0 = 0x004F89C0, - // label: hasHigherNeighborWithFlagBit11 + // label: _HoldStrong::Map::TileMapState::meth_0x4f8a40 + // label: checkHigherNeighborFlag0x800 + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8A40 = 0x004F8A40, - // label: hasHigherPlainNeighborWithFlagBit8 + // label: _HoldStrong::Map::TileMapState::meth_0x4f8ac0 + // label: checkHigherNeighborWall + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8AC0 = 0x004F8AC0, + // label: _HoldStrong::Map::TileMapState::getOrientationThatIsWallTowerOrGatehouse // label: getOrientationThatIsWallTowerOrGatehouse + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8B50 = 0x004F8B50, - // label: renderWallDragPreview + // label: _HoldStrong::Map::TileMapState::previewWallDrawingUnk + // label: previewWallDragConstruction + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F8BD0 = 0x004F8BD0, - // label: reassignWallOwnershipForPlayer + // label: _HoldStrong::Map::TileMapState::meth_0x4f9000 + // label: markWallTilesForOwner + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F9000 = 0x004F9000, + // label: _HoldStrong::Map::TileMapState::swapWallOwnership // label: swapWallOwnership + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F9220 = 0x004F9220, + // label: _HoldStrong::Map::TileMapState::destroyWallsOfPlayer // label: destroyWallsOfPlayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F93E0 = 0x004F93E0, - // label: validateWallPlacementAtTile + // label: _HoldStrong::Map::TileMapState::isWallUnkPlacementAllowed + // label: checkWallPlacementAllowed + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F94A0 = 0x004F94A0, + // label: _HoldStrong::Map::TileMapState::setupBuildingSizeIndexMappingForBuildingWithSize // label: setupBuildingSizeIndexMappingForBuildingWithSize + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F9590 = 0x004F9590, // type: function SHC_3BB0A8C1_0x004F9630 = 0x004F9630, + // label: _HoldStrong::Map::TileMapState::getBuildingSizeIndexMappingData // label: getBuildingSizeIndexMappingData + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F9880 = 0x004F9880, @@ -43928,17 +46953,23 @@ enum { SHC_3BB0A8C1_0x004F9920 = 0x004F9920, // type: /pointer SHC_3BB0A8C1_0x004F9924 = 0x004F9924, - // label: isFootprintIndexOnEdge + // label: _HoldStrong::Map::TileMapState::indexIsEdgeUnk + // label: isGridEdgeIndex + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F9930 = 0x004F9930, + // label: _HoldStrong::Map::TileMapState::storeMinAndMaxHeightOfArea // label: storeMinAndMaxHeightOfArea + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F9980 = 0x004F9980, // type: function SHC_3BB0A8C1_0x004F99D0 = 0x004F99D0, + // label: _HoldStrong::Map::TileMapState::isBuildingPlacementAllowedAtTile // label: isBuildingPlacementAllowedAtTile + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F9A60 = 0x004F9A60, @@ -44176,27 +47207,39 @@ enum { SHC_3BB0A8C1_0x004F9DE9 = 0x004F9DE9, // type: /byte SHC_3BB0A8C1_0x004F9DEA = 0x004F9DEA, - // label: validateBuildingPlacementAtTile + // label: _HoldStrong::Map::TileMapState::meth_0x4f9df0 + // label: checkBuildingPlacementAtTile + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F9DF0 = 0x004F9DF0, - // label: spawnEraserTileEffect + // label: _HoldStrong::Map::TileMapState::spawnEraserEntityEffectsUnk + // label: eraseTileFeaturesAndSpawnDust + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004F9F00 = 0x004F9F00, - // label: determineBuildingPlacementRotation + // label: _HoldStrong::Map::TileMapState::meth_0x4fa000 + // label: computeBuildingPlacementRotation + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FA000 = 0x004FA000, + // label: _HoldStrong::Map::TileMapState::checkDrawbridgePlacement // label: checkDrawbridgePlacement + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FA2D0 = 0x004FA2D0, - // label: getRubbleGraphicStageForDamageLevel + // label: _HoldStrong::Map::TileMapState::meth_0x4fa460 + // label: rotateFieldOrientationIndex + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FA460 = 0x004FA460, + // label: _HoldStrong::Map::TileMapState::getBuildingSizeForCommandBuildingType // label: getBuildingSizeForCommandBuildingType + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FA550 = 0x004FA550, @@ -44882,55 +47925,79 @@ enum { SHC_3BB0A8C1_0x004FA759 = 0x004FA759, // type: /byte SHC_3BB0A8C1_0x004FA75A = 0x004FA75A, - // label: demolishBuildingsInConstructionFootprint + // label: _HoldStrong::Map::TileMapState::meth_0x4fa760 + // label: destroyBuildingsUnderFootprint + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FA760 = 0x004FA760, // type: function SHC_3BB0A8C1_0x004FA8D0 = 0x004FA8D0, - // label: markBuildingFootprintFlag + // label: _HoldStrong::Map::TileMapState::meth_0x4fa9d0 + // label: markBuildingFootprintTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FA9D0 = 0x004FA9D0, + // label: _HoldStrong::Map::TileMapState::updateAreaBasedOnSurrounding // label: updateAreaBasedOnSurrounding + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FAA30 = 0x004FAA30, - // label: clearBuildingTilesAndTrees + // label: _HoldStrong::Map::TileMapState::meth_0x4faab0 + // label: clearBuildingTilesOnRemove + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FAAB0 = 0x004FAAB0, // type: function SHC_3BB0A8C1_0x004FAAE0 = 0x004FAAE0, - // label: clearBuildingFootprintAndResetUnits + // label: _HoldStrong::Map::TileMapState::meth_0x4fab70 + // label: clearBuildingFootprintWithRubble + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FAB70 = 0x004FAB70, - // label: clearBuildingFootprintAndRemoveSiegeTower + // label: _HoldStrong::Map::TileMapState::meth_0x4fac70 + // label: clearBuildingFootprintAndTowers + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FAC70 = 0x004FAC70, - // label: unmarkBuildingFootprintFlag + // label: _HoldStrong::Map::TileMapState::meth_0x4fad20 + // label: clearBuildingFootprintFlag + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FAD20 = 0x004FAD20, - // label: clearBuildingFootprintWithEdgeRubble + // label: _HoldStrong::Map::TileMapState::meth_0x4fad70 + // label: clearBuildingFootprintWithRubbleSimple + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FAD70 = 0x004FAD70, - // label: clearFixedSizeTwoBuildingFootprint + // label: _HoldStrong::Map::TileMapState::meth_0x4fae50 + // label: clearBuildingTilesSize2 + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FAE50 = 0x004FAE50, - // label: isUnitBlockingSizeFiveFootprint + // label: _HoldStrong::Map::TileMapState::meth_0x4faee0 + // label: isBuildingFootprintTileSet + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FAEE0 = 0x004FAEE0, - // label: clearStockpileFootprintTiles + // label: _HoldStrong::Map::TileMapState::meth_0x4faf70 + // label: clearStockpilePathTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FAF70 = 0x004FAF70, + // label: _HoldStrong::Map::TileMapState::setMiscDisplayLayer // label: setMiscDisplayLayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FB0C0 = 0x004FB0C0, @@ -45128,39 +48195,53 @@ enum { SHC_3BB0A8C1_0x004FB354 = 0x004FB354, // type: /pointer SHC_3BB0A8C1_0x004FB358 = 0x004FB358, - // label: clearBuildingDisplayFlagsAndEntities + // label: _HoldStrong::Map::TileMapState::meth_0x4fb360 + // label: clearBuildingDisplayTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FB360 = 0x004FB360, - // label: spawnFloatingNumberAroundTile + // label: createPlacementFloatMarkers // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FB3F0 = 0x004FB3F0, + // label: _HoldStrong::Map::TileMapState::placeRock // label: placeRock + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FB4D0 = 0x004FB4D0, - // label: applyRockGraphicsToFootprint + // label: _HoldStrong::Map::TileMapState::meth_0x4fb770 + // label: renderRockGraphics + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FB770 = 0x004FB770, // type: function SHC_3BB0A8C1_0x004FB7D0 = 0x004FB7D0, - // label: clearTreeFootprintFlags + // label: _HoldStrong::Map::TileMapState::meth_0x4fb8e0 + // label: clearTreeTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FB8E0 = 0x004FB8E0, - // label: clearRockFootprintFlags + // label: _HoldStrong::Map::TileMapState::meth_0x4fb970 + // label: clearRockTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FB970 = 0x004FB970, // type: function SHC_3BB0A8C1_0x004FB990 = 0x004FB990, - // label: renderWallPlacementPreview + // label: _HoldStrong::Map::TileMapState::meth_0x4fb9e0 + // label: placeRockOnTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FB9E0 = 0x004FB9E0, + // label: _HoldStrong::Map::TileMapState::getCastleBuildRangeForMapSize // label: getCastleBuildRangeForMapSize + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FBC30 = 0x004FBC30, @@ -45656,61 +48737,89 @@ enum { SHC_3BB0A8C1_0x004FBD6F = 0x004FBD6F, // type: /byte SHC_3BB0A8C1_0x004FBD70 = 0x004FBD70, + // label: _HoldStrong::Map::TileMapState::getTileForBrush // label: getTileForBrush + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FBD80 = 0x004FBD80, - // label: isTileSuitableForBrushPlacement + // label: _HoldStrong::Map::TileMapState::meth_0x4fbe70 + // label: checkTileHeightAgainstNeighbors + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FBE70 = 0x004FBE70, - // label: computeTileCliffEdgeFlags + // label: _HoldStrong::Map::TileMapState::meth_0x4fc0b0 + // label: computeTileSlopeDirection + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FC0B0 = 0x004FC0B0, - // label: propagateCliffEdgeFlagFromNeighbor + // label: _HoldStrong::Map::TileMapState::meth_0x4fc280 + // label: markTileBelowCliff + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FC280 = 0x004FC280, - // label: collectCliffEdgeTilesForClimbData + // label: _HoldStrong::Map::TileMapState::meth_0x4fc340 + // label: collectClimbableCliffTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FC340 = 0x004FC340, + // label: _HoldStrong::Map::TileMapState::generateDustClouds // label: generateDustClouds + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FC490 = 0x004FC490, - // label: computeWallCornerRenderRotation + // label: _HoldStrong::Map::TileMapState::meth_0x4fc650 + // label: getCliffSpriteIndex + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FC650 = 0x004FC650, - // label: isCliffDropInDirection + // label: _HoldStrong::Map::TileMapState::meth_0x4fc7c0 + // label: isSteepDropInDirection + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FC7C0 = 0x004FC7C0, - // label: computeClimbRampRotation + // label: _HoldStrong::Map::TileMapState::meth_0x4fc810 + // label: computeSlopeEdgeSprite + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FC810 = 0x004FC810, + // label: _HoldStrong::Map::TileMapState::updateGFXLayers // label: updateGFXLayers + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FC9E0 = 0x004FC9E0, - // label: updateMacroLayerRelated + // label: _HoldStrong::Map::TileMapState::updateMacroLayerRelated + // label: recomputeMacroLayerRegion + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FDB00 = 0x004FDB00, - // label: updateMacroLayerRelated2 + // label: _HoldStrong::Map::TileMapState::updateMacroLayerRelated2 + // label: recomputeMacroLayerRegion2 + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FF080 = 0x004FF080, // type: function SHC_3BB0A8C1_0x004FF420 = 0x004FF420, + // label: _HoldStrong::Map::TileMapState::setBitFlagBasedOnWallTowerGatehouseOrKeep // label: setBitFlagBasedOnWallTowerGatehouseOrKeep + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FF870 = 0x004FF870, + // label: _HoldStrong::Map::TileMapState::returnSomeHeight // label: returnSomeHeight + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FF990 = 0x004FF990, @@ -45866,11 +48975,15 @@ enum { SHC_3BB0A8C1_0x004FFB02 = 0x004FFB02, // type: /byte SHC_3BB0A8C1_0x004FFB03 = 0x004FFB03, + // label: _HoldStrong::Map::TileMapState::getTotalHeightAtTile // label: getTotalHeightAtTile + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FFB10 = 0x004FFB10, + // label: _HoldStrong::Map::TileMapState::getTotalHeightAt // label: getTotalHeightAt + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FFBA0 = 0x004FFBA0, @@ -45960,7 +49073,9 @@ enum { SHC_3BB0A8C1_0x004FFF01 = 0x004FFF01, // type: /byte SHC_3BB0A8C1_0x004FFF02 = 0x004FFF02, + // label: _HoldStrong::Map::TileMapState::getHeightAtTileIncludingOwnersBuildings // label: getHeightAtTileIncludingOwnersBuildings + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x004FFF10 = 0x004FFF10, @@ -46032,23 +49147,37 @@ enum { SHC_3BB0A8C1_0x00500090 = 0x00500090, // type: /byte SHC_3BB0A8C1_0x00500091 = 0x00500091, + // label: _HoldStrong::Map::TileMapState::recountTotalOwnedMoats // label: recountTotalOwnedMoats + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005000A0 = 0x005000A0, - // label: countMoatsOwnedByEachPlayer + // label: _HoldStrong::Map::TileMapState::scanMoatsInGroupsOfThreeUnk + // label: countMoatTilesPerPlayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005000E0 = 0x005000E0, + // label: _HoldStrong::Map::TileMapState::countUnfinishedMoatUnk // label: countUnfinishedMoatTilesForPlayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500180 = 0x00500180, + // label: _HoldStrong::Map::TileMapState::getUnownedMoatCount // label: getUnownedMoatCount + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500210 = 0x00500210, + // label: busyWaitCountdown + // location: + // type: function + SHC_3BB0A8C1_0x00500220 = 0x00500220, + // label: _HoldStrong::Map::TileMapState::returnOwnedMoatAtTile // label: returnOwnedMoatAtTile + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500250 = 0x00500250, @@ -46056,123 +49185,183 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00500290 = 0x00500290, + // label: _HoldStrong::Map::TileMapState::clearMoatFromMemory // label: clearMoatFromMemory + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005002D0 = 0x005002D0, + // label: _HoldStrong::Map::TileMapState::clearMoat // label: clearMoat + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500310 = 0x00500310, + // label: _HoldStrong::Map::TileMapState::findTileInSameAreaAndNoTooHeightDifference // label: findTileInSameAreaAndNoTooHeightDifference + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500370 = 0x00500370, + // label: _HoldStrong::Map::TileMapState::setXYBasedOnMoatID // label: setXYBasedOnMoatID + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005003D0 = 0x005003D0, - // label: advanceMoatFillProgress + // label: _HoldStrong::Map::TileMapState::meth_0x500500 + // label: advanceMoatDigging + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500500 = 0x00500500, - // label: clearMoatAtTileIfPresent + // label: _HoldStrong::Map::TileMapState::clearMoatIfUnk + // label: clearMoatIfPresent + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005005F0 = 0x005005F0, - // label: updateMoatCountdownTimers + // label: _HoldStrong::Map::TileMapState::moatRelatedUpdateFunction + // label: updateMoatCounts + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500640 = 0x00500640, + // label: _HoldStrong::Map::TileMapState::meth_0x500680 // label: resetMoatArray + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500680 = 0x00500680, - // label: clearInvalidMoatEntries + // label: _HoldStrong::Map::TileMapState::meth_0x5006c0 + // label: purgeStaleMoats + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005006C0 = 0x005006C0, - // label: setMoatVisualStateAtTile + // label: _HoldStrong::Map::TileMapState::meth_0x500720 + // label: setMoatValueAtTile + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500720 = 0x00500720, - // label: setMoatOwnerForAllMatching + // label: _HoldStrong::Map::TileMapState::meth_0x500750 + // label: reassignMoatOwnership + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500750 = 0x00500750, + // label: _HoldStrong::Map::TileMapState::swapMoatOwnership // label: swapMoatOwnership + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500790 = 0x00500790, - // label: resetPitchDitchArray + // label: _HoldStrong::Map::TileMapState::meth_0x5007d0 + // label: clearAllPitchDitches + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005007D0 = 0x005007D0, + // label: _HoldStrong::Map::TileMapState::countPitchDitchesWithPlayerID0 // label: countPitchDitchesWithPlayerID0 + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500800 = 0x00500800, + // label: _HoldStrong::Map::TileMapState::getPitchDitchIDForTile // label: getPitchDitchIDForTile + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500850 = 0x00500850, + // label: _HoldStrong::Map::TileMapState::destroyPitchDitch // label: destroyPitchDitch + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500890 = 0x00500890, + // label: _HoldStrong::Map::TileMapState::swapPitchOwnership // label: swapPitchOwnership + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500940 = 0x00500940, - // label: findNearestValidDigTileNearTarget + // label: _HoldStrong::Map::TileMapState::meth_0x500980 + // label: findAdjacentReachableTile + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500980 = 0x00500980, - // label: computeTileAlongAxisOffset + // label: _HoldStrong::Map::TileMapState::meth_0x500b50 + // label: offsetTileByDirectionSteps + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500B50 = 0x00500B50, - // label: setSignpostDistanceForCampaignMission + // label: _HoldStrong::Map::TileMapState::campaignRelatedNumber + // label: setSignpostDistanceForMode + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00500BB0 = 0x00500BB0, - // label: startBuildingDestructionConfirmation + // label: _HoldStrong::Map::WallAndPitchState::meth_0x500c20 + // label: beginBuildingPlacementUndo + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500C20 = 0x00500C20, + // label: _HoldStrong::Map::WallAndPitchState::resetWallAndPitchState // label: resetWallAndPitchState + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500C80 = 0x00500C80, - // label: startEntityDestructionConfirmation + // label: _HoldStrong::Map::WallAndPitchState::meth_0x500cb0 + // label: beginEntityPlacementUndo + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500CB0 = 0x00500CB0, - // label: startUnitDestructionConfirmation + // label: _HoldStrong::Map::WallAndPitchState::meth_0x500cf0 + // label: beginUnitPlacementUndo + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500CF0 = 0x00500CF0, + // label: _HoldStrong::Map::WallAndPitchState::resetWallPlacementInfo // label: resetWallPlacementInfo + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500D30 = 0x00500D30, + // label: _HoldStrong::Map::WallAndPitchState::addWallPlacementInfoForTile // label: addWallPlacementInfoForTile + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500D60 = 0x00500D60, + // label: _HoldStrong::Map::WallAndPitchState::placePitchDitch // label: placePitchDitch + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500DD0 = 0x00500DD0, + // label: _HoldStrong::Map::WallAndPitchState::destroyWall // label: destroyWall + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500E20 = 0x00500E20, + // label: _HoldStrong::Map::WallAndPitchState::destroyPitch // label: destroyPitch + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500EE0 = 0x00500EE0, - // label: updateDestructionConfirmationCountdown + // label: _HoldStrong::Map::WallAndPitchState::meth_0x500f40 + // label: tickPlacementUndoTimer + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x00500F40 = 0x00500F40, @@ -46188,25 +49377,35 @@ enum { SHC_3BB0A8C1_0x005010B8 = 0x005010B8, // type: /pointer SHC_3BB0A8C1_0x005010BC = 0x005010BC, + // label: _HoldStrong::UI::HoveredState::clearHoveredState // label: clearHoveredState + // location: // location: OpenSHC/UI/HoveredState // type: function SHC_3BB0A8C1_0x005010C0 = 0x005010C0, // type: function SHC_3BB0A8C1_0x005010D0 = 0x005010D0, + // label: _HoldStrong::UI::HoveredState::clearInvalidatedHoverStates // label: clearInvalidatedHoverStates + // location: // location: OpenSHC/UI/HoveredState // type: function SHC_3BB0A8C1_0x005010E0 = 0x005010E0, + // label: _HoldStrong::UI::HoveredState::createHoverStateElement // label: createHoverStateElement + // location: // location: OpenSHC/UI/HoveredState // type: function SHC_3BB0A8C1_0x00501110 = 0x00501110, - // label: spreadFlagPlacementAlgorithm + // label: _HoldStrong::Map::TileMapState::spreadAlgorithmForFlagsAndBraziers2Unk + // label: removePlayerFlagsAndBraziers + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00501180 = 0x00501180, - // label: spreadBrazierPlacementAlgorithm + // label: _HoldStrong::Map::TileMapState::spreadAlgorithmForFlagsAndBraziersUnk + // label: spreadPlayerFlagsAndBraziers + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005011A0 = 0x005011A0, @@ -46214,11 +49413,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x005011C0 = 0x005011C0, - // label: UpgradeMapLogicToVersion_Unknown1 + // label: _HoldStrong::Map::Version::UpgradeMapLogicToVersion_Unknown1 + // label: upgradeMapClearInvalidDisplayFlag + // location: // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x005011F0 = 0x005011F0, - // label: UpgradeMapLogicToVersion_Unknown2 + // label: _HoldStrong::Map::Version::UpgradeMapLogicToVersion_Unknown2 + // label: upgradeMapFixSunkenStairs + // location: // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x00501350 = 0x00501350, @@ -46248,23 +49451,33 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00501730 = 0x00501730, - // label: UpgradeMapLogicToVersion_Unknown3 + // label: _HoldStrong::Map::Version::UpgradeMapLogicToVersion_Unknown3 + // label: upgradeMapMarkCompletedMoats + // location: // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x00501760 = 0x00501760, - // label: forceFullTileMapRedraw + // label: _HoldStrong::Map::TileMapState::clearAndSetTileMapUnknown2Plus + // label: forceRedrawAllTileMapLayers + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005017A0 = 0x005017A0, - // label: useEraserBrush + // label: _HoldStrong::Map::TileMapState::meth_0x5017c0 + // label: eraseMapTilesWithBrush + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005017C0 = 0x005017C0, + // label: _HoldStrong::Map::TileMapState::updateShowHiLayerOrResetChangedLayer // label: updateShowHiLayerOrResetChangedLayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00501A20 = 0x00501A20, + // label: _HoldStrong::Map::TileMapState::changeMapOrientationUnk // label: changeMapOrientation + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00501B90 = 0x00501B90, @@ -46282,41 +49495,59 @@ enum { SHC_3BB0A8C1_0x00501CC4 = 0x00501CC4, // type: /pointer SHC_3BB0A8C1_0x00501CC8 = 0x00501CC8, + // label: _HoldStrong::Map::TileMapState::increaseHeightForTunnelWithBrush // label: increaseHeightForTunnelWithBrush + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00501CD0 = 0x00501CD0, + // label: _HoldStrong::Map::TileMapState::raiseLand // label: raiseLand + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00501D90 = 0x00501D90, + // label: _HoldStrong::Map::TileMapState::createPlateau // label: createPlateau + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00501F50 = 0x00501F50, // type: function SHC_3BB0A8C1_0x00501FE0 = 0x00501FE0, - // label: useLevelBrush + // label: _HoldStrong::Map::TileMapState::useBrush2 + // label: useBrush2 + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00502110 = 0x00502110, + // label: _HoldStrong::Map::TileMapState::setLand // label: setLand + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00502390 = 0x00502390, - // label: isValidCastleSiteLocation + // label: _HoldStrong::Map::TileMapState::meth_0x5024f0 + // label: canPlaceTerrainFeatureAt + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005024F0 = 0x005024F0, - // label: useTerrainHeightBrush + // label: _HoldStrong::Map::TileMapState::useBrush3 + // label: useBrush3 + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00502680 = 0x00502680, - // label: getMaxWallHeightInBrushArea + // label: _HoldStrong::Map::TileMapState::meth_0x502950 + // label: getMaxFootprintWallHeight + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00502950 = 0x00502950, - // label: validateWallBuildPath + // label: _HoldStrong::Map::TileMapState::checkWhetherThisWallBuildIsAllowed + // label: checkWhetherThisWallBuildIsAllowed + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005029D0 = 0x005029D0, @@ -46354,7 +49585,9 @@ enum { SHC_3BB0A8C1_0x00502F29 = 0x00502F29, // type: /byte SHC_3BB0A8C1_0x00502F2A = 0x00502F2A, + // label: _HoldStrong::Map::TileMapState::placeWalls // label: placeWalls + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00502F30 = 0x00502F30, @@ -46392,15 +49625,21 @@ enum { SHC_3BB0A8C1_0x00503491 = 0x00503491, // type: /byte SHC_3BB0A8C1_0x00503492 = 0x00503492, - // label: placeDefensiveStructureTile + // label: _HoldStrong::Map::TileMapState::placeDefensiveStructurePart2Unk + // label: placeWallTileStructure + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005034A0 = 0x005034A0, + // label: _HoldStrong::Map::TileMapState::setupBuildingSizeIndexMapping // label: setupBuildingSizeIndexMapping + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00503720 = 0x00503720, + // label: _HoldStrong::Map::TileMapState::checkBuildingCanBePlacedHere // label: checkBuildingCanBePlacedHere + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005037B0 = 0x005037B0, @@ -46706,7 +49945,9 @@ enum { SHC_3BB0A8C1_0x00504A26 = 0x00504A26, // type: /byte SHC_3BB0A8C1_0x00504A27 = 0x00504A27, - // label: evaluateBuildingPlacementAtCursor + // label: _HoldStrong::Map::TileMapState::meth_0x504a30 + // label: validateBuildingPlacement + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00504A30 = 0x00504A30, @@ -46816,11 +50057,15 @@ enum { SHC_3BB0A8C1_0x00504ED0 = 0x00504ED0, // type: /byte SHC_3BB0A8C1_0x00504ED1 = 0x00504ED1, - // label: updateBuildingPlacementRotationPreview + // label: _HoldStrong::Map::TileMapState::meth_0x504ee0 + // label: computePlacementRotationKeepFail + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00504EE0 = 0x00504EE0, + // label: _HoldStrong::Map::TileMapState::setConstructionGFXLayerBasedOnPlacementChecks // label: setConstructionGFXLayerBasedOnPlacementChecks + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00504F10 = 0x00504F10, @@ -46834,43 +50079,63 @@ enum { SHC_3BB0A8C1_0x00505A10 = 0x00505A10, // type: function SHC_3BB0A8C1_0x005060C0 = 0x005060C0, + // label: _HoldStrong::Map::TileMapState::updateBuildingGraphicsLayer // label: updateBuildingGraphicsLayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00506370 = 0x00506370, - // label: updatePathLinkagesForBuilding + // label: _HoldStrong::Map::TileMapState::someUpdatePathLinkageRelatedCall + // label: updateBuildingPathLinkages + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00506AD0 = 0x00506AD0, + // label: _HoldStrong::Map::TileMapState::placeWorkshopOrHovel // label: placeWorkshopOrHovel + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00506BD0 = 0x00506BD0, + // label: _HoldStrong::Map::TileMapState::placeSiegetowerPlaced // label: placeSiegetowerPlaced + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00506D40 = 0x00506D40, - // label: placeSiegeTent + // label: _HoldStrong::Map::TileMapState::placeSiegeTentUnk + // label: stampBuildingTilesAndLinkages + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00506E10 = 0x00506E10, + // label: _HoldStrong::Map::TileMapState::placePositiveFearfactor // label: placePositiveFearfactor + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00506F40 = 0x00506F40, - // label: stampBuildingOntoTileMap + // label: _HoldStrong::Map::TileMapState::meth_0x507060 + // label: placeBuildingOnTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00507060 = 0x00507060, + // label: _HoldStrong::Map::TileMapState::placeTower // label: placeTower + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00507130 = 0x00507130, + // label: _HoldStrong::Map::TileMapState::upgradeTowerLogicLayer // label: upgradeTowerLogicLayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00507280 = 0x00507280, - // label: resetTileAndClearMoat + // label: _HoldStrong::Map::TileMapState::meth_0x507350 + // label: resetTileTerrain + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00507350 = 0x00507350, @@ -46908,59 +50173,83 @@ enum { SHC_3BB0A8C1_0x0050741D = 0x0050741D, // type: /byte SHC_3BB0A8C1_0x0050741E = 0x0050741E, + // label: _HoldStrong::Map::TileMapState::placeGatehouseSmall // label: placeGatehouseSmall + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00507420 = 0x00507420, + // label: _HoldStrong::Map::TileMapState::placeGatehouseLarge // label: placeGatehouseLarge + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00507560 = 0x00507560, + // label: _HoldStrong::Map::TileMapState::placeBarracks // label: placeBarracks + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005076A0 = 0x005076A0, // type: function SHC_3BB0A8C1_0x00507830 = 0x00507830, + // label: _HoldStrong::Map::TileMapState::placeEngineersguild // label: placeEngineersguild + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00507BD0 = 0x00507BD0, // type: function SHC_3BB0A8C1_0x00507D50 = 0x00507D50, + // label: _HoldStrong::Map::TileMapState::placeTunnelersguild // label: placeTunnelersguild + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00507E00 = 0x00507E00, // type: function SHC_3BB0A8C1_0x00507F80 = 0x00507F80, + // label: _HoldStrong::Map::TileMapState::placeOilsmelter // label: placeOilsmelter + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00508030 = 0x00508030, + // label: _HoldStrong::Map::TileMapState::placeQuarry // label: placeQuarry + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00508250 = 0x00508250, + // label: _HoldStrong::Map::TileMapState::placeStockpile // label: placeStockpile + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00508540 = 0x00508540, // type: function SHC_3BB0A8C1_0x00508590 = 0x00508590, - // label: clearSizeFiveBuildingFootprintAndMoats + // label: _HoldStrong::Map::TileMapState::meth_0x508760 + // label: clearKeepTilesAndMoat + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00508760 = 0x00508760, - // label: clearSizeFiveBuildingFootprint + // label: _HoldStrong::Map::TileMapState::meth_0x508870 + // label: clearSize5FootprintAndMoat + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00508870 = 0x00508870, - // label: floodMoatUnderRemovedBuilding + // label: _HoldStrong::Map::TileMapState::meth_0x508910 + // label: applyKeepMoatTiles + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00508910 = 0x00508910, + // label: _HoldStrong::Map::TileMapState::renderPreviewMapperWithBrush // label: renderPreviewMapperWithBrush + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00508A00 = 0x00508A00, @@ -47560,33 +50849,27 @@ enum { SHC_3BB0A8C1_0x00508DC2 = 0x00508DC2, // type: /byte SHC_3BB0A8C1_0x00508DC3 = 0x00508DC3, + // label: _HoldStrong::Map::TileMapState::applyTreeToLogicalLayer // label: applyTreeToLogicalLayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00508DD0 = 0x00508DD0, - // label: eraseAreaWithBrush + // label: _HoldStrong::Map::TileMapState::meth_0x508ec0 + // label: eraseMapTilesWithBrushBounded + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00508EC0 = 0x00508EC0, + // label: _HoldStrong::Map::TileMapState::updateTextureTilemap // label: updateTextureTilemap + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00509180 = 0x00509180, // type: function - SHC_3BB0A8C1_0x00509930 = 0x00509930, - // type: function SHC_3BB0A8C1_0x0050A74E = 0x0050A74E, // type: function - SHC_3BB0A8C1_0x0050AA13 = 0x0050AA13, - // type: function - SHC_3BB0A8C1_0x0050AD2B = 0x0050AD2B, - // type: function - SHC_3BB0A8C1_0x0050B063 = 0x0050B063, - // type: function - SHC_3BB0A8C1_0x0050C94B = 0x0050C94B, - // type: function - SHC_3BB0A8C1_0x0050CC8A = 0x0050CC8A, - // type: function SHC_3BB0A8C1_0x0050CE38 = 0x0050CE38, // type: function SHC_3BB0A8C1_0x0050EAB7 = 0x0050EAB7, @@ -47603,8 +50886,6 @@ enum { // type: function SHC_3BB0A8C1_0x0050FF1F = 0x0050FF1F, // type: function - SHC_3BB0A8C1_0x005104F9 = 0x005104F9, - // type: function SHC_3BB0A8C1_0x0051051E = 0x0051051E, // type: /pointer[2] SHC_3BB0A8C1_0x00510C7C = 0x00510C7C, @@ -47628,39 +50909,55 @@ enum { SHC_3BB0A8C1_0x00510F10 = 0x00510F10, // type: /undefined *32[7] SHC_3BB0A8C1_0x00511004 = 0x00511004, + // label: _HoldStrong::Map::TileMapState::updateMacroLayer // label: updateMacroLayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00511020 = 0x00511020, + // label: _HoldStrong::Map::TileMapState::createMoat // label: createMoat + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005110B0 = 0x005110B0, + // label: _HoldStrong::Map::TileMapState::findNearestFriendlyMoatTileForDigging // label: findNearestFriendlyMoatTileForDigging + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005111D0 = 0x005111D0, // type: function SHC_3BB0A8C1_0x00511240 = 0x00511240, + // label: _HoldStrong::Map::TileMapState::removeMoat // label: removeMoat + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005113F0 = 0x005113F0, + // label: _HoldStrong::Map::TileMapState::updatePitchDitches // label: updatePitchDitches + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005114C0 = 0x005114C0, // type: function SHC_3BB0A8C1_0x005115C0 = 0x005115C0, + // label: _HoldStrong::Map::TileMapState::placePitchDitch // label: placePitchDitch + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005116E0 = 0x005116E0, - // label: updateGameRelatedValue + // label: _HoldStrong::Map::TileMapState::updateGameRelatedValue + // label: tickExpandingSignpostRadius + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00511850 = 0x00511850, - // label: confirmAndQueueDestructionCommand + // label: _HoldStrong::Map::WallAndPitchState::meth_0x5118c0 + // label: commitPlacementUndo + // location: // location: OpenSHC/Map/WallAndPitchState // type: function SHC_3BB0A8C1_0x005118C0 = 0x005118C0, @@ -47675,10 +50972,14 @@ enum { // type: /undefined *32 SHC_3BB0A8C1_0x005119B4 = 0x005119B4, // label: Constructor_HoveredState + // label: _HoldStrong::UI::HoveredState::Constructor_HoveredState + // location: // location: OpenSHC/UI/HoveredState // type: function SHC_3BB0A8C1_0x005119C0 = 0x005119C0, + // label: _HoldStrong::UI::HoveredState::calculateHoveredTile // label: calculateHoveredTile + // location: // location: OpenSHC/UI/HoveredState // type: function SHC_3BB0A8C1_0x005119D0 = 0x005119D0, @@ -48198,69 +51499,97 @@ enum { SHC_3BB0A8C1_0x00511D60 = 0x00511D60, // type: /pointer SHC_3BB0A8C1_0x00511D64 = 0x00511D64, + // label: _HoldStrong::Map::TileMapState::upgradeMapFormatLogicLayer // label: upgradeMapFormatLogicLayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00511D70 = 0x00511D70, + // label: _HoldStrong::Map::TileMapState::setupTileMapSections // label: setupTileMapSections + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00511DF0 = 0x00511DF0, // type: function SHC_3BB0A8C1_0x005120C0 = 0x005120C0, + // label: _HoldStrong::Map::TileMapState::setupAllMapSections // label: setupAllMapSections + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00512100 = 0x00512100, // type: function SHC_3BB0A8C1_0x00512180 = 0x00512180, + // label: _HoldStrong::Map::TileMapState::prepareMap // label: prepareMap + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00512450 = 0x00512450, + // label: _HoldStrong::Map::TileMapState::resetAreaBasedOnLogicalLayer // label: resetAreaBasedOnLogicalLayer + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005127B0 = 0x005127B0, // type: function SHC_3BB0A8C1_0x005127D0 = 0x005127D0, + // label: _HoldStrong::Map::TileMapState::processMapOrientationChange // label: processMapOrientationChange + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00512920 = 0x00512920, + // label: _HoldStrong::Map::TileMapState::setTerrain // label: setTerrain + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00512940 = 0x00512940, + // label: _HoldStrong::Map::TileMapState::placeMoat // label: placeMoat + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00514480 = 0x00514480, + // label: _HoldStrong::Map::TileMapState::placeKillingPit // label: placeKillingPit + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00514520 = 0x00514520, + // label: _HoldStrong::Map::TileMapState::placeKeep // label: placeKeep + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005146D0 = 0x005146D0, // type: function SHC_3BB0A8C1_0x00514BC0 = 0x00514BC0, + // label: _HoldStrong::Map::TileMapState::placeDrawbridge // label: placeDrawbridge + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00514DE0 = 0x00514DE0, + // label: _HoldStrong::Map::TileMapState::placeWheatfarm // label: placeWheatfarm + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00514F30 = 0x00514F30, + // label: _HoldStrong::Map::TileMapState::placeHopfarm // label: placeHopfarm + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005151C0 = 0x005151C0, // type: function SHC_3BB0A8C1_0x00515250 = 0x00515250, + // label: _HoldStrong::Map::TileMapState::placeDairyfarm // label: placeDairyfarm + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005154D0 = 0x005154D0, @@ -48268,31 +51597,48 @@ enum { SHC_3BB0A8C1_0x005155E0 = 0x005155E0, // type: function SHC_3BB0A8C1_0x00515680 = 0x00515680, + // label: _HoldStrong::Map::TileMapState::placeApplefarm // label: placeApplefarm + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00515740 = 0x00515740, + // label: _HoldStrong::Map::TileMapState::clearBuildingFromTerrain // label: clearBuildingFromTerrain + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00515A20 = 0x00515A20, - // label: createMoatForSizeFiveBuilding + // label: _HoldStrong::Map::TileMapState::createMoatSize5Unk + // label: createKeepSurroundingMoat + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00515C80 = 0x00515C80, + // label: _HoldStrong::Map::TileMapState::placeTree // label: placeTree + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00515DA0 = 0x00515DA0, - // label: constructTileMapState + // label: Constructor_TileMapState + // label: _HoldStrong::Map::TileMapState::Constructor_TileMapState + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00515F40 = 0x00515F40, + // label: _HoldStrong::Map::TileMapState::prepareAreaForBuildingPlacement // label: prepareAreaForBuildingPlacement + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005160C0 = 0x005160C0, + // label: LAB_ClearBuilding + // location: OpenSHC/Map/TileMapState/prepareAreaForBuildingPlacement + SHC_3BB0A8C1_0x00516287 = 0x00516287, + // label: _HoldStrong::Map::TileMapState::placeBuilding // label: placeBuilding + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x005162D0 = 0x005162D0, @@ -48650,7 +51996,9 @@ enum { SHC_3BB0A8C1_0x00516B73 = 0x00516B73, // type: /byte SHC_3BB0A8C1_0x00516B74 = 0x00516B74, + // label: _HoldStrong::Map::TileMapState::processDamageToBuilding // label: processDamageToBuilding + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00516B80 = 0x00516B80, @@ -48954,7 +52302,9 @@ enum { SHC_3BB0A8C1_0x00517789 = 0x00517789, // type: /byte SHC_3BB0A8C1_0x0051778A = 0x0051778A, + // label: _HoldStrong::Map::TileMapState::processEntityDamageToBuildingCollateral // label: processEntityDamageToBuildingCollateral + // location: // location: OpenSHC/Map/TileMapState // type: function SHC_3BB0A8C1_0x00517790 = 0x00517790, @@ -49258,23 +52608,29 @@ enum { SHC_3BB0A8C1_0x00518129 = 0x00518129, // type: /byte SHC_3BB0A8C1_0x0051812A = 0x0051812A, + // label: _HoldStrong::Map::Units::TroopValueState::clearAttackInfo // label: clearAttackInfo + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00518130 = 0x00518130, - // label: initializeAttackWaveSlot + // label: resetAttackAndAssignSignpost // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00518180 = 0x00518180, + // label: _HoldStrong::Map::Units::TroopValueState::searchTribeWithProperties // label: searchTribeWithProperties + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x005182A0 = 0x005182A0, - // label: isAttackWaveComplete + // label: areAllAttacksFinished // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00518350 = 0x00518350, + // label: _HoldStrong::Map::Units::TroopValueState::sortAttackInfoTribeIDArrayBasedOn // label: sortAttackInfoTribeIDArrayBasedOn + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00518380 = 0x00518380, @@ -49282,53 +52638,65 @@ enum { SHC_3BB0A8C1_0x005185C0 = 0x005185C0, // type: function SHC_3BB0A8C1_0x00518690 = 0x00518690, + // label: _HoldStrong::Map::Units::TroopValueState::applyTribeBehaviorTypes // label: applyTribeBehaviorTypes + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00518870 = 0x00518870, // type: function SHC_3BB0A8C1_0x005188A0 = 0x005188A0, - // label: assignBehaviorTypeToNearbyTribes + // label: assignBehaviorToReachableTribes // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00518930 = 0x00518930, - // label: assignBehaviorTypeAndLinkSupportTribe + // label: assignTribeBehaviorAndPairArchers // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00518A10 = 0x00518A10, + // label: _HoldStrong::Map::Units::TroopValueState::isLessThanPercentageOfTribesInAttackDying // label: isLessThanPercentageOfTribesInAttackDying + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00518BB0 = 0x00518BB0, - // label: renderAttackInfoDebugOverlay + // label: _HoldStrong::Map::Units::TroopValueState::renderDebugDataZoneDataUnk + // label: renderAIAttackDebugOverlay + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00518C50 = 0x00518C50, - // label: computeAttackWaveTroopComposition + // label: computeAttackWaveScaling // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519310 = 0x00519310, - // label: buildRallyPointsFromSiegeUnits + // label: buildSiegeRallyPoints // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519690 = 0x00519690, - // label: setRallyPointForLaddermenTribe + // label: setLaddermanRallyPoint // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519790 = 0x00519790, - // label: initializeAttackZoneSearch + // label: initAttackInfoStartZone // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519850 = 0x00519850, + // label: _HoldStrong::Map::Units::TroopValueState::recomputeTargetedBuildingTilesArray // label: recomputeTargetedBuildingTilesArray + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x005198C0 = 0x005198C0, + // label: _HoldStrong::Map::Units::TroopValueState::getTileInTargetedBuildingTiles // label: getTileInTargetedBuildingTiles + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519960 = 0x00519960, - // label: computeSiegeSpotScores + // label: _HoldStrong::Map::Units::TroopValueState::hack2related + // label: hack2related + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519990 = 0x00519990, @@ -49344,93 +52712,127 @@ enum { SHC_3BB0A8C1_0x00519BF0 = 0x00519BF0, // type: function SHC_3BB0A8C1_0x00519C40 = 0x00519C40, + // label: _HoldStrong::Map::Units::TroopValueState::findEnemyWalls // label: findEnemyWalls + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519CC0 = 0x00519CC0, + // label: _HoldStrong::Map::Units::TroopValueState::setScale3 // label: setScale3 + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519DE0 = 0x00519DE0, - // label: findNearestAvailableScalePoint + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x519e40 + // label: findAttackInfoScaleTarget + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519E40 = 0x00519E40, + // label: _HoldStrong::Map::Units::TroopValueState::setTown2 // label: setTown2 + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519F50 = 0x00519F50, + // label: _HoldStrong::Map::Units::TroopValueState::findEnemyBuildingsClosestToUnit // label: findEnemyBuildingsClosestToUnit + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00519FB0 = 0x00519FB0, - // label: countAvailablePeopleValueSlots + // label: countAvailablePeopleTargets // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A0C0 = 0x0051A0C0, - // label: countAvailableLordValueSlots + // label: countAvailableLordTargets // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A100 = 0x0051A100, + // label: _HoldStrong::Map::Units::TroopValueState::calculateTile2PeoplValueClosestToUnit // label: calculateTile2PeoplValueClosestToUnit + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A140 = 0x0051A140, - // label: findEnemyLord + // label: _HoldStrong::Map::Units::TroopValueState::findEnemyLordUnk + // label: assignUnitToEnemyLordTarget + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A220 = 0x0051A220, + // label: _HoldStrong::Map::Units::TroopValueState::setGate2 // label: setGate2 + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A2D0 = 0x0051A2D0, - // label: findEnemyTowersOrGates + // label: _HoldStrong::Map::Units::TroopValueState::findEnemyTowersOrGatesUnk + // label: assignUnitToNearestEnemyGateTarget + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A330 = 0x0051A330, // type: function SHC_3BB0A8C1_0x0051A490 = 0x0051A490, + // label: _HoldStrong::Map::Units::TroopValueState::setWide3 // label: setWide3 + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A550 = 0x0051A550, + // label: _HoldStrong::Map::Units::TroopValueState::getClosestWideValueBasedOnPlayer // label: getClosestWideValueBasedOnPlayer + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A5B0 = 0x0051A5B0, // type: function SHC_3BB0A8C1_0x0051A630 = 0x0051A630, + // label: _HoldStrong::Map::Units::TroopValueState::setMoat3 // label: setMoat3 + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A720 = 0x0051A720, + // label: _HoldStrong::Map::Units::TroopValueState::calculateTile2MoatValueClosestToUnit // label: calculateTile2MoatValueClosestToUnit + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A780 = 0x0051A780, - // label: findNearestDiggableMoatPoint + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x51a8a0 + // label: findMoatTileToDig + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A8A0 = 0x0051A8A0, - // label: findTribeWithMoatAttackBehavior + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x51a920 + // label: findMoatDiggingTribeTarget + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A920 = 0x0051A920, - // label: countAvailableHighValueSlots + // label: countAvailableHighTargets // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A9A0 = 0x0051A9A0, + // label: _HoldStrong::Map::Units::TroopValueState::calculateHigh2ClostestToTribeTargetUnit // label: calculateHigh2ClostestToTribeTargetUnit + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051A9F0 = 0x0051A9F0, // type: function SHC_3BB0A8C1_0x0051AA40 = 0x0051AA40, - // label: countAvailableArcherValueSlots + // label: countAvailableArcherTargets // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051AB10 = 0x0051AB10, + // label: _HoldStrong::Map::Units::TroopValueState::calculateArch2ClosestToTribeTargetUnit // label: calculateArch2ClosestToTribeTargetUnit + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051AB60 = 0x0051AB60, @@ -49444,39 +52846,43 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0051ACB0 = 0x0051ACB0, - // label: expandAIZoneLayerStage1 + // label: recomputeAIApproachLayer1 // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051ACE0 = 0x0051ACE0, // type: function SHC_3BB0A8C1_0x0051ACF0 = 0x0051ACF0, - // label: expandAIZoneLayerStage2 + // label: recomputeAIApproachLayer2 // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051AE00 = 0x0051AE00, - // label: expandAIZoneLayerStage3 + // label: recomputeAIApproachLayer4 // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051AE90 = 0x0051AE90, - // label: findOrReserveArcherPointSlot + // label: _HoldStrong::Map::Units::TroopValueState::unkArcherRelated1 + // label: findArcherPointIndexForTile + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051AF20 = 0x0051AF20, - // label: pruneStaleArcherPoints + // label: validateAttackInfoEntries // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051AF70 = 0x0051AF70, // type: function SHC_3BB0A8C1_0x0051AF80 = 0x0051AF80, - // label: claimArcherAttackPoint + // label: assignTribeArcherAttackPosition // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051AFF0 = 0x0051AFF0, + // label: _HoldStrong::Map::Units::TroopValueState::getSupportPointIndex // label: getSupportPointIndex + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051B0C0 = 0x0051B0C0, - // label: pruneStaleSupportPoints + // label: validateSupportPointEntries // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051B110 = 0x0051B110, @@ -49486,25 +52892,33 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0051B190 = 0x0051B190, + // label: _HoldStrong::Map::Units::TroopValueState::getSiegeIndexForTile // label: getSiegeIndexForTile + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051B240 = 0x0051B240, - // label: pruneStaleTentPoints + // label: validateTentPointEntries // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051B290 = 0x0051B290, // type: function SHC_3BB0A8C1_0x0051B2A0 = 0x0051B2A0, - // label: placeSiegeTentAtAttackAngle + // label: _HoldStrong::Map::Units::TroopValueState::placeSiegeTentAndAssignEngineersUnk + // label: placeSiegeTentAndOrderConstruction + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051B310 = 0x0051B310, + // label: _HoldStrong::Map::Units::TroopValueState::placeSiegeTentOrTunnelAtSuitableLocationAndAssignEngineers // label: placeSiegeTentOrTunnelAtSuitableLocationAndAssignEngineers + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051B420 = 0x0051B420, + // label: _HoldStrong::Map::Units::TroopValueState::placeTunnelEntrances // label: placeTunnelEntrances + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051B570 = 0x0051B570, @@ -49514,7 +52928,7 @@ enum { SHC_3BB0A8C1_0x0051B680 = 0x0051B680, // type: function SHC_3BB0A8C1_0x0051B690 = 0x0051B690, - // label: playAttackAlarmSound + // label: playAttackStartHorn // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051B6C0 = 0x0051B6C0, @@ -49526,7 +52940,9 @@ enum { SHC_3BB0A8C1_0x0051B708 = 0x0051B708, // type: /pointer SHC_3BB0A8C1_0x0051B70C = 0x0051B70C, + // label: _HoldStrong::Map::Units::TroopValueState::placeSiegeTentsAndAssignEngineers // label: placeSiegeTentsAndAssignEngineers + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051B710 = 0x0051B710, @@ -49536,51 +52952,69 @@ enum { SHC_3BB0A8C1_0x0051B890 = 0x0051B890, // type: function SHC_3BB0A8C1_0x0051B900 = 0x0051B900, + // label: _HoldStrong::Map::Units::TroopValueState::placeTunnelForEveryTunneler // label: placeTunnelForEveryTunneler + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051BA30 = 0x0051BA30, // type: function SHC_3BB0A8C1_0x0051BA90 = 0x0051BA90, + // label: _HoldStrong::Map::Units::TroopValueState::addUnitToNewTribe // label: addUnitToNewTribe + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051BC70 = 0x0051BC70, - // label: exitSiegeEquipmentForWave + // label: _HoldStrong::Map::Units::TroopValueState::exitSiegeEquipmentUnk + // label: commandSiegeCrewsExitEquipment + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051BD10 = 0x0051BD10, + // label: _HoldStrong::Map::Units::TroopValueState::getPlayerNot1AndHasKeep // label: getPlayerNot1AndHasKeep + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051BDE0 = 0x0051BDE0, - // label: FindFirstOpponentWithKeep + // label: findFirstPlayerWithKeep // location: OpenSHC/Map/Units // type: function SHC_3BB0A8C1_0x0051BE20 = 0x0051BE20, - // label: registerSpottedEnemyTile + // label: addAttackTargetTile // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051BE60 = 0x0051BE60, // type: function SHC_3BB0A8C1_0x0051BEE0 = 0x0051BEE0, - // label: shouldLightPitchBasedOnTroopValue + // label: _HoldStrong::Map::Units::TroopValueState::shouldLightPitchBecauseOfTroopValueUnk + // label: shouldLightPitchBecauseOfTroopValue + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051BF20 = 0x0051BF20, + // label: _HoldStrong::Map::Units::TroopValueState::giveLightPitchInstructionToUnitClosestToPitch // label: giveLightPitchInstructionToUnitClosestToPitch + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051BF70 = 0x0051BF70, + // label: _HoldStrong::Map::Units::TroopValueState::lightPitchIfNecessary // label: lightPitchIfNecessary + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051C1A0 = 0x0051C1A0, - // label: updateArcherBrazierProximityFlags + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x51c2d0 + // label: updateArcherBrazierFlags + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051C2D0 = 0x0051C2D0, + // label: _HoldStrong::Map::Units::TroopValueState::getValueOfTroopType // label: getValueOfTroopType + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051C360 = 0x0051C360, @@ -49754,11 +53188,13 @@ enum { SHC_3BB0A8C1_0x0051C463 = 0x0051C463, // type: /byte SHC_3BB0A8C1_0x0051C464 = 0x0051C464, - // label: queueOilThrowForIdleArchers + // label: aiEngineersThrowOil // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051C470 = 0x0051C470, + // label: _HoldStrong::Map::Units::TroopValueState::ifNecessaryThrowOilAutomatically // label: ifNecessaryThrowOilAutomatically + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051C570 = 0x0051C570, @@ -49790,53 +53226,65 @@ enum { SHC_3BB0A8C1_0x0051C7EF = 0x0051C7EF, // type: /byte SHC_3BB0A8C1_0x0051C7F0 = 0x0051C7F0, + // label: _HoldStrong::Map::Units::TroopValueState::commandUnitsToMoveToKeep // label: commandUnitsToMoveToKeep + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051C800 = 0x0051C800, - // label: collectArcherUnitsByLocation + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x51ca50 + // label: collectAIArchersForRepositioning + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051CA50 = 0x0051CA50, // type: function SHC_3BB0A8C1_0x0051CAE0 = 0x0051CAE0, - // label: redeployArchersToDefensivePositions + // label: refillWallArcherPositions // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051CBD0 = 0x0051CBD0, // type: function SHC_3BB0A8C1_0x0051CC00 = 0x0051CC00, + // label: _HoldStrong::Map::Units::TroopValueState::assignMacemenAndKnightsNotFromPlayer1ToTribes // label: assignMacemenAndKnightsNotFromPlayer1ToTribes + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051CCB0 = 0x0051CCB0, // type: function SHC_3BB0A8C1_0x0051CE50 = 0x0051CE50, - // label: trySendMacemenTribeToAttack + // label: dispatchAggressiveMacemenTribe // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051CF90 = 0x0051CF90, - // label: trySendKnightTribeToAttack + // label: dispatchAggressiveKnightTribe // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D020 = 0x0051D020, + // label: _HoldStrong::Map::Units::TroopValueState::sendAttackingPatrolTribeToComputedDestination // label: sendAttackingPatrolTribeToComputedDestination + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D0D0 = 0x0051D0D0, - // label: moveTribeToReachableNearbyTile + // label: sendTribeAlongAttackPath // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D1C0 = 0x0051D1C0, - // label: decideAndExecuteTribeAttackAction + // label: decideTribeAttackTarget // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D2B0 = 0x0051D2B0, - // label: moveTribeToNearbyGatehouse + // label: _HoldStrong::Map::Units::TroopValueState::moveUnitsToGateHouseUnk + // label: commandTribeMoveToNearestEnemyGatehouse + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D450 = 0x0051D450, + // label: _HoldStrong::Map::Units::TroopValueState::moveTowardsParticularUnits // label: moveTowardsParticularUnits + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D510 = 0x0051D510, @@ -49846,19 +53294,27 @@ enum { SHC_3BB0A8C1_0x0051D5D0 = 0x0051D5D0, // type: function SHC_3BB0A8C1_0x0051D5E0 = 0x0051D5E0, - // label: constructTroopValueState + // label: Constructor_TroopValueState + // label: _HoldStrong::Map::Units::TroopValueState::Constructor_TroopValueState + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D680 = 0x0051D680, - // label: advanceAttackWaveStaging + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x51d690 + // label: dispatchAttackWavePeopleAssault + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D690 = 0x0051D690, - // label: updateActiveAttackWaveState + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x51d730 + // label: processSiegeRetreatWave + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D730 = 0x0051D730, + // label: _HoldStrong::Map::Units::TroopValueState::updateTribeBehaviorBasedOnBehaviorType // label: updateTribeBehaviorBasedOnBehaviorType + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051D7F0 = 0x0051D7F0, @@ -50020,7 +53476,9 @@ enum { SHC_3BB0A8C1_0x0051E2F2 = 0x0051E2F2, // type: /byte SHC_3BB0A8C1_0x0051E2F3 = 0x0051E2F3, + // label: _HoldStrong::Map::Units::TroopValueState::recomputeAttackInfo // label: recomputeAttackInfo + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051E300 = 0x0051E300, @@ -50035,19 +53493,19 @@ enum { // label: LAB_0051f320__next_tile // location: SHC_3BB0A8C1_0x0051F320 = 0x0051F320, - // label: scanForArcherPoints + // label: computeAIArcherAttackPoints // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051F340 = 0x0051F340, // type: function SHC_3BB0A8C1_0x0051F3D0 = 0x0051F3D0, - // label: scanForSupportPoints + // label: computeAISupportPoints // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051F4B0 = 0x0051F4B0, // type: function SHC_3BB0A8C1_0x0051F4F0 = 0x0051F4F0, - // label: scanForSiegeTentPoints + // label: computeAISiegeTentPoints // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051F5C0 = 0x0051F5C0, @@ -50055,89 +53513,121 @@ enum { SHC_3BB0A8C1_0x0051F5E0 = 0x0051F5E0, // type: function SHC_3BB0A8C1_0x0051F630 = 0x0051F630, - // label: processSpottedEnemyTiles - // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051F950 = 0x0051F950, + // label: _HoldStrong::Map::Units::TroopValueState::recountTotalTroopValue // label: recountTotalTroopValue + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051F9C0 = 0x0051F9C0, + // label: _HoldStrong::Map::Units::TroopValueState::recomputeTotalTroopValueOfTroopsNearKeep // label: recomputeTotalTroopValueOfTroopsNearKeep + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051FA70 = 0x0051FA70, + // label: _HoldStrong::Map::Units::TroopValueState::uselessFunction // label: uselessFunction + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051FB80 = 0x0051FB80, + // label: _HoldStrong::Map::Units::TroopValueState::recountAttackTroopValue // label: recountAttackTroopValue + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051FB90 = 0x0051FB90, - // label: updateAttackInfoTick - // location: OpenSHC/Map/Units/TroopValueState + // label: updateAICastleDefenseStateMachine + // location: // type: function SHC_3BB0A8C1_0x0051FE80 = 0x0051FE80, - // label: initializeOrAdvanceAttackWave + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x51ff90 + // label: startAttackWave + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x0051FF90 = 0x0051FF90, + // label: _HoldStrong::Map::Units::TroopValueState::aiRecomputeAttacks2 // label: aiRecomputeAttacks2 + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x005200A0 = 0x005200A0, + // label: _HoldStrong::Map::Units::TroopValueState::aiRecomputeAttacks // label: aiRecomputeAttacks + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x005202B0 = 0x005202B0, - // label: updateInProgressAttackWave + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x520450 + // label: processSiegeAttackWave + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00520450 = 0x00520450, - // label: executeAttackWaveTargetAssignment + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x5205a0 + // label: runAiAttackWaveLogic + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x005205A0 = 0x005205A0, - // label: executeDelayedAttackWaveTargetAssignment + // label: _HoldStrong::Map::Units::TroopValueState::meth_0x520cd0 + // label: runAiAttackWaveLogicSimple + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00520CD0 = 0x00520CD0, + // label: _HoldStrong::Map::Units::TroopValueState::aiControlNonSkirmishUnitMovement // label: aiControlNonSkirmishUnitMovement + // location: // location: OpenSHC/Map/Units/TroopValueState // type: function SHC_3BB0A8C1_0x00520F70 = 0x00520F70, - // label: constructTribesState + // label: Constructor_TribesState + // label: _HoldStrong::Map::Units::TribesState::Constructor_TribesState + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00521180 = 0x00521180, + // label: _HoldStrong::Map::Units::TribesState::clearAllTribes // label: clearAllTribes + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005211B0 = 0x005211B0, - // label: reassignOwnerForTribesOfBehaviorType2 + // label: reassignTribeOwnership // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00521210 = 0x00521210, + // label: _HoldStrong::Map::Units::TribesState::swapTribeOwnership // label: swapTribeOwnership + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00521240 = 0x00521240, - // label: moveUnitToBehaviorTarget + // label: _HoldStrong::Map::Units::TribesState::meth_0x521280 + // label: assignTribeUnitTarget + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00521280 = 0x00521280, - // label: predictUnitInterceptPosition + // label: _HoldStrong::Map::Units::TribesState::calculatePathPlanToUnitUnk + // label: projectPursuitInterceptAlongPathPlan + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00521500 = 0x00521500, // type: function SHC_3BB0A8C1_0x00521690 = 0x00521690, - // label: getMajoritySelectedUnitType + // label: getMostCommonSelectedUnitType // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00521720 = 0x00521720, - // label: playUnitSelectionSound + // label: _HoldStrong::Map::Units::TribesState::meth_0x5217e0 + // label: playSelectedUnitOrderSpeech + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005217E0 = 0x005217E0, @@ -50249,7 +53739,9 @@ enum { SHC_3BB0A8C1_0x00521A8E = 0x00521A8E, // type: /byte SHC_3BB0A8C1_0x00521A8F = 0x00521A8F, - // label: playUnitCombatSpeechForTarget + // label: _HoldStrong::Map::Units::TribesState::somethingTargetUnitSoundRelated + // label: playTribeSelectionSpeech + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00521A90 = 0x00521A90, @@ -50379,11 +53871,15 @@ enum { SHC_3BB0A8C1_0x00521EA5 = 0x00521EA5, // type: /byte SHC_3BB0A8C1_0x00521EA6 = 0x00521EA6, - // label: playUnitSelectSpeech + // label: _HoldStrong::Map::Units::TribesState::meth_0x521eb0 + // label: playUnitOrderSpeech0B + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00521EB0 = 0x00521EB0, - // label: playUnitMoveSpeech + // label: _HoldStrong::Map::Units::TribesState::meth_0x521ef0 + // label: playAttackOrderSpeech + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00521EF0 = 0x00521EF0, @@ -50513,197 +54009,280 @@ enum { SHC_3BB0A8C1_0x00522082 = 0x00522082, // type: /byte SHC_3BB0A8C1_0x00522083 = 0x00522083, - // label: playAttackCommandFeedback + // label: _HoldStrong::Map::Units::TribesState::meth_0x522090 + // label: playSiegeOrEngineerOrderSpeech + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522090 = 0x00522090, - // label: playPatrolCommandSpeech + // label: playUnitOrderSpeech29 // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522110 = 0x00522110, - // label: playTunnelerCommandSpeech + // label: playTunnelerDigSpeech // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522150 = 0x00522150, - // label: playWorkCommandSpeech + // label: _HoldStrong::Map::Units::TribesState::meth_0x522160 + // label: playUnitOrderSpeech24 + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522160 = 0x00522160, + // label: _HoldStrong::Map::Units::TribesState::applyTribeBehaviorType // label: applyTribeBehaviorType + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005221A0 = 0x005221A0, // type: function SHC_3BB0A8C1_0x005221C0 = 0x005221C0, - // label: updatePeasantSeatingAtBuilding + // label: selectPeasantsAtBuilding // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522210 = 0x00522210, // type: function SHC_3BB0A8C1_0x005222B0 = 0x005222B0, + // label: _HoldStrong::Map::Units::TribesState::tribeCorrespondsWithUID // label: tribeCorrespondsWithUID + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522360 = 0x00522360, + // label: _HoldStrong::Map::Units::TribesState::getUnitIDForIndexInTribe // label: getUnitIDForIndexInTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522390 = 0x00522390, + // label: _HoldStrong::Map::Units::TribesState::getSpecificUnitFromTribe // label: getSpecificUnitFromTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522410 = 0x00522410, + // label: _HoldStrong::Map::Units::TribesState::setWhetherTribeContainsAnyUnits // label: setWhetherTribeContainsAnyUnits + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005224E0 = 0x005224E0, + // label: _HoldStrong::Map::Units::TribesState::addUnitToSelected // label: addUnitToSelected + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522520 = 0x00522520, + // label: _HoldStrong::Map::Units::TribesState::unitIsSelectedByPlayer // label: unitIsSelectedByPlayer + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522550 = 0x00522550, + // label: _HoldStrong::Map::Units::TribesState::addUnitToTribe // label: addUnitToTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522590 = 0x00522590, + // label: _HoldStrong::Map::Units::TribesState::removeUnitFromThisTribeIfInTribe // label: removeUnitFromThisTribeIfInTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522630 = 0x00522630, + // label: _HoldStrong::Map::Units::TribesState::getAvailableTribeID // label: getAvailableTribeID + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522720 = 0x00522720, + // label: _HoldStrong::Map::Units::TribesState::createTribeForPlayer // label: createTribeForPlayer + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005227E0 = 0x005227E0, + // label: _HoldStrong::Map::Units::TribesState::createTribe // label: createTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522890 = 0x00522890, + // label: _HoldStrong::Map::Units::TribesState::createPlayerTribe // label: createPlayerTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522950 = 0x00522950, + // label: _HoldStrong::Map::Units::TribesState::addUnitsToTribeAndComputeMovementSpeed // label: addUnitsToTribeAndComputeMovementSpeed + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005229C0 = 0x005229C0, + // label: _HoldStrong::Map::Units::TribesState::addUnitToTribeAndUpdateTribeMovementSpeed // label: addUnitToTribeAndUpdateTribeMovementSpeed + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522B00 = 0x00522B00, + // label: _HoldStrong::Map::Units::TribesState::clearTribe // label: clearTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522BC0 = 0x00522BC0, + // label: _HoldStrong::Map::Units::TribesState::queueUnitStance // label: queueUnitStance + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522BF0 = 0x00522BF0, + // label: _HoldStrong::Map::Units::TribesState::setUnitStance // label: setUnitStance + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522C20 = 0x00522C20, + // label: _HoldStrong::Map::Units::TribesState::addRallyPoint // label: addRallyPoint + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522C50 = 0x00522C50, - // label: snapshotSelectionTribeAndComputeStance + // label: + // _HoldStrong::Map::Units::TribesState::temporarilyStoreTribeIfAllNewlySelectedUnitsPartOfThisTribe_And_AlwaysRememberStance + // label: temporarilyStoreTribeIfAllNewlySelectedUnitsPartOfThisTribe_And_AlwaysRememberStance + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522CA0 = 0x00522CA0, + // label: _HoldStrong::Map::Units::TribesState::importStoredInfoFromSlot0 // label: importStoredInfoFromSlot0 + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522DD0 = 0x00522DD0, - // label: trimTribeToSize + // label: _HoldStrong::Map::Units::TribesState::meth_0x522ef0 + // label: shrinkTribeToSize + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522EF0 = 0x00522EF0, - // label: spawnUnitsForAITribe + // label: spawnUnitsForTribe // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00522F70 = 0x00522F70, + // label: _HoldStrong::Map::Units::TribesState::spawnUnitsIntoNewTribe // label: spawnUnitsIntoNewTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523030 = 0x00523030, - // label: createTribeWithSpawnedUnit + // label: _HoldStrong::Map::Units::TribesState::meth_0x523190 + // label: createTribeWithSpawn + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523190 = 0x00523190, + // label: _HoldStrong::Map::Units::TribesState::spawnUnitsAroundLocation // label: spawnUnitsAroundLocation + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523240 = 0x00523240, - // label: ClearAnimalSpawnLocationsUnk + // label: _HoldStrong::Global::ClearAnimalSpawnLocationsUnk + // label: clearAnimalSpawnLocations + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x005232E0 = 0x005232E0, // type: function SHC_3BB0A8C1_0x005232F0 = 0x005232F0, + // label: _HoldStrong::Map::Units::TribesState::storeDeerXAndYinMapInfo // label: storeDeerXAndYinMapInfo + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523340 = 0x00523340, + // label: _HoldStrong::Map::Units::TribesState::storeLionXAndYInMapInfo // label: storeLionXAndYInMapInfo + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523370 = 0x00523370, + // label: _HoldStrong::Map::Units::TribesState::setRabbitSpawnXY // label: setRabbitSpawnXY + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005233A0 = 0x005233A0, + // label: _HoldStrong::Map::Units::TribesState::setCamelSpawnXY // label: setCamelSpawnXY + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005233E0 = 0x005233E0, - // label: findRecentOrSignpostSpawnLocation + // label: findAiSpawnPoint // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523410 = 0x00523410, - // label: hasAvailableSpawnSlotForWildlifeOrMercs + // label: hasRabbitOrMercSpawnAvailable // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523520 = 0x00523520, - // label: updateAnimalHerdBehaviorState + // label: _HoldStrong::Map::Units::TribesState::meth_0x523590 + // label: updateTribeAnimalScatter + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523590 = 0x00523590, + // label: _HoldStrong::Map::Units::TribesState::getNonDyingUnit // label: getNonDyingUnit + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523630 = 0x00523630, + // label: _HoldStrong::Map::Units::TribesState::countDeerEfficiently // label: countDeerEfficiently + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005236A0 = 0x005236A0, - // label: markTribeAsAnimalTribe + // label: _HoldStrong::Map::Units::TribesState::meth_0x523730 + // label: markTribeAsAnimal + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523730 = 0x00523730, + // label: _HoldStrong::Map::Units::TribesState::meth_0x523750 // label: flagTribesOfType + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523750 = 0x00523750, - // label: consumeFlaggedTribesOfType + // label: _HoldStrong::Map::Units::TribesState::meth_0x523790 + // label: updateNTribesOfType + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523790 = 0x00523790, + // label: _HoldStrong::Map::Units::TribesState::aiAssignNewUnitToTribe // label: aiAssignNewUnitToTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005237F0 = 0x005237F0, - // label: scatterTribeUnitsRandomly + // label: _HoldStrong::Map::Units::TribesState::meth_0x523920 + // label: disperseTribeToArea + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523920 = 0x00523920, + // label: _HoldStrong::Map::Units::TribesState::drawFlagsAndUnitDestinations // label: drawFlagsAndUnitDestinations + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523A30 = 0x00523A30, @@ -50713,63 +54292,93 @@ enum { // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x00523E00 = 0x00523E00, - // label: UpgradeMapTribesStateVersionTo_Unknown1 + // label: _HoldStrong::Map::Version::UpgradeMapTribesStateVersionTo_Unknown1 + // label: upgradeMapInitTribeRallyFields + // location: // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x00523E30 = 0x00523E30, - // label: UpgradeMapTribesStateVersionTo_Unknown2 + // label: _HoldStrong::Map::Version::UpgradeMapTribesStateVersionTo_Unknown2 + // label: upgradeMapRefreshTribeHasUnits + // location: // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x00523EB0 = 0x00523EB0, - // label: upgradeTribeArrayLayoutForMapVersion + // label: _HoldStrong::Map::Units::TribesState::meth_0x523ef0 + // label: migrateTribesForMapVersion + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523EF0 = 0x00523EF0, + // label: _HoldStrong::Map::Units::TribesState::meth_0x523f70 // label: updateTribeRallyFlags + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00523F70 = 0x00523F70, + // label: _HoldStrong::Map::Units::TribesState::unsetRallyRelatedFlagOnUnits // label: unsetRallyRelatedFlagOnUnits + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524000 = 0x00524000, + // label: _HoldStrong::Map::Units::TribesState::isTribeAllAssassins // label: isTribeAllAssassins + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524060 = 0x00524060, + // label: _HoldStrong::Map::Units::TribesState::getFirstUnitInTribeThatIsOnXTerrain // label: getFirstUnitInTribeThatIsOnXTerrain + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005240D0 = 0x005240D0, - // label: tribeHasActiveLaddermanUnit + // label: _HoldStrong::Map::Units::TribesState::meth_0x524140 + // label: tribeHasDeployedLadder + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524140 = 0x00524140, + // label: _HoldStrong::Map::Units::TribesState::tribeContainsUnitThatCanClimb // label: tribeContainsUnitThatCanClimb + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005241C0 = 0x005241C0, + // label: _HoldStrong::Map::Units::TribesState::selectionContainsHorses // label: selectionContainsHorses + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524230 = 0x00524230, + // label: _HoldStrong::Map::Units::TribesState::getMajorityArcherTypeEuropeanOrArabian // label: getMajorityArcherTypeEuropeanOrArabian + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005242B0 = 0x005242B0, + // label: _HoldStrong::Map::Units::TribesState::applyMoveCommandOrRallyCommandToTribe // label: applyMoveCommandOrRallyCommandToTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524340 = 0x00524340, - // label: assignAttackTargetsForTribe + // label: _HoldStrong::Map::Units::TribesState::aiAttackWaveUnk + // label: commandTribeAttackWave + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005244D0 = 0x005244D0, - // label: stopTribeMovementAndCheckIdle + // label: _HoldStrong::Map::Units::TribesState::meth_0x524890 + // label: stopTribeUnitsMoving + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524890 = 0x00524890, - // label: sortTribePathDestinationsByCost + // label: _HoldStrong::Map::Units::TribesState::meth_0x524930 + // label: buildTribeDestinationQueue + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524930 = 0x00524930, @@ -50779,119 +54388,173 @@ enum { SHC_3BB0A8C1_0x00524A10 = 0x00524A10, // type: function SHC_3BB0A8C1_0x00524A30 = 0x00524A30, - // label: isTribeUnitBlockedByOtherUnit + // label: _HoldStrong::Map::Units::TribesState::meth_0x524b30 + // label: isTribeUnitBlocked + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524B30 = 0x00524B30, + // label: _HoldStrong::Map::Units::TribesState::getTribeAliveStatus // label: getTribeAliveStatus + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524BF0 = 0x00524BF0, - // label: isTribePathToDestinationClear + // label: _HoldStrong::Map::Units::TribesState::meth_0x524ca0 + // label: canTribeReachAreaUnobstructed + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524CA0 = 0x00524CA0, // type: function SHC_3BB0A8C1_0x00524D80 = 0x00524D80, - // label: applyLadderDestructionToTribeUnits + // label: _HoldStrong::Map::Units::TribesState::meth_0x524e20 + // label: commandTribeClimbLadders + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524E20 = 0x00524E20, + // label: _HoldStrong::Map::Units::TribesState::applyUnitTopSpeedDelayBasedOnTribeSize // label: applyUnitTopSpeedDelayBasedOnTribeSize + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00524EF0 = 0x00524EF0, // type: function SHC_3BB0A8C1_0x00525060 = 0x00525060, - // label: playArcherCommandSpeech + // label: playArcherOrderSpeech // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525090 = 0x00525090, + // label: _HoldStrong::Map::Units::TribesState::anyUnitsOfTribeAreOutsideCoverageOfPathFindingAlg // label: anyUnitsOfTribeAreOutsideCoverageOfPathFindingAlg + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005250B0 = 0x005250B0, + // label: _HoldStrong::Map::Units::TribesState::applyMovementDistanceToUnitsInTribe // label: applyMovementDistanceToUnitsInTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525130 = 0x00525130, + // label: _HoldStrong::Map::Units::TribesState::applyMovementDistanceToUnitsInTribeBasedOnUnitNumberInTribe // label: applyMovementDistanceToUnitsInTribeBasedOnUnitNumberInTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005251A0 = 0x005251A0, - // label: isTribeFreeOfTunnelingUnits + // label: _HoldStrong::Map::Units::TribesState::meth_0x525210 + // label: tribeHasNoFinishedTunneler + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525210 = 0x00525210, + // label: _HoldStrong::Map::Units::TribesState::setTargetUnitForTribe // label: setTargetUnitForTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525280 = 0x00525280, - // label: setStateForAllTribeUnits + // label: _HoldStrong::Map::Units::TribesState::meth_0x525300 + // label: setTribeUnitsState + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525300 = 0x00525300, - // label: standUpAllTribeUnits + // label: _HoldStrong::Map::Units::TribesState::meth_0x525370 + // label: resetTribeUnitsToIdle + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525370 = 0x00525370, + // label: _HoldStrong::Map::Units::TribesState::allUnitsReachedTheirDestination // label: allUnitsReachedTheirDestination + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005253F0 = 0x005253F0, - // label: removeAllTribeUnits + // label: _HoldStrong::Map::Units::TribesState::makeUnitsDisappearUnk + // label: makeTribeUnitsDisappear + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525470 = 0x00525470, + // label: _HoldStrong::Map::Units::TribesState::addUnitToNewTribe // label: addUnitToNewTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005254C0 = 0x005254C0, + // label: _HoldStrong::Map::Units::TribesState::removeSelectedUnitsFromTheirCurrentTribes // label: removeSelectedUnitsFromTheirCurrentTribes + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525790 = 0x00525790, + // label: _HoldStrong::Map::Units::TribesState::clearTribesOfUnitType // label: clearTribesOfUnitType + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525870 = 0x00525870, + // label: _HoldStrong::Map::Units::TribesState::clearTribesNotOfUnitType // label: clearTribesNotOfUnitType + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525970 = 0x00525970, + // label: _HoldStrong::Map::Units::TribesState::removeUnitFromTribe // label: removeUnitFromTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525A70 = 0x00525A70, + // label: _HoldStrong::Map::Units::TribesState::popUnitFromTribe // label: popUnitFromTribe + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525B70 = 0x00525B70, + // label: _HoldStrong::Map::Units::TribesState::createAnimal // label: createAnimal + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525BA0 = 0x00525BA0, + // label: _HoldStrong::Map::Units::TribesState::spawnDeerLionOrRabbit // label: spawnDeerLionOrRabbit + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00525F20 = 0x00525F20, - // label: trySpawnAdditionalWildlifeForTribe + // label: _HoldStrong::Map::Units::TribesState::meth_0x5260b0 + // label: maybeSpawnTribeAnimal + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005260B0 = 0x005260B0, + // label: _HoldStrong::Map::Units::TribesState::respawnDeer // label: respawnDeer + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005261B0 = 0x005261B0, - // label: spawnWildlifeOrMercAtAvailableSlot + // label: _HoldStrong::Map::Units::TribesState::meth_0x5262a0 + // label: spawnRabbitAtValidPoint + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005262A0 = 0x005262A0, + // label: _HoldStrong::Map::Units::TribesState::upgradeMapTribesState // label: upgradeMapTribesState + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00526370 = 0x00526370, + // label: _HoldStrong::Map::Units::TribesState::giveTribeMoveInstruction // label: giveTribeMoveInstruction + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005263A0 = 0x005263A0, @@ -50899,19 +54562,27 @@ enum { SHC_3BB0A8C1_0x005266F0 = 0x005266F0, // type: function SHC_3BB0A8C1_0x00526D50 = 0x00526D50, + // label: _HoldStrong::Map::Units::TribesState::commandUnitsToLocation // label: commandUnitsToLocation + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00526F00 = 0x00526F00, + // label: _HoldStrong::Map::Units::TribesState::computeTribePercentages // label: computeTribePercentages + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x005270F0 = 0x005270F0, + // label: _HoldStrong::Map::Units::TribesState::updateTribeUnitAssignments // label: updateTribeUnitAssignments + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00527330 = 0x00527330, - // label: spawnQueuedReinforcementWaves + // label: _HoldStrong::Map::Units::TribesState::siegeThatRelatedUnk + // label: spawnScenarioAttackWaves + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00527440 = 0x00527440, @@ -51025,7 +54696,9 @@ enum { SHC_3BB0A8C1_0x00527C74 = 0x00527C74, // type: /undefined *32 SHC_3BB0A8C1_0x00527C78 = 0x00527C78, + // label: _HoldStrong::Map::Units::TribesState::giveTribeAnInstruction // label: giveTribeAnInstruction + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x00527C80 = 0x00527C80, @@ -52817,15 +56490,21 @@ enum { SHC_3BB0A8C1_0x0052A637 = 0x0052A637, // type: /byte SHC_3BB0A8C1_0x0052A638 = 0x0052A638, - // label: moveTribeToNearbyClearTile + // label: _HoldStrong::Map::Units::TribesState::meth_0x52a640 + // label: scatterTribeToReachableSpot + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x0052A640 = 0x0052A640, - // label: moveTribeToIndexedNearbyTile + // label: _HoldStrong::Map::Units::TribesState::meth_0x52a700 + // label: moveTribeToScatterSpot + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x0052A700 = 0x0052A700, - // label: updateTribeCombatStanceBehavior + // label: _HoldStrong::Map::Units::TribesState::unitAttackBuildingOrOtherUnitBasedOnStanceUnk + // label: updateTribeAttackBehaviour + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x0052A7D0 = 0x0052A7D0, @@ -53089,23 +56768,33 @@ enum { SHC_3BB0A8C1_0x0052AD41 = 0x0052AD41, // type: /byte SHC_3BB0A8C1_0x0052AD42 = 0x0052AD42, + // label: _HoldStrong::Map::Units::TribesState::processDeerMoving // label: processDeerMoving + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x0052AD50 = 0x0052AD50, - // label: updateLionWolfTribeBehavior + // label: _HoldStrong::Map::Units::TribesState::meth_0x52b110 + // label: updatePredatorTribeAI + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x0052B110 = 0x0052B110, - // label: updateRabbitTribeBehavior + // label: _HoldStrong::Map::Units::TribesState::meth_0x52b390 + // label: updateRabbitTribeAI + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x0052B390 = 0x0052B390, - // label: updateCamelTribeBehavior + // label: _HoldStrong::Map::Units::TribesState::meth_0x52b630 + // label: updateCamelTribeAI + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x0052B630 = 0x0052B630, + // label: _HoldStrong::Map::Units::TribesState::updateTribes // label: updateTribes + // location: // location: OpenSHC/Map/Units/TribesState // type: function SHC_3BB0A8C1_0x0052B860 = 0x0052B860, @@ -53191,11 +56880,15 @@ enum { SHC_3BB0A8C1_0x0052B9E4 = 0x0052B9E4, // type: /pointer SHC_3BB0A8C1_0x0052B9E8 = 0x0052B9E8, + // label: _HoldStrong::Map::WildlifeState::clearWildlifeState // label: clearWildlifeState + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052B9F0 = 0x0052B9F0, + // label: _HoldStrong::Map::WildlifeState::updateWildlifeGrid // label: updateWildlifeGrid + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052BA10 = 0x0052BA10, @@ -53203,23 +56896,31 @@ enum { SHC_3BB0A8C1_0x0052BB40 = 0x0052BB40, // type: function SHC_3BB0A8C1_0x0052BEA0 = 0x0052BEA0, + // label: _HoldStrong::Map::WildlifeState::renderDebugDataMapData // label: renderDebugDataMapData + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052BF40 = 0x0052BF40, - // label: floodFillField13FromCell + // label: _HoldStrong::Map::WildlifeState::meth_0x52c570 + // label: floodFillWildlifeDangerField + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052C570 = 0x0052C570, // type: function SHC_3BB0A8C1_0x0052C5D0 = 0x0052C5D0, - // label: floodFillField20FromCell + // label: _HoldStrong::Map::WildlifeState::meth_0x52c810 + // label: floodFillWildlifeGrazingField + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052C810 = 0x0052C810, // type: function SHC_3BB0A8C1_0x0052C870 = 0x0052C870, + // label: _HoldStrong::Map::WildlifeState::findAndSetNewRallyPointForDeerAndLions // label: findAndSetNewRallyPointForDeerAndLions + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052CAB0 = 0x0052CAB0, @@ -53229,7 +56930,9 @@ enum { SHC_3BB0A8C1_0x0052CD40 = 0x0052CD40, // type: function SHC_3BB0A8C1_0x0052CD60 = 0x0052CD60, - // label: buildRallyPointPathForTribe + // label: _HoldStrong::Map::WildlifeState::meth_0x52cfe0 + // label: buildWildlifeGrazingPath + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052CFE0 = 0x0052CFE0, @@ -53241,21 +56944,29 @@ enum { SHC_3BB0A8C1_0x0052D100 = 0x0052D100, // type: function SHC_3BB0A8C1_0x0052D3C0 = 0x0052D3C0, - // label: hasAdjacentCellWithField24Or25 + // label: _HoldStrong::Map::WildlifeState::meth_0x52d620 + // label: hasAdjacentWildlifeMarker + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052D620 = 0x0052D620, - // label: isSuitableWildlifeSpawnCell + // label: _HoldStrong::Map::WildlifeState::meth_0x52d690 + // label: isGoodGrazingCell + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052D690 = 0x0052D690, - // label: floodFillUnknownNonZero01FromCell + // label: _HoldStrong::Map::WildlifeState::meth_0x52d720 + // label: floodFillWildlifeClaimField + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052D720 = 0x0052D720, // type: function SHC_3BB0A8C1_0x0052D780 = 0x0052D780, - // label: floodFillCasDisFromSignpost + // label: _HoldStrong::Map::WildlifeState::meth_0x52d9d0 + // label: mapWildlifeFromAttackSignpost + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052D9D0 = 0x0052D9D0, @@ -53263,7 +56974,9 @@ enum { SHC_3BB0A8C1_0x0052DA40 = 0x0052DA40, // type: function SHC_3BB0A8C1_0x0052DAA0 = 0x0052DAA0, - // label: getDistanceToNearestUnknownNonZero01FromSignpost + // label: _HoldStrong::Map::WildlifeState::meth_0x52dd20 + // label: distanceFromSignpostToClaimedCell + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052DD20 = 0x0052DD20, @@ -53272,10 +56985,14 @@ enum { // type: function SHC_3BB0A8C1_0x0052DDF0 = 0x0052DDF0, // label: Constructor_WildlifeState + // label: _HoldStrong::Map::WildlifeState::Constructor_WildlifeState + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052DF10 = 0x0052DF10, + // label: _HoldStrong::Map::WildlifeState::updateWildlife // label: updateWildlife + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052DF30 = 0x0052DF30, @@ -53283,159 +57000,225 @@ enum { SHC_3BB0A8C1_0x0052DF50 = 0x0052DF50, // type: function SHC_3BB0A8C1_0x0052DF60 = 0x0052DF60, + // label: _HoldStrong::Map::WildlifeState::updateSection1034Info // label: updateSection1034Info + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052E020 = 0x0052E020, + // label: _HoldStrong::Map::WildlifeState::updateNofFpoints // label: updateNofFpoints + // location: // location: OpenSHC/Map/WildlifeState // type: function SHC_3BB0A8C1_0x0052E120 = 0x0052E120, // type: function SHC_3BB0A8C1_0x0052E1A0 = 0x0052E1A0, + // label: _HoldStrong::Map::Units::UnitsState::clearAllUnits // label: clearAllUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052E7B0 = 0x0052E7B0, + // label: _HoldStrong::Map::Units::UnitsState::assignPeasantToBuilding // label: assignPeasantToBuilding + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052E830 = 0x0052E830, + // label: _HoldStrong::Map::Units::UnitsState::euroRecruit // label: euroRecruit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052E960 = 0x0052E960, + // label: _HoldStrong::Map::Units::UnitsState::nonEuroRecruit // label: nonEuroRecruit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052EC10 = 0x0052EC10, + // label: _HoldStrong::Map::Units::UnitsState::disbandUnit // label: disbandUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052EDC0 = 0x0052EDC0, + // label: _HoldStrong::Map::Units::UnitsState::assignNameToUnit // label: assignNameToUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052EED0 = 0x0052EED0, + // label: _HoldStrong::Map::Units::UnitsState::removeUnitFromItsTribe // label: removeUnitFromItsTribe + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F010 = 0x0052F010, + // label: _HoldStrong::Map::Units::UnitsState::makeUnitStopWalkingByClearingPathProgressState // label: makeUnitStopWalkingByClearingPathProgressState + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F070 = 0x0052F070, + // label: _HoldStrong::Map::Units::UnitsState::checkUnitHasPropertyBasedOnUnitType // label: checkUnitHasPropertyBasedOnUnitType + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F0A0 = 0x0052F0A0, + // label: _HoldStrong::Map::Units::UnitsState::recomputeUnitStandingHeight // label: recomputeUnitStandingHeight + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F0D0 = 0x0052F0D0, + // label: _HoldStrong::Map::Units::UnitsState::setMoveDelayForUnitsOnSameTiles // label: setMoveDelayForUnitsOnSameTiles + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F260 = 0x0052F260, + // label: _HoldStrong::Map::Units::UnitsState::setupUnitSharingTileIDs // label: setupUnitSharingTileIDs + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F440 = 0x0052F440, // type: function SHC_3BB0A8C1_0x0052F4A0 = 0x0052F4A0, - // label: isUnitRegisteredOnItsOwnTile + // label: _HoldStrong::Map::Units::UnitsState::meth_0x52f4e0 + // label: isUnitLinkedOnTile + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F4E0 = 0x0052F4E0, + // label: _HoldStrong::Map::Units::UnitsState::ifAnyUnitOnSameTileIsLadder // label: ifAnyUnitOnSameTileIsLadder + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F550 = 0x0052F550, // type: function SHC_3BB0A8C1_0x0052F570 = 0x0052F570, + // label: _HoldStrong::Map::Units::UnitsState::ifAnyUnitOnSameTileIsLadderInRightDirection // label: ifAnyUnitOnSameTileIsLadderInRightDirection + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F5B0 = 0x0052F5B0, - // label: triggerDesyncIfTileUnitLinkageInvalid + // label: detectTileUnitDesync // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F680 = 0x0052F680, // type: function SHC_3BB0A8C1_0x0052F6C0 = 0x0052F6C0, + // label: _HoldStrong::Map::Units::UnitsState::removeUnitsSameTileLinkageIfNoLongerApplicable // label: removeUnitsSameTileLinkageIfNoLongerApplicable + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F730 = 0x0052F730, + // label: _HoldStrong::Map::Units::UnitsState::calculateUnitMovementSpeed // label: calculateUnitMovementSpeed + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052F7E0 = 0x0052F7E0, - // label: standUpIfSeated + // label: _HoldStrong::Map::Units::UnitsState::meth_0x52fbb0 + // label: makeSeatedUnitStand + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052FBB0 = 0x0052FBB0, - // label: sitDownIfStanding + // label: _HoldStrong::Map::Units::UnitsState::meth_0x52fbf0 + // label: makeUnitSit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052FBF0 = 0x0052FBF0, - // label: setFacingDirectionTowardUnit + // label: _HoldStrong::Map::Units::UnitsState::meth_0x52fc30 + // label: setUnitFacingTowardUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052FC30 = 0x0052FC30, - // label: setFacingDirectionTowardCoords + // label: _HoldStrong::Map::Units::UnitsState::meth_0x52fca0 + // label: setUnitFacingTowardPoint + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052FCA0 = 0x0052FCA0, + // label: _HoldStrong::Map::Units::UnitsState::setUnitFacingDirectionTowardsTarget // label: setUnitFacingDirectionTowardsTarget + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052FD00 = 0x0052FD00, - // label: setFacingDirectionTowardUnitMicro + // label: orientUnitTowardUnit // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052FE00 = 0x0052FE00, + // label: _HoldStrong::Map::Units::UnitsState::setUnitFacingDirectionForTargetXandY // label: setUnitFacingDirectionForTargetXandY + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052FE90 = 0x0052FE90, + // label: _HoldStrong::Map::Units::UnitsState::setUnitFacingDirectionBasedOnBuilding // label: setUnitFacingDirectionBasedOnBuilding + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0052FF80 = 0x0052FF80, - // label: isComputerManagedNonPeasant + // label: isUnitComputerManaged // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00530080 = 0x00530080, + // label: _HoldStrong::Map::Units::UnitsState::playHurtSFXForUnit // label: playHurtSFXForUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005300B0 = 0x005300B0, - // label: countLivingNondyingUnitsForPlayer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5301f0 + // label: countAlivePlayerUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005301F0 = 0x005301F0, // type: function SHC_3BB0A8C1_0x00530210 = 0x00530210, - // label: triggerStoneTowerDeathForPlayer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x530240 + // label: killPlayerTowerUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00530240 = 0x00530240, + // label: _HoldStrong::Map::Units::UnitsState::killAllUnownedUnits // label: killAllUnownedUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005302B0 = 0x005302B0, - // label: triggerDeathAnimationForAllWildlife + // label: _HoldStrong::Map::Units::UnitsState::meth_0x530310 + // label: removeWildlifeAnimals + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00530310 = 0x00530310, + // label: _HoldStrong::Map::Units::UnitsState::killUnits // label: killUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00530390 = 0x00530390, // type: function SHC_3BB0A8C1_0x005303B0 = 0x005303B0, - // label: transferNonCourtUnitsToPlayer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x530400 + // label: reassignFarmAnimals + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00530400 = 0x00530400, @@ -53559,7 +57342,9 @@ enum { SHC_3BB0A8C1_0x005304F4 = 0x005304F4, // type: /byte SHC_3BB0A8C1_0x005304F5 = 0x005304F5, + // label: _HoldStrong::Map::Units::UnitsState::makeCourtMemberUnitsDisappearAndSwapAllOtherUnitsOwnership // label: makeCourtMemberUnitsDisappearAndSwapAllOtherUnitsOwnership + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00530500 = 0x00530500, @@ -53683,7 +57468,9 @@ enum { SHC_3BB0A8C1_0x00530648 = 0x00530648, // type: /byte SHC_3BB0A8C1_0x00530649 = 0x00530649, + // label: _HoldStrong::Map::Units::UnitsState::makeUnitsDisappearThatCannotReachTheKeep // label: makeUnitsDisappearThatCannotReachTheKeep + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00530650 = 0x00530650, @@ -53701,11 +57488,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x005307B0 = 0x005307B0, + // label: _HoldStrong::Map::Units::UnitsState::setRandomNumberOnCows // label: setRandomNumberOnCows + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00530880 = 0x00530880, + // label: _HoldStrong::Map::Units::UnitsState::setMissionNumberSpecificLord // label: setMissionNumberSpecificLord + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005308F0 = 0x005308F0, @@ -53719,11 +57510,15 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00530A90 = 0x00530A90, - // label: IncrementAndOptionalUpdateAVValueRelated + // label: _HoldStrong::Global::IncrementAndOptionalUpdateAVValueRelated + // label: incrementWorkTimerAndAverageAV + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00530B40 = 0x00530B40, - // label: ConsiderHavingABreakNowUnk + // label: _HoldStrong::Global::ConsiderHavingABreakNowUnk + // label: checkWorkerTakesRestBreak + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00530C40 = 0x00530C40, @@ -53731,7 +57526,7 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00530CF0 = 0x00530CF0, - // label: CheckUnitProductionPaused + // label: checkUnitField2fe // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00530D50 = 0x00530D50, @@ -53739,31 +57534,43 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00530D70 = 0x00530D70, - // label: WarnIfPlayerLacksGranary + // label: checkPlayerGranaryPeriodicWarning // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00530E00 = 0x00530E00, - // label: TryPlayStockpileIsFullNoiseUnk + // label: _HoldStrong::Global::TryPlayStockpileIsFullNoiseUnk + // label: playStockpileFullWarningSfx + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00530EB0 = 0x00530EB0, - // label: PlaySound_StockpileIsFullMyLordUnk + // label: _HoldStrong::Global::PlaySound_StockpileIsFullMyLordUnk + // label: playArmouryFullWarningVoice + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00530F20 = 0x00530F20, + // label: _HoldStrong::Map::Units::UnitsState::checkIfCitizenUnitIsAliveBasedOnStateUnk // label: checkIfCitizenUnitIsAliveBasedOnState + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00530FD0 = 0x00530FD0, - // label: shouldUnitsEngageInMelee + // label: _HoldStrong::Map::Units::UnitsState::meth_0x531000 + // label: canUnitsEngageEachOther + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00531000 = 0x00531000, // label: ComputeDamageFearFactorBonus + // label: _HoldStrong::Map::Units::UnitsState::ComputeDamageFearFactorBonus + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005311F0 = 0x005311F0, + // label: _HoldStrong::Map::Units::UnitsState::processUnitAttackOtherUnit // label: processUnitAttackOtherUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00531220 = 0x00531220, @@ -54175,7 +57982,9 @@ enum { SHC_3BB0A8C1_0x00531914 = 0x00531914, // type: /byte SHC_3BB0A8C1_0x00531915 = 0x00531915, + // label: _HoldStrong::Map::Units::UnitsState::processEntityDamageToUnit // label: processEntityDamageToUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00531920 = 0x00531920, @@ -54433,7 +58242,9 @@ enum { SHC_3BB0A8C1_0x0053245D = 0x0053245D, // type: /byte SHC_3BB0A8C1_0x0053245E = 0x0053245E, + // label: _HoldStrong::Map::Units::UnitsState::processFireDamageToUnit // label: processFireDamageToUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00532460 = 0x00532460, @@ -54563,7 +58374,9 @@ enum { SHC_3BB0A8C1_0x005326F1 = 0x005326F1, // type: /byte SHC_3BB0A8C1_0x005326F2 = 0x005326F2, + // label: _HoldStrong::Map::Units::UnitsState::shootProjectile // label: shootProjectile + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00532700 = 0x00532700, @@ -54615,10 +58428,15 @@ enum { SHC_3BB0A8C1_0x00532B98 = 0x00532B98, // type: /pointer SHC_3BB0A8C1_0x00532B9C = 0x00532B9C, + // label: _HoldStrong::Map::Units::UnitsState::recomputeTroopValuesForPlayer // label: recomputeTroopValuesForPlayer + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00532BA0 = 0x00532BA0, + // label: CODE_continueToNextUnit + // location: OpenSHC/Map/Units/UnitsState/recomputeTroopValuesForPlayer + SHC_3BB0A8C1_0x00532ED4 = 0x00532ED4, // type: /pointer SHC_3BB0A8C1_0x00532F10 = 0x00532F10, // type: /pointer @@ -54751,21 +58569,27 @@ enum { SHC_3BB0A8C1_0x00532F5D = 0x00532F5D, // type: /byte SHC_3BB0A8C1_0x00532F5E = 0x00532F5E, + // label: _HoldStrong::Map::Units::UnitsState::getArmySize // label: getArmySize + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00532F60 = 0x00532F60, - // label: computeDistanceToNearestEnemyForLegacyMissions + // label: _HoldStrong::Map::Units::UnitsState::distanceComputationForSomeOldCodeForSomeMissions + // label: distanceComputationForSomeOldCodeForSomeMissions + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00532F80 = 0x00532F80, // type: function SHC_3BB0A8C1_0x00533010 = 0x00533010, - // label: returnFalseStub + // label: returnFalse // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533090 = 0x00533090, + // label: _HoldStrong::Map::Units::UnitsState::setRandomShootLocation // label: setRandomShootLocation + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005330A0 = 0x005330A0, @@ -54785,55 +58609,79 @@ enum { SHC_3BB0A8C1_0x0053348C = 0x0053348C, // type: /undefined *32 SHC_3BB0A8C1_0x00533490 = 0x00533490, + // label: _HoldStrong::Map::Units::UnitsState::getRemainingRequiredEngineers // label: getRemainingRequiredEngineers + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005334A0 = 0x005334A0, + // label: _HoldStrong::Map::Units::UnitsState::checkTargetBuildingPossibilityOrState // label: checkTargetBuildingPossibilityOrState + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533580 = 0x00533580, + // label: _HoldStrong::Map::Units::UnitsState::findClosestLaddermanWithLadderPosition // label: findClosestLaddermanWithLadderPosition + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533630 = 0x00533630, - // label: findAndDestroyAdjacentEnemyLadder + // label: _HoldStrong::Map::Units::UnitsState::meth_0x533810 + // label: findAndDestroyAdjacentLadder + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533810 = 0x00533810, + // label: _HoldStrong::Map::Units::UnitsState::getDestination2EqualsGivenCoordinates // label: getDestination2EqualsGivenCoordinates + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533920 = 0x00533920, - // label: isAtSecondaryDestination + // label: _HoldStrong::Map::Units::UnitsState::meth_0x533960 + // label: isUnitAtDestination + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533960 = 0x00533960, - // label: hasUnitReachedDestination + // label: _HoldStrong::Map::Units::UnitsState::unitReachedDestinationUnk + // label: unitReachedDestination + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005339A0 = 0x005339A0, - // label: hasTunnelerNotFinishedDigging + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5339f0 + // label: isTunnelerNotFinished + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005339F0 = 0x005339F0, - // label: computeLadderClimbPath + // label: _HoldStrong::Map::Units::UnitsState::ladderClimbRelatedUnk + // label: commitUnitLadderClimbPath + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533A10 = 0x00533A10, + // label: _HoldStrong::Map::Units::UnitsState::changeDestinationByAmount // label: changeDestinationByAmount + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533B30 = 0x00533B30, + // label: _HoldStrong::Map::Units::UnitsState::changeDestinationByLeftover // label: changeDestinationByLeftover + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533C70 = 0x00533C70, + // label: _HoldStrong::Map::Units::UnitsState::tracePathFromLadderExitSetDestination // label: tracePathFromLadderExitSetDestination + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533CA0 = 0x00533CA0, - // label: updateUnitFadeAndVisibilityNearStructures + // label: updateUnitFadeBehindStructures // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533D50 = 0x00533D50, @@ -54919,15 +58767,21 @@ enum { SHC_3BB0A8C1_0x00533F84 = 0x00533F84, // type: /byte SHC_3BB0A8C1_0x00533F85 = 0x00533F85, - // label: saveUnitStateBeforeInterruption + // label: _HoldStrong::Map::Units::UnitsState::meth_0x533f90 + // label: markTunnelerFinishedDigging + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533F90 = 0x00533F90, - // label: despawnUnreachableUnit + // label: _HoldStrong::Map::Units::UnitsState::meth_0x533fc0 + // label: removeTrappedWallUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00533FC0 = 0x00533FC0, + // label: _HoldStrong::Map::Units::UnitsState::updateMicroPosition // label: updateMicroPosition + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00534030 = 0x00534030, @@ -54945,51 +58799,74 @@ enum { SHC_3BB0A8C1_0x005340E0 = 0x005340E0, // type: /pointer SHC_3BB0A8C1_0x005340E4 = 0x005340E4, + // label: + // _HoldStrong::Map::Units::UnitsState::adjustUnitMapOrientationRelatedPositionBasedOnMapOrientationCorrectedFacingDirection // label: adjustUnitMapOrientationRelatedPositionBasedOnMapOrientationCorrectedFacingDirection + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005340F0 = 0x005340F0, - // label: applyTunnelDamageAlongPathPlan + // label: _HoldStrong::Map::Units::UnitsState::meth_0x534130 + // label: digTunnelAlongPath + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00534130 = 0x00534130, + // label: _HoldStrong::Map::Units::UnitsState::stopUnitIfNextToTarget // label: stopUnitIfNextToTarget + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00534240 = 0x00534240, - // label: isWorkplaceBuildingOnAdjacentTile + // label: _HoldStrong::Map::Units::UnitsState::meth_0x534380 + // label: isUnitAdjacentToWorkplace + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00534380 = 0x00534380, // type: function SHC_3BB0A8C1_0x005343C0 = 0x005343C0, + // label: _HoldStrong::Map::Units::UnitsState::setWorkplaceBuildingEntryAsTarget // label: setWorkplaceBuildingEntryAsTarget + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005343F0 = 0x005343F0, + // label: _HoldStrong::Map::Units::UnitsState::unitIsInMoat // label: unitIsInMoat + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00534460 = 0x00534460, - // label: stampOccupancyFlagOnSurroundingTiles + // label: _HoldStrong::Map::Units::UnitsState::meth_0x534490 + // label: markUnitTileOccupancy + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00534490 = 0x00534490, + // label: _HoldStrong::Map::Units::UnitsState::writeSixToTileMap1104InAllDirections // label: writeSixToTileMap1104InAllDirections + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00534520 = 0x00534520, - // label: findEligibleUnitByTimeAndLocation + // label: _HoldStrong::Map::Units::UnitsState::getUnitThatFulfillsSomeTimebasedAndLocationBasedCriteria + // label: getUnitThatFulfillsSomeTimebasedAndLocationBasedCriteria + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005345A0 = 0x005345A0, // type: function SHC_3BB0A8C1_0x005345D0 = 0x005345D0, + // label: _HoldStrong::Map::Units::UnitsState::selectNewBlessingTarget // label: selectNewBlessingTarget + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005346D0 = 0x005346D0, - // label: applyDragBoxSelectionByPriority + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5347e0 + // label: selectUnitsInDragBox + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005347E0 = 0x005347E0, @@ -55015,39 +58892,55 @@ enum { SHC_3BB0A8C1_0x00534D08 = 0x00534D08, // type: /pointer SHC_3BB0A8C1_0x00534D0C = 0x00534D0C, - // label: selectUnitsInDragBoxForCurrentPlayer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x534d10 + // label: selectOwnUnitsInDragBox + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00534D10 = 0x00534D10, // type: function SHC_3BB0A8C1_0x00534D80 = 0x00534D80, - // label: selectFirstUnitInDragBoxAnyPlayer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x534ee0 + // label: selectSingleUnitInDragBox + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00534EE0 = 0x00534EE0, // type: function SHC_3BB0A8C1_0x00534F50 = 0x00534F50, - // label: selectAllUnitsOfTypeForPlayer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5350b0 + // label: selectAllUnitsOfType + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005350B0 = 0x005350B0, + // label: _HoldStrong::Map::Units::UnitsState::deselectAllUnitsOneByOne // label: deselectAllUnitsOneByOne + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535150 = 0x00535150, + // label: _HoldStrong::Map::Units::UnitsState::deselectUnit // label: deselectUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535190 = 0x00535190, + // label: _HoldStrong::Map::Units::UnitsState::filterUnitSelectionExcludeUnitType // label: filterUnitSelectionExcludeUnitType + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005351C0 = 0x005351C0, + // label: _HoldStrong::Map::Units::UnitsState::filterUnitSelectionForUnitType // label: filterUnitSelectionForUnitType + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535200 = 0x00535200, + // label: _HoldStrong::Map::Units::UnitsState::recountUnitsInSelection // label: recountUnitsInSelection + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535240 = 0x00535240, @@ -55251,155 +59144,225 @@ enum { SHC_3BB0A8C1_0x00535513 = 0x00535513, // type: /byte SHC_3BB0A8C1_0x00535514 = 0x00535514, - // label: selectionContainsEngineersOnly + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535520 + // label: isSelectionOnlyEngineers + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535520 = 0x00535520, + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535550 // label: selectionHasEngineers + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535550 = 0x00535550, + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535560 // label: selectionHasArchers + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535560 = 0x00535560, - // label: selectionHasMobileAssaultUnits + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535580 + // label: selectionHasAdvancedUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535580 = 0x00535580, - // label: selectionHasMixedAssaultAndInfantry + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5355e0 + // label: selectionHasSiegeAndOther + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005355E0 = 0x005355E0, - // label: getSelectedEngineerCarryingResource + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535680 + // label: findEngineerAtOilSmelter + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535680 = 0x00535680, - // label: selectionContainsTunnelersOnly + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535700 + // label: isSelectionOnlyTunnelers + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535700 = 0x00535700, + // label: _HoldStrong::Map::Units::UnitsState::selectionContainsRangedOnlyUnits // label: selectionContainsRangedOnlyUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535730 = 0x00535730, - // label: selectionContainsLadermenOnly + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5357e0 + // label: isSelectionOnlyLaddermen + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005357E0 = 0x005357E0, + // label: _HoldStrong::Map::Units::UnitsState::selectionContainsOnlyArabAssassins // label: selectionContainsOnlyArabAssassins + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535810 = 0x00535810, - // label: selectionContainsShieldmenOnly + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535840 + // label: isSelectionOnlyShields + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535840 = 0x00535840, - // label: selectionHasShieldOrSiegeMobileUnits + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535870 + // label: selectionHasSiegeCoverAndOther + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535870 = 0x00535870, - // label: selectionHasShieldOrSiegeTower + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5358c0 + // label: selectionHasShieldOrTowerAndOther + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005358C0 = 0x005358C0, + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535910 // label: selectionHasNoRangedUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535910 = 0x00535910, - // label: selectionHasFootSoldiers + // label: _HoldStrong::Map::Units::UnitsState::meth_0x535980 + // label: selectionCanDigMoat + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535980 = 0x00535980, - // label: getSelectedLordIDIfOwnedByCurrentPlayer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5359c0 + // label: getSelectedLordUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005359C0 = 0x005359C0, + // label: _HoldStrong::Map::Units::UnitsState::createUnitSelection // label: createUnitSelection + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535A30 = 0x00535A30, + // label: _HoldStrong::Map::Units::UnitsState::createTribeFromSelectedUnits // label: createTribeFromSelectedUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535B00 = 0x00535B00, + // label: _HoldStrong::Map::Units::UnitsState::playerMakeUnitSelection // label: playerMakeUnitSelection + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535BC0 = 0x00535BC0, - // label: getFirstSelectedUnitID + // label: queueTribeCommand // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535DF0 = 0x00535DF0, - // label: selectSiegeEngineAndPlayFeedback + // label: _HoldStrong::Map::Units::UnitsState::siegeEngineRelated + // label: assignUnitToTribeWithSiegeSpeech + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535E20 = 0x00535E20, + // label: _HoldStrong::Map::Units::UnitsState::makeSelectionBasedOnShortcut // label: makeSelectionBasedOnShortcut + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00535FD0 = 0x00535FD0, + // label: _HoldStrong::Map::Units::UnitsState::isUnitShortcutAvailable // label: isUnitShortcutAvailable + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005360A0 = 0x005360A0, - // label: selectTribeUnitsForPlayer + // label: _HoldStrong::Map::Units::UnitsState::tribeRelated1 + // label: selectAllTribeUnitsForPlayer + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536190 = 0x00536190, + // label: _HoldStrong::Map::Units::UnitsState::getUnitTypeOfFirstSelectedUnit // label: getUnitTypeOfFirstSelectedUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005361F0 = 0x005361F0, - // label: selectionHasMovableNonSiegeUnit + // label: _HoldStrong::Map::Units::UnitsState::meth_0x536260 + // label: selectionHasFieldUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536260 = 0x00536260, // type: function SHC_3BB0A8C1_0x00536280 = 0x00536280, - // label: getFirstSelectedUnitOfEitherType + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5362f0 + // label: findSelectedUnitOfTypes + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005362F0 = 0x005362F0, // type: function SHC_3BB0A8C1_0x00536310 = 0x00536310, - // label: getMaxStoneAmmoInSelectedSiegeEngines + // label: _HoldStrong::Map::Units::UnitsState::meth_0x536370 + // label: getMaxSelectedCatapultAmmo + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536370 = 0x00536370, - // label: countSelectedCatapultsAndTrebuchets + // label: _HoldStrong::Map::Units::UnitsState::meth_0x536400 + // label: countSelectedStoneThrowers + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536400 = 0x00536400, // type: function SHC_3BB0A8C1_0x00536440 = 0x00536440, + // label: _HoldStrong::Map::Units::UnitsState::returnFirstSelectedEngineer // label: returnFirstSelectedEngineer + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005364C0 = 0x005364C0, + // label: _HoldStrong::Map::Units::UnitsState::getTunnelerIDOnlyIfFirstSelected // label: getTunnelerIDOnlyIfFirstSelected + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536530 = 0x00536530, - // label: getFirstSelectedLadderUnitID + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5365a0 + // label: getSelectedLadderUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005365A0 = 0x005365A0, + // label: _HoldStrong::Map::Units::UnitsState::canAUnitClimb // label: canAUnitClimb + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536610 = 0x00536610, // type: function SHC_3BB0A8C1_0x00536630 = 0x00536630, - // label: getFirstSelectedSiegeEngineID + // label: _HoldStrong::Map::Units::UnitsState::meth_0x536690 + // label: getSelectedSiegeEngine + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536690 = 0x00536690, - // label: getFirstSelectedCatapultOrTrebuchetID + // label: _HoldStrong::Map::Units::UnitsState::meth_0x536710 + // label: getSelectedStoneThrower + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536710 = 0x00536710, - // label: isTowerTileOvercrowdedByCurrentPlayer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x536780 + // label: canCaptureTowerAtTile + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536780 = 0x00536780, @@ -55407,11 +59370,15 @@ enum { SHC_3BB0A8C1_0x00536860 = 0x00536860, // type: function SHC_3BB0A8C1_0x005368D0 = 0x005368D0, + // label: _HoldStrong::Map::Units::UnitsState::checkAnySelectedUnitCannotClimb // label: checkAnySelectedUnitCannotClimb + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536970 = 0x00536970, - // label: selectionHasUnmannedSiegeEngine + // label: _HoldStrong::Map::Units::UnitsState::meth_0x5369f0 + // label: canManSiegeEngine + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005369F0 = 0x005369F0, @@ -55463,83 +59430,115 @@ enum { SHC_3BB0A8C1_0x00536A50 = 0x00536A50, // type: /byte SHC_3BB0A8C1_0x00536A51 = 0x00536A51, + // label: _HoldStrong::Map::Units::UnitsState::selectionContainsCombatUnit // label: selectionContainsCombatUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536A60 = 0x00536A60, - // label: queueStopCommand + // label: queueUnitCommand0F // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536C70 = 0x00536C70, - // label: queueUnitTypeCommand + // label: _HoldStrong::Map::Units::UnitsState::queueCommand0xF + // label: queueCommand0xF + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536C90 = 0x00536C90, + // label: _HoldStrong::Map::Units::UnitsState::queueClickNavigateMenuOrEscape // label: queueClickNavigateMenuOrEscape + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536CC0 = 0x00536CC0, - // label: clearOrDeselectUnitFromSelection + // label: _HoldStrong::Map::Units::UnitsState::tribeRelated2 + // label: clearUnitSelectionAndTribe + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536CF0 = 0x00536CF0, // type: function SHC_3BB0A8C1_0x00536DA0 = 0x00536DA0, - // label: clearSelectionCountsAndPlayerIDs + // label: _HoldStrong::Map::Units::UnitsState::meth_0x536de0 + // label: clearSelectionCounts + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536DE0 = 0x00536DE0, // type: function SHC_3BB0A8C1_0x00536E10 = 0x00536E10, + // label: _HoldStrong::Map::Units::UnitsState::giveMoveCommand // label: giveMoveCommand + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00536E30 = 0x00536E30, + // label: _HoldStrong::Map::Units::UnitsState::giveTribeMoveInstructionHumans // label: giveTribeMoveInstructionHumans + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537070 = 0x00537070, + // label: _HoldStrong::Map::Units::UnitsState::extendRallyPoint // label: extendRallyPoint + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005370C0 = 0x005370C0, - // label: queueDisbandAndAttackCommand2Params + // label: queueDisbandAndAttackCommand // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537100 = 0x00537100, - // label: queueDisbandAndAttackCommand3Params + // label: queueDisbandAndAttackUnitsCommand // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537130 = 0x00537130, - // label: queueDisbandAndAttackCommand4Params + // label: _HoldStrong::Map::Units::UnitsState::queueCommand_36d + // label: queueCommand_36d + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537160 = 0x00537160, - // label: queueDisbandAndAttackCommand5Params + // label: _HoldStrong::Map::Units::UnitsState::queueCommand_36_variation2 + // label: queueCommand_36_variation2 + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005371A0 = 0x005371A0, - // label: relayTribeInstruction + // label: _HoldStrong::Map::Units::UnitsState::giveTribeAnInstruction2 + // label: giveTribeAnInstruction2 + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005371E0 = 0x005371E0, + // label: _HoldStrong::Map::Units::UnitsState::findFreeTileNearby // label: findFreeTileNearby + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005371F0 = 0x005371F0, + // label: _HoldStrong::Map::Units::UnitsState::findTunnelTarget // label: findTunnelTarget + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537700 = 0x00537700, + // label: _HoldStrong::Map::Units::UnitsState::getAliveLordForPlayer // label: getAliveLordForPlayer + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x005377F0 = 0x005377F0, + // label: _HoldStrong::Map::Units::UnitsState::getRawDeerCount // label: getRawDeerCount + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537840 = 0x00537840, - // label: findNearestShootableDeer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x537880 + // label: findNearestHuntableDeer + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537880 = 0x00537880, @@ -55547,35 +59546,47 @@ enum { SHC_3BB0A8C1_0x005378D0 = 0x005378D0, // type: function SHC_3BB0A8C1_0x005378F0 = 0x005378F0, - // label: findNearestIdleCowForPlayer + // label: _HoldStrong::Map::Units::UnitsState::meth_0x537a00 + // label: findNearestIdleCow + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537A00 = 0x00537A00, + // label: _HoldStrong::Map::Units::UnitsState::findClosestAnimalStoreResult // label: findClosestAnimalStoreResult + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537AA0 = 0x00537AA0, // type: function SHC_3BB0A8C1_0x00537B20 = 0x00537B20, - // label: findClosestEnemyByAreaAndRange + // label: _HoldStrong::Map::Units::UnitsState::getClosestUnitIDUnk + // label: findClosestEnemyUnitInArea + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537C10 = 0x00537C10, // type: function SHC_3BB0A8C1_0x00537C90 = 0x00537C90, + // label: _HoldStrong::Map::Units::UnitsState::tryAttackUnitID // label: tryAttackUnitID + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537D60 = 0x00537D60, + // label: _HoldStrong::Map::Units::UnitsState::setTowerSiegeEngineToIdle // label: setTowerSiegeEngineToIdle + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537E00 = 0x00537E00, + // label: _HoldStrong::Map::Units::UnitsState::setAIControlStatusTo100000 // label: setAIControlStatusTo100000 + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537EE0 = 0x00537EE0, - // label: clearUnitPositionCommitState + // label: getUnitAnimationIndex // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00537F60 = 0x00537F60, @@ -63399,7 +67410,9 @@ enum { SHC_3BB0A8C1_0x00539BD5 = 0x00539BD5, // type: /byte SHC_3BB0A8C1_0x00539BD6 = 0x00539BD6, + // label: _HoldStrong::Map::Units::UnitsState::getPeasantGmID // label: getPeasantGmID + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00539BE0 = 0x00539BE0, @@ -63611,7 +67624,9 @@ enum { SHC_3BB0A8C1_0x00539DEB = 0x00539DEB, // type: /byte SHC_3BB0A8C1_0x00539DEC = 0x00539DEC, + // label: _HoldStrong::Map::Units::UnitsState::chooseHusbandAndWife // label: chooseHusbandAndWife + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00539DF0 = 0x00539DF0, @@ -63747,7 +67762,9 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0053A020 = 0x0053A020, - // label: isWorkerAtProductionIdleState + // label: _HoldStrong::Map::Units::UnitsState::meth_0x53a070 + // label: isWorkerInProductionState + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053A070 = 0x0053A070, @@ -63829,7 +67846,9 @@ enum { SHC_3BB0A8C1_0x0053A148 = 0x0053A148, // type: /byte SHC_3BB0A8C1_0x0053A149 = 0x0053A149, - // label: getWorkerBlockingStateIfStuck + // label: _HoldStrong::Map::Units::UnitsState::meth_0x53a150 + // label: computeWorkerNextAction + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053A150 = 0x0053A150, @@ -63937,15 +67956,21 @@ enum { SHC_3BB0A8C1_0x0053A4C0 = 0x0053A4C0, // type: /byte SHC_3BB0A8C1_0x0053A4C1 = 0x0053A4C1, - // label: findActiveSiegeEngineForTribe + // label: _HoldStrong::Map::Units::UnitsState::meth_0x53a4d0 + // label: findPlayerOperationalSiegeEngine + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053A4D0 = 0x0053A4D0, + // label: _HoldStrong::Map::Units::UnitsState::getLivingSelectableUnit // label: getLivingSelectableUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053A560 = 0x0053A560, + // label: _HoldStrong::Map::Units::UnitsState::renderDebugDataUnitData // label: renderDebugDataUnitData + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053A5B0 = 0x0053A5B0, @@ -63955,7 +67980,9 @@ enum { SHC_3BB0A8C1_0x0053B1F0 = 0x0053B1F0, // type: function SHC_3BB0A8C1_0x0053B210 = 0x0053B210, - // label: UpgradeMapUnitsTo_UnknownVersion2 + // label: _HoldStrong::Map::Version::UpgradeMapUnitsTo_UnknownVersion2 + // label: upgradeMapRederiveUnitCombatAndHealth + // location: // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x0053B260 = 0x0053B260, @@ -63973,7 +68000,9 @@ enum { SHC_3BB0A8C1_0x0053B380 = 0x0053B380, // type: function SHC_3BB0A8C1_0x0053B390 = 0x0053B390, - // label: UpgradeMapUnitsTo_UnknownVersion1 + // label: _HoldStrong::Map::Version::UpgradeMapUnitsTo_UnknownVersion1 + // label: upgradeMapRederiveUnitGraphicsAndStats + // location: // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x0053B3E0 = 0x0053B3E0, @@ -64005,23 +68034,33 @@ enum { // location: OpenSHC/Map/Version // type: function SHC_3BB0A8C1_0x0053B800 = 0x0053B800, - // label: constructUnitsState + // label: Constructor_UnitsState + // label: _HoldStrong::Map::Units::UnitsState::Constructor_UnitsState + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053B8B0 = 0x0053B8B0, + // label: _HoldStrong::Map::Units::UnitsState::setUnitValues // label: setUnitValues + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053B8E0 = 0x0053B8E0, - // label: commitPendingUnitPosition + // label: _HoldStrong::Map::Units::UnitsState::updateUnitPositionUnk + // label: commitUnitPositionUpdate + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053BB10 = 0x0053BB10, + // label: _HoldStrong::Map::Units::UnitsState::setupUnitSharingCurrentTilePosition // label: setupUnitSharingCurrentTilePosition + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053BB70 = 0x0053BB70, + // label: _HoldStrong::Map::Units::UnitsState::teleportUnitToUnitXAndY // label: teleportUnitToUnitXAndY + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053BB90 = 0x0053BB90, @@ -64041,15 +68080,21 @@ enum { SHC_3BB0A8C1_0x0053C400 = 0x0053C400, // type: function SHC_3BB0A8C1_0x0053C590 = 0x0053C590, - // label: ConsiderTakingABreakUnk + // label: _HoldStrong::Global::ConsiderTakingABreakUnk + // label: considerUnitTakingBreak + // location: // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0053CAC0 = 0x0053CAC0, + // label: _HoldStrong::Map::Units::UnitsState::getEnemyUnitIDNearby // label: getEnemyUnitIDNearby + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053CAE0 = 0x0053CAE0, + // label: _HoldStrong::Map::Units::UnitsState::prepareProjectileTarget // label: prepareProjectileTarget + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053CBD0 = 0x0053CBD0, @@ -64301,7 +68346,9 @@ enum { SHC_3BB0A8C1_0x0053D022 = 0x0053D022, // type: /byte SHC_3BB0A8C1_0x0053D023 = 0x0053D023, - // label: harassBuildingsWithSiegeAI + // label: _HoldStrong::Map::Units::UnitsState::harassBuildingsAIUnk + // label: aiSiegeUnitPickTargetAndShoot + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053D030 = 0x0053D030, @@ -64393,19 +68440,27 @@ enum { SHC_3BB0A8C1_0x0053D3C1 = 0x0053D3C1, // type: /byte SHC_3BB0A8C1_0x0053D3C2 = 0x0053D3C2, + // label: _HoldStrong::Map::Units::UnitsState::setDestinationForUnit // label: setDestinationForUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053D3D0 = 0x0053D3D0, - // label: resumeMovementAfterInterruption + // label: _HoldStrong::Map::Units::UnitsState::meth_0x53d850 + // label: resumeUnitMovement + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053D850 = 0x0053D850, + // label: _HoldStrong::Map::Units::UnitsState::exitLadder // label: exitLadder + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053D900 = 0x0053D900, + // label: _HoldStrong::Map::Units::UnitsState::getUnitInHitBox // label: getUnitInHitBox + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053D9C0 = 0x0053D9C0, @@ -64423,11 +68478,15 @@ enum { SHC_3BB0A8C1_0x0053DCB0 = 0x0053DCB0, // type: /undefined *32 SHC_3BB0A8C1_0x0053DCB4 = 0x0053DCB4, - // label: setDestinationNearTargetedBuilding + // label: _HoldStrong::Map::Units::UnitsState::setTargetedBuildingDestinationUnk + // label: setUnitDestinationNextToTargetBuilding + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053DCC0 = 0x0053DCC0, - // label: selectWorkerSpeechOrMoraleStateID + // label: _HoldStrong::Map::Units::UnitsState::meth_0x53ddd0 + // label: computePeasantThoughtBubble + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053DDD0 = 0x0053DDD0, @@ -64475,39 +68534,57 @@ enum { SHC_3BB0A8C1_0x0053E380 = 0x0053E380, // type: /pointer SHC_3BB0A8C1_0x0053E384 = 0x0053E384, + // label: _HoldStrong::Map::Units::UnitsState::upgradeMapFormatForUnits // label: upgradeMapFormatForUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053E390 = 0x0053E390, + // label: _HoldStrong::Map::Units::UnitsState::spawnUnit // label: spawnUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053E440 = 0x0053E440, + // label: _HoldStrong::Map::Units::UnitsState::changeUnitType // label: changeUnitType + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053E6C0 = 0x0053E6C0, + // label: _HoldStrong::Map::Units::UnitsState::deleteUnit // label: deleteUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053E790 = 0x0053E790, + // label: _HoldStrong::Map::Units::UnitsState::commitUnitLocation // label: commitUnitLocation + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053E820 = 0x0053E820, - // label: resetUnitMovementState + // label: _HoldStrong::Map::Units::UnitsState::someUnitMoveFunction + // label: someUnitMoveFunction + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053E870 = 0x0053E870, - // label: clearHiddenFlagAndUpdatePosition + // label: _HoldStrong::Map::Units::UnitsState::meth_0x53e8d0 + // label: revealHiddenUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053E8D0 = 0x0053E8D0, + // label: _HoldStrong::Map::Units::UnitsState::setPositionOfUnit // label: setPositionOfUnit + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053E900 = 0x0053E900, + // label: _HoldStrong::Map::Units::UnitsState::commitMimmicLocation // label: commitMimmicLocation + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0053E9F0 = 0x0053E9F0, @@ -64523,8 +68600,6 @@ enum { SHC_3BB0A8C1_0x0053F08F = 0x0053F08F, // type: /pointer SHC_3BB0A8C1_0x0053F0AA = 0x0053F0AA, - // type: function - SHC_3BB0A8C1_0x0053F0BA = 0x0053F0BA, // type: /undefined *32 SHC_3BB0A8C1_0x0053F8E0 = 0x0053F8E0, // type: /undefined *32 @@ -64657,7 +68732,9 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x0053F940 = 0x0053F940, + // label: _HoldStrong::Map::Units::UnitsState::ifOnADefensiveStructureSetDestinationInDirectionOfTarget // label: ifOnADefensiveStructureSetDestinationInDirectionOfTarget + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00540040 = 0x00540040, @@ -65859,15 +69936,21 @@ enum { // location: OpenSHC/Global // type: function SHC_3BB0A8C1_0x00549B30 = 0x00549B30, + // label: _HoldStrong::Map::Units::UnitsState::processMeleeInitiation // label: processMeleeInitiation + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00549C70 = 0x00549C70, - // label: resumeMovementIfNoAttackTarget + // label: _HoldStrong::Map::Units::UnitsState::meth_0x54a770 + // label: resumeUnitIfNotAttacking + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0054A770 = 0x0054A770, - // label: findNearestEnemyAndHeadTowardsIt + // label: _HoldStrong::Map::Units::UnitsState::findNearestEnemyAndHeadTowardsItUnk + // label: unitAcquireBestEnemyTargetAndPursue + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0054A7B0 = 0x0054A7B0, @@ -66293,7 +70376,9 @@ enum { SHC_3BB0A8C1_0x0054B0CB = 0x0054B0CB, // type: /byte SHC_3BB0A8C1_0x0054B0CC = 0x0054B0CC, - // label: acquireShootTarget + // label: _HoldStrong::Map::Units::UnitsState::canShootTargetUnk + // label: acquireAndSetShootTarget + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0054B0D0 = 0x0054B0D0, @@ -66963,19 +71048,27 @@ enum { SHC_3BB0A8C1_0x0054BFB2 = 0x0054BFB2, // type: /byte SHC_3BB0A8C1_0x0054BFB3 = 0x0054BFB3, + // label: _HoldStrong::Map::Units::UnitsState::updateClimbing // label: updateClimbing + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0054BFC0 = 0x0054BFC0, + // label: _HoldStrong::Map::Units::UnitsState::unitClimbing // label: unitClimbing + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0054C1C0 = 0x0054C1C0, + // label: _HoldStrong::Map::Units::UnitsState::handleUnitMovementWhenTargetingBuildings // label: handleUnitMovementWhenTargetingBuildings + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0054C4F0 = 0x0054C4F0, + // label: _HoldStrong::Map::Units::UnitsState::moveToFreeTileNearby // label: moveToFreeTileNearby + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x0054C610 = 0x0054C610, @@ -71539,7 +75632,9 @@ enum { SHC_3BB0A8C1_0x00578370 = 0x00578370, // type: function SHC_3BB0A8C1_0x00578B40 = 0x00578B40, + // label: _HoldStrong::Map::Units::UnitsState::processUnitMove // label: processUnitMove + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00578C40 = 0x00578C40, @@ -71561,7 +75656,9 @@ enum { SHC_3BB0A8C1_0x005792F8 = 0x005792F8, // type: /pointer SHC_3BB0A8C1_0x005792FC = 0x005792FC, + // label: _HoldStrong::Map::Units::UnitsState::updateUnits // label: updateUnits + // location: // location: OpenSHC/Map/Units/UnitsState // type: function SHC_3BB0A8C1_0x00579300 = 0x00579300, @@ -72144,42 +76241,52 @@ enum { // type: function SHC_3BB0A8C1_0x0057C8A9 = 0x0057C8A9, // label: _GetOrdinal@20 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057C8CE = 0x0057C8CE, // label: _ImageEntryToDataC@12 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057C94B = 0x0057C94B, // label: _strcmpiC@8 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057C987 = 0x0057C987, // label: _strncpyC@12 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057C9AE = 0x0057C9AE, // label: _GetProcAddressInternal@8 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057C9F0 = 0x0057C9F0, // label: _driveandpathC@12 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CA56 = 0x0057CA56, + // label: _LoadGodot@0 // label: checkLocationOfUnicowsDLL + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CAF3 = 0x0057CAF3, // label: ResolveThunk + // label: _ResolveThunk@20 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CCC0 = 0x0057CCC0, - // label: FUN_0057ce07 + // label: crt_stub_setLastError_notImplemented // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CE07 = 0x0057CE07, - // label: FUN_0057ce15 + // label: crt_0057ce15 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CE15 = 0x0057CE15, @@ -72190,23 +76297,31 @@ enum { // label: FID_conflict:_GodotFailRemovePropA@8 // label: FID_conflict:_GodotFaillstrcatW@8 // label: FID_conflict:_GodotFaillstrcpyW@8 + // label: _GodotFailEnableWindow@8 + // label: _GodotFailGetCPInfo@8 + // label: _GodotFailGetPropA@8 + // label: _GodotFailGetWindowLongA@8 + // label: _GodotFailRemovePropA@8 + // label: _GodotFaillstrcatW@8 + // label: _GodotFaillstrcpyW@8 // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CE22 = 0x0057CE22, - // label: FUN_0057ce52 + // label: crt_0057ce52 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CE52 = 0x0057CE52, - // label: FUN_0057ce5d + // label: crt_0057ce5d // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CE5D = 0x0057CE5D, // label: _GodotFailGetProcAddress@8 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CE6A = 0x0057CE6A, - // label: FUN_0057cea9 + // label: crt_0057cea9 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CEA9 = 0x0057CEA9, @@ -72216,25 +76331,34 @@ enum { // label: FID_conflict:_GodotFailIsValidCodePage@4 // label: FID_conflict:_GodotFailIsWindowUnicode@4 // label: FID_conflict:_GodotFaillstrlenW@4 + // label: _GodotFailEnumClipboardFormats@4 + // label: _GodotFailGetClipboardData@4 + // label: _GodotFailIsClipboardFormatAvailable@4 + // label: _GodotFailIsValidCodePage@4 + // label: _GodotFailIsWindowUnicode@4 + // label: _GodotFaillstrlenW@4 // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CEB6 = 0x0057CEB6, - // label: FUN_0057cee6 + // label: crt_0057cee6 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CEE6 = 0x0057CEE6, // label: _GodotFailMultiByteToWideChar@24 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CEF3 = 0x0057CEF3, // label: FID_conflict:_GodotFailExtTextOutW@32 // label: FID_conflict:_GodotFailWideCharToMultiByte@32 + // label: _GodotFailExtTextOutW@32 + // label: _GodotFailWideCharToMultiByte@32 // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CF23 = 0x0057CF23, - // label: FUN_0057cf53 + // label: crt_0057cf53 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057CF53 = 0x0057CF53, @@ -72242,6 +76366,10 @@ enum { // label: FID_conflict:_GodotFailFindResourceW@12 // label: FID_conflict:_GodotFailSetPropA@12 // label: FID_conflict:_GodotFailSetWindowLongA@12 + // label: _GodotFailDdeQueryConvInfo@12 + // label: _GodotFailFindResourceW@12 + // label: _GodotFailSetPropA@12 + // label: _GodotFailSetWindowLongA@12 // location: // location: HoldStrong_lib // type: function @@ -72347,15 +76475,18 @@ enum { // type: function SHC_3BB0A8C1_0x0057E170 = 0x0057E170, // label: __Tolower + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E180 = 0x0057E180, // label: __Getctype + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E28F = 0x0057E28F, // label: ??0_Init_locks@std@@QAE@XZ // label: _Init_locks + // label: std::_Init_locks::_Init_locks // location: // location: std/_Init_locks // type: function @@ -72366,29 +76497,35 @@ enum { SHC_3BB0A8C1_0x0057E319 = 0x0057E319, // label: ??0_Lockit@std@@QAE@H@Z // label: _Lockit + // label: std::_Lockit::_Lockit // location: // location: std/_Lockit // type: function SHC_3BB0A8C1_0x0057E342 = 0x0057E342, + // label: HoldStrong_lib::_Lockit::meth_0x57e363 // label: meth_0x57e363 + // location: // location: HoldStrong_lib/_Lockit // type: function SHC_3BB0A8C1_0x0057E363 = 0x0057E363, // label: ??1_Fac_node@std@@QAE@XZ + // label: std::_Fac_node::~_Fac_node // label: ~_Fac_node // location: // location: std/_Fac_node // type: function SHC_3BB0A8C1_0x0057E375 = 0x0057E375, // label: __Deletegloballocale + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E38A = 0x0057E38A, // label: _tidy_global + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E3A6 = 0x0057E3A6, - // label: FUN_0057e3d0 + // label: crt_0057e3d0 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E3D0 = 0x0057E3D0, @@ -72399,16 +76536,19 @@ enum { // type: function SHC_3BB0A8C1_0x0057E3D6 = 0x0057E3D6, // label: ?_Locimp_dtor@_Locimp@locale@std@@CAXPAV123@@Z + // label: HoldStrong_lib::std::locale::_Locimp::_Locimp_dtor // label: _Locimp_dtor // location: // location: HoldStrong_lib/std/locale/_Locimp // type: function SHC_3BB0A8C1_0x0057E3FB = 0x0057E3FB, // label: __Fac_tidy + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E45B = 0x0057E45B, // label: ?facet_Register@facet@locale@std@@CAXPAV123@@Z + // label: HoldStrong_lib::std::locale::facet::facet_Register // label: facet_Register // location: // location: HoldStrong_lib/std/locale/facet @@ -72421,18 +76561,23 @@ enum { // type: function SHC_3BB0A8C1_0x0057E4D7 = 0x0057E4D7, // label: ??0_Locimp@locale@std@@AAE@_N@Z + // label: HoldStrong_lib::std::locale::_Locimp::_Locimp // label: _Locimp // location: // location: HoldStrong_lib/std/locale/_Locimp // type: function SHC_3BB0A8C1_0x0057E4FA = 0x0057E4FA, // label: ??1_Locimp@locale@std@@MAE@XZ + // label: HoldStrong_lib::std::locale::_Locimp::~_Locimp // label: ~_Locimp // location: // location: HoldStrong_lib/std/locale/_Locimp // type: function SHC_3BB0A8C1_0x0057E543 = 0x0057E543, + // label: ??_G_Locimp@locale@std@@MAEPAXI@Z + // label: HoldStrong_lib::std::locale::_Locimp::virt_meth_0x57e580 // label: virt_meth_0x57e580 + // location: // location: HoldStrong_lib/std/locale/_Locimp // type: function SHC_3BB0A8C1_0x0057E580 = 0x0057E580, @@ -72449,44 +76594,58 @@ enum { // type: function SHC_3BB0A8C1_0x0057E636 = 0x0057E636, // label: ?_Callfns@ios_base@std@@AAEXW4event@12@@Z + // label: HoldStrong_lib::stdLib::ios::ios_base::_Callfns // label: _Callfns // location: // location: HoldStrong_lib/stdLib/ios/ios_base // type: function SHC_3BB0A8C1_0x0057E680 = 0x0057E680, // label: ?_Tidy@ios_base@std@@AAAXXZ + // label: HoldStrong_lib::stdLib::ios::ios_base::_Tidy // label: _Tidy // location: // location: HoldStrong_lib/stdLib/ios/ios_base // type: function SHC_3BB0A8C1_0x0057E6A2 = 0x0057E6A2, // label: ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z + // label: HoldStrong_lib::stdLib::ios::ios_base::_Ios_base_dtor // label: _Ios_base_dtor // location: // location: HoldStrong_lib/stdLib/ios/ios_base // type: function SHC_3BB0A8C1_0x0057E6E8 = 0x0057E6E8, + // label: HoldStrong_lib::_Lockit::_Lockit // label: _Lockit + // location: // location: HoldStrong_lib/_Lockit // type: function SHC_3BB0A8C1_0x0057E726 = 0x0057E726, + // label: ??1_Mutex@std@@QAE@XZ + // location: // type: function SHC_3BB0A8C1_0x0057E73E = 0x0057E73E, + // label: HoldStrong_lib::LockClass1::acquireLock // label: acquireLock + // location: // location: HoldStrong_lib/LockClass1 // type: function SHC_3BB0A8C1_0x0057E753 = 0x0057E753, + // label: HoldStrong_lib::LockClass1::releaseLock // label: releaseLock + // location: // location: HoldStrong_lib/LockClass1 // type: function SHC_3BB0A8C1_0x0057E75C = 0x0057E75C, // label: ??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z + // label: HoldStrong_lib::std::logic_error::logic_error // label: logic_error // location: // location: HoldStrong_lib/std/logic_error // type: function SHC_3BB0A8C1_0x0057E765 = 0x0057E765, + // label: HoldStrong_lib::std::logic_error::virt_meth_0x57e79a // label: virt_meth_0x57e79a + // location: // location: HoldStrong_lib/std/logic_error // type: function SHC_3BB0A8C1_0x0057E79A = 0x0057E79A, @@ -72496,7 +76655,9 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E7A8 = 0x0057E7A8, + // label: HoldStrong_lib::std::logic_error::virt_meth_0x57e7c5 // label: virt_meth_0x57e7c5 + // location: // location: HoldStrong_lib/std/logic_error // type: function SHC_3BB0A8C1_0x0057E7C5 = 0x0057E7C5, @@ -72532,11 +76693,12 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E8CC = 0x0057E8CC, - // label: FUN_0057e90b + // label: crt_0057e90b // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E90B = 0x0057E90B, // label: __Toupper + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057E923 = 0x0057E923, @@ -72558,15 +76720,15 @@ enum { // location: std // type: function SHC_3BB0A8C1_0x0057EBA1 = 0x0057EBA1, - // label: thunk_FUN_00586363 + // label: ?__uncaught_exception@@YA_NXZ // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057EBFC = 0x0057EBFC, - // label: FUN_0057ec01 + // label: crt_0057ec01 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057EC01 = 0x0057EC01, - // label: FUN_0057ec0c + // label: crt_0057ec0c // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057EC0C = 0x0057EC0C, @@ -72584,13 +76746,13 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057EC2D = 0x0057EC2D, - // label: thunk_FUN_0057ec67 + // label: crt_0057ec67 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057EC4D = 0x0057EC4D, // type: function SHC_3BB0A8C1_0x0057EC4F = 0x0057EC4F, - // label: FUN_0057ec67 + // label: crt_0057ec67 // location: HoldStrong_lib SHC_3BB0A8C1_0x0057EC67 = 0x0057EC67, // label: __init_pointers_FUN_0057ec72 @@ -72598,14 +76760,17 @@ enum { // type: function SHC_3BB0A8C1_0x0057EC72 = 0x0057EC72, // label: __cfltcvt_init + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057EC73 = 0x0057EC73, // label: __fpmath + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057ECD3 = 0x0057ECD3, // label: __isnan + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057ECF1 = 0x0057ECF1, @@ -72637,7 +76802,7 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057EFF0 = 0x0057EFF0, - // label: FUN_0057f03f + // label: crt_0057f03f // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F03F = 0x0057F03F, @@ -72649,11 +76814,11 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F120 = 0x0057F120, - // label: FUN_0057f16f + // label: crt_0057f16f // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F16F = 0x0057F16F, - // label: FUN_0057f178 + // label: crt_0057f178 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F178 = 0x0057F178, @@ -72661,117 +76826,142 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F250 = 0x0057F250, + // label: crt_0057f29f + // location: // type: function SHC_3BB0A8C1_0x0057F29F = 0x0057F29F, - // label: FUN_0057f2a8 + // label: crt_0057f2a8 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F2A8 = 0x0057F2A8, - // label: FUN_0057f339 + // label: crt_0057f339 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F339 = 0x0057F339, // label: FID_conflict:__gmtime32 // label: FID_conflict:__gmtime64 // label: FID_conflict:__localtime32 - // label: _localtime + // label: __gmtime32 + // label: __gmtime64 + // label: __localtime32 + // label: __localtime64 // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0057F5FE = 0x0057F5FE, // label: __time64 + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0057F622 = 0x0057F622, // label: _memset + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0057F660 = 0x0057F660, // label: _sprintf + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0057F6DA = 0x0057F6DA, + // label: @__security_check_cookie@4 // label: __security_check_cookie + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F755 = 0x0057F755, // label: ??0_LocaleUpdate@@QAE@PAUlocaleinfo_struct@@@Z // label: _LocaleUpdate // location: - // location: _LocaleUpdate // type: function SHC_3BB0A8C1_0x0057F764 = 0x0057F764, // label: ___ascii_stricmp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F7E6 = 0x0057F7E6, // label: __stricmp_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F81B = 0x0057F81B, // label: __stricmp + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0057F8EE = 0x0057F8EE, - // label: FUN_0057f93e + // label: crt_0057f93e // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F93E = 0x0057F93E, - // label: FUN_0057f9f7 + // label: ___onexitinit // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057F9F7 = 0x0057F9F7, // label: __onexit + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FA26 = 0x0057FA26, - // label: FUN_0057fa5c + // label: crt_0057fa5c // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FA5C = 0x0057FA5C, // label: _atexit + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0057FA62 = 0x0057FA62, + // label: _free // label: _free_base + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0057FA74 = 0x0057FA74, - // label: FUN_0057faca + // label: crt_0057faca // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FACA = 0x0057FACA, // type: function SHC_3BB0A8C1_0x0057FAD3 = 0x0057FAD3, // label: __tolower_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FB02 = 0x0057FB02, // label: __tolower + // label: _tolower + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0057FC19 = 0x0057FC19, - // label: FUN_0057fc40 + // label: crt_0057fc40 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FC40 = 0x0057FC40, // label: _fclose + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0057FCB2 = 0x0057FCB2, - // label: FUN_0057fd26 + // label: crt_ehFunclet_0057fd23 + // location: + // type: function + SHC_3BB0A8C1_0x0057FD23 = 0x0057FD23, + // label: crt_0057fd26 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FD26 = 0x0057FD26, - // label: FUN_0057fd2e + // label: crt_0057fd2e // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FD2E = 0x0057FD2E, // label: _fread_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FF34 = 0x0057FF34, - // label: FUN_0057ffc0 + // label: crt_0057ffc0 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FFC0 = 0x0057FFC0, @@ -72780,102 +76970,116 @@ enum { // type: function SHC_3BB0A8C1_0x0057FFCA = 0x0057FFCA, // label: _V6_HeapAlloc + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0057FFE5 = 0x0057FFE5, - // label: FUN_0058002b + // label: crt_0058002b // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058002B = 0x0058002B, // label: _malloc + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00580034 = 0x00580034, - // label: FUN_005800f7 + // label: crt_005800f7 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005800F7 = 0x005800F7, // label: _ftell + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0058028F = 0x0058028F, - // label: FUN_005802f3 + // label: crt_005802f3 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005802F3 = 0x005802F3, // label: __fseek_nolock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005802FD = 0x005802FD, // label: _fseek + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00580384 = 0x00580384, - // label: FUN_005803ff + // label: crt_005803ff // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005803FF = 0x005803FF, // label: __fsopen + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00580409 = 0x00580409, - // label: FUN_005804c3 + // label: crt_005804c3 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005804C3 = 0x005804C3, // label: _fopen + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x005804CD = 0x005804CD, // label: __vswprintf_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005804E0 = 0x005804E0, // label: __vswprintf + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00580577 = 0x00580577, - // label: FUN_0058058e + // label: crt_0058058e // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058058E = 0x0058058E, // label: _fgetwc + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00580735 = 0x00580735, - // label: FUN_0058079e + // label: crt_0058079e // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058079E = 0x0058079E, - // label: FUN_005807a8 + // label: crt_fwprintf_internal // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005807A8 = 0x005807A8, - // label: FUN_00580832 + // label: crt_00580832 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00580832 = 0x00580832, - // label: FUN_0058083c + // label: crt_0058083c // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058083C = 0x0058083C, // label: _fwrite + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x0058099B = 0x0058099B, - // label: FUN_00580a13 + // label: crt_00580a13 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00580A13 = 0x00580A13, // label: _wcsncpy + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00580A1D = 0x00580A1D, // label: __wcsicmp_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00580A5A = 0x00580A5A, // label: __wcsicmp + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00580B69 = 0x00580B69, @@ -72888,40 +77092,50 @@ enum { // type: function SHC_3BB0A8C1_0x00580C0B = 0x00580C0B, // label: ??0exception@std@@QAE@XZ + // label: HoldStrong_lib::std::exception::exception // label: exception // location: // location: HoldStrong_lib/std/exception // type: function SHC_3BB0A8C1_0x00580C10 = 0x00580C10, // label: ??0exception@std@@QAE@ABQBD@Z + // label: HoldStrong_lib::std::exception::exception // label: exception // location: // location: HoldStrong_lib/std/exception // type: function SHC_3BB0A8C1_0x00580C21 = 0x00580C21, // label: ??0exception@std@@QAE@ABQBDH@Z + // label: HoldStrong_lib::std::exception::exception // label: exception // location: // location: HoldStrong_lib/std/exception // type: function SHC_3BB0A8C1_0x00580C6F = 0x00580C6F, // label: ??0exception@std@@QAE@ABV01@@Z + // label: HoldStrong_lib::std::exception::exception // label: exception // location: // location: HoldStrong_lib/std/exception // type: function SHC_3BB0A8C1_0x00580C87 = 0x00580C87, + // label: ??1exception@@UAE@XZ // label: ??1exception@std@@UAE@XZ + // label: HoldStrong_lib::std::exception::~exception // label: ~exception // location: // location: HoldStrong_lib/std/exception // type: function SHC_3BB0A8C1_0x00580CDF = 0x00580CDF, + // label: HoldStrong_lib::std::exception::virt_meth_0x580cf5 // label: virt_meth_0x580cf5 + // location: // location: HoldStrong_lib/std/exception // type: function SHC_3BB0A8C1_0x00580CF5 = 0x00580CF5, + // label: HoldStrong_lib::std::bad_cast::bad_cast // label: bad_cast + // location: // location: HoldStrong_lib/std/bad_cast // type: function SHC_3BB0A8C1_0x00580D02 = 0x00580D02, @@ -72931,7 +77145,9 @@ enum { // label: meth_0x580d33 // location: SHC_3BB0A8C1_0x00580D33 = 0x00580D33, + // label: HoldStrong_lib::std::exception::virt_meth_0x580d3e // label: virt_meth_0x580d3e + // location: // location: HoldStrong_lib/std/exception // type: function SHC_3BB0A8C1_0x00580D3E = 0x00580D3E, @@ -72940,16 +77156,21 @@ enum { // type: function SHC_3BB0A8C1_0x00580D5A = 0x00580D5A, // label: ??1type_info@@UAE@XZ + // label: HoldStrong_lib::type_info::~type_info // label: ~type_info // location: // location: HoldStrong_lib/type_info // type: function SHC_3BB0A8C1_0x00580D7C = 0x00580D7C, + // label: ??_Gtype_info@@UAEPAXI@Z + // label: HoldStrong_lib::type_info::virt_meth_0x580d8a // label: virt_meth_0x580d8a + // location: // location: HoldStrong_lib/type_info // type: function SHC_3BB0A8C1_0x00580D8A = 0x00580D8A, // label: ??8type_info@@QBE_NABV0@@Z + // label: HoldStrong_lib::type_info::operator== // label: operator== // location: // location: HoldStrong_lib/type_info @@ -72960,10 +77181,12 @@ enum { // type: function SHC_3BB0A8C1_0x00580DC1 = 0x00580DC1, // label: _memcpy_s + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00580DC6 = 0x00580DC6, // label: _memmove_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00580E41 = 0x00580E41, @@ -72971,7 +77194,7 @@ enum { // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00580E9C = 0x00580E9C, - // label: FUN_00580ea1 + // label: crt_close_fd // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00580EA1 = 0x00580EA1, @@ -72979,11 +77202,11 @@ enum { // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00580F38 = 0x00580F38, - // label: FUN_00580ffb + // label: crt_00580ffb // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00580FFB = 0x00580FFB, - // label: FUN_00581005 + // label: crt_00581005 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00581005 = 0x00581005, @@ -72994,10 +77217,12 @@ enum { // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x005815C6 = 0x005815C6, - // label: FUN_005816b9 + // label: crt_005816b9 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005816B9 = 0x005816B9, + // label: ?_open@@YAHPBDHH@Z + // label: ?_wopen@@YAHPB_WHH@Z // label: FID_conflict:open // label: _ucrt_open // location: @@ -73009,10 +77234,12 @@ enum { // type: function SHC_3BB0A8C1_0x005816EE = 0x005816EE, // label: _rand + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x005816FB = 0x005816FB, // label: __freea + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058171D = 0x0058171D, @@ -73023,14 +77250,16 @@ enum { // type: function SHC_3BB0A8C1_0x00581738 = 0x00581738, // label: __strlwr_s_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005818B9 = 0x005818B9, // label: __strlwr + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x005818EB = 0x005818EB, - // label: FUN_0058194d + // label: crt_0058194d // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058194D = 0x0058194D, @@ -73038,11 +77267,12 @@ enum { // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00581F6F = 0x00581F6F, - // label: FUN_00582041 + // label: crt_00582041 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582041 = 0x00582041, // label: _memcpy + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x00582050 = 0x00582050, @@ -73078,6 +77308,8 @@ enum { SHC_3BB0A8C1_0x00582170 = 0x00582170, // type: /undefined *32 SHC_3BB0A8C1_0x00582174 = 0x00582174, + // type: function + SHC_3BB0A8C1_0x00582178 = 0x00582178, // type: /pointer SHC_3BB0A8C1_0x005821C4 = 0x005821C4, // type: /pointer @@ -73128,6 +77360,8 @@ enum { SHC_3BB0A8C1_0x0058230C = 0x0058230C, // type: /pointer SHC_3BB0A8C1_0x00582310 = 0x00582310, + // type: function + SHC_3BB0A8C1_0x00582314 = 0x00582314, // type: /pointer SHC_3BB0A8C1_0x00582360 = 0x00582360, // type: /pointer @@ -73145,30 +77379,35 @@ enum { // type: function SHC_3BB0A8C1_0x0058239C = 0x0058239C, // label: __toupper_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005823B5 = 0x005823B5, // label: __toupper + // label: _toupper + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x005824CD = 0x005824CD, - // label: FUN_005824f4 + // label: crt_005824f4 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005824F4 = 0x005824F4, // label: __invoke_watson + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005824FE = 0x005824FE, - // label: FUN_005825fa + // label: __invalid_parameter // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005825FA = 0x005825FA, - // label: FUN_0058261e + // label: __invalid_parameter_noinfo // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058261E = 0x0058261E, // label: ??0bad_alloc@std@@QAE@XZ + // label: HoldStrong_lib::std::bad_alloc::bad_alloc // label: bad_alloc // location: // location: HoldStrong_lib/std/bad_alloc @@ -73181,6 +77420,7 @@ enum { // type: function SHC_3BB0A8C1_0x00582647 = 0x00582647, // label: __CxxThrowException@8 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005826B1 = 0x005826B1, @@ -73206,6 +77446,8 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058285A = 0x0058285A, + // label: ?_CallMemberFunction1@@YGXPAX00@Z + // label: ?_CallMemberFunction2@@YGXPAX00H@Z // label: FID_conflict:CallMemberFunction1 // label: FID_conflict:CallMemberFunction2 // location: @@ -73221,6 +77463,9 @@ enum { // label: FID_conflict:___CxxFrameHandler // label: FID_conflict:___CxxFrameHandler2 // label: __CxxFrameHandler + // label: ___CxxFrameHandler + // label: ___CxxFrameHandler2 + // label: ___CxxFrameHandler3 // location: // location: HoldStrong_lib // type: function @@ -73256,10 +77501,12 @@ enum { // type: function SHC_3BB0A8C1_0x00582B2E = 0x00582B2E, // label: __IsExceptionObjectToBeDestroyed + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582B56 = 0x00582B56, // label: __FindAndUnlinkFrame + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582B77 = 0x00582B77, @@ -73270,106 +77517,121 @@ enum { // type: function SHC_3BB0A8C1_0x00582BC3 = 0x00582BC3, // label: __alldiv + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582C30 = 0x00582C30, // label: __allmul + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582CE0 = 0x00582CE0, - // label: FUN_00582d14 + // label: crt_00582d14 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582D14 = 0x00582D14, - // label: FUN_00582e43 + // label: crt_00582e43 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582E43 = 0x00582E43, - // label: FUN_00582e4b + // label: crt_00582e4b // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582E4B = 0x00582E4B, - // label: FUN_00582f82 + // label: crt_00582f82 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582F82 = 0x00582F82, - // label: FUN_00582f8a + // label: crt_00582f8a // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00582F8A = 0x00582F8A, // label: _ungetc + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005830A8 = 0x005830A8, - // label: FUN_00583110 + // label: crt_00583110 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583110 = 0x00583110, // label: __flush + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058311A = 0x0058311A, // label: __fflush_nolock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058317C = 0x0058317C, // label: _flsall + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005831BE = 0x005831BE, - // label: FUN_00583260 + // label: crt_00583260 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583260 = 0x00583260, // type: function SHC_3BB0A8C1_0x00583271 = 0x00583271, - // label: FUN_0058328f + // label: crt_0058328f // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058328F = 0x0058328F, // label: _fflush + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583298 = 0x00583298, - // label: FUN_005832e1 + // label: crt_005832e1 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005832E1 = 0x005832E1, - // label: FUN_005832eb + // label: __flushall + // label: crt_005832eb + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005832EB = 0x005832EB, // label: _setvbuf + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005832F4 = 0x005832F4, - // label: FUN_005833e8 + // label: crt_005833e8 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005833E8 = 0x005833E8, // label: _fgetpos + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005833F2 = 0x005833F2, // label: _fsetpos + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058345D = 0x0058345D, // label: __alloca_probe // label: __chkstk // location: - // location: HoldStrong_lib + // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x005834A0 = 0x005834A0, // label: __strnicmp_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005834CB = 0x005834CB, // label: __strnicmp + // location: // location: OpenSHC/OS // type: function SHC_3BB0A8C1_0x005835BB = 0x005835BB, // label: _atol + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583617 = 0x00583617, @@ -73377,11 +77639,12 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583628 = 0x00583628, - // label: FUN_00583630 + // label: _strncpy // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583630 = 0x00583630, // label: _memmove + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583760 = 0x00583760, @@ -73417,6 +77680,8 @@ enum { SHC_3BB0A8C1_0x00583880 = 0x00583880, // type: /undefined *32 SHC_3BB0A8C1_0x00583884 = 0x00583884, + // type: function + SHC_3BB0A8C1_0x00583888 = 0x00583888, // type: /pointer SHC_3BB0A8C1_0x005838D4 = 0x005838D4, // type: /pointer @@ -73453,6 +77718,8 @@ enum { SHC_3BB0A8C1_0x005839D0 = 0x005839D0, // type: /undefined *32[8] SHC_3BB0A8C1_0x00583A04 = 0x00583A04, + // type: function + SHC_3BB0A8C1_0x00583A24 = 0x00583A24, // type: /pointer SHC_3BB0A8C1_0x00583A70 = 0x00583A70, // type: /pointer @@ -73470,50 +77737,56 @@ enum { // type: function SHC_3BB0A8C1_0x00583AAC = 0x00583AAC, // label: __amsg_exit + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583AC5 = 0x00583AC5, - // label: FUN_00583ae9 + // label: ___crtCorExitProcess // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583AE9 = 0x00583AE9, // label: ___crtExitProcess + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583B0F = 0x00583B0F, - // label: FUN_00583b24 + // label: crt_00583b24 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583B24 = 0x00583B24, - // label: FUN_00583b2d + // label: crt_00583b2d // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583B2D = 0x00583B2D, - // label: FUN_00583b36 + // label: __initterm // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583B36 = 0x00583B36, // label: __initterm_e + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583B4E = 0x00583B4E, // label: __get_osplatform + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583B6E = 0x00583B6E, // label: __get_winmajor + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583BA5 = 0x00583BA5, // label: __cinit + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583BE1 = 0x00583BE1, - // label: FUN_00583c73 + // label: crt_00583c73 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583C73 = 0x00583C73, - // label: FUN_00583d40 + // label: crt_00583d40 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583D40 = 0x00583D40, @@ -73524,6 +77797,7 @@ enum { // type: function SHC_3BB0A8C1_0x00583D55 = 0x00583D55, // label: __exit + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583D66 = 0x00583D66, @@ -73531,30 +77805,40 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583D77 = 0x00583D77, - // label: FUN_00583d86 + // label: __c_exit // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583D86 = 0x00583D86, // label: __init_pointers + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583D95 = 0x00583D95, // label: _fast_error_exit + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583DE1 = 0x00583DE1, // label: _check_managed_app + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00583E05 = 0x00583E05, + // label: crt_00583e46 + // location: // type: function SHC_3BB0A8C1_0x00583E46 = 0x00583E46, + // label: crt_00583ffc + // location: // type: function - SHC_3BB0A8C1_0x00584001 = 0x00584001, + SHC_3BB0A8C1_0x00583FFC = 0x00583FFC, + // label: crt_0058401b + // location: // type: function SHC_3BB0A8C1_0x0058401B = 0x0058401B, // label: entry // location: + // type: function SHC_3BB0A8C1_0x00584026 = 0x00584026, // label: ?__crtLCMapStringA_stat@@YAHPAUlocaleinfo_struct@@KKPBDHPADHHH@Z // label: __crtLCMapStringA_stat @@ -73563,188 +77847,229 @@ enum { // type: function SHC_3BB0A8C1_0x00584030 = 0x00584030, // label: ___crtLCMapStringA + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005843D2 = 0x005843D2, // label: ___pctype_func + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584415 = 0x00584415, // label: __isupper_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058443E = 0x0058443E, // label: _isupper + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058448D = 0x0058448D, // label: __islower_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005844B6 = 0x005844B6, // label: _islower + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584505 = 0x00584505, // label: __isdigit_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058452E = 0x0058452E, // label: _isdigit + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058457D = 0x0058457D, // label: ___init_ctype + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005845A6 = 0x005845A6, // label: ____lc_codepage_func + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058493B = 0x0058493B, // label: ____lc_handle_func + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584961 = 0x00584961, // label: __malloc_crt + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584987 = 0x00584987, // label: __calloc_crt + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005849C7 = 0x005849C7, // label: __realloc_crt + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584A0F = 0x00584A0F, // label: __recalloc_crt + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584A5A = 0x00584A5A, // label: _strlen + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584AB0 = 0x00584AB0, // label: __EH_prolog3 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584B3B = 0x00584B3B, // label: __EH_prolog3_catch + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584B6E = 0x00584B6E, // label: __EH_epilog3 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584BA4 = 0x00584BA4, // label: ___freetlocinfo + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584BB8 = 0x00584BB8, // label: ___addlocaleref + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584CF8 = 0x00584CF8, // label: ___removelocaleref + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584D7E = 0x00584D7E, // label: __copytlocinfo_nolock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584E0A = 0x00584E0A, // label: __updatetlocinfoEx_nolock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584E2E = 0x00584E2E, // label: ___updatetlocinfo + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584E6C = 0x00584E6C, - // label: FUN_00584ed6 + // label: crt_00584ed6 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584ED6 = 0x00584ED6, // label: _sync_legacy_variables_lk + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584EE2 = 0x00584EE2, // label: __strcats + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584F35 = 0x00584F35, // label: ___lc_strtolc + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00584F73 = 0x00584F73, // label: ___lc_lctostr + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058509C = 0x0058509C, // label: __setlocale_get_all + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585107 = 0x00585107, // label: __expandlocale + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585278 = 0x00585278, // label: __setlocale_set_cat + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058544C = 0x0058544C, // label: __setlocale_nolock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585742 = 0x00585742, // label: _setlocale + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585910 = 0x00585910, - // label: FUN_00585a3e + // label: crt_00585a3e // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585A3E = 0x00585A3E, - // label: FUN_00585a4a + // label: crt_00585a4a // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585A4A = 0x00585A4A, // type: function SHC_3BB0A8C1_0x00585A55 = 0x00585A55, - // label: FUN_00585a7b + // label: crt_00585a7b // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585A7B = 0x00585A7B, // label: __wcstombs_l_helper + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585A80 = 0x00585A80, // label: __wcstombs_s_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585CC6 = 0x00585CC6, // label: _wcstombs_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585D77 = 0x00585D77, // label: __wfsopen + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585D95 = 0x00585D95, - // label: FUN_00585e51 + // label: crt_00585e51 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585E51 = 0x00585E51, // label: __mbstowcs_l_helper + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585E5B = 0x00585E5B, // label: __mbstowcs_s_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00585FE3 = 0x00585FE3, // label: _mbstowcs_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005860D9 = 0x005860D9, @@ -73756,36 +78081,39 @@ enum { // type: function SHC_3BB0A8C1_0x00586102 = 0x00586102, // label: ___TypeMatch + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586124 = 0x00586124, - // label: FUN_00586180 + // label: ___FrameUnwindFilter // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586180 = 0x00586180, // label: __FrameUnwindToState + // label: ___FrameUnwindToState + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005861C4 = 0x005861C4, - // type: function - SHC_3BB0A8C1_0x00586260 = 0x00586260, - // label: FUN_0058628a + // label: crt_0058628a // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058628A = 0x0058628A, - // label: FUN_005862a5 + // label: ?ExFilterRethrow@@YAHPAU_EXCEPTION_POINTERS@@@Z // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005862A5 = 0x005862A5, // label: ___DestructExceptionObject + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005862EA = 0x005862EA, // label: ___AdjustPointer + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058633E = 0x0058633E, - // label: FUN_00586363 + // label: ?__uncaught_exception@@YA_NXZ // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586363 = 0x00586363, @@ -73811,19 +78139,21 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586438 = 0x00586438, + // label: crt_005864f5 + // location: // type: function - SHC_3BB0A8C1_0x00586537 = 0x00586537, - // label: FUN_0058655e + SHC_3BB0A8C1_0x005864F5 = 0x005864F5, + // label: crt_0058655e // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058655E = 0x0058655E, // label: ___BuildCatchObjectHelper + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005865D4 = 0x005865D4, - // type: function - SHC_3BB0A8C1_0x0058674B = 0x0058674B, // label: ___BuildCatchObject + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586753 = 0x00586753, @@ -73851,98 +78181,125 @@ enum { // location: SHC_3BB0A8C1_0x00586C98 = 0x00586C98, // label: __InternalCxxFrameHandler + // label: ___InternalCxxFrameHandler + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586CB0 = 0x00586CB0, // label: _abort + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586D94 = 0x00586D94, // label: __forcdecpt_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586E87 = 0x00586E87, // label: __cropzeros_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586EF8 = 0x00586EF8, - // label: FUN_00586f78 + // label: __positive // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586F78 = 0x00586F78, // label: __fassign_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586F8E = 0x00586F8E, - // label: FUN_00586fce + // label: __fassign + // label: crt_00586fce + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586FCE = 0x00586FCE, // label: __shift + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00586FE5 = 0x00586FE5, - // label: FUN_00587002 + // label: __forcdecpt + // label: crt_00587002 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587002 = 0x00587002, - // label: FUN_00587010 + // label: __cropzeros + // label: crt_00587010 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587010 = 0x00587010, // label: __cftoe2_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058701E = 0x0058701E, // label: __cftoe_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058718B = 0x0058718B, // label: __cftoe + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587259 = 0x00587259, // label: __cftoa_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587277 = 0x00587277, // label: __cftof2_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005875E8 = 0x005875E8, // label: __cftof_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005876DD = 0x005876DD, // label: __cftog_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587796 = 0x00587796, // label: __cfltcvt_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058788E = 0x0058788E, // label: __cfltcvt + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587914 = 0x00587914, // label: __initp_misc_cfltcvt_tab + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587935 = 0x00587935, // label: __setdefaultprecision + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587954 = 0x00587954, // label: __ms_p5_test_fdiv + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058797D = 0x0058797D, // label: __ms_p5_mp_test_fdiv + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005879B9 = 0x005879B9, // label: __set_exp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005879E2 = 0x005879E2, @@ -73951,30 +78308,37 @@ enum { // type: function SHC_3BB0A8C1_0x00587A0C = 0x00587A0C, // label: __raise_exc_ex + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587ABB = 0x00587ABB, // label: __raise_exc + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587D95 = 0x00587D95, // label: __handle_exc + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587DB6 = 0x00587DB6, // label: __set_errno_from_matherr + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587F97 = 0x00587F97, // label: __statfp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587FBF = 0x00587FBF, // label: __clrfp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587FCA = 0x00587FCA, // label: __ctrlfp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00587FD6 = 0x00587FD6, @@ -73986,13 +78350,23 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00588053 = 0x00588053, + // label: crt_00588098 + // location: + // type: function + SHC_3BB0A8C1_0x00588098 = 0x00588098, + // label: crt_005880ae + // location: // type: function SHC_3BB0A8C1_0x005880AE = 0x005880AE, - // label: FUN_005880c5 + // type: function + SHC_3BB0A8C1_0x005880B7 = 0x005880B7, + // type: function + SHC_3BB0A8C1_0x005880BF = 0x005880BF, + // label: __sse2_mathfcns_init // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005880C5 = 0x005880C5, - // label: FUN_005880e0 + // label: crt_005880e0 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005880E0 = 0x005880E0, @@ -74000,15 +78374,16 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005880FE = 0x005880FE, - // label: FUN_005885b5 + // label: __load_CW // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005885B5 = 0x005885B5, - // label: FUN_005885cc + // label: __convertTOStoQNaN // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005885CC = 0x005885CC, // label: __fload_withFB + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005885E5 = 0x005885E5, @@ -74018,15 +78393,22 @@ enum { SHC_3BB0A8C1_0x00588628 = 0x00588628, // type: function SHC_3BB0A8C1_0x0058863E = 0x0058863E, + // label: __math_exit // label: _math_FUN_0058864b + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058864B = 0x0058864B, + // label: __startTwoArgErrorHandling + // location: + // type: function + SHC_3BB0A8C1_0x00588730 = 0x00588730, // label: __startOneArgErrorHandling + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00588747 = 0x00588747, - // label: FUN_00588790 + // label: crt_00588790 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00588790 = 0x00588790, @@ -74034,141 +78416,156 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005887AE = 0x005887AE, - // label: FUN_005889f0 + // label: crt_005889f0 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005889F0 = 0x005889F0, - // label: FUN_00588a0e + // label: crt_00588a0e // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00588A0E = 0x00588A0E, + // label: crt_00588ba0 + // location: // type: function SHC_3BB0A8C1_0x00588BA0 = 0x00588BA0, - // label: FUN_00588bbe + // label: crt_00588bbe // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00588BBE = 0x00588BBE, - // label: FUN_00588d68 + // label: crt_00588d68 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00588D68 = 0x00588D68, - // label: FUN_00589017 + // label: crt_00589017 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589017 = 0x00589017, // type: function SHC_3BB0A8C1_0x00589020 = 0x00589020, // label: _cvtdate + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005890B1 = 0x005890B1, - // label: FUN_005892a6 + // label: crt_005892a6 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005892A6 = 0x005892A6, // label: ___tzset + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058947C = 0x0058947C, - // label: FUN_005894c2 + // label: crt_005894c2 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005894C2 = 0x005894C2, // label: __isindst + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005894CB = 0x005894CB, - // label: FUN_00589503 + // label: crt_00589503 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589503 = 0x00589503, // label: __gmtime64_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058950C = 0x0058950C, - // label: FUN_00589748 + // label: crt_00589748 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589748 = 0x00589748, // label: __get_dstbias + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058977C = 0x0058977C, - // label: FUN_005897b0 + // label: crt_005897b0 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005897B0 = 0x005897B0, - // label: FUN_005897e4 + // label: crt_005897e4 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005897E4 = 0x005897E4, - // label: FUN_005897ea + // label: crt_005897ea // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005897EA = 0x005897EA, - // label: FUN_005897f0 + // label: crt_005897f0 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005897F0 = 0x005897F0, - // label: FUN_005897f6 + // label: crt_005897f6 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005897F6 = 0x005897F6, - // label: FUN_005897fc + // label: crt_005897fc // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005897FC = 0x005897FC, - // label: FUN_00589837 + // label: __errno // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589837 = 0x00589837, - // label: FUN_0058984a + // label: ___doserrno // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058984A = 0x0058984A, - // label: FUN_0058985d + // label: __dosmaperr // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058985D = 0x0058985D, // label: __allrem + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589880 = 0x00589880, // label: ___getgmtimebuf + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589932 = 0x00589932, // label: __aulldiv + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589980 = 0x00589980, // label: _fastzero_I + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005899E8 = 0x005899E8, // type: function SHC_3BB0A8C1_0x00589A08 = 0x00589A08, // label: __VEC_memzero + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589A3F = 0x00589A3F, - // label: FUN_00589ace + // label: crt_00589ace // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589ACE = 0x00589ACE, // label: _write_char + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589C2E = 0x00589C2E, // label: _write_multi_char + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589C61 = 0x00589C61, // label: _write_string + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589C85 = 0x00589C85, - // label: FUN_00589ccf + // label: crt_00589ccf // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00589CCF = 0x00589CCF, @@ -74188,6 +78585,8 @@ enum { SHC_3BB0A8C1_0x0058A65B = 0x0058A65B, // type: /pointer SHC_3BB0A8C1_0x0058A65F = 0x0058A65F, + // label: ___report_gsfailure + // location: // type: function SHC_3BB0A8C1_0x0058A663 = 0x0058A663, // label: FID_conflict:CPtoLCID @@ -74209,10 +78608,11 @@ enum { // type: function SHC_3BB0A8C1_0x0058A7EB = 0x0058A7EB, // label: ___updatetmbcinfo + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058A975 = 0x0058A975, - // label: FUN_0058aa10 + // label: crt_0058aa10 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AA10 = 0x0058AA10, @@ -74222,33 +78622,36 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AA19 = 0x0058AA19, - // label: FUN_0058aa93 + // label: crt_0058aa93 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AA93 = 0x0058AA93, // label: __setmbcp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AC6C = 0x0058AC6C, - // label: FUN_0058adcd + // label: crt_0058adcd // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058ADCD = 0x0058ADCD, // type: function SHC_3BB0A8C1_0x0058ADD8 = 0x0058ADD8, // label: ___initmbctable + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AE06 = 0x0058AE06, - // label: FUN_0058ae24 + // label: crt_0058ae24 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AE24 = 0x0058AE24, - // label: FUN_0058ae90 + // label: crt_0058ae90 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AE90 = 0x0058AE90, // label: __encoded_null + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AEFE = 0x0058AEFE, @@ -74256,19 +78659,21 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AF07 = 0x0058AF07, - // label: FUN_0058af75 + // label: crt_0058af75 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AF75 = 0x0058AF75, - // label: FUN_0058af7e + // label: ___set_flsgetvalue // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AF7E = 0x0058AF7E, - // label: FUN_0058afb0 + // label: __mtterm + // label: crt_0058afb0 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AFB0 = 0x0058AFB0, - // label: FUN_0058afed + // label: crt_0058afed // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058AFED = 0x0058AFED, @@ -74276,62 +78681,74 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B0A3 = 0x0058B0A3, - // label: FUN_0058b0ac + // label: crt_0058b0ac // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B0AC = 0x0058B0AC, // label: __getptd + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B123 = 0x0058B123, - // label: FUN_0058b13b + // label: __freefls@4 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B13B = 0x0058B13B, - // label: FUN_0058b247 + // label: crt_0058b247 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B247 = 0x0058B247, - // label: FUN_0058b253 + // label: crt_0058b253 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B253 = 0x0058B253, // label: __mtinit + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B25C = 0x0058B25C, // label: __msize + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B3E0 = 0x0058B3E0, - // label: FUN_0058b47a + // label: crt_0058b47a // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B47A = 0x0058B47A, // label: __SEH_prolog4 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B484 = 0x0058B484, // label: __SEH_epilog4 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B4C9 = 0x0058B4C9, - // label: FUN_0058b4e0 + // label: __except_handler4 + // label: crt_0058b4e0 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B4E0 = 0x0058B4E0, // label: ___heap_select + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B676 = 0x0058B676, // label: __heap_init + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B6D1 = 0x0058B6D1, // label: __mtinitlocks + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B72B = 0x0058B72B, + // label: __mtdeletelocks + // location: // type: function SHC_3BB0A8C1_0x0058B774 = 0x0058B774, // label: Unlock @@ -74339,18 +78756,21 @@ enum { // type: function SHC_3BB0A8C1_0x0058B7C9 = 0x0058B7C9, // label: __mtinitlocknum + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B7DE = 0x0058B7DE, - // label: FUN_0058b898 + // label: crt_0058b898 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B898 = 0x0058B898, // label: __lock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B8A1 = 0x0058B8A1, // label: ___sbh_heap_init + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B8D2 = 0x0058B8D2, @@ -74359,146 +78779,174 @@ enum { // type: function SHC_3BB0A8C1_0x0058B91A = 0x0058B91A, // label: ___sbh_free_block + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058B945 = 0x0058B945, // label: ___sbh_alloc_new_region + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058BC59 = 0x0058BC59, // label: ___sbh_alloc_new_group + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058BD09 = 0x0058BD09, // label: ___sbh_resize_block + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058BE0F = 0x0058BE0F, // label: ___sbh_alloc_block + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C0EE = 0x0058C0EE, // label: __isleadbyte_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C3D1 = 0x0058C3D1, // label: _isleadbyte + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C407 = 0x0058C407, // label: __isctype_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C415 = 0x0058C415, // label: __fileno + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C4CB = 0x0058C4CB, // label: __freebuf + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C4F8 = 0x0058C4F8, - // label: FUN_0058c524 + // label: crt_0058c524 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C524 = 0x0058C524, - // label: FUN_0058c52a + // label: crt_0058c52a // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C52A = 0x0058C52A, - // label: FUN_0058c5db + // label: ___endstdio // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C5DB = 0x0058C5DB, - // label: FUN_0058c5fb + // label: crt_0058c5fb // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C5FB = 0x0058C5FB, - // label: FUN_0058c637 + // label: crt_0058c637 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C637 = 0x0058C637, - // label: UnlockIORelatedLock + // label: HoldStrong_lib::UnlockIORelatedLock + // label: crt_unlockFileStream + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C665 = 0x0058C665, - // label: IORelatedUnlockFunction + // label: HoldStrong_lib::IORelatedUnlockFunction + // label: crt_unlockFileByIndex + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C69B = 0x0058C69B, - // label: FUN_0058c6c5 + // label: crt_0058c6c5 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C6C5 = 0x0058C6C5, - // label: FUN_0058c7e5 + // label: crt_0058c7e5 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C7E5 = 0x0058C7E5, // label: __FF_MSGBANNER + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C985 = 0x0058C985, - // label: FUN_0058c9be + // label: crt_0058c9be // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C9BE = 0x0058C9BE, // label: __callnewh + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C9C8 = 0x0058C9C8, // label: __ioinit + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058C9EA = 0x0058C9EA, - // type: function - SHC_3BB0A8C1_0x0058CC35 = 0x0058CC35, - // label: FUN_0058cc3e + // label: crt_0058cc3e // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058CC3E = 0x0058CC3E, - // label: FUN_0058cede + // label: crt_0058cede // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058CEDE = 0x0058CEDE, - // label: FUN_0058d00b + // label: crt_0058d00b // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D00B = 0x0058D00B, // label: __local_unwind4 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D014 = 0x0058D014, - // label: FUN_0058d0a4 + // label: crt_0058d0a4 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D0A4 = 0x0058D0A4, + // label: __seh_longjmp_unwind4@4 + // location: + // type: function + SHC_3BB0A8C1_0x0058D0EA = 0x0058D0EA, // label: @_EH4_CallFilterFunc@8 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D106 = 0x0058D106, + // label: @_EH4_TransferToHandler@8 + // label: _EH4_TransferToHandler + // location: // type: function SHC_3BB0A8C1_0x0058D11D = 0x0058D11D, - // label: FUN_0058d136 + // label: @_EH4_GlobalUnwind@4 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D136 = 0x0058D136, // label: @_EH4_LocalUnwind@16 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D150 = 0x0058D150, // label: _write_char + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D167 = 0x0058D167, // label: _write_multi_char + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D18C = 0x0058D18C, // label: _write_string + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D1B1 = 0x0058D1B1, - // label: FUN_0058d200 + // label: crt_0058d200 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058D200 = 0x0058D200, @@ -74518,27 +78966,31 @@ enum { SHC_3BB0A8C1_0x0058DB08 = 0x0058DB08, // type: /undefined *32 SHC_3BB0A8C1_0x0058DB0C = 0x0058DB0C, - // label: FUN_0058db10 + // label: crt_0058db10 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058DB10 = 0x0058DB10, // label: __mbtowc_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058DC42 = 0x0058DC42, // label: _mbtowc + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058DD55 = 0x0058DD55, // label: __stbuf + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058DD6C = 0x0058DD6C, - // label: FUN_0058de02 + // label: __ftbuf // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058DE02 = 0x0058DE02, // label: __towlower_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058DE31 = 0x0058DE31, @@ -74549,42 +79001,47 @@ enum { // type: function SHC_3BB0A8C1_0x0058DEDE = 0x0058DEDE, // label: _wcstol + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E0D5 = 0x0058E0D5, // label: _strcpy_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E0FE = 0x0058E0FE, // label: ?_Type_info_dtor@type_info@@CAXPAV1@@Z + // label: HoldStrong_lib::type_info::_Type_info_dtor // label: _Type_info_dtor // location: // location: HoldStrong_lib/type_info // type: function SHC_3BB0A8C1_0x0058E163 = 0x0058E163, - // label: FUN_0058e1ca + // label: crt_0058e1ca // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E1CA = 0x0058E1CA, // label: _strcmp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E1E0 = 0x0058E1E0, // type: function SHC_3BB0A8C1_0x0058E224 = 0x0058E224, - // label: FUN_0058e268 + // label: crt_0058e268 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E268 = 0x0058E268, - // label: FUN_0058e2e5 + // label: crt_0058e2e5 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E2E5 = 0x0058E2E5, - // label: FUN_0058e366 + // label: crt_0058e366 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E366 = 0x0058E366, // label: ___lock_fhandle + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E3D7 = 0x0058E3D7, @@ -74592,14 +79049,21 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E46E = 0x0058E46E, - // label: IORelatedUnlockFunction2 + // label: HoldStrong_lib::IORelatedUnlockFunction2 + // label: crt_unlock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E477 = 0x0058E477, // label: __alloc_osfhnd + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E499 = 0x0058E499, + // label: crt_ehFunclet_0058e566 + // location: + // type: function + SHC_3BB0A8C1_0x0058E566 = 0x0058E566, // label: __alloc_osfhnd_FUN_0058e56c // location: HoldStrong_lib // type: function @@ -74614,11 +79078,11 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E633 = 0x0058E633, - // label: FUN_0058e6b6 + // label: crt_0058e6b6 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E6B6 = 0x0058E6B6, - // label: FUN_0058e7c5 + // label: crt_0058e7c5 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058E7C5 = 0x0058E7C5, @@ -74628,16 +79092,23 @@ enum { SHC_3BB0A8C1_0x0058E7CF = 0x0058E7CF, // label: FID_conflict:__sopen_helper // label: FID_conflict:__wsopen_helper + // label: __sopen_helper + // label: __wsopen_helper // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058EF28 = 0x0058EF28, - // label: FUN_0058efc6 + // label: crt_ehFunclet_0058efc1 + // location: + // type: function + SHC_3BB0A8C1_0x0058EFC1 = 0x0058EFC1, + // label: crt_0058efc6 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058EFC6 = 0x0058EFC6, // label: FID_conflict:__sopen_s // label: FID_conflict:__wsopen_s + // label: __sopen_s // location: // location: HoldStrong_lib // type: function @@ -74648,34 +79119,45 @@ enum { SHC_3BB0A8C1_0x0058F012 = 0x0058F012, // label: FID_conflict:__sopen_helper // label: FID_conflict:__wsopen_helper + // label: __sopen_helper + // label: __wsopen_helper // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058F76C = 0x0058F76C, + // label: crt_ehFunclet_0058f805 + // location: + // type: function + SHC_3BB0A8C1_0x0058F805 = 0x0058F805, // label: __sopen_helper_FUN_0058f80a // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058F80A = 0x0058F80A, // label: __wsopen_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058F838 = 0x0058F838, // label: _strnlen + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058F856 = 0x0058F856, // label: __alloca_probe_16 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058F870 = 0x0058F870, // label: __alloca_probe_8 // location: + // type: function SHC_3BB0A8C1_0x0058F886 = 0x0058F886, // label: __putwch_nolock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058F89C = 0x0058F89C, - // label: FUN_0058f95e + // label: crt_0058f95e // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058F95E = 0x0058F95E, @@ -74686,38 +79168,56 @@ enum { // type: function SHC_3BB0A8C1_0x0058F9DC = 0x0058F9DC, // label: __VEC_memcpy + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FA43 = 0x0058FA43, - // label: FUN_0058fb26 + // label: crt_0058fb26 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FB26 = 0x0058FB26, + // label: ?terminate@@YAXXZ // label: EH_FUN_0058fb2e + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FB2E = 0x0058FB2E, + // label: crt_ehFunclet_0058fb4e + // location: // type: function - SHC_3BB0A8C1_0x0058FB55 = 0x0058FB55, - // label: FUN_0058fb67 + SHC_3BB0A8C1_0x0058FB4E = 0x0058FB4E, + // label: crt_ehFunclet_0058fb52 + // location: + // type: function + SHC_3BB0A8C1_0x0058FB52 = 0x0058FB52, + // label: ?unexpected@@YAXXZ // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FB67 = 0x0058FB67, - // label: FUN_0058fb7a + // label: ?_inconsistency@@YAXXZ // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FB7A = 0x0058FB7A, + // label: crt_ehFunclet_0058fb9e + // location: + // type: function + SHC_3BB0A8C1_0x0058FB9E = 0x0058FB9E, + // label: crt_ehFunclet_0058fba2 + // location: // type: function - SHC_3BB0A8C1_0x0058FBA5 = 0x0058FBA5, + SHC_3BB0A8C1_0x0058FBA2 = 0x0058FBA2, // label: __initp_eh_hooks + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FBB1 = 0x0058FBB1, // label: __CallSettingFrame@12 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FBD0 = 0x0058FBD0, // label: __getbuf + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FC1C = 0x0058FC1C, @@ -74725,15 +79225,16 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FC60 = 0x0058FC60, - // label: FUN_0058fd37 + // label: crt_0058fd37 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FD37 = 0x0058FD37, - // label: FUN_0058fd41 + // label: crt_0058fd41 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0058FD41 = 0x0058FD41, // label: __ftelli64 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059001B = 0x0059001B, @@ -74742,18 +79243,21 @@ enum { // type: function SHC_3BB0A8C1_0x0059005B = 0x0059005B, // label: __fseeki64_nolock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590065 = 0x00590065, // label: __fseeki64 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005900FE = 0x005900FE, - // label: FUN_00590143 + // label: crt_00590143 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590143 = 0x00590143, // label: ___ascii_strnicmp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590150 = 0x00590150, @@ -74764,6 +79268,7 @@ enum { // type: function SHC_3BB0A8C1_0x005901B1 = 0x005901B1, // label: _strtol + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005903DC = 0x005903DC, @@ -74771,59 +79276,77 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590405 = 0x00590405, - // label: FUN_00590429 + // label: crt_00590429 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590429 = 0x00590429, // label: __ValidateImageBase + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590450 = 0x00590450, // label: __FindPESection + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590480 = 0x00590480, // label: __IsNonwritableInCurrentImage + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005904D0 = 0x005904D0, + // label: crt_ehFunclet_00590559 + // location: // type: function - SHC_3BB0A8C1_0x00590570 = 0x00590570, - // label: FUN_0059058b + SHC_3BB0A8C1_0x00590559 = 0x00590559, + // label: crt_ehFunclet_0059056d + // location: + // type: function + SHC_3BB0A8C1_0x0059056D = 0x0059056D, + // label: crt_0059058b // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059058B = 0x0059058B, // label: __initp_misc_winsig + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005906E9 = 0x005906E9, // label: _siglookup + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590702 = 0x00590702, // label: ___get_sigabrt + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590736 = 0x00590736, // label: _raise + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590743 = 0x00590743, + // label: crt_ehFunclet_005908b1 + // location: + // type: function + SHC_3BB0A8C1_0x005908B1 = 0x005908B1, // label: _raise_FUN_005908b7 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005908B7 = 0x005908B7, // type: function SHC_3BB0A8C1_0x005908C6 = 0x005908C6, - // label: FUN_005908f3 + // label: crt_005908f3 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005908F3 = 0x005908F3, // label: ___getlocaleinfo + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005908FD = 0x005908FD, - // label: FUN_00590a57 + // label: crt_00590a57 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590A57 = 0x00590A57, @@ -74832,52 +79355,68 @@ enum { // type: function SHC_3BB0A8C1_0x00590A61 = 0x00590A61, // label: ___crtInitCritSecNoSpinCount@8 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590A6B = 0x00590A6B, // label: ___crtInitCritSecAndSpinCount + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590A7B = 0x00590A7B, + // label: crt_ehFunclet_00590b01 + // location: + // type: function + SHC_3BB0A8C1_0x00590B01 = 0x00590B01, + // label: crt_ehFunclet_00590b18 + // location: // type: function - SHC_3BB0A8C1_0x00590B30 = 0x00590B30, + SHC_3BB0A8C1_0x00590B18 = 0x00590B18, // label: EH_FUN_00590b40 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590B40 = 0x00590B40, - // label: FUN_00590b7d + // label: ___CxxSetUnhandledExceptionFilter // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590B7D = 0x00590B7D, // label: __wincmdln + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590B8B = 0x00590B8B, // label: __setenvp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590BE8 = 0x00590BE8, // label: _parse_cmdline + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590CC3 = 0x00590CC3, // label: __setargv + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590E5B = 0x00590E5B, // label: ___crtGetEnvironmentStringsA + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00590F14 = 0x00590F14, // label: ___security_init_cookie + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00591049 = 0x00591049, // label: ___ansicp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005910DD = 0x005910DD, // label: ___convertcp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00591124 = 0x00591124, @@ -74888,58 +79427,76 @@ enum { // type: function SHC_3BB0A8C1_0x005912D6 = 0x005912D6, // label: ___crtGetStringTypeA + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059148E = 0x0059148E, // label: __calloc_impl + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005914CE = 0x005914CE, - // label: FUN_005915ca + // label: crt_ehFunclet_005915c5 + // location: + // type: function + SHC_3BB0A8C1_0x005915C5 = 0x005915C5, + // label: crt_005915ca // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005915CA = 0x005915CA, // type: function SHC_3BB0A8C1_0x005915D3 = 0x005915D3, // label: _realloc + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005915EC = 0x005915EC, + // label: crt_ehFunclet_0059172a + // location: + // type: function + SHC_3BB0A8C1_0x0059172A = 0x0059172A, // label: _realloc_FUN_00591730 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00591730 = 0x00591730, // type: function SHC_3BB0A8C1_0x00591739 = 0x00591739, - // label: FUN_00591807 + // label: crt_00591807 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00591807 = 0x00591807, // label: __get_lc_time + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00591880 = 0x00591880, // label: ___free_lc_time + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00591C99 = 0x00591C99, // label: ___init_time + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00591E29 = 0x00591E29, // label: ___free_lconv_num + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00591E9C = 0x00591E9C, // label: ___init_numeric + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00591EDC = 0x00591EDC, // label: ___free_lconv_mon + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005920A4 = 0x005920A4, // label: ___init_monetary + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059212D = 0x0059212D, @@ -74948,66 +79505,82 @@ enum { // type: function SHC_3BB0A8C1_0x005923F1 = 0x005923F1, // label: _strcat_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005923F4 = 0x005923F4, // label: _strcspn + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592470 = 0x00592470, // label: _strncpy_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005924B6 = 0x005924B6, // label: _TranslateName + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592569 = 0x00592569, // label: _ProcessCodePage + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005925C9 = 0x005925C9, // label: _TestDefaultCountry + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592640 = 0x00592640, // label: _LcidFromHexString + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059265E = 0x0059265E, // label: _GetPrimaryLen + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592690 = 0x00592690, // label: _CountryEnumProc@4 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005926AB = 0x005926AB, // label: _TestDefaultLanguage + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592741 = 0x00592741, // label: _LangCountryEnumProc@4 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005927B3 = 0x005927B3, // label: _LanguageEnumProc@4 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592983 = 0x00592983, // label: _GetLcidFromLangCountry + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592A42 = 0x00592A42, // label: _GetLcidFromLanguage + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592AA7 = 0x00592AA7, // label: ___get_qualified_locale + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592AE3 = 0x00592AE3, // label: _memcmp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00592CC6 = 0x00592CC6, @@ -75076,10 +79649,12 @@ enum { // type: /pointer SHC_3BB0A8C1_0x00594342 = 0x00594342, // label: _strncmp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594346 = 0x00594346, // label: _strpbrk + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594410 = 0x00594410, @@ -75088,6 +79663,7 @@ enum { // type: function SHC_3BB0A8C1_0x00594450 = 0x00594450, // label: __wopenfile + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594466 = 0x00594466, @@ -75098,42 +79674,57 @@ enum { // type: function SHC_3BB0A8C1_0x005946F2 = 0x005946F2, // label: _strrchr + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594700 = 0x00594700, // label: FID_conflict:__atodbl_l // label: FID_conflict:__atoflt_l + // label: __atodbl_l + // label: __atoflt_l // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059472D = 0x0059472D, // label: FID_conflict:__atodbl_l // label: FID_conflict:__atoflt_l + // label: __atodbl_l + // label: __atoflt_l // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005947D3 = 0x005947D3, // label: __fptostr + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594879 = 0x00594879, // label: ___dtold + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594936 = 0x00594936, // label: __fltout2 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005949F1 = 0x005949F1, // label: __alldvrm + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594A80 = 0x00594A80, // label: __aullshr + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594B60 = 0x00594B60, + // label: crt_00594b7f + // location: + // type: function + SHC_3BB0A8C1_0x00594B7F = 0x00594B7F, // label: __controlfp_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594B88 = 0x00594B88, @@ -75141,17 +79732,25 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594BF2 = 0x00594BF2, + // label: crt_00594c27 + // location: + // type: function + SHC_3BB0A8C1_0x00594C27 = 0x00594C27, + // label: crt_00594c32 + // location: // type: function SHC_3BB0A8C1_0x00594C32 = 0x00594C32, // label: __get_sse2_info + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594C42 = 0x00594C42, - // label: FUN_00594ca2 + // label: ___sse2_available_init // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594CA2 = 0x00594CA2, // label: ___libm_error_support + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594CAF = 0x00594CAF, @@ -75182,77 +79781,98 @@ enum { // type: /pointer SHC_3BB0A8C1_0x00594F5B = 0x00594F5B, // label: __87except + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00594F5F = 0x00594F5F, // label: __getenv_helper_nolock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059505B = 0x0059505B, - // label: FUN_005950dc + // label: __get_printf_count_output // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005950DC = 0x005950DC, // label: __wctomb_s_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005950F2 = 0x005950F2, // label: _wctomb_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595251 = 0x00595251, // label: __aulldvrm + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595270 = 0x00595270, // label: __iswctype_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595305 = 0x00595305, - // label: FUN_00595387 + // label: __fcloseall // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595387 = 0x00595387, - // label: FUN_0059541d + // label: crt_0059541d // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059541D = 0x0059541D, - // label: FUN_00595426 + // label: crt_00595426 // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595426 = 0x00595426, // label: __set_error_mode + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005955E3 = 0x005955E3, // label: __mbsicmp_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595629 = 0x00595629, // label: __mbsicmp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595843 = 0x00595843, // label: __mbsnbcmp_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595856 = 0x00595856, // label: __mbsnbcmp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005959BF = 0x005959BF, // label: __global_unwind2 // location: + // type: function SHC_3BB0A8C1_0x005959D8 = 0x005959D8, + // label: crt_00595a3c + // location: + // type: function + SHC_3BB0A8C1_0x00595A3C = 0x00595A3C, // label: __local_unwind2 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595A3D = 0x00595A3D, // label: __CallSettingFrame_FUN_00595ae4 + // label: __NLG_Notify1 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595AE4 = 0x00595AE4, + // label: __NLG_Notify // label: __local_unwind_FUN_00595aed + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595AED = 0x00595AED, @@ -75271,14 +79891,17 @@ enum { // type: function SHC_3BB0A8C1_0x00595CED = 0x00595CED, // label: ___crtLCMapStringW + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595F4E = 0x00595F4E, // label: __wchartodigit + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00595F8E = 0x00595F8E, // label: __chsize_nolock + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00596110 = 0x00596110, @@ -75291,10 +79914,13 @@ enum { // type: function SHC_3BB0A8C1_0x00596380 = 0x00596380, // label: ___initconout + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005963B4 = 0x005963B4, // label: CloseHandles_FUN_005963d3 + // label: ___termcon + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005963D3 = 0x005963D3, @@ -75305,6 +79931,7 @@ enum { // type: function SHC_3BB0A8C1_0x00596400 = 0x00596400, // label: ___crtGetLocaleInfoW + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059653B = 0x0059653B, @@ -75315,6 +79942,7 @@ enum { // type: function SHC_3BB0A8C1_0x00596576 = 0x00596576, // label: ___crtGetLocaleInfoA + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005966B3 = 0x005966B3, @@ -75325,29 +79953,37 @@ enum { // type: function SHC_3BB0A8C1_0x005966EE = 0x005966EE, // label: __ismbblead + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059673F = 0x0059673F, // label: _xtoa_s@20 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00596752 = 0x00596752, // label: __itoa_s + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059682D = 0x0059682D, // label: _wcsncmp + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00596855 = 0x00596855, // label: FID_conflict:__ld12tod // label: FID_conflict:__ld12tof + // label: __ld12tod + // label: __ld12tof // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059688A = 0x0059688A, // label: FID_conflict:__ld12tod // label: FID_conflict:__ld12tof + // label: __ld12tod + // label: __ld12tof // location: // location: HoldStrong_lib // type: function @@ -75385,26 +80021,32 @@ enum { // type: function SHC_3BB0A8C1_0x005979CE = 0x005979CE, // label: __hw_cw + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00598294 = 0x00598294, // label: ___hw_cw_sse2 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00598322 = 0x00598322, // label: __control87 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005983C2 = 0x005983C2, // label: __mbsnbicoll_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005986C5 = 0x005986C5, // label: __mbsnbicoll + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005987B1 = 0x005987B1, // label: ___wtomb_environ + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005987C8 = 0x005987C8, @@ -75415,6 +80057,7 @@ enum { // type: function SHC_3BB0A8C1_0x0059885D = 0x0059885D, // label: ___crtGetStringTypeW + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00598A81 = 0x00598A81, @@ -75423,6 +80066,7 @@ enum { // type: function SHC_3BB0A8C1_0x00598ABF = 0x00598ABF, // label: ___mtold12 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00598C2F = 0x00598C2F, @@ -75433,18 +80077,22 @@ enum { // type: function SHC_3BB0A8C1_0x00598DFB = 0x00598DFB, // label: ___crtCompareStringA + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00599184 = 0x00599184, // label: __strnicoll_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005991C4 = 0x005991C4, // label: _findenv + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005992BC = 0x005992BC, // label: _copy_environ + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00599309 = 0x00599309, @@ -75453,20 +80101,24 @@ enum { // type: function SHC_3BB0A8C1_0x00599366 = 0x00599366, // label: __strdup + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005995B2 = 0x005995B2, // label: __mbschr_l + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00599602 = 0x00599602, // label: __mbschr + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005996BC = 0x005996BC, // type: function SHC_3BB0A8C1_0x005996D0 = 0x005996D0, // label: _strchr + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x005996E0 = 0x005996E0, @@ -75518,6 +80170,14 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00599920 = 0x00599920, + // label: crt_0059992b + // location: + // type: function + SHC_3BB0A8C1_0x0059992B = 0x0059992B, + // label: crt_00599950 + // location: + // type: function + SHC_3BB0A8C1_0x00599950 = 0x00599950, // label: Unwind@00599970 // location: HoldStrong_lib // type: function @@ -75670,7 +80330,9 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00599C48 = 0x00599C48, - // label: ResourceStringLoadCxxFrameHandlerUnk + // label: HoldStrong_lib::ResourceStringLoadCxxFrameHandlerUnk + // label: crt_cxxFrameHandler_599c50 + // location: // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x00599C50 = 0x00599C50, @@ -75894,6 +80556,10 @@ enum { // location: HoldStrong_lib // type: function SHC_3BB0A8C1_0x0059A10F = 0x0059A10F, + // label: crt_0059a117 + // location: + // type: function + SHC_3BB0A8C1_0x0059A117 = 0x0059A117, // label: Unwind@0059a132 // location: HoldStrong_lib // type: function @@ -75922,7 +80588,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A1F0 = 0x0059A1F0, - // label: Constructor_MenuView_UnusedSomeMissionStartUnk + // label: Constructor_MenuView_UnusedMissionStart + // label: _HoldStrong::Global::Init::Constructor_MenuView_UnusedSomeMissionStartUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A220 = 0x0059A220, @@ -75934,7 +80602,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A280 = 0x0059A280, - // label: Constructor_MenuView_Unknown21 + // label: Constructor_MenuView_MainMenuModal21 + // label: _HoldStrong::Global::Init::Constructor_MenuView_Unknown21 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A2B0 = 0x0059A2B0, @@ -75942,11 +80612,15 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A2E0 = 0x0059A2E0, - // label: Constructor_MenuView_Unknown33 + // label: Constructor_MenuView_LobbyReadyLaunch33 + // label: _HoldStrong::Global::Init::Constructor_MenuView_Unknown33 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A310 = 0x0059A310, - // label: Constructor_MenuView_Unknown61ReturnToSkrimishMenuUnk + // label: Constructor_MenuView_ReturnToSkirmishMenu61 + // label: _HoldStrong::Global::Init::Constructor_MenuView_Unknown61ReturnToSkrimishMenuUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A340 = 0x0059A340, @@ -75954,7 +80628,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A370 = 0x0059A370, - // label: Constructor_MenuView_Unknown49DoesNothingUnk + // label: Constructor_MenuView_Placeholder49DoesNothing + // label: _HoldStrong::Global::Init::Constructor_MenuView_Unknown49DoesNothingUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A3A0 = 0x0059A3A0, @@ -75998,11 +80674,15 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A580 = 0x0059A580, - // label: Constructor_MenuView_Unknown26_CampaignRelatedUnk + // label: Constructor_MenuView_CampaignCredits26 + // label: _HoldStrong::Global::Init::Constructor_MenuView_Unknown26_CampaignRelatedUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A5B0 = 0x0059A5B0, - // label: Constructor_MenuView_CampaignUnk + // label: Constructor_MenuView_Campaign27 + // label: _HoldStrong::Global::Init::Constructor_MenuView_CampaignUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059A5E0 = 0x0059A5E0, @@ -76098,7 +80778,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059AA30 = 0x0059AA30, - // label: Constructor_Menu_Unknown_ManyThings + // label: Constructor_Menu_MultiItemShared + // label: _HoldStrong::Global::Init::Constructor_Menu_Unknown_ManyThings + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059AA60 = 0x0059AA60, @@ -76130,7 +80812,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059AAD0 = 0x0059AAD0, - // label: Constructor_Menu_UnusedSomeMissionStartUnk + // label: Constructor_Menu_UnusedMissionStart + // label: _HoldStrong::Global::Init::Constructor_Menu_UnusedSomeMissionStartUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059AAE0 = 0x0059AAE0, @@ -76230,11 +80914,15 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059AC60 = 0x0059AC60, - // label: Constructor_Menu_Unknown26CampaignRelatedUnk + // label: Constructor_Menu_CampaignCredits26 + // label: _HoldStrong::Global::Init::Constructor_Menu_Unknown26CampaignRelatedUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059AC70 = 0x0059AC70, - // label: Constructor_Menu_Unknown27CampaignUnk + // label: Constructor_Menu_Campaign27 + // label: _HoldStrong::Global::Init::Constructor_Menu_Unknown27CampaignUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059AC80 = 0x0059AC80, @@ -76274,7 +80962,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059AD10 = 0x0059AD10, - // label: Constructor_Menu_GameLostUnk + // label: Constructor_Menu_GameLost + // label: _HoldStrong::Global::Init::Constructor_Menu_GameLostUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059AD20 = 0x0059AD20, @@ -76470,7 +81160,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059B020 = 0x0059B020, - // label: Constructor_Menu_UnusedSiegeAttackingForceUnk + // label: Constructor_Menu_UnusedSiegeAttackingForce + // label: _HoldStrong::Global::Init::Constructor_Menu_UnusedSiegeAttackingForceUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059B030 = 0x0059B030, @@ -76550,7 +81242,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059B220 = 0x0059B220, - // label: Constructor_MenuModal_DebugDataZoneDataUnk + // label: Constructor_MenuModal_DebugDataZoneData + // label: _HoldStrong::Global::Init::Constructor_MenuModal_DebugDataZoneDataUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059B260 = 0x0059B260, @@ -76670,7 +81364,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059B9A0 = 0x0059B9A0, - // label: Constructor_MenuModal_UnusedSiegeAttackingForceUnk + // label: Constructor_MenuModal_UnusedSiegeAttackingForce + // label: _HoldStrong::Global::Init::Constructor_MenuModal_UnusedSiegeAttackingForceUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059B9E0 = 0x0059B9E0, @@ -76822,11 +81518,15 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C340 = 0x0059C340, - // label: Constructor_MenuModal_DebugDataAivStateUnk + // label: Constructor_MenuModal_DebugDataAivState + // label: _HoldStrong::Global::Init::Constructor_MenuModal_DebugDataAivStateUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C380 = 0x0059C380, - // label: CreateUnknownDisplayElement0 + // label: CreateChatAnchorPlaceholderDisplayElement0 + // label: _HoldStrong::Global::Init::CreateUnknownDisplayElement0 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C3C0 = 0x0059C3C0, @@ -76834,7 +81534,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C3E0 = 0x0059C3E0, - // label: CreateUnknownDisplayElement18 + // label: CreateTopAnchorPlaceholderDisplayElement18 + // label: _HoldStrong::Global::Init::CreateUnknownDisplayElement18 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C400 = 0x0059C400, @@ -76846,7 +81548,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C440 = 0x0059C440, - // label: CreateInGameChatDisplayElementUnk + // label: CreateInGameChatDisplayElement + // label: _HoldStrong::Global::Init::CreateInGameChatDisplayElementUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C460 = 0x0059C460, @@ -76862,11 +81566,15 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C4C0 = 0x0059C4C0, - // label: CreateUnknownDisplayElement7 + // label: CreateStopwatchDurationDisplayElement + // label: _HoldStrong::Global::Init::CreateUnknownDisplayElement7 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C4E0 = 0x0059C4E0, - // label: CreateSomeMissionNumberUnkDisplayElement9 + // label: CreateMissionNumberDisplayElement + // label: _HoldStrong::Global::Init::CreateSomeMissionNumberUnkDisplayElement9 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C500 = 0x0059C500, @@ -76882,7 +81590,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C560 = 0x0059C560, - // label: CreateSomeMultiplayerInfoUnkDisplayElement19 + // label: CreateMultiplayerResyncOverlayDisplayElement + // label: _HoldStrong::Global::Init::CreateSomeMultiplayerInfoUnkDisplayElement19 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C580 = 0x0059C580, @@ -76894,7 +81604,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C5C0 = 0x0059C5C0, - // label: CreatePlayerPingUnkDisplayElement22 + // label: CreatePlayerPingDisplayElement + // label: _HoldStrong::Global::Init::CreatePlayerPingUnkDisplayElement22 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C5E0 = 0x0059C5E0, @@ -76906,7 +81618,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C620 = 0x0059C620, - // label: CreateUnknownDisplayElement25 + // label: CreateSkirmishPointsPerPlayerDebugOverlayElement + // label: _HoldStrong::Global::Init::CreateUnknownDisplayElement25 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C640 = 0x0059C640, @@ -76914,7 +81628,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C660 = 0x0059C660, - // label: CreateNoRushDisplayElementUnk + // label: CreateNoRushDisplayElement + // label: _HoldStrong::Global::Init::CreateNoRushDisplayElementUnk + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C680 = 0x0059C680, @@ -76922,7 +81638,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C6A0 = 0x0059C6A0, - // label: CreateSomeMultiplayerInfoUnkDisplayElement28 + // label: CreateLaggingPlayerEjectOverlayDisplayElement + // label: _HoldStrong::Global::Init::CreateSomeMultiplayerInfoUnkDisplayElement28 + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C6C0 = 0x0059C6C0, @@ -76930,7 +81648,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C6E0 = 0x0059C6E0, - // label: Constructor_UnknownClass1 + // label: _HoldStrong::Global::Init::Constructor_UnknownClass1 + // label: staticInit_emptyGlobalCtorA + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C700 = 0x0059C700, @@ -76970,7 +81690,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C820 = 0x0059C820, - // label: Constructor_UnusedClass1Unk + // label: _HoldStrong::Global::Init::Constructor_UnusedClass1Unk + // label: staticInit_emptyGlobalCtorB + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C840 = 0x0059C840, @@ -77002,7 +81724,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C920 = 0x0059C920, - // label: Constructor_Stopwatch_Unknown + // label: Constructor_Stopwatch + // label: _HoldStrong::Global::Init::Constructor_Stopwatch_Unknown + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059C940 = 0x0059C940, @@ -77130,7 +81854,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059CCE6 = 0x0059CCE6, - // label: Constructor_CreateLocaleMemoryRelated + // label: _HoldStrong::Global::Init::Constructor_CreateLocaleMemoryRelated + // label: staticInit_localeMemoryAtexit + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059CCFC = 0x0059CCFC, @@ -77138,7 +81864,9 @@ enum { // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059CD08 = 0x0059CD08, - // label: Constructor_CRelated + // label: _HoldStrong::Global::Init::Constructor_CRelated + // label: staticInit_crtObjectAtexit + // location: // location: OpenSHC/Global/Init // type: function SHC_3BB0A8C1_0x0059CD1E = 0x0059CD1E, @@ -77158,7 +81886,9 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CD60 = 0x0059CD60, - // label: Destructor_MenuView_UnusedSomeMissionStartUnk + // label: Destructor_MenuView_UnusedMissionStart + // label: _HoldStrong::Meta::Destructor_MenuView_UnusedSomeMissionStartUnk + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CD70 = 0x0059CD70, @@ -77170,7 +81900,9 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CD90 = 0x0059CD90, - // label: Destructor_MenuView_Unknown21 + // label: Destructor_MenuView_MainMenuModal21 + // label: _HoldStrong::Meta::Destructor_MenuView_Unknown21 + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CDA0 = 0x0059CDA0, @@ -77178,11 +81910,15 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CDB0 = 0x0059CDB0, - // label: Destructor_MenuView_Unknown33 + // label: Destructor_MenuView_LobbyReadyLaunch33 + // label: _HoldStrong::Meta::Destructor_MenuView_Unknown33 + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CDC0 = 0x0059CDC0, - // label: Destructor_MenuView_Unknown61ReturnToSkrimishMenuUnk + // label: Destructor_MenuView_ReturnToSkirmishMenu61 + // label: _HoldStrong::Meta::Destructor_MenuView_Unknown61ReturnToSkrimishMenuUnk + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CDD0 = 0x0059CDD0, @@ -77190,7 +81926,9 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CDE0 = 0x0059CDE0, - // label: Destructor_MenuView_Unknown49DoesNothingUnk + // label: Destructor_MenuView_Placeholder49DoesNothing + // label: _HoldStrong::Meta::Destructor_MenuView_Unknown49DoesNothingUnk + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CDF0 = 0x0059CDF0, @@ -77234,11 +81972,15 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CE90 = 0x0059CE90, - // label: Destructor_MenuView_Unknown26_CampaignRelatedUnk + // label: Destructor_MenuView_CampaignCredits26 + // label: _HoldStrong::Meta::Destructor_MenuView_Unknown26_CampaignRelatedUnk + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CEA0 = 0x0059CEA0, - // label: Destructor_MenuView_CampaignUnk + // label: Destructor_MenuView_Campaign27 + // label: _HoldStrong::Meta::Destructor_MenuView_CampaignUnk + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059CEB0 = 0x0059CEB0, @@ -77354,7 +82096,9 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D070 = 0x0059D070, - // label: Destructor_MenuModal_DebugDataZoneDataUnk + // label: Destructor_MenuModal_DebugDataZoneData + // label: _HoldStrong::Meta::Destructor_MenuModal_DebugDataZoneDataUnk + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D080 = 0x0059D080, @@ -77474,7 +82218,9 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D250 = 0x0059D250, - // label: Destructor_MenuModal_UnusedSiegeAttackingForceUnk + // label: Destructor_MenuModal_UnusedSiegeAttackingForce + // label: _HoldStrong::Meta::Destructor_MenuModal_UnusedSiegeAttackingForceUnk + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D260 = 0x0059D260, @@ -77578,7 +82324,9 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D3F0 = 0x0059D3F0, - // label: Destructor_MenuModal_ReceiveMapFromUnk + // label: Destructor_MenuModal_ReceiveMapFrom + // label: _HoldStrong::Meta::Destructor_MenuModal_ReceiveMapFromUnk + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D400 = 0x0059D400, @@ -77626,7 +82374,9 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D4B0 = 0x0059D4B0, - // label: Destructor_MenuModal_DebugDataAivStateUnk + // label: Destructor_MenuModal_DebugDataAivState + // label: _HoldStrong::Meta::Destructor_MenuModal_DebugDataAivStateUnk + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D4C0 = 0x0059D4C0, @@ -77702,7 +82452,9 @@ enum { // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D5E0 = 0x0059D5E0, - // label: Destructor_Stopwatch_Unknown + // label: Destructor_Stopwatch + // label: _HoldStrong::Meta::Destructor_Stopwatch_Unknown + // location: // location: OpenSHC/Meta // type: function SHC_3BB0A8C1_0x0059D5F0 = 0x0059D5F0, @@ -78848,10 +83600,14 @@ enum { SHC_3BB0A8C1_0x0059E808 = 0x0059E808, // type: /undefined *32 SHC_3BB0A8C1_0x0059E80C = 0x0059E80C, + // type: /undefined4 + SHC_3BB0A8C1_0x0059E814 = 0x0059E814, // type: /pointer SHC_3BB0A8C1_0x0059E818 = 0x0059E818, // type: /pointer SHC_3BB0A8C1_0x0059E81C = 0x0059E81C, + // type: /undefined4 + SHC_3BB0A8C1_0x0059E824 = 0x0059E824, // type: /string SHC_3BB0A8C1_0x0059E830 = 0x0059E830, // type: /double @@ -81720,6 +86476,8 @@ enum { // location: // type: /char[24] SHC_3BB0A8C1_0x005A4DD8 = 0x005A4DD8, + // label: g_fVolumeTweakBase + // location: // type: /float SHC_3BB0A8C1_0x005A4DF0 = 0x005A4DF0, // type: /double @@ -81754,14 +86512,22 @@ enum { SHC_3BB0A8C1_0x005A4EBC = 0x005A4EBC, // type: /string SHC_3BB0A8C1_0x005A4ECC = 0x005A4ECC, + // label: g_fAmbientFadeThresholdA + // location: // type: /float SHC_3BB0A8C1_0x005A4EDC = 0x005A4EDC, + // label: g_fAmbientFadeThresholdB + // location: // type: /float SHC_3BB0A8C1_0x005A4EE0 = 0x005A4EE0, + // label: g_fAmbientFadeThresholdC + // location: // type: /float SHC_3BB0A8C1_0x005A4EE4 = 0x005A4EE4, // type: /double SHC_3BB0A8C1_0x005A4EE8 = 0x005A4EE8, + // label: g_fAmbientFadeStep + // location: // type: /float SHC_3BB0A8C1_0x005A4EF0 = 0x005A4EF0, // type: /string @@ -82439,19 +87205,19 @@ enum { // type: /string SHC_3BB0A8C1_0x005A61EC = 0x005A61EC, // label: vftable_meta_ptr - // location: std/basic_ostream_> + // location: std/basic_ostream_> // type: /pointer SHC_3BB0A8C1_0x005A61F8 = 0x005A61F8, // label: vftable - // location: std/basic_ostream_> + // location: std/basic_ostream_> // type: /pointer[1] SHC_3BB0A8C1_0x005A61FC = 0x005A61FC, // label: vftable_meta_ptr - // location: std/basic_ios_> + // location: std/basic_ios_> // type: /pointer SHC_3BB0A8C1_0x005A6200 = 0x005A6200, // label: vftable - // location: std/basic_ios_> + // location: std/basic_ios_> // type: /pointer[1] SHC_3BB0A8C1_0x005A6204 = 0x005A6204, // type: /string @@ -82475,11 +87241,11 @@ enum { // type: /string SHC_3BB0A8C1_0x005A62A0 = 0x005A62A0, // label: vftable_meta_ptr - // location: std/basic_streambuf_> + // location: std/basic_streambuf_> // type: /pointer SHC_3BB0A8C1_0x005A62BC = 0x005A62BC, // label: vftable - // location: std/basic_streambuf_> + // location: std/basic_streambuf_> // type: /pointer[14] SHC_3BB0A8C1_0x005A62C0 = 0x005A62C0, // type: /string @@ -82503,11 +87269,11 @@ enum { // type: /string SHC_3BB0A8C1_0x005A6348 = 0x005A6348, // label: vftable_meta_ptr - // location: std/basic_filebuf_> + // location: std/basic_filebuf_> // type: /pointer SHC_3BB0A8C1_0x005A6354 = 0x005A6354, // label: vftable - // location: std/basic_filebuf_> + // location: std/basic_filebuf_> // type: /pointer[14] SHC_3BB0A8C1_0x005A6358 = 0x005A6358, // label: vftable_meta_ptr @@ -82585,11 +87351,11 @@ enum { // type: /string SHC_3BB0A8C1_0x005A6500 = 0x005A6500, // label: vftable_meta_ptr - // location: std/basic_ofstream_> + // location: std/basic_ofstream_> // type: /pointer SHC_3BB0A8C1_0x005A650C = 0x005A650C, // label: vftable - // location: std/basic_ofstream_> + // location: std/basic_ofstream_> // type: /pointer[1] SHC_3BB0A8C1_0x005A6510 = 0x005A6510, // type: /pointer @@ -85254,12 +90020,20 @@ enum { SHC_3BB0A8C1_0x005AC10C = 0x005AC10C, // type: /string SHC_3BB0A8C1_0x005AC118 = 0x005AC118, + // label: g_SessionGuidPart1 + // location: // type: /undefined4 SHC_3BB0A8C1_0x005AC12C = 0x005AC12C, + // label: g_SessionGuidPart2 + // location: // type: /undefined4 SHC_3BB0A8C1_0x005AC130 = 0x005AC130, + // label: g_SessionGuidPart3 + // location: // type: /undefined4 SHC_3BB0A8C1_0x005AC134 = 0x005AC134, + // label: g_SessionGuidPart4 + // location: // type: /undefined4 SHC_3BB0A8C1_0x005AC138 = 0x005AC138, // label: vftable_meta_ptr @@ -85308,6 +90082,8 @@ enum { SHC_3BB0A8C1_0x005AC19C = 0x005AC19C, // type: /undefined4 SHC_3BB0A8C1_0x005AC1A0 = 0x005AC1A0, + // type: /undefined4 + SHC_3BB0A8C1_0x005AC1A4 = 0x005AC1A4, // type: ntddk_32/WCHAR[2] SHC_3BB0A8C1_0x005AC1D8 = 0x005AC1D8, // type: ntddk_32/WCHAR[2] @@ -85364,6 +90140,10 @@ enum { // location: type_info // type: /pointer[1] SHC_3BB0A8C1_0x005AC264 = 0x005AC264, + // type: /undefined4 + SHC_3BB0A8C1_0x005AC268 = 0x005AC268, + // type: /undefined4 + SHC_3BB0A8C1_0x005AC26C = 0x005AC26C, // type: /int SHC_3BB0A8C1_0x005AC27C = 0x005AC27C, // type: /string @@ -85566,6 +90346,8 @@ enum { SHC_3BB0A8C1_0x005ACE48 = 0x005ACE48, // type: /double SHC_3BB0A8C1_0x005ACE50 = 0x005ACE50, + // type: /undefined2 + SHC_3BB0A8C1_0x005ACE58 = 0x005ACE58, // type: /longdouble SHC_3BB0A8C1_0x005ACE5A = 0x005ACE5A, // type: /double @@ -89233,7 +94015,7 @@ enum { // type: /RTTIBaseClassDescriptor SHC_3BB0A8C1_0x005B29DC = 0x005B29DC, // label: RTTI_Complete_Object_Locator - // location: std/basic_ostream_> + // location: std/basic_ostream_> // type: /RTTICompleteObjectLocator SHC_3BB0A8C1_0x005B29F8 = 0x005B29F8, // label: RTTI_Class_Hierarchy_Descriptor @@ -89273,11 +94055,11 @@ enum { // type: /RTTIBaseClassDescriptor SHC_3BB0A8C1_0x005B2AC0 = 0x005B2AC0, // label: RTTI_Complete_Object_Locator - // location: std/basic_ios_> + // location: std/basic_ios_> // type: /RTTICompleteObjectLocator SHC_3BB0A8C1_0x005B2ADC = 0x005B2ADC, // label: RTTI_Complete_Object_Locator - // location: std/basic_streambuf_> + // location: std/basic_streambuf_> // type: /RTTICompleteObjectLocator SHC_3BB0A8C1_0x005B2AF0 = 0x005B2AF0, // label: RTTI_Class_Hierarchy_Descriptor @@ -89293,7 +94075,7 @@ enum { // type: /RTTIBaseClassDescriptor SHC_3BB0A8C1_0x005B2B1C = 0x005B2B1C, // label: RTTI_Complete_Object_Locator - // location: std/basic_filebuf_> + // location: std/basic_filebuf_> // type: /RTTICompleteObjectLocator SHC_3BB0A8C1_0x005B2B38 = 0x005B2B38, // label: RTTI_Class_Hierarchy_Descriptor @@ -89373,7 +94155,7 @@ enum { // type: /RTTIBaseClassDescriptor SHC_3BB0A8C1_0x005B2CA4 = 0x005B2CA4, // label: RTTI_Complete_Object_Locator - // location: std/basic_ofstream_> + // location: std/basic_ofstream_> // type: /RTTICompleteObjectLocator SHC_3BB0A8C1_0x005B2CC0 = 0x005B2CC0, // label: RTTI_Class_Hierarchy_Descriptor @@ -91837,6 +96619,7 @@ enum { // label: RTTI_Type_Descriptor // label: class_std::basic_ostream_>_RTTI_Type_Descriptor // location: + // location: std/basic_ostream_> // location: std/basic_ostream_> // type: /TypeDescriptor SHC_3BB0A8C1_0x00B384C0 = 0x00B384C0, @@ -91845,6 +96628,7 @@ enum { // label: RTTI_Type_Descriptor // label: class_std::basic_ios_>_RTTI_Type_Descriptor // location: + // location: std/basic_ios_> // location: std/basic_ios_> // type: /TypeDescriptor SHC_3BB0A8C1_0x00B384FC = 0x00B384FC, @@ -91853,6 +96637,7 @@ enum { // label: RTTI_Type_Descriptor // label: class_std::basic_streambuf_>_RTTI_Type_Descriptor // location: + // location: std/basic_streambuf_> // location: std/basic_streambuf_> // type: /TypeDescriptor SHC_3BB0A8C1_0x00B38534 = 0x00B38534, @@ -91861,6 +96646,7 @@ enum { // label: RTTI_Type_Descriptor // label: class_std::basic_filebuf_>_RTTI_Type_Descriptor // location: + // location: std/basic_filebuf_> // location: std/basic_filebuf_> // type: /TypeDescriptor SHC_3BB0A8C1_0x00B38570 = 0x00B38570, @@ -91909,6 +96695,7 @@ enum { // label: RTTI_Type_Descriptor // label: class_std::basic_ofstream_>_RTTI_Type_Descriptor // location: + // location: std/basic_ofstream_> // location: std/basic_ofstream_> // type: /TypeDescriptor SHC_3BB0A8C1_0x00B38648 = 0x00B38648, @@ -92012,6 +96799,9 @@ enum { // label: VFX_TauntAnimations // location: SHC_3BB0A8C1_0x00B3A090 = 0x00B3A090, + // label: g_AISpeechBikReactionTable + // location: + SHC_3BB0A8C1_0x00B3A200 = 0x00B3A200, // label: DAT_DifficultyEventMultipliers // location: SHC_3BB0A8C1_0x00B3B7E0 = 0x00B3B7E0, @@ -92121,9 +96911,11 @@ enum { // type: OpenSHC/AI/AIV/AIVDefinedData SHC_3BB0A8C1_0x00B46124 = 0x00B46124, // label: DAT_AIVSectionAddressArray + // label: DAT_AIVSectionAddressArray_14 // location: SHC_3BB0A8C1_0x00B46128 = 0x00B46128, // label: DAT_AIVFileNames + // label: DAT_AIVFileNames_16x8x50 // location: SHC_3BB0A8C1_0x00B46358 = 0x00B46358, // label: DAT_BuildingLocationFindingOffsetArray @@ -92699,6 +97491,8 @@ enum { SHC_3BB0A8C1_0x00B94350 = 0x00B94350, // type: /pointer SHC_3BB0A8C1_0x00B94360 = 0x00B94360, + // type: /undefined4 + SHC_3BB0A8C1_0x00B94364 = 0x00B94364, // type: /pointer SHC_3BB0A8C1_0x00B94368 = 0x00B94368, // type: /pointer @@ -92736,9 +97530,21 @@ enum { // type: /pointer SHC_3BB0A8C1_0x00B943C0 = 0x00B943C0, // type: /undefined4 + SHC_3BB0A8C1_0x00B944F0 = 0x00B944F0, + // type: /undefined4 + SHC_3BB0A8C1_0x00B94530 = 0x00B94530, + // type: /undefined4 SHC_3BB0A8C1_0x00B94534 = 0x00B94534, // type: /undefined4 + SHC_3BB0A8C1_0x00B94538 = 0x00B94538, + // type: /undefined4 + SHC_3BB0A8C1_0x00B9453C = 0x00B9453C, + // type: /undefined4 SHC_3BB0A8C1_0x00B94540 = 0x00B94540, + // label: g_dwCrtDateValue + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00B94544 = 0x00B94544, // type: /undefined4 SHC_3BB0A8C1_0x00B94548 = 0x00B94548, // type: /undefined4 @@ -92755,6 +97561,8 @@ enum { SHC_3BB0A8C1_0x00B945E4 = 0x00B945E4, // type: /undefined4 SHC_3BB0A8C1_0x00B945E8 = 0x00B945E8, + // type: /undefined4 + SHC_3BB0A8C1_0x00B945EC = 0x00B945EC, // type: /pointer SHC_3BB0A8C1_0x00B94750 = 0x00B94750, // type: /pointer @@ -92779,6 +97587,8 @@ enum { SHC_3BB0A8C1_0x00B94B88 = 0x00B94B88, // type: /undefined4 SHC_3BB0A8C1_0x00B94BB8 = 0x00B94BB8, + // label: g_dwCrtPerThreadLocaleMask + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B94C78 = 0x00B94C78, // type: /undefined4 @@ -92799,10 +97609,16 @@ enum { SHC_3BB0A8C1_0x00B94D60 = 0x00B94D60, // type: /pointer SHC_3BB0A8C1_0x00B94D68 = 0x00B94D68, + // label: g_dwCrtNewHandlerSlot + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B94D70 = 0x00B94D70, + // label: g_dwCrtTlsIndex + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B94D74 = 0x00B94D74, + // label: g_dwCrtMultiThreadLockArray + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B94D80 = 0x00B94D80, // type: /undefined4 @@ -92816,11 +97632,15 @@ enum { // type: /undefined4 SHC_3BB0A8C1_0x00B94EB0 = 0x00B94EB0, // type: /undefined4 + SHC_3BB0A8C1_0x00B94ED0 = 0x00B94ED0, + // type: /undefined4 SHC_3BB0A8C1_0x00B95120 = 0x00B95120, // type: /undefined4 SHC_3BB0A8C1_0x00B95128 = 0x00B95128, // type: /pointer SHC_3BB0A8C1_0x00B9512C = 0x00B9512C, + // type: /pointer + SHC_3BB0A8C1_0x00B95134 = 0x00B95134, // type: /undefined1 SHC_3BB0A8C1_0x00B951DC = 0x00B951DC, // type: /undefined1 @@ -92828,6 +97648,8 @@ enum { // type: /pointer SHC_3BB0A8C1_0x00B95218 = 0x00B95218, // type: /undefined4 + SHC_3BB0A8C1_0x00B95220 = 0x00B95220, + // type: /undefined4 SHC_3BB0A8C1_0x00B952A8 = 0x00B952A8, // type: /undefined4 SHC_3BB0A8C1_0x00B952AC = 0x00B952AC, @@ -92944,8 +97766,16 @@ enum { // type: /pointer SHC_3BB0A8C1_0x00B953A8 = 0x00B953A8, // type: /undefined4 + SHC_3BB0A8C1_0x00B953C0 = 0x00B953C0, + // type: /undefined4 + SHC_3BB0A8C1_0x00B953C4 = 0x00B953C4, + // type: /undefined4 SHC_3BB0A8C1_0x00B953C8 = 0x00B953C8, // type: /undefined4 + SHC_3BB0A8C1_0x00B953CC = 0x00B953CC, + // type: /undefined4 + SHC_3BB0A8C1_0x00B953D0 = 0x00B953D0, + // type: /undefined4 SHC_3BB0A8C1_0x00B953F8 = 0x00B953F8, // type: /undefined4 SHC_3BB0A8C1_0x00B953FC = 0x00B953FC, @@ -92981,6 +97811,8 @@ enum { SHC_3BB0A8C1_0x00B95464 = 0x00B95464, // type: /undefined4 SHC_3BB0A8C1_0x00B95468 = 0x00B95468, + // label: g_dwCrtFpControl + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B9546C = 0x00B9546C, // type: /undefined4 @@ -93020,6 +97852,8 @@ enum { // type: /pointer SHC_3BB0A8C1_0x00B95760 = 0x00B95760, // type: /pointer + SHC_3BB0A8C1_0x00B95764 = 0x00B95764, + // type: /pointer SHC_3BB0A8C1_0x00B95768 = 0x00B95768, // type: winnls/MultiByteToWideChar * SHC_3BB0A8C1_0x00B9576C = 0x00B9576C, @@ -93049,12 +97883,18 @@ enum { SHC_3BB0A8C1_0x00B95948 = 0x00B95948, // type: /int SHC_3BB0A8C1_0x00B95950 = 0x00B95950, + // label: g_dwCreditsInitFlag + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B95954 = 0x00B95954, + // type: /undefined4 + SHC_3BB0A8C1_0x00B95958 = 0x00B95958, // label: DAT_UnknownGFXIndex // location: // type: /int SHC_3BB0A8C1_0x00B9595C = 0x00B9595C, + // label: g_dwMenuSelectedPlayerSlot + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B95960 = 0x00B95960, // label: DAT_MainMenuSwingSwordBool @@ -93067,6 +97907,8 @@ enum { SHC_3BB0A8C1_0x00B95968 = 0x00B95968, // type: /int SHC_3BB0A8C1_0x00B95AB8 = 0x00B95AB8, + // label: g_nMainMenuCurrentItem + // location: // type: /int SHC_3BB0A8C1_0x00B95ABC = 0x00B95ABC, // label: TIME_IntroVideo_Prepare @@ -93081,6 +97923,8 @@ enum { // location: // type: /int[21] SHC_3BB0A8C1_0x00B95AC8 = 0x00B95AC8, + // label: g_dwGameStartTimeMs + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00B95B1C = 0x00B95B1C, // label: DAT_HighlightedSkirmishType @@ -93099,14 +97943,22 @@ enum { // location: // type: /int[9] SHC_3BB0A8C1_0x00B95B40 = 0x00B95B40, + // label: g_nGametypeSelectionFlag + // location: // type: /int SHC_3BB0A8C1_0x00B95B64 = 0x00B95B64, + // label: g_dwArmySwitchTabIndex + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B95B68 = 0x00B95B68, // type: /undefined4 SHC_3BB0A8C1_0x00B95B6C = 0x00B95B6C, + // label: g_dwCreditsScrollCounter + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B95B70 = 0x00B95B70, + // label: g_dwMapListScrollRange + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B95B74 = 0x00B95B74, // label: DAT_MapNameCache @@ -93115,6 +97967,8 @@ enum { SHC_3BB0A8C1_0x00B95B78 = 0x00B95B78, // type: /undefined4 SHC_3BB0A8C1_0x00B95F64 = 0x00B95F64, + // label: g_nMenuViewInitFlag + // location: // type: /int SHC_3BB0A8C1_0x00B95F68 = 0x00B95F68, // type: /int @@ -93135,28 +97989,48 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00B960C8 = 0x00B960C8, + // label: g_bAdvancedOptionsModalState + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00B960CC = 0x00B960CC, // label: DAT_IntroTimestamp // location: // type: /dword SHC_3BB0A8C1_0x00B960D8 = 0x00B960D8, + // label: g_dwLobbyMapListSelection + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B960DC = 0x00B960DC, + // label: g_dwCustomScenarioInitFlag + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00B960E4 = 0x00B960E4, // label: DAT_ButtonBackgroundBlendStrength // location: // type: /undefined4 SHC_3BB0A8C1_0x00B960E8 = 0x00B960E8, + // type: /undefined4 + SHC_3BB0A8C1_0x00B960EC = 0x00B960EC, + // label: g_nLobbyScrollPosition + // location: // type: /int SHC_3BB0A8C1_0x00B960F0 = 0x00B960F0, + // label: g_dwLobbyMapDescScrollOffset + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B960F4 = 0x00B960F4, // type: /undefined4 SHC_3BB0A8C1_0x00B960F8 = 0x00B960F8, + // label: g_dwHistoricMissionRowCount + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B96100 = 0x00B96100, // type: /undefined4 SHC_3BB0A8C1_0x00B96108 = 0x00B96108, // type: /undefined4 SHC_3BB0A8C1_0x00B9610C = 0x00B9610C, + // label: g_dwPlacementDragLastTile + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B96110 = 0x00B96110, // label: DAT_IntroTransitionStep @@ -93171,8 +98045,12 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00B9611C = 0x00B9611C, + // label: g_nGranaryMenuValue + // location: // type: /int SHC_3BB0A8C1_0x00B96120 = 0x00B96120, + // type: /undefined4 + SHC_3BB0A8C1_0x00B96124 = 0x00B96124, // label: Menu_SelectCrusade // location: // type: OpenSHC/UI/Menu @@ -93795,26 +98673,44 @@ enum { // location: // type: OpenSHC/UI/Menu SHC_3BB0A8C1_0x00B983C0 = 0x00B983C0, + // label: g_bIntroLogosShown + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00B98404 = 0x00B98404, // label: BOOL_WasInteracting // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x00B98408 = 0x00B98408, + // label: g_dwViewKeepCycleIndex + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B9840C = 0x00B9840C, // label: TIME_PreviousClick // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00B98418 = 0x00B98418, + // label: g_nDragSelectAnchorY + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B9841C = 0x00B9841C, + // label: g_nDragSelectAnchorX + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B98420 = 0x00B98420, + // label: g_nDragSelectActive + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B98424 = 0x00B98424, + // label: g_nChapelRenderCounterA + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B98428 = 0x00B98428, + // label: g_nChapelRenderCounterB + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B9842C = 0x00B9842C, + // label: g_nChapelRenderCounterC + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B98430 = 0x00B98430, // label: DAT_WifeUnitType @@ -93825,6 +98721,8 @@ enum { // location: // type: OpenSHC/Map/Units/UnitTypeInt SHC_3BB0A8C1_0x00B98438 = 0x00B98438, + // label: g_nChapelMarriageResult + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B9843C = 0x00B9843C, // label: DAT_HusbandID @@ -93835,6 +98733,8 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00B98444 = 0x00B98444, + // label: g_nReligionMenuRenderCounter + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B98448 = 0x00B98448, // type: /int @@ -93843,12 +98743,16 @@ enum { SHC_3BB0A8C1_0x00B98450 = 0x00B98450, // type: /undefined4 SHC_3BB0A8C1_0x00B98454 = 0x00B98454, + // label: g_nArmyMenuRenderCounter + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B9845C = 0x00B9845C, // label: DAT_UnitValueLossesPerEnemyPlayer // location: // type: /int[9] SHC_3BB0A8C1_0x00B98460 = 0x00B98460, + // label: g_nGenieSpeechStateA + // location: // type: /int SHC_3BB0A8C1_0x00B98484 = 0x00B98484, // label: Dat_UnitValueLossesHistoryPerEnemyPlayer @@ -93974,6 +98878,8 @@ enum { // location: // type: /dword SHC_3BB0A8C1_0x00B98660 = 0x00B98660, + // label: g_nGenieSpeechStateC + // location: // type: /int SHC_3BB0A8C1_0x00B98664 = 0x00B98664, // label: DAT_CurrentPlayerRanking @@ -94015,29 +98921,43 @@ enum { // label: DAT_StoredLossesTotal_10 // location: SHC_3BB0A8C1_0x00B98694 = 0x00B98694, + // label: g_nGenieSpeechStateB + // location: // type: /int SHC_3BB0A8C1_0x00B98698 = 0x00B98698, + // label: g_nSfxVoiceCounter + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B9869C = 0x00B9869C, // label: DAT_LastSpeechSFXFilename // location: // type: /char[64] SHC_3BB0A8C1_0x00B986A0 = 0x00B986A0, + // label: g_dwBattleEndMusicState + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B986E0 = 0x00B986E0, // label: DAT_SFX_Cooldown_WeAreUnderAttack // location: SHC_3BB0A8C1_0x00B986E4 = 0x00B986E4, + // label: g_fVolumeTweakAccumA + // location: // type: /float SHC_3BB0A8C1_0x00B986E8 = 0x00B986E8, + // label: g_fVolumeTweakAccumB + // location: // type: /float SHC_3BB0A8C1_0x00B986EC = 0x00B986EC, + // label: g_dwSpeechMuteFlag + // location: // type: /undefined4 SHC_3BB0A8C1_0x00B986F0 = 0x00B986F0, // label: DAT_GL_Counter // location: // type: /int SHC_3BB0A8C1_0x00B986F4 = 0x00B986F4, + // label: g_fAmbientFadeAccum + // location: // type: /float SHC_3BB0A8C1_0x00B986F8 = 0x00B986F8, // label: DAT_SFXFadeState @@ -94048,8 +98968,12 @@ enum { // location: // type: /float SHC_3BB0A8C1_0x00B98700 = 0x00B98700, + // label: g_fAmbientFadeCurrent + // location: // type: /float SHC_3BB0A8C1_0x00B98704 = 0x00B98704, + // label: g_dwAmbientFadeValue + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00B98708 = 0x00B98708, // type: OpenSHC/WindowsHelper/Enums/BOOLEnum @@ -94060,7 +98984,7 @@ enum { SHC_3BB0A8C1_0x00B98710 = 0x00B98710, // label: DAT_GMImageHeaders // location: - // type: OpenSHC/IO/Graphics/ImageHeaders + // type: OpenSHC/IO/Graphics/ImageHeader[66000] SHC_3BB0A8C1_0x00B98790 = 0x00B98790, // type: /pointer[32] SHC_3BB0A8C1_0x00C9A490 = 0x00C9A490, @@ -94104,24 +99028,34 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF2960 = 0x00DF2960, + // label: g_dwHelpBorderXOffset + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF2964 = 0x00DF2964, + // label: g_nHelpBorderHeightInset + // location: // type: /int SHC_3BB0A8C1_0x00DF2968 = 0x00DF2968, + // label: g_dwHelpBorderYOffset + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF296C = 0x00DF296C, + // label: g_nHelpBorderWidthInset + // location: // type: /int SHC_3BB0A8C1_0x00DF2970 = 0x00DF2970, // label: HLP_WCHAR_Buffer // location: - // type: /wchar_t[256] + // type: ntddk_32/WCHAR[256] SHC_3BB0A8C1_0x00DF2978 = 0x00DF2978, - // type: /wchar_t[1000] + // type: winapi_32/WCHAR[1000] SHC_3BB0A8C1_0x00DF2B78 = 0x00DF2B78, // type: /undefined4 SHC_3BB0A8C1_0x00DF3348 = 0x00DF3348, // type: /undefined4 SHC_3BB0A8C1_0x00DF334C = 0x00DF334C, + // label: g_nBuildingMenuMin1A + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF3350 = 0x00DF3350, // label: DAT_DisableMercPostPortraits @@ -94130,16 +99064,28 @@ enum { SHC_3BB0A8C1_0x00DF3354 = 0x00DF3354, // label: DAT_EnoughGoldForRequestedUnit // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x00DF3358 = 0x00DF3358, + // label: g_nBuildingMenuMin1B + // location: // type: /int SHC_3BB0A8C1_0x00DF335C = 0x00DF335C, + // type: /undefined4 + SHC_3BB0A8C1_0x00DF3360 = 0x00DF3360, + // label: g_dwLastPortraitClickTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00DF3364 = 0x00DF3364, + // label: g_nLastPortraitClickId + // location: // type: /int SHC_3BB0A8C1_0x00DF3368 = 0x00DF3368, + // label: g_nLastBarrackUnitId + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF3374 = 0x00DF3374, + // label: g_dwLastBarrackClickTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00DF3378 = 0x00DF3378, // label: TIME_ClickedMercUnitTypeMoment @@ -94283,7 +99229,7 @@ enum { // label: DAT_Music_TotalTroopValue // location: SHC_3BB0A8C1_0x00DF37F4 = 0x00DF37F4, - // label: SEC_Section1079 + // label: SEC_BattleMusicTensionState1079 // location: SHC_3BB0A8C1_0x00DF37FC = 0x00DF37FC, // label: SND_SomeTimerResolution @@ -94361,8 +99307,14 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF4238 = 0x00DF4238, + // label: g_dwRoundtableSelection + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF423C = 0x00DF423C, + // type: /undefined4 + SHC_3BB0A8C1_0x00DF4240 = 0x00DF4240, + // type: /undefined4 + SHC_3BB0A8C1_0x00DF4244 = 0x00DF4244, // label: DAT_LobbyAddAICurrentlyHoveredAI // location: // type: /undefined4 @@ -94381,6 +99333,10 @@ enum { SHC_3BB0A8C1_0x00DF426C = 0x00DF426C, // type: /undefined4 SHC_3BB0A8C1_0x00DF4284 = 0x00DF4284, + // label: g_dwRoundtableInteractFlag + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00DF4288 = 0x00DF4288, // label: DAT_SentOrRequestedGoodsAmount // location: // type: /undefined4 @@ -94389,13 +99345,15 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF4294 = 0x00DF4294, + // type: /undefined4 + SHC_3BB0A8C1_0x00DF4298 = 0x00DF4298, // label: DAT_AlliesCount // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF429C = 0x00DF429C, // label: BOOL_RelatedToInitialGranaryAndKeepPlacement // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: ntddk_32/BOOL SHC_3BB0A8C1_0x00DF42A0 = 0x00DF42A0, // label: DAT_ModalMenuArrayPointerToStackTop // location: @@ -94820,10 +99778,14 @@ enum { SHC_3BB0A8C1_0x00DF51C8 = 0x00DF51C8, // type: /undefined4 SHC_3BB0A8C1_0x00DF51F0 = 0x00DF51F0, + // label: g_nAlliesMenuValue + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF51F4 = 0x00DF51F4, // type: /undefined4 SHC_3BB0A8C1_0x00DF51F8 = 0x00DF51F8, + // label: g_nAlliesOrderValue + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF51FC = 0x00DF51FC, // type: /undefined4 @@ -94840,16 +99802,24 @@ enum { // location: // type: /int SHC_3BB0A8C1_0x00DF5528 = 0x00DF5528, + // label: g_dwPlayerInfoHoverActive + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5530 = 0x00DF5530, + // label: g_nCurrentSignpostIndex + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5538 = 0x00DF5538, // label: DAT_CheatCodeStringTrackerIndex // location: // type: /int SHC_3BB0A8C1_0x00DF553C = 0x00DF553C, + // label: g_dwTutorialPointerTimer + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5540 = 0x00DF5540, + // label: g_bTutorialTimerStarted + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5544 = 0x00DF5544, // label: INT_DisableTutorialRestrictions @@ -94862,38 +99832,64 @@ enum { SHC_3BB0A8C1_0x00DF5550 = 0x00DF5550, // type: /undefined4 SHC_3BB0A8C1_0x00DF5554 = 0x00DF5554, + // label: g_dwTutorialGranaryHintActive + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5558 = 0x00DF5558, + // label: g_dwTutorialMaxStep + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF555C = 0x00DF555C, + // label: g_dwTutorialManorhouseHintActive + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5560 = 0x00DF5560, + // label: g_dwTutorialHighlightActive + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5564 = 0x00DF5564, + // label: g_dwTutorialHighlightTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00DF5568 = 0x00DF5568, + // label: g_dwTutorialBoxPage + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF556C = 0x00DF556C, // label: DAT_FileDoesntExist // location: // type: OpenSHC/WindowsHelper/Enums/BOOLEnum SHC_3BB0A8C1_0x00DF5570 = 0x00DF5570, + // label: g_nTutorialEventFlagA + // location: // type: /int SHC_3BB0A8C1_0x00DF5574 = 0x00DF5574, // label: TUT_RotateMapHappened // location: // type: /int SHC_3BB0A8C1_0x00DF5578 = 0x00DF5578, + // label: g_nTutorialEventCounterA + // location: // type: /int SHC_3BB0A8C1_0x00DF557C = 0x00DF557C, + // label: g_nTutorialEventFlagB + // location: // type: /int SHC_3BB0A8C1_0x00DF5580 = 0x00DF5580, + // label: g_nTutorialEventCounterB + // location: // type: /int SHC_3BB0A8C1_0x00DF5584 = 0x00DF5584, + // label: g_dwTutorialLastBuildingAction + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5588 = 0x00DF5588, + // label: g_dwTutorialLastBuildingType + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF558C = 0x00DF558C, + // label: g_dwTutorialStateMachineStep + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5590 = 0x00DF5590, // label: DAT_CopyOfScenarioGold @@ -94906,8 +99902,22 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5638 = 0x00DF5638, + // label: g_dwTutorialBoxAnimCounter + // location: // type: /undefined4 SHC_3BB0A8C1_0x00DF5644 = 0x00DF5644, + // label: g_bTutorialBoxState + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00DF5648 = 0x00DF5648, + // label: g_nTutorialStateCurrent + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00DF5650 = 0x00DF5650, + // label: g_nTutorialStatePrev + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00DF5654 = 0x00DF5654, // label: DAT_SkMasterDataEntry // location: // type: OpenSHC/IO/SkMasterDataEntry @@ -94944,30 +99954,46 @@ enum { SHC_3BB0A8C1_0x00EB0AF0 = 0x00EB0AF0, // type: WinDef/DWORD SHC_3BB0A8C1_0x00EB0B18 = 0x00EB0B18, + // label: g_dwHistoricPictureGfx + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB0B20 = 0x00EB0B20, + // label: g_dwScenarioDescScrollPage + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB0B24 = 0x00EB0B24, // type: /int[48][4] SHC_3BB0A8C1_0x00EB0B28 = 0x00EB0B28, + // label: g_nScrollingTextY + // location: // type: /int SHC_3BB0A8C1_0x00EB0E28 = 0x00EB0E28, // type: /float SHC_3BB0A8C1_0x00EB0E2C = 0x00EB0E2C, + // label: g_nCreditsCmdField5 + // location: // type: /int SHC_3BB0A8C1_0x00EB0E30 = 0x00EB0E30, // label: DAT_RenderRelatedY // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB0E3C = 0x00EB0E3C, + // label: g_dwCreditsPhase + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB0E40 = 0x00EB0E40, + // label: g_nGreatestLordScreenFlag + // location: // type: /int SHC_3BB0A8C1_0x00EB0E44 = 0x00EB0E44, // type: /int[250] SHC_3BB0A8C1_0x00EB0E48 = 0x00EB0E48, + // label: g_nCreditsSequenceIndex + // location: // type: /int SHC_3BB0A8C1_0x00EB1230 = 0x00EB1230, + // label: g_nCreditsCmdField4 + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB1234 = 0x00EB1234, // type: /int[40] @@ -94978,50 +100004,88 @@ enum { SHC_3BB0A8C1_0x00EB12D8 = 0x00EB12D8, // type: /int[250] SHC_3BB0A8C1_0x00EB96D8 = 0x00EB96D8, + // label: g_nCreditsAdvanceIndex + // location: // type: /int SHC_3BB0A8C1_0x00EB9AC0 = 0x00EB9AC0, + // label: g_dwCreditsAdvanceTimer + // location: // type: /dword SHC_3BB0A8C1_0x00EB9AC4 = 0x00EB9AC4, // label: CHAR_ARRAY_00eb9ac8 // location: // type: /char[32] SHC_3BB0A8C1_0x00EB9AC8 = 0x00EB9AC8, + // label: g_nMapFileHeaderLoaded + // location: // type: /int SHC_3BB0A8C1_0x00EB9AE8 = 0x00EB9AE8, // label: DAT_UnknownBinkIndex // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9AF0 = 0x00EB9AF0, + // label: g_nCreditsCmdX + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9AF4 = 0x00EB9AF4, + // label: g_dwGreatestLordPageIndex + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9AF8 = 0x00EB9AF8, // type: /int[4] SHC_3BB0A8C1_0x00EB9AFC = 0x00EB9AFC, // type: /undefined4 SHC_3BB0A8C1_0x00EB9B0C = 0x00EB9B0C, + // type: /undefined4 + SHC_3BB0A8C1_0x00EB9B10 = 0x00EB9B10, + // type: /undefined4 + SHC_3BB0A8C1_0x00EB9B14 = 0x00EB9B14, + // type: /undefined4 + SHC_3BB0A8C1_0x00EB9B18 = 0x00EB9B18, + // label: g_fTrimMenuStringScale + // location: // type: /float SHC_3BB0A8C1_0x00EB9B1C = 0x00EB9B1C, + // label: g_nTrimMenuStringFlag + // location: // type: /int SHC_3BB0A8C1_0x00EB9B20 = 0x00EB9B20, + // label: g_fTrimMenuStringWidth + // location: // type: /float SHC_3BB0A8C1_0x00EB9B24 = 0x00EB9B24, + // label: g_nTrimMenuStringResult + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9B28 = 0x00EB9B28, + // label: g_nTrimMenuStringIndex + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9B2C = 0x00EB9B2C, + // label: g_nTrimMenuStringParam2 + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9B30 = 0x00EB9B30, + // label: g_nTrimMenuStringParam3 + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9B34 = 0x00EB9B34, + // label: g_nTrimMenuStringAllowedWidth + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9B38 = 0x00EB9B38, + // label: g_nTrimMenuStringParam5 + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9B3C = 0x00EB9B3C, + // label: g_nTrimMenuStringFontSize + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9B40 = 0x00EB9B40, // type: /int SHC_3BB0A8C1_0x00EB9B44 = 0x00EB9B44, + // label: g_nCrusadeMapFlag + // location: // type: /int SHC_3BB0A8C1_0x00EB9B48 = 0x00EB9B48, // type: /int @@ -95034,6 +100098,8 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9B58 = 0x00EB9B58, + // label: g_dwSkirmishAIOpponentCount + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EB9B60 = 0x00EB9B60, // label: DAT_FinalResultsOrderByColumn @@ -95052,6 +100118,8 @@ enum { SHC_3BB0A8C1_0x00EC02F4 = 0x00EC02F4, // type: OpenSHC/Rendering/CreditsRelatedStructure[24] SHC_3BB0A8C1_0x00EC0348 = 0x00EC0348, + // label: g_dwGreatestLordScreenMode + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EC082C = 0x00EC082C, // label: DAT_CurrentMenuID_3 @@ -95062,6 +100130,8 @@ enum { SHC_3BB0A8C1_0x00EC0834 = 0x00EC0834, // type: /int SHC_3BB0A8C1_0x00EC0838 = 0x00EC0838, + // label: g_nCreditsDelayTimer + // location: // type: /int SHC_3BB0A8C1_0x00EC083C = 0x00EC083C, // type: OpenSHC/IO/Graphics/GFXRelatedBuffer1 @@ -95074,6 +100144,8 @@ enum { SHC_3BB0A8C1_0x00ED2778 = 0x00ED2778, // type: /int SHC_3BB0A8C1_0x00ED277C = 0x00ED277C, + // label: g_dwHistoricPictureState + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED2780 = 0x00ED2780, // type: /undefined4 @@ -95082,30 +100154,60 @@ enum { SHC_3BB0A8C1_0x00ED278C = 0x00ED278C, // type: /undefined4 SHC_3BB0A8C1_0x00ED2794 = 0x00ED2794, + // label: g_dwScenarioDescriptionMode + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED2798 = 0x00ED2798, + // label: g_nGameLostState + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00ED279C = 0x00ED279C, + // label: g_dwRankingGamesSelection + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED27A0 = 0x00ED27A0, + // label: g_nCreditsPlaybackState + // location: // type: /int SHC_3BB0A8C1_0x00ED27A4 = 0x00ED27A4, + // label: g_dwCrusadeMapTimeMs + // location: // type: /dword SHC_3BB0A8C1_0x00ED27A8 = 0x00ED27A8, // type: /int SHC_3BB0A8C1_0x00ED27B0 = 0x00ED27B0, + // label: g_dwMissionTransitionStartTime + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00ED27B4 = 0x00ED27B4, + // label: g_nCrusadeEndscreenState + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00ED27B8 = 0x00ED27B8, + // label: g_dwScenarioDescEditMode + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED27BC = 0x00ED27BC, // label: DAT_SkirmishTrailRelated1 // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED27C0 = 0x00ED27C0, + // type: /undefined4 + SHC_3BB0A8C1_0x00ED27C4 = 0x00ED27C4, // label: DAT_MissionScores // location: // type: /int[10] SHC_3BB0A8C1_0x00ED27C8 = 0x00ED27C8, // type: /int[250] SHC_3BB0A8C1_0x00ED27F0 = 0x00ED27F0, + // label: g_nCreditsAdvanceField + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED2BD8 = 0x00ED2BD8, + // label: g_nCrusadeMapState + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00ED2BDC = 0x00ED2BDC, // type: /int[250] SHC_3BB0A8C1_0x00ED2BE0 = 0x00ED2BE0, // type: /int[40] @@ -95118,31 +100220,56 @@ enum { SHC_3BB0A8C1_0x00ED306C = 0x00ED306C, // type: /int[40] SHC_3BB0A8C1_0x00ED3070 = 0x00ED3070, + // label: g_nCampaignHotspotsLoaded + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x00ED3110 = 0x00ED3110, + // label: g_nCampaignAnimReady + // location: // type: /int SHC_3BB0A8C1_0x00ED3114 = 0x00ED3114, + // label: g_nGreatestLordSaveNumber + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED3118 = 0x00ED3118, + // label: g_dwCrusadeMapTimerB + // location: // type: /dword SHC_3BB0A8C1_0x00ED311C = 0x00ED311C, + // label: g_dwRankingGamesCountdown + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED3120 = 0x00ED3120, + // label: g_dwCampaignMapSelection + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED3124 = 0x00ED3124, // label: DAT_TacticalPowersHelpTextDisplayBool // location: + // type: /undefined1 SHC_3BB0A8C1_0x00ED3128 = 0x00ED3128, // type: /float SHC_3BB0A8C1_0x00ED312C = 0x00ED312C, + // label: g_dwCrusadeMapAnimTime + // location: // type: /dword SHC_3BB0A8C1_0x00ED3138 = 0x00ED3138, // type: OpenSHC/WindowsHelper/Enums/BOOLEnum SHC_3BB0A8C1_0x00ED313C = 0x00ED313C, + // label: g_nCampaignAnimFrameCounter + // location: // type: /int SHC_3BB0A8C1_0x00ED3144 = 0x00ED3144, + // label: g_dwRenderCurrentTileLogic + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED3148 = 0x00ED3148, + // label: g_dwRenderCurrentTileWallGfx + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED314C = 0x00ED314C, + // label: g_dwRenderTileScreenY + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED3154 = 0x00ED3154, // label: DAT_RenderedUnitOwner @@ -95163,8 +100290,12 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED3168 = 0x00ED3168, + // label: g_nCurrentGmImageIndex + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED316C = 0x00ED316C, + // label: g_dwSpriteBlitClipCounter + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED3170 = 0x00ED3170, // label: DAT_GmImageAddressToBeRendered @@ -95176,6 +100307,8 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED3178 = 0x00ED3178, + // label: g_dwSpriteBlitRowMode + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED317C = 0x00ED317C, // label: DAT_CurrentlyRenderedSpriteID @@ -95190,6 +100323,8 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED319C = 0x00ED319C, + // label: g_dwTreeUpdateTime + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED31A0 = 0x00ED31A0, // label: DAT_MenuView_TriggerPrepare @@ -95214,7 +100349,7 @@ enum { SHC_3BB0A8C1_0x00ED31B4 = 0x00ED31B4, // label: DAT_ButtonCurrentlyInteracting // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: ntddk_32/BOOL SHC_3BB0A8C1_0x00ED31B8 = 0x00ED31B8, // label: DAT_CurrentButtonGmDataIndex // location: @@ -95236,6 +100371,8 @@ enum { // location: // type: /int SHC_3BB0A8C1_0x00ED31CC = 0x00ED31CC, + // label: g_nMinimapInteractionValue + // location: // type: /undefined4 SHC_3BB0A8C1_0x00ED31D0 = 0x00ED31D0, // label: BOOL_CurrentMenuClickState @@ -95258,6 +100395,8 @@ enum { // location: // type: /undefined4 SHC_3BB0A8C1_0x00EE0FB0 = 0x00EE0FB0, + // label: g_nSpecificUnitResult + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EE0FB4 = 0x00EE0FB4, // label: DAT_Tribe_HighestID @@ -95276,12 +100415,20 @@ enum { // location: // type: /uint SHC_3BB0A8C1_0x00EE0FC8 = 0x00EE0FC8, + // label: g_dwLastGranaryWarningTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE0FCC = 0x00EE0FCC, + // label: g_dwLastStockpileFullNoiseTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE0FD4 = 0x00EE0FD4, - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // label: g_bStockpileFullNoiseState + // location: + // type: WinDef/BOOL SHC_3BB0A8C1_0x00EE0FD8 = 0x00EE0FD8, + // label: g_dwLastStockpileFullVoiceTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE0FDC = 0x00EE0FDC, // type: OpenSHC/WindowsHelper/Enums/BOOLEnum @@ -95314,38 +100461,68 @@ enum { SHC_3BB0A8C1_0x00EE1018 = 0x00EE1018, // type: /undefined4 SHC_3BB0A8C1_0x00EE101C = 0x00EE101C, + // label: g_nMarriageExcludeUnitA + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EE1028 = 0x00EE1028, + // label: g_nMarriageExcludeUnitB + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EE102C = 0x00EE102C, + // label: g_nThoughtBubbleState + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EE1030 = 0x00EE1030, + // label: g_nThoughtBubbleCounter + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EE1034 = 0x00EE1034, + // label: g_nLastThoughtBubbleUnitId + // location: // type: /int SHC_3BB0A8C1_0x00EE1038 = 0x00EE1038, // label: TIME_LastGhostSoundMoment // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE103C = 0x00EE103C, + // label: g_dwLastSiegeTowerActionTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE1040 = 0x00EE1040, + // label: g_dwLastBatteringRamActionTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE1044 = 0x00EE1044, + // label: g_dwLastMotherActionTimeA + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE1048 = 0x00EE1048, + // label: g_dwLastMotherActionTimeB + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE104C = 0x00EE104C, + // label: g_dwLastSpearmanActionTimeA + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE1050 = 0x00EE1050, + // label: g_dwLastSpearmanActionTimeB + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE1054 = 0x00EE1054, + // label: g_dwLastLionActionTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE1058 = 0x00EE1058, + // label: g_dwLastLordActionTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE105C = 0x00EE105C, + // label: g_dwLastSlaveActionTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE1060 = 0x00EE1060, + // label: g_dwLastAssassinActionTime + // location: // type: WinDef/DWORD SHC_3BB0A8C1_0x00EE1064 = 0x00EE1064, // label: TIME_Sum_1 @@ -95356,8 +100533,12 @@ enum { // location: // type: OpenSHC/UI/BottomLeftTextDisplayState SHC_3BB0A8C1_0x00EE106C = 0x00EE106C, + // label: g_nUnitActionButtonX + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EE1090 = 0x00EE1090, + // label: g_nUnitActionButtonY + // location: // type: /undefined4 SHC_3BB0A8C1_0x00EE1094 = 0x00EE1094, // label: DAT_MissingResourceState @@ -95396,51 +100577,73 @@ enum { // label: DAT_WRS_Height // location: SHC_3BB0A8C1_0x00EE19F1 = 0x00EE19F1, + // label: FLAG_JokeAIMessage00 + // location: // type: /int SHC_3BB0A8C1_0x00EE2350 = 0x00EE2350, // label: FLAG_ChristmasAIMessage01to04 // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x00EE2354 = 0x00EE2354, + // label: FLAG_JokeAIMessage02 + // location: // type: /int SHC_3BB0A8C1_0x00EE2358 = 0x00EE2358, + // label: FLAG_JokeAIMessage03 + // location: // type: /int SHC_3BB0A8C1_0x00EE235C = 0x00EE235C, + // label: FLAG_JokeAIMessage04 + // location: // type: /int SHC_3BB0A8C1_0x00EE2360 = 0x00EE2360, // label: FLAG_JokeAIMessage05 // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x00EE2364 = 0x00EE2364, // label: FLAG_JokeAIMessage06 // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x00EE2368 = 0x00EE2368, + // label: FLAG_JokeAIMessage07 + // location: // type: /int SHC_3BB0A8C1_0x00EE236C = 0x00EE236C, + // label: FLAG_JokeAIMessage08 + // location: // type: /int SHC_3BB0A8C1_0x00EE2370 = 0x00EE2370, // label: FLAG_JokeAIMessage09 // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x00EE2374 = 0x00EE2374, + // label: FLAG_JokeAIMessage10 + // location: // type: /int SHC_3BB0A8C1_0x00EE2378 = 0x00EE2378, + // label: FLAG_JokeAIMessage11 + // location: // type: /int SHC_3BB0A8C1_0x00EE237C = 0x00EE237C, // label: FLAG_JokeAIMessage12 // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x00EE2380 = 0x00EE2380, + // label: FLAG_JokeAIMessage13 + // location: // type: /int SHC_3BB0A8C1_0x00EE2384 = 0x00EE2384, + // label: FLAG_JokeAIMessage14 + // location: // type: /int SHC_3BB0A8C1_0x00EE2388 = 0x00EE2388, + // label: FLAG_JokeAIMessage15 + // location: // type: /int SHC_3BB0A8C1_0x00EE238C = 0x00EE238C, // label: FLAG_JokeAIMessage16 // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x00EE2390 = 0x00EE2390, // label: TIME_ReceivedMessage_1 // location: @@ -95857,7 +101060,7 @@ enum { // label: DAT_LoadedSoundsCountAndIndex // location: SHC_3BB0A8C1_0x0112AF3C = 0x0112AF3C, - // label: SEC_Section1055 + // label: SEC_CurrentSoundTrackState1055 // location: SHC_3BB0A8C1_0x0112B044 = 0x0112B044, // label: DAT_CurrentSoundID @@ -95917,10 +101120,10 @@ enum { // label: SEC_PlayerDatas // location: SHC_3BB0A8C1_0x0115BDF8 = 0x0115BDF8, - // label: SEC_Section1023 + // label: SEC_MapSaveDataSection1023 // location: SHC_3BB0A8C1_0x0117C78C = 0x0117C78C, - // label: SEC_Section1024 + // label: SEC_GameTickState1024 // location: SHC_3BB0A8C1_0x011BC95C = 0x011BC95C, // label: DAT_BitMapState @@ -95934,6 +101137,12 @@ enum { // label: DAT_MapHeaderCache // location: SHC_3BB0A8C1_0x011BF144 = 0x011BF144, + // label: g_userDataPathOverrideFlag + // location: + SHC_3BB0A8C1_0x011BF90A = 0x011BF90A, + // label: g_userDataPathOverride + // location: + SHC_3BB0A8C1_0x011BF90B = 0x011BF90B, // label: DAT_CurrentActiveResourceID // location: SHC_3BB0A8C1_0x011BFCF4 = 0x011BFCF4, @@ -96135,7 +101344,7 @@ enum { // label: SEC_SiegeInformation // location: SHC_3BB0A8C1_0x01653944 = 0x01653944, - // label: SEC_Section1067 + // label: SEC_SiegeScoringConfig1067 // location: SHC_3BB0A8C1_0x01653994 = 0x01653994, // label: SEC_StartingPopularity @@ -96177,7 +101386,7 @@ enum { // label: SEC_EventsExtra // location: SHC_3BB0A8C1_0x0165F028 = 0x0165F028, - // label: SEC_Section1065 + // label: SEC_TraderSettings1065 // location: SHC_3BB0A8C1_0x01666D28 = 0x01666D28, // label: DAT_MapU3Int0 @@ -96189,13 +101398,13 @@ enum { // label: DAT_MapU3_MapType2_2Unk // location: SHC_3BB0A8C1_0x01666D94 = 0x01666D94, - // label: SEC_Section1090 + // label: SEC_TimeUntilVictoryTotal1090 // location: SHC_3BB0A8C1_0x01666D98 = 0x01666D98, - // label: SEC_Section1080 + // label: SEC_TimeUntilVictoryElapsed1080 // location: SHC_3BB0A8C1_0x01666D9C = 0x01666D9C, - // label: SEC_Section1081 + // label: SEC_TimeUntilVictoryRelated1081 // location: SHC_3BB0A8C1_0x01666DA0 = 0x01666DA0, // label: DAT_CurrentEventID @@ -96243,7 +101452,7 @@ enum { // label: ALG_cls_0x519cc0_tile // location: SHC_3BB0A8C1_0x01763350 = 0x01763350, - // label: SEC_Section1091 + // label: SEC_AttackInfoState1091 // location: SHC_3BB0A8C1_0x01763354 = 0x01763354, // label: DAT_AIVState @@ -96292,7 +101501,7 @@ enum { // label: DAT_AIV_InvalidBuildingCounter // location: SHC_3BB0A8C1_0x018C34C0 = 0x018C34C0, - // label: SEC_Section1115 + // label: SEC_MapWoodAvailability1115 // location: SHC_3BB0A8C1_0x018C34C4 = 0x018C34C4, // label: SEC_HeatMaps @@ -96381,7 +101590,7 @@ enum { // label: DAT_CurrentGameMode // location: SHC_3BB0A8C1_0x0191DD80 = 0x0191DD80, - // label: SEC_Section1106 + // label: SEC_MultiplayerLagState1106 // location: SHC_3BB0A8C1_0x0191DD84 = 0x0191DD84, // label: DPLAY_PlayerNameStructure @@ -96607,7 +101816,7 @@ enum { // label: DAT_SkirmishSettingRelated // location: SHC_3BB0A8C1_0x01A24658 = 0x01A24658, - // label: SEC_Section1084 + // label: SEC_AdvancedRecruitToggle1084 // location: SHC_3BB0A8C1_0x01A2465C = 0x01A2465C, // label: SEC_CurrentAdvantageBalance @@ -96634,7 +101843,7 @@ enum { // label: DAT_ChatTauntOrMessage // location: SHC_3BB0A8C1_0x01A269F0 = 0x01A269F0, - // label: SEC_Section1093 + // label: SEC_SkirmishPointsOption // location: SHC_3BB0A8C1_0x01A269F4 = 0x01A269F4, // label: DAT_AutoSaveEveryMinutes @@ -96753,22 +101962,22 @@ enum { // label: SEC_GfxLayer // location: SHC_3BB0A8C1_0x01AE5688 = 0x01AE5688, - // label: SEC_TileMap1033 + // label: SEC_AlphaGFXLayer1033 // location: SHC_3BB0A8C1_0x01B0CAA8 = 0x01B0CAA8, // label: DAT_TileMapUnknown0 // location: SHC_3BB0A8C1_0x01B33EC8 = 0x01B33EC8, - // label: SEC_TileMap1002 + // label: SEC_PillarGFXLayer1002 // location: SHC_3BB0A8C1_0x01B5B2E8 = 0x01B5B2E8, - // label: SEC_TileMap1009 + // label: SEC_WallGFXLayer1009 // location: SHC_3BB0A8C1_0x01B82708 = 0x01B82708, // label: DAT_TileMapUnknown1 // location: SHC_3BB0A8C1_0x01BA9B28 = 0x01BA9B28, - // label: SEC_TileMap1008 + // label: SEC_RandomLayer1008 // location: SHC_3BB0A8C1_0x01BD0F48 = 0x01BD0F48, // label: SEC_LogicalTileMap1 @@ -96786,7 +101995,7 @@ enum { // label: SEC_BuildingID_TileMap // location: SHC_3BB0A8C1_0x01C95BB8 = 0x01C95BB8, - // label: SEC_TileMap1049 + // label: SEC_BuildingWasLayer1049 // location: SHC_3BB0A8C1_0x01CBCFD8 = 0x01CBCFD8, // label: SEC_UnitID_TileMap @@ -96795,13 +102004,13 @@ enum { // label: EntityLayer // location: SHC_3BB0A8C1_0x01CF7E08 = 0x01CF7E08, - // label: SEC_TileMap1118 + // label: SEC_EntityLayerLT25_1118 // location: SHC_3BB0A8C1_0x01D1F228 = 0x01D1F228, // label: SEC_TerrainHeightTileMap1005 // location: SHC_3BB0A8C1_0x01D32C38 = 0x01D32C38, - // label: SEC_TileMap1045 + // label: SEC_DefaultHeightLayer1045 // location: SHC_3BB0A8C1_0x01D46648 = 0x01D46648, // label: WallOwnerLayer @@ -96810,16 +102019,16 @@ enum { // label: DAT_TileMapUnknown3 // location: SHC_3BB0A8C1_0x01D6DA68 = 0x01D6DA68, - // label: SEC_TileMap1006 + // label: SEC_ShowHiLayer1006 // location: SHC_3BB0A8C1_0x01D81478 = 0x01D81478, - // label: SEC_TileMap1007 + // label: SEC_MiscDisplayLayer1007 // location: SHC_3BB0A8C1_0x01D94E88 = 0x01D94E88, // label: SEC_WallDamageAndWheatState_TileMap // location: SHC_3BB0A8C1_0x01DBC2A8 = 0x01DBC2A8, - // label: SEC_TileMap1036 + // label: SEC_MacroLayer1036 // location: SHC_3BB0A8C1_0x01DCFCB8 = 0x01DCFCB8, // label: SEC_SeparateArea_TileMap @@ -96837,16 +102046,16 @@ enum { // label: ALG_PathFindingFlagTileMap // location: SHC_3BB0A8C1_0x01E6CD38 = 0x01E6CD38, - // label: SEC_TileMap1028 + // label: SEC_AIZoneLayer1028 // location: SHC_3BB0A8C1_0x01E94158 = 0x01E94158, - // label: SEC_TileMap1029 + // label: SEC_AIInfoLayer1029 // location: SHC_3BB0A8C1_0x01EA7B68 = 0x01EA7B68, - // label: SEC_TileMap1103 + // label: SEC_UnitDeathHeatMap1103 // location: SHC_3BB0A8C1_0x01EBB578 = 0x01EBB578, - // label: SEC_TileMap1104 + // label: SEC_AttackPathMarkerLayer1104 // location: SHC_3BB0A8C1_0x01ECEF88 = 0x01ECEF88, // label: SEC_PathfindingCostTileMap1105 @@ -96873,16 +102082,16 @@ enum { // label: DAT_PitchDitchCount // location: SHC_3BB0A8C1_0x01FE5B0C = 0x01FE5B0C, - // label: SEC_Section1082 + // label: SEC_MapSaveSection1082 // location: SHC_3BB0A8C1_0x01FE5B10 = 0x01FE5B10, - // label: SEC_Section1052 + // label: SEC_DustCloudState1052 // location: SHC_3BB0A8C1_0x01FE5B28 = 0x01FE5B28, - // label: SEC_Section1053 + // label: SEC_DustCloudState1053 // location: SHC_3BB0A8C1_0x01FE5B2C = 0x01FE5B2C, - // label: SEC_Section1054 + // label: SEC_DustCloudState1054 // location: SHC_3BB0A8C1_0x01FE5B30 = 0x01FE5B30, // label: DAT_TemporaryTerrainTypeArray @@ -97004,10 +102213,10 @@ enum { // label: DAT_ActiveMenuTab_2 // location: SHC_3BB0A8C1_0x01FE7D2C = 0x01FE7D2C, - // label: SEC_Section1047 + // label: SEC_SaveField_MissionNumber1047 // location: SHC_3BB0A8C1_0x01FE7D50 = 0x01FE7D50, - // label: SEC_Section1066 + // label: SEC_SaveField_GameCore1066 // location: SHC_3BB0A8C1_0x01FE7D70 = 0x01FE7D70, // label: SEC_GameMode2 @@ -97025,7 +102234,7 @@ enum { // label: SEC_MatchTime // location: SHC_3BB0A8C1_0x01FE7DA8 = 0x01FE7DA8, - // label: SEC_Section1127 + // label: SEC_SaveField_GameStartMoment1127 // location: SHC_3BB0A8C1_0x01FE7DAC = 0x01FE7DAC, // label: DAT_GameSpeedMultiplicator @@ -97052,16 +102261,16 @@ enum { // label: DAT_GameSpeedLevel // location: SHC_3BB0A8C1_0x01FE7DD8 = 0x01FE7DD8, - // label: SEC_Section1074 + // label: SEC_GameTimeTicks1074 // location: SHC_3BB0A8C1_0x01FE7DE0 = 0x01FE7DE0, - // label: SEC_Section1076 + // label: SEC_SingleplayerEventState1076 // location: SHC_3BB0A8C1_0x01FE7DE4 = 0x01FE7DE4, // label: DAT_IsBinkVideoPlaying // location: SHC_3BB0A8C1_0x01FE7E5C = 0x01FE7E5C, - // label: SEC_Section1095 + // label: SEC_SaveField_GameOverState1095 // location: SHC_3BB0A8C1_0x01FE7E60 = 0x01FE7E60, // label: SEC_XbowProducible_logic @@ -97157,7 +102366,7 @@ enum { // label: SEC_SkirmishTrailStartDateMonths // location: SHC_3BB0A8C1_0x01FE9CA0 = 0x01FE9CA0, - // label: SEC_Section1119 + // label: SEC_SkirmishTypeAndBalanceState1119 // location: SHC_3BB0A8C1_0x01FE9CA4 = 0x01FE9CA4, // label: SEC_SkirmishTrailProgress @@ -97202,10 +102411,10 @@ enum { // label: TIME_Sum_2 // location: SHC_3BB0A8C1_0x01FEA07C = 0x01FEA07C, - // label: SEC_Section1126 + // label: SEC_GameTimeValue1126 // location: SHC_3BB0A8C1_0x01FEA080 = 0x01FEA080, - // label: SEC_Section1136 + // label: SEC_WinDefeatWindowState1136 // location: SHC_3BB0A8C1_0x01FEA086 = 0x01FEA086, // label: DAT_TextureRenderCoreObject @@ -97243,8 +102452,12 @@ enum { // location: SHC_3BB0A8C1_0x01FEA120 = 0x01FEA120, // label: DAT_BitmapsFaces + // label: g_bitmapsFacesPtr // location: SHC_3BB0A8C1_0x01FEA124 = 0x01FEA124, + // label: g_faceSizes_int20 + // location: + SHC_3BB0A8C1_0x01FEA128 = 0x01FEA128, // label: GMFileHeaderColorpaletteArray // location: SHC_3BB0A8C1_0x01FEA5AC = 0x01FEA5AC, @@ -97410,7 +102623,7 @@ enum { // label: SEC_EntityArray1025 // location: SHC_3BB0A8C1_0x02350314 = 0x02350314, - // label: SEC_Section1077 + // label: SEC_SeagullState1077 // location: SHC_3BB0A8C1_0x023FA1D4 = 0x023FA1D4, // label: DAT_AICState @@ -97423,10 +102636,10 @@ enum { // label: DAT_SomeTileDistancePairArrayRelatedTo1105 // location: SHC_3BB0A8C1_0x023FFDBC = 0x023FFDBC, - // label: SEC_Section1134 + // label: SEC_AITribeIdTracking1134 // location: SHC_3BB0A8C1_0x02401EFC = 0x02401EFC, - // label: SEC_Section1135 + // label: SEC_AITribeUidTracking1135 // location: SHC_3BB0A8C1_0x024026CC = 0x024026CC, // label: DAT_SomeTime @@ -97446,19 +102659,23 @@ enum { SHC_3BB0A8C1_0x02403AF8 = 0x02403AF8, // type: WinDef/DWORD SHC_3BB0A8C1_0x0242746C = 0x0242746C, - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x02427470 = 0x02427470, // label: DAT_RenderMiniMapOrBinkFlag // location: - // type: OpenSHC/WindowsHelper/Enums/BOOLEnum + // type: WinDef/BOOL SHC_3BB0A8C1_0x02427474 = 0x02427474, // type: /int SHC_3BB0A8C1_0x02427478 = 0x02427478, // label: DAT_Locks // location: SHC_3BB0A8C1_0x024274E0 = 0x024274E0, + // label: g_dwCrtFacetList + // location: // type: /undefined4 SHC_3BB0A8C1_0x024274E4 = 0x024274E4, + // label: g_dwCrtGlobalLocale + // location: // type: /undefined4 SHC_3BB0A8C1_0x024274E8 = 0x024274E8, // type: /undefined4 @@ -97470,12 +102687,16 @@ enum { // label: INTERNAL_LocaleState // location: SHC_3BB0A8C1_0x02427504 = 0x02427504, + // type: /undefined1 + SHC_3BB0A8C1_0x0242750C = 0x0242750C, // type: /undefined4 SHC_3BB0A8C1_0x02427594 = 0x02427594, // label: INTERNAL_Locks2 // location: // type: /undefined4 SHC_3BB0A8C1_0x02427598 = 0x02427598, + // label: g_nCrtFpuInitialized + // location: // type: /int SHC_3BB0A8C1_0x0242759C = 0x0242759C, // type: /undefined4 @@ -97489,10 +102710,18 @@ enum { SHC_3BB0A8C1_0x024275BC = 0x024275BC, // type: /undefined4 SHC_3BB0A8C1_0x024275C8 = 0x024275C8, + // label: g_dwCrtEnvBlock + // location: // type: /undefined4 SHC_3BB0A8C1_0x024275DC = 0x024275DC, // type: /undefined4 + SHC_3BB0A8C1_0x024275E0 = 0x024275E0, + // type: /undefined4 SHC_3BB0A8C1_0x024275E4 = 0x024275E4, + // type: /undefined1 + SHC_3BB0A8C1_0x024275F4 = 0x024275F4, + // type: /undefined4 + SHC_3BB0A8C1_0x024275FC = 0x024275FC, // label: DAT_EnvironmentString // location: // type: winnt/LPCH @@ -97501,9 +102730,19 @@ enum { SHC_3BB0A8C1_0x02427608 = 0x02427608, // type: /undefined4 SHC_3BB0A8C1_0x0242760C = 0x0242760C, + // label: g_dwCrtHeapResizeThreshold + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x02427610 = 0x02427610, + // label: g_dwCrtLocaleInitialized + // location: + // type: /undefined4 + SHC_3BB0A8C1_0x02427614 = 0x02427614, // type: /undefined4 SHC_3BB0A8C1_0x02427618 = 0x02427618, // type: /undefined2 + SHC_3BB0A8C1_0x0242765C = 0x0242765C, + // type: /undefined2 SHC_3BB0A8C1_0x0242765E = 0x0242765E, // type: /undefined2 SHC_3BB0A8C1_0x02427660 = 0x02427660, @@ -97520,6 +102759,8 @@ enum { // type: /undefined4 SHC_3BB0A8C1_0x0242766C = 0x0242766C, // type: /undefined2 + SHC_3BB0A8C1_0x024276B0 = 0x024276B0, + // type: /undefined2 SHC_3BB0A8C1_0x024276B2 = 0x024276B2, // type: /undefined2 SHC_3BB0A8C1_0x024276B4 = 0x024276B4, @@ -97536,7 +102777,11 @@ enum { // type: /undefined4 SHC_3BB0A8C1_0x024276C0 = 0x024276C0, // type: /undefined4 + SHC_3BB0A8C1_0x024276C4 = 0x024276C4, + // type: /undefined4 SHC_3BB0A8C1_0x024276C8 = 0x024276C8, + // type: /undefined4 + SHC_3BB0A8C1_0x024276CC = 0x024276CC, // label: DAT_ExceptionRecord // location: // type: winnt/EXCEPTION_RECORD @@ -97549,6 +102794,8 @@ enum { // location: // type: excpt/_CONTEXT SHC_3BB0A8C1_0x02427728 = 0x02427728, + // type: /undefined4 + SHC_3BB0A8C1_0x024279F4 = 0x024279F4, // label: DAT_MbUlInfo // location: // type: /ushort[6] @@ -97565,10 +102812,16 @@ enum { // location: // type: /int SHC_3BB0A8C1_0x02427A0C = 0x02427A0C, + // label: g_dwFlsAllocProc + // location: // type: /undefined4 SHC_3BB0A8C1_0x02427A30 = 0x02427A30, + // label: g_dwFlsGetValueProc + // location: // type: /undefined4 SHC_3BB0A8C1_0x02427A34 = 0x02427A34, + // label: g_dwFlsSetValueProc + // location: // type: /undefined4 SHC_3BB0A8C1_0x02427A38 = 0x02427A38, // type: /undefined4 @@ -97577,13 +102830,19 @@ enum { // location: // type: winnt/HANDLE SHC_3BB0A8C1_0x02427A40 = 0x02427A40, + // label: g_dwCrtSbhHeap + // location: // type: /undefined4 SHC_3BB0A8C1_0x02427B98 = 0x02427B98, // type: /undefined4 SHC_3BB0A8C1_0x02427EB4 = 0x02427EB4, // type: /undefined4 + SHC_3BB0A8C1_0x02427EB8 = 0x02427EB8, + // type: /undefined4 SHC_3BB0A8C1_0x02427EBC = 0x02427EBC, // type: /undefined4 + SHC_3BB0A8C1_0x02427EC0 = 0x02427EC0, + // type: /undefined4 SHC_3BB0A8C1_0x02427EC8 = 0x02427EC8, // type: /undefined4 SHC_3BB0A8C1_0x02427ECC = 0x02427ECC, @@ -97610,6 +102869,10 @@ enum { // type: /undefined4 SHC_3BB0A8C1_0x02428004 = 0x02428004, // type: /undefined4 + SHC_3BB0A8C1_0x02428010 = 0x02428010, + // type: /undefined4 + SHC_3BB0A8C1_0x02428014 = 0x02428014, + // type: /undefined4 SHC_3BB0A8C1_0x02428018 = 0x02428018, // type: /undefined4 SHC_3BB0A8C1_0x0242801C = 0x0242801C, @@ -97667,6 +102930,8 @@ enum { SHC_3BB0A8C1_0x024280C0 = 0x024280C0, // type: /undefined4 SHC_3BB0A8C1_0x024280C4 = 0x024280C4, + // label: g_dwCrtMaxFileHandles + // location: // type: /undefined4 SHC_3BB0A8C1_0x024280CC = 0x024280CC, // label: DAT_Locks @@ -97674,11 +102939,21 @@ enum { // type: /undefined4 SHC_3BB0A8C1_0x024280E0 = 0x024280E0, // type: /undefined4 + SHC_3BB0A8C1_0x024280E4 = 0x024280E4, + // label: g_dwCrtFileStreamTable + // location: + // type: /undefined4 SHC_3BB0A8C1_0x024281E0 = 0x024281E0, + // label: g_dwCrtFlsCount + // location: // type: /undefined4 SHC_3BB0A8C1_0x02429200 = 0x02429200, + // label: g_dwCrtSbhRegionCount + // location: // type: /undefined4 SHC_3BB0A8C1_0x02429204 = 0x02429204, + // label: g_dwCrtSbhRegionTable + // location: // type: /undefined4 SHC_3BB0A8C1_0x02429208 = 0x02429208, // type: /int @@ -97689,6 +102964,8 @@ enum { SHC_3BB0A8C1_0x02429214 = 0x02429214, // type: /undefined4 SHC_3BB0A8C1_0x02429218 = 0x02429218, + // label: g_dwCrtHeapSelect + // location: // type: /undefined4 SHC_3BB0A8C1_0x0242921C = 0x0242921C, // type: /undefined4 @@ -98141,10 +103418,356 @@ enum { SHC_3BB0A8C1_0x02490930 = 0x02490930, // type: /TerminatedUnicode SHC_3BB0A8C1_0x02490936 = 0x02490936, + // type: /dword + SHC_3BB0A8C1_0x02490950 = 0x02490950, // label: Rsrc_Manifest_1_409 // location: // type: /byte[1708] SHC_3BB0A8C1_0x02490954 = 0x02490954, + // label: ExceptionList + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF000 = 0xFFDFF000, + // label: StackBase + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF004 = 0xFFDFF004, + // label: StackLimit + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF008 = 0xFFDFF008, + // label: SubSystemTib + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF00C = 0xFFDFF00C, + // label: FiberData + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF010 = 0xFFDFF010, + // label: ArbitraryUserPointer + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF014 = 0xFFDFF014, + // label: Self + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF018 = 0xFFDFF018, + // label: EnvironmentPointer + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF01C = 0xFFDFF01C, + // label: ClientId + // location: + // type: /CLIENT_ID + SHC_3BB0A8C1_0xFFDFF020 = 0xFFDFF020, + // label: ActiveRpcHandle + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF028 = 0xFFDFF028, + // label: ThreadLocalStoragePointer + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF02C = 0xFFDFF02C, + // label: ProcessEnvironmentBlock + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF030 = 0xFFDFF030, + // label: LastErrorValue + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFF034 = 0xFFDFF034, + // label: CountOfOwnedCriticalSections + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFF038 = 0xFFDFF038, + // label: CsrClientThread + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF03C = 0xFFDFF03C, + // label: Win32ThreadInfo + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF040 = 0xFFDFF040, + // label: User32Reserved + // location: + // type: /dword[26] + SHC_3BB0A8C1_0xFFDFF044 = 0xFFDFF044, + // label: UserReserved + // location: + // type: /dword[5] + SHC_3BB0A8C1_0xFFDFF0AC = 0xFFDFF0AC, + // label: WOW32Reserved + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF0C0 = 0xFFDFF0C0, + // label: CurrentLocale + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFF0C4 = 0xFFDFF0C4, + // label: FpSoftwareStatusRegister + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFF0C8 = 0xFFDFF0C8, + // label: SystemReserved1 + // location: + // type: /void *32[54] + SHC_3BB0A8C1_0xFFDFF0CC = 0xFFDFF0CC, + // label: ExceptionCode + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFF1A4 = 0xFFDFF1A4, + // label: ActivationContextStackPointer + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF1A8 = 0xFFDFF1A8, + // label: SpareBytes + // location: + // type: /uchar[36] + SHC_3BB0A8C1_0xFFDFF1AC = 0xFFDFF1AC, + // label: TxFsContext + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFF1D0 = 0xFFDFF1D0, + // label: GdiTebBatch + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFF1D4 = 0xFFDFF1D4, + // label: RealClientId + // location: + // type: /CLIENT_ID + SHC_3BB0A8C1_0xFFDFF6B4 = 0xFFDFF6B4, + // label: GdiCachedProcessHandle + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF6BC = 0xFFDFF6BC, + // label: GdiClientPID + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFF6C0 = 0xFFDFF6C0, + // label: GdiCLientTID + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFF6C4 = 0xFFDFF6C4, + // label: GdiThreadLocalInfo + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFF6C8 = 0xFFDFF6C8, + // label: Win32ClientInfo + // location: + // type: /void *32[62] + SHC_3BB0A8C1_0xFFDFF6CC = 0xFFDFF6CC, + // label: glDispatchTable + // location: + // type: /void *32[233] + SHC_3BB0A8C1_0xFFDFF7C4 = 0xFFDFF7C4, + // label: glReserved1 + // location: + // type: /void *32[29] + SHC_3BB0A8C1_0xFFDFFB68 = 0xFFDFFB68, + // label: glReserved2 + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFBDC = 0xFFDFFBDC, + // label: glSectionInfo + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFBE0 = 0xFFDFFBE0, + // label: glSection + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFBE4 = 0xFFDFFBE4, + // label: glTable + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFBE8 = 0xFFDFFBE8, + // label: glCurrentRC + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFBEC = 0xFFDFFBEC, + // label: glContext + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFBF0 = 0xFFDFFBF0, + // label: LastStatusValue + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFBF4 = 0xFFDFFBF4, + // label: StaticUnicodeBuffer + // location: + // type: /wchar16[261] + SHC_3BB0A8C1_0xFFDFFC00 = 0xFFDFFC00, + // label: DeallocationStack + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFE0C = 0xFFDFFE0C, + // label: TlsSlots + // location: + // type: /void *32[64] + SHC_3BB0A8C1_0xFFDFFE10 = 0xFFDFFE10, + // label: TlsLinks.Flink + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF10 = 0xFFDFFF10, + // label: TlsLinks.Blink + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF14 = 0xFFDFFF14, + // label: Vdm + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF18 = 0xFFDFFF18, + // label: ReservedForNtRpc + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF1C = 0xFFDFFF1C, + // label: DbgSsReserved + // location: + // type: /void *32[2] + SHC_3BB0A8C1_0xFFDFFF20 = 0xFFDFFF20, + // label: HardErrorMode + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFF28 = 0xFFDFFF28, + // label: Instrumentation + // location: + // type: /void *32[9] + SHC_3BB0A8C1_0xFFDFFF2C = 0xFFDFFF2C, + // label: ActivityId + // location: + // type: /GUID + SHC_3BB0A8C1_0xFFDFFF50 = 0xFFDFFF50, + // label: SubProcessTag + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF60 = 0xFFDFFF60, + // label: EtwLocalData + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF64 = 0xFFDFFF64, + // label: EtwTraceData + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF68 = 0xFFDFFF68, + // label: WinSockData + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF6C = 0xFFDFFF6C, + // label: GdiBatchCount + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFF70 = 0xFFDFFF70, + // label: IdealProcessorValue + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFF74 = 0xFFDFFF74, + // label: GuaranteedStackBytes + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFF78 = 0xFFDFFF78, + // label: ReservedForPerf + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF7C = 0xFFDFFF7C, + // label: ReservedForOle + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF80 = 0xFFDFFF80, + // label: WaitingOnLoaderLock + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFF84 = 0xFFDFFF84, + // label: SavedPriorityState + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF88 = 0xFFDFFF88, + // label: SoftPatchPtr1 + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF8C = 0xFFDFFF8C, + // label: ThreadPoolData + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF90 = 0xFFDFFF90, + // label: TlsExpansionSlots + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFF94 = 0xFFDFFF94, + // label: MuiGeneration + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFF98 = 0xFFDFFF98, + // label: IsImpersonating + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFF9C = 0xFFDFFF9C, + // label: NlsCache + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFA0 = 0xFFDFFFA0, + // label: pShimData + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFA4 = 0xFFDFFFA4, + // label: HeapVirtualAffinity + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFFA8 = 0xFFDFFFA8, + // label: CurrentTransactionHandle + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFAC = 0xFFDFFFAC, + // label: ActiveFrame + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFB0 = 0xFFDFFFB0, + // label: FlsData + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFB4 = 0xFFDFFFB4, + // label: PreferredLanguages + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFB8 = 0xFFDFFFB8, + // label: UserPrefLanguages + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFBC = 0xFFDFFFBC, + // label: MergedPrefLanguages + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFC0 = 0xFFDFFFC0, + // label: MuiImpersonation + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFFC4 = 0xFFDFFFC4, + // label: CrossTebFlags + // location: + // type: /ushort + SHC_3BB0A8C1_0xFFDFFFC8 = 0xFFDFFFC8, + // label: SameTebFlags + // location: + // type: /ushort + SHC_3BB0A8C1_0xFFDFFFCA = 0xFFDFFFCA, + // label: TxnScopeEnterCallback + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFCC = 0xFFDFFFCC, + // label: TxnScopeExitCallback + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFD0 = 0xFFDFFFD0, + // label: TxnScopeContext + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFD4 = 0xFFDFFFD4, + // label: LockCount + // location: + // type: /dword + SHC_3BB0A8C1_0xFFDFFFD8 = 0xFFDFFFD8, + // label: ResourceRetValue + // location: + // type: /void *32 + SHC_3BB0A8C1_0xFFDFFFE0 = 0xFFDFFFE0, }; } diff --git a/src/symbols/data.asm b/src/symbols/data.asm index 63082280..08a302b8 100644 --- a/src/symbols/data.asm +++ b/src/symbols/data.asm @@ -97,42 +97,76 @@ PUBLIC ?instance@?$Extern@$$BY0BLM@E$0LJFHIM@@StructResolver@@2PAEA PUBLIC ?instance@?$Extern@I$0LJFJEI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0LJFJFE@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0LJFJFM@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@I$0LJFJGA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0LJFJGE@@StructResolver@@2HA PUBLIC ?instance@?$Extern@$$BY2362H$0LJFJGI@@StructResolver@@2PAY162HA +PUBLIC ?instance@?$Extern@H$0LJFKLM@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@K$0LJFKMA@@StructResolver@@2KA PUBLIC ?instance@?$Extern@H$0LJFKME@@StructResolver@@2HA PUBLIC ?instance@?$Extern@$$BY0BF@H$0LJFKMI@@StructResolver@@2PAHA +PUBLIC ?instance@?$Extern@K$0LJFLBM@@StructResolver@@2KA + PUBLIC ?instance@?$Extern@H$0LJFLCI@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0LJFLDI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@$$BY08H$0LJFLEA@@StructResolver@@2PAHA +PUBLIC ?instance@?$Extern@H$0LJFLGE@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0LJFLGI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJFLHA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJFLHE@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@$$BY0DOM@D$0LJFLHI@@StructResolver@@2PADA +PUBLIC ?instance@?$Extern@H$0LJFPGI@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@$$BY0FA@H$0LJFPHA@@StructResolver@@2PAHA PUBLIC ?instance@?$Extern@I$0LJGALE@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0LJGAMI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0LJGAMM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0LJGANI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0LJGANM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJGAOE@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0LJGAOI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@H$0LJGAPA@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0LJGAPE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJGBAA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJGBBA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0LJGBBE@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0LJGBBI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0LJGBBM@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@H$0LJGBCA@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@VMenu@UI@OpenSHC@@$0LJGBCI@@StructResolver@@2VMenu@UI@OpenSHC@@A PUBLIC ?instance@?$Extern@VMenu@UI@OpenSHC@@$0LJGBHA@@StructResolver@@2VMenu@UI@OpenSHC@@A @@ -443,20 +477,44 @@ PUBLIC ?instance@?$Extern@VMenuView@UI@OpenSHC@@$0LJIDKE@@StructResolver@@2VMenu PUBLIC ?instance@?$Extern@VMenu@UI@OpenSHC@@$0LJIDMA@@StructResolver@@2VMenu@UI@OpenSHC@@A +PUBLIC ?instance@?$Extern@I$0LJIEAE@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0LJIEAI@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@I$0LJIEAM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@K$0LJIEBI@@StructResolver@@2KA +PUBLIC ?instance@?$Extern@I$0LJIEBM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJIECA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJIECE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJIECI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJIECM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJIEDA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0LJIEDE@@StructResolver@@2HA PUBLIC ?instance@?$Extern@H$0LJIEDI@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@I$0LJIEDM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0LJIEEA@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0LJIEEE@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0LJIEEI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0LJIEFM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@$$BY08H$0LJIEGA@@StructResolver@@2PAHA +PUBLIC ?instance@?$Extern@H$0LJIEIE@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@$$BY189H$0LJIEII@@StructResolver@@2PAY09HA PUBLIC ?instance@?$Extern@$$BY09H$0LJIFPA@@StructResolver@@2PAHA @@ -475,23 +533,43 @@ PUBLIC ?instance@?$Extern@I$0LJIGFM@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0LJIGGA@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@H$0LJIGGE@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@H$0LJIGGI@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0LJIGGM@@StructResolver@@2IA PUBLIC ?instance@?$Extern@$$BY09H$0LJIGHA@@StructResolver@@2PAHA +PUBLIC ?instance@?$Extern@H$0LJIGJI@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0LJIGJM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@$$BY0EA@D$0LJIGKA@@StructResolver@@2PADA +PUBLIC ?instance@?$Extern@I$0LJIGOA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@M$0LJIGOI@@StructResolver@@2MA + +PUBLIC ?instance@?$Extern@M$0LJIGOM@@StructResolver@@2MA + +PUBLIC ?instance@?$Extern@I$0LJIGPA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0LJIGPE@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@M$0LJIGPI@@StructResolver@@2MA + PUBLIC ?instance@?$Extern@H$0LJIGPM@@StructResolver@@2HA PUBLIC ?instance@?$Extern@M$0LJIHAA@@StructResolver@@2MA +PUBLIC ?instance@?$Extern@M$0LJIHAE@@StructResolver@@2MA + +PUBLIC ?instance@?$Extern@K$0LJIHAI@@StructResolver@@2KA + PUBLIC ?instance@?$Extern@$$BY0CA@PAX$0LJIHBA@@StructResolver@@2PAPAXA -PUBLIC ?instance@?$Extern@UImageHeaders@Graphics@IO@OpenSHC@@$0LJIHJA@@StructResolver@@2UImageHeaders@Graphics@IO@OpenSHC@@A +PUBLIC ?instance@?$Extern@$$BY0BABNA@UImageHeader@Graphics@IO@OpenSHC@@$0LJIHJA@@StructResolver@@2PAUImageHeader@Graphics@IO@OpenSHC@@A PUBLIC ?instance@?$Extern@$$BY0BMFCA@H$0MJKFJA@@StructResolver@@2PAHA @@ -511,12 +589,32 @@ PUBLIC ?instance@?$Extern@I$0NPCJFM@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0NPCJGA@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0NPCJGE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@H$0NPCJGI@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0NPCJGM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@H$0NPCJHA@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@$$BY0BAA@_W$0NPCJHI@@StructResolver@@2PA_WA +PUBLIC ?instance@?$Extern@I$0NPDDFA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0NPDDFE@@StructResolver@@2HA PUBLIC ?instance@?$Extern@H$0NPDDFI@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@H$0NPDDFM@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@K$0NPDDGE@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@H$0NPDDGI@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0NPDDHE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@K$0NPDDHI@@StructResolver@@2KA + PUBLIC ?instance@?$Extern@K$0NPDDHM@@StructResolver@@2KA PUBLIC ?instance@?$Extern@H$0NPDDIA@@StructResolver@@2HA @@ -607,6 +705,8 @@ PUBLIC ?instance@?$Extern@K$0NPECDE@@StructResolver@@2KA PUBLIC ?instance@?$Extern@I$0NPECDI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0NPECDM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0NPECEI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@$$BY06H$0NPECEM@@StructResolver@@2PAHA @@ -615,6 +715,8 @@ PUBLIC ?instance@?$Extern@H$0NPECGI@@StructResolver@@2HA PUBLIC ?instance@?$Extern@$$BY05H$0NPECGM@@StructResolver@@2PAHA +PUBLIC ?instance@?$Extern@I$0NPECII@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0NPECIM@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0NPECJE@@StructResolver@@2IA @@ -831,26 +933,72 @@ PUBLIC ?instance@?$Extern@VMenuModal@UI@OpenSHC@@$0NPFBKA@@StructResolver@@2VMen PUBLIC ?instance@?$Extern@VMenuModal@UI@OpenSHC@@$0NPFBMI@@StructResolver@@2VMenuModal@UI@OpenSHC@@A +PUBLIC ?instance@?$Extern@I$0NPFBPE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFBPM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@$$BY0GE@H$0NPFCAI@@StructResolver@@2PAHA PUBLIC ?instance@?$Extern@$$BY0GE@H$0NPFDJI@@StructResolver@@2PAHA PUBLIC ?instance@?$Extern@H$0NPFFCI@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@I$0NPFFDA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFFDI@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0NPFFDM@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@I$0NPFFEA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFFEE@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0NPFFEM@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0NPFFFA@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0NPFFFI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFFFM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFFGA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFFGE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@K$0NPFFGI@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@I$0NPFFGM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0NPFFHA@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@H$0NPFFHE@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@H$0NPFFHI@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@H$0NPFFHM@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0NPFFIA@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0NPFFIE@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0NPFFII@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFFIM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFFJA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0NPFFJE@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0NPFGDI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0NPFGEE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFGEI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFGFA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPFGFE@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@USkMasterDataEntry@IO@OpenSHC@@$0NPFGFI@@StructResolver@@2USkMasterDataEntry@IO@OpenSHC@@A PUBLIC ?instance@?$Extern@H$0NPGCEI@@StructResolver@@2HA @@ -861,30 +1009,130 @@ PUBLIC ?instance@?$Extern@$$BY0PK@USkMasterDataEntry@IO@OpenSHC@@$0NPGCFA@@Struc PUBLIC ?instance@?$Extern@$$BY0EA@D$0OLAKLA@@StructResolver@@2PADA +PUBLIC ?instance@?$Extern@I$0OLALCA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OLALCE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@H$0OLAOCI@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0OLAODA@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@I$0OLAODM@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0OLAOEA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@H$0OLAOEE@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0OLBCDA@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0OLBCDE@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@$$BY1CB@EAA@D$0OLBCNI@@StructResolver@@2PAY0EAA@DA +PUBLIC ?instance@?$Extern@H$0OLJKMA@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0OLJKME@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@$$BY0CA@D$0OLJKMI@@StructResolver@@2PADA +PUBLIC ?instance@?$Extern@H$0OLJKOI@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@I$0OLJKPA@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0OLJKPE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OLJKPI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@M$0OLJLBM@@StructResolver@@2MA + +PUBLIC ?instance@?$Extern@H$0OLJLCA@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@M$0OLJLCE@@StructResolver@@2MA + +PUBLIC ?instance@?$Extern@I$0OLJLCI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OLJLCM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OLJLDA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OLJLDE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OLJLDI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OLJLDM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OLJLEA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@H$0OLJLEI@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@I$0OLJLFA@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0OLJLFI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0OLJLGA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0OLJLGE@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0OMACOM@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0OMAICM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0OMAIDA@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@H$0OMAIDM@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0ONCHIA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONCHJI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONCHJM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONCHKA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@H$0ONCHKE@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0ONCHKI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONCHLE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONCHLI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONCHLM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0ONCHMA@@StructResolver@@2IA PUBLIC ?instance@?$Extern@$$BY09H$0ONCHMI@@StructResolver@@2PAHA +PUBLIC ?instance@?$Extern@I$0ONCLNI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONCLNM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0ONDAGM@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0ONDBBA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@H$0ONDBBE@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0ONDBBI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONDBBM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONDBCA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONDBCE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@E$0ONDBCI@@StructResolver@@2EA + +PUBLIC ?instance@?$Extern@I$0ONDBDI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@H$0ONDBEE@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@I$0ONDBEI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONDBEM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONDBFE@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0ONDBFI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0ONDBGA@@StructResolver@@2IA @@ -893,16 +1141,24 @@ PUBLIC ?instance@?$Extern@I$0ONDBGE@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0ONDBGI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0ONDBGM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0ONDBHA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0ONDBHE@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0ONDBHI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0ONDBHM@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0ONDBIA@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0ONDBJI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0ONDBJM@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0ONDBKA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0ONDBKE@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0ONDBKI@@StructResolver@@2IA @@ -925,6 +1181,8 @@ PUBLIC ?instance@?$Extern@I$0ONDBMI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@H$0ONDBMM@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@I$0ONDBNA@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@H$0ONDBNE@@StructResolver@@2HA PUBLIC ?instance@?$Extern@PAVMenuView@UI@OpenSHC@@$0ONDBNI@@StructResolver@@2PAVMenuView@UI@OpenSHC@@A @@ -935,6 +1193,8 @@ PUBLIC ?instance@?$Extern@$$BY2O@KJ@5H$0ONDBOA@@StructResolver@@2PAY1KJ@5HA PUBLIC ?instance@?$Extern@I$0OOAPLA@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0OOAPLE@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0OOAPLI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0OOAPLM@@StructResolver@@2IA @@ -943,15 +1203,57 @@ PUBLIC ?instance@?$Extern@I$0OOAPME@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0OOAPMI@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@K$0OOBADM@@StructResolver@@2KA +PUBLIC ?instance@?$Extern@K$0OOAPMM@@StructResolver@@2KA -PUBLIC ?instance@?$Extern@I$0OOBAGI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@K$0OOAPNE@@StructResolver@@2KA -PUBLIC ?instance@?$Extern@VBottomLeftTextDisplayState@UI@OpenSHC@@$0OOBAGM@@StructResolver@@2VBottomLeftTextDisplayState@UI@OpenSHC@@A +PUBLIC ?instance@?$Extern@H$0OOAPNI@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@VMissingResourceState@Audio@OpenSHC@@$0OOBAJI@@StructResolver@@2VMissingResourceState@Audio@OpenSHC@@A +PUBLIC ?instance@?$Extern@K$0OOAPNM@@StructResolver@@2KA -PUBLIC ?instance@?$Extern@VWideCharMultiByteState@Util@OpenSHC@@$0OOBAJJ@@StructResolver@@2VWideCharMultiByteState@Util@OpenSHC@@A +PUBLIC ?instance@?$Extern@I$0OOBACI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OOBACM@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OOBADA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OOBADE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@H$0OOBADI@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@K$0OOBADM@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAEA@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAEE@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAEI@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAEM@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAFA@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAFE@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAFI@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAFM@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAGA@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@K$0OOBAGE@@StructResolver@@2KA + +PUBLIC ?instance@?$Extern@I$0OOBAGI@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@VBottomLeftTextDisplayState@UI@OpenSHC@@$0OOBAGM@@StructResolver@@2VBottomLeftTextDisplayState@UI@OpenSHC@@A + +PUBLIC ?instance@?$Extern@I$0OOBAJA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0OOBAJE@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@VMissingResourceState@Audio@OpenSHC@@$0OOBAJI@@StructResolver@@2VMissingResourceState@Audio@OpenSHC@@A + +PUBLIC ?instance@?$Extern@VWideCharMultiByteState@Util@OpenSHC@@$0OOBAJJ@@StructResolver@@2VWideCharMultiByteState@Util@OpenSHC@@A PUBLIC ?instance@?$Extern@VSettingsFileState@IO@OpenSHC@@$0OOBAJK@@StructResolver@@2VSettingsFileState@IO@OpenSHC@@A @@ -961,16 +1263,38 @@ PUBLIC ?instance@?$Extern@VAIMessageQueue@Bink@Rendering@OpenSHC@@$0OOBAKA@@Stru PUBLIC ?instance@?$Extern@VWallAndPitchState@Map@OpenSHC@@$0OOBJNA@@StructResolver@@2VWallAndPitchState@Map@OpenSHC@@A +PUBLIC ?instance@?$Extern@H$0OOCDFA@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@H$0OOCDFE@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@H$0OOCDFI@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0OOCDFM@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0OOCDGA@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@H$0OOCDGE@@StructResolver@@2HA PUBLIC ?instance@?$Extern@H$0OOCDGI@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@H$0OOCDGM@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0OOCDHA@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@H$0OOCDHE@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@H$0OOCDHI@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0OOCDHM@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@H$0OOCDIA@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@H$0OOCDIE@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0OOCDII@@StructResolver@@2HA + +PUBLIC ?instance@?$Extern@H$0OOCDIM@@StructResolver@@2HA + PUBLIC ?instance@?$Extern@H$0OOCDJA@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0OOCDJE@@StructResolver@@2IA @@ -1135,108 +1459,42 @@ PUBLIC ?instance@?$Extern@PAX$0LGABLI@@StructResolver@@2PAXA PUBLIC ?instance@?$Extern@H$0LJFJFA@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@I$0LJFJFE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJFJGA@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0LJFJFI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@H$0LJFKLI@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@H$0LJFKLM@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@K$0LJFLBM@@StructResolver@@2KA - PUBLIC ?instance@?$Extern@I$0LJFLCM@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0LJFLDM@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@H$0LJFLGE@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0LJFLGI@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@I$0LJFLGM@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0LJFLHA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJFLHE@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@I$0LJFPGE@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@H$0LJFPGI@@StructResolver@@2HA - PUBLIC ?instance@?$Extern@H$0LJFPGM@@StructResolver@@2HA PUBLIC ?instance@?$Extern@H$0LJGALA@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0LJGALM@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0LJGANM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0LJGAPA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0LJGAPE@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0LJGAOM@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0LJGAPI@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0LJGBAA@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@I$0LJGBAI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0LJGBAM@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0LJGBBA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0LJGBCA@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@I$0LJGBCE@@StructResolver@@2IA PUBLIC ?instance@?$Extern@VMenuView@UI@OpenSHC@@$0LJHELM@@StructResolver@@2VMenuView@UI@OpenSHC@@A -PUBLIC ?instance@?$Extern@I$0LJIEAM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJIEBM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJIECA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJIECE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJIECI@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJIECM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJIEDA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJIEDM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJIEEI@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@H$0LJIEEM@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0LJIEFA@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0LJIEFE@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0LJIEFM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0LJIEIE@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0LJIGGE@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0LJIGJI@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0LJIGJM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0LJIGOA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@M$0LJIGOI@@StructResolver@@2MA - -PUBLIC ?instance@?$Extern@M$0LJIGOM@@StructResolver@@2MA - -PUBLIC ?instance@?$Extern@I$0LJIGPA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@M$0LJIGPI@@StructResolver@@2MA - -PUBLIC ?instance@?$Extern@M$0LJIHAE@@StructResolver@@2MA - -PUBLIC ?instance@?$Extern@K$0LJIHAI@@StructResolver@@2KA - PUBLIC ?instance@?$Extern@H$0LJIHAM@@StructResolver@@2HA PUBLIC ?instance@?$Extern@$$BY0CA@PAX$0MJKEJA@@StructResolver@@2PAPAXA @@ -1245,162 +1503,64 @@ PUBLIC ?instance@?$Extern@$$BY0CA@PAX$0MJKFBA@@StructResolver@@2PAPAXA PUBLIC ?instance@?$Extern@$$BY0CA@PAX$0NHNCFA@@StructResolver@@2PAPAXA -PUBLIC ?instance@?$Extern@I$0NPCJGE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0NPCJGI@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0NPCJGM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0NPCJHA@@StructResolver@@2HA - PUBLIC ?instance@?$Extern@$$BY0DOI@_W$0NPCLHI@@StructResolver@@2PA_WA PUBLIC ?instance@?$Extern@I$0NPDDEI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0NPDDEM@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0NPDDFA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0NPDDFM@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@K$0NPDDGE@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@H$0NPDDGI@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0NPDDHE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@K$0NPDDHI@@StructResolver@@2KA +PUBLIC ?instance@?$Extern@I$0NPDDGA@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0NPDDKM@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0NPECDM@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0NPECEA@@StructResolver@@2IA + +PUBLIC ?instance@?$Extern@I$0NPECEE@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0NPECIE@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0NPECJI@@StructResolver@@2IA + PUBLIC ?instance@?$Extern@I$0NPECLA@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0NPFBPA@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0NPFBPE@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@I$0NPFBPI@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0NPFBPM@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@I$0NPFCAA@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0NPFFDA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0NPFFDI@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0NPFFEA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0NPFFEE@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@I$0NPFFFE@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0NPFFFI@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0NPFFFM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0NPFFGA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0NPFFGE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@K$0NPFFGI@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@I$0NPFFGM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0NPFFHE@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0NPFFHM@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0NPFFIA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0NPFFIE@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0NPFFII@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0NPFFIM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0NPFFJA@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@$$BY0CA@H$0NPFFJI@@StructResolver@@2PAHA -PUBLIC ?instance@?$Extern@I$0NPFGEE@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@$$BY08H$0OLAKPA@@StructResolver@@2PAHA PUBLIC ?instance@?$Extern@K$0OLALBI@@StructResolver@@2KA -PUBLIC ?instance@?$Extern@I$0OLALCA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OLALCE@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@$$BY1DA@3H$0OLALCI@@StructResolver@@2PAY03HA -PUBLIC ?instance@?$Extern@H$0OLAOCI@@StructResolver@@2HA - PUBLIC ?instance@?$Extern@M$0OLAOCM@@StructResolver@@2MA -PUBLIC ?instance@?$Extern@H$0OLAODA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0OLAOEA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0OLAOEE@@StructResolver@@2HA - PUBLIC ?instance@?$Extern@$$BY0PK@H$0OLAOEI@@StructResolver@@2PAHA -PUBLIC ?instance@?$Extern@H$0OLBCDA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0OLBCDE@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@$$BY0CI@H$0OLBCDI@@StructResolver@@2PAHA PUBLIC ?instance@?$Extern@$$BY0PK@H$0OLJGNI@@StructResolver@@2PAHA -PUBLIC ?instance@?$Extern@H$0OLJKMA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0OLJKME@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0OLJKOI@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0OLJKPE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OLJKPI@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@$$BY03H$0OLJKPM@@StructResolver@@2PAHA PUBLIC ?instance@?$Extern@I$0OLJLAM@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@M$0OLJLBM@@StructResolver@@2MA - -PUBLIC ?instance@?$Extern@H$0OLJLCA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@M$0OLJLCE@@StructResolver@@2MA - -PUBLIC ?instance@?$Extern@I$0OLJLCI@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OLJLCM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OLJLDA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OLJLDE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OLJLDI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0OLJLBA@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0OLJLDM@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0OLJLBE@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0OLJLEA@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0OLJLBI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@H$0OLJLEE@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@H$0OLJLEI@@StructResolver@@2HA - PUBLIC ?instance@?$Extern@H$0OLJLEM@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@I$0OLJLGA@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@$$BY0BCA@UCreditsRelatedStructure2@Rendering@OpenSHC@@$0OLJLGI@@StructResolver@@2PAUCreditsRelatedStructure2@Rendering@OpenSHC@@A PUBLIC ?instance@?$Extern@H$0OMACOI@@StructResolver@@2HA @@ -1409,14 +1569,10 @@ PUBLIC ?instance@?$Extern@UCampaignInfoSubStructure1@Game@OpenSHC@@$0OMACPE@@Str PUBLIC ?instance@?$Extern@$$BY0BI@UCreditsRelatedStructure@Rendering@OpenSHC@@$0OMADEI@@StructResolver@@2PAUCreditsRelatedStructure@Rendering@OpenSHC@@A -PUBLIC ?instance@?$Extern@I$0OMAICM@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@M$0OMAIDE@@StructResolver@@2MA PUBLIC ?instance@?$Extern@H$0OMAIDI@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@H$0OMAIDM@@StructResolver@@2HA - PUBLIC ?instance@?$Extern@UGFXRelatedBuffer1@Graphics@IO@OpenSHC@@$0OMAIEA@@StructResolver@@2UGFXRelatedBuffer1@Graphics@IO@OpenSHC@@A PUBLIC ?instance@?$Extern@$$BY0CI@H$0ONCGDA@@StructResolver@@2PAHA @@ -1427,31 +1583,19 @@ PUBLIC ?instance@?$Extern@H$0ONCHHI@@StructResolver@@2HA PUBLIC ?instance@?$Extern@H$0ONCHHM@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@I$0ONCHIA@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@I$0ONCHII@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0ONCHIM@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0ONCHJE@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0ONCHJI@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@H$0ONCHLA@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@I$0ONCHKA@@StructResolver@@2IA +PUBLIC ?instance@?$Extern@I$0ONCHME@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@H$0ONCHKE@@StructResolver@@2HA +PUBLIC ?instance@?$Extern@$$BY0PK@H$0ONCHPA@@StructResolver@@2PAHA -PUBLIC ?instance@?$Extern@I$0ONCHKI@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0ONCHLA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0ONCHLM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@$$BY0PK@H$0ONCHPA@@StructResolver@@2PAHA - -PUBLIC ?instance@?$Extern@I$0ONCLNI@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@$$BY0PK@H$0ONCLOA@@StructResolver@@2PAHA +PUBLIC ?instance@?$Extern@$$BY0PK@H$0ONCLOA@@StructResolver@@2PAHA PUBLIC ?instance@?$Extern@$$BY0CI@H$0ONCPMI@@StructResolver@@2PAHA @@ -1459,52 +1603,12 @@ PUBLIC ?instance@?$Extern@H$0ONDAGI@@StructResolver@@2HA PUBLIC ?instance@?$Extern@$$BY0CI@H$0ONDAHA@@StructResolver@@2PAHA -PUBLIC ?instance@?$Extern@H$0ONDBBE@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0ONDBBI@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0ONDBBM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0ONDBCA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0ONDBCE@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@M$0ONDBCM@@StructResolver@@2MA -PUBLIC ?instance@?$Extern@I$0ONDBDI@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@H$0ONDBDM@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@H$0ONDBEE@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@I$0ONDBEI@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0ONDBEM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0ONDBFE@@StructResolver@@2IA - PUBLIC ?instance@?$Extern@H$0ONDBFM@@StructResolver@@2HA -PUBLIC ?instance@?$Extern@I$0ONDBGM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0ONDBHA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0ONDBHM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0ONDBKA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0ONDBNA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OOAPLE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@K$0OOAPMM@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOAPNE@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@H$0OOAPNI@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@K$0OOAPNM@@StructResolver@@2KA - PUBLIC ?instance@?$Extern@H$0OOAPOA@@StructResolver@@2HA PUBLIC ?instance@?$Extern@I$0OOAPOI@@StructResolver@@2IA @@ -1535,62 +1639,6 @@ PUBLIC ?instance@?$Extern@I$0OOBABI@@StructResolver@@2IA PUBLIC ?instance@?$Extern@I$0OOBABM@@StructResolver@@2IA -PUBLIC ?instance@?$Extern@I$0OOBACI@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OOBACM@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OOBADA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OOBADE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0OOBADI@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@K$0OOBAEA@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOBAEE@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOBAEI@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOBAEM@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOBAFA@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOBAFE@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOBAFI@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOBAFM@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOBAGA@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@K$0OOBAGE@@StructResolver@@2KA - -PUBLIC ?instance@?$Extern@I$0OOBAJA@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@I$0OOBAJE@@StructResolver@@2IA - -PUBLIC ?instance@?$Extern@H$0OOCDFA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDFI@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDFM@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDGA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDGM@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDHA@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDHI@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDHM@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDIE@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDII@@StructResolver@@2HA - -PUBLIC ?instance@?$Extern@H$0OOCDIM@@StructResolver@@2HA - PUBLIC ?instance@?$Extern@K$0CECHEGM@@StructResolver@@2KA PUBLIC ?instance@?$Extern@H$0CECHEHA@@StructResolver@@2HA @@ -1694,42 +1742,76 @@ _TEXT SEGMENT ?instance@?$Extern@I$0LJFJEI@@StructResolver@@2IA EQU 00B95948h +?instance@?$Extern@I$0LJFJFE@@StructResolver@@2IA EQU 00B95954h + ?instance@?$Extern@H$0LJFJFM@@StructResolver@@2HA EQU 00B9595Ch +?instance@?$Extern@I$0LJFJGA@@StructResolver@@2IA EQU 00B95960h + ?instance@?$Extern@H$0LJFJGE@@StructResolver@@2HA EQU 00B95964h ?instance@?$Extern@$$BY2362H$0LJFJGI@@StructResolver@@2PAY162HA EQU 00B95968h +?instance@?$Extern@H$0LJFKLM@@StructResolver@@2HA EQU 00B95ABCh + ?instance@?$Extern@K$0LJFKMA@@StructResolver@@2KA EQU 00B95AC0h ?instance@?$Extern@H$0LJFKME@@StructResolver@@2HA EQU 00B95AC4h ?instance@?$Extern@$$BY0BF@H$0LJFKMI@@StructResolver@@2PAHA EQU 00B95AC8h +?instance@?$Extern@K$0LJFLBM@@StructResolver@@2KA EQU 00B95B1Ch + ?instance@?$Extern@H$0LJFLCI@@StructResolver@@2HA EQU 00B95B28h ?instance@?$Extern@I$0LJFLDI@@StructResolver@@2IA EQU 00B95B38h ?instance@?$Extern@$$BY08H$0LJFLEA@@StructResolver@@2PAHA EQU 00B95B40h +?instance@?$Extern@H$0LJFLGE@@StructResolver@@2HA EQU 00B95B64h + +?instance@?$Extern@I$0LJFLGI@@StructResolver@@2IA EQU 00B95B68h + +?instance@?$Extern@I$0LJFLHA@@StructResolver@@2IA EQU 00B95B70h + +?instance@?$Extern@I$0LJFLHE@@StructResolver@@2IA EQU 00B95B74h + ?instance@?$Extern@$$BY0DOM@D$0LJFLHI@@StructResolver@@2PADA EQU 00B95B78h +?instance@?$Extern@H$0LJFPGI@@StructResolver@@2HA EQU 00B95F68h + ?instance@?$Extern@$$BY0FA@H$0LJFPHA@@StructResolver@@2PAHA EQU 00B95F70h ?instance@?$Extern@I$0LJGALE@@StructResolver@@2IA EQU 00B960B4h ?instance@?$Extern@I$0LJGAMI@@StructResolver@@2IA EQU 00B960C8h +?instance@?$Extern@I$0LJGAMM@@StructResolver@@2IA EQU 00B960CCh + ?instance@?$Extern@I$0LJGANI@@StructResolver@@2IA EQU 00B960D8h +?instance@?$Extern@I$0LJGANM@@StructResolver@@2IA EQU 00B960DCh + +?instance@?$Extern@I$0LJGAOE@@StructResolver@@2IA EQU 00B960E4h + ?instance@?$Extern@I$0LJGAOI@@StructResolver@@2IA EQU 00B960E8h +?instance@?$Extern@H$0LJGAPA@@StructResolver@@2HA EQU 00B960F0h + +?instance@?$Extern@I$0LJGAPE@@StructResolver@@2IA EQU 00B960F4h + +?instance@?$Extern@I$0LJGBAA@@StructResolver@@2IA EQU 00B96100h + +?instance@?$Extern@I$0LJGBBA@@StructResolver@@2IA EQU 00B96110h + ?instance@?$Extern@I$0LJGBBE@@StructResolver@@2IA EQU 00B96114h ?instance@?$Extern@I$0LJGBBI@@StructResolver@@2IA EQU 00B96118h ?instance@?$Extern@I$0LJGBBM@@StructResolver@@2IA EQU 00B9611Ch +?instance@?$Extern@H$0LJGBCA@@StructResolver@@2HA EQU 00B96120h + ?instance@?$Extern@VMenu@UI@OpenSHC@@$0LJGBCI@@StructResolver@@2VMenu@UI@OpenSHC@@A EQU 00B96128h ?instance@?$Extern@VMenu@UI@OpenSHC@@$0LJGBHA@@StructResolver@@2VMenu@UI@OpenSHC@@A EQU 00B96170h @@ -2040,20 +2122,44 @@ _TEXT SEGMENT ?instance@?$Extern@VMenu@UI@OpenSHC@@$0LJIDMA@@StructResolver@@2VMenu@UI@OpenSHC@@A EQU 00B983C0h +?instance@?$Extern@I$0LJIEAE@@StructResolver@@2IA EQU 00B98404h + ?instance@?$Extern@H$0LJIEAI@@StructResolver@@2HA EQU 00B98408h +?instance@?$Extern@I$0LJIEAM@@StructResolver@@2IA EQU 00B9840Ch + ?instance@?$Extern@K$0LJIEBI@@StructResolver@@2KA EQU 00B98418h +?instance@?$Extern@I$0LJIEBM@@StructResolver@@2IA EQU 00B9841Ch + +?instance@?$Extern@I$0LJIECA@@StructResolver@@2IA EQU 00B98420h + +?instance@?$Extern@I$0LJIECE@@StructResolver@@2IA EQU 00B98424h + +?instance@?$Extern@I$0LJIECI@@StructResolver@@2IA EQU 00B98428h + +?instance@?$Extern@I$0LJIECM@@StructResolver@@2IA EQU 00B9842Ch + +?instance@?$Extern@I$0LJIEDA@@StructResolver@@2IA EQU 00B98430h + ?instance@?$Extern@H$0LJIEDE@@StructResolver@@2HA EQU 00B98434h ?instance@?$Extern@H$0LJIEDI@@StructResolver@@2HA EQU 00B98438h +?instance@?$Extern@I$0LJIEDM@@StructResolver@@2IA EQU 00B9843Ch + ?instance@?$Extern@I$0LJIEEA@@StructResolver@@2IA EQU 00B98440h ?instance@?$Extern@I$0LJIEEE@@StructResolver@@2IA EQU 00B98444h +?instance@?$Extern@I$0LJIEEI@@StructResolver@@2IA EQU 00B98448h + +?instance@?$Extern@I$0LJIEFM@@StructResolver@@2IA EQU 00B9845Ch + ?instance@?$Extern@$$BY08H$0LJIEGA@@StructResolver@@2PAHA EQU 00B98460h +?instance@?$Extern@H$0LJIEIE@@StructResolver@@2HA EQU 00B98484h + ?instance@?$Extern@$$BY189H$0LJIEII@@StructResolver@@2PAY09HA EQU 00B98488h ?instance@?$Extern@$$BY09H$0LJIFPA@@StructResolver@@2PAHA EQU 00B985F0h @@ -2072,23 +2178,43 @@ _TEXT SEGMENT ?instance@?$Extern@I$0LJIGGA@@StructResolver@@2IA EQU 00B98660h +?instance@?$Extern@H$0LJIGGE@@StructResolver@@2HA EQU 00B98664h + ?instance@?$Extern@H$0LJIGGI@@StructResolver@@2HA EQU 00B98668h ?instance@?$Extern@I$0LJIGGM@@StructResolver@@2IA EQU 00B9866Ch ?instance@?$Extern@$$BY09H$0LJIGHA@@StructResolver@@2PAHA EQU 00B98670h +?instance@?$Extern@H$0LJIGJI@@StructResolver@@2HA EQU 00B98698h + +?instance@?$Extern@I$0LJIGJM@@StructResolver@@2IA EQU 00B9869Ch + ?instance@?$Extern@$$BY0EA@D$0LJIGKA@@StructResolver@@2PADA EQU 00B986A0h +?instance@?$Extern@I$0LJIGOA@@StructResolver@@2IA EQU 00B986E0h + +?instance@?$Extern@M$0LJIGOI@@StructResolver@@2MA EQU 00B986E8h + +?instance@?$Extern@M$0LJIGOM@@StructResolver@@2MA EQU 00B986ECh + +?instance@?$Extern@I$0LJIGPA@@StructResolver@@2IA EQU 00B986F0h + ?instance@?$Extern@H$0LJIGPE@@StructResolver@@2HA EQU 00B986F4h +?instance@?$Extern@M$0LJIGPI@@StructResolver@@2MA EQU 00B986F8h + ?instance@?$Extern@H$0LJIGPM@@StructResolver@@2HA EQU 00B986FCh ?instance@?$Extern@M$0LJIHAA@@StructResolver@@2MA EQU 00B98700h +?instance@?$Extern@M$0LJIHAE@@StructResolver@@2MA EQU 00B98704h + +?instance@?$Extern@K$0LJIHAI@@StructResolver@@2KA EQU 00B98708h + ?instance@?$Extern@$$BY0CA@PAX$0LJIHBA@@StructResolver@@2PAPAXA EQU 00B98710h -?instance@?$Extern@UImageHeaders@Graphics@IO@OpenSHC@@$0LJIHJA@@StructResolver@@2UImageHeaders@Graphics@IO@OpenSHC@@A EQU 00B98790h +?instance@?$Extern@$$BY0BABNA@UImageHeader@Graphics@IO@OpenSHC@@$0LJIHJA@@StructResolver@@2PAUImageHeader@Graphics@IO@OpenSHC@@A EQU 00B98790h ?instance@?$Extern@$$BY0BMFCA@H$0MJKFJA@@StructResolver@@2PAHA EQU 00C9A590h @@ -2108,12 +2234,32 @@ _TEXT SEGMENT ?instance@?$Extern@I$0NPCJGA@@StructResolver@@2IA EQU 00DF2960h +?instance@?$Extern@I$0NPCJGE@@StructResolver@@2IA EQU 00DF2964h + +?instance@?$Extern@H$0NPCJGI@@StructResolver@@2HA EQU 00DF2968h + +?instance@?$Extern@I$0NPCJGM@@StructResolver@@2IA EQU 00DF296Ch + +?instance@?$Extern@H$0NPCJHA@@StructResolver@@2HA EQU 00DF2970h + ?instance@?$Extern@$$BY0BAA@_W$0NPCJHI@@StructResolver@@2PA_WA EQU 00DF2978h +?instance@?$Extern@I$0NPDDFA@@StructResolver@@2IA EQU 00DF3350h + ?instance@?$Extern@H$0NPDDFE@@StructResolver@@2HA EQU 00DF3354h ?instance@?$Extern@H$0NPDDFI@@StructResolver@@2HA EQU 00DF3358h +?instance@?$Extern@H$0NPDDFM@@StructResolver@@2HA EQU 00DF335Ch + +?instance@?$Extern@K$0NPDDGE@@StructResolver@@2KA EQU 00DF3364h + +?instance@?$Extern@H$0NPDDGI@@StructResolver@@2HA EQU 00DF3368h + +?instance@?$Extern@I$0NPDDHE@@StructResolver@@2IA EQU 00DF3374h + +?instance@?$Extern@K$0NPDDHI@@StructResolver@@2KA EQU 00DF3378h + ?instance@?$Extern@K$0NPDDHM@@StructResolver@@2KA EQU 00DF337Ch ?instance@?$Extern@H$0NPDDIA@@StructResolver@@2HA EQU 00DF3380h @@ -2204,6 +2350,8 @@ _TEXT SEGMENT ?instance@?$Extern@I$0NPECDI@@StructResolver@@2IA EQU 00DF4238h +?instance@?$Extern@I$0NPECDM@@StructResolver@@2IA EQU 00DF423Ch + ?instance@?$Extern@I$0NPECEI@@StructResolver@@2IA EQU 00DF4248h ?instance@?$Extern@$$BY06H$0NPECEM@@StructResolver@@2PAHA EQU 00DF424Ch @@ -2212,6 +2360,8 @@ _TEXT SEGMENT ?instance@?$Extern@$$BY05H$0NPECGM@@StructResolver@@2PAHA EQU 00DF426Ch +?instance@?$Extern@I$0NPECII@@StructResolver@@2IA EQU 00DF4288h + ?instance@?$Extern@I$0NPECIM@@StructResolver@@2IA EQU 00DF428Ch ?instance@?$Extern@I$0NPECJE@@StructResolver@@2IA EQU 00DF4294h @@ -2428,26 +2578,72 @@ _TEXT SEGMENT ?instance@?$Extern@VMenuModal@UI@OpenSHC@@$0NPFBMI@@StructResolver@@2VMenuModal@UI@OpenSHC@@A EQU 00DF51C8h +?instance@?$Extern@I$0NPFBPE@@StructResolver@@2IA EQU 00DF51F4h + +?instance@?$Extern@I$0NPFBPM@@StructResolver@@2IA EQU 00DF51FCh + ?instance@?$Extern@$$BY0GE@H$0NPFCAI@@StructResolver@@2PAHA EQU 00DF5208h ?instance@?$Extern@$$BY0GE@H$0NPFDJI@@StructResolver@@2PAHA EQU 00DF5398h ?instance@?$Extern@H$0NPFFCI@@StructResolver@@2HA EQU 00DF5528h +?instance@?$Extern@I$0NPFFDA@@StructResolver@@2IA EQU 00DF5530h + +?instance@?$Extern@I$0NPFFDI@@StructResolver@@2IA EQU 00DF5538h + ?instance@?$Extern@H$0NPFFDM@@StructResolver@@2HA EQU 00DF553Ch +?instance@?$Extern@I$0NPFFEA@@StructResolver@@2IA EQU 00DF5540h + +?instance@?$Extern@I$0NPFFEE@@StructResolver@@2IA EQU 00DF5544h + ?instance@?$Extern@H$0NPFFEM@@StructResolver@@2HA EQU 00DF554Ch ?instance@?$Extern@I$0NPFFFA@@StructResolver@@2IA EQU 00DF5550h +?instance@?$Extern@I$0NPFFFI@@StructResolver@@2IA EQU 00DF5558h + +?instance@?$Extern@I$0NPFFFM@@StructResolver@@2IA EQU 00DF555Ch + +?instance@?$Extern@I$0NPFFGA@@StructResolver@@2IA EQU 00DF5560h + +?instance@?$Extern@I$0NPFFGE@@StructResolver@@2IA EQU 00DF5564h + +?instance@?$Extern@K$0NPFFGI@@StructResolver@@2KA EQU 00DF5568h + +?instance@?$Extern@I$0NPFFGM@@StructResolver@@2IA EQU 00DF556Ch + ?instance@?$Extern@H$0NPFFHA@@StructResolver@@2HA EQU 00DF5570h +?instance@?$Extern@H$0NPFFHE@@StructResolver@@2HA EQU 00DF5574h + ?instance@?$Extern@H$0NPFFHI@@StructResolver@@2HA EQU 00DF5578h +?instance@?$Extern@H$0NPFFHM@@StructResolver@@2HA EQU 00DF557Ch + +?instance@?$Extern@H$0NPFFIA@@StructResolver@@2HA EQU 00DF5580h + +?instance@?$Extern@H$0NPFFIE@@StructResolver@@2HA EQU 00DF5584h + +?instance@?$Extern@I$0NPFFII@@StructResolver@@2IA EQU 00DF5588h + +?instance@?$Extern@I$0NPFFIM@@StructResolver@@2IA EQU 00DF558Ch + +?instance@?$Extern@I$0NPFFJA@@StructResolver@@2IA EQU 00DF5590h + ?instance@?$Extern@H$0NPFFJE@@StructResolver@@2HA EQU 00DF5594h ?instance@?$Extern@I$0NPFGDI@@StructResolver@@2IA EQU 00DF5638h +?instance@?$Extern@I$0NPFGEE@@StructResolver@@2IA EQU 00DF5644h + +?instance@?$Extern@I$0NPFGEI@@StructResolver@@2IA EQU 00DF5648h + +?instance@?$Extern@I$0NPFGFA@@StructResolver@@2IA EQU 00DF5650h + +?instance@?$Extern@I$0NPFGFE@@StructResolver@@2IA EQU 00DF5654h + ?instance@?$Extern@USkMasterDataEntry@IO@OpenSHC@@$0NPFGFI@@StructResolver@@2USkMasterDataEntry@IO@OpenSHC@@A EQU 00DF5658h ?instance@?$Extern@H$0NPGCEI@@StructResolver@@2HA EQU 00DF6248h @@ -2458,30 +2654,130 @@ _TEXT SEGMENT ?instance@?$Extern@$$BY0EA@D$0OLAKLA@@StructResolver@@2PADA EQU 00EB0AB0h -?instance@?$Extern@I$0OLAODM@@StructResolver@@2IA EQU 00EB0E3Ch +?instance@?$Extern@I$0OLALCA@@StructResolver@@2IA EQU 00EB0B20h -?instance@?$Extern@$$BY1CB@EAA@D$0OLBCNI@@StructResolver@@2PAY0EAA@DA EQU 00EB12D8h +?instance@?$Extern@I$0OLALCE@@StructResolver@@2IA EQU 00EB0B24h -?instance@?$Extern@$$BY0CA@D$0OLJKMI@@StructResolver@@2PADA EQU 00EB9AC8h +?instance@?$Extern@H$0OLAOCI@@StructResolver@@2HA EQU 00EB0E28h -?instance@?$Extern@I$0OLJKPA@@StructResolver@@2IA EQU 00EB9AF0h +?instance@?$Extern@H$0OLAODA@@StructResolver@@2HA EQU 00EB0E30h -?instance@?$Extern@I$0OLJLFA@@StructResolver@@2IA EQU 00EB9B50h +?instance@?$Extern@I$0OLAODM@@StructResolver@@2IA EQU 00EB0E3Ch + +?instance@?$Extern@I$0OLAOEA@@StructResolver@@2IA EQU 00EB0E40h + +?instance@?$Extern@H$0OLAOEE@@StructResolver@@2HA EQU 00EB0E44h + +?instance@?$Extern@H$0OLBCDA@@StructResolver@@2HA EQU 00EB1230h + +?instance@?$Extern@I$0OLBCDE@@StructResolver@@2IA EQU 00EB1234h + +?instance@?$Extern@$$BY1CB@EAA@D$0OLBCNI@@StructResolver@@2PAY0EAA@DA EQU 00EB12D8h + +?instance@?$Extern@H$0OLJKMA@@StructResolver@@2HA EQU 00EB9AC0h + +?instance@?$Extern@I$0OLJKME@@StructResolver@@2IA EQU 00EB9AC4h + +?instance@?$Extern@$$BY0CA@D$0OLJKMI@@StructResolver@@2PADA EQU 00EB9AC8h + +?instance@?$Extern@H$0OLJKOI@@StructResolver@@2HA EQU 00EB9AE8h + +?instance@?$Extern@I$0OLJKPA@@StructResolver@@2IA EQU 00EB9AF0h + +?instance@?$Extern@I$0OLJKPE@@StructResolver@@2IA EQU 00EB9AF4h + +?instance@?$Extern@I$0OLJKPI@@StructResolver@@2IA EQU 00EB9AF8h + +?instance@?$Extern@M$0OLJLBM@@StructResolver@@2MA EQU 00EB9B1Ch + +?instance@?$Extern@H$0OLJLCA@@StructResolver@@2HA EQU 00EB9B20h + +?instance@?$Extern@M$0OLJLCE@@StructResolver@@2MA EQU 00EB9B24h + +?instance@?$Extern@I$0OLJLCI@@StructResolver@@2IA EQU 00EB9B28h + +?instance@?$Extern@I$0OLJLCM@@StructResolver@@2IA EQU 00EB9B2Ch + +?instance@?$Extern@I$0OLJLDA@@StructResolver@@2IA EQU 00EB9B30h + +?instance@?$Extern@I$0OLJLDE@@StructResolver@@2IA EQU 00EB9B34h + +?instance@?$Extern@I$0OLJLDI@@StructResolver@@2IA EQU 00EB9B38h + +?instance@?$Extern@I$0OLJLDM@@StructResolver@@2IA EQU 00EB9B3Ch + +?instance@?$Extern@I$0OLJLEA@@StructResolver@@2IA EQU 00EB9B40h + +?instance@?$Extern@H$0OLJLEI@@StructResolver@@2HA EQU 00EB9B48h + +?instance@?$Extern@I$0OLJLFA@@StructResolver@@2IA EQU 00EB9B50h ?instance@?$Extern@I$0OLJLFI@@StructResolver@@2IA EQU 00EB9B58h +?instance@?$Extern@I$0OLJLGA@@StructResolver@@2IA EQU 00EB9B60h + ?instance@?$Extern@H$0OLJLGE@@StructResolver@@2HA EQU 00EB9B64h ?instance@?$Extern@I$0OMACOM@@StructResolver@@2IA EQU 00EC02ECh +?instance@?$Extern@I$0OMAICM@@StructResolver@@2IA EQU 00EC082Ch + ?instance@?$Extern@H$0OMAIDA@@StructResolver@@2HA EQU 00EC0830h +?instance@?$Extern@H$0OMAIDM@@StructResolver@@2HA EQU 00EC083Ch + +?instance@?$Extern@I$0ONCHIA@@StructResolver@@2IA EQU 00ED2780h + +?instance@?$Extern@I$0ONCHJI@@StructResolver@@2IA EQU 00ED2798h + +?instance@?$Extern@I$0ONCHJM@@StructResolver@@2IA EQU 00ED279Ch + +?instance@?$Extern@I$0ONCHKA@@StructResolver@@2IA EQU 00ED27A0h + +?instance@?$Extern@H$0ONCHKE@@StructResolver@@2HA EQU 00ED27A4h + +?instance@?$Extern@I$0ONCHKI@@StructResolver@@2IA EQU 00ED27A8h + +?instance@?$Extern@I$0ONCHLE@@StructResolver@@2IA EQU 00ED27B4h + +?instance@?$Extern@I$0ONCHLI@@StructResolver@@2IA EQU 00ED27B8h + +?instance@?$Extern@I$0ONCHLM@@StructResolver@@2IA EQU 00ED27BCh + ?instance@?$Extern@I$0ONCHMA@@StructResolver@@2IA EQU 00ED27C0h ?instance@?$Extern@$$BY09H$0ONCHMI@@StructResolver@@2PAHA EQU 00ED27C8h +?instance@?$Extern@I$0ONCLNI@@StructResolver@@2IA EQU 00ED2BD8h + +?instance@?$Extern@I$0ONCLNM@@StructResolver@@2IA EQU 00ED2BDCh + ?instance@?$Extern@I$0ONDAGM@@StructResolver@@2IA EQU 00ED306Ch +?instance@?$Extern@I$0ONDBBA@@StructResolver@@2IA EQU 00ED3110h + +?instance@?$Extern@H$0ONDBBE@@StructResolver@@2HA EQU 00ED3114h + +?instance@?$Extern@I$0ONDBBI@@StructResolver@@2IA EQU 00ED3118h + +?instance@?$Extern@I$0ONDBBM@@StructResolver@@2IA EQU 00ED311Ch + +?instance@?$Extern@I$0ONDBCA@@StructResolver@@2IA EQU 00ED3120h + +?instance@?$Extern@I$0ONDBCE@@StructResolver@@2IA EQU 00ED3124h + +?instance@?$Extern@E$0ONDBCI@@StructResolver@@2EA EQU 00ED3128h + +?instance@?$Extern@I$0ONDBDI@@StructResolver@@2IA EQU 00ED3138h + +?instance@?$Extern@H$0ONDBEE@@StructResolver@@2HA EQU 00ED3144h + +?instance@?$Extern@I$0ONDBEI@@StructResolver@@2IA EQU 00ED3148h + +?instance@?$Extern@I$0ONDBEM@@StructResolver@@2IA EQU 00ED314Ch + +?instance@?$Extern@I$0ONDBFE@@StructResolver@@2IA EQU 00ED3154h + ?instance@?$Extern@I$0ONDBFI@@StructResolver@@2IA EQU 00ED3158h ?instance@?$Extern@I$0ONDBGA@@StructResolver@@2IA EQU 00ED3160h @@ -2490,16 +2786,24 @@ _TEXT SEGMENT ?instance@?$Extern@I$0ONDBGI@@StructResolver@@2IA EQU 00ED3168h +?instance@?$Extern@I$0ONDBGM@@StructResolver@@2IA EQU 00ED316Ch + +?instance@?$Extern@I$0ONDBHA@@StructResolver@@2IA EQU 00ED3170h + ?instance@?$Extern@I$0ONDBHE@@StructResolver@@2IA EQU 00ED3174h ?instance@?$Extern@I$0ONDBHI@@StructResolver@@2IA EQU 00ED3178h +?instance@?$Extern@I$0ONDBHM@@StructResolver@@2IA EQU 00ED317Ch + ?instance@?$Extern@I$0ONDBIA@@StructResolver@@2IA EQU 00ED3180h ?instance@?$Extern@I$0ONDBJI@@StructResolver@@2IA EQU 00ED3198h ?instance@?$Extern@I$0ONDBJM@@StructResolver@@2IA EQU 00ED319Ch +?instance@?$Extern@I$0ONDBKA@@StructResolver@@2IA EQU 00ED31A0h + ?instance@?$Extern@H$0ONDBKE@@StructResolver@@2HA EQU 00ED31A4h ?instance@?$Extern@I$0ONDBKI@@StructResolver@@2IA EQU 00ED31A8h @@ -2522,6 +2826,8 @@ _TEXT SEGMENT ?instance@?$Extern@H$0ONDBMM@@StructResolver@@2HA EQU 00ED31CCh +?instance@?$Extern@I$0ONDBNA@@StructResolver@@2IA EQU 00ED31D0h + ?instance@?$Extern@H$0ONDBNE@@StructResolver@@2HA EQU 00ED31D4h ?instance@?$Extern@PAVMenuView@UI@OpenSHC@@$0ONDBNI@@StructResolver@@2PAVMenuView@UI@OpenSHC@@A EQU 00ED31D8h @@ -2532,6 +2838,8 @@ _TEXT SEGMENT ?instance@?$Extern@I$0OOAPLA@@StructResolver@@2IA EQU 00EE0FB0h +?instance@?$Extern@I$0OOAPLE@@StructResolver@@2IA EQU 00EE0FB4h + ?instance@?$Extern@I$0OOAPLI@@StructResolver@@2IA EQU 00EE0FB8h ?instance@?$Extern@I$0OOAPLM@@StructResolver@@2IA EQU 00EE0FBCh @@ -2540,12 +2848,54 @@ _TEXT SEGMENT ?instance@?$Extern@I$0OOAPMI@@StructResolver@@2IA EQU 00EE0FC8h +?instance@?$Extern@K$0OOAPMM@@StructResolver@@2KA EQU 00EE0FCCh + +?instance@?$Extern@K$0OOAPNE@@StructResolver@@2KA EQU 00EE0FD4h + +?instance@?$Extern@H$0OOAPNI@@StructResolver@@2HA EQU 00EE0FD8h + +?instance@?$Extern@K$0OOAPNM@@StructResolver@@2KA EQU 00EE0FDCh + +?instance@?$Extern@I$0OOBACI@@StructResolver@@2IA EQU 00EE1028h + +?instance@?$Extern@I$0OOBACM@@StructResolver@@2IA EQU 00EE102Ch + +?instance@?$Extern@I$0OOBADA@@StructResolver@@2IA EQU 00EE1030h + +?instance@?$Extern@I$0OOBADE@@StructResolver@@2IA EQU 00EE1034h + +?instance@?$Extern@H$0OOBADI@@StructResolver@@2HA EQU 00EE1038h + ?instance@?$Extern@K$0OOBADM@@StructResolver@@2KA EQU 00EE103Ch +?instance@?$Extern@K$0OOBAEA@@StructResolver@@2KA EQU 00EE1040h + +?instance@?$Extern@K$0OOBAEE@@StructResolver@@2KA EQU 00EE1044h + +?instance@?$Extern@K$0OOBAEI@@StructResolver@@2KA EQU 00EE1048h + +?instance@?$Extern@K$0OOBAEM@@StructResolver@@2KA EQU 00EE104Ch + +?instance@?$Extern@K$0OOBAFA@@StructResolver@@2KA EQU 00EE1050h + +?instance@?$Extern@K$0OOBAFE@@StructResolver@@2KA EQU 00EE1054h + +?instance@?$Extern@K$0OOBAFI@@StructResolver@@2KA EQU 00EE1058h + +?instance@?$Extern@K$0OOBAFM@@StructResolver@@2KA EQU 00EE105Ch + +?instance@?$Extern@K$0OOBAGA@@StructResolver@@2KA EQU 00EE1060h + +?instance@?$Extern@K$0OOBAGE@@StructResolver@@2KA EQU 00EE1064h + ?instance@?$Extern@I$0OOBAGI@@StructResolver@@2IA EQU 00EE1068h ?instance@?$Extern@VBottomLeftTextDisplayState@UI@OpenSHC@@$0OOBAGM@@StructResolver@@2VBottomLeftTextDisplayState@UI@OpenSHC@@A EQU 00EE106Ch +?instance@?$Extern@I$0OOBAJA@@StructResolver@@2IA EQU 00EE1090h + +?instance@?$Extern@I$0OOBAJE@@StructResolver@@2IA EQU 00EE1094h + ?instance@?$Extern@VMissingResourceState@Audio@OpenSHC@@$0OOBAJI@@StructResolver@@2VMissingResourceState@Audio@OpenSHC@@A EQU 00EE1098h ?instance@?$Extern@VWideCharMultiByteState@Util@OpenSHC@@$0OOBAJJ@@StructResolver@@2VWideCharMultiByteState@Util@OpenSHC@@A EQU 00EE1099h @@ -2558,16 +2908,38 @@ _TEXT SEGMENT ?instance@?$Extern@VWallAndPitchState@Map@OpenSHC@@$0OOBJNA@@StructResolver@@2VWallAndPitchState@Map@OpenSHC@@A EQU 00EE19D0h +?instance@?$Extern@H$0OOCDFA@@StructResolver@@2HA EQU 00EE2350h + ?instance@?$Extern@H$0OOCDFE@@StructResolver@@2HA EQU 00EE2354h +?instance@?$Extern@H$0OOCDFI@@StructResolver@@2HA EQU 00EE2358h + +?instance@?$Extern@H$0OOCDFM@@StructResolver@@2HA EQU 00EE235Ch + +?instance@?$Extern@H$0OOCDGA@@StructResolver@@2HA EQU 00EE2360h + ?instance@?$Extern@H$0OOCDGE@@StructResolver@@2HA EQU 00EE2364h ?instance@?$Extern@H$0OOCDGI@@StructResolver@@2HA EQU 00EE2368h +?instance@?$Extern@H$0OOCDGM@@StructResolver@@2HA EQU 00EE236Ch + +?instance@?$Extern@H$0OOCDHA@@StructResolver@@2HA EQU 00EE2370h + ?instance@?$Extern@H$0OOCDHE@@StructResolver@@2HA EQU 00EE2374h +?instance@?$Extern@H$0OOCDHI@@StructResolver@@2HA EQU 00EE2378h + +?instance@?$Extern@H$0OOCDHM@@StructResolver@@2HA EQU 00EE237Ch + ?instance@?$Extern@H$0OOCDIA@@StructResolver@@2HA EQU 00EE2380h +?instance@?$Extern@H$0OOCDIE@@StructResolver@@2HA EQU 00EE2384h + +?instance@?$Extern@H$0OOCDII@@StructResolver@@2HA EQU 00EE2388h + +?instance@?$Extern@H$0OOCDIM@@StructResolver@@2HA EQU 00EE238Ch + ?instance@?$Extern@H$0OOCDJA@@StructResolver@@2HA EQU 00EE2390h ?instance@?$Extern@I$0OOCDJE@@StructResolver@@2IA EQU 00EE2394h @@ -2732,108 +3104,42 @@ _TEXT SEGMENT ?instance@?$Extern@H$0LJFJFA@@StructResolver@@2HA EQU 00B95950h -?instance@?$Extern@I$0LJFJFE@@StructResolver@@2IA EQU 00B95954h - -?instance@?$Extern@I$0LJFJGA@@StructResolver@@2IA EQU 00B95960h +?instance@?$Extern@I$0LJFJFI@@StructResolver@@2IA EQU 00B95958h ?instance@?$Extern@H$0LJFKLI@@StructResolver@@2HA EQU 00B95AB8h -?instance@?$Extern@H$0LJFKLM@@StructResolver@@2HA EQU 00B95ABCh - -?instance@?$Extern@K$0LJFLBM@@StructResolver@@2KA EQU 00B95B1Ch - ?instance@?$Extern@I$0LJFLCM@@StructResolver@@2IA EQU 00B95B2Ch ?instance@?$Extern@I$0LJFLDM@@StructResolver@@2IA EQU 00B95B3Ch -?instance@?$Extern@H$0LJFLGE@@StructResolver@@2HA EQU 00B95B64h - -?instance@?$Extern@I$0LJFLGI@@StructResolver@@2IA EQU 00B95B68h - ?instance@?$Extern@I$0LJFLGM@@StructResolver@@2IA EQU 00B95B6Ch -?instance@?$Extern@I$0LJFLHA@@StructResolver@@2IA EQU 00B95B70h - -?instance@?$Extern@I$0LJFLHE@@StructResolver@@2IA EQU 00B95B74h - ?instance@?$Extern@I$0LJFPGE@@StructResolver@@2IA EQU 00B95F64h -?instance@?$Extern@H$0LJFPGI@@StructResolver@@2HA EQU 00B95F68h - ?instance@?$Extern@H$0LJFPGM@@StructResolver@@2HA EQU 00B95F6Ch ?instance@?$Extern@H$0LJGALA@@StructResolver@@2HA EQU 00B960B0h ?instance@?$Extern@I$0LJGALM@@StructResolver@@2IA EQU 00B960BCh -?instance@?$Extern@I$0LJGANM@@StructResolver@@2IA EQU 00B960DCh - -?instance@?$Extern@H$0LJGAPA@@StructResolver@@2HA EQU 00B960F0h - -?instance@?$Extern@I$0LJGAPE@@StructResolver@@2IA EQU 00B960F4h +?instance@?$Extern@I$0LJGAOM@@StructResolver@@2IA EQU 00B960ECh ?instance@?$Extern@I$0LJGAPI@@StructResolver@@2IA EQU 00B960F8h -?instance@?$Extern@I$0LJGBAA@@StructResolver@@2IA EQU 00B96100h - ?instance@?$Extern@I$0LJGBAI@@StructResolver@@2IA EQU 00B96108h ?instance@?$Extern@I$0LJGBAM@@StructResolver@@2IA EQU 00B9610Ch -?instance@?$Extern@I$0LJGBBA@@StructResolver@@2IA EQU 00B96110h - -?instance@?$Extern@H$0LJGBCA@@StructResolver@@2HA EQU 00B96120h +?instance@?$Extern@I$0LJGBCE@@StructResolver@@2IA EQU 00B96124h ?instance@?$Extern@VMenuView@UI@OpenSHC@@$0LJHELM@@StructResolver@@2VMenuView@UI@OpenSHC@@A EQU 00B974BCh -?instance@?$Extern@I$0LJIEAM@@StructResolver@@2IA EQU 00B9840Ch - -?instance@?$Extern@I$0LJIEBM@@StructResolver@@2IA EQU 00B9841Ch - -?instance@?$Extern@I$0LJIECA@@StructResolver@@2IA EQU 00B98420h - -?instance@?$Extern@I$0LJIECE@@StructResolver@@2IA EQU 00B98424h - -?instance@?$Extern@I$0LJIECI@@StructResolver@@2IA EQU 00B98428h - -?instance@?$Extern@I$0LJIECM@@StructResolver@@2IA EQU 00B9842Ch - -?instance@?$Extern@I$0LJIEDA@@StructResolver@@2IA EQU 00B98430h - -?instance@?$Extern@I$0LJIEDM@@StructResolver@@2IA EQU 00B9843Ch - -?instance@?$Extern@I$0LJIEEI@@StructResolver@@2IA EQU 00B98448h - ?instance@?$Extern@H$0LJIEEM@@StructResolver@@2HA EQU 00B9844Ch ?instance@?$Extern@I$0LJIEFA@@StructResolver@@2IA EQU 00B98450h ?instance@?$Extern@I$0LJIEFE@@StructResolver@@2IA EQU 00B98454h -?instance@?$Extern@I$0LJIEFM@@StructResolver@@2IA EQU 00B9845Ch - -?instance@?$Extern@H$0LJIEIE@@StructResolver@@2HA EQU 00B98484h - -?instance@?$Extern@H$0LJIGGE@@StructResolver@@2HA EQU 00B98664h - -?instance@?$Extern@H$0LJIGJI@@StructResolver@@2HA EQU 00B98698h - -?instance@?$Extern@I$0LJIGJM@@StructResolver@@2IA EQU 00B9869Ch - -?instance@?$Extern@I$0LJIGOA@@StructResolver@@2IA EQU 00B986E0h - -?instance@?$Extern@M$0LJIGOI@@StructResolver@@2MA EQU 00B986E8h - -?instance@?$Extern@M$0LJIGOM@@StructResolver@@2MA EQU 00B986ECh - -?instance@?$Extern@I$0LJIGPA@@StructResolver@@2IA EQU 00B986F0h - -?instance@?$Extern@M$0LJIGPI@@StructResolver@@2MA EQU 00B986F8h - -?instance@?$Extern@M$0LJIHAE@@StructResolver@@2MA EQU 00B98704h - -?instance@?$Extern@K$0LJIHAI@@StructResolver@@2KA EQU 00B98708h - ?instance@?$Extern@H$0LJIHAM@@StructResolver@@2HA EQU 00B9870Ch ?instance@?$Extern@$$BY0CA@PAX$0MJKEJA@@StructResolver@@2PAPAXA EQU 00C9A490h @@ -2842,162 +3148,64 @@ _TEXT SEGMENT ?instance@?$Extern@$$BY0CA@PAX$0NHNCFA@@StructResolver@@2PAPAXA EQU 00D7D250h -?instance@?$Extern@I$0NPCJGE@@StructResolver@@2IA EQU 00DF2964h - -?instance@?$Extern@H$0NPCJGI@@StructResolver@@2HA EQU 00DF2968h - -?instance@?$Extern@I$0NPCJGM@@StructResolver@@2IA EQU 00DF296Ch - -?instance@?$Extern@H$0NPCJHA@@StructResolver@@2HA EQU 00DF2970h - ?instance@?$Extern@$$BY0DOI@_W$0NPCLHI@@StructResolver@@2PA_WA EQU 00DF2B78h ?instance@?$Extern@I$0NPDDEI@@StructResolver@@2IA EQU 00DF3348h ?instance@?$Extern@I$0NPDDEM@@StructResolver@@2IA EQU 00DF334Ch -?instance@?$Extern@I$0NPDDFA@@StructResolver@@2IA EQU 00DF3350h - -?instance@?$Extern@H$0NPDDFM@@StructResolver@@2HA EQU 00DF335Ch - -?instance@?$Extern@K$0NPDDGE@@StructResolver@@2KA EQU 00DF3364h - -?instance@?$Extern@H$0NPDDGI@@StructResolver@@2HA EQU 00DF3368h - -?instance@?$Extern@I$0NPDDHE@@StructResolver@@2IA EQU 00DF3374h - -?instance@?$Extern@K$0NPDDHI@@StructResolver@@2KA EQU 00DF3378h +?instance@?$Extern@I$0NPDDGA@@StructResolver@@2IA EQU 00DF3360h ?instance@?$Extern@I$0NPDDKM@@StructResolver@@2IA EQU 00DF33ACh -?instance@?$Extern@I$0NPECDM@@StructResolver@@2IA EQU 00DF423Ch +?instance@?$Extern@I$0NPECEA@@StructResolver@@2IA EQU 00DF4240h + +?instance@?$Extern@I$0NPECEE@@StructResolver@@2IA EQU 00DF4244h ?instance@?$Extern@I$0NPECIE@@StructResolver@@2IA EQU 00DF4284h +?instance@?$Extern@I$0NPECJI@@StructResolver@@2IA EQU 00DF4298h + ?instance@?$Extern@I$0NPECLA@@StructResolver@@2IA EQU 00DF42B0h ?instance@?$Extern@I$0NPFBPA@@StructResolver@@2IA EQU 00DF51F0h -?instance@?$Extern@I$0NPFBPE@@StructResolver@@2IA EQU 00DF51F4h - ?instance@?$Extern@I$0NPFBPI@@StructResolver@@2IA EQU 00DF51F8h -?instance@?$Extern@I$0NPFBPM@@StructResolver@@2IA EQU 00DF51FCh - ?instance@?$Extern@I$0NPFCAA@@StructResolver@@2IA EQU 00DF5200h -?instance@?$Extern@I$0NPFFDA@@StructResolver@@2IA EQU 00DF5530h - -?instance@?$Extern@I$0NPFFDI@@StructResolver@@2IA EQU 00DF5538h - -?instance@?$Extern@I$0NPFFEA@@StructResolver@@2IA EQU 00DF5540h - -?instance@?$Extern@I$0NPFFEE@@StructResolver@@2IA EQU 00DF5544h - ?instance@?$Extern@I$0NPFFFE@@StructResolver@@2IA EQU 00DF5554h -?instance@?$Extern@I$0NPFFFI@@StructResolver@@2IA EQU 00DF5558h - -?instance@?$Extern@I$0NPFFFM@@StructResolver@@2IA EQU 00DF555Ch - -?instance@?$Extern@I$0NPFFGA@@StructResolver@@2IA EQU 00DF5560h - -?instance@?$Extern@I$0NPFFGE@@StructResolver@@2IA EQU 00DF5564h - -?instance@?$Extern@K$0NPFFGI@@StructResolver@@2KA EQU 00DF5568h - -?instance@?$Extern@I$0NPFFGM@@StructResolver@@2IA EQU 00DF556Ch - -?instance@?$Extern@H$0NPFFHE@@StructResolver@@2HA EQU 00DF5574h - -?instance@?$Extern@H$0NPFFHM@@StructResolver@@2HA EQU 00DF557Ch - -?instance@?$Extern@H$0NPFFIA@@StructResolver@@2HA EQU 00DF5580h - -?instance@?$Extern@H$0NPFFIE@@StructResolver@@2HA EQU 00DF5584h - -?instance@?$Extern@I$0NPFFII@@StructResolver@@2IA EQU 00DF5588h - -?instance@?$Extern@I$0NPFFIM@@StructResolver@@2IA EQU 00DF558Ch - -?instance@?$Extern@I$0NPFFJA@@StructResolver@@2IA EQU 00DF5590h - ?instance@?$Extern@$$BY0CA@H$0NPFFJI@@StructResolver@@2PAHA EQU 00DF5598h -?instance@?$Extern@I$0NPFGEE@@StructResolver@@2IA EQU 00DF5644h - ?instance@?$Extern@$$BY08H$0OLAKPA@@StructResolver@@2PAHA EQU 00EB0AF0h ?instance@?$Extern@K$0OLALBI@@StructResolver@@2KA EQU 00EB0B18h -?instance@?$Extern@I$0OLALCA@@StructResolver@@2IA EQU 00EB0B20h - -?instance@?$Extern@I$0OLALCE@@StructResolver@@2IA EQU 00EB0B24h - ?instance@?$Extern@$$BY1DA@3H$0OLALCI@@StructResolver@@2PAY03HA EQU 00EB0B28h -?instance@?$Extern@H$0OLAOCI@@StructResolver@@2HA EQU 00EB0E28h - ?instance@?$Extern@M$0OLAOCM@@StructResolver@@2MA EQU 00EB0E2Ch -?instance@?$Extern@H$0OLAODA@@StructResolver@@2HA EQU 00EB0E30h - -?instance@?$Extern@I$0OLAOEA@@StructResolver@@2IA EQU 00EB0E40h - -?instance@?$Extern@H$0OLAOEE@@StructResolver@@2HA EQU 00EB0E44h - ?instance@?$Extern@$$BY0PK@H$0OLAOEI@@StructResolver@@2PAHA EQU 00EB0E48h -?instance@?$Extern@H$0OLBCDA@@StructResolver@@2HA EQU 00EB1230h - -?instance@?$Extern@I$0OLBCDE@@StructResolver@@2IA EQU 00EB1234h - ?instance@?$Extern@$$BY0CI@H$0OLBCDI@@StructResolver@@2PAHA EQU 00EB1238h ?instance@?$Extern@$$BY0PK@H$0OLJGNI@@StructResolver@@2PAHA EQU 00EB96D8h -?instance@?$Extern@H$0OLJKMA@@StructResolver@@2HA EQU 00EB9AC0h - -?instance@?$Extern@I$0OLJKME@@StructResolver@@2IA EQU 00EB9AC4h - -?instance@?$Extern@H$0OLJKOI@@StructResolver@@2HA EQU 00EB9AE8h - -?instance@?$Extern@I$0OLJKPE@@StructResolver@@2IA EQU 00EB9AF4h - -?instance@?$Extern@I$0OLJKPI@@StructResolver@@2IA EQU 00EB9AF8h - ?instance@?$Extern@$$BY03H$0OLJKPM@@StructResolver@@2PAHA EQU 00EB9AFCh ?instance@?$Extern@I$0OLJLAM@@StructResolver@@2IA EQU 00EB9B0Ch -?instance@?$Extern@M$0OLJLBM@@StructResolver@@2MA EQU 00EB9B1Ch +?instance@?$Extern@I$0OLJLBA@@StructResolver@@2IA EQU 00EB9B10h -?instance@?$Extern@H$0OLJLCA@@StructResolver@@2HA EQU 00EB9B20h +?instance@?$Extern@I$0OLJLBE@@StructResolver@@2IA EQU 00EB9B14h -?instance@?$Extern@M$0OLJLCE@@StructResolver@@2MA EQU 00EB9B24h - -?instance@?$Extern@I$0OLJLCI@@StructResolver@@2IA EQU 00EB9B28h - -?instance@?$Extern@I$0OLJLCM@@StructResolver@@2IA EQU 00EB9B2Ch - -?instance@?$Extern@I$0OLJLDA@@StructResolver@@2IA EQU 00EB9B30h - -?instance@?$Extern@I$0OLJLDE@@StructResolver@@2IA EQU 00EB9B34h - -?instance@?$Extern@I$0OLJLDI@@StructResolver@@2IA EQU 00EB9B38h - -?instance@?$Extern@I$0OLJLDM@@StructResolver@@2IA EQU 00EB9B3Ch - -?instance@?$Extern@I$0OLJLEA@@StructResolver@@2IA EQU 00EB9B40h +?instance@?$Extern@I$0OLJLBI@@StructResolver@@2IA EQU 00EB9B18h ?instance@?$Extern@H$0OLJLEE@@StructResolver@@2HA EQU 00EB9B44h -?instance@?$Extern@H$0OLJLEI@@StructResolver@@2HA EQU 00EB9B48h - ?instance@?$Extern@H$0OLJLEM@@StructResolver@@2HA EQU 00EB9B4Ch -?instance@?$Extern@I$0OLJLGA@@StructResolver@@2IA EQU 00EB9B60h - ?instance@?$Extern@$$BY0BCA@UCreditsRelatedStructure2@Rendering@OpenSHC@@$0OLJLGI@@StructResolver@@2PAUCreditsRelatedStructure2@Rendering@OpenSHC@@A EQU 00EB9B68h ?instance@?$Extern@H$0OMACOI@@StructResolver@@2HA EQU 00EC02E8h @@ -3006,14 +3214,10 @@ _TEXT SEGMENT ?instance@?$Extern@$$BY0BI@UCreditsRelatedStructure@Rendering@OpenSHC@@$0OMADEI@@StructResolver@@2PAUCreditsRelatedStructure@Rendering@OpenSHC@@A EQU 00EC0348h -?instance@?$Extern@I$0OMAICM@@StructResolver@@2IA EQU 00EC082Ch - ?instance@?$Extern@M$0OMAIDE@@StructResolver@@2MA EQU 00EC0834h ?instance@?$Extern@H$0OMAIDI@@StructResolver@@2HA EQU 00EC0838h -?instance@?$Extern@H$0OMAIDM@@StructResolver@@2HA EQU 00EC083Ch - ?instance@?$Extern@UGFXRelatedBuffer1@Graphics@IO@OpenSHC@@$0OMAIEA@@StructResolver@@2UGFXRelatedBuffer1@Graphics@IO@OpenSHC@@A EQU 00EC0840h ?instance@?$Extern@$$BY0CI@H$0ONCGDA@@StructResolver@@2PAHA EQU 00ED2630h @@ -3024,30 +3228,18 @@ _TEXT SEGMENT ?instance@?$Extern@H$0ONCHHM@@StructResolver@@2HA EQU 00ED277Ch -?instance@?$Extern@I$0ONCHIA@@StructResolver@@2IA EQU 00ED2780h - ?instance@?$Extern@I$0ONCHII@@StructResolver@@2IA EQU 00ED2788h ?instance@?$Extern@I$0ONCHIM@@StructResolver@@2IA EQU 00ED278Ch ?instance@?$Extern@I$0ONCHJE@@StructResolver@@2IA EQU 00ED2794h -?instance@?$Extern@I$0ONCHJI@@StructResolver@@2IA EQU 00ED2798h - -?instance@?$Extern@I$0ONCHKA@@StructResolver@@2IA EQU 00ED27A0h - -?instance@?$Extern@H$0ONCHKE@@StructResolver@@2HA EQU 00ED27A4h - -?instance@?$Extern@I$0ONCHKI@@StructResolver@@2IA EQU 00ED27A8h - ?instance@?$Extern@H$0ONCHLA@@StructResolver@@2HA EQU 00ED27B0h -?instance@?$Extern@I$0ONCHLM@@StructResolver@@2IA EQU 00ED27BCh +?instance@?$Extern@I$0ONCHME@@StructResolver@@2IA EQU 00ED27C4h ?instance@?$Extern@$$BY0PK@H$0ONCHPA@@StructResolver@@2PAHA EQU 00ED27F0h -?instance@?$Extern@I$0ONCLNI@@StructResolver@@2IA EQU 00ED2BD8h - ?instance@?$Extern@$$BY0PK@H$0ONCLOA@@StructResolver@@2PAHA EQU 00ED2BE0h ?instance@?$Extern@$$BY0CI@H$0ONCPMI@@StructResolver@@2PAHA EQU 00ED2FC8h @@ -3056,52 +3248,12 @@ _TEXT SEGMENT ?instance@?$Extern@$$BY0CI@H$0ONDAHA@@StructResolver@@2PAHA EQU 00ED3070h -?instance@?$Extern@H$0ONDBBE@@StructResolver@@2HA EQU 00ED3114h - -?instance@?$Extern@I$0ONDBBI@@StructResolver@@2IA EQU 00ED3118h - -?instance@?$Extern@I$0ONDBBM@@StructResolver@@2IA EQU 00ED311Ch - -?instance@?$Extern@I$0ONDBCA@@StructResolver@@2IA EQU 00ED3120h - -?instance@?$Extern@I$0ONDBCE@@StructResolver@@2IA EQU 00ED3124h - ?instance@?$Extern@M$0ONDBCM@@StructResolver@@2MA EQU 00ED312Ch -?instance@?$Extern@I$0ONDBDI@@StructResolver@@2IA EQU 00ED3138h - ?instance@?$Extern@H$0ONDBDM@@StructResolver@@2HA EQU 00ED313Ch -?instance@?$Extern@H$0ONDBEE@@StructResolver@@2HA EQU 00ED3144h - -?instance@?$Extern@I$0ONDBEI@@StructResolver@@2IA EQU 00ED3148h - -?instance@?$Extern@I$0ONDBEM@@StructResolver@@2IA EQU 00ED314Ch - -?instance@?$Extern@I$0ONDBFE@@StructResolver@@2IA EQU 00ED3154h - ?instance@?$Extern@H$0ONDBFM@@StructResolver@@2HA EQU 00ED315Ch -?instance@?$Extern@I$0ONDBGM@@StructResolver@@2IA EQU 00ED316Ch - -?instance@?$Extern@I$0ONDBHA@@StructResolver@@2IA EQU 00ED3170h - -?instance@?$Extern@I$0ONDBHM@@StructResolver@@2IA EQU 00ED317Ch - -?instance@?$Extern@I$0ONDBKA@@StructResolver@@2IA EQU 00ED31A0h - -?instance@?$Extern@I$0ONDBNA@@StructResolver@@2IA EQU 00ED31D0h - -?instance@?$Extern@I$0OOAPLE@@StructResolver@@2IA EQU 00EE0FB4h - -?instance@?$Extern@K$0OOAPMM@@StructResolver@@2KA EQU 00EE0FCCh - -?instance@?$Extern@K$0OOAPNE@@StructResolver@@2KA EQU 00EE0FD4h - -?instance@?$Extern@H$0OOAPNI@@StructResolver@@2HA EQU 00EE0FD8h - -?instance@?$Extern@K$0OOAPNM@@StructResolver@@2KA EQU 00EE0FDCh - ?instance@?$Extern@H$0OOAPOA@@StructResolver@@2HA EQU 00EE0FE0h ?instance@?$Extern@I$0OOAPOI@@StructResolver@@2IA EQU 00EE0FE8h @@ -3132,62 +3284,6 @@ _TEXT SEGMENT ?instance@?$Extern@I$0OOBABM@@StructResolver@@2IA EQU 00EE101Ch -?instance@?$Extern@I$0OOBACI@@StructResolver@@2IA EQU 00EE1028h - -?instance@?$Extern@I$0OOBACM@@StructResolver@@2IA EQU 00EE102Ch - -?instance@?$Extern@I$0OOBADA@@StructResolver@@2IA EQU 00EE1030h - -?instance@?$Extern@I$0OOBADE@@StructResolver@@2IA EQU 00EE1034h - -?instance@?$Extern@H$0OOBADI@@StructResolver@@2HA EQU 00EE1038h - -?instance@?$Extern@K$0OOBAEA@@StructResolver@@2KA EQU 00EE1040h - -?instance@?$Extern@K$0OOBAEE@@StructResolver@@2KA EQU 00EE1044h - -?instance@?$Extern@K$0OOBAEI@@StructResolver@@2KA EQU 00EE1048h - -?instance@?$Extern@K$0OOBAEM@@StructResolver@@2KA EQU 00EE104Ch - -?instance@?$Extern@K$0OOBAFA@@StructResolver@@2KA EQU 00EE1050h - -?instance@?$Extern@K$0OOBAFE@@StructResolver@@2KA EQU 00EE1054h - -?instance@?$Extern@K$0OOBAFI@@StructResolver@@2KA EQU 00EE1058h - -?instance@?$Extern@K$0OOBAFM@@StructResolver@@2KA EQU 00EE105Ch - -?instance@?$Extern@K$0OOBAGA@@StructResolver@@2KA EQU 00EE1060h - -?instance@?$Extern@K$0OOBAGE@@StructResolver@@2KA EQU 00EE1064h - -?instance@?$Extern@I$0OOBAJA@@StructResolver@@2IA EQU 00EE1090h - -?instance@?$Extern@I$0OOBAJE@@StructResolver@@2IA EQU 00EE1094h - -?instance@?$Extern@H$0OOCDFA@@StructResolver@@2HA EQU 00EE2350h - -?instance@?$Extern@H$0OOCDFI@@StructResolver@@2HA EQU 00EE2358h - -?instance@?$Extern@H$0OOCDFM@@StructResolver@@2HA EQU 00EE235Ch - -?instance@?$Extern@H$0OOCDGA@@StructResolver@@2HA EQU 00EE2360h - -?instance@?$Extern@H$0OOCDGM@@StructResolver@@2HA EQU 00EE236Ch - -?instance@?$Extern@H$0OOCDHA@@StructResolver@@2HA EQU 00EE2370h - -?instance@?$Extern@H$0OOCDHI@@StructResolver@@2HA EQU 00EE2378h - -?instance@?$Extern@H$0OOCDHM@@StructResolver@@2HA EQU 00EE237Ch - -?instance@?$Extern@H$0OOCDIE@@StructResolver@@2HA EQU 00EE2384h - -?instance@?$Extern@H$0OOCDII@@StructResolver@@2HA EQU 00EE2388h - -?instance@?$Extern@H$0OOCDIM@@StructResolver@@2HA EQU 00EE238Ch - ?instance@?$Extern@K$0CECHEGM@@StructResolver@@2KA EQU 0242746Ch ?instance@?$Extern@H$0CECHEHA@@StructResolver@@2HA EQU 02427470h