sotn-decomp
sotn-decomp copied to clipboard
Prologue stage and Dracula: Remove the legacy .ext.generic
What
In the past we used a structure for our Entity system that held all the unknown values. Later on we found the last 0x40 bytes are a reserved memory area for each entity to store their custom values. After a few proposals #187, #188, #195 we decided to come with a pattern where all this reserved areas for each entity will fall into their respective unique struct found in include/entity.h with ET_ as a prefix. This approach was never retroactively applied to the already decompiled entities, which are now using the structure ET_Generic and used as .ext.generic. This is legacy and it is creating unnecessary coupling to a dying structure.
This is an opportunity to learn how the Prologue stage and Dracula work in Symphony of the Night. You will have the freedom of documenting what an entity does and take ownership of each entity function.
Acceptance criteria
For the overlay ST0 and all the files under src/st/st0, remove any reference to .ext.generic and use dedicated structures for the entity. No union or weird casts should to be used with the new structures.
Only one left in EntityCutscene