Spore-ModAPI

A C++ library that allows you to create advanced mods for Spore (user interface, shaders,...)

Stars
63

Bot releases are hidden (Show)

Spore-ModAPI - ModAPI SDK v2.5.280

Published by emd4600 about 1 year ago

Some changes by @Tenderi4 :

  • Added function ImportPNG() to Thumbnail_cImportExport
  • Expanded class cScenarioPlayMode
Spore-ModAPI - ModAPI SDK v2.5.278

Published by emd4600 over 1 year ago

  • Added NPCTickAI() and AvatarTickAI() to cCreatureAnimal.
  • Added enum CreaturePersonality for cHerd
Spore-ModAPI - ModAPI SDK v2.5.277

Published by emd4600 over 1 year ago

  • Changed cEditorSkin::HasFinishedPainting() to IsPainting().
  • Added ColorSwatchUI::Hide()
  • Added cCameraDescription, cDistributeDescription, cCameraEffect, cDistributeEffect, ICameraManager to Swarm.
  • Renamed some fields in cScenarioPlayMode
Spore-ModAPI - ModAPI SDK v2.5.271

Published by emd4600 over 1 year ago

Added ConfigManager, App::GetPreferences(), Resource::SaveNamedResource()

Spore-ModAPI - ModAPI SDK v2.5.270

Published by emd4600 over 1 year ago

Added support for App::cArithmeticaResource (the representation of .arth files)

Spore-ModAPI - ModAPI SDK v2.5.269

Published by emd4600 over 1 year ago

  • Added the Pollinator::cAchievementsManager
  • Added Simulator::cSimulatorUniverse
Spore-ModAPI - ModAPI SDK v2.5.265

Published by emd4600 over 1 year ago

  • Added cSporeApp, cAppSystem, Canvas, CommandLine to App.
  • Added Resource::Paths::CreateSaveAreaDirectoryDatabase()
Spore-ModAPI - ModAPI SDK v2.5.264

Published by emd4600 over 1 year ago

  • Added PlayAnimation() and GetModelKeyForCellResource() to Simulator::Cell
  • Added CellAnimations
  • Added chase and fleeing attributes to cCellObjectData
  • Added serializers to all cell resource types, which allows the developer to read specific cell files.
  • Added cCellUI::ShowHealthRollover()
Spore-ModAPI - ModAPI SDK v2.5.261

Published by emd4600 over 1 year ago

  • Added GetDamageAmount(), FindCellsInRadius() to Simulator::Cell.
  • Added InstanceEffectOnCell(), GetVisibleBackgroundBBox(), GetFrustumCull() to cCellGFX.
  • Added cCellQueryLinkedPool.
  • Improved some cell fields.
  • Moved several functions out of cCellGame and into Simulator::Cell.

You can check the updated cell documentation with some code examples at https://emd4600.github.io/Spore-ModAPI/namespace_simulator_1_1_cell.html

Spore-ModAPI - ModAPI SDK v2.5.257

Published by emd4600 over 1 year ago

  • Added class App::cMouseCamera, which represents most cameras in the game.
  • Simplified cObjectPool to return the specific type directly
  • Improved fields in Simulator::Cell::cCellObjectData
  • Added class Graphics::cFrustumCull
  • Added Resource::Paths::CreateTempFile()
  • Added more Editors::EditorPlayMode addresses
Spore-ModAPI - ModAPI SDK v2.5.254

Published by emd4600 over 1 year ago

Improved support for the Editor play mode.

Spore-ModAPI - ModAPI SDK v2.5.253

Published by emd4600 over 1 year ago

  • Added many Cell stage classes. Check Simulator::Cell.
  • Added Simulator::cCreatureDisplayStrategy.
Spore-ModAPI - ModAPI SDK v2.5.250

Published by emd4600 over 1 year ago

Added classes Simulator::cCreatureGameData and App::cCreatureModeStrategy.

Spore-ModAPI - ModAPI SDK v2.5.248

Published by emd4600 over 1 year ago

  • Added rasterDelta and GetShaderData() to Graphics::ActiveState
  • Added PaletteCategoryUI::GetSelectedRigblockPaint()
Spore-ModAPI - ModAPI SDK v2.5.247

Published by emd4600 almost 2 years ago

  • Added JumpToAct() and Initialize() to cScenarioPlayMode (@Tenderi4)
  • Added several new names to CommonIDs.h (@0KepOnline)
  • With the help of @Zarklord, the SDK now includes a script to import all known structures and addresses into Ghidra. This makes reverse engineering much easier! Check the instructions at https://github.com/emd4600/Spore-ModAPI#working-with-ghidra

Spore-ModAPI - ModAPI SDK v2.5.236

Published by emd4600 almost 2 years ago

  • Added many classes related to the skinpaint system in the Skinner namespace.
  • Added the class Editors::cEditorAnimEvent, which allows you to make the creature play certain animations while editing (the movements it does when putting a part, applying a paint, etc).
  • Added the class Editors::cEditorAnimWorld, related to creature animations in the editor.
  • Added methods SetActiveMode(), SetCreatureToNeutralPose(), AddCreature(), HandleMessage() to the class Editors::cEditor
  • Added the method SetActiveCategory() to Palettes::PaletteUI
  • Completed the class Editors::cCreatureDataResource
  • Renamed Editors::CreatureWalkController to Editors::EditorCreatureController
  • Renamed many methods in App::IMessageManager, most importantly PostMSG() to MessageSend() (to avoid confusions with MessagePost()!)
Spore-ModAPI - ModAPI SDK v2.5.230

Published by emd4600 almost 2 years ago

Bugfix to missing cResourceManager addresses.

Spore-ModAPI - ModAPI SDK v2.5.229

Published by emd4600 almost 2 years ago

Big changes to the Resources namespace. This update introduces the concept of Database, which is a generalization of a .package file; this is because Spore actually supports two kinds of databases: packages (DatabasePackedFile) and disk folders, which are now support in the class DatabaseDirectoryFiles.

Additionally, some methods have been added to access existing databases: check the Resource::Paths namespace. For example:

// This returns EditorSaves.package
auto database = Resource::Paths::GetSaveArea(Resource::SaveAreaID::Creatures);
//  This returns the path to the Spore folder in appdata
auto appdataPath = Resource::Paths::GetDirFromID(Resource::PathID::AppData);

Also refactored the ResourceManager and PropManager classes.

Spore-ModAPI - ModAPI SDK v2.5.223

Published by emd4600 almost 2 years ago

Completed many graphics classes and renamed many of them, based on some information found in a SimCity executable. Completed:

  • IEffectsManager
  • IEffectsWorld
  • IVisualEffect
  • ISurface
  • IModelManager
  • IModelWorld
  • ILightingWorld
  • IShadowWorld
  • IRenderer

Renamed:

  • SwarmManager -> EffectsManager
  • IEffect -> IVisualEffect
  • IEffectWorld -> IEffectsWorld
  • RenderManager -> Renderer
  • IRenderable -> ILayer
  • ModelAsset -> cMWModelInternal
  • ModelMesh -> cModelInstance
Spore-ModAPI - ModAPI SDK v2.5.211

Published by emd4600 about 2 years ago

Terrain update! This update improves and adds many terrain classes like cTerrainSphere, cTerrainSphereQuad and cTerrainShaderMgr, including some of their rendering methods, like cTerrainSphereQuad::RenderWater. This update also completes the TextureManager class and improves the RenderTargetManager, allowing you to do more complex rendering.

And there's even more! To make modding the terrain easier, I've reconstructed some terrain rendering methods' source code: https://emd4600.github.io/Spore-ModAPI/_source_code-_terrain.html
For those interested in adding new star types, some star-related functions have also been reconstructed: https://emd4600.github.io/Spore-ModAPI/_source_code-_simulator.html

Added the following classes:

  • Terrain::cTerrainShaderMgr
  • Graphics::cBufferDraw, a convenience class that can be used to draw rectangles (for example, to draw textures)
  • Graphics::RenderStatistics
  • Graphics::cImageDataRaw

Improved the following classes:

  • Terrain::cTerrainSphere and Terrain::cTerrainSphereQuad, both with many rendering functions that can be detoured.
  • Simulator::cCelestialBody can be instantiated now
  • Graphics::ITextureManager, now it's completely finished!
  • Graphics:I:RenderTargetManager
  • Terrain::cTerrainStateMgr::TerrainTextures

Added new functions:

  • Many functions in the Terrain namespace, related with rendering.
  • App::cViewer: SetViewWindow(), SetViewOffset(), SetViewport(), SetPerspectiveProjection(), SetParallelProjection(), Dispose()
  • Graphics::Texture: IsLoaded(), GetLoadedRaster()
  • Simulator::cBadgeManager: AddToBadgeProgress()
  • Simulator::cPlanetRecord: GetPerihelion()
  • Simulator::cSolarSystem: LoadBinaryStar(), LoadAsteroids()
  • Simulator::cStar: GetStarType(), IsBinaryStar(), IsStarOrBinaryStar(), GetName()
  • Math: IntRectangle