mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-27 06:50:35 +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`.
80 lines
2.4 KiB
Plaintext
80 lines
2.4 KiB
Plaintext
g_SpriteBanks = 0x80180040;
|
|
g_pStObjLayoutHorizontal = 0x801801EC;
|
|
g_pStObjLayoutVertical = 0x801802C0;
|
|
PfnEntityUpdates = 0x80180394;
|
|
g_InitializeData0 = 0x80180410;
|
|
g_InitializeEntityData0 = 0x8018041C;
|
|
g_EInitGeneric = 0x80180434;
|
|
g_InitDataEnt13 = 0x80180440;
|
|
g_eInitGeneric2 = 0x80180458;
|
|
g_eDamageDisplayInit = 0x80180464;
|
|
g_eRedDoorTiles = 0x801804A4;
|
|
UNK_Invincibility0 = 0x801807B8;
|
|
g_goldCollectTexts = 0x80180F30;
|
|
c_GoldPrizes = 0x80180F58;
|
|
c_HeartPrizes = 0x80180FE8;
|
|
g_ExplosionYVelocities = 0x80180FEC;
|
|
g_bigRedFireballAnim = 0x80181014;
|
|
g_ExplosionAnimations = 0x80181098;
|
|
g_eUnk14SpawnRots = 0x80181110;
|
|
unk15_rot = 0x80181120;
|
|
unk15_yVel = 0x80181130;
|
|
unk14_yVel = 0x80181148;
|
|
unk14_startFrame = 0x80181160;
|
|
unk14_lifetime = 0x80181164;
|
|
g_olroxDroolCollOffsets = 0x8018116C;
|
|
g_ESoulStealOrbAngles = 0x801811C8;
|
|
g_ESoulStealOrbSprt = 0x801811D8;
|
|
g_ESoulStealOrbAnim = 0x80181238;
|
|
g_Rooms = 0x801812D4;
|
|
g_UnkPrimHelperRot = 0x8018D5F8;
|
|
EntityBackgroundBlock = 0x8018D600;
|
|
EntityUnkId12 = 0x8018D6E0;
|
|
EntityUnkId01 = 0x8018D89C;
|
|
EntityUnkId16 = 0x8018E7C8;
|
|
EntityPlatform = 0x8018F95C;
|
|
EntityRoomDarkness = 0x8019007C;
|
|
EntityMaria = 0x80190374;
|
|
EntityElevatorStationary = 0x80190540;
|
|
EntityUnkId1B = 0x80190A78;
|
|
EntityMovingElevator = 0x80190B64;
|
|
Update = 0x80190E7C;
|
|
UpdateStageEntities = 0x80191178;
|
|
HitDetection = 0x80191280;
|
|
EntityDamageDisplay = 0x80192398;
|
|
InitRoomEntities = 0x80193298;
|
|
UpdateRoomPosition = 0x80193410;
|
|
EntityRedDoor = 0x8019362C;
|
|
DestroyEntity = 0x80194264;
|
|
AnimateEntity = 0x80194394;
|
|
MoveEntity = 0x80194618;
|
|
FallEntity = 0x80194648;
|
|
SetStep = 0x80194EA4;
|
|
InitializeEntity = 0x80194F74;
|
|
CollectHeart = 0x801958F4;
|
|
CollectGold = 0x80195974;
|
|
CollectSubweapon = 0x80195A50;
|
|
CollectHeartVessel = 0x80195B68;
|
|
EntityPrizeDrop = 0x80195C84;
|
|
EntityExplosion = 0x801964F8;
|
|
BlinkItem = 0x801965F4;
|
|
EntityEquipItemDrop = 0x80196698;
|
|
EntityRelicOrb = 0x80196F30;
|
|
EntityHeartDrop = 0x80197A00;
|
|
EntityMessageBox = 0x80197B28;
|
|
EntityUnkId13 = 0x80198174;
|
|
EntityUnkId14 = 0x8019849C;
|
|
EntityUnkId15 = 0x8019858C;
|
|
EntityIntenseExplosion = 0x80198F2C;
|
|
EntityStageNamePopup = 0x8019A5F0;
|
|
EntitySoulStealOrb = 0x8019B274;
|
|
EntityEnemyBlood = 0x8019B608;
|
|
EntityUnkId08 = 0x8019BAB8;
|
|
BottomCornerText = 0x8019BBA4;
|
|
g_LayoutObjHorizontal = 0x8019C764;
|
|
g_LayoutObjVertical = 0x8019C768;
|
|
g_LayoutObjPosHorizontal = 0x8019C76C;
|
|
g_LayoutObjPosVertical = 0x8019C770;
|
|
g_Dialogue = 0x8019D378;
|
|
g_ItemIconSlots = 0x8019D42C;
|