From 936d96444522265baa770bccaeae23f16b4ac8fe Mon Sep 17 00:00:00 2001 From: Prakxo <87568477+Prakxo@users.noreply.github.com> Date: Fri, 6 Oct 2023 21:40:57 +0200 Subject: ac_set_manager OK (#111) * ac_set_manager OK * suggestions --- include/m_field_info.h | 2 +- include/m_player_lib.h | 1 + include/segment_symbols.h | 2 + include/tables/dmatables/dmadata_table_jp.h | 8 +- linker_scripts/jp/symbol_addrs_code.txt | 2 +- linker_scripts/jp/symbol_addrs_overlays.txt | 22 +-- linker_scripts/jp/undefined_syms.ld | 4 +- src/code/m_field_info.c | 2 +- .../actors/ovl_Set_Manager/ac_set_manager.c | 206 ++++++++++++++++++--- .../actors/ovl_Set_Manager/ac_set_manager.h | 65 ++++++- src/overlays/actors/player_actor/m_player.h | 7 +- .../managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.c | 49 +++++ .../managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.h | 9 + .../managers/ac_set_ovl_insect/ac_set_ovl_insect.c | 33 ++++ .../managers/ac_set_ovl_insect/ac_set_ovl_insect.h | 9 + yamls/jp/overlays.yaml | 34 ++-- 16 files changed, 385 insertions(+), 70 deletions(-) create mode 100644 src/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.c create mode 100644 src/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.h create mode 100644 src/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect.c create mode 100644 src/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect.h diff --git a/include/m_field_info.h b/include/m_field_info.h index 85da72a..35180d4 100644 --- a/include/m_field_info.h +++ b/include/m_field_info.h @@ -160,7 +160,7 @@ s32 func_8008B3E8_jp(xyz_t* arg0, UNK_TYPE arg1); // void func_8008BF34_jp(); // void func_8008BFC4_jp(); // void func_8008C058_jp(); -// void func_8008C0FC_jp(); +s32 mFI_CheckPlayerWade(s32); // void func_8008C120_jp(); // void func_8008C130_jp(); // void func_8008C1E0_jp(); diff --git a/include/m_player_lib.h b/include/m_player_lib.h index 27b5a16..d53f9f7 100644 --- a/include/m_player_lib.h +++ b/include/m_player_lib.h @@ -6,6 +6,7 @@ struct Player; struct Game_Play; + // void func_800B1160_jp(); // void func_800B11B0_jp(); // void func_800B11F8_jp(); diff --git a/include/segment_symbols.h b/include/segment_symbols.h index 15eac21..f97649e 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -90,6 +90,8 @@ DECLARE_SEGMENT(ovl__0079F810); DECLARE_SEGMENT(ovl__007A10E0); DECLARE_SEGMENT(catalog_ovl); +DECLARE_SEGMENT(ac_set_ovl_insect); +DECLARE_SEGMENT(ac_set_ovl_gyoei); DECLARE_SEGMENT(segment_00A58000); diff --git a/include/tables/dmatables/dmadata_table_jp.h b/include/tables/dmatables/dmadata_table_jp.h index eef8c1e..d66685b 100644 --- a/include/tables/dmatables/dmadata_table_jp.h +++ b/include/tables/dmatables/dmadata_table_jp.h @@ -120,12 +120,12 @@ DEFINE_DMA_ENTRY(ovl__0081AA60, "ovl__0081AA60") DEFINE_DMA_ENTRY(ovl__0081AA60_reloc, "ovl__0081AA60_reloc") DEFINE_DMA_ENTRY(ovl__0081D9D0, "ovl__0081D9D0") DEFINE_DMA_ENTRY(ovl__0081D9D0_reloc, "ovl__0081D9D0_reloc") -DEFINE_DMA_ENTRY(ovl__00821B40, "ovl__00821B40") -DEFINE_DMA_ENTRY(ovl__00821B40_reloc, "ovl__00821B40_reloc") +DEFINE_DMA_ENTRY(ac_set_ovl_insect, "ac_set_ovl_insect") +DEFINE_DMA_ENTRY(ac_set_ovl_insect_reloc, "ac_set_ovl_insect_reloc") DEFINE_DMA_ENTRY(ovl__00824500, "ovl__00824500") DEFINE_DMA_ENTRY(ovl__00824500_reloc, "ovl__00824500_reloc") -DEFINE_DMA_ENTRY(ovl__008253C0, "ovl__008253C0") -DEFINE_DMA_ENTRY(ovl__008253C0_reloc, "ovl__008253C0_reloc") +DEFINE_DMA_ENTRY(ac_set_ovl_gyoei, "ac_set_ovl_gyoei") +DEFINE_DMA_ENTRY(ac_set_ovl_gyoei_reloc, "ac_set_ovl_gyoei_reloc") DEFINE_DMA_ENTRY(ovl__00827DE0, "ovl__00827DE0") DEFINE_DMA_ENTRY(ovl__00827DE0_reloc, "ovl__00827DE0_reloc") DEFINE_DMA_ENTRY(ovl__00828C50, "ovl__00828C50") diff --git a/linker_scripts/jp/symbol_addrs_code.txt b/linker_scripts/jp/symbol_addrs_code.txt index f642eca..b520657 100644 --- a/linker_scripts/jp/symbol_addrs_code.txt +++ b/linker_scripts/jp/symbol_addrs_code.txt @@ -1421,7 +1421,7 @@ func_8008BE38_jp = 0x8008BE38; // type:func func_8008BF34_jp = 0x8008BF34; // type:func func_8008BFC4_jp = 0x8008BFC4; // type:func func_8008C058_jp = 0x8008C058; // type:func -func_8008C0FC_jp = 0x8008C0FC; // type:func +mFI_CheckPlayerWade = 0x8008C0FC; // type:func func_8008C120_jp = 0x8008C120; // type:func func_8008C130_jp = 0x8008C130; // type:func func_8008C1E0_jp = 0x8008C1E0; // type:func diff --git a/linker_scripts/jp/symbol_addrs_overlays.txt b/linker_scripts/jp/symbol_addrs_overlays.txt index 818d28c..a600806 100644 --- a/linker_scripts/jp/symbol_addrs_overlays.txt +++ b/linker_scripts/jp/symbol_addrs_overlays.txt @@ -8064,17 +8064,17 @@ Quest_Manager_Profile = 0x80957AAC; // // .text -func_80957DF0_jp = 0x80957DF0; // type:func -func_80957E74_jp = 0x80957E74; // type:func -func_80957F0C_jp = 0x80957F0C; // type:func -func_80957F68_jp = 0x80957F68; // type:func -func_80957F88_jp = 0x80957F88; // type:func -func_80957FA8_jp = 0x80957FA8; // type:func -func_80957FD4_jp = 0x80957FD4; // type:func -func_8095804C_jp = 0x8095804C; // type:func -func_8095806C_jp = 0x8095806C; // type:func -func_809580D4_jp = 0x809580D4; // type:func -func_80958130_jp = 0x80958130; // type:func +aSetMgr_get_player_block = 0x80957DF0; // type:func +aSetMgr_renewal_player_next_pos = 0x80957E74; // type:func +aSetMgr_renewal_player_pos = 0x80957F0C; // type:func +aSetMgr_check_player_wade_start = 0x80957F68; // type:func +aSetMgr_check_player_wade_end = 0x80957F88; // type:func +aSetMgr_clear_set_ovl = 0x80957FA8; // type:func +aSetMgr_ovl = 0x80957FD4; // type:func +aSetMgr_clear_keep = 0x8095804C; // type:func +aSetMgr_move_check_set = 0x8095806C; // type:func +aSetMgr_move_check_wait = 0x809580D4; // type:func +aSetMgr_move_set = 0x80958130; // type:func aSetMgr_move = 0x809581F0; // type:func aSetMgr_ct = 0x8095824C; // type:func aSetMgr_dt = 0x809582B4; // type:func diff --git a/linker_scripts/jp/undefined_syms.ld b/linker_scripts/jp/undefined_syms.ld index 7467a43..5c2aa7a 100644 --- a/linker_scripts/jp/undefined_syms.ld +++ b/linker_scripts/jp/undefined_syms.ld @@ -1041,12 +1041,12 @@ D_6003900 = 0x06003900; D_6000000 = 0x06000000; -// ovl__00821B40 +// ac_set_ovl_insect D_6000000 = 0x06000000; D_C000000 = 0x0C000000; -// ovl__008253C0 +// ac_set_ovl_gyoei D_C000000 = 0x0C000000; diff --git a/src/code/m_field_info.c b/src/code/m_field_info.c index d52fc4d..09cf4c8 100644 --- a/src/code/m_field_info.c +++ b/src/code/m_field_info.c @@ -255,7 +255,7 @@ #pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_8008C058_jp.s") -#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_8008C0FC_jp.s") +#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/mFI_CheckPlayerWade.s") #pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_8008C120_jp.s") diff --git a/src/overlays/actors/ovl_Set_Manager/ac_set_manager.c b/src/overlays/actors/ovl_Set_Manager/ac_set_manager.c index d9fb3b1..e8c4e16 100644 --- a/src/overlays/actors/ovl_Set_Manager/ac_set_manager.c +++ b/src/overlays/actors/ovl_Set_Manager/ac_set_manager.c @@ -2,52 +2,200 @@ #include "m_lib.h" #include "m_actor_dlftbls.h" #include "m_object.h" +#include "m_player_lib.h" +#include "m_field_info.h" +#include "ovlmgr.h" +#include "attributes.h" #include "overlays/gamestates/ovl_play/m_play.h" +#include "overlays/actors/player_actor/m_player.h" + +// Fish and Insect overlay managers +#include "overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect.h" +#include "overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.h" void aSetMgr_ct(Actor* thisx, Game_Play* game_play); void aSetMgr_dt(Actor* thisx, Game_Play* game_play); -void aSetMgr_move(Actor* thisx, Game_Play* game_play); +void aSetMgr_move(Actor* thisx, Game_Play* play); -#if 0 -ActorProfile Set_Manager_Profile = { - /* */ ACTOR_SET_MANAGER, - /* */ ACTOR_PART_7, - /* */ ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_20000000, - /* */ 0x0000, - /* */ GAMEPLAY_KEEP, - /* */ sizeof(Set_Manager), - /* */ aSetMgr_ct, - /* */ aSetMgr_dt, - /* */ aSetMgr_move, - /* */ (void*)none_proc1, - /* */ NULL, +s32 aSetMgr_check_player_wade_end(void); +s32 aSetMgr_check_player_wade_start(void); + +SetMgrOvlInfo proc_table[SETMGR_OVERLAY_MAX] = { + SETMGR_OVERLAY(ac_set_ovl_insect, func_8092A030_jp, func_8092AF0C_jp), + SETMGR_OVERLAY(ac_set_ovl_gyoei, func_8092DBC0_jp, func_8092ECAC_jp), }; -#endif -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_80957DF0_jp.s") +s32 aSetMgr_get_player_block(s32* bx, s32* bz, Game_Play* play) { + s32 res = FALSE; + Player* player = get_player_actor_withoutCheck(play); + + if (player != NULL) { + xyz_t pos = player->actor.world.pos; + + res = mFI_Wpos2BlockNum(bx, bz, pos); + } + + return res; +} + +s32 aSetMgr_renewal_player_next_pos(s32* next_bx, s32* next_bz) { + xyz_t endpos = { 0.0f, 0.0f, 0.0f }; + s32 endPosRes; + + endPosRes = get_player_actor_withoutCheck((Game_Play*)gamePT)->getEndPos(gamePT, &endpos); + + return mFI_Wpos2BlockNum(next_bx, next_bz, endpos) | endPosRes; +} + +void aSetMgr_renewal_player_pos(Game_Play* play, SetMgrPlayerPos* playerPos) { + s32 bx; + s32 bz; + s32 pad UNUSED; + + playerPos->prevBx = playerPos->curBx; + playerPos->prevBz = playerPos->curBz; + + if (aSetMgr_get_player_block(&bx, &bz, play) == TRUE) { + playerPos->curBx = bx; + playerPos->curBz = bz; + } +} + +s32 aSetMgr_check_player_wade_start() { + return mFI_CheckPlayerWade(1); +} + +s32 aSetMgr_check_player_wade_end() { + return mFI_CheckPlayerWade(3); +} + +void aSetMgr_clear_set_ovl(SetMgrOvl* ovl) { + bzero(ovl->buf, SETMGR_OVERLAY_BUFFER_SIZE); + ovl->ovlProc = NULL; +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_80957E74_jp.s") +s32 aSetMgr_ovl(SetMgrOvl* ovl, s32 type) { + s32 pad UNUSED; + SetMgrOvlInfo* mgrType = &proc_table[type]; -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_80957F0C_jp.s") + ovlmgr_Load(mgrType->vromStart, mgrType->vromEnd, mgrType->vramStart, mgrType->vramEnd, &ovl->buf); -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_80957F68_jp.s") + ovl->ovlProc = (void*)(&ovl->buf[(uintptr_t)mgrType->ovlTypeEnd] - (uintptr_t)mgrType->vramStart); -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_80957F88_jp.s") + return 1; +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_80957FA8_jp.s") +void aSetMgr_clear_keep(SetMgrKeep* keep) { + bzero(keep, sizeof(SetMgrKeep)); +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_80957FD4_jp.s") +s32 aSetMgr_move_check_set(Game_Play* play UNUSED, Set_Manager* setmgr) { + s32 move = FALSE; -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_8095804C_jp.s") + aSetMgr_renewal_player_pos(play, &setmgr->playerPos); + if (aSetMgr_check_player_wade_start() == TRUE) { + aSetMgr_renewal_player_next_pos(&setmgr->playerPos.nextBx, &setmgr->playerPos.nextBz); + setmgr->nextMove = 1; + move = TRUE; + } -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_8095806C_jp.s") + return move; +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_809580D4_jp.s") +s32 aSetMgr_move_check_wait(Game_Play* play UNUSED, Set_Manager* set_manager) { + s32 timer; + s32 res = FALSE; -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/func_80958130_jp.s") + if (set_manager->nextMove == SETMGR_MOVE_CHECK_WAIT) { + if (set_manager->timer == 0) { + timer = 0; + } else { + timer = --set_manager->timer; + } -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/aSetMgr_move.s") + if (timer == 0) { + set_manager->nextMove = SETMGR_MOVE_SET; + set_manager->timer = SETMGR_TIMER; + res = TRUE; + } + } + return res; +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/aSetMgr_ct.s") +s32 aSetMgr_move_set(Game_Play* play UNUSED, Set_Manager* set_manager) { + s32 pad UNUSED; + s32 res = FALSE; -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Set_Manager/ac_set_manager/aSetMgr_dt.s") + if (aSetMgr_ovl(&set_manager->setOverlay, set_manager->setOvlType) == TRUE && + set_manager->setOverlay.ovlProc != NULL) { + s32 requiredScopedTemp UNUSED; + + set_manager->setOverlay.ovlProc(set_manager, play); + set_manager->setOvlType++; + } else { + set_manager->setOvlType++; + } + + if (set_manager->setOvlType >= SETMGR_OVERLAY_MAX) { + set_manager->nextMove = SETMGR_MOVE_CHECK_SET; + set_manager->setOvlType = SETMGR_OVERLAY_START; + res = TRUE; + } + + if (aSetMgr_check_player_wade_end() == TRUE) { + set_manager->nextMove = SETMGR_MOVE_CHECK_SET; + set_manager->setOvlType = SETMGR_OVERLAY_START; + res = TRUE; + } + + return res; +} + +SetManagerMoveProc move[] = { aSetMgr_move_check_set, aSetMgr_move_check_wait, aSetMgr_move_set }; + +void aSetMgr_move(Actor* thisx, Game_Play* play) { + Set_Manager* setManager = (Set_Manager*)thisx; + u8 proc = setManager->moveProc; + + if (move[proc](play, setManager) == TRUE) { + setManager->moveProc = setManager->nextMove; + } +} + +void aSetMgr_ct(Actor* thisx, Game_Play* game UNUSED) { + Set_Manager* setManager = (Set_Manager*)thisx; + + setManager->moveProc = SETMGR_MOVE_CHECK_SET; + setManager->nextMove = SETMGR_MOVE_CHECK_SET; + setManager->setOvlType = SETMGR_OVERLAY_START; + + aSetMgr_clear_set_ovl(&setManager->setOverlay); + + setManager->playerPos.nextBx = 0; + setManager->playerPos.nextBz = 0; + setManager->playerPos.curBx = 0; + setManager->playerPos.curBz = 0; + setManager->playerPos.prevBx = 0; + setManager->playerPos.prevBz = 0; + + setManager->timer = SETMGR_TIMER; + + aSetMgr_clear_keep(&setManager->keep); +} + +void aSetMgr_dt(Actor* thisx UNUSED, Game_Play* play UNUSED) { +} + +ActorProfile Set_Manager_Profile = { + /* */ ACTOR_SET_MANAGER, + /* */ ACTOR_PART_7, + /* */ ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_20000000, + /* */ 0x0000, + /* */ GAMEPLAY_KEEP, + /* */ sizeof(Set_Manager), + /* */ aSetMgr_ct, + /* */ aSetMgr_dt, + /* */ aSetMgr_move, + /* */ (void*)none_proc1, + /* */ NULL, +}; diff --git a/src/overlays/actors/ovl_Set_Manager/ac_set_manager.h b/src/overlays/actors/ovl_Set_Manager/ac_set_manager.h index 312550b..4ba0ad4 100644 --- a/src/overlays/actors/ovl_Set_Manager/ac_set_manager.h +++ b/src/overlays/actors/ovl_Set_Manager/ac_set_manager.h @@ -4,15 +4,74 @@ #include "ultra64.h" #include "m_actor.h" #include "unk.h" +#include "libc/stddef.h" +#include "segment_symbols.h" struct Game_Play; struct Set_Manager; -typedef void (*Set_ManagerActionFunc)(struct Set_Manager*, struct Game_Play*); +typedef s32 (*SetManagerOvlProc)(struct Set_Manager*, struct Game_Play*); +typedef s32 (*SetManagerMoveProc)(struct Game_Play*, struct Set_Manager*); + +#define SETMGR_OVERLAY_BUFFER_SIZE 0x4000 + +#define SETMGR_TIMER 5 + +typedef struct SetMgrPlayerPos { + /* 0x00 */ s32 nextBx; + /* 0x04 */ s32 nextBz; + /* 0x08 */ s32 curBx; + /* 0x0C */ s32 curBz; + /* 0x10 */ s32 prevBx; + /* 0x14 */ s32 prevBz; +} SetMgrPlayerPos; + +typedef struct SetMgrKeep { + /* 0x148 */ u8 unk_0[0x148]; +} SetMgrKeep; // size = 0x148 + +typedef struct SetMgrOvl { + /* 0x0000 */ u8 buf[SETMGR_OVERLAY_BUFFER_SIZE]; + /* 0x4000 */ SetManagerOvlProc ovlProc; +} SetMgrOvl; // size = 0x4004 + +#define SETMGR_OVERLAY(name, proc1, proc2) \ + { SEGMENT_ROM_START(name), SEGMENT_ROM_END(name), proc1, SEGMENT_VRAM_END(name), proc2, } + +typedef struct SetMgrOvlInfo { + /* 0x00 */ RomOffset vromStart; + /* 0x04 */ RomOffset vromEnd; + /* 0x08 */ void* vramStart; + /* 0x0C */ void* vramEnd; + /* 0x10 */ void* ovlTypeEnd; +} SetMgrOvlInfo; // size = 0x14 typedef struct Set_Manager { - /* 0x0000 */ Actor actor; - /* 0x0174 */ UNK_TYPE1 unk_0174[0x4174]; + /* 0x0000 */ Actor actor; + /* 0x0174 */ u8 moveProc; + /* 0x0175 */ u8 nextMove; + /* 0x0176 */ u8 setOvlType; + /* 0x0178 */ SetMgrOvl setOverlay; + /* 0x417C */ s32 unk_417C; + /* 0x4180 */ SetMgrPlayerPos playerPos; + /* 0x4198 */ SetMgrKeep keep; + /* 0x42E0 */ s16 timer; + /* 0x42E4 */ s32 unk_42E4; } Set_Manager; // size = 0x42E8 +typedef enum SetMgrOverlayType { + /* 0 */ SETMGR_OVERLAY_START, + /* 0 */ SETMGR_OVERLAY_INSECT = SETMGR_OVERLAY_START, + /* 1 */ SETMGR_OVERLAY_GYOEI, + /* 2 */ SETMGR_OVERLAY_MAX, +} SetMgrOverlayType; + +typedef enum SetMgrMoveProcType { + /* 0 */ SETMGR_MOVE_CHECK_SET, + /* 1 */ SETMGR_MOVE_CHECK_WAIT, + /* 2 */ SETMGR_MOVE_SET, + /* 3 */ SETMGR_MOVE_MAX, +} SetMgrMoveProcType; + + #endif diff --git a/src/overlays/actors/player_actor/m_player.h b/src/overlays/actors/player_actor/m_player.h index 1ba8231..1bbc2f5 100644 --- a/src/overlays/actors/player_actor/m_player.h +++ b/src/overlays/actors/player_actor/m_player.h @@ -6,9 +6,12 @@ #include "m_collision_obj.h" #include "unk.h" +struct Game; struct Game_Play; struct Player; +typedef s32 (*SetMgrGetEndPosProc)(struct Game*, xyz_t*); + typedef struct Player { /* 0x0000 */ Actor actor; /* 0x0174 */ UNK_TYPE1 unk_0174[0xB7C]; @@ -32,7 +35,9 @@ typedef struct Player { /* 0x0FA4 */ ClObjTris colliderTris2; /* 0x0FB8 */ UNK_TYPE1 unk_0FB8[0x50]; /* 0x1008 */ ClObjPipe colliderPipe; - /* 0x1024 */ UNK_TYPE1 unk_1024[0x294]; + /* 0x1024 */ UNK_TYPE1 unk_1024[0x220]; + /* 0x1024 */ SetMgrGetEndPosProc getEndPos; + /* 0x1048 */ UNK_TYPE1 unk_1048[0x70]; /* 0x12B8 */ UNK_TYPE unk_12B8; /* 0x12BC */ s32 unk_12BC; /* 0x12C0 */ u16 unk_12C0; diff --git a/src/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.c b/src/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.c new file mode 100644 index 0000000..cbe44c2 --- /dev/null +++ b/src/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.c @@ -0,0 +1,49 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092DBC0_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092DBE4_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092DBFC_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092DC30_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092DCEC_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092DE38_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092DFC0_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E01C_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E040_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E0B0_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E0FC_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E148_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E240_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E2F8_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E3B4_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E470_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E564_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E5E0_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E5F4_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092E920_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092EA18_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092EA9C_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092EBC0_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei/func_8092ECAC_jp.s") diff --git a/src/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.h b/src/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.h new file mode 100644 index 0000000..135d594 --- /dev/null +++ b/src/overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei.h @@ -0,0 +1,9 @@ +#ifndef AC_SET_OVL_GYOEI_H +#define AC_SET_OVL_GYOEI_H + +#include "ultra64.h" + +void func_8092A030_jp(void); +void func_8092AF0C_jp(void); + +#endif diff --git a/src/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect.c b/src/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect.c new file mode 100644 index 0000000..6cb403d --- /dev/null +++ b/src/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect.c @@ -0,0 +1,33 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A030_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A054_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A06C_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A0A0_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A1B0_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A20C_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A230_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A258_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A328_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A4A8_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A56C_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A690_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092A76C_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092AB8C_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092AE10_jp.s") + +#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect/func_8092AF0C_jp.s") diff --git a/src/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect.h b/src/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect.h new file mode 100644 index 0000000..468b4a7 --- /dev/null +++ b/src/overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect.h @@ -0,0 +1,9 @@ +#ifndef AC_SET_OVL_INSECT_H +#define AC_SET_OVL_INSECT_H + +#include "ultra64.h" + +void func_8092DBC0_jp(void); +void func_8092ECAC_jp(void); + +#endif diff --git a/yamls/jp/overlays.yaml b/yamls/jp/overlays.yaml index 631fe30..434a821 100644 --- a/yamls/jp/overlays.yaml +++ b/yamls/jp/overlays.yaml @@ -1097,7 +1097,7 @@ subsegments: - [0x821740, data, overlays/other_ovl/ovl__0081D9D0/ovl__0081D9D0_reloc] - - name: ovl__00821B40 + - name: ac_set_ovl_insect type: code start: 0x821B40 vram: 0x8092A030 @@ -1105,23 +1105,23 @@ compress: True bss_size: 0x310 subsegments: - - [0x821B40, asm, overlays/other_ovl/ovl__00821B40/ovl__00821B40] - - [0x822B30, data, overlays/other_ovl/ovl__00821B40/ovl__00821B40] - - { start: 0x8240D0, type: bss, vram: 0x8092C5C0, name: overlays/other_ovl/ovl__00821B40/ovl__00821B40 } - - name: ovl__00821B40_reloc + - [0x821B40, c, overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect] + - [0x822B30, data, overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect] + - { start: 0x8240D0, type: bss, vram: 0x8092C5C0, name: overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect } + - name: ac_set_ovl_insect_reloc type: code start: 0x8240D0 vram: 0x8092C8D0 - follows_vram: ovl__00821B40 + follows_vram: ac_set_ovl_insect compress: True subsegments: - - [0x8240D0, data, overlays/other_ovl/ovl__00821B40/ovl__00821B40_reloc] + - [0x8240D0, data, overlays/managers/ac_set_ovl_insect/ac_set_ovl_insect_reloc] - name: ovl__00824500 type: code start: 0x824500 vram: 0x8092CD00 - follows_vram: ovl__00821B40_reloc + follows_vram: ac_set_ovl_insect_reloc compress: True bss_size: 0x0 subsegments: @@ -1136,7 +1136,7 @@ subsegments: - [0x8252E0, data, overlays/other_ovl/ovl__00824500/ovl__00824500_reloc] - - name: ovl__008253C0 + - name: ac_set_ovl_gyoei type: code start: 0x8253C0 vram: 0x8092DBC0 @@ -1144,23 +1144,23 @@ compress: True bss_size: 0x380 subsegments: - - [0x8253C0, asm, overlays/other_ovl/ovl__008253C0/ovl__008253C0] - - [0x8267B0, data, overlays/other_ovl/ovl__008253C0/ovl__008253C0] - - { start: 0x827BE0, type: bss, vram: 0x809303E0, name: overlays/other_ovl/ovl__008253C0/ovl__008253C0 } - - name: ovl__008253C0_reloc + - [0x8253C0, c, overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei] + - [0x8267B0, data, overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei] + - { start: 0x827BE0, type: bss, vram: 0x809303E0, name: overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei } + - name: ac_set_ovl_gyoei_reloc type: code start: 0x827BE0 vram: 0x80930760 - follows_vram: ovl__008253C0 + follows_vram: ac_set_ovl_gyoei compress: True subsegments: - - [0x827BE0, data, overlays/other_ovl/ovl__008253C0/ovl__008253C0_reloc] + - [0x827BE0, data, overlays/managers/ac_set_ovl_gyoei/ac_set_ovl_gyoei_reloc] - name: ovl__00827DE0 type: code start: 0x827DE0 vram: 0x80930960 - follows_vram: ovl__008253C0_reloc + follows_vram: ac_set_ovl_gyoei_reloc compress: True bss_size: 0x0 subsegments: @@ -1463,7 +1463,7 @@ bss_size: 0x0 subsegments: - [0x84CBC0, c, overlays/actors/ovl_Set_Manager/ac_set_manager] - - [0x84D0A0, data, overlays/actors/ovl_Set_Manager/ac_set_manager] + - [0x84D0A0, .data, overlays/actors/ovl_Set_Manager/ac_set_manager] - name: ovl_Set_Manager_reloc type: code start: 0x84D110 -- cgit v1.2.3