mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-23 13:09:44 +00:00
7a5baed841
Given the fact that sharing compiled C objects is not exactly possible
(code heavily copy&pasted maybe? this initiative is now abandoned 👉
53a566f075
)
I decided to keep pressing forward with shared headers. Thanks a lot to
@hohle for making our life much easier by cross-referencing symbols.
The file split on WRP seems to be the closest file split we might have
compared to the original source code (still speculating here). I think
it would be a good idea to start splitting other overlays too with the
same approach.
My idea is to have a file split like the following:
```
st/
cen/
e_particles.c
e_misc.c
st_common.c
nz0/
e_particles.c
e_misc.c
st_common.c
wrp/
e_particles.c
e_misc.c
st_common.c
e_particles.h
e_misc.h
st_common.h
```
each of those C files will just be a one-line `#include
"../the_shared_code.h"` as usual. Right now we create individual headers
for single functions, sometimes for more than one function when we think
grouping makes sense. But I think we can start merging some of those
headers and consolidate the code. This can be done gradually. For
example `src/st/e_particles.h` is still importing function headers under
the hood. That is okay for now, but later on I wish to import those
headers functions into their respective parent headers.
Another important aspect to consider that will validate a correct file
split is to start importing the data inside these new C files. Right now
we have floating data such as `src/st/wrp_psp/wrp_data_EA00.c` or
monstrosities such as `src/st/wrp/6FD0.c`. An example of a (possibly)
correct migrated data is what this PR does with WRP PSP and NZ0 PSX,
with data pointing in `src/st/*/e_particles.c`.
89 lines
2.8 KiB
Plaintext
89 lines
2.8 KiB
Plaintext
g_SpriteBanks = 0x80180040;
|
|
g_pStObjLayoutHorizontal = 0x80180314;
|
|
g_pStObjLayoutVertical = 0x801803E8;
|
|
PfnEntityUpdates = 0x801804BC;
|
|
g_InitializeData0 = 0x80180580;
|
|
g_InitializeEntityData0 = 0x8018058C;
|
|
g_InitDataEnt13 = 0x801805A4;
|
|
g_eInitGeneric2 = 0x801805BC;
|
|
g_eDamageDisplayInit = 0x801805C8;
|
|
g_eRedDoorTiles = 0x8018064C;
|
|
g_isSecretStairsButtonPressed = 0x8018089C;
|
|
g_isDraculaFirstFormDefeated = 0x8018090C;
|
|
UNK_Invincibility0 = 0x801815EC;
|
|
c_GoldPrizes = 0x80181CF0;
|
|
g_ExplosionYVelocities = 0x80181D7C;
|
|
g_bigRedFireballAnim = 0x80181DA4;
|
|
g_ExplosionAnimations = 0x80181E28;
|
|
g_eUnk14SpawnRots = 0x80181EA0;
|
|
unk15_rot = 0x80181EB0;
|
|
unk15_yVel = 0x80181EC0;
|
|
unk14_yVel = 0x80181ED8;
|
|
unk14_startFrame = 0x80181EF0;
|
|
unk14_lifetime = 0x80181EF4;
|
|
g_olroxDroolCollOffsets = 0x80181EFC;
|
|
g_ESoulStealOrbAngles = 0x80181F54;
|
|
g_ESoulStealOrbSprt = 0x80181F64;
|
|
g_ESoulStealOrbAnim = 0x80181FC4;
|
|
g_Rooms = 0x80182060;
|
|
D_80183D1C = 0x80183D1C;
|
|
D_80197F80 = 0x80197F80;
|
|
D_8019A40C = 0x8019A40C;
|
|
c_HeartPrizes = 0x801A7C84;
|
|
g_UnkPrimHelperRot = 0x801A7D3C;
|
|
EntityLockCamera = 0x801A7EB0;
|
|
EntityDialogue = 0x801A9210;
|
|
EntityCutscene = 0x801AA290;
|
|
EntitySecretButton = 0x801AA8DC;
|
|
EntitySecretStairsCeiling = 0x801AABA4;
|
|
EntitySecretStairs = 0x801AACB4;
|
|
EntityStageTitleFadeout = 0x801AB0C8;
|
|
EntityStageTitleCard = 0x801AB5E4;
|
|
EntityDracula = 0x801AC564;
|
|
EntityDraculaBody = 0x801AD430;
|
|
EntityDraculaFireball = 0x801AD530;
|
|
EntityDraculaMeteorball = 0x801AD658;
|
|
EntityDraculaGlass = 0x801AD8C0;
|
|
EntityDraculaFinalForm = 0x801ADD60;
|
|
EntityDraculaMegaFireball = 0x801AEFD8;
|
|
EntityDraculaRainAttack = 0x801AF154;
|
|
SetGameState = 0x801B0030;
|
|
Random = 0x801B186C;
|
|
Update = 0x801B189C;
|
|
UpdateStageEntities = 0x801B1B98;
|
|
HitDetection = 0x801B1CA0;
|
|
EntityDamageDisplay = 0x801B2A3C;
|
|
InitRoomEntities = 0x801B393C;
|
|
UpdateRoomPosition = 0x801B3AB4;
|
|
CreateEntityFromCurrentEntity = 0x801B3B68;
|
|
EntityRedDoor = 0x801B3CD0;
|
|
DestroyEntity = 0x801B4908;
|
|
DestroyEntitiesFromIndex = 0x801B4974;
|
|
GetSideToPlayer = 0x801B4C78;
|
|
MoveEntity = 0x801B4CBC;
|
|
FallEntity = 0x801B4CEC;
|
|
AllocEntity = 0x801B53CC;
|
|
SetStep = 0x801B5794;
|
|
InitializeEntity = 0x801B584C;
|
|
EntityDummy = 0x801B5948;
|
|
EntityPrizeDrop = 0x801B6358;
|
|
EntityExplosion = 0x801B6B60;
|
|
EntityEquipItemDrop = 0x801B6D34;
|
|
EntityUnkId13 = 0x801B7BFC;
|
|
EntityUnkId14 = 0x801B7F24;
|
|
EntityUnkId15 = 0x801B8014;
|
|
EntityIntenseExplosion = 0x801B89B4;
|
|
EntitySoulStealOrb = 0x801B9EA8;
|
|
EntityRoomForeground = 0x801BA6EC;
|
|
EntityClouds = 0x801BAB08;
|
|
EntityClockTower3D = 0x801BB2AC;
|
|
EntityCutscenePhotograph = 0x801BB764;
|
|
EntityCutscenePhotographFire = 0x801BC4D0;
|
|
EntityBackgroundVortex = 0x801BE1B4;
|
|
g_LayoutObjHorizontal = 0x801C00A0;
|
|
g_LayoutObjVertical = 0x801C00A4;
|
|
g_LayoutObjPosHorizontal = 0x801C00A8;
|
|
g_LayoutObjPosVertical = 0x801C00AC;
|
|
g_Dialogue = 0x801C24CC;
|
|
g_ItemIconSlots = 0x801C2584;
|