Skip to content
Open
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
25 changes: 22 additions & 3 deletions Spore ModAPI/SourceCode/DLL/AddressesEditors.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <Spore\Editors\cEditorAnimWorld.h>
#include <Spore\Editors\cEditorSkinMesh.h>
#include <Spore\Editors\cCreatureDataResource.h>
#include <Spore\Editors\VerbIconData.h>

#ifdef SDK_TO_GHIDRA
namespace Editors
Expand Down Expand Up @@ -82,9 +83,13 @@ namespace Editors
DefineAddress(HandleMessage, SelectAddress(0x591C80, 0x591FA0));


DefineAddress(GetEditorForAssetType, SelectAddress(0x00433010, 0x004333e0));
DefineAddress(GetNameForAssetType, SelectAddress(0x004badc0, 0x004bba50));
DefineAddress(GetTypeIDForAssetType, SelectAddress(0x004bb110, 0x004bbda0));
DefineAddress(GetEditorForAssetType, SelectAddress(0x433010, 0x4333e0));
DefineAddress(GetNameForAssetType, SelectAddress(0x4badc0, 0x4bba50));
DefineAddress(GetTypeIDForAssetType, SelectAddress(0x4bb110, 0x4bbda0));

DefineAddress(ComputeCreatureVerbIcons, SelectAddress(0x4e2a50, 0x4e8860));

DefineAddress(LoadCreatureData, SelectAddress(0x4b5760, 0x4bb500));
}

namespace Addresses(EditorCamera)
Expand Down Expand Up @@ -250,5 +255,19 @@ namespace Editors
DefineAddress(SetWindowVisible, SelectAddress(0x635450, 0x635750));
DefineAddress(FindWindowByID, SelectAddress(0x634AB0, 0x634DB0));
}

namespace Addresses(VerbIconData)
{
DefineAddress(AddRef, SelectAddress(0x6520a0, 0xc6ab00));
DefineAddress(Release, SelectAddress(0x5cd9f0, 0x7b87b0));
DefineAddress(Dispose, SelectAddress(0x597710, 0x59eff0));
DefineAddress(AsInterface, SelectAddress(0x5db940, 0x5e4d70));
DefineAddress(Init, SelectAddress(0x5dc070, 0x5e54a0));
DefineAddress(Shutdown, SelectAddress(0x5dc4f0, 0x5e5920));
DefineAddress(SetArrayIndex, SelectAddress(0x5db960, 0x5e4d90));
DefineAddress(SetHotKey, SelectAddress(0x5dc800, 0x5e5c30));
DefineAddress(GetIconName, SelectAddress(0x5dc880, 0x5e5cb0));
DefineAddress(GetIconDescription, SelectAddress(0x5dc940, 0x5e5d70));
}
}
#endif
26 changes: 26 additions & 0 deletions Spore ModAPI/SourceCode/DLL/AddressesGraphics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,32 @@ namespace Graphics

namespace Addresses(IThumbnailManager) {
DefineAddress(Get, SelectAddress(0x67DED0, 0x67DD70));
DefineAddress(AddRef, SelectAddress(0xfee650, 0x671f20));
DefineAddress(Release, SelectAddress(0xf1aae0, 0xae0620));
DefineAddress(Dispose, SelectAddress(0x794410, 0x7b6df0));
DefineAddress(Init, SelectAddress(0x79e020, 0x7c14c0));
DefineAddress(Shutdown, SelectAddress(0x79ad90, 0x7bdef0));
DefineAddress(FrameBoundingBoxPalette, SelectAddress(0x792a90, 0x7b53d0));
DefineAddress(GetThumbRectID, SelectAddress(0x7903c0, 0x7b2740));
DefineAddress(CapturePaletteThumbnail, SelectAddress(0x79b3a0, 0x7be500));
DefineAddress(CaptureEditorsThumbnail, SelectAddress(0x79b8e0, 0x7bead0));
DefineAddress(CaptureCSAPhotos, SelectAddress(0x79bc20, 0x7bee80));
DefineAddress(CaptureGameThumbnail, SelectAddress(0x79c120, 0x7bf3d0));
DefineAddress(func2ch, SelectAddress(0x794c10, 0x7b7600));
DefineAddress(func30h, SelectAddress(0x793240, 0x7b5b80));
DefineAddress(RenderPlanetThumbnail, SelectAddress(0x797430, 0x7ba180));
DefineAddress(CaptureBESplatter, SelectAddress(0x79e790, 0x7c1ce0));
DefineAddress(CaptureAO, SelectAddress(0x79cc40, 0x7bffb0));
DefineAddress(CaptureAOCE, SelectAddress(0x79d430, 0x7c0850));
DefineAddress(func44h, SelectAddress(0x7988a0, 0x7bb740));
DefineAddress(GenerateTimelineImages, SelectAddress(0x79cc30, 0x7bff80));
DefineAddress(FrameBoundingBoxThumbnail, SelectAddress(0x792d60, 0x7b56a0));
DefineAddress(FrameBBoxes, SelectAddress(0x794950, 0x7b7340));
DefineAddress(DownsampleGIF, SelectAddress(0x7972c0, 0x7ba000));
DefineAddress(DownSampleRT, SelectAddress(0x796be0, 0x7b98a0));
DefineAddress(func5Ch, SelectAddress(0x796d80, 0x7b9a60));
DefineAddress(TerrainBlurFilterDraw, SelectAddress(0x7923b0, 0x7b4bd0));
DefineAddress(GatherAOPasses, SelectAddress(0x7940f0, 0x7b69b0));
}

namespace Addresses(IGraphicsManager) {
Expand Down
21 changes: 21 additions & 0 deletions Spore ModAPI/SourceCode/DLL/AddressesSporepedia.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
#include <Spore\Sporepedia\AssetData.h>
#include <Spore\Sporepedia\ObjectTemplateDB.h>
#include <Spore\Sporepedia\AssetViewManager.h>
#include <Spore\Sporepedia\cSPUILargeAssetView.h>
#include <Spore\Sporepedia\ISPUILargeAssetView.h>

namespace Sporepedia
{
Expand Down Expand Up @@ -78,6 +80,25 @@ namespace Sporepedia
DefineAddress(Get, SelectAddress(0x67CC90, 0x67CB00));
}
}

namespace Addresses(ISPUILargeAssetView)
{
DefineAddress(AddRef, SelectAddress(0x734c00, 0xf11ae0));
DefineAddress(Release, SelectAddress(0x734c10, 0x7505f0));
DefineAddress(Dispose, SelectAddress(0x6623c0, 0x66ccd0));
DefineAddress(AsInterface, SelectAddress(0x661490, 0x66bce0));
DefineAddress(GetPriority, SelectAddress(0xce9820, 0xe310c0));
DefineAddress(GetEventMask, SelectAddress(0xdb8a50, 0x5f0e70));
DefineAddress(func18h, SelectAddress(0xdb8a50, 0x66d400));
DefineAddress(LoadAssetViewLarge, SelectAddress(0x664630, 0x66efb0));
}
namespace Addresses(cSPUILargeAssetViewSmh)
{
DefineAddress(Dispose, SelectAddress(0x661ab0, 0x66c310));
DefineAddress(func04h, SelectAddress(0x661c00, 0x66c460));
DefineAddress(AddRef, SelectAddress(0x6023b0, 0xeb2890));
DefineAddress(Release, SelectAddress(0x6023a0, 0xeb28a0));
}
}

namespace Addresses(Sporepedia)
Expand Down
39 changes: 22 additions & 17 deletions Spore ModAPI/SourceCode/Editors/Editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,20 +59,20 @@ namespace Editors
: mnRefCount(0)
, mKey()
, mRigblocks()
, field_2C()
, field_30()
, field_34()
, field_38()
, field_3C()
, field_40(-2.0f)
, field_44(2.0f)
, field_48()
, field_4C()
, field_4D()
, field_4E(true)
, field_4F()
, field_50()
, field_51()
, mbAllBlocksLoaded()
, mPhysicsWorld()
, mUseDynamics()
, mBounds()
, mFeetBounds()
, mMinHeight(-2.0f)
, mMaxHeight(2.0f)
, mMinimumLeglessCreatureHeight()
, mShowHiddenHandles()
, mShowBoneLengthHandles()
, mUseBoundsForDelete(true)
, mUsingSymmetry()
, mSkinNeedsUpdating()
, mChanged()
, mTranslationOptions()
, mModelType()
, mName()
Expand All @@ -81,7 +81,7 @@ namespace Editors
, mSkinEffectIDs()
, mSkinEffectSeeds{1234, 1234, 1234}
, mColors {ColorRGB(1.0f, 1.0f, 1.0f), ColorRGB(1.0f, 1.0f, 1.0f), ColorRGB(1.0f, 1.0f, 1.0f)}
, field_C8()
, mBBoxesOverride()
{
}

Expand All @@ -90,8 +90,8 @@ namespace Editors
Dispose();

// field_30 is a pointer, but I don't know what kind so we manually Release it
if (field_30 != 0) {
int* pointer = (int*)field_30;
if (mPhysicsWorld != 0) {
int* pointer = (int*)mPhysicsWorld;
pointer[1]--;
if (pointer[1] == 0) {
pointer[1] = 1;
Expand Down Expand Up @@ -198,5 +198,10 @@ namespace Editors
auto_STATIC_METHOD(cEditor, uint32_t, GetTypeIDForAssetType, Args(uint32_t assetTypeID), Args(assetTypeID));

auto_STATIC_METHOD(cEditor, const char16_t*, GetNameForAssetType, Args(uint32_t assetTypeID), Args(assetTypeID));

auto_STATIC_METHOD_VOID(cEditor, ComputeCreatureVerbIcons, Args(cCreatureDataResource* creatureData, int VerbTrayCollection, int brainLevel, float param_4), Args(creatureData, VerbTrayCollection, brainLevel, param_4));

auto_STATIC_METHOD(cEditor, bool, LoadCreatureData,Args(ResourceKey* creation, cCreatureDataResource** dst), Args(creation, dst));

}
#endif
8 changes: 6 additions & 2 deletions Spore ModAPI/Spore ModAPI.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -327,8 +327,10 @@
<ClInclude Include="Spore\App\IDGenerator.h" />
<ClInclude Include="Spore\App\JobManager.h" />
<ClInclude Include="Spore\App\Thumbnail_cImportExport.h" />
<ClInclude Include="Spore\Graphics\LayerSequence.h" />
<ClInclude Include="Spore\OpenSSL.h" />
<ClInclude Include="Spore\Editors\cSPVerbTrayCollection.h" />
<ClInclude Include="Spore\Graphics\cThumbnailManager.h" />
<ClInclude Include="Spore\Graphics\LayerSequence.h" />
<ClInclude Include="Spore\OpenSSL.h" />
<ClInclude Include="Spore\Resource\FakeRecord.h" />
<ClInclude Include="Spore\Simulator\cBaseSimulatorInputStrategy.h" />
<ClInclude Include="Spore\Simulator\cObstacle.h" />
Expand Down Expand Up @@ -504,6 +506,8 @@
<ClInclude Include="Spore\Skinner\cSkinPainterJobCopyTex1AlphaToTex0.h" />
<ClInclude Include="Spore\Skinner\cSkinPainterJob.h" />
<ClInclude Include="Spore\Sporepedia\AssetViewManager.h" />
<ClInclude Include="Spore\Sporepedia\cSPUILargeAssetView.h" />
<ClInclude Include="Spore\Sporepedia\ISPUILargeAssetView.h" />
<ClInclude Include="Spore\Sporepedia\ObjectTemplateDB.h" />
<ClInclude Include="Spore\Sporepedia\OTDBParameters.h" />
<ClInclude Include="Spore\Simulator\cCivilization.h" />
Expand Down
15 changes: 15 additions & 0 deletions Spore ModAPI/Spore ModAPI.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -2250,6 +2250,18 @@
<ClInclude Include="Spore\UTFWin\cSPUIBehaviorEventBase.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Spore\Sporepedia\cSPUILargeAssetView.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Spore\Editors\cSPVerbTrayCollection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Spore\Sporepedia\ISPUILargeAssetView.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Spore\Graphics\cThumbnailManager.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="SourceCode\Allocator.cpp">
Expand Down Expand Up @@ -2738,6 +2750,9 @@
<ClCompile Include="SourceCode\OpenSSL.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SourceCode\Editors\VerbIconData.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Natvis Include="EASTL.natvis" />
Expand Down
7 changes: 7 additions & 0 deletions Spore ModAPI/Spore/CommonIDs.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,13 @@ enum Difficulty
kDifficultyHard = 2,
};

enum InterfaceId
{
kIIDMin = 0,
kIIDFactory = 1,
kIIDMax = 0xffffffff,
};

/// Contains the ID of some important file types.
namespace TypeIDs
{
Expand Down
Loading