mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-04 15:04:31 +00:00
Use Romfile in place of vromStart and vromEnd in structs (#1742)
* KaleidoMgrOverlay * GameStateOverlay * ActorOverlay * EffectSsOverlay * MapMarkDataOverlay * Missed DEFINE_ACTOR_UNSET * ROM_FILE_UNSET * DEFINE_OBJECT_EMPTY * DmaEntry * ACTOR_UNSET * romfile.h * newline * Format
This commit is contained in:
parent
7a2c46d4eb
commit
1b60dcf6dd
18 changed files with 126 additions and 118 deletions
|
@ -6,24 +6,24 @@ u32 gObjectTableSize = ARRAY_COUNT(gObjectTable);
|
|||
|
||||
// Object linker symbol declarations (used in the table below)
|
||||
#define DEFINE_OBJECT(name, _1) DECLARE_ROM_SEGMENT(name)
|
||||
#define DEFINE_OBJECT_NULL(_0, _1)
|
||||
#define DEFINE_OBJECT_EMPTY(_0, _1)
|
||||
#define DEFINE_OBJECT_UNSET(_0)
|
||||
|
||||
#include "tables/object_table.h"
|
||||
|
||||
#undef DEFINE_OBJECT
|
||||
#undef DEFINE_OBJECT_NULL
|
||||
#undef DEFINE_OBJECT_EMPTY
|
||||
#undef DEFINE_OBJECT_UNSET
|
||||
|
||||
// Object Table definition
|
||||
#define DEFINE_OBJECT(name, _1) ROM_FILE(name),
|
||||
#define DEFINE_OBJECT_NULL(name, _1) ROM_FILE_EMPTY(name),
|
||||
#define DEFINE_OBJECT_UNSET(_0) { 0 },
|
||||
#define DEFINE_OBJECT_EMPTY(name, _1) ROM_FILE_EMPTY(name),
|
||||
#define DEFINE_OBJECT_UNSET(_0) ROM_FILE_UNSET,
|
||||
|
||||
RomFile gObjectTable[] = {
|
||||
#include "tables/object_table.h"
|
||||
};
|
||||
|
||||
#undef DEFINE_OBJECT
|
||||
#undef DEFINE_OBJECT_NULL
|
||||
#undef DEFINE_OBJECT_EMPTY
|
||||
#undef DEFINE_OBJECT_UNSET
|
||||
|
|
|
@ -10,7 +10,7 @@ void Overlay_LoadGameState(GameStateOverlay* overlayEntry) {
|
|||
if (overlayEntry->vramStart == NULL) {
|
||||
overlayEntry->unk_28 = 0;
|
||||
} else {
|
||||
overlayEntry->loadedRamAddr = Overlay_AllocateAndLoad(overlayEntry->vromStart, overlayEntry->vromEnd,
|
||||
overlayEntry->loadedRamAddr = Overlay_AllocateAndLoad(overlayEntry->file.vromStart, overlayEntry->file.vromEnd,
|
||||
overlayEntry->vramStart, overlayEntry->vramEnd);
|
||||
|
||||
if (overlayEntry->loadedRamAddr == NULL) {
|
||||
|
|
|
@ -2877,8 +2877,8 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos
|
|||
return NULL;
|
||||
}
|
||||
|
||||
Overlay_Load(overlayEntry->vromStart, overlayEntry->vromEnd, overlayEntry->vramStart, overlayEntry->vramEnd,
|
||||
overlayEntry->loadedRamAddr);
|
||||
Overlay_Load(overlayEntry->file.vromStart, overlayEntry->file.vromEnd, overlayEntry->vramStart,
|
||||
overlayEntry->vramEnd, overlayEntry->loadedRamAddr);
|
||||
|
||||
PRINTF(VT_FGCOL(GREEN));
|
||||
PRINTF("OVL(a):Seg:%08x-%08x Ram:%08x-%08x Off:%08x %s\n", overlayEntry->vramStart, overlayEntry->vramEnd,
|
||||
|
|
|
@ -26,34 +26,41 @@
|
|||
#if OOT_DEBUG
|
||||
|
||||
#define DEFINE_ACTOR(name, _1, allocType, nameString) \
|
||||
{ (uintptr_t)_ovl_##name##SegmentRomStart, \
|
||||
(uintptr_t)_ovl_##name##SegmentRomEnd, \
|
||||
_ovl_##name##SegmentStart, \
|
||||
_ovl_##name##SegmentEnd, \
|
||||
NULL, \
|
||||
&name##_InitVars, \
|
||||
nameString, \
|
||||
allocType, \
|
||||
0 },
|
||||
{ \
|
||||
ROM_FILE(ovl_##name), \
|
||||
_ovl_##name##SegmentStart, \
|
||||
_ovl_##name##SegmentEnd, \
|
||||
NULL, \
|
||||
&name##_InitVars, \
|
||||
nameString, \
|
||||
allocType, \
|
||||
0, \
|
||||
},
|
||||
|
||||
#define DEFINE_ACTOR_INTERNAL(name, _1, allocType, nameString) \
|
||||
{ 0, 0, NULL, NULL, NULL, &name##_InitVars, nameString, allocType, 0 },
|
||||
#define DEFINE_ACTOR_INTERNAL(name, _1, allocType, nameString) \
|
||||
{ \
|
||||
ROM_FILE_UNSET, NULL, NULL, NULL, &name##_InitVars, nameString, allocType, 0, \
|
||||
},
|
||||
|
||||
#else
|
||||
|
||||
// Actor name is set to NULL in retail builds
|
||||
#define DEFINE_ACTOR(name, _1, allocType, _3) \
|
||||
{ (uintptr_t)_ovl_##name##SegmentRomStart, \
|
||||
(uintptr_t)_ovl_##name##SegmentRomEnd, \
|
||||
_ovl_##name##SegmentStart, \
|
||||
_ovl_##name##SegmentEnd, \
|
||||
NULL, \
|
||||
&name##_InitVars, \
|
||||
NULL, \
|
||||
allocType, \
|
||||
0 },
|
||||
#define DEFINE_ACTOR(name, _1, allocType, _3) \
|
||||
{ \
|
||||
ROM_FILE(ovl_##name), \
|
||||
_ovl_##name##SegmentStart, \
|
||||
_ovl_##name##SegmentEnd, \
|
||||
NULL, \
|
||||
&name##_InitVars, \
|
||||
NULL, \
|
||||
allocType, \
|
||||
0, \
|
||||
},
|
||||
|
||||
#define DEFINE_ACTOR_INTERNAL(name, _1, allocType, _3) { 0, 0, NULL, NULL, NULL, &name##_InitVars, NULL, allocType, 0 },
|
||||
#define DEFINE_ACTOR_INTERNAL(name, _1, allocType, _3) \
|
||||
{ \
|
||||
ROM_FILE_UNSET, NULL, NULL, NULL, &name##_InitVars, NULL, allocType, 0, \
|
||||
},
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -80,7 +87,7 @@ void ActorOverlayTable_LogPrint(void) {
|
|||
PRINTF("RomStart RomEnd SegStart SegEnd allocp profile segname\n");
|
||||
|
||||
for (i = 0, overlayEntry = &gActorOverlayTable[0]; i < (u32)gMaxActorId; i++, overlayEntry++) {
|
||||
PRINTF("%08x %08x %08x %08x %08x %08x %s\n", overlayEntry->vromStart, overlayEntry->vromEnd,
|
||||
PRINTF("%08x %08x %08x %08x %08x %08x %s\n", overlayEntry->file.vromStart, overlayEntry->file.vromEnd,
|
||||
overlayEntry->vramStart, overlayEntry->vramEnd, overlayEntry->loadedRamAddr, &overlayEntry->initInfo->id,
|
||||
overlayEntry->name != NULL ? overlayEntry->name : "?");
|
||||
}
|
||||
|
|
|
@ -12,7 +12,8 @@ void EffectSs_InitInfo(PlayState* play, s32 tableSize) {
|
|||
for (i = 0; i < ARRAY_COUNT(gEffectSsOverlayTable); i++) {
|
||||
overlay = &gEffectSsOverlayTable[i];
|
||||
PRINTF("effect index %3d:size=%6dbyte romsize=%6dbyte\n", i,
|
||||
(uintptr_t)overlay->vramEnd - (uintptr_t)overlay->vramStart, overlay->vromEnd - overlay->vromStart);
|
||||
(uintptr_t)overlay->vramEnd - (uintptr_t)overlay->vramStart,
|
||||
overlay->file.vromEnd - overlay->file.vromStart);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -205,13 +206,13 @@ void EffectSs_Spawn(PlayState* play, s32 type, s32 priority, void* initParams) {
|
|||
return;
|
||||
}
|
||||
|
||||
Overlay_Load(overlayEntry->vromStart, overlayEntry->vromEnd, overlayEntry->vramStart, overlayEntry->vramEnd,
|
||||
overlayEntry->loadedRamAddr);
|
||||
Overlay_Load(overlayEntry->file.vromStart, overlayEntry->file.vromEnd, overlayEntry->vramStart,
|
||||
overlayEntry->vramEnd, overlayEntry->loadedRamAddr);
|
||||
|
||||
PRINTF(VT_FGCOL(GREEN));
|
||||
PRINTF("EFFECT SS OVL:SegRom %08x %08x, Seg %08x %08x, RamStart %08x, type: %d\n", overlayEntry->vromStart,
|
||||
overlayEntry->vromEnd, overlayEntry->vramStart, overlayEntry->vramEnd, overlayEntry->loadedRamAddr,
|
||||
type);
|
||||
PRINTF("EFFECT SS OVL:SegRom %08x %08x, Seg %08x %08x, RamStart %08x, type: %d\n",
|
||||
overlayEntry->file.vromStart, overlayEntry->file.vromEnd, overlayEntry->vramStart,
|
||||
overlayEntry->vramEnd, overlayEntry->loadedRamAddr, type);
|
||||
PRINTF(VT_RST);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,18 +19,15 @@
|
|||
#undef DEFINE_EFFECT_SS_UNSET
|
||||
|
||||
// Effect SS Overlay Table definition
|
||||
#define DEFINE_EFFECT_SS(name, _1) \
|
||||
{ \
|
||||
(uintptr_t)_ovl_##name##SegmentRomStart, \
|
||||
(uintptr_t)_ovl_##name##SegmentRomEnd, \
|
||||
_ovl_##name##SegmentStart, \
|
||||
_ovl_##name##SegmentEnd, \
|
||||
NULL, \
|
||||
&name##_InitVars, \
|
||||
1, \
|
||||
#define DEFINE_EFFECT_SS(name, _1) \
|
||||
{ \
|
||||
ROM_FILE(ovl_##name), _ovl_##name##SegmentStart, _ovl_##name##SegmentEnd, NULL, &name##_InitVars, 1, \
|
||||
},
|
||||
|
||||
#define DEFINE_EFFECT_SS_UNSET(_0) { 0 },
|
||||
#define DEFINE_EFFECT_SS_UNSET(_0) \
|
||||
{ \
|
||||
ROM_FILE_UNSET, NULL, NULL, NULL, NULL, 0, \
|
||||
},
|
||||
|
||||
EffectSsOverlay gEffectSsOverlayTable[] = {
|
||||
#include "tables/effect_ss_table.h"
|
||||
|
|
|
@ -10,22 +10,26 @@
|
|||
#undef DEFINE_GAMESTATE_INTERNAL
|
||||
|
||||
// Gamestate Overlay Table definition
|
||||
#define DEFINE_GAMESTATE_INTERNAL(typeName, enumName) \
|
||||
{ NULL, 0, 0, NULL, NULL, NULL, typeName##_Init, typeName##_Destroy, NULL, NULL, 0, sizeof(typeName##State) },
|
||||
#define DEFINE_GAMESTATE_INTERNAL(typeName, enumName) \
|
||||
{ \
|
||||
NULL, ROM_FILE_UNSET, NULL, NULL, NULL, typeName##_Init, typeName##_Destroy, NULL, NULL, \
|
||||
0, sizeof(typeName##State), \
|
||||
},
|
||||
|
||||
#define DEFINE_GAMESTATE(typeName, enumName, name) \
|
||||
{ NULL, \
|
||||
(uintptr_t)_ovl_##name##SegmentRomStart, \
|
||||
(uintptr_t)_ovl_##name##SegmentRomEnd, \
|
||||
_ovl_##name##SegmentStart, \
|
||||
_ovl_##name##SegmentEnd, \
|
||||
NULL, \
|
||||
typeName##_Init, \
|
||||
typeName##_Destroy, \
|
||||
NULL, \
|
||||
NULL, \
|
||||
0, \
|
||||
sizeof(typeName##State) },
|
||||
{ \
|
||||
NULL, \
|
||||
ROM_FILE(ovl_##name), \
|
||||
_ovl_##name##SegmentStart, \
|
||||
_ovl_##name##SegmentEnd, \
|
||||
NULL, \
|
||||
typeName##_Init, \
|
||||
typeName##_Destroy, \
|
||||
NULL, \
|
||||
NULL, \
|
||||
0, \
|
||||
sizeof(typeName##State), \
|
||||
},
|
||||
|
||||
GameStateOverlay gGameStateOverlayTable[] = {
|
||||
#include "tables/gamestate_table.h"
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
#include "global.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#define KALEIDO_OVERLAY(name, nameString) \
|
||||
{ \
|
||||
NULL, (uintptr_t)_ovl_##name##SegmentRomStart, (uintptr_t)_ovl_##name##SegmentRomEnd, \
|
||||
_ovl_##name##SegmentStart, _ovl_##name##SegmentEnd, 0, nameString, \
|
||||
}
|
||||
#define KALEIDO_OVERLAY(name, nameString) \
|
||||
{ NULL, ROM_FILE(ovl_##name), _ovl_##name##SegmentStart, _ovl_##name##SegmentEnd, 0, nameString, }
|
||||
|
||||
KaleidoMgrOverlay gKaleidoMgrOverlayTable[] = {
|
||||
KALEIDO_OVERLAY(kaleido_scope, "kaleido_scope"),
|
||||
|
@ -20,7 +17,7 @@ void KaleidoManager_LoadOvl(KaleidoMgrOverlay* ovl) {
|
|||
LOG_UTILS_CHECK_NULL_POINTER("KaleidoArea_allocp", sKaleidoAreaPtr, "../z_kaleido_manager.c", 99);
|
||||
|
||||
ovl->loadedRamAddr = sKaleidoAreaPtr;
|
||||
Overlay_Load(ovl->vromStart, ovl->vromEnd, ovl->vramStart, ovl->vramEnd, ovl->loadedRamAddr);
|
||||
Overlay_Load(ovl->file.vromStart, ovl->file.vromEnd, ovl->vramStart, ovl->vramEnd, ovl->loadedRamAddr);
|
||||
|
||||
PRINTF(VT_FGCOL(GREEN));
|
||||
PRINTF("OVL(k):Seg:%08x-%08x Ram:%08x-%08x Off:%08x %s\n", ovl->vramStart, ovl->vramEnd, ovl->loadedRamAddr,
|
||||
|
|
|
@ -16,8 +16,7 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
/* 0x00 */ void* loadedRamAddr; // original name: "allocp"
|
||||
/* 0x04 */ uintptr_t vromStart;
|
||||
/* 0x08 */ uintptr_t vromEnd;
|
||||
/* 0x04 */ RomFile file;
|
||||
/* 0x0C */ void* vramStart;
|
||||
/* 0x10 */ void* vramEnd;
|
||||
/* 0x14 */ void* vramTable;
|
||||
|
@ -43,12 +42,7 @@ static MapMarkInfo sMapMarkInfoTable[] = {
|
|||
};
|
||||
|
||||
static MapMarkDataOverlay sMapMarkDataOvl = {
|
||||
NULL,
|
||||
(uintptr_t)_ovl_map_mark_dataSegmentRomStart,
|
||||
(uintptr_t)_ovl_map_mark_dataSegmentRomEnd,
|
||||
_ovl_map_mark_dataSegmentStart,
|
||||
_ovl_map_mark_dataSegmentEnd,
|
||||
gMapMarkDataTable,
|
||||
NULL, ROM_FILE(ovl_map_mark_data), _ovl_map_mark_dataSegmentStart, _ovl_map_mark_dataSegmentEnd, gMapMarkDataTable,
|
||||
};
|
||||
|
||||
static MapMarkData** sLoadedMarkDataTable;
|
||||
|
@ -60,7 +54,8 @@ void MapMark_Init(PlayState* play) {
|
|||
overlay->loadedRamAddr = GAME_STATE_ALLOC(&play->state, overlaySize, "../z_map_mark.c", 235);
|
||||
LOG_UTILS_CHECK_NULL_POINTER("dlftbl->allocp", overlay->loadedRamAddr, "../z_map_mark.c", 236);
|
||||
|
||||
Overlay_Load(overlay->vromStart, overlay->vromEnd, overlay->vramStart, overlay->vramEnd, overlay->loadedRamAddr);
|
||||
Overlay_Load(overlay->file.vromStart, overlay->file.vromEnd, overlay->vramStart, overlay->vramEnd,
|
||||
overlay->loadedRamAddr);
|
||||
|
||||
sLoadedMarkDataTable = gMapMarkDataTable;
|
||||
sLoadedMarkDataTable =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue