Skip to content

Commit ef40d11

Browse files
committed
Add Simulator::GetPlayerHomePlanet() and cEmpire::RequireHomePlanet()
1 parent 3c1fd8a commit ef40d11

File tree

5 files changed

+15
-1
lines changed

5 files changed

+15
-1
lines changed

Spore ModAPI/SourceCode/DLL/AddressesSimulator.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ namespace Addresses(Simulator)
144144

145145
DefineAddress(GetMainSpeciesImageKey, SelectAddress(0x1066AF0, 0x1065F10));
146146

147+
DefineAddress(GetPlayerHomePlanet, SelectAddress(0x10223F0, 0x1021220));
148+
147149
#ifndef SDK_TO_GHIDRA
148150
DefineAddress(LightingWorld_ptr, SelectAddress(0x1682CD4, 0x167EA54));
149151
DefineAddress(PrecalculatedSolarStarRadius_ptr, SelectAddress(0x157DCF0, 0x1579D10));
@@ -326,6 +328,7 @@ namespace Simulator
326328
DefineAddress(CaptureSystem, SelectAddress(0xC8C320, 0xC8D190));
327329
DefineAddress(UpdateAndGetColor, SelectAddress(0xC325F0, 0xC32E30));
328330
DefineAddress(AddStarOwnership, SelectAddress(0xC33AB0, 0xC34300));
331+
DefineAddress(RequireHomePlanet, SelectAddress(0xC30F90, 0xC31890));
329332
}
330333

331334
namespace Addresses(cEnergyRepairToolStrategy)

Spore ModAPI/SourceCode/Simulator/SpacePlayerData.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,7 @@ namespace Simulator
4444
auto_STATIC_METHOD_(Simulator, uint32_t, GetPlayerEmpireID);
4545

4646
auto_STATIC_METHOD_(Simulator, SpaceContext, GetCurrentContext);
47+
48+
auto_STATIC_METHOD_(Simulator, cPlanetRecord*, GetPlayerHomePlanet);
4749
}
4850
#endif

Spore ModAPI/SourceCode/Simulator/cEmpire.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ namespace Simulator
3232
auto_METHOD_(cEmpire, cSpeciesProfile*, GetSpeciesProfile);
3333
auto_METHOD_VOID(cEmpire, SetSpeciesProfile, Args(cSpeciesProfile* pSpecies), Args(pSpecies));
3434

35+
auto_METHOD_(cEmpire, cPlanetRecord*, RequireHomePlanet);
36+
3537
cStarRecord* cEmpire::GetHomeStarRecord() {
3638
if (mHomeStar.internalValue != -1) {
3739
return StarManager.GetStarRecord(mHomeStar);

Spore ModAPI/Spore/Simulator/SubSystem/SpacePlayerData.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ namespace Simulator
3737

3838
SpaceContext GetCurrentContext();
3939

40+
cPlanetRecord* GetPlayerHomePlanet();
41+
4042
class SpacePlayerData
4143
{
4244
public:
@@ -73,4 +75,5 @@ namespace Addresses(Simulator)
7375

7476
DeclareAddress(GetCurrentContext);
7577

78+
DeclareAddress(GetPlayerHomePlanet); // 0x10223F0 0x1021220
7679
}

Spore ModAPI/Spore/Simulator/cEmpire.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ namespace Simulator
5959

6060
cStarRecord* GetHomeStarRecord();
6161

62+
/// Returns the home planet of the empire, and if it is not available, it assigns one.
63+
/// Preferrable over using `mHomePlanet`
64+
cPlanetRecord* RequireHomePlanet();
65+
6266
cSpeciesProfile* GetSpeciesProfile();
6367

6468
void SetSpeciesProfile(cSpeciesProfile* pSpecies);
@@ -136,7 +140,7 @@ namespace Simulator
136140
DeclareAddress(CaptureSystem);
137141
DeclareAddress(UpdateAndGetColor); // 0xC325F0 0xC32E30
138142
DeclareAddress(AddStarOwnership); // 0xC33AB0 0xC34300
139-
//TODO sub_C30F90 RequireHomePlanet
143+
DeclareAddress(RequireHomePlanet); // 0xC30F90 0xC31890
140144
}
141145

142146
}

0 commit comments

Comments
 (0)