Skip to content

Commit 78d9778

Browse files
committed
- Add cScenarioEditModeDisplayStrategy class, with method Load()
- Add PngEncoder class, with method EncodePNG() - Fix CreateTradingObject(), which has been moved to SpaceTrading - Add LayerSequence class
1 parent a715461 commit 78d9778

20 files changed

Lines changed: 200 additions & 14 deletions

Spore ModAPI/SourceCode/App/App.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ namespace App
4343
Args(const eastl::string16& path, eastl::hash_set<eastl::string16>& dstSkippedPaths, int& dstCount),
4444
Args(path, dstSkippedPaths, dstCount));
4545

46+
auto_METHOD(PngEncoder, bool, EncodePNG,
47+
Args(IO::IStream* stream, int mode),
48+
Args(stream, mode));
49+
4650

4751
auto_STATIC_METHOD_(cIDGenerator, cIDGenerator*, Get);
4852

Spore ModAPI/SourceCode/DLL/AddressesApp.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,11 @@ namespace App
411411
DefineAddress(ImportDirectoryPNGs, SelectAddress(0x5FC900, 0x5FCA80));
412412
}
413413

414+
namespace Addresses(PngEncoder)
415+
{
416+
DefineAddress(EncodePNG, SelectAddress(0x68E660, 0x68e190));
417+
}
418+
414419
namespace Addresses(cLocaleManager)
415420
{
416421
DefineAddress(Get, SelectAddress(0x67DF60, 0x67DE00));

Spore ModAPI/SourceCode/DLL/AddressesSimulator.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <Spore\Simulator\cCreatureCitizen.h>
1212
#include <Spore\Simulator\cCreatureBase.h>
1313
#include <Spore\Simulator\cCropCirclesToolStrategy.h>
14+
#include <Spore\Simulator\cScenarioEditModeDisplayStrategy.h>
1415
#include <Spore\Simulator\cDeepSpaceProjectileToolStrategy.h>
1516
#include <Spore\Simulator\cDefaultAoETool.h>
1617
#include <Spore\Simulator\cDefaultBeamTool.h>
@@ -1055,6 +1056,11 @@ namespace Simulator
10551056
DefineAddress(GetRareHasBeenFound, SelectAddress(0x103BC30, 0x103AC50));
10561057
DefineAddress(SetRareAsFound, SelectAddress(0x1040820, 0x103FBB0));
10571058
DefineAddress(GenerateNPCStore, SelectAddress(0x103F560, 0x103E8F0));
1059+
DefineAddress(CreateTradingObject, SelectAddress(0x103B470, 0x103A490));
1060+
}
1061+
1062+
namespace Addresses(cScenarioEditModeDisplayStrategy) {
1063+
DefineAddress(Load, SelectAddress(0xED6000, 0xED5C70));
10581064
}
10591065

10601066
namespace Addresses(cGamePersistenceManager)

Spore ModAPI/SourceCode/Graphics/Rendering.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include <Spore\Graphics\GlobalState.h>
2626
#include <Spore\Graphics\ActiveState.h>
2727
#include <Spore\Graphics\cFrustumCull.h>
28+
#include <Spore\Graphics\LayerSequence.h>
2829

2930
namespace Graphics
3031
{
@@ -196,5 +197,19 @@ namespace Graphics
196197
return *(D3DPRESENT_PARAMETERS*)(GetAddress(ActiveState, sPresentParams));
197198
}
198199
}
200+
201+
202+
int LayerSequence::AddRef() {
203+
return RefCountTemplate::AddRef();
204+
}
205+
int LayerSequence::Release() {
206+
return RefCountTemplate::Release();
207+
}
208+
LayerSequence::~LayerSequence() {}
209+
void LayerSequence::DrawLayer(int flags, int layerIndex, App::cViewer** viewers, RenderStatistics& statistics) {
210+
for (auto& layer : mLayers) {
211+
layer.layer->DrawLayer(layer.flags, layer.layerIndex, viewers, statistics);
212+
}
213+
}
199214
}
200215
#endif

Spore ModAPI/SourceCode/Simulator/SimulatorMisc.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@
2121
#include <Spore\Simulator\cCollectableItems.h>
2222
#include <Spore\Simulator\cPlanetaryArtifact.h>
2323
#include <Spore\Simulator\cNpcTribeController.h>
24+
#include <Spore\Simulator\cScenarioEditModeDisplayStrategy.h>
2425

2526
namespace Simulator
2627
{
28+
auto_METHOD_(cScenarioEditModeDisplayStrategy, bool, Load);
29+
30+
2731
void cHerd::SetEnabled(bool enabled)
2832
{
2933
mbEnabled = enabled;

Spore ModAPI/SourceCode/Simulator/SimulatorSpaceGame.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,9 @@ namespace Simulator
5858
auto_METHOD_VOID(cSpaceTrading, GenerateNPCStore,
5959
Args(cPlanetRecord* planetRecord, LocalizedString& dstSpiceText),
6060
Args(planetRecord, dstSpiceText));
61+
62+
auto_METHOD_VOID(cSpaceTrading, CreateTradingObject,
63+
Args(cSpaceInventoryItemPtr& dst, const ResourceKey& itemID, int itemCount, float itemCost),
64+
Args(dst, itemID, itemCount, itemCost));
6165
}
6266
#endif

Spore ModAPI/SourceCode/Simulator/SpaceInventory.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@ namespace Simulator
2424
auto_STATIC_METHOD_VOID(cSpaceInventoryItem, CreateMultiDeliveryObject,
2525
Args(cSpaceInventoryItemPtr& dst, const ResourceKey& itemID, uint32_t instanceID),
2626
Args(dst, itemID, instanceID));
27-
28-
auto_STATIC_METHOD_VOID(cSpaceInventoryItem, CreateTradingObject,
29-
Args(cSpaceInventoryItemPtr& dst, const ResourceKey& itemID, int itemCount, float itemCost),
30-
Args(dst, itemID, itemCount, itemCost));
3127
}
3228

3329
#endif

Spore ModAPI/Spore ModAPI.vcxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,9 +327,11 @@
327327
<ClInclude Include="Spore\App\IDGenerator.h" />
328328
<ClInclude Include="Spore\App\JobManager.h" />
329329
<ClInclude Include="Spore\App\Thumbnail_cImportExport.h" />
330+
<ClInclude Include="Spore\Graphics\LayerSequence.h" />
330331
<ClInclude Include="Spore\Resource\FakeRecord.h" />
331332
<ClInclude Include="Spore\Simulator\cBaseSimulatorInputStrategy.h" />
332333
<ClInclude Include="Spore\Simulator\cObstacle.h" />
334+
<ClInclude Include="Spore\Simulator\cScenarioEditModeDisplayStrategy.h" />
333335
<ClInclude Include="Spore\Simulator\cTribeInputStrategy.h" />
334336
<ClInclude Include="Spore\Simulator\cNpcTribeController.h" />
335337
<ClInclude Include="Spore\Simulator\cTribeToolData.h" />
@@ -866,6 +868,7 @@
866868
<ClInclude Include="Spore\UTFWin\CascadeEffect.h" />
867869
<ClInclude Include="Spore\UTFWin\ComboBoxDrawable.h" />
868870
<ClInclude Include="Spore\UTFWin\Constants.h" />
871+
<ClInclude Include="Spore\UTFWin\cSPUIBehaviorEventBase.h" />
869872
<ClInclude Include="Spore\UTFWin\cSPUIMessageBox.h" />
870873
<ClInclude Include="Spore\UTFWin\CursorManager.h" />
871874
<ClInclude Include="Spore\UTFWin\Cursors.h" />

Spore ModAPI/Spore ModAPI.vcxproj.filters

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2238,6 +2238,15 @@
22382238
<ClInclude Include="Spore\Simulator\cNpcTribeController.h">
22392239
<Filter>Header Files</Filter>
22402240
</ClInclude>
2241+
<ClInclude Include="Spore\Graphics\LayerSequence.h">
2242+
<Filter>Header Files</Filter>
2243+
</ClInclude>
2244+
<ClInclude Include="Spore\Simulator\cScenarioEditModeDisplayStrategy.h">
2245+
<Filter>Header Files</Filter>
2246+
</ClInclude>
2247+
<ClInclude Include="Spore\UTFWin\cSPUIBehaviorEventBase.h">
2248+
<Filter>Header Files</Filter>
2249+
</ClInclude>
22412250
</ItemGroup>
22422251
<ItemGroup>
22432252
<ClCompile Include="SourceCode\Allocator.cpp">

Spore ModAPI/Spore/App/ScenarioMode.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <Spore\Simulator\cScenarioData.h>
2323
#include <Spore\Simulator\cScenarioPlayMode.h>
2424
#include <Spore\Simulator\cScenarioTerraformMode.h>
25+
#include <Spore\Simulator\cScenarioEditModeDisplayStrategy.h>
2526
#include <Spore\App\IGameMode.h>
2627
#include <Spore\App\IMessageListener.h>
2728
#include <Spore\App\MessageListenerData.h>
@@ -65,7 +66,7 @@ namespace App
6566

6667
public:
6768
/* 10h */ int mpEditModeInputStrategy; // cScenarioEditModeInputStrategy
68-
/* 14h */ int mpEditModeDisplayStrategy; // cScenarioEditModeDisplayStrategy
69+
/* 14h */ cScenarioEditModeDisplayStrategyPtr mpEditModeDisplayStrategy;
6970
/* 18h */ cScenarioTerraformModePtr mpTerraformMode;
7071
/* 1Ch */ int mpScenarioUI; // Simulator::ScenarioModeUI ?
7172
/* 20h */ GameInput mInput;

0 commit comments

Comments
 (0)