Skip to content

Commit

Permalink
Change PfnEntityUpdates to use OVL_EXPORT
Browse files Browse the repository at this point in the history
  • Loading branch information
Xeeynamo committed Oct 10, 2024
1 parent 68ba4e4 commit 2a5b52c
Show file tree
Hide file tree
Showing 53 changed files with 78 additions and 41 deletions.
4 changes: 2 additions & 2 deletions config/splat.us.strwrp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ segments:
- [0x91C0, c, rwrp/warp]
- [0xA168, c, wrp/st_update]
- [0xA59C, c, wrp/collision]
- [0xBD58, c, wrp/create_entity]
- [0xBD58, c, rwrp/create_entity]
- [0xC8D0, c, wrp/e_red_door]
- [0xD580, c, wrp/st_common]
- [0xEA30, c, wrp/e_collect]
Expand All @@ -87,7 +87,7 @@ segments:
- [0x14DD4, c, wrp/e_room_fg]
- [0x14EC0, c, wrp/popup]
- [0x151F0, c, wrp/prim_helpers]
- [0x15A20, .bss, wrp/create_entity]
- [0x15A20, .bss, rwrp/create_entity]
- [0x15A36, .bss, rwrp/bss]
- [0x166A8, .bss, wrp/e_collect]
- [0x166E8]
2 changes: 1 addition & 1 deletion config/symbols.stmad.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
g_pStTilesetDebug = 0x80180290;
MAD_gfxBanks = 0x801802A4;
g_pStObjLayoutHorizontal = 0x801802F4;
PfnEntityUpdates = 0x8018049C;
MAD_EntityUpdates = 0x8018049C;
g_eBreakableInit = 0x801804F0;
g_InitDataEnt13 = 0x8018052C;
g_eInitGeneric2 = 0x80180544;
Expand Down
2 changes: 1 addition & 1 deletion config/symbols.us.stdre.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
DRE_gfxBanks = 0x801801D0;
PfnEntityUpdates = 0x801803C8;
DRE_EntityUpdates = 0x801803C8;
g_eBreakableInit = 0x80180458;
g_InitializeData0 = 0x80180464;
g_InitializeEntityData0 = 0x80180470;
Expand Down
2 changes: 1 addition & 1 deletion config/symbols.us.stno3.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
PfnEntityUpdates = 0x80180924;
NO3_EntityUpdates = 0x80180924;
g_eBreakableInit = 0x80180AAC;
g_InitializeData0 = 0x80180AB8;
g_InitializeEntityData0 = 0x80180AC4;
Expand Down
2 changes: 1 addition & 1 deletion config/symbols.us.stst0.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
g_EntityGfxs = 0x801802C4;
PfnEntityUpdates = 0x801804BC;
ST0_EntityUpdates = 0x801804BC;
g_eBreakableInit = 0x80180574;
g_InitializeData0 = 0x80180580;
g_InitializeEntityData0 = 0x8018058C;
Expand Down
6 changes: 0 additions & 6 deletions include/stage.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,6 @@ extern LayoutEntity* g_pStObjLayoutVertical[];

#endif

#if defined(VERSION_PSP)
extern PfnEntityUpdate* PfnEntityUpdates;
#else
extern PfnEntityUpdate PfnEntityUpdates[];
#endif

extern u16 g_ItemIconSlots[32];

/*
Expand Down
2 changes: 2 additions & 0 deletions src/boss/mar/create_entity.c
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "mar.h"
#include "../../st/pfn_entity_update.h"
#include "../../st/create_entity.h"
3 changes: 2 additions & 1 deletion src/boss/mar/cutscene.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include <stage.h>
#include "mar.h"
#include "../../st/pfn_entity_update.h"
#include <cutscene.h>

#include "mar.h"
Expand Down
2 changes: 1 addition & 1 deletion src/boss/mar/e_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ void OVL_EXPORT(EntityCutscene)(Entity* self);
void func_us_8018C90C(Entity* self);
void func_us_8018CA94(Entity* self);

PfnEntityUpdate PfnEntityUpdates[] = {
PfnEntityUpdate OVL_EXPORT(EntityUpdates)[] = {
EntityBreakable, EntityExplosion,
EntityPrizeDrop, EntityDamageDisplay,
EntityRedDoor, EntityIntenseExplosion,
Expand Down
1 change: 1 addition & 0 deletions src/boss/mar/e_misc.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "mar.h"
#include "../../st/pfn_entity_update.h"

void EntityUnkId13(Entity* self);
void EntityUnkId14(Entity* self);
Expand Down
1 change: 1 addition & 0 deletions src/pc/sotn.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ u16 g_RawVram[VRAM_W * VRAM_H];
GameApi g_ApiInit = {0};
u8 g_DemoRecordingBuffer[DEMO_MAX_LEN];
extern bool g_IsQuitRequested;
PfnEntityUpdate* PfnEntityUpdates;

ServantDesc D_80170000;

Expand Down
3 changes: 3 additions & 0 deletions src/pc/stages/stage_cen.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ u8 D_8018199C[8356];
u8 D_80185830[3420];

extern Overlay OVL_EXPORT(Overlay);
extern PfnEntityUpdate* PfnEntityUpdates;
extern PfnEntityUpdate OVL_EXPORT(EntityUpdates)[];
void InitStageCEN(Overlay* o) {
LoadReset();
LOAD_ASSET("assets/st/cen/D_8018658C.bin", D_8018658C);
Expand All @@ -29,4 +31,5 @@ void InitStageCEN(Overlay* o) {
LOAD_ASSET("assets/st/cen/D_8018199C.bin", D_8018199C);
LOAD_ASSET("assets/st/cen/D_80185830.bin", D_80185830);
memcpy(o, &OVL_EXPORT(Overlay), sizeof(Overlay));
// PfnEntityUpdates = OVL_EXPORT(EntityUpdates);
}
3 changes: 3 additions & 0 deletions src/pc/stages/stage_wrp.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,13 @@ u32 D_80181420[836];
u16 D_80181D08[48];

extern Overlay OVL_EXPORT(Overlay);
extern PfnEntityUpdate* PfnEntityUpdates;
extern PfnEntityUpdate OVL_EXPORT(EntityUpdates)[];
void InitStageWRP(Overlay* o) {
LoadReset();
LOAD_ASSET("assets/st/wrp/D_80181D08.bin", D_80181D08);
LOAD_ASSET("assets/st/wrp/D_80181420.bin", D_80181420);
LOAD_ASSET("assets/st/wrp/D_80181764.bin", D_80181764);
memcpy(o, &OVL_EXPORT(Overlay), sizeof(Overlay));
PfnEntityUpdates = OVL_EXPORT(EntityUpdates);
}
2 changes: 0 additions & 2 deletions src/st/cen/cen.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ u16 GetNormalizedAngle(u16 arg0, u16 arg1, u16 arg2);
void EntityUnkId14(Entity* entity);
void EntityGreyPuff(Entity* entity);

extern PfnEntityUpdate PfnEntityUpdates[];

/*** Initializers ***/
extern u16 D_80180404[];
extern u16 g_InitializeData0[];
Expand Down
3 changes: 2 additions & 1 deletion src/st/cen/create_entity.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: AGPL-3.0-or-later

#include "cen.h"
#include "../pfn_entity_update.h"
#include "../create_entity.h"
1 change: 1 addition & 0 deletions src/st/cen/cutscene.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "cen.h"
#include "../pfn_entity_update.h"
#include <cutscene.h>

// Bizarre variable - u8 here, but u16 in EntityHeartDrop
Expand Down
2 changes: 1 addition & 1 deletion src/st/cen/e_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ void EntityElevatorStationary(Entity*);
void EntityUnkId1B(Entity*);
void EntityMovingElevator(Entity*);

PfnEntityUpdate PfnEntityUpdates[] = {
PfnEntityUpdate OVL_EXPORT(EntityUpdates)[] = {
EntityBreakable, EntityExplosion,
EntityPrizeDrop, EntityDamageDisplay,
EntityRedDoor, EntityIntenseExplosion,
Expand Down
1 change: 1 addition & 0 deletions src/st/cen/e_misc.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "cen.h"
#include "../pfn_entity_update.h"

#define HEART_DROP_CASTLE_FLAG 0xC0

Expand Down
3 changes: 2 additions & 1 deletion src/st/dre/create_entity.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include <types.h>
#include "dre.h"
#include "../pfn_entity_update.h"

u32 D_801A3264[24];

Expand Down
1 change: 1 addition & 0 deletions src/st/dre/cutscene.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "dre.h"
#include "../pfn_entity_update.h"
#include <cutscene.h>

#include "../cutscene_unk1.h"
Expand Down
1 change: 0 additions & 1 deletion src/st/dre/dre.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ extern u16 g_InitializeEntityData0[];
extern u16 g_eInitGeneric2[];
extern u16 D_801804F4[];
extern s8 c_HeartPrizes[];
extern PfnEntityUpdate PfnEntityUpdates[];
extern u16 D_801804E8[];
extern u16 D_8018050C[];
extern u16 D_80180528[];
Expand Down
1 change: 1 addition & 0 deletions src/st/dre/e_misc.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "dre.h"
#include "../pfn_entity_update.h"

#define HEART_DROP_CASTLE_FLAG 0x118
#include "../e_misc.h"
2 changes: 1 addition & 1 deletion src/st/mad/create_entity.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "mad.h"

#include "../pfn_entity_update.h"
#include "../create_entity.h"
1 change: 1 addition & 0 deletions src/st/mad/e_misc.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "mad.h"
#include "../pfn_entity_update.h"

#define HEART_DROP_CASTLE_FLAG 0
#include "../e_misc.h"
1 change: 0 additions & 1 deletion src/st/mad/mad.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ extern u8 g_UnkEntityAnimData[];
// extern u16 g_testCollPrizeTable[];
// extern u16 g_testCollRandTable;
extern RoomHeader g_rooms[];
extern PfnEntityUpdate PfnEntityUpdates[];

extern u16 g_eBreakableInit[];
extern u8* g_eBreakableAnimations[8];
Expand Down
3 changes: 2 additions & 1 deletion src/st/make_entity_from_id.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
extern PfnEntityUpdate PfnEntityUpdates[];
#include "pfn_entity_update.h"

void MakeEntityFromId(u16 entityId, Entity* src, Entity* dst) {
DestroyEntity(dst);
dst->entityId = entityId;
Expand Down
3 changes: 2 additions & 1 deletion src/st/no3/create_entity.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include <common.h>
#include "no3.h"
#include "../pfn_entity_update.h"

STATIC_PAD_BSS(96);

Expand Down
1 change: 1 addition & 0 deletions src/st/no3/cutscene.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "no3.h"
#include "../pfn_entity_update.h"
#include <cutscene.h>

static const char* actor_names[] = {_S("Alucard"), _S("Death")};
Expand Down
1 change: 1 addition & 0 deletions src/st/no3/e_misc.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "no3.h"
#include "../pfn_entity_update.h"

#define HEART_DROP_CASTLE_FLAG 0x30
#include "../e_misc.h"
2 changes: 0 additions & 2 deletions src/st/no3/no3.h
Original file line number Diff line number Diff line change
Expand Up @@ -243,8 +243,6 @@ extern s32 D_801D7D54;
extern s32 D_801D7D58;
extern u32 g_CutsceneFlags;

extern PfnEntityUpdate PfnEntityUpdates[];

// *** EntityFireWarg properties START ***

extern Entity D_8007A958;
Expand Down
2 changes: 1 addition & 1 deletion src/st/np3/4B018.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ void EntityOwl(Entity* self) {
}
switch (self->step) {
case 0:
InitializeEntity(&D_80180B2C);
InitializeEntity(D_80180B2C);
// Turns out the knight is spawned from the owl. Neat!
CreateEntityFromEntity(E_OWL_KNIGHT, self, KNIGHT);
CreateEntityFromEntity(E_801CD620, self, self + 3);
Expand Down
2 changes: 2 additions & 0 deletions src/st/np3/create_entity.c
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "np3.h"
#include "../pfn_entity_update.h"
#include "../create_entity.h"
4 changes: 2 additions & 2 deletions src/st/np3/e_init.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include <stage.h>
#include "np3.h"

void EntityBreakable(Entity* self);
void EntityExplosion(Entity* self);
Expand Down Expand Up @@ -93,7 +93,7 @@ void EntityGurkhaSword(Entity* self);
void EntityBlade(Entity* self);
void EntityBladeSword(Entity* self);

PfnEntityUpdate PfnEntityUpdates[] = {
PfnEntityUpdate OVL_EXPORT(EntityUpdates)[] = {
EntityBreakable,
EntityExplosion,
EntityPrizeDrop,
Expand Down
1 change: 1 addition & 0 deletions src/st/np3/e_misc.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "np3.h"
#include "../pfn_entity_update.h"

#define HEART_DROP_CASTLE_FLAG 0x30
#include "../e_misc.h"
3 changes: 1 addition & 2 deletions src/st/np3/np3.h
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,6 @@ extern u8 D_8018267C[]; // Animation: Walking faster
extern s32 D_8018268C;
extern s32 D_801826A4;
extern s32 D_801826C4;
extern PfnEntityUpdate PfnEntityUpdates[];
extern u8 D_80182914[];
extern u8 D_80182935[];

Expand Down Expand Up @@ -333,7 +332,7 @@ extern s16 D_801833A0[];
extern s16 D_801833CC[];

// For EntityOwl
extern u16 D_80180B2C;
extern u16 D_80180B2C[];
extern u16 D_801826CC[];
extern u8 D_801826EC[];
extern u8 D_801826F8[];
Expand Down
3 changes: 2 additions & 1 deletion src/st/nz0/create_entity.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include <types.h>
#include "nz0.h"
#include "../pfn_entity_update.h"

u32 D_801CAA14[24];

Expand Down
1 change: 1 addition & 0 deletions src/st/nz0/cutscene.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "nz0.h"
#include "../pfn_entity_update.h"

static const char* actor_names[] = {_S("Alucard"), _S("Maria")};

Expand Down
2 changes: 1 addition & 1 deletion src/st/nz0/e_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ void NZ0_EntityCutscene(Entity*);
void EntityMaria(Entity*);
void func_801B8E0C(Entity*);

PfnEntityUpdate PfnEntityUpdates[] = {
PfnEntityUpdate OVL_EXPORT(EntityUpdates)[] = {
EntityBreakableNZ0,
EntityExplosion,
EntityPrizeDrop,
Expand Down
1 change: 1 addition & 0 deletions src/st/nz0/e_misc.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "nz0.h"
#include "../pfn_entity_update.h"

#define HEART_DROP_CASTLE_FLAG 0xF8
#include "../e_misc.h"
1 change: 0 additions & 1 deletion src/st/nz0/nz0.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ void EntityGreyPuff(Entity* entity);
void func_801C4CC0(void);

extern u8 D_8003BE6F[];
extern PfnEntityUpdate PfnEntityUpdates[];
extern u16 g_InitializeEntityData0[];
extern u16 g_EInitGeneric[]; // Init Elevator2
extern u16 g_eInitGeneric2[];
Expand Down
11 changes: 11 additions & 0 deletions src/st/pfn_entity_update.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// SPDX-License-Identifier: AGPL-3.0-or-later

// NOTE: include this AFTER the stage entity is included
// this is to ensure OVL_EXPORT is defined

#if defined(VERSION_PSP) || defined(VERSION_PC)
extern PfnEntityUpdate* PfnEntityUpdates;
#else
extern PfnEntityUpdate OVL_EXPORT(EntityUpdates)[];
#define PfnEntityUpdates OVL_EXPORT(EntityUpdates)
#endif
4 changes: 4 additions & 0 deletions src/st/rwrp/create_entity.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "rwrp.h"
#include "../pfn_entity_update.h"
#include "../create_entity.h"
2 changes: 1 addition & 1 deletion src/st/rwrp/e_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ void EntityGreyPuff(Entity*);
void EntityRWarpRoom(Entity*);
void EntityWarpSmallRocks(Entity*);
void EntityPrizeDrop(Entity*);
PfnEntityUpdate PfnEntityUpdates[] = {
PfnEntityUpdate OVL_EXPORT(EntityUpdates)[] = {
EntityBreakable, EntityExplosion, EntityPrizeDrop,
EntityDamageDisplay, EntityRedDoor, EntityIntenseExplosion,
EntitySoulStealOrb, EntityRoomForeground, EntityStageNamePopup,
Expand Down
1 change: 1 addition & 0 deletions src/st/rwrp/e_misc.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include "rwrp.h"
#include "../pfn_entity_update.h"

#define HEART_DROP_CASTLE_FLAG 0x2F8
#include "../e_misc.h"
8 changes: 5 additions & 3 deletions src/st/st0/create_entity.c
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
#include <types.h>
#include <game.h>

u32 D_801BEB00[25];
u32 D_801BEB64;
u32 D_801BEB68[165];
Point32 D_801BEB64[0x53];
u32 D_801BEDFC;
u32 D_801BEE00;
u32 D_801BEE04;
u16 D_801BEE08[2];
u16 D_801BEE0C[66];
u16 D_801BEE90[2312];

// HACK move the header inclusion at the end to not scrable the BSS variables
#include "st0.h"
#include "../pfn_entity_update.h"
#include "../create_entity.h"
Loading

0 comments on commit 2a5b52c

Please sign in to comment.