From dfea2bd522f9122e3fb7b3d3e778b80b0c7bbe3c Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 28 Apr 2024 16:38:58 +0200 Subject: [PATCH] Remangle `Course` --- asm/ov00/Map/Course.s | 372 +++++++++++++++++----------------- asm/ov00/Map/MapManager.inc | 54 ++--- asm/ov00/Map/MapManager.s | 84 ++++---- asm/ov00/ov00_0207da38.inc | 2 +- asm/ov00/ov00_0207da38.s | 2 +- asm/ov00/ov00_020980f4.inc | 2 +- asm/ov02.inc | 4 +- asm/ov04.inc | 12 +- asm/ov04.s | 30 +-- asm/ov15.inc | 10 +- asm/ov15.s | 20 +- asm/ov18.inc | 4 +- asm/ov18.s | 4 +- asm/ov20.inc | 38 ++-- asm/ov28.inc | 2 +- asm/ov32.inc | 2 +- asm/ov38.inc | 10 +- asm/ov52.inc | 2 +- include/Map/Course.hpp | 117 ++++++----- include/Map/Course_Unk_c8.hpp | 19 ++ include/Map/Course_Unk_cc.hpp | 28 +++ include/lib/math.h | 6 + src/00_Core/Map/Course.cpp | 90 ++++---- 23 files changed, 483 insertions(+), 431 deletions(-) create mode 100644 include/Map/Course_Unk_c8.hpp create mode 100644 include/Map/Course_Unk_cc.hpp diff --git a/asm/ov00/Map/Course.s b/asm/ov00/Map/Course.s index 160e5e9d..8995602a 100644 --- a/asm/ov00/Map/Course.s +++ b/asm/ov00/Map/Course.s @@ -50,13 +50,13 @@ _ZN6Course13SetCourseNameEPc: ; 0x0207ca68 arm_func_end _ZN6Course13SetCourseNameEPc _0207ca74: .word strcpy - .global _ZN6Course18func_ov00_0207ca78Ev - arm_func_start _ZN6Course18func_ov00_0207ca78Ev -_ZN6Course18func_ov00_0207ca78Ev: ; 0x0207ca78 + .global _ZN6Course18func_ov00_0207ca78Eici + arm_func_start _ZN6Course18func_ov00_0207ca78Eici +_ZN6Course18func_ov00_0207ca78Eici: ; 0x0207ca78 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 mov r4, r2 - bl _ZN6Course18func_ov00_0207d9ccEi + bl _ZN6Course11Find_Unk_ccEj movs r1, r0 ldmeqia sp!, {r3, r4, r5, pc} strb r4, [r1] @@ -65,11 +65,11 @@ _ZN6Course18func_ov00_0207ca78Ev: ; 0x0207ca78 mov r2, #1 bl func_ov00_020a3510 ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN6Course18func_ov00_0207ca78Ev + arm_func_end _ZN6Course18func_ov00_0207ca78Eici - .global _ZN6Course18func_ov00_0207caa8Eiii - arm_func_start _ZN6Course18func_ov00_0207caa8Eiii -_ZN6Course18func_ov00_0207caa8Eiii: ; 0x0207caa8 + .global _ZN6Course18func_ov00_0207caa8EiPiPc + arm_func_start _ZN6Course18func_ov00_0207caa8EiPiPc +_ZN6Course18func_ov00_0207caa8EiPiPc: ; 0x0207caa8 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x10 cmp r1, #0 @@ -104,7 +104,7 @@ _ZN6Course18func_ov00_0207caa8Eiii: ; 0x0207caa8 strh r1, [r4, #6] add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN6Course18func_ov00_0207caa8Eiii + arm_func_end _ZN6Course18func_ov00_0207caa8EiPiPc .global _ZN6Course18func_ov00_0207cb30Ei arm_func_start _ZN6Course18func_ov00_0207cb30Ei @@ -131,9 +131,9 @@ _ZN6Course18func_ov00_0207cb30Ei: ; 0x0207cb30 arm_func_end _ZN6Course18func_ov00_0207cb30Ei _0207cb78: .word 0x0000ffff - .global _ZN6Course18func_ov00_0207cb7cEiPS_i - arm_func_start _ZN6Course18func_ov00_0207cb7cEiPS_i -_ZN6Course18func_ov00_0207cb7cEiPS_i: ; 0x0207cb7c + .global _ZN6Course14FindMapGridPosEP5Vec2bPS_j + arm_func_start _ZN6Course14FindMapGridPosEP5Vec2bPS_j +_ZN6Course14FindMapGridPosEP5Vec2bPS_j: ; 0x0207cb7c stmdb sp!, {r3, r4, r5, lr} mov lr, #0 mov r5, r1 @@ -159,16 +159,16 @@ _0207cb90: strb r1, [r0] strb r2, [r0, #1] ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN6Course18func_ov00_0207cb7cEiPS_i + arm_func_end _ZN6Course14FindMapGridPosEP5Vec2bPS_j - .global _ZN6Course18func_ov00_0207cbd8Ei - arm_func_start _ZN6Course18func_ov00_0207cbd8Ei -_ZN6Course18func_ov00_0207cbd8Ei: ; 0x0207cbd8 + .global _ZN6Course14Find_Unk_cc_14Ei + arm_func_start _ZN6Course14Find_Unk_cc_14Ei +_ZN6Course14Find_Unk_cc_14Ei: ; 0x0207cbd8 stmdb sp!, {r3, lr} - bl _ZN6Course18func_ov00_0207d9ccEi + bl _ZN6Course11Find_Unk_ccEj add r0, r0, #0x14 ldmia sp!, {r3, pc} - arm_func_end _ZN6Course18func_ov00_0207cbd8Ei + arm_func_end _ZN6Course14Find_Unk_cc_14Ei .global _ZN6Course18func_ov00_0207cbe8Ei arm_func_start _ZN6Course18func_ov00_0207cbe8Ei @@ -213,16 +213,16 @@ _ZN6Course18func_ov00_0207cc24Ei: ; 0x0207cc24 ldmia sp!, {r3, pc} arm_func_end _ZN6Course18func_ov00_0207cc24Ei - .global _ZN6Course18func_ov00_0207cc6cEv - arm_func_start _ZN6Course18func_ov00_0207cc6cEv -_ZN6Course18func_ov00_0207cc6cEv: ; 0x0207cc6c + .global _ZN6Course14Find_Unk_cc_08Ev + arm_func_start _ZN6Course14Find_Unk_cc_08Ev +_ZN6Course14Find_Unk_cc_08Ev: ; 0x0207cc6c stmdb sp!, {r3, lr} - bl _ZN6Course18func_ov00_0207d9ccEi + bl _ZN6Course11Find_Unk_ccEj cmp r0, #0 moveq r0, #0 ldrne r0, [r0, #8] ldmia sp!, {r3, pc} - arm_func_end _ZN6Course18func_ov00_0207cc6cEv + arm_func_end _ZN6Course14Find_Unk_cc_08Ev .global _ZN6Course14GetMCSFilePathEiii arm_func_start _ZN6Course14GetMCSFilePathEiii @@ -351,9 +351,9 @@ _0207ce14: .word data_ov00_020e211c _0207ce18: .word data_027e0f7c _0207ce1c: .word data_ov00_020e2134 - .global _ZN6Course18func_ov00_0207ce20Eiiii - arm_func_start _ZN6Course18func_ov00_0207ce20Eiiii -_ZN6Course18func_ov00_0207ce20Eiiii: ; 0x0207ce20 + .global _ZN6Course18func_ov00_0207ce20EiiPci + arm_func_start _ZN6Course18func_ov00_0207ce20EiiPci +_ZN6Course18func_ov00_0207ce20EiiPci: ; 0x0207ce20 stmdb sp!, {r3, lr} sub sp, sp, #8 ldr ip, [sp, #0x10] @@ -362,14 +362,14 @@ _ZN6Course18func_ov00_0207ce20Eiiii: ; 0x0207ce20 mov r3, r2 ldr r1, [r0] mov r2, ip - bl _ZN6Course18func_ov00_0207ce4cEccccii + bl _ZN6Course18func_ov00_0207ce4cEiiiPci add sp, sp, #8 ldmia sp!, {r3, pc} - arm_func_end _ZN6Course18func_ov00_0207ce20Eiiii + arm_func_end _ZN6Course18func_ov00_0207ce20EiiPci - .global _ZN6Course18func_ov00_0207ce4cEccccii - arm_func_start _ZN6Course18func_ov00_0207ce4cEccccii -_ZN6Course18func_ov00_0207ce4cEccccii: ; 0x0207ce4c + .global _ZN6Course18func_ov00_0207ce4cEiiiPci + arm_func_start _ZN6Course18func_ov00_0207ce4cEiiiPci +_ZN6Course18func_ov00_0207ce4cEiiiPci: ; 0x0207ce4c stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 ldr r4, _0207d3ac ; =data_027e0f7c @@ -454,7 +454,7 @@ _0207cf38: mov r4, #4 moveq r2, #0 str r4, [sp, #4] - bl _ZN6Course18func_ov00_0207ce4cEccccii + bl _ZN6Course18func_ov00_0207ce4cEiiiPci add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} _0207cf98: @@ -467,7 +467,7 @@ _0207cf98: mov r2, r5 mov r3, r4 str r7, [sp] - bl _ZN6Course18func_ov00_0207ce20Eiiii + bl _ZN6Course18func_ov00_0207ce20EiiPci add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} _0207cfc8: @@ -737,7 +737,7 @@ _0207d364: add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 - arm_func_end _ZN6Course18func_ov00_0207ce4cEccccii + arm_func_end _ZN6Course18func_ov00_0207ce4cEiiiPci _0207d3ac: .word data_027e0f7c _0207d3b0: .word 0x66666667 _0207d3b4: .word data_ov00_020e233c @@ -790,26 +790,26 @@ _ZN6Course18func_ov00_0207d404Eiii: ; 0x0207d404 ldr r1, [sp, #8] mov r0, r6 mov r3, r5 - bl _ZN6Course18func_ov00_0207ce4cEccccii + bl _ZN6Course18func_ov00_0207ce4cEiiiPci mov r0, #1 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} arm_func_end _ZN6Course18func_ov00_0207d404Eiii - .global _ZN6Course18func_ov00_0207d47cEv - arm_func_start _ZN6Course18func_ov00_0207d47cEv -_ZN6Course18func_ov00_0207d47cEv: ; 0x0207d47c - ldr ip, _0207d48c ; =_ZN6Course18func_ov00_0207d490Eii + .global _ZN6Course22IsCurrentMapInMainGridEv + arm_func_start _ZN6Course22IsCurrentMapInMainGridEv +_ZN6Course22IsCurrentMapInMainGridEv: ; 0x0207d47c + ldr ip, _0207d48c ; =_ZN6Course12IsInMainGridEii ldrb r1, [r0, #0x1c] ldrb r2, [r0, #0x1d] bx ip .align 2, 0 - arm_func_end _ZN6Course18func_ov00_0207d47cEv -_0207d48c: .word _ZN6Course18func_ov00_0207d490Eii + arm_func_end _ZN6Course22IsCurrentMapInMainGridEv +_0207d48c: .word _ZN6Course12IsInMainGridEii - .global _ZN6Course18func_ov00_0207d490Eii - arm_func_start _ZN6Course18func_ov00_0207d490Eii -_ZN6Course18func_ov00_0207d490Eii: ; 0x0207d490 + .global _ZN6Course12IsInMainGridEii + arm_func_start _ZN6Course12IsInMainGridEii +_ZN6Course12IsInMainGridEii: ; 0x0207d490 ldrb r3, [r0, #0x25c] cmp r3, #0 moveq r0, #1 @@ -832,29 +832,29 @@ _ZN6Course18func_ov00_0207d490Eii: ; 0x0207d490 _0207d4dc: mov r0, #0 bx lr - arm_func_end _ZN6Course18func_ov00_0207d490Eii + arm_func_end _ZN6Course12IsInMainGridEii - .global _ZN6Course18func_ov00_0207d4e4Ei - arm_func_start _ZN6Course18func_ov00_0207d4e4Ei -_ZN6Course18func_ov00_0207d4e4Ei: ; 0x0207d4e4 + .global _ZN6Course15IsMapInMainGridEj + arm_func_start _ZN6Course15IsMapInMainGridEj +_ZN6Course15IsMapInMainGridEj: ; 0x0207d4e4 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 mov r4, r0 mov r2, r1 add r0, sp, #0 mov r1, r4 - bl _ZN6Course18func_ov00_0207cb7cEiPS_i + bl _ZN6Course14FindMapGridPosEP5Vec2bPS_j ldrb r1, [sp] ldrb r2, [sp, #1] mov r0, r4 - bl _ZN6Course18func_ov00_0207d490Eii + bl _ZN6Course12IsInMainGridEii add sp, sp, #4 ldmia sp!, {r3, r4, pc} - arm_func_end _ZN6Course18func_ov00_0207d4e4Ei + arm_func_end _ZN6Course15IsMapInMainGridEj - .global _ZN6Course18func_ov00_0207d518EiPiS0_ - arm_func_start _ZN6Course18func_ov00_0207d518EiPiS0_ -_ZN6Course18func_ov00_0207d518EiPiS0_: ; 0x0207d518 + .global _ZN6Course15GetMapScreenPosEiPiS0_ + arm_func_start _ZN6Course15GetMapScreenPosEiPiS0_ +_ZN6Course15GetMapScreenPosEiPiS0_: ; 0x0207d518 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r4, r1 mov r7, r0 @@ -866,11 +866,11 @@ _ZN6Course18func_ov00_0207d518EiPiS0_: ; 0x0207d518 add r0, sp, #0 mov r1, r7 mov r2, r4 - bl _ZN6Course18func_ov00_0207cb7cEiPS_i + bl _ZN6Course14FindMapGridPosEP5Vec2bPS_j ldrb r1, [sp] ldrb r2, [sp, #1] mov r0, r7 - bl _ZN6Course18func_ov00_0207d490Eii + bl _ZN6Course12IsInMainGridEii cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r3, r4, r5, r6, r7, pc} @@ -898,11 +898,11 @@ _ZN6Course18func_ov00_0207d518EiPiS0_: ; 0x0207d518 str r1, [r5] mov r0, #1 ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end _ZN6Course18func_ov00_0207d518EiPiS0_ + arm_func_end _ZN6Course15GetMapScreenPosEiPiS0_ - .global _ZN6Course18func_ov00_0207d5c4Ev - arm_func_start _ZN6Course18func_ov00_0207d5c4Ev -_ZN6Course18func_ov00_0207d5c4Ev: ; 0x0207d5c4 + .global _ZN6Course21GetScreenMapCellSizeXEv + arm_func_start _ZN6Course21GetScreenMapCellSizeXEv +_ZN6Course21GetScreenMapCellSizeXEv: ; 0x0207d5c4 stmdb sp!, {r3, lr} ldrb r1, [r0, #0x86] ldrb r0, [r0, #0x87] @@ -914,11 +914,11 @@ _ZN6Course18func_ov00_0207d5c4Ev: ; 0x0207d5c4 mov r1, #0x40000 bl Divide ldmia sp!, {r3, pc} - arm_func_end _ZN6Course18func_ov00_0207d5c4Ev + arm_func_end _ZN6Course21GetScreenMapCellSizeXEv - .global _ZN6Course18func_ov00_0207d5f0Ev - arm_func_start _ZN6Course18func_ov00_0207d5f0Ev -_ZN6Course18func_ov00_0207d5f0Ev: ; 0x0207d5f0 + .global _ZN6Course21GetScreenMapCellSizeYEv + arm_func_start _ZN6Course21GetScreenMapCellSizeYEv +_ZN6Course21GetScreenMapCellSizeYEv: ; 0x0207d5f0 stmdb sp!, {r3, lr} ldrb r1, [r0, #0x87] ldrb r0, [r0, #0x86] @@ -930,27 +930,27 @@ _ZN6Course18func_ov00_0207d5f0Ev: ; 0x0207d5f0 mov r1, #0x30000 bl Divide ldmia sp!, {r3, pc} - arm_func_end _ZN6Course18func_ov00_0207d5f0Ev + arm_func_end _ZN6Course21GetScreenMapCellSizeYEv - .global _ZN6Course18func_ov00_0207d61cEv - arm_func_start _ZN6Course18func_ov00_0207d61cEv -_ZN6Course18func_ov00_0207d61cEv: ; 0x0207d61c + .global _ZN6Course13Get_Unk_c8_00Ev + arm_func_start _ZN6Course13Get_Unk_c8_00Ev +_ZN6Course13Get_Unk_c8_00Ev: ; 0x0207d61c ldr r0, [r0, #0xc8] ldr r0, [r0] bx lr - arm_func_end _ZN6Course18func_ov00_0207d61cEv + arm_func_end _ZN6Course13Get_Unk_c8_00Ev - .global _ZN6Course15GetUnk_c8_Unk_4Ev - arm_func_start _ZN6Course15GetUnk_c8_Unk_4Ev -_ZN6Course15GetUnk_c8_Unk_4Ev: ; 0x0207d628 + .global _ZN6Course13Get_Unk_c8_04Ev + arm_func_start _ZN6Course13Get_Unk_c8_04Ev +_ZN6Course13Get_Unk_c8_04Ev: ; 0x0207d628 ldr r0, [r0, #0xc8] ldr r0, [r0, #4] bx lr - arm_func_end _ZN6Course15GetUnk_c8_Unk_4Ev + arm_func_end _ZN6Course13Get_Unk_c8_04Ev - .global _ZN6Course18func_ov00_0207d634Ei - arm_func_start _ZN6Course18func_ov00_0207d634Ei -_ZN6Course18func_ov00_0207d634Ei: ; 0x0207d634 + .global _ZN6Course23IsAdjacentMapOnMainGridEi + arm_func_start _ZN6Course23IsAdjacentMapOnMainGridEi +_ZN6Course23IsAdjacentMapOnMainGridEi: ; 0x0207d634 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldrb r4, [r6, #0x1c] @@ -978,20 +978,20 @@ _0207d67c: mov r0, r6 mov r1, r4 mov r2, r5 - bl _ZN6Course18func_ov00_0207d490Eii + bl _ZN6Course12IsInMainGridEii cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} mov r0, r6 mov r1, r4 mov r2, r5 - bl _ZN6Course18func_ov00_0207d6acEii + bl _ZN6Course10HasGridMapEii ldmia sp!, {r4, r5, r6, pc} - arm_func_end _ZN6Course18func_ov00_0207d634Ei + arm_func_end _ZN6Course23IsAdjacentMapOnMainGridEi - .global _ZN6Course18func_ov00_0207d6acEii - arm_func_start _ZN6Course18func_ov00_0207d6acEii -_ZN6Course18func_ov00_0207d6acEii: ; 0x0207d6ac + .global _ZN6Course10HasGridMapEii + arm_func_start _ZN6Course10HasGridMapEii +_ZN6Course10HasGridMapEii: ; 0x0207d6ac cmp r1, #0 cmpge r2, #0 blt _0207d6c4 @@ -1010,35 +1010,35 @@ _0207d6cc: movne r0, #1 moveq r0, #0 bx lr - arm_func_end _ZN6Course18func_ov00_0207d6acEii + arm_func_end _ZN6Course10HasGridMapEii - .global _ZN6Course18func_ov00_0207d6ecEv - arm_func_start _ZN6Course18func_ov00_0207d6ecEv -_ZN6Course18func_ov00_0207d6ecEv: ; 0x0207d6ec + .global _ZN6Course14GetAdjacentMapEi + arm_func_start _ZN6Course14GetAdjacentMapEi +_ZN6Course14GetAdjacentMapEi: ; 0x0207d6ec stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 - bl _ZN6Course18func_ov00_0207d634Ei + bl _ZN6Course23IsAdjacentMapOnMainGridEi cmp r0, #0 moveq r0, #0xff ldmeqia sp!, {r4, r5, r6, pc} mov r0, r6 mov r1, r5 - bl _ZN6Course18func_ov00_0207d758Ei + bl _ZN6Course15GetAdjacentMapYEi mov r4, r0 mov r0, r6 mov r1, r5 - bl _ZN6Course18func_ov00_0207d738Ei + bl _ZN6Course15GetAdjacentMapXEi mov r1, #0xa mla r1, r0, r1, r6 add r0, r1, r4 ldrb r0, [r0, #0x20] ldmia sp!, {r4, r5, r6, pc} - arm_func_end _ZN6Course18func_ov00_0207d6ecEv + arm_func_end _ZN6Course14GetAdjacentMapEi - .global _ZN6Course18func_ov00_0207d738Ei - arm_func_start _ZN6Course18func_ov00_0207d738Ei -_ZN6Course18func_ov00_0207d738Ei: ; 0x0207d738 + .global _ZN6Course15GetAdjacentMapXEi + arm_func_start _ZN6Course15GetAdjacentMapXEi +_ZN6Course15GetAdjacentMapXEi: ; 0x0207d738 cmp r1, #0 ldrb r0, [r0, #0x1c] beq _0207d750 @@ -1048,11 +1048,11 @@ _ZN6Course18func_ov00_0207d738Ei: ; 0x0207d738 _0207d750: add r0, r0, #1 bx lr - arm_func_end _ZN6Course18func_ov00_0207d738Ei + arm_func_end _ZN6Course15GetAdjacentMapXEi - .global _ZN6Course18func_ov00_0207d758Ei - arm_func_start _ZN6Course18func_ov00_0207d758Ei -_ZN6Course18func_ov00_0207d758Ei: ; 0x0207d758 + .global _ZN6Course15GetAdjacentMapYEi + arm_func_start _ZN6Course15GetAdjacentMapYEi +_ZN6Course15GetAdjacentMapYEi: ; 0x0207d758 cmp r1, #2 ldrb r0, [r0, #0x1d] beq _0207d770 @@ -1062,46 +1062,46 @@ _ZN6Course18func_ov00_0207d758Ei: ; 0x0207d758 _0207d770: add r0, r0, #1 bx lr - arm_func_end _ZN6Course18func_ov00_0207d758Ei + arm_func_end _ZN6Course15GetAdjacentMapYEi - .global _ZN6Course18func_ov00_0207d778Ev - arm_func_start _ZN6Course18func_ov00_0207d778Ev -_ZN6Course18func_ov00_0207d778Ev: ; 0x0207d778 + .global _ZN6Course21FindCurrent_Unk_cc_04Ev + arm_func_start _ZN6Course21FindCurrent_Unk_cc_04Ev +_ZN6Course21FindCurrent_Unk_cc_04Ev: ; 0x0207d778 stmdb sp!, {r3, lr} - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv ldrh r0, [r0, #4] ldmia sp!, {r3, pc} - arm_func_end _ZN6Course18func_ov00_0207d778Ev + arm_func_end _ZN6Course21FindCurrent_Unk_cc_04Ev - .global _ZN6Course18func_ov00_0207d788Ev - arm_func_start _ZN6Course18func_ov00_0207d788Ev -_ZN6Course18func_ov00_0207d788Ev: ; 0x0207d788 + .global _ZN6Course14Find_Unk_cc_04Ei + arm_func_start _ZN6Course14Find_Unk_cc_04Ei +_ZN6Course14Find_Unk_cc_04Ei: ; 0x0207d788 stmdb sp!, {r3, lr} - bl _ZN6Course18func_ov00_0207d9ccEi + bl _ZN6Course11Find_Unk_ccEj cmp r0, #0 ldreq r0, _0207d7a0 ; =0x0000ffff ldrneh r0, [r0, #4] ldmia sp!, {r3, pc} .align 2, 0 - arm_func_end _ZN6Course18func_ov00_0207d788Ev + arm_func_end _ZN6Course14Find_Unk_cc_04Ei _0207d7a0: .word 0x0000ffff - .global _ZN6Course18func_ov00_0207d7a4Ev - arm_func_start _ZN6Course18func_ov00_0207d7a4Ev -_ZN6Course18func_ov00_0207d7a4Ev: ; 0x0207d7a4 + .global _ZN6Course14Find_Unk_cc_0cEi + arm_func_start _ZN6Course14Find_Unk_cc_0cEi +_ZN6Course14Find_Unk_cc_0cEi: ; 0x0207d7a4 stmdb sp!, {r3, lr} - bl _ZN6Course18func_ov00_0207d9ccEi + bl _ZN6Course11Find_Unk_ccEj cmp r0, #0 moveq r0, #0 ldrne r0, [r0, #0xc] ldmia sp!, {r3, pc} - arm_func_end _ZN6Course18func_ov00_0207d7a4Ev + arm_func_end _ZN6Course14Find_Unk_cc_0cEi .global _ZN6Course18func_ov00_0207d7bcEv arm_func_start _ZN6Course18func_ov00_0207d7bcEv _ZN6Course18func_ov00_0207d7bcEv: ; 0x0207d7bc stmdb sp!, {r3, lr} - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv ldr r2, _0207d7d8 ; =data_027e103c ldrh r1, [r0, #4] ldr r0, [r2] @@ -1111,9 +1111,9 @@ _ZN6Course18func_ov00_0207d7bcEv: ; 0x0207d7bc arm_func_end _ZN6Course18func_ov00_0207d7bcEv _0207d7d8: .word data_027e103c - .global _ZN6Course18func_ov00_0207d7dcEii - arm_func_start _ZN6Course18func_ov00_0207d7dcEii -_ZN6Course18func_ov00_0207d7dcEii: ; 0x0207d7dc + .global _ZN6Course8SetFlag0Ejb + arm_func_start _ZN6Course8SetFlag0Ejb +_ZN6Course8SetFlag0Ejb: ; 0x0207d7dc cmp r2, #0 beq _0207d804 add ip, r0, #0x264 @@ -1134,11 +1134,11 @@ _0207d804: and r0, r1, r0 str r0, [r3, r2, lsl #2] bx lr - arm_func_end _ZN6Course18func_ov00_0207d7dcEii + arm_func_end _ZN6Course8SetFlag0Ejb - .global _ZN6Course18func_ov00_0207d828Ei - arm_func_start _ZN6Course18func_ov00_0207d828Ei -_ZN6Course18func_ov00_0207d828Ei: ; 0x0207d828 + .global _ZN6Course8GetFlag0Ej + arm_func_start _ZN6Course8GetFlag0Ej +_ZN6Course8GetFlag0Ej: ; 0x0207d828 mov r2, r1, lsr #0x5 add r0, r0, r2, lsl #2 ldr r2, [r0, #0x264] @@ -1147,11 +1147,11 @@ _ZN6Course18func_ov00_0207d828Ei: ; 0x0207d828 tst r2, r0, lsl r1 moveq r0, #0 bx lr - arm_func_end _ZN6Course18func_ov00_0207d828Ei + arm_func_end _ZN6Course8GetFlag0Ej - .global _ZN6Course18func_ov00_0207d848Eii - arm_func_start _ZN6Course18func_ov00_0207d848Eii -_ZN6Course18func_ov00_0207d848Eii: ; 0x0207d848 + .global _ZN6Course8SetFlag1Ejb + arm_func_start _ZN6Course8SetFlag1Ejb +_ZN6Course8SetFlag1Ejb: ; 0x0207d848 cmp r2, #0 beq _0207d870 add ip, r0, #0x268 @@ -1172,11 +1172,11 @@ _0207d870: and r0, r1, r0 str r0, [r3, r2, lsl #2] bx lr - arm_func_end _ZN6Course18func_ov00_0207d848Eii + arm_func_end _ZN6Course8SetFlag1Ejb - .global _ZN6Course18func_ov00_0207d894Ei - arm_func_start _ZN6Course18func_ov00_0207d894Ei -_ZN6Course18func_ov00_0207d894Ei: ; 0x0207d894 + .global _ZN6Course8SetFlag1Ej + arm_func_start _ZN6Course8SetFlag1Ej +_ZN6Course8SetFlag1Ej: ; 0x0207d894 mov r2, r1, lsr #0x5 add r0, r0, r2, lsl #2 ldr r2, [r0, #0x268] @@ -1185,131 +1185,131 @@ _ZN6Course18func_ov00_0207d894Ei: ; 0x0207d894 tst r2, r0, lsl r1 moveq r0, #0 bx lr - arm_func_end _ZN6Course18func_ov00_0207d894Ei + arm_func_end _ZN6Course8SetFlag1Ej - .global _ZN6Course18func_ov00_0207d8b4Ev - arm_func_start _ZN6Course18func_ov00_0207d8b4Ev -_ZN6Course18func_ov00_0207d8b4Ev: ; 0x0207d8b4 + .global _ZN6Course15SetFlag0_Unk_ccEib + arm_func_start _ZN6Course15SetFlag0_Unk_ccEib +_ZN6Course15SetFlag0_Unk_ccEib: ; 0x0207d8b4 stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r5 mov r2, r4 bl func_ov00_0209740c ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN6Course18func_ov00_0207d8b4Ev + arm_func_end _ZN6Course15SetFlag0_Unk_ccEib - .global _ZN6Course18func_ov00_0207d8d4Ei - arm_func_start _ZN6Course18func_ov00_0207d8d4Ei -_ZN6Course18func_ov00_0207d8d4Ei: ; 0x0207d8d4 + .global _ZN6Course15GetFlag0_Unk_ccEi + arm_func_start _ZN6Course15GetFlag0_Unk_ccEi +_ZN6Course15GetFlag0_Unk_ccEi: ; 0x0207d8d4 stmdb sp!, {r4, lr} mov r4, r1 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r4 bl func_ov00_02097458 ldmia sp!, {r4, pc} - arm_func_end _ZN6Course18func_ov00_0207d8d4Ei + arm_func_end _ZN6Course15GetFlag0_Unk_ccEi - .global _ZN6Course18func_ov00_0207d8ecEv - arm_func_start _ZN6Course18func_ov00_0207d8ecEv -_ZN6Course18func_ov00_0207d8ecEv: ; 0x0207d8ec + .global _ZN6Course15SetFlag1_Unk_ccEib + arm_func_start _ZN6Course15SetFlag1_Unk_ccEib +_ZN6Course15SetFlag1_Unk_ccEib: ; 0x0207d8ec stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r5 mov r2, r4 bl func_ov00_02097478 ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN6Course18func_ov00_0207d8ecEv + arm_func_end _ZN6Course15SetFlag1_Unk_ccEib - .global _ZN6Course18func_ov00_0207d90cEi - arm_func_start _ZN6Course18func_ov00_0207d90cEi -_ZN6Course18func_ov00_0207d90cEi: ; 0x0207d90c + .global _ZN6Course15GetFlag1_Unk_ccEi + arm_func_start _ZN6Course15GetFlag1_Unk_ccEi +_ZN6Course15GetFlag1_Unk_ccEi: ; 0x0207d90c stmdb sp!, {r4, lr} mov r4, r1 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r4 bl func_ov00_020974c4 ldmia sp!, {r4, pc} - arm_func_end _ZN6Course18func_ov00_0207d90cEi + arm_func_end _ZN6Course15GetFlag1_Unk_ccEi - .global _ZN6Course18func_ov00_0207d924Ev - arm_func_start _ZN6Course18func_ov00_0207d924Ev -_ZN6Course18func_ov00_0207d924Ev: ; 0x0207d924 + .global _ZN6Course15SetFlag2_Unk_ccEib + arm_func_start _ZN6Course15SetFlag2_Unk_ccEib +_ZN6Course15SetFlag2_Unk_ccEib: ; 0x0207d924 stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r5 mov r2, r4 bl func_ov00_020974e4 ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN6Course18func_ov00_0207d924Ev + arm_func_end _ZN6Course15SetFlag2_Unk_ccEib - .global _ZN6Course18func_ov00_0207d944Ei - arm_func_start _ZN6Course18func_ov00_0207d944Ei -_ZN6Course18func_ov00_0207d944Ei: ; 0x0207d944 + .global _ZN6Course15GetFlag2_Unk_ccEi + arm_func_start _ZN6Course15GetFlag2_Unk_ccEi +_ZN6Course15GetFlag2_Unk_ccEi: ; 0x0207d944 stmdb sp!, {r4, lr} mov r4, r1 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r4 bl func_ov00_02097530 ldmia sp!, {r4, pc} - arm_func_end _ZN6Course18func_ov00_0207d944Ei + arm_func_end _ZN6Course15GetFlag2_Unk_ccEi - .global _ZN6Course18func_ov00_0207d95cEv - arm_func_start _ZN6Course18func_ov00_0207d95cEv -_ZN6Course18func_ov00_0207d95cEv: ; 0x0207d95c + .global _ZN6Course15SetFlag3_Unk_ccEib + arm_func_start _ZN6Course15SetFlag3_Unk_ccEib +_ZN6Course15SetFlag3_Unk_ccEib: ; 0x0207d95c stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r5 mov r2, r4 bl func_ov00_02097550 ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN6Course18func_ov00_0207d95cEv + arm_func_end _ZN6Course15SetFlag3_Unk_ccEib .global _ZN6Course18func_ov00_0207d97cEi arm_func_start _ZN6Course18func_ov00_0207d97cEi _ZN6Course18func_ov00_0207d97cEi: ; 0x0207d97c stmdb sp!, {r4, lr} mov r4, r1 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r4 bl func_ov00_0209759c ldmia sp!, {r4, pc} arm_func_end _ZN6Course18func_ov00_0207d97cEi - .global _ZN6Course18func_ov00_0207d994Ev - arm_func_start _ZN6Course18func_ov00_0207d994Ev -_ZN6Course18func_ov00_0207d994Ev: ; 0x0207d994 + .global _ZN6Course18func_ov00_0207d994Eii + arm_func_start _ZN6Course18func_ov00_0207d994Eii +_ZN6Course18func_ov00_0207d994Eii: ; 0x0207d994 stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r5 mov r2, r4 bl func_ov00_020975bc ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN6Course18func_ov00_0207d994Ev + arm_func_end _ZN6Course18func_ov00_0207d994Eii - .global _ZN6Course18func_ov00_0207d9b4Ei - arm_func_start _ZN6Course18func_ov00_0207d9b4Ei -_ZN6Course18func_ov00_0207d9b4Ei: ; 0x0207d9b4 + .global _ZN6Course15GetFlag3_Unk_ccEi + arm_func_start _ZN6Course15GetFlag3_Unk_ccEi +_ZN6Course15GetFlag3_Unk_ccEi: ; 0x0207d9b4 stmdb sp!, {r4, lr} mov r4, r1 - bl _ZN6Course18func_ov00_0207da14Ev + bl _ZN6Course18FindCurrent_Unk_ccEv mov r1, r4 bl func_ov00_02097608 ldmia sp!, {r4, pc} - arm_func_end _ZN6Course18func_ov00_0207d9b4Ei + arm_func_end _ZN6Course15GetFlag3_Unk_ccEi - .global _ZN6Course18func_ov00_0207d9ccEi - arm_func_start _ZN6Course18func_ov00_0207d9ccEi -_ZN6Course18func_ov00_0207d9ccEi: ; 0x0207d9cc + .global _ZN6Course11Find_Unk_ccEj + arm_func_start _ZN6Course11Find_Unk_ccEj +_ZN6Course11Find_Unk_ccEj: ; 0x0207d9cc ldrb r2, [r0, #0xb0] mov ip, #0 cmp r2, #0 @@ -1331,22 +1331,22 @@ _0207d9fc: _0207da0c: mov r0, #0 bx lr - arm_func_end _ZN6Course18func_ov00_0207d9ccEi + arm_func_end _ZN6Course11Find_Unk_ccEj - .global _ZN6Course18func_ov00_0207da14Ev - arm_func_start _ZN6Course18func_ov00_0207da14Ev -_ZN6Course18func_ov00_0207da14Ev: ; 0x0207da14 + .global _ZN6Course18FindCurrent_Unk_ccEv + arm_func_start _ZN6Course18FindCurrent_Unk_ccEv +_ZN6Course18FindCurrent_Unk_ccEv: ; 0x0207da14 ldrb r3, [r0, #0x1c] mov r1, #0xa ldrb r2, [r0, #0x1d] mla r1, r3, r1, r0 add r1, r1, r2 - ldr ip, _0207da34 ; =_ZN6Course18func_ov00_0207d9ccEi + ldr ip, _0207da34 ; =_ZN6Course11Find_Unk_ccEj ldrb r1, [r1, #0x20] bx ip .align 2, 0 - arm_func_end _ZN6Course18func_ov00_0207da14Ev -_0207da34: .word _ZN6Course18func_ov00_0207d9ccEi + arm_func_end _ZN6Course18FindCurrent_Unk_ccEv +_0207da34: .word _ZN6Course11Find_Unk_ccEj .data .global data_ov00_020e2058 diff --git a/asm/ov00/Map/MapManager.inc b/asm/ov00/Map/MapManager.inc index 9f6e5557..e6197a44 100644 --- a/asm/ov00/Map/MapManager.inc +++ b/asm/ov00/Map/MapManager.inc @@ -3,41 +3,41 @@ .extern _ZN12ActorManager13FindActorByIdEj .extern _ZN12ActorManager18func_ov00_020c3ce8Eii .extern _ZN14AdventureFlags18func_ov00_020976c8Ev -.extern _ZN6Course15GetUnk_c8_Unk_4Ev +.extern _ZN6Course13Get_Unk_c8_04Ev .extern _ZN6Course18GetDungeonProgressEP14CourseProgress .extern _ZN6Course18func_ov00_0207ca28Eiii -.extern _ZN6Course18func_ov00_0207caa8Eiii +.extern _ZN6Course18func_ov00_0207caa8EiPiPc .extern _ZN6Course18func_ov00_0207cb30Ei -.extern _ZN6Course18func_ov00_0207cb7cEiPS_i -.extern _ZN6Course18func_ov00_0207cbd8Ei +.extern _ZN6Course14FindMapGridPosEP5Vec2bPS_j +.extern _ZN6Course14Find_Unk_cc_14Ei .extern _ZN6Course18func_ov00_0207cbe8Ei .extern _ZN6Course18func_ov00_0207cc24Ei -.extern _ZN6Course18func_ov00_0207cc6cEv -.extern _ZN6Course18func_ov00_0207ce20Eiiii +.extern _ZN6Course14Find_Unk_cc_08Ev +.extern _ZN6Course18func_ov00_0207ce20EiiPci .extern _ZN6Course18func_ov00_0207d404Eiii -.extern _ZN6Course18func_ov00_0207d47cEv -.extern _ZN6Course18func_ov00_0207d4e4Ei -.extern _ZN6Course18func_ov00_0207d518EiPiS0_ -.extern _ZN6Course18func_ov00_0207d5c4Ev -.extern _ZN6Course18func_ov00_0207d5f0Ev -.extern _ZN6Course18func_ov00_0207d61cEv -.extern _ZN6Course18func_ov00_0207d778Ev -.extern _ZN6Course18func_ov00_0207d788Ev +.extern _ZN6Course22IsCurrentMapInMainGridEv +.extern _ZN6Course15IsMapInMainGridEj +.extern _ZN6Course15GetMapScreenPosEiPiS0_ +.extern _ZN6Course21GetScreenMapCellSizeXEv +.extern _ZN6Course21GetScreenMapCellSizeYEv +.extern _ZN6Course13Get_Unk_c8_00Ev +.extern _ZN6Course21FindCurrent_Unk_cc_04Ev +.extern _ZN6Course14Find_Unk_cc_04Ei .extern _ZN6Course18func_ov00_0207d7bcEv -.extern _ZN6Course18func_ov00_0207d7dcEii -.extern _ZN6Course18func_ov00_0207d828Ei -.extern _ZN6Course18func_ov00_0207d848Eii -.extern _ZN6Course18func_ov00_0207d894Ei -.extern _ZN6Course18func_ov00_0207d8b4Ev -.extern _ZN6Course18func_ov00_0207d8d4Ei -.extern _ZN6Course18func_ov00_0207d8ecEv -.extern _ZN6Course18func_ov00_0207d90cEi -.extern _ZN6Course18func_ov00_0207d924Ev -.extern _ZN6Course18func_ov00_0207d944Ei -.extern _ZN6Course18func_ov00_0207d95cEv +.extern _ZN6Course8SetFlag0Ejb +.extern _ZN6Course8GetFlag0Ej +.extern _ZN6Course8SetFlag1Ejb +.extern _ZN6Course8SetFlag1Ej +.extern _ZN6Course15SetFlag0_Unk_ccEib +.extern _ZN6Course15GetFlag0_Unk_ccEi +.extern _ZN6Course15SetFlag1_Unk_ccEib +.extern _ZN6Course15GetFlag1_Unk_ccEi +.extern _ZN6Course15SetFlag2_Unk_ccEib +.extern _ZN6Course15GetFlag2_Unk_ccEi +.extern _ZN6Course15SetFlag3_Unk_ccEib .extern _ZN6Course18func_ov00_0207d97cEi -.extern _ZN6Course18func_ov00_0207d994Ev -.extern _ZN6Course18func_ov00_0207d9b4Ei +.extern _ZN6Course18func_ov00_0207d994Eii +.extern _ZN6Course15GetFlag3_Unk_ccEi .extern _ZN9SysObjectnwEmPjj .extern __register_global_object .extern data_027e077c diff --git a/asm/ov00/Map/MapManager.s b/asm/ov00/Map/MapManager.s index ce3dfbd3..983ea98f 100644 --- a/asm/ov00/Map/MapManager.s +++ b/asm/ov00/Map/MapManager.s @@ -468,7 +468,7 @@ _ZN10MapManager18func_ov00_02082614Eii: ; 0x02082614 mov r3, r1 mov r1, r2 mov r2, #0 - bl _ZN6Course18func_ov00_0207ce20Eiiii + bl _ZN6Course18func_ov00_0207ce20EiiPci ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02082614Eii @@ -926,7 +926,7 @@ _ZN10MapManager18func_ov00_02082b3cEi: ; 0x02082b3c ldrb r2, [r5, #0x12] ldr r1, [r6] add r0, sp, #0 - bl _ZN6Course18func_ov00_0207cb7cEiPS_i + bl _ZN6Course14FindMapGridPosEP5Vec2bPS_j mov r0, r6 bl _ZN10MapManager20GetCourseData_Unk_1cEv ldrb r1, [sp] @@ -981,11 +981,11 @@ _02082bac: ldrb r7, [r5, #0x12] ldr r0, [r6] mov r4, #0 - bl _ZN6Course18func_ov00_0207d778Ev + bl _ZN6Course21FindCurrent_Unk_cc_04Ev mov r1, r7 mov r7, r0 ldr r0, [r6] - bl _ZN6Course18func_ov00_0207d788Ev + bl _ZN6Course14Find_Unk_cc_04Ei cmp r7, r0 ldrb r2, [sp] ldr r1, [r6] @@ -1155,7 +1155,7 @@ _ZN10MapManager18func_ov00_02082e1cEPiS0_: ; 0x02082e1c mov r6, r2 cmp r1, #0 beq _02083050 - bl _ZN6Course18func_ov00_0207d47cEv + bl _ZN6Course22IsCurrentMapInMainGridEv cmp r0, #0 bne _02083038 mvn r1, #0xff @@ -1219,18 +1219,18 @@ _02082f1c: add r2, sp, #0xc add r3, sp, #8 mov r1, r4 - bl _ZN6Course18func_ov00_0207d518EiPiS0_ + bl _ZN6Course15GetMapScreenPosEiPiS0_ cmp r0, #0 ldr r0, [r8] bne _02082fc0 add r2, sp, #0xc add r3, sp, #8 mov r1, r5 - bl _ZN6Course18func_ov00_0207d518EiPiS0_ + bl _ZN6Course15GetMapScreenPosEiPiS0_ ldr r1, [r8] add r0, sp, #6 mov r2, r5 - bl _ZN6Course18func_ov00_0207cb7cEiPS_i + bl _ZN6Course14FindMapGridPosEP5Vec2bPS_j ldrb r1, [sp, #7] add r0, sp, #4 add r2, sp, #0x28 @@ -1239,7 +1239,7 @@ _02082f1c: mov r1, r8 bl _ZN10MapManager18func_ov00_02083a54EiPS_iii ldr r0, [r8] - bl _ZN6Course18func_ov00_0207d5c4Ev + bl _ZN6Course21GetScreenMapCellSizeXEv ldrb r1, [sp, #4] ldr r3, [sp, #0xc] mov r1, r1, lsl #0xc @@ -1252,12 +1252,12 @@ _02082f1c: add r0, r3, r0, asr #12 str r0, [r7] ldr r0, [r8] - bl _ZN6Course18func_ov00_0207d5f0Ev + bl _ZN6Course21GetScreenMapCellSizeYEv ldrb r1, [sp, #5] ldr r3, [sp, #8] b _02083008 _02082fc0: - bl _ZN6Course18func_ov00_0207d5c4Ev + bl _ZN6Course21GetScreenMapCellSizeXEv ldr r2, [r8, #4] ldr r1, [sp, #0xc] ldrb r2, [r2, #0x1b] @@ -1271,7 +1271,7 @@ _02082fc0: add r0, r1, r0, asr #12 str r0, [r7] ldr r0, [r8] - bl _ZN6Course18func_ov00_0207d5f0Ev + bl _ZN6Course21GetScreenMapCellSizeYEv ldr r1, [r8, #4] ldr r3, [sp, #8] ldrb r1, [r1, #0x1c] @@ -1513,12 +1513,12 @@ _ZN10MapManager21GetCourseData_Unk_25cEv: ; 0x0208330c .global _ZN10MapManager18func_ov00_02083318Ei arm_func_start _ZN10MapManager18func_ov00_02083318Ei _ZN10MapManager18func_ov00_02083318Ei: ; 0x02083318 - ldr ip, _02083324 ; =_ZN6Course18func_ov00_0207d4e4Ei + ldr ip, _02083324 ; =_ZN6Course15IsMapInMainGridEj ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02083318Ei -_02083324: .word _ZN6Course18func_ov00_0207d4e4Ei +_02083324: .word _ZN6Course15IsMapInMainGridEj .global _ZN10MapManager18func_ov00_02083328Ev arm_func_start _ZN10MapManager18func_ov00_02083328Ev @@ -1528,7 +1528,7 @@ _ZN10MapManager18func_ov00_02083328Ev: ; 0x02083328 bl _ZN10MapManager18func_ov00_02082d08Ev mov r1, r0 ldr r0, [r4] - bl _ZN6Course18func_ov00_0207d4e4Ei + bl _ZN6Course15IsMapInMainGridEj ldmia sp!, {r4, pc} arm_func_end _ZN10MapManager18func_ov00_02083328Ev @@ -1738,7 +1738,7 @@ _ZN10MapManager18func_ov00_020834bcEP5Vec3pii: ; 0x020834bc add r2, r4, r3 mov r4, r1 ldrb r1, [r2, #0x20] - bl _ZN6Course18func_ov00_0207cbd8Ei + bl _ZN6Course14Find_Unk_cc_14Ei ldr r1, [r0] str r1, [r4] ldr r1, [r0, #4] @@ -1768,7 +1768,7 @@ _ZN10MapManager18func_ov00_02083524EP5Vec3pii: ; 0x02083524 add r2, ip, r3 mov r4, r1 ldrb r1, [r2, #0x20] - bl _ZN6Course18func_ov00_0207cbd8Ei + bl _ZN6Course14Find_Unk_cc_14Ei ldr r1, [r0] str r1, [r4] ldr r1, [r0, #4] @@ -1781,12 +1781,12 @@ _ZN10MapManager18func_ov00_02083524EP5Vec3pii: ; 0x02083524 .global _ZN10MapManager18func_ov00_02083560EiPS_j arm_func_start _ZN10MapManager18func_ov00_02083560EiPS_j _ZN10MapManager18func_ov00_02083560EiPS_j: ; 0x02083560 - ldr ip, _0208356c ; =_ZN6Course18func_ov00_0207cb7cEiPS_i + ldr ip, _0208356c ; =_ZN6Course14FindMapGridPosEP5Vec2bPS_j ldr r1, [r1] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02083560EiPS_j -_0208356c: .word _ZN6Course18func_ov00_0207cb7cEiPS_i +_0208356c: .word _ZN6Course14FindMapGridPosEP5Vec2bPS_j .global _ZN10MapManager18func_ov00_02083570Eii arm_func_start _ZN10MapManager18func_ov00_02083570Eii @@ -1807,29 +1807,29 @@ _ZN10MapManager18func_ov00_02083588Ev: ; 0x02083588 bl _ZN10MapManager18func_ov00_02082d08Ev mov r1, r0 ldr r0, [r4] - bl _ZN6Course18func_ov00_0207cc6cEv + bl _ZN6Course14Find_Unk_cc_08Ev ldmia sp!, {r4, pc} arm_func_end _ZN10MapManager18func_ov00_02083588Ev .global _ZN10MapManager18func_ov00_020835a4Ev arm_func_start _ZN10MapManager18func_ov00_020835a4Ev _ZN10MapManager18func_ov00_020835a4Ev: ; 0x020835a4 - ldr ip, _020835b0 ; =_ZN6Course18func_ov00_0207d61cEv + ldr ip, _020835b0 ; =_ZN6Course13Get_Unk_c8_00Ev ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_020835a4Ev -_020835b0: .word _ZN6Course18func_ov00_0207d61cEv +_020835b0: .word _ZN6Course13Get_Unk_c8_00Ev .global _ZN10MapManager18func_ov00_020835b4Ev arm_func_start _ZN10MapManager18func_ov00_020835b4Ev _ZN10MapManager18func_ov00_020835b4Ev: ; 0x020835b4 - ldr ip, _020835c0 ; =_ZN6Course15GetUnk_c8_Unk_4Ev + ldr ip, _020835c0 ; =_ZN6Course13Get_Unk_c8_04Ev ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_020835b4Ev -_020835c0: .word _ZN6Course15GetUnk_c8_Unk_4Ev +_020835c0: .word _ZN6Course13Get_Unk_c8_04Ev .global _ZN10MapManager18func_ov00_020835c4Eii arm_func_start _ZN10MapManager18func_ov00_020835c4Eii @@ -1847,12 +1847,12 @@ _ZN10MapManager18func_ov00_020835c4Eii: ; 0x020835c4 .global _ZN10MapManager18func_ov00_020835e4EiPiS0_ arm_func_start _ZN10MapManager18func_ov00_020835e4EiPiS0_ _ZN10MapManager18func_ov00_020835e4EiPiS0_: ; 0x020835e4 - ldr ip, _020835f0 ; =_ZN6Course18func_ov00_0207caa8Eiii + ldr ip, _020835f0 ; =_ZN6Course18func_ov00_0207caa8EiPiPc ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_020835e4EiPiS0_ -_020835f0: .word _ZN6Course18func_ov00_0207caa8Eiii +_020835f0: .word _ZN6Course18func_ov00_0207caa8EiPiPc .global _ZN10MapManager18func_ov00_020835f4Ei arm_func_start _ZN10MapManager18func_ov00_020835f4Ei @@ -3579,7 +3579,7 @@ _ZN10MapManager18func_ov00_0208499cEv: ; 0x0208499c movne r0, #0 ldmneia sp!, {r4, pc} ldr r0, [r4] - bl _ZN6Course18func_ov00_0207d47cEv + bl _ZN6Course22IsCurrentMapInMainGridEv ldmia sp!, {r4, pc} arm_func_end _ZN10MapManager18func_ov00_0208499cEv @@ -3771,17 +3771,17 @@ _02084b8c: _02084bb0: ldr r0, [r0] mov r2, r3 - bl _ZN6Course18func_ov00_0207d8b4Ev + bl _ZN6Course15SetFlag0_Unk_ccEib ldmia sp!, {r3, pc} _02084bc0: ldr r0, [r0] mov r2, r3 - bl _ZN6Course18func_ov00_0207d7dcEii + bl _ZN6Course8SetFlag0Ejb ldmia sp!, {r3, pc} _02084bd0: ldr r0, [r0] mov r2, r3 - bl _ZN6Course18func_ov00_0207d848Eii + bl _ZN6Course8SetFlag1Ejb ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084b38Eiii @@ -3812,15 +3812,15 @@ _02084c0c: ldmia sp!, {r3, pc} _02084c30: ldr r0, [r0] - bl _ZN6Course18func_ov00_0207d8d4Ei + bl _ZN6Course15GetFlag0_Unk_ccEi ldmia sp!, {r3, pc} _02084c3c: ldr r0, [r0] - bl _ZN6Course18func_ov00_0207d828Ei + bl _ZN6Course8GetFlag0Ej ldmia sp!, {r3, pc} _02084c48: ldr r0, [r0] - bl _ZN6Course18func_ov00_0207d894Ei + bl _ZN6Course8SetFlag1Ej ldmia sp!, {r3, pc} _02084c54: mov r0, #0 @@ -3830,22 +3830,22 @@ _02084c54: .global _ZN10MapManager18func_ov00_02084c5cEii arm_func_start _ZN10MapManager18func_ov00_02084c5cEii _ZN10MapManager18func_ov00_02084c5cEii: ; 0x02084c5c - ldr ip, _02084c68 ; =_ZN6Course18func_ov00_0207d8ecEv + ldr ip, _02084c68 ; =_ZN6Course15SetFlag1_Unk_ccEib ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02084c5cEii -_02084c68: .word _ZN6Course18func_ov00_0207d8ecEv +_02084c68: .word _ZN6Course15SetFlag1_Unk_ccEib .global _ZN10MapManager18func_ov00_02084c6cEi arm_func_start _ZN10MapManager18func_ov00_02084c6cEi _ZN10MapManager18func_ov00_02084c6cEi: ; 0x02084c6c - ldr ip, _02084c78 ; =_ZN6Course18func_ov00_0207d90cEi + ldr ip, _02084c78 ; =_ZN6Course15GetFlag1_Unk_ccEi ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02084c6cEi -_02084c78: .word _ZN6Course18func_ov00_0207d90cEi +_02084c78: .word _ZN6Course15GetFlag1_Unk_ccEi .global _ZN10MapManager18func_ov00_02084c7cEi arm_func_start _ZN10MapManager18func_ov00_02084c7cEi @@ -3854,7 +3854,7 @@ _ZN10MapManager18func_ov00_02084c7cEi: ; 0x02084c7c cmp r1, #0 ldmltia sp!, {r3, pc} ldr r0, [r0] - bl _ZN6Course18func_ov00_0207d924Ev + bl _ZN6Course15SetFlag2_Unk_ccEib ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084c7cEi @@ -3866,7 +3866,7 @@ _ZN10MapManager18func_ov00_02084c94Ei: ; 0x02084c94 movlt r0, #0 ldmltia sp!, {r3, pc} ldr r0, [r0] - bl _ZN6Course18func_ov00_0207d944Ei + bl _ZN6Course15GetFlag2_Unk_ccEi ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084c94Ei @@ -3877,7 +3877,7 @@ _ZN10MapManager18func_ov00_02084cb0Ei: ; 0x02084cb0 cmp r1, #0 ldmltia sp!, {r3, pc} ldr r0, [r0] - bl _ZN6Course18func_ov00_0207d95cEv + bl _ZN6Course15SetFlag3_Unk_ccEib ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084cb0Ei @@ -3900,7 +3900,7 @@ _ZN10MapManager18func_ov00_02084ce4Ei: ; 0x02084ce4 cmp r1, #0 ldmltia sp!, {r3, pc} ldr r0, [r0] - bl _ZN6Course18func_ov00_0207d994Ev + bl _ZN6Course18func_ov00_0207d994Eii ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084ce4Ei @@ -3912,7 +3912,7 @@ _ZN10MapManager18func_ov00_02084cfcEi: ; 0x02084cfc movlt r0, #0 ldmltia sp!, {r3, pc} ldr r0, [r0] - bl _ZN6Course18func_ov00_0207d9b4Ei + bl _ZN6Course15GetFlag3_Unk_ccEi ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084cfcEi diff --git a/asm/ov00/ov00_0207da38.inc b/asm/ov00/ov00_0207da38.inc index 27c83372..2834f6a1 100644 --- a/asm/ov00/ov00_0207da38.inc +++ b/asm/ov00/ov00_0207da38.inc @@ -1,7 +1,7 @@ #pragma once .extern Divide .extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p -.extern _ZN6Course18func_ov00_0207cbd8Ei +.extern _ZN6Course14Find_Unk_cc_14Ei .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern data_027e0618 diff --git a/asm/ov00/ov00_0207da38.s b/asm/ov00/ov00_0207da38.s index 47c6c53d..c8342dc2 100644 --- a/asm/ov00/ov00_0207da38.s +++ b/asm/ov00/ov00_0207da38.s @@ -222,7 +222,7 @@ func_ov00_0207dce4: ; 0x0207dce4 mov r2, r3, lsl #0xc str r5, [sp] str r2, [sp, #4] - bl _ZN6Course18func_ov00_0207cbd8Ei + bl _ZN6Course14Find_Unk_cc_14Ei mov ip, r5 add r5, sp, #0x20 ldmia r0, {r0, r1, r2} diff --git a/asm/ov00/ov00_020980f4.inc b/asm/ov00/ov00_020980f4.inc index 3a4153df..04091b0a 100644 --- a/asm/ov00/ov00_020980f4.inc +++ b/asm/ov00/ov00_020980f4.inc @@ -95,7 +95,6 @@ .extern data_027e0d38 .extern data_027e0db0 .extern data_027e0de4 -.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f78 @@ -360,6 +359,7 @@ .extern func_ov40_021833c4 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern strcat .extern strcmp diff --git a/asm/ov02.inc b/asm/ov02.inc index 3566fa97..2ede9c1d 100644 --- a/asm/ov02.inc +++ b/asm/ov02.inc @@ -1,6 +1,7 @@ #pragma once .extern Divide .extern LoadTreasureItemFanfare +.extern _ZN10MapManager18func_ov00_020847e0Ev .extern _ZN11ItemManager13EquipShipPartEjj .extern _ZN14AdventureFlags3GetEj .extern _ZN9SysObjectdlEPv @@ -31,7 +32,6 @@ .extern data_027e0d0c .extern data_027e0d44 .extern data_027e0d78 -.extern gMapManager .extern data_027e0f88 .extern data_027e0f8c .extern data_027e0fbc @@ -115,7 +115,6 @@ .extern func_0204f614 .extern func_0204f754 .extern func_ov00_0207b1fc -.extern _ZN10MapManager18func_ov00_020847e0Ev .extern func_ov00_0208de04 .extern func_ov00_0208dec8 .extern func_ov00_0208def0 @@ -260,3 +259,4 @@ .extern func_ov45_0218db94 .extern gAdventureFlags .extern gItemManager +.extern gMapManager diff --git a/asm/ov04.inc b/asm/ov04.inc index 406a2295..df85ac98 100644 --- a/asm/ov04.inc +++ b/asm/ov04.inc @@ -57,16 +57,16 @@ .extern _ZN14OverlayManager6UnloadEj .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN6Course11Find_Unk_ccEj .extern _ZN6Course13SetCourseNameEPc +.extern _ZN6Course14FindMapGridPosEP5Vec2bPS_j +.extern _ZN6Course14Find_Unk_cc_0cEi .extern _ZN6Course14GetMCSFilePathEiii .extern _ZN6Course14GetMRCFilePathEiii -.extern _ZN6Course18func_ov00_0207ca78Ev -.extern _ZN6Course18func_ov00_0207cb7cEiPS_i -.extern _ZN6Course18func_ov00_0207ce20Eiiii -.extern _ZN6Course18func_ov00_0207d4e4Ei -.extern _ZN6Course18func_ov00_0207d7a4Ev +.extern _ZN6Course15IsMapInMainGridEj +.extern _ZN6Course18func_ov00_0207ca78Eici +.extern _ZN6Course18func_ov00_0207ce20EiiPci .extern _ZN6Course18func_ov00_0207d7bcEv -.extern _ZN6Course18func_ov00_0207d9ccEi .extern _ZN9ActorType13func_0203e7c8Ev .extern _ZN9ActorType4FindEj .extern _ZN9SysObjectdlEPv diff --git a/asm/ov04.s b/asm/ov04.s index f8aee019..5b66ffcb 100644 --- a/asm/ov04.s +++ b/asm/ov04.s @@ -3141,7 +3141,7 @@ func_ov04_02102264: ; 0x02102264 beq _021022fc ldr r1, [r5] add r0, sp, #0x18 - blx _ZN6Course18func_ov00_0207cb7cEiPS_i + blx _ZN6Course14FindMapGridPosEP5Vec2bPS_j add r0, sp, #0x18 ldrb r2, [r0] ldr r1, [r5] @@ -23699,7 +23699,7 @@ _0210c218: add r0, sp, #8 add r1, r4, #0 add r2, r6, #0 - blx _ZN6Course18func_ov00_0207cb7cEiPS_i + blx _ZN6Course14FindMapGridPosEP5Vec2bPS_j strb r6, [r5, #0x13] add r0, sp, #8 ldrb r1, [r0, #1] @@ -23719,7 +23719,7 @@ _0210c218: add r0, r4, #0 add r1, r6, #0 add r3, sp - blx _ZN6Course18func_ov00_0207ce20Eiiii + blx _ZN6Course18func_ov00_0207ce20EiiPci add r0, r5, #0 ldr r2, [r0] ldr r1, _0210c3e4 ; =0x000004c0 @@ -23733,7 +23733,7 @@ _0210c218: add r0, r4, #0 add r1, r6, #0 add r3, sp - blx _ZN6Course18func_ov00_0207ce20Eiiii + blx _ZN6Course18func_ov00_0207ce20EiiPci ldr r0, _0210c3ec ; =data_027e0f6c ldr r1, _0210c3e8 ; =0x00000440 ldr r0, [r0] @@ -23750,7 +23750,7 @@ _0210c218: add r0, r4, #0 add r1, r6, #0 add r3, sp - blx _ZN6Course18func_ov00_0207ce20Eiiii + blx _ZN6Course18func_ov00_0207ce20EiiPci mov r0, #0 str r0, [sp, #0xc] ldr r0, _0210c3d8 ; =0x00000540 @@ -23773,7 +23773,7 @@ _0210c218: add r0, r4, #0 add r1, r6, #0 mov r2, #1 - blx _ZN6Course18func_ov00_0207ca78Ev + blx _ZN6Course18func_ov00_0207ca78Eici add r0, r5, #0 ldr r1, [r0] ldr r1, [r1, #0x14] @@ -23802,7 +23802,7 @@ _0210c342: add r0, r4, #0 add r1, r6, #0 add r3, sp - blx _ZN6Course18func_ov00_0207ce20Eiiii + blx _ZN6Course18func_ov00_0207ce20EiiPci ldr r0, _0210c3f0 ; =data_027e103c ldr r1, _0210c3d8 ; =0x00000540 ldr r0, [r0] @@ -23906,7 +23906,7 @@ func_ov04_0210c3fc: ; 0x0210c3fc ldr r2, [r5, #0x24] add r0, r6, #0 add r3, sp, #0x2c - blx _ZN6Course18func_ov00_0207ce20Eiiii + blx _ZN6Course18func_ov00_0207ce20EiiPci mov r2, #0 ldr r0, _0210c4f8 ; =data_02057878 str r2, [sp, #0x20] @@ -23927,7 +23927,7 @@ func_ov04_0210c3fc: ; 0x0210c3fc ldr r2, [r5, #0x24] add r0, r6, #0 add r3, sp, #0x6c - blx _ZN6Course18func_ov00_0207ce20Eiiii + blx _ZN6Course18func_ov00_0207ce20EiiPci mov r1, #0 ldr r0, _0210c4f8 ; =data_02057878 str r1, [sp, #0xc] @@ -24922,7 +24922,7 @@ func_ov04_0210cc20: ; 0x0210cc20 ldrb r1, [r4, #0x13] ldr r2, [r4, #0x24] add r3, sp, #0x10 - blx _ZN6Course18func_ov00_0207ce20Eiiii + blx _ZN6Course18func_ov00_0207ce20EiiPci mov r0, #0 str r0, [sp, #0xc] add r0, sp, #0x10 @@ -24951,7 +24951,7 @@ func_ov04_0210cc58: ; 0x0210cc58 bne _0210cc72 add r0, r1, #0 add r1, r2, #0 - blx _ZN6Course18func_ov00_0207d7a4Ev + blx _ZN6Course14Find_Unk_cc_0cEi add r1, r0, #0 ldr r0, _0210cc78 ; =gOverlayManager bl func_ov03_020faa64 @@ -29104,7 +29104,7 @@ func_ov04_0210f07c: ; 0x0210f07c ldrb r1, [r4] cmp r1, #0xff beq _0210f0f4 - blx _ZN6Course18func_ov00_0207d9ccEi + blx _ZN6Course11Find_Unk_ccEj cmp r0, #0 bne _0210f0f4 ldr r1, _0210f0f8 ; =data_027e0ce0 @@ -29296,20 +29296,20 @@ _0210f1ea: add r0, #2 add r1, r5, #0 add r2, r7, #0 - blx _ZN6Course18func_ov00_0207cb7cEiPS_i + blx _ZN6Course14FindMapGridPosEP5Vec2bPS_j add r0, sp, #0x18 ldrb r0, [r0, #2] add r1, r5, #0 add r2, r7, #0 str r0, [sp, #4] add r0, sp, #0x18 - blx _ZN6Course18func_ov00_0207cb7cEiPS_i + blx _ZN6Course14FindMapGridPosEP5Vec2bPS_j add r0, sp, #0x18 ldrb r0, [r0, #1] add r1, r7, #0 str r0, [sp] add r0, r5, #0 - blx _ZN6Course18func_ov00_0207d4e4Ei + blx _ZN6Course15IsMapInMainGridEj cmp r0, #0 beq _0210f284 add r1, r5, #0 diff --git a/asm/ov15.inc b/asm/ov15.inc index d30b0cfd..9dc863fd 100644 --- a/asm/ov15.inc +++ b/asm/ov15.inc @@ -419,11 +419,11 @@ .extern func_ov00_0207c444 .extern func_ov00_0207c474 .extern func_ov00_0207c518 -.extern _ZN6Course18func_ov00_0207ca78Ev -.extern _ZN6Course18func_ov00_0207cb7cEiPS_i -.extern _ZN6Course18func_ov00_0207ce20Eiiii -.extern _ZN6Course18func_ov00_0207d634Ei -.extern _ZN6Course18func_ov00_0207d6ecEv +.extern _ZN6Course18func_ov00_0207ca78Eici +.extern _ZN6Course14FindMapGridPosEP5Vec2bPS_j +.extern _ZN6Course18func_ov00_0207ce20EiiPci +.extern _ZN6Course23IsAdjacentMapOnMainGridEi +.extern _ZN6Course14GetAdjacentMapEi .extern _ZN6Course18func_ov00_0207d7bcEv .extern func_ov00_0207da38 .extern func_ov00_0207dce4 diff --git a/asm/ov15.s b/asm/ov15.s index f59f499c..e0c51a1e 100644 --- a/asm/ov15.s +++ b/asm/ov15.s @@ -11705,7 +11705,7 @@ _02129058: add r0, sp, #8 mov r1, r4 mov r2, r6 - bl _ZN6Course18func_ov00_0207cb7cEiPS_i + bl _ZN6Course14FindMapGridPosEP5Vec2bPS_j strb r6, [r7, #0x13] ldrb r3, [sp, #9] ldrb r2, [sp, #8] @@ -11724,7 +11724,7 @@ _02129058: mov r0, r4 mov r1, r6 add r3, r3, #0xa8 - bl _ZN6Course18func_ov00_0207ce20Eiiii + bl _ZN6Course18func_ov00_0207ce20EiiPci mov r0, #0 str r0, [sp, #0xc] add r0, sp, #0x400 @@ -11749,7 +11749,7 @@ _02129058: mov r0, r4 mov r1, r6 add r3, sp, #0x10 - bl _ZN6Course18func_ov00_0207ce20Eiiii + bl _ZN6Course18func_ov00_0207ce20EiiPci ldr r0, _0212923c ; =data_027e0f6c add r1, sp, #0x10 ldr r0, [r0] @@ -11761,7 +11761,7 @@ _02129058: mov r0, r4 mov r1, r6 mov r2, #1 - bl _ZN6Course18func_ov00_0207ca78Ev + bl _ZN6Course18func_ov00_0207ca78Eici mov r0, r7 ldr r1, [r0] ldr r1, [r1, #0x14] @@ -11773,7 +11773,7 @@ _02129058: mov r1, r6 mov r0, r4 add r3, r3, #0xa8 - bl _ZN6Course18func_ov00_0207ce20Eiiii + bl _ZN6Course18func_ov00_0207ce20EiiPci ldr r0, _02129240 ; =data_027e103c add r1, sp, #0x400 ldr r0, [r0] @@ -11869,7 +11869,7 @@ func_ov15_0212925c: ; 0x0212925c _02129300: mov r0, r8 mov r1, r7 - bl _ZN6Course18func_ov00_0207d634Ei + bl _ZN6Course23IsAdjacentMapOnMainGridEi cmp r0, #0 beq _021296ac ldr r1, _021296c4 ; =data_027e0ce0 @@ -11895,7 +11895,7 @@ _0212935c: str r0, [r1, #0x188] mov r0, r8 mov r1, r7 - bl _ZN6Course18func_ov00_0207d6ecEv + bl _ZN6Course14GetAdjacentMapEi mov r1, #0 str r1, [sp, #0x10] mov r1, #0x47 @@ -11922,7 +11922,7 @@ _0212935c: str r0, [sp, #0x18] mov r0, r8 mov r1, r7 - bl _ZN6Course18func_ov00_0207d634Ei + bl _ZN6Course23IsAdjacentMapOnMainGridEi cmp r0, #0 beq _021293f8 mov r0, r9 @@ -12044,7 +12044,7 @@ _0212953c: _02129598: mov r0, r8 mov r1, r7 - bl _ZN6Course18func_ov00_0207d634Ei + bl _ZN6Course23IsAdjacentMapOnMainGridEi cmp r0, #0 beq _021295ec mov r0, r9 @@ -12096,7 +12096,7 @@ _0212960c: bl func_ov00_02093a5c mov r0, r8 mov r1, r7 - bl _ZN6Course18func_ov00_0207d634Ei + bl _ZN6Course23IsAdjacentMapOnMainGridEi cmp r0, #0 beq _0212969c mov r0, r9 diff --git a/asm/ov18.inc b/asm/ov18.inc index db3b770b..816f19af 100644 --- a/asm/ov18.inc +++ b/asm/ov18.inc @@ -231,8 +231,8 @@ .extern func_ov00_0207c2e8 .extern func_ov00_0207c444 .extern func_ov00_0207c474 -.extern _ZN6Course18func_ov00_0207d634Ei -.extern _ZN6Course18func_ov00_0207d6ecEv +.extern _ZN6Course23IsAdjacentMapOnMainGridEi +.extern _ZN6Course14GetAdjacentMapEi .extern func_ov00_0207da38 .extern func_ov00_0207ddf4 .extern func_ov00_0207e060 diff --git a/asm/ov18.s b/asm/ov18.s index 97efd237..6bbccabc 100644 --- a/asm/ov18.s +++ b/asm/ov18.s @@ -345,7 +345,7 @@ func_ov18_0215b86c: ; 0x0215b86c _0215b934: mov r0, r8 mov r1, r7 - bl _ZN6Course18func_ov00_0207d634Ei + bl _ZN6Course23IsAdjacentMapOnMainGridEi cmp r0, #0 beq _0215bd54 ldr r1, _0215bd74 ; =data_027e0ce0 @@ -371,7 +371,7 @@ _0215b990: str r0, [r1, #0x190] mov r0, r8 mov r1, r7 - bl _ZN6Course18func_ov00_0207d6ecEv + bl _ZN6Course14GetAdjacentMapEi mov r1, #0 str r1, [sp, #0xc] mov r1, #0x47 diff --git a/asm/ov20.inc b/asm/ov20.inc index 5f5a1e50..5fc86e7f 100644 --- a/asm/ov20.inc +++ b/asm/ov20.inc @@ -1,6 +1,14 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18Get_MapData_Unk_d0Ev +.extern _ZN10MapManager18Get_MapData_Unk_d8Ev +.extern _ZN10MapManager18func_ov00_020836bcEjPi +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p .extern _ZN10PlayerBase10SetVisibleEb .extern _ZN11ItemManager7AddItemEi .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList @@ -11,6 +19,13 @@ .extern _ZN13LinkStateBase18func_ov00_020a8a4cEii .extern _ZN13LinkStateBase18func_ov00_020a8d40Ev .extern _ZN13LinkStateBase20GetPlayerControlDataEv +.extern _ZN14AdventureFlags18func_Ov00_02097810Ei +.extern _ZN14AdventureFlags18func_ov00_02097968Ei +.extern _ZN14AdventureFlags18func_ov00_02097b9cEv +.extern _ZN14AdventureFlags18func_ov00_02097bccEv +.extern _ZN14AdventureFlags18func_ov00_0209809cEv +.extern _ZN14AdventureFlags3GetEj +.extern _ZN14AdventureFlags3SetEjb .extern _ZN5Actor10GetAngleToEP5Vec3p .extern _ZN5Actor10SetUnk_11bEv .extern _ZN5Actor11SetVelocityEP5Vec3p @@ -77,9 +92,12 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN9ActorTypeC1EjPFP5ActorvEPv +.extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern _ZNK11ItemManager19GetActiveFairyLevelEi +.extern __register_global_object .extern data_02050f54 .extern data_02056be4 .extern data_027e0764 @@ -89,7 +107,6 @@ .extern data_027e0d78 .extern data_027e0de4 .extern data_027e0e58 -.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f84 @@ -146,14 +163,11 @@ .extern func_02036770 .extern func_02036edc .extern func_020370d0 -.extern _ZN9ActorTypeC1EjPFP5ActorvEPv -.extern _ZN9ActorTypeD1Ev .extern func_0203eba8 .extern func_0203ebc8 .extern func_02042f68 .extern func_0204f614 .extern func_0204f754 -.extern __register_global_object .extern func_ov00_02079e68 .extern func_ov00_02079eb4 .extern func_ov00_0207a1c8 @@ -167,14 +181,6 @@ .extern func_ov00_0207c444 .extern func_ov00_0207c474 .extern func_ov00_02081f4c -.extern _ZN10MapManager18Get_MapData_Unk_d0Ev -.extern _ZN10MapManager18Get_MapData_Unk_d8Ev -.extern _ZN10MapManager18func_ov00_020836bcEjPi -.extern _ZN10MapManager18func_ov00_02083770Eji -.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p -.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi -.extern _ZN10MapManager16MapData_vfunc_68Ev -.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p .extern func_ov00_02087d34 .extern func_ov00_02087d84 .extern func_ov00_02088000 @@ -218,13 +224,6 @@ .extern func_ov00_0208ccdc .extern func_ov00_0208cd0c .extern func_ov00_02094824 -.extern _ZN14AdventureFlags3GetEj -.extern _ZN14AdventureFlags3SetEjb -.extern _ZN14AdventureFlags18func_Ov00_02097810Ei -.extern _ZN14AdventureFlags18func_ov00_02097968Ei -.extern _ZN14AdventureFlags18func_ov00_02097b9cEv -.extern _ZN14AdventureFlags18func_ov00_02097bccEv -.extern _ZN14AdventureFlags18func_ov00_0209809cEv .extern func_ov00_0209a4f4 .extern func_ov00_0209a508 .extern func_ov00_020a61ac @@ -426,4 +425,5 @@ .extern func_ov17_021687f0 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern strncpy diff --git a/asm/ov28.inc b/asm/ov28.inc index 4f9adee9..a585d5dc 100644 --- a/asm/ov28.inc +++ b/asm/ov28.inc @@ -102,7 +102,6 @@ .extern data_027e0c68 .extern data_027e0ce0 .extern data_027e0e58 -.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -401,6 +400,7 @@ .extern func_ov14_0214aa2c .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern strcat .extern strcpy diff --git a/asm/ov32.inc b/asm/ov32.inc index cfd6bb1b..28d66cbe 100644 --- a/asm/ov32.inc +++ b/asm/ov32.inc @@ -90,7 +90,6 @@ .extern data_027e0d78 .extern data_027e0e58 .extern data_027e0e5c -.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -347,4 +346,5 @@ .extern func_ov14_0213b984 .extern func_ov14_0213d480 .extern gAdventureFlags +.extern gMapManager .extern strncpy diff --git a/asm/ov38.inc b/asm/ov38.inc index 72eaa4fb..8ef6b033 100644 --- a/asm/ov38.inc +++ b/asm/ov38.inc @@ -1,6 +1,8 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084be0Eii .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN14AdventureFlags18func_Ov00_02097810Ei @@ -60,6 +62,8 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN9ActorTypeC1EjPFP5ActorvEPv +.extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern __register_global_object @@ -75,7 +79,6 @@ .extern data_027e0d0c .extern data_027e0e58 .extern data_027e0e5c -.extern gMapManager .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f94 @@ -152,8 +155,6 @@ .extern func_0202e58c .extern func_02036770 .extern func_02036ce4 -.extern _ZN9ActorTypeC1EjPFP5ActorvEPv -.extern _ZN9ActorTypeD1Ev .extern func_0204f614 .extern func_0204f754 .extern func_ov00_0207a1c8 @@ -162,8 +163,6 @@ .extern func_ov00_0207c358 .extern func_ov00_0207c444 .extern func_ov00_0207c7e8 -.extern _ZN10MapManager18func_ov00_02084b38Eiii -.extern _ZN10MapManager18func_ov00_02084be0Eii .extern func_ov00_02087d34 .extern func_ov00_02087d84 .extern func_ov00_02088000 @@ -273,4 +272,5 @@ .extern func_ov57_02199e24 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern strcpy diff --git a/asm/ov52.inc b/asm/ov52.inc index 31f5743a..68329ec3 100644 --- a/asm/ov52.inc +++ b/asm/ov52.inc @@ -73,7 +73,6 @@ .extern data_027e0ce0 .extern data_027e0d3c .extern data_027e0e58 -.extern gMapManager .extern data_027e0f68 .extern data_027e0f78 .extern data_027e0fa0 @@ -208,5 +207,6 @@ .extern func_ov14_0214a92c .extern func_ov14_0214aa0c .extern gAdventureFlags +.extern gMapManager .extern gOverlayManager .extern strcpy diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp index 3b51529b..917a5d09 100644 --- a/include/Map/Course.hpp +++ b/include/Map/Course.hpp @@ -3,6 +3,8 @@ #include "global.h" #include "types.h" +#include "Map/Course_Unk_c8.hpp" +#include "Map/Course_Unk_cc.hpp" #include "Physics/AABB.hpp" #include "System/SysNew.hpp" @@ -27,21 +29,18 @@ class Course : public SysObject { /* 004 */ CourseType mType; /* 008 */ unk32 mUnk_008; /* 00c */ char mName[0x10]; - /* 01c */ unk8 mUnk_01c; - /* 01d */ unk8 mUnk_01d; + /* 01c */ Vec2b mCurrMapPos; // position in the map grid /* 01e */ unk8 mUnk_01e; /* 01f */ unk8 mUnk_01f; - /* 020 */ unk8 mUnk_020[10][10]; - /* 084 */ s8 mUnk_084; - /* 084 */ s8 mUnk_085; - /* 084 */ s8 mUnk_086; - /* 084 */ s8 mUnk_087; - /* 088 */ unk32 mUnk_088; - /* 08c */ unk32 mUnk_08c; + /* 020 */ unk8 mMapGrid[10][10]; + /* 084 */ Vec2b mMainGrid; // part of the grid where you can walk off screen to another map + /* 086 */ Vec2b mMainGridSize; + /* 088 */ s32 mScreenMapOffsetX; + /* 08c */ s32 mScreenMapOffsetY; /* 090 */ unk32 mUnk_090; /* 094 */ unk32 mUnk_094; /* 098 */ AABB mBounds; - /* 0b0 */ s8 mUnk_0b0; + /* 0b0 */ s8 mNumMaps; /* 0b1 */ unk8 mUnk_0b1; /* 0b2 */ unk8 mUnk_0b2; /* 0b3 */ unk8 mUnk_0b3; @@ -50,64 +49,64 @@ class Course : public SysObject { /* 0bc */ unk32 mUnk_0bc; /* 0c0 */ unk32 mUnk_0c0; /* 0c4 */ unk32 mUnk_0c4; - /* 0c8 */ void *mUnk_0c8; - /* 0cc */ unk32 mUnk_0cc[100]; + /* 0c8 */ Course_Unk_c8 *mUnk_0c8; + /* 0cc */ Course_Unk_cc *mUnk_0cc[100]; /* 25c */ bool mUnk_25c; /* 25d */ bool mBlueWarpOpen; /* 25e */ unk8 mUnk_25e; /* 25f */ unk8 mUnk_25f; /* 260 */ unk32 mNumKeys; - /* 264 */ unk32 mUnk_264; - /* 268 */ unk32 mFlags; // knows which doors are open in a dungeon + /* 260 */ unk32 mFlags0[1]; + /* 268 */ unk32 mFlags1[1]; // knows which doors are open in a dungeon /* 26c */ - unk8 GetDungeonProgress(CourseProgress *param_2); - unk8 func_ov00_0207ca28(unk32 param_2, unk32 param_3, unk32 param_4); - char * SetCourseName(char *src); - static unk8 func_ov00_0207ca78(); - bool func_ov00_0207caa8(unk32 param_2, unk32 param_3, unk32 param_4); - unk32 func_ov00_0207cb30(unk32 param_2); - static unk8 func_ov00_0207cb7c(unk32 param_1, Course *param_2, unk32 param_3); - Vec3p * func_ov00_0207cbd8(unk32 param_2); - void func_ov00_0207cbe8(unk32 param_2); - unk8 func_ov00_0207cc24(unk32 param_2); - unk32 func_ov00_0207cc6c(); + void GetDungeonProgress(CourseProgress *param_2); + void func_ov00_0207ca28(s32 param_2, unk32 param_3, unk32 param_4); + char* SetCourseName(char *src); + void func_ov00_0207ca78(unk32 param_2, unk8 param_3, unk32 param_4); + bool func_ov00_0207caa8(s32 param_2, unk32 *param_3, unk8 *param_4); + unk32 func_ov00_0207cb30(s32 param_2); + static void FindMapGridPos(Vec2b *pos, Course *param_2, u32 map); + Vec3p* Find_Unk_cc_14(unk32 param_2); + void func_ov00_0207cbe8(s32 param_2); + unk8 func_ov00_0207cc24(s32 param_2); + unk32 Find_Unk_cc_08(); void GetMCSFilePath(unk32 buf, s32 fileIndex, unk32 fileType); void GetMRCFilePath(unk32 param_2, unk32 buf, unk32 param_4); - unk8 func_ov00_0207ce20(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); - static unk8 func_ov00_0207ce4c(unk8 param_1, unk8 param_2, unk8 param_3, unk8 param_4, unk32 param_5, unk32 param_6); - bool func_ov00_0207d404(unk32 param_2, unk32 param_3, unk32 param_4); - bool func_ov00_0207d47c(); - bool func_ov00_0207d490(unk32 param_2, unk32 param_3); - bool func_ov00_0207d4e4(unk32 param_2); - bool func_ov00_0207d518(s32 param_2, s32 *param_3, s32 *param_4); - unk8 func_ov00_0207d5c4(); - unk8 func_ov00_0207d5f0(); - unk8 func_ov00_0207d61c(); - unk8 GetUnk_c8_Unk_4(); - bool func_ov00_0207d634(unk32 param_2); - unk8 func_ov00_0207d6ac(unk32 param_2, unk32 param_3); - static unk8 func_ov00_0207d6ec(); - unk8 func_ov00_0207d738(unk32 param_2); - unk8 func_ov00_0207d758(unk32 param_2); - static unk8 func_ov00_0207d778(); - static unk8 func_ov00_0207d788(); - static unk8 func_ov00_0207d7a4(); + void func_ov00_0207ce20(unk32 param_2, unk32 param_3, char *param_4, unk32 param_5); + void func_ov00_0207ce4c(s32 param_2, s32 param_3, unk32 param_4, char *param_5, unk32 param_6); + bool func_ov00_0207d404(s32 param_2, unk32 param_3, unk32 param_4); + bool IsCurrentMapInMainGrid(); + bool IsInMainGrid(s32 x, s32 y); + bool IsMapInMainGrid(u32 map); + bool GetMapScreenPos(s32 map, s32 *x, s32 *y); + u32 GetScreenMapCellSizeX(); + u32 GetScreenMapCellSizeY(); + unk32 Get_Unk_c8_00(); + unk32 Get_Unk_c8_04(); + bool IsAdjacentMapOnMainGrid(unk32 dir); + bool HasGridMap(s32 x, s32 y); + unk8 GetAdjacentMap(unk32 dir); + u32 GetAdjacentMapX(s32 ir); + u32 GetAdjacentMapY(s32 dir); + u16 FindCurrent_Unk_cc_04(); + u32 Find_Unk_cc_04(unk32 param_2); + unk32 Find_Unk_cc_0c(unk32 map); void func_ov00_0207d7bc(); - unk8 func_ov00_0207d7dc(unk32 param_2, unk32 param_3); - unk8 func_ov00_0207d828(unk32 param_2); - unk8 func_ov00_0207d848(unk32 param_2, unk32 param_3); - unk8 func_ov00_0207d894(unk32 param_2); - static unk8 func_ov00_0207d8b4(); - bool func_ov00_0207d8d4(unk32 param_2); - static unk8 func_ov00_0207d8ec(); - bool func_ov00_0207d90c(unk32 param_2); - static unk8 func_ov00_0207d924(); - bool func_ov00_0207d944(unk32 param_2); - static unk8 func_ov00_0207d95c(); + void SetFlag0(u32 index, bool value); + bool GetFlag0(u32 index); + void SetFlag1(u32 index, bool value); + bool SetFlag1(u32 index); + void SetFlag0_Unk_cc(unk32 index, bool value); + bool GetFlag0_Unk_cc(unk32 param_2); + void SetFlag1_Unk_cc(unk32 param_2, bool param_3); + bool GetFlag1_Unk_cc(unk32 param_2); + void SetFlag2_Unk_cc(unk32 param_2, bool param_3); + bool GetFlag2_Unk_cc(unk32 param_2); + void SetFlag3_Unk_cc(unk32 param_2, bool param_3); bool func_ov00_0207d97c(unk32 param_2); - static unk8 func_ov00_0207d994(); - bool func_ov00_0207d9b4(unk32 param_2); - unk32 func_ov00_0207d9cc(unk32 param_2); - s32 func_ov00_0207da14(); + void func_ov00_0207d994(unk32 param_2, unk32 param_3); + bool GetFlag3_Unk_cc(unk32 param_2); + Course_Unk_cc* Find_Unk_cc(u32 map); + Course_Unk_cc* FindCurrent_Unk_cc(); }; diff --git a/include/Map/Course_Unk_c8.hpp b/include/Map/Course_Unk_c8.hpp new file mode 100644 index 00000000..317f2b70 --- /dev/null +++ b/include/Map/Course_Unk_c8.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +class Course_Unk_c8 : public SysObject { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk8 mUnk_0c; + /* 0d */ unk8 mUnk_0d[3]; + /* 10 */ void *mUnk_10; + /* 14 */ s32 mUnk_14; + /* 18 */ u32 mUnk_18; + /* 1c */ +}; diff --git a/include/Map/Course_Unk_cc.hpp b/include/Map/Course_Unk_cc.hpp new file mode 100644 index 00000000..86504f6f --- /dev/null +++ b/include/Map/Course_Unk_cc.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "System/SysNew.hpp" + +class Course_Unk_cc : public SysObject { +public: + /* 00 */ char mUnk_00; + /* 01 */ s8 mMap; + /* 02 */ unk16 mUnk_02; + /* 04 */ u16 mUnk_04; + /* 06 */ unk8 mUnk_06[2]; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk8 mUnk_10[4]; + /* 14 */ Vec3p mUnk_14; + /* 20 */ unk32 mFlags0[1]; + /* 24 */ unk32 mFlags1[8]; + /* 44 */ unk32 mFlags2[2]; + /* 4c */ unk32 mFlags3[1]; + /* 50 */ unk32 mUnk_50; + /* 54 */ unk32 mUnk_54; + /* 58 */ +}; diff --git a/include/lib/math.h b/include/lib/math.h index 8790c9f6..b601dc71 100644 --- a/include/lib/math.h +++ b/include/lib/math.h @@ -13,6 +13,12 @@ typedef s16 q4; #define ROUND_Q20(n) (((s32)(n) + 0x800) >> 12) +typedef struct { + /* 0 */ s8 x; + /* 1 */ s8 y; + /* 2 */ +} Vec2b; + typedef struct { /* 0 */ q20 x; /* 4 */ q20 y; diff --git a/src/00_Core/Map/Course.cpp b/src/00_Core/Map/Course.cpp index 27a4fe96..28fe2330 100644 --- a/src/00_Core/Map/Course.cpp +++ b/src/00_Core/Map/Course.cpp @@ -2,54 +2,54 @@ #ifdef STUBS -unk8 Course::GetDungeonProgress(CourseProgress *param_2) {} -unk8 Course::func_ov00_0207ca28(unk32 param_2, unk32 param_3, unk32 param_4) {} -char * Course::SetCourseName(char *src) {} -unk8 Course::func_ov00_0207ca78() {} -bool Course::func_ov00_0207caa8(unk32 param_2, unk32 param_3, unk32 param_4) {} -unk32 Course::func_ov00_0207cb30(unk32 param_2) {} -unk8 Course::func_ov00_0207cb7c(unk32 param_1, Course *param_2, unk32 param_3) {} -Vec3p * Course::func_ov00_0207cbd8(unk32 param_2) {} -void Course::func_ov00_0207cbe8(unk32 param_2) {} -unk8 Course::func_ov00_0207cc24(unk32 param_2) {} -unk32 Course::func_ov00_0207cc6c() {} +void Course::GetDungeonProgress(CourseProgress *param_2) {} +void Course::func_ov00_0207ca28(s32 param_2, unk32 param_3, unk32 param_4) {} +char* Course::SetCourseName(char *src) {} +void Course::func_ov00_0207ca78(unk32 param_2, unk8 param_3, unk32 param_4) {} +bool Course::func_ov00_0207caa8(s32 param_2, unk32 *param_3, unk8 *param_4) {} +unk32 Course::func_ov00_0207cb30(s32 param_2) {} +void Course::FindMapGridPos(Vec2b *pos, Course *param_2, u32 map) {} +Vec3p* Course::Find_Unk_cc_14(unk32 param_2) {} +void Course::func_ov00_0207cbe8(s32 param_2) {} +unk8 Course::func_ov00_0207cc24(s32 param_2) {} +unk32 Course::Find_Unk_cc_08() {} void Course::GetMCSFilePath(unk32 buf, s32 fileIndex, unk32 fileType) {} void Course::GetMRCFilePath(unk32 param_2, unk32 buf, unk32 param_4) {} -unk8 Course::func_ov00_0207ce20(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5) {} -unk8 Course::func_ov00_0207ce4c(unk8 param_1, unk8 param_2, unk8 param_3, unk8 param_4, unk32 param_5, unk32 param_6) {} -bool Course::func_ov00_0207d404(unk32 param_2, unk32 param_3, unk32 param_4) {} -bool Course::func_ov00_0207d47c() {} -bool Course::func_ov00_0207d490(unk32 param_2, unk32 param_3) {} -bool Course::func_ov00_0207d4e4(unk32 param_2) {} -bool Course::func_ov00_0207d518(s32 param_2, s32 *param_3, s32 *param_4) {} -unk8 Course::func_ov00_0207d5c4() {} -unk8 Course::func_ov00_0207d5f0() {} -unk8 Course::func_ov00_0207d61c() {} -unk8 Course::GetUnk_c8_Unk_4() {} -bool Course::func_ov00_0207d634(unk32 param_2) {} -unk8 Course::func_ov00_0207d6ac(unk32 param_2, unk32 param_3) {} -unk8 Course::func_ov00_0207d6ec() {} -unk8 Course::func_ov00_0207d738(unk32 param_2) {} -unk8 Course::func_ov00_0207d758(unk32 param_2) {} -unk8 Course::func_ov00_0207d778() {} -unk8 Course::func_ov00_0207d788() {} -unk8 Course::func_ov00_0207d7a4() {} +void Course::func_ov00_0207ce20(unk32 param_2, unk32 param_3, char *param_4, unk32 param_5) {} +void Course::func_ov00_0207ce4c(s32 param_2, s32 param_3, unk32 param_4, char *param_5, unk32 param_6) {} +bool Course::func_ov00_0207d404(s32 param_2, unk32 param_3, unk32 param_4) {} +bool Course::IsCurrentMapInMainGrid() {} +bool Course::IsInMainGrid(s32 x, s32 y) {} +bool Course::IsMapInMainGrid(u32 map) {} +bool Course::GetMapScreenPos(s32 map, s32 *x, s32 *y) {} +u32 Course::GetScreenMapCellSizeX() {} +u32 Course::GetScreenMapCellSizeY() {} +unk32 Course::Get_Unk_c8_00() {} +unk32 Course::Get_Unk_c8_04() {} +bool Course::IsAdjacentMapOnMainGrid(unk32 dir) {} +bool Course::HasGridMap(s32 x, s32 y) {} +unk8 Course::GetAdjacentMap(unk32 dir) {} +u32 Course::GetAdjacentMapX(s32 ir) {} +u32 Course::GetAdjacentMapY(s32 dir) {} +u16 Course::FindCurrent_Unk_cc_04() {} +u32 Course::Find_Unk_cc_04(unk32 param_2) {} +unk32 Course::Find_Unk_cc_0c(unk32 map) {} void Course::func_ov00_0207d7bc() {} -unk8 Course::func_ov00_0207d7dc(unk32 param_2, unk32 param_3) {} -unk8 Course::func_ov00_0207d828(unk32 param_2) {} -unk8 Course::func_ov00_0207d848(unk32 param_2, unk32 param_3) {} -unk8 Course::func_ov00_0207d894(unk32 param_2) {} -unk8 Course::func_ov00_0207d8b4() {} -bool Course::func_ov00_0207d8d4(unk32 param_2) {} -unk8 Course::func_ov00_0207d8ec() {} -bool Course::func_ov00_0207d90c(unk32 param_2) {} -unk8 Course::func_ov00_0207d924() {} -bool Course::func_ov00_0207d944(unk32 param_2) {} -unk8 Course::func_ov00_0207d95c() {} +void Course::SetFlag0(u32 index, bool value) {} +bool Course::GetFlag0(u32 index) {} +void Course::SetFlag1(u32 index, bool value) {} +bool Course::SetFlag1(u32 index) {} +void Course::SetFlag0_Unk_cc(unk32 index, bool value) {} +bool Course::GetFlag0_Unk_cc(unk32 param_2) {} +void Course::SetFlag1_Unk_cc(unk32 param_2, bool param_3) {} +bool Course::GetFlag1_Unk_cc(unk32 param_2) {} +void Course::SetFlag2_Unk_cc(unk32 param_2, bool param_3) {} +bool Course::GetFlag2_Unk_cc(unk32 param_2) {} +void Course::SetFlag3_Unk_cc(unk32 param_2, bool param_3) {} bool Course::func_ov00_0207d97c(unk32 param_2) {} -unk8 Course::func_ov00_0207d994() {} -bool Course::func_ov00_0207d9b4(unk32 param_2) {} -unk32 Course::func_ov00_0207d9cc(unk32 param_2) {} -s32 Course::func_ov00_0207da14() {} +void Course::func_ov00_0207d994(unk32 param_2, unk32 param_3) {} +bool Course::GetFlag3_Unk_cc(unk32 param_2) {} +Course_Unk_cc* Course::Find_Unk_cc(u32 map) {} +Course_Unk_cc* Course::FindCurrent_Unk_cc() {} #endif