Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/OpenSHC/Globals/DAT_CurrentUnitSlotID.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
#pragma once

// GLOBAL: STRONGHOLDCRUSADER 0x00EE0FC8
// StructResolver::Instance<unsigned int,15601608>::instance
// StructResolver::Instance<int,15601608>::instance

namespace OpenSHC {

MACRO_STRUCT_RESOLVER(uint, false, Address::SHC_3BB0A8C1_0x00EE0FC8) DAT_CurrentUnitSlotID;
MACRO_STRUCT_RESOLVER(int, false, Address::SHC_3BB0A8C1_0x00EE0FC8) DAT_CurrentUnitSlotID;
} // namespace OpenSHC

MACRO_STRUCT_INSTANCE(Address::SHC_3BB0A8C1_0x00EE0FC8);
14 changes: 5 additions & 9 deletions src/OpenSHC/Map/Version/UpgradeMapUnitsTo_112.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,14 @@
namespace OpenSHC {
namespace Map {

using OpenSHC::Map::Units::Unit;
using OpenSHC::Map::Units::UnitLogicState;

// FUNCTION: STRONGHOLDCRUSADER 0x0053B340
void Version::UpgradeMapUnitsTo_112()
{
DAT_CurrentUnitSlotID::instance = 1;
for (int unitID = 1; unitID != 2500; ++unitID) {
DAT_CurrentUnitSlotID::instance += 1;
if (DAT_UnitsState::instance.units[unitID].logicalState == Units::ULS_NORMAL) {
DAT_UnitsState::instance.units[unitID].buildingID
= DAT_UnitsState::instance.units[unitID].workplaceBuildingID_1;
for (DAT_CurrentUnitSlotID::instance = 1; DAT_CurrentUnitSlotID::instance < 2500;
++DAT_CurrentUnitSlotID::instance) {
if (DAT_UnitsState::instance.units[DAT_CurrentUnitSlotID::instance].logicalState == Units::ULS_NORMAL) {
DAT_UnitsState::instance.units[DAT_CurrentUnitSlotID::instance].buildingID
= DAT_UnitsState::instance.units[DAT_CurrentUnitSlotID::instance].workplaceBuildingID_1;
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/symbols/data.asm
Original file line number Diff line number Diff line change
Expand Up @@ -945,7 +945,7 @@ PUBLIC ?instance@?$Extern@I$0OOAPLM@@StructResolver@@2IA

PUBLIC ?instance@?$Extern@I$0OOAPME@@StructResolver@@2IA

PUBLIC ?instance@?$Extern@I$0OOAPMI@@StructResolver@@2IA
PUBLIC ?instance@?$Extern@H$0OOAPMI@@StructResolver@@2HA

PUBLIC ?instance@?$Extern@K$0OOBADM@@StructResolver@@2KA

Expand Down Expand Up @@ -2606,7 +2606,7 @@ _TEXT SEGMENT

?instance@?$Extern@I$0OOAPME@@StructResolver@@2IA EQU 00EE0FC4h

?instance@?$Extern@I$0OOAPMI@@StructResolver@@2IA EQU 00EE0FC8h
?instance@?$Extern@H$0OOAPMI@@StructResolver@@2HA EQU 00EE0FC8h

?instance@?$Extern@K$0OOBADM@@StructResolver@@2KA EQU 00EE103Ch

Expand Down
2 changes: 1 addition & 1 deletion status/addresses-SHC-3BB0A8C1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59627,7 +59627,7 @@ SHC_3BB0A8C1_0x0053B260 | 0.0% | Pending

SHC_3BB0A8C1_0x0053B310 | 100.0% | Reimplemented

SHC_3BB0A8C1_0x0053B340 | 90.91% | jne vs jl due to loop unroll prevention via !=
SHC_3BB0A8C1_0x0053B340 | 100.0% | Reimplemented

SHC_3BB0A8C1_0x0053B380 | 0.0% | Pending

Expand Down