Skip to content

Commit 890fccf

Browse files
committed
Added several functions related with star types (like solar mass, radius, etc). Added planet generation function. Fixed ResourceKeyGenerator bug from previous update.
1 parent 7a1f0b6 commit 890fccf

25 files changed

+487
-35
lines changed

Spore ModAPI/SourceCode/App/App.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#ifndef MODAPI_DLL_EXPORT
22
#include <Spore\App\Thumbnail_cImportExport.h>
33
#include <Spore\App\AppData.h>
4+
#include <Spore\App\ResourceKeyGenerator.h>
45

56
namespace App
67
{
@@ -21,5 +22,8 @@ namespace App
2122
auto_STATIC_METHOD(AppData, Resource::DBPF*, GetPackageForSaveDirectory, Args(uint32_t arg), Args(arg));
2223
auto_STATIC_METHOD_VOID(AppData, SetPackageForSaveDirectory,
2324
Args(uint32_t arg, Resource::DBPF* package, bool b), Args(arg, package, b));
25+
26+
27+
auto_STATIC_METHOD_(cResourceKeyGenerator, cResourceKeyGenerator*, Get);
2428
}
2529
#endif

Spore ModAPI/SourceCode/DLL/AddressesApp.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <Spore\App\Thumbnail_cImportExport.h>
2121
#include <Spore\App\cLocaleManager.h>
2222
#include <Spore\App\AppData.h>
23+
#include <Spore\App\ResourceKeyGenerator.h>
2324

2425
namespace Addresses(App)
2526
{
@@ -367,5 +368,10 @@ namespace App
367368
DefineAddress(GetPackageForSaveDirectory, SelectAddress(0x6B22C0, , 0x6B1F20));
368369
DefineAddress(SetPackageForSaveDirectory, SelectAddress(0x6B3A90, , 0x6B36F0));
369370
}
371+
372+
namespace Addresses(cResourceKeyGenerator)
373+
{
374+
DefineAddress(Get, SelectAddress(0x67DF80, , 0x67DE20));
375+
}
370376
}
371377
#endif

Spore ModAPI/SourceCode/DLL/AddressesSimulator.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
#include <Spore\Simulator\cScenarioPowerup.h>
4747
#include <Spore\Simulator\cScenarioSimulator.h>
4848
#include <Spore\Simulator\cScenarioTerraformMode.h>
49+
#include <Spore\Simulator\SubSystem\SpaceGfx.h>
4950
#include <Spore\Simulator\cHerd.h>
5051
#include <Spore\Simulator\cToolStrategy.h>
5152
#include <Spore\Simulator\cTribeArchetype.h>
@@ -57,6 +58,7 @@
5758
#include <Spore\Simulator\cStar.h>
5859
#include <Spore\Simulator\cMissionManager.h>
5960
#include <Spore\Simulator\Serialization.h>
61+
#include <Spore\Simulator\SpaceConstants.h>
6062
#include <Spore\Simulator\SubSystem\cRelationshipManager.h>
6163
#include <Spore\Simulator\SubSystem\GameBehaviorManager.h>
6264
#include <Spore\Simulator\SubSystem\GameInputManager.h>
@@ -95,6 +97,17 @@ namespace Addresses(Simulator)
9597

9698
DefineAddress(RegisterNounType, SelectAddress(0xB23CE0, , 0xB23E40));
9799
DefineAddress(GetNounCreateMap, SelectAddress(0xB22090, , 0xB221A0));
100+
101+
DefineAddress(GetBinarySystemStarTypes, SelectAddress(0xC8A790, , 0xC8B600));
102+
DefineAddress(GetBinarySystemBaseRadius, SelectAddress(0xC83720, , 0xC845B0));
103+
DefineAddress(GetSolarStarTemperature, SelectAddress(0xC83610, , 0xC844A0));
104+
DefineAddress(GetSolarStarMass, SelectAddress(0xC834A0, , 0xC84330));
105+
DefineAddress(GetSolarStarRadius, SelectAddress(0xC83420, , 0xC842B0));
106+
DefineAddress(GetSolarStarRotationRate, SelectAddress(0xC835A0, , 0xC84430));
107+
DefineAddress(GetSolarStarOrbitRadius, SelectAddress(0xC83F60, , 0xC84DF0));
108+
DefineAddress(GetPlanetTemperatureType, SelectAddress(0xFC26B0, , 0xFC1F90));
109+
DefineAddress(IsBinaryStar, SelectAddress(0xC8A770, , 0xC8B5E0));
110+
DefineAddress(IsNotStarOrBinaryStar, SelectAddress(0xC8A840, , 0xC8B6B0));
98111
}
99112

100113
namespace Simulator
@@ -308,6 +321,7 @@ namespace Simulator
308321
{
309322
DefineAddress(GetTemperatureScore, SelectAddress(0xC6FD80, NO_ADDRESS, 0xC70BC0));
310323
DefineAddress(SetRepresentationMode, SelectAddress(0xC70CD0, , 0xC71B70));
324+
DefineAddress(GetRingEffect, SelectAddress(0xC6FB50, , 0xC70990));
311325
}
312326

313327
namespace Addresses(cPlayerInventory)
@@ -488,6 +502,8 @@ namespace Simulator
488502
DefineAddress(GetStarGridPosition, SelectAddress(0xBA6880, , 0xBA7250));
489503
DefineAddress(GenerateEllipticalOrbit, SelectAddress(0xBA81B0, , 0xBA8D90));
490504
DefineAddress(GenerateSolSystem, SelectAddress(0xBB1A00, , 0xBB2BF0));
505+
DefineAddress(RequirePlanetsForStar, SelectAddress(0xBB3AA0, , 0xBB4C90));
506+
DefineAddress(GeneratePlanetsForStar, SelectAddress(0xBB30B0, , 0xBB42A0));
491507
}
492508

493509
namespace Addresses(cSpaceTradeRouteManager)
@@ -716,5 +732,12 @@ namespace Simulator
716732
{
717733
DefineAddress(Create, SelectAddress(0xBA5920, , 0xBA6300));
718734
}
735+
736+
namespace Addresses(cSpaceGfx)
737+
{
738+
DefineAddress(Get, SelectAddress(0xB3D3D0, , 0xB3D570));
739+
DefineAddress(InitializeInternal, SelectAddress(0x10367E0, , 0x1035910));
740+
DefineAddress(DisposeInternal, SelectAddress(0x1038190, , 0x10372C0));
741+
}
719742
}
720743
#endif

Spore ModAPI/SourceCode/Simulator/Planets.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@
2424
namespace Simulator
2525
{
2626
cStarRecord* cPlanetRecord::GetStarRecord() const {
27-
return StarManager.GetStarRecord(mKey.instanceID);
27+
return StarManager.GetStarRecord(mKey.GetStarID());
2828
}
2929

3030
StarID cPlanetRecord::GetStarID() const {
31-
return PlanetID(mKey.instanceID).GetStarID();
31+
return PlanetID(mKey).GetStarID();
3232
}
3333

3434
PlanetID cPlanetRecord::GetID() const {
35-
return PlanetID(mKey.instanceID);
35+
return mKey;
3636
}
3737

3838
TechLevel cPlanetRecord::GetTechLevel() const {
@@ -52,5 +52,7 @@ namespace Simulator
5252
auto_METHOD_VOID(cPlanet, SetRepresentationMode, Args(PlanetRepresentationMode mode), Args(mode));
5353

5454
auto_STATIC_METHOD_VOID(cPlanetRecord, Create, Args(PlanetID planetId, cPlanetRecordPtr& dst), Args(planetId, dst));
55+
56+
auto_METHOD(cPlanet, uint32_t, GetRingEffect, Args(bool isFromPlanet), Args(isFromPlanet));
5557
}
5658
#endif

Spore ModAPI/SourceCode/Simulator/StarManager.cpp

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1919
****************************************************************************/
2020
#include <Spore\Simulator\SubSystem\StarManager.h>
21+
#include <Spore\Simulator\SubSystem\SpaceGfx.h>
22+
#include <Spore\Simulator\SpaceConstants.h>
2123

2224
namespace Simulator
2325
{
@@ -107,25 +109,72 @@ namespace Simulator
107109

108110
auto_METHOD_VOID_(cStarManager, GenerateSolSystem);
109111

112+
auto_METHOD_VOID(cStarManager, RequirePlanetsForStar,
113+
Args(cStarRecord* pStarRecord, StarRequestFilter* pFilter),
114+
Args(pStarRecord, pFilter));
115+
116+
auto_METHOD_VOID(cStarManager, GeneratePlanetsForStar,
117+
Args(cStarRecord* pStarRecord, StarRequestFilter* pFilter, bool arg),
118+
Args(pStarRecord, pFilter, arg));
119+
110120
auto_STATIC_METHOD(cStarManager, bool, StarGenerationMessageHandler,
111121
Args(uint32_t messageId, Swarm::Components::DistributeEffectMessageData* pDistributeData, StarType starType),
112122
Args(messageId, pDistributeData, starType));
113123

114124

115-
cPlanetRecord* PlanetID::GetRecord()
125+
cPlanetRecord* PlanetID::GetRecord() const
116126
{
117127
return StarManager.GetPlanetRecord(*this);
118128
}
119129

120-
cStarRecord* StarID::GetRecord()
130+
cStarRecord* StarID::GetRecord() const
121131
{
122132
return StarManager.GetStarRecord(*this);
123133
}
134+
135+
136+
137+
auto_STATIC_METHOD_(cSpaceGfx, cSpaceGfx*, Get);
138+
auto_METHOD_VOID_(cSpaceGfx, InitializeInternal);
139+
auto_METHOD_VOID_(cSpaceGfx, DisposeInternal);
124140
}
125141

126142
auto_STATIC_METHOD_VOID(Simulator, SpaceTeleportTo, Args(cStarRecord* star), Args(star));
127143

128144
auto_STATIC_METHOD(Simulator, Vector3&, GalaxyCoordinatesTo3D,
129145
Args(float parsecDistance, float angle, Vector3& dst), Args(parsecDistance, angle, dst));
130146

147+
148+
auto_STATIC_METHOD_VOID(Simulator, GetBinarySystemStarTypes,
149+
Args(Simulator::StarType binaryType, Simulator::StarType& star1, Simulator::StarType& star2),
150+
Args(binaryType, star1, star2));
151+
152+
auto_STATIC_METHOD(Simulator, float, GetBinarySystemBaseRadius,
153+
Args(Simulator::StarType binaryType), Args(binaryType));
154+
155+
auto_STATIC_METHOD(Simulator, float, GetSolarStarTemperature,
156+
Args(Simulator::StarType starType), Args(starType));
157+
158+
auto_STATIC_METHOD(Simulator, float, GetSolarStarMass,
159+
Args(Simulator::StarType starType), Args(starType));
160+
161+
auto_STATIC_METHOD(Simulator, float, GetSolarStarRadius,
162+
Args(Simulator::StarType starType), Args(starType));
163+
164+
auto_STATIC_METHOD(Simulator, float, GetSolarStarRotationRate,
165+
Args(Simulator::StarType starType), Args(starType));
166+
167+
auto_STATIC_METHOD(Simulator, float, GetSolarStarOrbitRadius,
168+
Args(Simulator::StarType starType, Simulator::SolarSystemOrbitTemperature orbitTemperature),
169+
Args(starType, orbitTemperature));
170+
171+
auto_STATIC_METHOD(Simulator, Simulator::PlanetTemperatureType, GetPlanetTemperatureType,
172+
Args(float temperatureScore), Args(temperatureScore));
173+
174+
auto_STATIC_METHOD(Simulator, bool, IsBinaryStar,
175+
Args(Simulator::StarType starType), Args(starType));
176+
177+
auto_STATIC_METHOD(Simulator, bool, IsNotStarOrBinaryStar,
178+
Args(Simulator::StarType starType), Args(starType));
179+
131180
#endif

Spore ModAPI/SourceCode/Simulator/cGameData.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ namespace Simulator
5555
}
5656

5757
cGameData::cGameData()
58-
: field_14()
58+
: mpView(nullptr)
5959
, mpScenarioMarker(nullptr)
6060
, mScenarioClassIndex(-1)
6161
, field_20()

Spore ModAPI/Spore ModAPI.vcxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,10 +389,13 @@
389389
<ClInclude Include="Spore\Simulator\ICityMusic.h" />
390390
<ClInclude Include="Spore\Simulator\cBadgeManager.h" />
391391
<ClInclude Include="Spore\Simulator\cMissionManager.h" />
392+
<ClInclude Include="Spore\Simulator\IGameDataView.h" />
392393
<ClInclude Include="Spore\Simulator\IProjectile.h" />
393394
<ClInclude Include="Spore\Simulator\SimulatorEnums.h" />
395+
<ClInclude Include="Spore\Simulator\SpaceConstants.h" />
394396
<ClInclude Include="Spore\Simulator\SubSystem\AnimalSpeciesManager.h" />
395397
<ClInclude Include="Spore\Simulator\SubSystem\PlantSpeciesManager.h" />
398+
<ClInclude Include="Spore\Simulator\SubSystem\SpaceGfx.h" />
396399
<ClInclude Include="Spore\Sporepedia\AssetViewManager.h" />
397400
<ClInclude Include="Spore\Sporepedia\ObjectTemplateDB.h" />
398401
<ClInclude Include="Spore\Sporepedia\OTDBParameters.h" />

Spore ModAPI/Spore ModAPI.vcxproj.filters

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,6 +1875,15 @@
18751875
<ClInclude Include="Spore\App\ResourceKeyGenerator.h">
18761876
<Filter>Header Files</Filter>
18771877
</ClInclude>
1878+
<ClInclude Include="Spore\Simulator\IGameDataView.h">
1879+
<Filter>Header Files</Filter>
1880+
</ClInclude>
1881+
<ClInclude Include="Spore\Simulator\SubSystem\SpaceGfx.h">
1882+
<Filter>Header Files</Filter>
1883+
</ClInclude>
1884+
<ClInclude Include="Spore\Simulator\SpaceConstants.h">
1885+
<Filter>Header Files</Filter>
1886+
</ClInclude>
18781887
</ItemGroup>
18791888
<ItemGroup>
18801889
<ClCompile Include="SourceCode\Allocator.cpp">

Spore ModAPI/Spore/App/ResourceKeyGenerator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ namespace App
4141
};
4242
ASSERT_SIZE(cResourceKeyGenerator, 0x40);
4343

44-
namespace Addresses(ResourceKeyGenerator)
44+
namespace Addresses(cResourceKeyGenerator)
4545
{
46-
DeclareAddress(Get); // 0x67DF80, TODO
46+
DeclareAddress(Get); // 0x67DF80, 0x67DE20
4747
}
4848
}

Spore ModAPI/Spore/Simulator.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <Spore\Simulator\SubSystem\UIEventLog.h>
3434
#include <Spore\Simulator\SubSystem\PlantSpeciesManager.h>
3535
#include <Spore\Simulator\SubSystem\AnimalSpeciesManager.h>
36+
#include <Spore\Simulator\SubSystem\SpaceGfx.h>
3637

3738
#include <Spore\Simulator\cGameData.h>
3839
#include <Spore\Simulator\cGonzagoSimulator.h>

0 commit comments

Comments
 (0)