sotn-decomp/config/symbols.us.stcen.txt
Luciano Ciccariello 7a5baed841
Share more code and data between stage overlays (#1281)
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`.
2024-06-08 20:34:58 +01:00

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;