Skip to content

Commit 17e4815

Browse files
VanillaColdemd4600
andauthored
Add asset-type functions & some other misc addresses (#77)
* Add TakeDamage addresses * add addresses for asset type functions * Add DeclareAddress() for TakeDamage --------- Co-authored-by: Eric Mor <emd4600@gmail.com>
1 parent 04c892f commit 17e4815

8 files changed

Lines changed: 37 additions & 0 deletions

File tree

Spore ModAPI/SourceCode/DLL/AddressesEditors.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ namespace Editors
8080
DefineAddress(PostEventToActors, SelectAddress(0x574000, 0x574110));
8181

8282
DefineAddress(HandleMessage, SelectAddress(0x591C80, 0x591FA0));
83+
84+
85+
DefineAddress(GetEditorForAssetType, SelectAddress(0x00433010, 0x004333e0));
86+
DefineAddress(GetNameForAssetType, SelectAddress(0x004badc0, 0x004bba50));
87+
DefineAddress(GetTypeIDForAssetType, SelectAddress(0x004bb110, 0x004bbda0));
8388
}
8489

8590
namespace Addresses(EditorCamera)

Spore ModAPI/SourceCode/DLL/AddressesSimulator.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,12 @@ namespace Simulator
224224
DefineAddress(OnJumpLand, SelectAddress(0xC044D0, 0xC04CB0));
225225
DefineAddress(OnStartSwimming, SelectAddress(0xC04610, 0xC04DF0));
226226
DefineAddress(Update, SelectAddress(0xC0A590, 0xC0AE30));
227+
DefineAddress(TakeDamage, SelectAddress(0xBFC500, 0xBFCF10));
227228
}
228229

229230
namespace Addresses(cCreatureCitizen) {
230231
DefineAddress(Update, SelectAddress(0xC24210, 0xC24A30));
232+
DefineAddress(TakeDamage, SelectAddress(0xBFC500, 0xBFCF10));
231233
DefineAddress(DoAction, SelectAddress(0xC26EF0, 0xC27710));
232234
DefineAddress(GetHandheldItemForTool, SelectAddress(0xC22E70, 0xC23740));
233235
DefineAddress(GetSpecializedName, SelectAddress(0xB6B500, 0xB6B910));
@@ -256,6 +258,12 @@ namespace Simulator
256258
DefineAddress(OnJumpLand, SelectAddress(0xC14670, 0xC14E10));
257259
DefineAddress(OnStartSwimming, SelectAddress(0xC147D0, 0xC14F70));
258260
DefineAddress(Update, SelectAddress(0xC20C50, 0xC21530));
261+
DefineAddress(TakeDamage, SelectAddress(0xBFC500, 0xBFCF10));
262+
}
263+
264+
namespace Addresses(cCombatant)
265+
{
266+
DefineAddress(TakeDamage, SelectAddress(0xBFC500, 0xBFCF10));
259267
DefineAddress(IsHervibore, SelectAddress(0xC0B040, 0xC0B8E0));
260268
}
261269

Spore ModAPI/SourceCode/Editors/Editor.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,5 +192,11 @@ namespace Editors
192192

193193

194194
auto_METHOD_VOID(EditorRigblock, SetShadedDisplay, Args(bool isShaded), Args(isShaded));
195+
196+
auto_STATIC_METHOD(cEditor, uint32_t, GetEditorForAssetType, Args(uint32_t assetTypeID), Args(assetTypeID));
197+
198+
auto_STATIC_METHOD(cEditor, uint32_t, GetTypeIDForAssetType, Args(uint32_t assetTypeID), Args(assetTypeID));
199+
200+
auto_STATIC_METHOD(cEditor, const char16_t*, GetNameForAssetType, Args(uint32_t assetTypeID), Args(assetTypeID));
195201
}
196202
#endif

Spore ModAPI/Spore/Editors/Editor.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,12 @@ namespace Editors
207207

208208
void PostEventToActors(uint32_t eventID, int = -1, float = 1.0f, float = 0.0f);
209209

210+
static uint32_t GetEditorForAssetType(uint32_t assetTypeID);
211+
212+
static const char16_t* GetNameForAssetType(uint32_t assetTypeID);
213+
214+
static uint32_t GetTypeIDForAssetType(uint32_t assetTypeID);
215+
210216
public:
211217

212218
int vftable_1C;
@@ -628,6 +634,11 @@ namespace Editors
628634
DeclareAddress(PostEventToActors); // 0x574000 0x574110
629635

630636
DeclareAddress(HandleMessage); // 0x591C80 0x591FA0
637+
638+
639+
DeclareAddress(GetEditorForAssetType);
640+
DeclareAddress(GetNameForAssetType);
641+
DeclareAddress(GetTypeIDForAssetType);
631642
}
632643

633644
#ifdef SDK_TO_GHIDRA

Spore ModAPI/Spore/Simulator/cCombatant.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,8 @@ namespace Simulator
151151
};
152152
ASSERT_SIZE(cCombatant, 0xC8);
153153

154+
namespace Addresses(cCombatant){
155+
DeclareAddress(TakeDamage);
156+
}
157+
154158
}

Spore ModAPI/Spore/Simulator/cCreatureAnimal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,5 +92,6 @@ namespace Simulator
9292
DeclareAddress(OnJumpLand); // 0xC044D0 0xC04CB0
9393
DeclareAddress(OnStartSwimming); // 0xC04610 0xC04DF0
9494
DeclareAddress(Update); // 0xC0A590 0xC0AE30
95+
DeclareAddress(TakeDamage);
9596
}
9697
}

Spore ModAPI/Spore/Simulator/cCreatureBase.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,7 @@ namespace Simulator
417417
DeclareAddress(OnJumpLand); // 0xC14670 0xC14E10
418418
DeclareAddress(OnStartSwimming); // 0xC147D0 0xC14F70
419419
DeclareAddress(Update); // 0xC20C50 0xC21530
420+
DeclareAddress(TakeDamage);
420421
DeclareAddress(IsHervibore); // 0xC0B040 0xC0B8E0
421422
}
422423
}

Spore ModAPI/Spore/Simulator/cCreatureCitizen.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ namespace Simulator
6363

6464
namespace Addresses(cCreatureCitizen) {
6565
DeclareAddress(Update); // 0xC24210 0xC24A30
66+
DeclareAddress(TakeDamage);
6667
DeclareAddress(DoAction); // 0xC26EF0 0xC27710
6768
DeclareAddress(GetHandheldItemForTool); // 0xC22E70 0xC23740
6869
DeclareAddress(GetSpecializedName); // 0xB6B500 0xB6B910

0 commit comments

Comments
 (0)