sotn-decomp/config/symbols.us.stst0.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

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;