diff --git a/Spore ModAPI/SourceCode/DLL/AddressesSimulator.cpp b/Spore ModAPI/SourceCode/DLL/AddressesSimulator.cpp index 08d84a28..1750d8c0 100644 --- a/Spore ModAPI/SourceCode/DLL/AddressesSimulator.cpp +++ b/Spore ModAPI/SourceCode/DLL/AddressesSimulator.cpp @@ -1159,6 +1159,7 @@ namespace Simulator DefineAddress(GetCurrentAdvectInfo, SelectAddress(0xE594F0, 0xE58EF0)); DefineAddress(GetNextAdvectID, SelectAddress(0xE59430, 0xE58E30)); DefineAddress(CreateCellObject, SelectAddress(0xE74F60, 0xE74A20)); + DefineAddress(OverwriteCellCollisionSpheres, SelectAddress(0xE843C0, 0xE83E30)); DefineAddress(MovePlayerToMousePosition, SelectAddress(0xE5BD90, 0xE5B790)); DefineAddress(GetScaleDifferenceWithPlayer, SelectAddress(0xE57940, 0xE57340)); DefineAddress(ShouldNotAttack, SelectAddress(0xE57A60, 0xE57460)); diff --git a/Spore ModAPI/SourceCode/Simulator/SimulatorCell.cpp b/Spore ModAPI/SourceCode/Simulator/SimulatorCell.cpp index 98c0dad9..6e57d3df 100644 --- a/Spore ModAPI/SourceCode/Simulator/SimulatorCell.cpp +++ b/Spore ModAPI/SourceCode/Simulator/SimulatorCell.cpp @@ -88,6 +88,10 @@ namespace Simulator Args(cCellQueryLinkedPool* a1, const Math::Vector3& a2, float a3, cCellDataReference* a4, CellStageScale a5, float a6, float a7, bool a8, Math::Quaternion* a9, int a10), Args(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)); + auto_STATIC_METHOD_VOID(Cell, OverwriteCellCollisionSpheres, + Args(int* outCount, unsigned char* outRecords, ResourceKey* resourceKey), + Args(outCount, outRecords, resourceKey)); + auto_STATIC_METHOD_VOID(Cell, MovePlayerToMousePosition, Args(float a0), Args(a0)); diff --git a/Spore ModAPI/Spore/Simulator/Cell/CellFunctions.h b/Spore ModAPI/Spore/Simulator/Cell/CellFunctions.h index 04e1a06a..aa21964a 100644 --- a/Spore ModAPI/Spore/Simulator/Cell/CellFunctions.h +++ b/Spore ModAPI/Spore/Simulator/Cell/CellFunctions.h @@ -43,6 +43,11 @@ namespace Simulator Math::Quaternion* pTargetOrientation = nullptr, int = 0); + /// Allows you to overwrite the collision spheres for cells. + /// @param outCount + /// @param outRecords + /// @param resourceKey + void OverwriteCellCollisionSpheres(int* outCount, unsigned char* outRecords, ResourceKey * resourceKey); void MovePlayerToMousePosition(float deltaTime); @@ -104,6 +109,7 @@ namespace Simulator DeclareAddress(GetCurrentAdvectInfo); // 0xE594F0 0xE58EF0 DeclareAddress(GetNextAdvectID); // 0xE59430 0xE58E30 DeclareAddress(CreateCellObject); // 0xE74F60 0xE74A20 + DeclareAddress(OverwriteCellCollisionSpheres); // 0xE83E30 0xe843c0 DeclareAddress(MovePlayerToMousePosition); // 0xE5BD90 0xE5B790 DeclareAddress(GetScaleDifferenceWithPlayer); // 0xE57940 0xE57340 DeclareAddress(ShouldNotAttack); // 0xE57A60 0xE57460 @@ -112,4 +118,4 @@ namespace Simulator DeclareAddress(PlayAnimation); // 0xE6D780 0xE6D200 DeclareAddress(GetModelKeyForCellResource); // 0xE65BE0 0xE65640 } -} \ No newline at end of file +}