diff --git a/spec b/spec index fdd90baba3..4fdacf2b8e 100644 --- a/spec +++ b/spec @@ -353,6 +353,7 @@ beginseg include "build/src/code/z_sample.o" include "build/src/code/code_80097A00.o" include "build/src/code/z_scene.o" + include "build/src/code/object_table.o" include "build/src/code/z_scene_table.o" include "build/src/code/z_skelanime.o" include "build/src/code/z_skin.o" diff --git a/src/code/object_table.c b/src/code/object_table.c new file mode 100644 index 0000000000..dc32b44359 --- /dev/null +++ b/src/code/object_table.c @@ -0,0 +1,29 @@ +#include "global.h" + +s16 gLinkObjectIds[] = { OBJECT_LINK_BOY, OBJECT_LINK_CHILD }; + +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_UNSET(_0) + +#include "tables/object_table.h" + +#undef DEFINE_OBJECT +#undef DEFINE_OBJECT_NULL +#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 }, + +RomFile gObjectTable[] = { +#include "tables/object_table.h" +}; + +#undef DEFINE_OBJECT +#undef DEFINE_OBJECT_NULL +#undef DEFINE_OBJECT_UNSET diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 3f029ff667..31383bd9ac 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -500,33 +500,4 @@ void (*gSceneCmdHandlers[SCENE_CMD_ID_MAX])(PlayState*, SceneCmd*) = { RomFile sNaviQuestHintFiles[] = { ROM_FILE(elf_message_field), ROM_FILE(elf_message_ydan), - ROM_FILE_UNSET, }; - -s16 gLinkObjectIds[] = { OBJECT_LINK_BOY, OBJECT_LINK_CHILD }; - -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_UNSET(_0) - -#include "tables/object_table.h" - -#undef DEFINE_OBJECT -#undef DEFINE_OBJECT_NULL -#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 }, - -RomFile gObjectTable[] = { -#include "tables/object_table.h" -}; - -#undef DEFINE_OBJECT -#undef DEFINE_OBJECT_NULL -#undef DEFINE_OBJECT_UNSET