So far, all Heroes mods and projects have their own copy of the code used to interact with the game, be it structs, function declarations or other helper methods. Ideally, for a big project, and the future of Heroes modding a single, easy to use API should be formed.
So far, all Heroes mods and projects have their own copy of the code used to interact with the game, be it structs, function declarations or other helper methods. Ideally, for a big project, and the future of Heroes modding a single, easy to use API should be formed.
Code to Start API from:
CRI
https://github.com/Sewer56/CriFsHook.ReloadedII : Whole CRI folder, i.e.
FileTable.cs
,FileTableFactory.cs
Graphics
https://github.com/Sewer56/Heroes.Graphics.Essentials.ReloadedII :
Heroes.Graphics.Essentials.Unoptimized
andHeroes.Graphics.Essentials/Heroes/
Hints
https://github.com/Sewer56/Heroes.Hint.Editor/tree/master/Heroes.Hint.Library
Entry.cs
(Hint Files)Colours
https://github.com/Sewer56/Heroes.Colourizer/tree/master/Heroes.Fun.AuraColorizer/Heroes : RGBA Colour Struct
https://github.com/Sewer56/Heroes.Colourizer/blob/master/Heroes.Fun.AuraColorizer/Collections/BarrierColours.cs Barrier Colours
https://github.com/Sewer56/Heroes.Colourizer/tree/master/Heroes.Fun.AuraColorizer/Enums Various Colours
Physics
https://github.com/Sewer56/Adventure.Physics.Swap/blob/bca688a5ea749279343758bd29cd9d3c5ca6b4f9/Adventure.Physics.Swap.ReloadedII/PhysicsMod.cs#L51 Physics Addresses
https://github.com/Sewer56/Adventure.Physics.Swap/blob/master/Adventure.Physics.Swap.Shared/Structs/AdventurePhysics.cs Physics Struct (Convert back to struct)
Freecam
https://github.com/Sewer56/Heroes.Freecam.ReloadedII/tree/master/sonicheroes.utils.freecam/Structs Character Pointers and Camera API
Controller/Input
https://github.com/Sewer56/Heroes.Controller.Hook.ReloadedII/tree/master/Heroes.Controller.Hook/Heroes This folder.
Stage Loading/Injection
https://github.com/Sewer56/Heroes.StageInjector.ReloadedII/tree/master/sonicheroes.utils.stageinjection.common Spline structures, spawn positions.
Collision
https://github.com/Sewer56/HeroesPowerPlant.RemoteControl.ReloadedII/tree/master/HeroesPowerPlant.RemoteControl/Functions Realtime Unload/Reload
Timers, Some Game Control Stuff
https://github.com/Sewer56/SonicHeroes.Utils.DiscordRPC.ReloadedII/tree/master/sonicheroes.utils.discordrpc/Heroes/
https://github.com/Sewer56/SonicHeroes.Utils.DiscordRPC.ReloadedII/blob/dbf32fd46b0b6a3abf9ceb88fd05f74158ded572/sonicheroes.utils.discordrpc/Heroes/Heroes.cs#L68
RenderWare Versioning
https://github.com/Sewer56/TONERR.ReloadedII/blob/master/sonicheroes.utils.toner/RenderWare/RwVersion.cs
Complete ONE Archive Class
https://github.com/Sewer56/TONERR.ReloadedII/tree/master/sonicheroes.utils.toner/Heroes/One
Including ONE Parser that can parse from file or memory. (HeroesONE-R needs to integrate to that parser)
Particle Systems?
These would be fun to hijack. There's some code for these in HeroesPowerPlant. https://github.com/igorseabra4/HeroesPowerPlant/blob/aa426c74e367d2305a50a685863d9bbdefdc373c/HeroesPowerPlant/ParticleEditor/Particle.cs
Might be worth porting over and seeing if it's possible to hijack those ingame.
SCHG
Anything in this age old page here http://info.sonicretro.org/SCHG:Sonic_Heroes/EXE_Editing