From b9e9392f29130451cf2c7d13b720260d8022c812 Mon Sep 17 00:00:00 2001 From: Aetias Date: Mon, 22 Apr 2024 23:57:26 +0200 Subject: [PATCH] Mangle `Course` --- asm/ov00/Map/MapManager.inc | 70 +++--- asm/ov00/Map/MapManager.s | 112 ++++----- asm/ov00/ov00_0207af9c.s | 462 ++++++++++++++++++------------------ asm/ov04.inc | 20 +- asm/ov04.s | 46 ++-- asm/ov15.inc | 12 +- asm/ov15.s | 22 +- asm/ov18.inc | 4 +- asm/ov18.s | 4 +- include/Map/Course.hpp | 114 +++++++++ src/00_Core/Map/Course.cpp | 55 +++++ 11 files changed, 545 insertions(+), 376 deletions(-) create mode 100644 include/Map/Course.hpp create mode 100644 src/00_Core/Map/Course.cpp diff --git a/asm/ov00/Map/MapManager.inc b/asm/ov00/Map/MapManager.inc index da0f4814..5d87d87b 100644 --- a/asm/ov00/Map/MapManager.inc +++ b/asm/ov00/Map/MapManager.inc @@ -46,41 +46,41 @@ .extern func_ov00_020792a0 .extern func_ov00_02079898 .extern func_ov00_020798bc -.extern func_ov00_0207ca00 -.extern func_ov00_0207ca28 -.extern func_ov00_0207caa8 -.extern func_ov00_0207cb30 -.extern func_ov00_0207cb7c -.extern func_ov00_0207cbd8 -.extern func_ov00_0207cbe8 -.extern func_ov00_0207cc24 -.extern func_ov00_0207cc6c -.extern func_ov00_0207ce20 -.extern func_ov00_0207d404 -.extern func_ov00_0207d47c -.extern func_ov00_0207d4e4 -.extern func_ov00_0207d518 -.extern func_ov00_0207d5c4 -.extern func_ov00_0207d5f0 -.extern func_ov00_0207d61c -.extern func_ov00_0207d628 -.extern func_ov00_0207d778 -.extern func_ov00_0207d788 -.extern func_ov00_0207d7bc -.extern func_ov00_0207d7dc -.extern func_ov00_0207d828 -.extern func_ov00_0207d848 -.extern func_ov00_0207d894 -.extern func_ov00_0207d8b4 -.extern func_ov00_0207d8d4 -.extern func_ov00_0207d8ec -.extern func_ov00_0207d90c -.extern func_ov00_0207d924 -.extern func_ov00_0207d944 -.extern func_ov00_0207d95c -.extern func_ov00_0207d97c -.extern func_ov00_0207d994 -.extern func_ov00_0207d9b4 +.extern _ZN6Course18GetDungeonProgressEP14CourseProgress +.extern _ZN6Course18func_ov00_0207ca28Eiii +.extern _ZN6Course18func_ov00_0207caa8Eiii +.extern _ZN6Course18func_ov00_0207cb30Ei +.extern _ZN6Course18func_ov00_0207cb7cEiPS_i +.extern _ZN6Course18func_ov00_0207cbd8Ei +.extern _ZN6Course18func_ov00_0207cbe8Ei +.extern _ZN6Course18func_ov00_0207cc24Ei +.extern _ZN6Course18func_ov00_0207cc6cEv +.extern _ZN6Course18func_ov00_0207ce20Eiiii +.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 _ZN6Course15GetUnk_c8_Unk_4Ev +.extern _ZN6Course18func_ov00_0207d778Ev +.extern _ZN6Course18func_ov00_0207d788Ev +.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 _ZN6Course18func_ov00_0207d97cEi +.extern _ZN6Course18func_ov00_0207d994Ev +.extern _ZN6Course18func_ov00_0207d9b4Ei .extern func_ov00_0207de68 .extern func_ov00_0207de88 .extern func_ov00_0207e08c diff --git a/asm/ov00/Map/MapManager.s b/asm/ov00/Map/MapManager.s index e32a3b60..632b3e00 100644 --- a/asm/ov00/Map/MapManager.s +++ b/asm/ov00/Map/MapManager.s @@ -6,22 +6,22 @@ .global _ZN10MapManager18func_ov00_020820ecEPi arm_func_start _ZN10MapManager18func_ov00_020820ecEPi _ZN10MapManager18func_ov00_020820ecEPi: ; 0x020820ec - ldr ip, _020820f8 ; =func_ov00_0207ca00 + ldr ip, _020820f8 ; =_ZN6Course18GetDungeonProgressEP14CourseProgress ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_020820ecEPi -_020820f8: .word func_ov00_0207ca00 +_020820f8: .word _ZN6Course18GetDungeonProgressEP14CourseProgress .global _ZN10MapManager18func_ov00_020820fcEiii arm_func_start _ZN10MapManager18func_ov00_020820fcEiii _ZN10MapManager18func_ov00_020820fcEiii: ; 0x020820fc - ldr ip, _02082108 ; =func_ov00_0207ca28 + ldr ip, _02082108 ; =_ZN6Course18func_ov00_0207ca28Eiii ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_020820fcEiii -_02082108: .word func_ov00_0207ca28 +_02082108: .word _ZN6Course18func_ov00_0207ca28Eiii .global _ZN10MapManager18func_ov00_0208210cEii arm_func_start _ZN10MapManager18func_ov00_0208210cEii @@ -468,7 +468,7 @@ _ZN10MapManager18func_ov00_02082614Eii: ; 0x02082614 mov r3, r1 mov r1, r2 mov r2, #0 - bl func_ov00_0207ce20 + bl _ZN6Course18func_ov00_0207ce20Eiiii ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02082614Eii @@ -874,12 +874,12 @@ _02082ac8: .word data_027e0d38 .global _ZN10MapManager18func_ov00_02082accEv arm_func_start _ZN10MapManager18func_ov00_02082accEv _ZN10MapManager18func_ov00_02082accEv: ; 0x02082acc - ldr ip, _02082ad8 ; =func_ov00_0207d7bc + ldr ip, _02082ad8 ; =_ZN6Course18func_ov00_0207d7bcEv ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02082accEv -_02082ad8: .word func_ov00_0207d7bc +_02082ad8: .word _ZN6Course18func_ov00_0207d7bcEv .global _ZN10MapManager18func_ov00_02082adcEv arm_func_start _ZN10MapManager18func_ov00_02082adcEv @@ -926,7 +926,7 @@ _ZN10MapManager18func_ov00_02082b3cEi: ; 0x02082b3c ldrb r2, [r5, #0x12] ldr r1, [r6] add r0, sp, #0 - bl func_ov00_0207cb7c + bl _ZN6Course18func_ov00_0207cb7cEiPS_i 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 func_ov00_0207d778 + bl _ZN6Course18func_ov00_0207d778Ev mov r1, r7 mov r7, r0 ldr r0, [r6] - bl func_ov00_0207d788 + bl _ZN6Course18func_ov00_0207d788Ev 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 func_ov00_0207d47c + bl _ZN6Course18func_ov00_0207d47cEv 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 func_ov00_0207d518 + bl _ZN6Course18func_ov00_0207d518EiPiS0_ cmp r0, #0 ldr r0, [r8] bne _02082fc0 add r2, sp, #0xc add r3, sp, #8 mov r1, r5 - bl func_ov00_0207d518 + bl _ZN6Course18func_ov00_0207d518EiPiS0_ ldr r1, [r8] add r0, sp, #6 mov r2, r5 - bl func_ov00_0207cb7c + bl _ZN6Course18func_ov00_0207cb7cEiPS_i 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 func_ov00_0207d5c4 + bl _ZN6Course18func_ov00_0207d5c4Ev 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 func_ov00_0207d5f0 + bl _ZN6Course18func_ov00_0207d5f0Ev ldrb r1, [sp, #5] ldr r3, [sp, #8] b _02083008 _02082fc0: - bl func_ov00_0207d5c4 + bl _ZN6Course18func_ov00_0207d5c4Ev 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 func_ov00_0207d5f0 + bl _ZN6Course18func_ov00_0207d5f0Ev 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 ; =func_ov00_0207d4e4 + ldr ip, _02083324 ; =_ZN6Course18func_ov00_0207d4e4Ei ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02083318Ei -_02083324: .word func_ov00_0207d4e4 +_02083324: .word _ZN6Course18func_ov00_0207d4e4Ei .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 func_ov00_0207d4e4 + bl _ZN6Course18func_ov00_0207d4e4Ei 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 func_ov00_0207cbd8 + bl _ZN6Course18func_ov00_0207cbd8Ei 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 func_ov00_0207cbd8 + bl _ZN6Course18func_ov00_0207cbd8Ei 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 ; =func_ov00_0207cb7c + ldr ip, _0208356c ; =_ZN6Course18func_ov00_0207cb7cEiPS_i ldr r1, [r1] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02083560EiPS_j -_0208356c: .word func_ov00_0207cb7c +_0208356c: .word _ZN6Course18func_ov00_0207cb7cEiPS_i .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 func_ov00_0207cc6c + bl _ZN6Course18func_ov00_0207cc6cEv 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 ; =func_ov00_0207d61c + ldr ip, _020835b0 ; =_ZN6Course18func_ov00_0207d61cEv ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_020835a4Ev -_020835b0: .word func_ov00_0207d61c +_020835b0: .word _ZN6Course18func_ov00_0207d61cEv .global _ZN10MapManager18func_ov00_020835b4Ev arm_func_start _ZN10MapManager18func_ov00_020835b4Ev _ZN10MapManager18func_ov00_020835b4Ev: ; 0x020835b4 - ldr ip, _020835c0 ; =func_ov00_0207d628 + ldr ip, _020835c0 ; =_ZN6Course15GetUnk_c8_Unk_4Ev ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_020835b4Ev -_020835c0: .word func_ov00_0207d628 +_020835c0: .word _ZN6Course15GetUnk_c8_Unk_4Ev .global _ZN10MapManager18func_ov00_020835c4Eii arm_func_start _ZN10MapManager18func_ov00_020835c4Eii @@ -1840,49 +1840,49 @@ _ZN10MapManager18func_ov00_020835c4Eii: ; 0x020835c4 ldr r0, [r0] mov r3, r2 mov r2, #0 - bl func_ov00_0207d404 + bl _ZN6Course18func_ov00_0207d404Eiii ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_020835c4Eii .global _ZN10MapManager18func_ov00_020835e4EiPiS0_ arm_func_start _ZN10MapManager18func_ov00_020835e4EiPiS0_ _ZN10MapManager18func_ov00_020835e4EiPiS0_: ; 0x020835e4 - ldr ip, _020835f0 ; =func_ov00_0207caa8 + ldr ip, _020835f0 ; =_ZN6Course18func_ov00_0207caa8Eiii ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_020835e4EiPiS0_ -_020835f0: .word func_ov00_0207caa8 +_020835f0: .word _ZN6Course18func_ov00_0207caa8Eiii .global _ZN10MapManager18func_ov00_020835f4Ei arm_func_start _ZN10MapManager18func_ov00_020835f4Ei _ZN10MapManager18func_ov00_020835f4Ei: ; 0x020835f4 - ldr ip, _02083600 ; =func_ov00_0207cb30 + ldr ip, _02083600 ; =_ZN6Course18func_ov00_0207cb30Ei ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_020835f4Ei -_02083600: .word func_ov00_0207cb30 +_02083600: .word _ZN6Course18func_ov00_0207cb30Ei .global _ZN10MapManager18func_ov00_02083604Ei arm_func_start _ZN10MapManager18func_ov00_02083604Ei _ZN10MapManager18func_ov00_02083604Ei: ; 0x02083604 - ldr ip, _02083610 ; =func_ov00_0207cbe8 + ldr ip, _02083610 ; =_ZN6Course18func_ov00_0207cbe8Ei ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02083604Ei -_02083610: .word func_ov00_0207cbe8 +_02083610: .word _ZN6Course18func_ov00_0207cbe8Ei .global _ZN10MapManager18func_ov00_02083614Ei arm_func_start _ZN10MapManager18func_ov00_02083614Ei _ZN10MapManager18func_ov00_02083614Ei: ; 0x02083614 - ldr ip, _02083620 ; =func_ov00_0207cc24 + ldr ip, _02083620 ; =_ZN6Course18func_ov00_0207cc24Ei ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02083614Ei -_02083620: .word func_ov00_0207cc24 +_02083620: .word _ZN6Course18func_ov00_0207cc24Ei .global _ZN10MapManager14GetEntrancePosEP5Vec3pi arm_func_start _ZN10MapManager14GetEntrancePosEP5Vec3pi @@ -3579,7 +3579,7 @@ _ZN10MapManager18func_ov00_0208499cEv: ; 0x0208499c movne r0, #0 ldmneia sp!, {r4, pc} ldr r0, [r4] - bl func_ov00_0207d47c + bl _ZN6Course18func_ov00_0207d47cEv ldmia sp!, {r4, pc} arm_func_end _ZN10MapManager18func_ov00_0208499cEv @@ -3771,17 +3771,17 @@ _02084b8c: _02084bb0: ldr r0, [r0] mov r2, r3 - bl func_ov00_0207d8b4 + bl _ZN6Course18func_ov00_0207d8b4Ev ldmia sp!, {r3, pc} _02084bc0: ldr r0, [r0] mov r2, r3 - bl func_ov00_0207d7dc + bl _ZN6Course18func_ov00_0207d7dcEii ldmia sp!, {r3, pc} _02084bd0: ldr r0, [r0] mov r2, r3 - bl func_ov00_0207d848 + bl _ZN6Course18func_ov00_0207d848Eii ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084b38Eiii @@ -3812,15 +3812,15 @@ _02084c0c: ldmia sp!, {r3, pc} _02084c30: ldr r0, [r0] - bl func_ov00_0207d8d4 + bl _ZN6Course18func_ov00_0207d8d4Ei ldmia sp!, {r3, pc} _02084c3c: ldr r0, [r0] - bl func_ov00_0207d828 + bl _ZN6Course18func_ov00_0207d828Ei ldmia sp!, {r3, pc} _02084c48: ldr r0, [r0] - bl func_ov00_0207d894 + bl _ZN6Course18func_ov00_0207d894Ei 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 ; =func_ov00_0207d8ec + ldr ip, _02084c68 ; =_ZN6Course18func_ov00_0207d8ecEv ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02084c5cEii -_02084c68: .word func_ov00_0207d8ec +_02084c68: .word _ZN6Course18func_ov00_0207d8ecEv .global _ZN10MapManager18func_ov00_02084c6cEi arm_func_start _ZN10MapManager18func_ov00_02084c6cEi _ZN10MapManager18func_ov00_02084c6cEi: ; 0x02084c6c - ldr ip, _02084c78 ; =func_ov00_0207d90c + ldr ip, _02084c78 ; =_ZN6Course18func_ov00_0207d90cEi ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN10MapManager18func_ov00_02084c6cEi -_02084c78: .word func_ov00_0207d90c +_02084c78: .word _ZN6Course18func_ov00_0207d90cEi .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 func_ov00_0207d924 + bl _ZN6Course18func_ov00_0207d924Ev 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 func_ov00_0207d944 + bl _ZN6Course18func_ov00_0207d944Ei 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 func_ov00_0207d95c + bl _ZN6Course18func_ov00_0207d95cEv ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084cb0Ei @@ -3889,7 +3889,7 @@ _ZN10MapManager18func_ov00_02084cc8Ei: ; 0x02084cc8 movlt r0, #0 ldmltia sp!, {r3, pc} ldr r0, [r0] - bl func_ov00_0207d97c + bl _ZN6Course18func_ov00_0207d97cEi ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084cc8Ei @@ -3900,7 +3900,7 @@ _ZN10MapManager18func_ov00_02084ce4Ei: ; 0x02084ce4 cmp r1, #0 ldmltia sp!, {r3, pc} ldr r0, [r0] - bl func_ov00_0207d994 + bl _ZN6Course18func_ov00_0207d994Ev 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 func_ov00_0207d9b4 + bl _ZN6Course18func_ov00_0207d9b4Ei ldmia sp!, {r3, pc} arm_func_end _ZN10MapManager18func_ov00_02084cfcEi diff --git a/asm/ov00/ov00_0207af9c.s b/asm/ov00/ov00_0207af9c.s index 5993970e..7b5bd4f6 100644 --- a/asm/ov00/ov00_0207af9c.s +++ b/asm/ov00/ov00_0207af9c.s @@ -2893,9 +2893,9 @@ _0207c9d8: ldmia sp!, {r3, r4, r5, r6, r7, pc} arm_func_end func_ov00_0207c91c - .global func_ov00_0207ca00 - arm_func_start func_ov00_0207ca00 -func_ov00_0207ca00: ; 0x0207ca00 + .global _ZN6Course18GetDungeonProgressEP14CourseProgress + arm_func_start _ZN6Course18GetDungeonProgressEP14CourseProgress +_ZN6Course18GetDungeonProgressEP14CourseProgress: ; 0x0207ca00 ldr r2, [r0, #0x268] str r2, [r1] ldr r2, [r0, #4] @@ -2906,11 +2906,11 @@ func_ov00_0207ca00: ; 0x0207ca00 ldrb r0, [r0, #0x25d] strb r0, [r1, #5] bx lr - arm_func_end func_ov00_0207ca00 + arm_func_end _ZN6Course18GetDungeonProgressEP14CourseProgress - .global func_ov00_0207ca28 - arm_func_start func_ov00_0207ca28 -func_ov00_0207ca28: ; 0x0207ca28 + .global _ZN6Course18func_ov00_0207ca28Eiii + arm_func_start _ZN6Course18func_ov00_0207ca28Eiii +_ZN6Course18func_ov00_0207ca28Eiii: ; 0x0207ca28 stmdb sp!, {r3, lr} ldr ip, [r0, #4] add r0, r0, r1, lsl #2 @@ -2928,25 +2928,25 @@ _0207ca54: mov r3, #0 bl func_ov00_020972e4 ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207ca28 + arm_func_end _ZN6Course18func_ov00_0207ca28Eiii - .global func_ov00_0207ca68 - arm_func_start func_ov00_0207ca68 -func_ov00_0207ca68: ; 0x0207ca68 + .global _ZN6Course13SetCourseNameEPc + arm_func_start _ZN6Course13SetCourseNameEPc +_ZN6Course13SetCourseNameEPc: ; 0x0207ca68 ldr ip, _0207ca74 ; =strcpy add r0, r0, #0xc bx ip .align 2, 0 - arm_func_end func_ov00_0207ca68 + arm_func_end _ZN6Course13SetCourseNameEPc _0207ca74: .word strcpy - .global func_ov00_0207ca78 - arm_func_start func_ov00_0207ca78 -func_ov00_0207ca78: ; 0x0207ca78 + .global _ZN6Course18func_ov00_0207ca78Ev + arm_func_start _ZN6Course18func_ov00_0207ca78Ev +_ZN6Course18func_ov00_0207ca78Ev: ; 0x0207ca78 stmdb sp!, {r3, r4, r5, lr} mov r5, r0 mov r4, r2 - bl func_ov00_0207d9cc + bl _ZN6Course18func_ov00_0207d9ccEi movs r1, r0 ldmeqia sp!, {r3, r4, r5, pc} strb r4, [r1] @@ -2955,11 +2955,11 @@ func_ov00_0207ca78: ; 0x0207ca78 mov r2, #1 bl func_ov00_020a3510 ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207ca78 + arm_func_end _ZN6Course18func_ov00_0207ca78Ev - .global func_ov00_0207caa8 - arm_func_start func_ov00_0207caa8 -func_ov00_0207caa8: ; 0x0207caa8 + .global _ZN6Course18func_ov00_0207caa8Eiii + arm_func_start _ZN6Course18func_ov00_0207caa8Eiii +_ZN6Course18func_ov00_0207caa8Eiii: ; 0x0207caa8 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x10 cmp r1, #0 @@ -2994,11 +2994,11 @@ func_ov00_0207caa8: ; 0x0207caa8 strh r1, [r4, #6] add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207caa8 + arm_func_end _ZN6Course18func_ov00_0207caa8Eiii - .global func_ov00_0207cb30 - arm_func_start func_ov00_0207cb30 -func_ov00_0207cb30: ; 0x0207cb30 + .global _ZN6Course18func_ov00_0207cb30Ei + arm_func_start _ZN6Course18func_ov00_0207cb30Ei +_ZN6Course18func_ov00_0207cb30Ei: ; 0x0207cb30 stmdb sp!, {r3, lr} sub sp, sp, #0x10 cmp r1, #0 @@ -3018,12 +3018,12 @@ func_ov00_0207cb30: ; 0x0207cb30 add sp, sp, #0x10 ldmia sp!, {r3, pc} .align 2, 0 - arm_func_end func_ov00_0207cb30 + arm_func_end _ZN6Course18func_ov00_0207cb30Ei _0207cb78: .word 0x0000ffff - .global func_ov00_0207cb7c - arm_func_start func_ov00_0207cb7c -func_ov00_0207cb7c: ; 0x0207cb7c + .global _ZN6Course18func_ov00_0207cb7cEiPS_i + arm_func_start _ZN6Course18func_ov00_0207cb7cEiPS_i +_ZN6Course18func_ov00_0207cb7cEiPS_i: ; 0x0207cb7c stmdb sp!, {r3, r4, r5, lr} mov lr, #0 mov r5, r1 @@ -3049,20 +3049,20 @@ _0207cb90: strb r1, [r0] strb r2, [r0, #1] ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207cb7c + arm_func_end _ZN6Course18func_ov00_0207cb7cEiPS_i - .global func_ov00_0207cbd8 - arm_func_start func_ov00_0207cbd8 -func_ov00_0207cbd8: ; 0x0207cbd8 + .global _ZN6Course18func_ov00_0207cbd8Ei + arm_func_start _ZN6Course18func_ov00_0207cbd8Ei +_ZN6Course18func_ov00_0207cbd8Ei: ; 0x0207cbd8 stmdb sp!, {r3, lr} - bl func_ov00_0207d9cc + bl _ZN6Course18func_ov00_0207d9ccEi add r0, r0, #0x14 ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207cbd8 + arm_func_end _ZN6Course18func_ov00_0207cbd8Ei - .global func_ov00_0207cbe8 - arm_func_start func_ov00_0207cbe8 -func_ov00_0207cbe8: ; 0x0207cbe8 + .global _ZN6Course18func_ov00_0207cbe8Ei + arm_func_start _ZN6Course18func_ov00_0207cbe8Ei +_ZN6Course18func_ov00_0207cbe8Ei: ; 0x0207cbe8 stmdb sp!, {r3, lr} sub sp, sp, #0x10 cmp r1, #0 @@ -3078,11 +3078,11 @@ func_ov00_0207cbe8: ; 0x0207cbe8 bl func_ov00_020a3710 add sp, sp, #0x10 ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207cbe8 + arm_func_end _ZN6Course18func_ov00_0207cbe8Ei - .global func_ov00_0207cc24 - arm_func_start func_ov00_0207cc24 -func_ov00_0207cc24: ; 0x0207cc24 + .global _ZN6Course18func_ov00_0207cc24Ei + arm_func_start _ZN6Course18func_ov00_0207cc24Ei +_ZN6Course18func_ov00_0207cc24Ei: ; 0x0207cc24 stmdb sp!, {r3, lr} sub sp, sp, #0x10 cmp r1, #0 @@ -3101,22 +3101,22 @@ func_ov00_0207cc24: ; 0x0207cc24 moveq r0, #0 add sp, sp, #0x10 ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207cc24 + arm_func_end _ZN6Course18func_ov00_0207cc24Ei - .global func_ov00_0207cc6c - arm_func_start func_ov00_0207cc6c -func_ov00_0207cc6c: ; 0x0207cc6c + .global _ZN6Course18func_ov00_0207cc6cEv + arm_func_start _ZN6Course18func_ov00_0207cc6cEv +_ZN6Course18func_ov00_0207cc6cEv: ; 0x0207cc6c stmdb sp!, {r3, lr} - bl func_ov00_0207d9cc + bl _ZN6Course18func_ov00_0207d9ccEi cmp r0, #0 moveq r0, #0 ldrne r0, [r0, #8] ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207cc6c + arm_func_end _ZN6Course18func_ov00_0207cc6cEv - .global func_ov00_0207cc84 - arm_func_start func_ov00_0207cc84 -func_ov00_0207cc84: ; 0x0207cc84 + .global _ZN6Course14GetMCSFilePathEiii + arm_func_start _ZN6Course14GetMCSFilePathEiii +_ZN6Course14GetMCSFilePathEiii: ; 0x0207cc84 stmdb sp!, {r3, lr} mov lr, r0 mov ip, r2 @@ -3178,7 +3178,7 @@ _0207cd3c: bl func_0200c8d0 ldmia sp!, {r3, pc} .align 2, 0 - arm_func_end func_ov00_0207cc84 + arm_func_end _ZN6Course14GetMCSFilePathEiii _0207cd58: .word data_ov00_020e2508 _0207cd5c: .word data_ov00_020e2058 _0207cd60: .word data_ov00_020e2070 @@ -3187,9 +3187,9 @@ _0207cd68: .word data_ov00_020e20a4 _0207cd6c: .word data_ov00_020e20c0 _0207cd70: .word data_ov00_020e20d8 - .global func_ov00_0207cd74 - arm_func_start func_ov00_0207cd74 -func_ov00_0207cd74: ; 0x0207cd74 + .global _ZN6Course14GetMRCFilePathEiii + arm_func_start _ZN6Course14GetMRCFilePathEiii +_ZN6Course14GetMRCFilePathEiii: ; 0x0207cd74 stmdb sp!, {r4, lr} mov r4, r2 cmp r3, #3 @@ -3233,7 +3233,7 @@ _0207cde0: bl func_0200c8d0 ldmia sp!, {r4, pc} .align 2, 0 - arm_func_end func_ov00_0207cd74 + arm_func_end _ZN6Course14GetMRCFilePathEiii _0207ce08: .word data_ov00_020e250c _0207ce0c: .word data_ov00_020e20ec _0207ce10: .word data_ov00_020e2104 @@ -3241,9 +3241,9 @@ _0207ce14: .word data_ov00_020e211c _0207ce18: .word data_027e0f7c _0207ce1c: .word data_ov00_020e2134 - .global func_ov00_0207ce20 - arm_func_start func_ov00_0207ce20 -func_ov00_0207ce20: ; 0x0207ce20 + .global _ZN6Course18func_ov00_0207ce20Eiiii + arm_func_start _ZN6Course18func_ov00_0207ce20Eiiii +_ZN6Course18func_ov00_0207ce20Eiiii: ; 0x0207ce20 stmdb sp!, {r3, lr} sub sp, sp, #8 ldr ip, [sp, #0x10] @@ -3252,14 +3252,14 @@ func_ov00_0207ce20: ; 0x0207ce20 mov r3, r2 ldr r1, [r0] mov r2, ip - bl func_ov00_0207ce4c + bl _ZN6Course18func_ov00_0207ce4cEccccii add sp, sp, #8 ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207ce20 + arm_func_end _ZN6Course18func_ov00_0207ce20Eiiii - .global func_ov00_0207ce4c - arm_func_start func_ov00_0207ce4c -func_ov00_0207ce4c: ; 0x0207ce4c + .global _ZN6Course18func_ov00_0207ce4cEccccii + arm_func_start _ZN6Course18func_ov00_0207ce4cEccccii +_ZN6Course18func_ov00_0207ce4cEccccii: ; 0x0207ce4c stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 ldr r4, _0207d3ac ; =data_027e0f7c @@ -3344,7 +3344,7 @@ _0207cf38: mov r4, #4 moveq r2, #0 str r4, [sp, #4] - bl func_ov00_0207ce4c + bl _ZN6Course18func_ov00_0207ce4cEccccii add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} _0207cf98: @@ -3357,7 +3357,7 @@ _0207cf98: mov r2, r5 mov r3, r4 str r7, [sp] - bl func_ov00_0207ce20 + bl _ZN6Course18func_ov00_0207ce20Eiiii add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} _0207cfc8: @@ -3627,7 +3627,7 @@ _0207d364: add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 - arm_func_end func_ov00_0207ce4c + arm_func_end _ZN6Course18func_ov00_0207ce4cEccccii _0207d3ac: .word data_027e0f7c _0207d3b0: .word 0x66666667 _0207d3b4: .word data_ov00_020e233c @@ -3651,9 +3651,9 @@ _0207d3f8: .word data_ov00_020e22b8 _0207d3fc: .word data_ov00_020e22d4 _0207d400: .word data_ov00_020e22e8 - .global func_ov00_0207d404 - arm_func_start func_ov00_0207d404 -func_ov00_0207d404: ; 0x0207d404 + .global _ZN6Course18func_ov00_0207d404Eiii + arm_func_start _ZN6Course18func_ov00_0207d404Eiii +_ZN6Course18func_ov00_0207d404Eiii: ; 0x0207d404 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x18 mov r6, r0 @@ -3680,26 +3680,26 @@ func_ov00_0207d404: ; 0x0207d404 ldr r1, [sp, #8] mov r0, r6 mov r3, r5 - bl func_ov00_0207ce4c + bl _ZN6Course18func_ov00_0207ce4cEccccii mov r0, #1 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_0207d404 + arm_func_end _ZN6Course18func_ov00_0207d404Eiii - .global func_ov00_0207d47c - arm_func_start func_ov00_0207d47c -func_ov00_0207d47c: ; 0x0207d47c - ldr ip, _0207d48c ; =func_ov00_0207d490 + .global _ZN6Course18func_ov00_0207d47cEv + arm_func_start _ZN6Course18func_ov00_0207d47cEv +_ZN6Course18func_ov00_0207d47cEv: ; 0x0207d47c + ldr ip, _0207d48c ; =_ZN6Course18func_ov00_0207d490Eii ldrb r1, [r0, #0x1c] ldrb r2, [r0, #0x1d] bx ip .align 2, 0 - arm_func_end func_ov00_0207d47c -_0207d48c: .word func_ov00_0207d490 + arm_func_end _ZN6Course18func_ov00_0207d47cEv +_0207d48c: .word _ZN6Course18func_ov00_0207d490Eii - .global func_ov00_0207d490 - arm_func_start func_ov00_0207d490 -func_ov00_0207d490: ; 0x0207d490 + .global _ZN6Course18func_ov00_0207d490Eii + arm_func_start _ZN6Course18func_ov00_0207d490Eii +_ZN6Course18func_ov00_0207d490Eii: ; 0x0207d490 ldrb r3, [r0, #0x25c] cmp r3, #0 moveq r0, #1 @@ -3722,29 +3722,29 @@ func_ov00_0207d490: ; 0x0207d490 _0207d4dc: mov r0, #0 bx lr - arm_func_end func_ov00_0207d490 + arm_func_end _ZN6Course18func_ov00_0207d490Eii - .global func_ov00_0207d4e4 - arm_func_start func_ov00_0207d4e4 -func_ov00_0207d4e4: ; 0x0207d4e4 + .global _ZN6Course18func_ov00_0207d4e4Ei + arm_func_start _ZN6Course18func_ov00_0207d4e4Ei +_ZN6Course18func_ov00_0207d4e4Ei: ; 0x0207d4e4 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 mov r4, r0 mov r2, r1 add r0, sp, #0 mov r1, r4 - bl func_ov00_0207cb7c + bl _ZN6Course18func_ov00_0207cb7cEiPS_i ldrb r1, [sp] ldrb r2, [sp, #1] mov r0, r4 - bl func_ov00_0207d490 + bl _ZN6Course18func_ov00_0207d490Eii add sp, sp, #4 ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_0207d4e4 + arm_func_end _ZN6Course18func_ov00_0207d4e4Ei - .global func_ov00_0207d518 - arm_func_start func_ov00_0207d518 -func_ov00_0207d518: ; 0x0207d518 + .global _ZN6Course18func_ov00_0207d518EiPiS0_ + arm_func_start _ZN6Course18func_ov00_0207d518EiPiS0_ +_ZN6Course18func_ov00_0207d518EiPiS0_: ; 0x0207d518 stmdb sp!, {r3, r4, r5, r6, r7, lr} mov r4, r1 mov r7, r0 @@ -3756,11 +3756,11 @@ func_ov00_0207d518: ; 0x0207d518 add r0, sp, #0 mov r1, r7 mov r2, r4 - bl func_ov00_0207cb7c + bl _ZN6Course18func_ov00_0207cb7cEiPS_i ldrb r1, [sp] ldrb r2, [sp, #1] mov r0, r7 - bl func_ov00_0207d490 + bl _ZN6Course18func_ov00_0207d490Eii cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r3, r4, r5, r6, r7, pc} @@ -3788,11 +3788,11 @@ func_ov00_0207d518: ; 0x0207d518 str r1, [r5] mov r0, #1 ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end func_ov00_0207d518 + arm_func_end _ZN6Course18func_ov00_0207d518EiPiS0_ - .global func_ov00_0207d5c4 - arm_func_start func_ov00_0207d5c4 -func_ov00_0207d5c4: ; 0x0207d5c4 + .global _ZN6Course18func_ov00_0207d5c4Ev + arm_func_start _ZN6Course18func_ov00_0207d5c4Ev +_ZN6Course18func_ov00_0207d5c4Ev: ; 0x0207d5c4 stmdb sp!, {r3, lr} ldrb r1, [r0, #0x86] ldrb r0, [r0, #0x87] @@ -3804,11 +3804,11 @@ func_ov00_0207d5c4: ; 0x0207d5c4 mov r1, #0x40000 bl Divide ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207d5c4 + arm_func_end _ZN6Course18func_ov00_0207d5c4Ev - .global func_ov00_0207d5f0 - arm_func_start func_ov00_0207d5f0 -func_ov00_0207d5f0: ; 0x0207d5f0 + .global _ZN6Course18func_ov00_0207d5f0Ev + arm_func_start _ZN6Course18func_ov00_0207d5f0Ev +_ZN6Course18func_ov00_0207d5f0Ev: ; 0x0207d5f0 stmdb sp!, {r3, lr} ldrb r1, [r0, #0x87] ldrb r0, [r0, #0x86] @@ -3820,27 +3820,27 @@ func_ov00_0207d5f0: ; 0x0207d5f0 mov r1, #0x30000 bl Divide ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207d5f0 + arm_func_end _ZN6Course18func_ov00_0207d5f0Ev - .global func_ov00_0207d61c - arm_func_start func_ov00_0207d61c -func_ov00_0207d61c: ; 0x0207d61c + .global _ZN6Course18func_ov00_0207d61cEv + arm_func_start _ZN6Course18func_ov00_0207d61cEv +_ZN6Course18func_ov00_0207d61cEv: ; 0x0207d61c ldr r0, [r0, #0xc8] ldr r0, [r0] bx lr - arm_func_end func_ov00_0207d61c + arm_func_end _ZN6Course18func_ov00_0207d61cEv - .global func_ov00_0207d628 - arm_func_start func_ov00_0207d628 -func_ov00_0207d628: ; 0x0207d628 + .global _ZN6Course15GetUnk_c8_Unk_4Ev + arm_func_start _ZN6Course15GetUnk_c8_Unk_4Ev +_ZN6Course15GetUnk_c8_Unk_4Ev: ; 0x0207d628 ldr r0, [r0, #0xc8] ldr r0, [r0, #4] bx lr - arm_func_end func_ov00_0207d628 + arm_func_end _ZN6Course15GetUnk_c8_Unk_4Ev - .global func_ov00_0207d634 - arm_func_start func_ov00_0207d634 -func_ov00_0207d634: ; 0x0207d634 + .global _ZN6Course18func_ov00_0207d634Ei + arm_func_start _ZN6Course18func_ov00_0207d634Ei +_ZN6Course18func_ov00_0207d634Ei: ; 0x0207d634 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldrb r4, [r6, #0x1c] @@ -3868,20 +3868,20 @@ _0207d67c: mov r0, r6 mov r1, r4 mov r2, r5 - bl func_ov00_0207d490 + bl _ZN6Course18func_ov00_0207d490Eii cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} mov r0, r6 mov r1, r4 mov r2, r5 - bl func_ov00_0207d6ac + bl _ZN6Course18func_ov00_0207d6acEii ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_0207d634 + arm_func_end _ZN6Course18func_ov00_0207d634Ei - .global func_ov00_0207d6ac - arm_func_start func_ov00_0207d6ac -func_ov00_0207d6ac: ; 0x0207d6ac + .global _ZN6Course18func_ov00_0207d6acEii + arm_func_start _ZN6Course18func_ov00_0207d6acEii +_ZN6Course18func_ov00_0207d6acEii: ; 0x0207d6ac cmp r1, #0 cmpge r2, #0 blt _0207d6c4 @@ -3900,35 +3900,35 @@ _0207d6cc: movne r0, #1 moveq r0, #0 bx lr - arm_func_end func_ov00_0207d6ac + arm_func_end _ZN6Course18func_ov00_0207d6acEii - .global func_ov00_0207d6ec - arm_func_start func_ov00_0207d6ec -func_ov00_0207d6ec: ; 0x0207d6ec + .global _ZN6Course18func_ov00_0207d6ecEv + arm_func_start _ZN6Course18func_ov00_0207d6ecEv +_ZN6Course18func_ov00_0207d6ecEv: ; 0x0207d6ec stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 - bl func_ov00_0207d634 + bl _ZN6Course18func_ov00_0207d634Ei cmp r0, #0 moveq r0, #0xff ldmeqia sp!, {r4, r5, r6, pc} mov r0, r6 mov r1, r5 - bl func_ov00_0207d758 + bl _ZN6Course18func_ov00_0207d758Ei mov r4, r0 mov r0, r6 mov r1, r5 - bl func_ov00_0207d738 + bl _ZN6Course18func_ov00_0207d738Ei 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 func_ov00_0207d6ec + arm_func_end _ZN6Course18func_ov00_0207d6ecEv - .global func_ov00_0207d738 - arm_func_start func_ov00_0207d738 -func_ov00_0207d738: ; 0x0207d738 + .global _ZN6Course18func_ov00_0207d738Ei + arm_func_start _ZN6Course18func_ov00_0207d738Ei +_ZN6Course18func_ov00_0207d738Ei: ; 0x0207d738 cmp r1, #0 ldrb r0, [r0, #0x1c] beq _0207d750 @@ -3938,11 +3938,11 @@ func_ov00_0207d738: ; 0x0207d738 _0207d750: add r0, r0, #1 bx lr - arm_func_end func_ov00_0207d738 + arm_func_end _ZN6Course18func_ov00_0207d738Ei - .global func_ov00_0207d758 - arm_func_start func_ov00_0207d758 -func_ov00_0207d758: ; 0x0207d758 + .global _ZN6Course18func_ov00_0207d758Ei + arm_func_start _ZN6Course18func_ov00_0207d758Ei +_ZN6Course18func_ov00_0207d758Ei: ; 0x0207d758 cmp r1, #2 ldrb r0, [r0, #0x1d] beq _0207d770 @@ -3952,58 +3952,58 @@ func_ov00_0207d758: ; 0x0207d758 _0207d770: add r0, r0, #1 bx lr - arm_func_end func_ov00_0207d758 + arm_func_end _ZN6Course18func_ov00_0207d758Ei - .global func_ov00_0207d778 - arm_func_start func_ov00_0207d778 -func_ov00_0207d778: ; 0x0207d778 + .global _ZN6Course18func_ov00_0207d778Ev + arm_func_start _ZN6Course18func_ov00_0207d778Ev +_ZN6Course18func_ov00_0207d778Ev: ; 0x0207d778 stmdb sp!, {r3, lr} - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev ldrh r0, [r0, #4] ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207d778 + arm_func_end _ZN6Course18func_ov00_0207d778Ev - .global func_ov00_0207d788 - arm_func_start func_ov00_0207d788 -func_ov00_0207d788: ; 0x0207d788 + .global _ZN6Course18func_ov00_0207d788Ev + arm_func_start _ZN6Course18func_ov00_0207d788Ev +_ZN6Course18func_ov00_0207d788Ev: ; 0x0207d788 stmdb sp!, {r3, lr} - bl func_ov00_0207d9cc + bl _ZN6Course18func_ov00_0207d9ccEi cmp r0, #0 ldreq r0, _0207d7a0 ; =0x0000ffff ldrneh r0, [r0, #4] ldmia sp!, {r3, pc} .align 2, 0 - arm_func_end func_ov00_0207d788 + arm_func_end _ZN6Course18func_ov00_0207d788Ev _0207d7a0: .word 0x0000ffff - .global func_ov00_0207d7a4 - arm_func_start func_ov00_0207d7a4 -func_ov00_0207d7a4: ; 0x0207d7a4 + .global _ZN6Course18func_ov00_0207d7a4Ev + arm_func_start _ZN6Course18func_ov00_0207d7a4Ev +_ZN6Course18func_ov00_0207d7a4Ev: ; 0x0207d7a4 stmdb sp!, {r3, lr} - bl func_ov00_0207d9cc + bl _ZN6Course18func_ov00_0207d9ccEi cmp r0, #0 moveq r0, #0 ldrne r0, [r0, #0xc] ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207d7a4 + arm_func_end _ZN6Course18func_ov00_0207d7a4Ev - .global func_ov00_0207d7bc - arm_func_start func_ov00_0207d7bc -func_ov00_0207d7bc: ; 0x0207d7bc + .global _ZN6Course18func_ov00_0207d7bcEv + arm_func_start _ZN6Course18func_ov00_0207d7bcEv +_ZN6Course18func_ov00_0207d7bcEv: ; 0x0207d7bc stmdb sp!, {r3, lr} - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev ldr r2, _0207d7d8 ; =data_027e103c ldrh r1, [r0, #4] ldr r0, [r2] bl func_ov00_020cf414 ldmia sp!, {r3, pc} .align 2, 0 - arm_func_end func_ov00_0207d7bc + arm_func_end _ZN6Course18func_ov00_0207d7bcEv _0207d7d8: .word data_027e103c - .global func_ov00_0207d7dc - arm_func_start func_ov00_0207d7dc -func_ov00_0207d7dc: ; 0x0207d7dc + .global _ZN6Course18func_ov00_0207d7dcEii + arm_func_start _ZN6Course18func_ov00_0207d7dcEii +_ZN6Course18func_ov00_0207d7dcEii: ; 0x0207d7dc cmp r2, #0 beq _0207d804 add ip, r0, #0x264 @@ -4024,11 +4024,11 @@ _0207d804: and r0, r1, r0 str r0, [r3, r2, lsl #2] bx lr - arm_func_end func_ov00_0207d7dc + arm_func_end _ZN6Course18func_ov00_0207d7dcEii - .global func_ov00_0207d828 - arm_func_start func_ov00_0207d828 -func_ov00_0207d828: ; 0x0207d828 + .global _ZN6Course18func_ov00_0207d828Ei + arm_func_start _ZN6Course18func_ov00_0207d828Ei +_ZN6Course18func_ov00_0207d828Ei: ; 0x0207d828 mov r2, r1, lsr #0x5 add r0, r0, r2, lsl #2 ldr r2, [r0, #0x264] @@ -4037,11 +4037,11 @@ func_ov00_0207d828: ; 0x0207d828 tst r2, r0, lsl r1 moveq r0, #0 bx lr - arm_func_end func_ov00_0207d828 + arm_func_end _ZN6Course18func_ov00_0207d828Ei - .global func_ov00_0207d848 - arm_func_start func_ov00_0207d848 -func_ov00_0207d848: ; 0x0207d848 + .global _ZN6Course18func_ov00_0207d848Eii + arm_func_start _ZN6Course18func_ov00_0207d848Eii +_ZN6Course18func_ov00_0207d848Eii: ; 0x0207d848 cmp r2, #0 beq _0207d870 add ip, r0, #0x268 @@ -4062,11 +4062,11 @@ _0207d870: and r0, r1, r0 str r0, [r3, r2, lsl #2] bx lr - arm_func_end func_ov00_0207d848 + arm_func_end _ZN6Course18func_ov00_0207d848Eii - .global func_ov00_0207d894 - arm_func_start func_ov00_0207d894 -func_ov00_0207d894: ; 0x0207d894 + .global _ZN6Course18func_ov00_0207d894Ei + arm_func_start _ZN6Course18func_ov00_0207d894Ei +_ZN6Course18func_ov00_0207d894Ei: ; 0x0207d894 mov r2, r1, lsr #0x5 add r0, r0, r2, lsl #2 ldr r2, [r0, #0x268] @@ -4075,131 +4075,131 @@ func_ov00_0207d894: ; 0x0207d894 tst r2, r0, lsl r1 moveq r0, #0 bx lr - arm_func_end func_ov00_0207d894 + arm_func_end _ZN6Course18func_ov00_0207d894Ei - .global func_ov00_0207d8b4 - arm_func_start func_ov00_0207d8b4 -func_ov00_0207d8b4: ; 0x0207d8b4 + .global _ZN6Course18func_ov00_0207d8b4Ev + arm_func_start _ZN6Course18func_ov00_0207d8b4Ev +_ZN6Course18func_ov00_0207d8b4Ev: ; 0x0207d8b4 stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r5 mov r2, r4 bl func_ov00_0209740c ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d8b4 + arm_func_end _ZN6Course18func_ov00_0207d8b4Ev - .global func_ov00_0207d8d4 - arm_func_start func_ov00_0207d8d4 -func_ov00_0207d8d4: ; 0x0207d8d4 + .global _ZN6Course18func_ov00_0207d8d4Ei + arm_func_start _ZN6Course18func_ov00_0207d8d4Ei +_ZN6Course18func_ov00_0207d8d4Ei: ; 0x0207d8d4 stmdb sp!, {r4, lr} mov r4, r1 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r4 bl func_ov00_02097458 ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d8d4 + arm_func_end _ZN6Course18func_ov00_0207d8d4Ei - .global func_ov00_0207d8ec - arm_func_start func_ov00_0207d8ec -func_ov00_0207d8ec: ; 0x0207d8ec + .global _ZN6Course18func_ov00_0207d8ecEv + arm_func_start _ZN6Course18func_ov00_0207d8ecEv +_ZN6Course18func_ov00_0207d8ecEv: ; 0x0207d8ec stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r5 mov r2, r4 bl func_ov00_02097478 ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d8ec + arm_func_end _ZN6Course18func_ov00_0207d8ecEv - .global func_ov00_0207d90c - arm_func_start func_ov00_0207d90c -func_ov00_0207d90c: ; 0x0207d90c + .global _ZN6Course18func_ov00_0207d90cEi + arm_func_start _ZN6Course18func_ov00_0207d90cEi +_ZN6Course18func_ov00_0207d90cEi: ; 0x0207d90c stmdb sp!, {r4, lr} mov r4, r1 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r4 bl func_ov00_020974c4 ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d90c + arm_func_end _ZN6Course18func_ov00_0207d90cEi - .global func_ov00_0207d924 - arm_func_start func_ov00_0207d924 -func_ov00_0207d924: ; 0x0207d924 + .global _ZN6Course18func_ov00_0207d924Ev + arm_func_start _ZN6Course18func_ov00_0207d924Ev +_ZN6Course18func_ov00_0207d924Ev: ; 0x0207d924 stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r5 mov r2, r4 bl func_ov00_020974e4 ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d924 + arm_func_end _ZN6Course18func_ov00_0207d924Ev - .global func_ov00_0207d944 - arm_func_start func_ov00_0207d944 -func_ov00_0207d944: ; 0x0207d944 + .global _ZN6Course18func_ov00_0207d944Ei + arm_func_start _ZN6Course18func_ov00_0207d944Ei +_ZN6Course18func_ov00_0207d944Ei: ; 0x0207d944 stmdb sp!, {r4, lr} mov r4, r1 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r4 bl func_ov00_02097530 ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d944 + arm_func_end _ZN6Course18func_ov00_0207d944Ei - .global func_ov00_0207d95c - arm_func_start func_ov00_0207d95c -func_ov00_0207d95c: ; 0x0207d95c + .global _ZN6Course18func_ov00_0207d95cEv + arm_func_start _ZN6Course18func_ov00_0207d95cEv +_ZN6Course18func_ov00_0207d95cEv: ; 0x0207d95c stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r5 mov r2, r4 bl func_ov00_02097550 ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d95c + arm_func_end _ZN6Course18func_ov00_0207d95cEv - .global func_ov00_0207d97c - arm_func_start func_ov00_0207d97c -func_ov00_0207d97c: ; 0x0207d97c + .global _ZN6Course18func_ov00_0207d97cEi + arm_func_start _ZN6Course18func_ov00_0207d97cEi +_ZN6Course18func_ov00_0207d97cEi: ; 0x0207d97c stmdb sp!, {r4, lr} mov r4, r1 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r4 bl func_ov00_0209759c ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d97c + arm_func_end _ZN6Course18func_ov00_0207d97cEi - .global func_ov00_0207d994 - arm_func_start func_ov00_0207d994 -func_ov00_0207d994: ; 0x0207d994 + .global _ZN6Course18func_ov00_0207d994Ev + arm_func_start _ZN6Course18func_ov00_0207d994Ev +_ZN6Course18func_ov00_0207d994Ev: ; 0x0207d994 stmdb sp!, {r3, r4, r5, lr} mov r5, r1 mov r4, r2 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r5 mov r2, r4 bl func_ov00_020975bc ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d994 + arm_func_end _ZN6Course18func_ov00_0207d994Ev - .global func_ov00_0207d9b4 - arm_func_start func_ov00_0207d9b4 -func_ov00_0207d9b4: ; 0x0207d9b4 + .global _ZN6Course18func_ov00_0207d9b4Ei + arm_func_start _ZN6Course18func_ov00_0207d9b4Ei +_ZN6Course18func_ov00_0207d9b4Ei: ; 0x0207d9b4 stmdb sp!, {r4, lr} mov r4, r1 - bl func_ov00_0207da14 + bl _ZN6Course18func_ov00_0207da14Ev mov r1, r4 bl func_ov00_02097608 ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d9b4 + arm_func_end _ZN6Course18func_ov00_0207d9b4Ei - .global func_ov00_0207d9cc - arm_func_start func_ov00_0207d9cc -func_ov00_0207d9cc: ; 0x0207d9cc + .global _ZN6Course18func_ov00_0207d9ccEi + arm_func_start _ZN6Course18func_ov00_0207d9ccEi +_ZN6Course18func_ov00_0207d9ccEi: ; 0x0207d9cc ldrb r2, [r0, #0xb0] mov ip, #0 cmp r2, #0 @@ -4221,22 +4221,22 @@ _0207d9fc: _0207da0c: mov r0, #0 bx lr - arm_func_end func_ov00_0207d9cc + arm_func_end _ZN6Course18func_ov00_0207d9ccEi - .global func_ov00_0207da14 - arm_func_start func_ov00_0207da14 -func_ov00_0207da14: ; 0x0207da14 + .global _ZN6Course18func_ov00_0207da14Ev + arm_func_start _ZN6Course18func_ov00_0207da14Ev +_ZN6Course18func_ov00_0207da14Ev: ; 0x0207da14 ldrb r3, [r0, #0x1c] mov r1, #0xa ldrb r2, [r0, #0x1d] mla r1, r3, r1, r0 add r1, r1, r2 - ldr ip, _0207da34 ; =func_ov00_0207d9cc + ldr ip, _0207da34 ; =_ZN6Course18func_ov00_0207d9ccEi ldrb r1, [r1, #0x20] bx ip .align 2, 0 - arm_func_end func_ov00_0207da14 -_0207da34: .word func_ov00_0207d9cc + arm_func_end _ZN6Course18func_ov00_0207da14Ev +_0207da34: .word _ZN6Course18func_ov00_0207d9ccEi .global func_ov00_0207da38 arm_func_start func_ov00_0207da38 @@ -4457,7 +4457,7 @@ func_ov00_0207dce4: ; 0x0207dce4 mov r2, r3, lsl #0xc str r5, [sp] str r2, [sp, #4] - bl func_ov00_0207cbd8 + bl _ZN6Course18func_ov00_0207cbd8Ei mov ip, r5 add r5, sp, #0x20 ldmia r0, {r0, r1, r2} diff --git a/asm/ov04.inc b/asm/ov04.inc index 0f2b9596..8b37a1c7 100644 --- a/asm/ov04.inc +++ b/asm/ov04.inc @@ -428,16 +428,16 @@ .extern func_ov00_0207c000 .extern func_ov00_0207c030 .extern func_ov00_0207c074 -.extern func_ov00_0207ca68 -.extern func_ov00_0207ca78 -.extern func_ov00_0207cb7c -.extern func_ov00_0207cc84 -.extern func_ov00_0207cd74 -.extern func_ov00_0207ce20 -.extern func_ov00_0207d4e4 -.extern func_ov00_0207d7a4 -.extern func_ov00_0207d7bc -.extern func_ov00_0207d9cc +.extern _ZN6Course13SetCourseNameEPc +.extern _ZN6Course18func_ov00_0207ca78Ev +.extern _ZN6Course18func_ov00_0207cb7cEiPS_i +.extern _ZN6Course14GetMCSFilePathEiii +.extern _ZN6Course14GetMRCFilePathEiii +.extern _ZN6Course18func_ov00_0207ce20Eiiii +.extern _ZN6Course18func_ov00_0207d4e4Ei +.extern _ZN6Course18func_ov00_0207d7a4Ev +.extern _ZN6Course18func_ov00_0207d7bcEv +.extern _ZN6Course18func_ov00_0207d9ccEi .extern func_ov00_0207dce4 .extern func_ov00_0207dda0 .extern func_ov00_0207ddf8 diff --git a/asm/ov04.s b/asm/ov04.s index bd2df20b..f8aee019 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 func_ov00_0207cb7c + blx _ZN6Course18func_ov00_0207cb7cEiPS_i add r0, sp, #0x18 ldrb r2, [r0] ldr r1, [r5] @@ -3221,7 +3221,7 @@ _02102382: ldr r2, [sp, #0x120] add r1, sp, #0xd8 mov r3, #1 - blx func_ov00_0207cc84 + blx _ZN6Course14GetMCSFilePathEiii ldr r0, _021024a8 ; =data_02057878 mov r2, #0 str r0, [sp, #0x84] @@ -3242,7 +3242,7 @@ _02102382: ldr r2, [sp, #0x120] add r1, sp, #0xd8 mov r3, #2 - blx func_ov00_0207cc84 + blx _ZN6Course14GetMCSFilePathEiii mov r2, #0 ldr r0, _021024a8 ; =data_02057878 str r2, [sp, #0x78] @@ -3264,7 +3264,7 @@ _02102382: ldr r2, [sp, #0x120] add r1, sp, #0xd8 mov r3, #2 - blx func_ov00_0207cc84 + blx _ZN6Course14GetMCSFilePathEiii mov r2, #0 ldr r0, _021024a8 ; =data_02057878 str r2, [sp, #0x64] @@ -3286,7 +3286,7 @@ _02102382: ldr r2, [sp, #0x120] add r1, #2 mov r3, #3 - blx func_ov00_0207cc84 + blx _ZN6Course14GetMCSFilePathEiii ldr r0, [r5, #4] add r1, sp, #0x18 ldr r2, [r0] @@ -23699,7 +23699,7 @@ _0210c218: add r0, sp, #8 add r1, r4, #0 add r2, r6, #0 - blx func_ov00_0207cb7c + blx _ZN6Course18func_ov00_0207cb7cEiPS_i 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 func_ov00_0207ce20 + blx _ZN6Course18func_ov00_0207ce20Eiiii 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 func_ov00_0207ce20 + blx _ZN6Course18func_ov00_0207ce20Eiiii 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 func_ov00_0207ce20 + blx _ZN6Course18func_ov00_0207ce20Eiiii 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 func_ov00_0207ca78 + blx _ZN6Course18func_ov00_0207ca78Ev 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 func_ov00_0207ce20 + blx _ZN6Course18func_ov00_0207ce20Eiiii ldr r0, _0210c3f0 ; =data_027e103c ldr r1, _0210c3d8 ; =0x00000540 ldr r0, [r0] @@ -23814,7 +23814,7 @@ _0210c342: cmp r0, #0 beq _0210c370 add r0, r4, #0 - blx func_ov00_0207d7bc + blx _ZN6Course18func_ov00_0207d7bcEv _0210c370: ldr r0, _0210c3f4 ; =data_027e0d38 ldr r1, [r0] @@ -23906,7 +23906,7 @@ func_ov04_0210c3fc: ; 0x0210c3fc ldr r2, [r5, #0x24] add r0, r6, #0 add r3, sp, #0x2c - blx func_ov00_0207ce20 + blx _ZN6Course18func_ov00_0207ce20Eiiii 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 func_ov00_0207ce20 + blx _ZN6Course18func_ov00_0207ce20Eiiii 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 func_ov00_0207ce20 + blx _ZN6Course18func_ov00_0207ce20Eiiii 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 func_ov00_0207d7a4 + blx _ZN6Course18func_ov00_0207d7a4Ev add r1, r0, #0 ldr r0, _0210cc78 ; =gOverlayManager bl func_ov03_020faa64 @@ -28840,7 +28840,7 @@ func_ov04_0210ee84: ; 0x0210ee84 sub sp, #0xa8 add r4, r1, #0 add r5, r0, #0 - blx func_ov00_0207ca68 + blx _ZN6Course13SetCourseNameEPc ldr r0, [r4, #0x20] mov r2, #0x2c str r0, [r5, #4] @@ -28925,7 +28925,7 @@ _0210ef12: add r0, r5, #0 add r1, sp, #0x28 add r3, r2, #0 - blx func_ov00_0207cc84 + blx _ZN6Course14GetMCSFilePathEiii mov r1, #0 ldr r0, _0210ef88 ; =data_02057878 str r1, [sp, #0x1c] @@ -28973,7 +28973,7 @@ func_ov04_0210ef90: ; 0x0210ef90 mov r3, #0 add r5, r0, #0 add r4, r1, #0 - blx func_ov00_0207cd74 + blx _ZN6Course14GetMRCFilePathEiii mov r1, #0 ldr r0, _0210f004 ; =data_02057878 str r1, [sp, #0x14] @@ -29104,7 +29104,7 @@ func_ov04_0210f07c: ; 0x0210f07c ldrb r1, [r4] cmp r1, #0xff beq _0210f0f4 - blx func_ov00_0207d9cc + blx _ZN6Course18func_ov00_0207d9ccEi 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 func_ov00_0207cb7c + blx _ZN6Course18func_ov00_0207cb7cEiPS_i 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 func_ov00_0207cb7c + blx _ZN6Course18func_ov00_0207cb7cEiPS_i add r0, sp, #0x18 ldrb r0, [r0, #1] add r1, r7, #0 str r0, [sp] add r0, r5, #0 - blx func_ov00_0207d4e4 + blx _ZN6Course18func_ov00_0207d4e4Ei cmp r0, #0 beq _0210f284 add r1, r5, #0 diff --git a/asm/ov15.inc b/asm/ov15.inc index 2cdde376..d30b0cfd 100644 --- a/asm/ov15.inc +++ b/asm/ov15.inc @@ -419,12 +419,12 @@ .extern func_ov00_0207c444 .extern func_ov00_0207c474 .extern func_ov00_0207c518 -.extern func_ov00_0207ca78 -.extern func_ov00_0207cb7c -.extern func_ov00_0207ce20 -.extern func_ov00_0207d634 -.extern func_ov00_0207d6ec -.extern func_ov00_0207d7bc +.extern _ZN6Course18func_ov00_0207ca78Ev +.extern _ZN6Course18func_ov00_0207cb7cEiPS_i +.extern _ZN6Course18func_ov00_0207ce20Eiiii +.extern _ZN6Course18func_ov00_0207d634Ei +.extern _ZN6Course18func_ov00_0207d6ecEv +.extern _ZN6Course18func_ov00_0207d7bcEv .extern func_ov00_0207da38 .extern func_ov00_0207dce4 .extern func_ov00_0207dda0 diff --git a/asm/ov15.s b/asm/ov15.s index 08c04702..f59f499c 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 func_ov00_0207cb7c + bl _ZN6Course18func_ov00_0207cb7cEiPS_i 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 func_ov00_0207ce20 + bl _ZN6Course18func_ov00_0207ce20Eiiii 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 func_ov00_0207ce20 + bl _ZN6Course18func_ov00_0207ce20Eiiii 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 func_ov00_0207ca78 + bl _ZN6Course18func_ov00_0207ca78Ev 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 func_ov00_0207ce20 + bl _ZN6Course18func_ov00_0207ce20Eiiii ldr r0, _02129240 ; =data_027e103c add r1, sp, #0x400 ldr r0, [r0] @@ -11783,7 +11783,7 @@ _02129058: cmp r0, #0 beq _02129210 mov r0, r4 - bl func_ov00_0207d7bc + bl _ZN6Course18func_ov00_0207d7bcEv _02129210: mov r0, r7 mov r1, r4 @@ -11869,7 +11869,7 @@ func_ov15_0212925c: ; 0x0212925c _02129300: mov r0, r8 mov r1, r7 - bl func_ov00_0207d634 + bl _ZN6Course18func_ov00_0207d634Ei 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 func_ov00_0207d6ec + bl _ZN6Course18func_ov00_0207d6ecEv 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 func_ov00_0207d634 + bl _ZN6Course18func_ov00_0207d634Ei cmp r0, #0 beq _021293f8 mov r0, r9 @@ -12044,7 +12044,7 @@ _0212953c: _02129598: mov r0, r8 mov r1, r7 - bl func_ov00_0207d634 + bl _ZN6Course18func_ov00_0207d634Ei cmp r0, #0 beq _021295ec mov r0, r9 @@ -12096,7 +12096,7 @@ _0212960c: bl func_ov00_02093a5c mov r0, r8 mov r1, r7 - bl func_ov00_0207d634 + bl _ZN6Course18func_ov00_0207d634Ei cmp r0, #0 beq _0212969c mov r0, r9 diff --git a/asm/ov18.inc b/asm/ov18.inc index 613fb30f..db3b770b 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 func_ov00_0207d634 -.extern func_ov00_0207d6ec +.extern _ZN6Course18func_ov00_0207d634Ei +.extern _ZN6Course18func_ov00_0207d6ecEv .extern func_ov00_0207da38 .extern func_ov00_0207ddf4 .extern func_ov00_0207e060 diff --git a/asm/ov18.s b/asm/ov18.s index 00896037..97efd237 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 func_ov00_0207d634 + bl _ZN6Course18func_ov00_0207d634Ei 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 func_ov00_0207d6ec + bl _ZN6Course18func_ov00_0207d6ecEv mov r1, #0 str r1, [sp, #0xc] mov r1, #0x47 diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp new file mode 100644 index 00000000..847296ef --- /dev/null +++ b/include/Map/Course.hpp @@ -0,0 +1,114 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Physics/AABB.hpp" +#include "System/SysNew.hpp" + +typedef unk32 CourseType; +enum CourseType_ { + CourseType_Normal = 0, + CourseType_Dungeon = 1, + CourseType_Sea = 2, + CourseType_TempleOfTheOceanKing = 3, + CourseType_Battle = 4, +}; + +struct CourseProgress { + /* 0 */ unk32 flags; + /* 4 */ s8 numKeys; + /* 5 */ bool blueWarpOpen; + /* 6 */ +}; + +class Course : public SysObject { + /* 000 */ unk32 mIndex; + /* 004 */ CourseType mType; + /* 008 */ unk32 mUnk_008; + /* 00c */ char mName[0x10]; + /* 01c */ unk8 mUnk_01c; + /* 01d */ unk8 mUnk_01d; + /* 01e */ unk8 mUnk_01e; + /* 01f */ unk8 mUnk_01f; + /* 020 */ unk8 mUnk_020[0x64]; + /* 084 */ s8 mUnk_084; + /* 084 */ s8 mUnk_085; + /* 084 */ s8 mUnk_086; + /* 084 */ s8 mUnk_087; + /* 088 */ unk32 mUnk_088; + /* 08c */ unk32 mUnk_08c; + /* 090 */ unk32 mUnk_090; + /* 094 */ unk32 mUnk_094; + /* 098 */ AABB mBounds; + /* 0b0 */ s8 mUnk_0b0; + /* 0b1 */ unk8 mUnk_0b1; + /* 0b2 */ unk8 mUnk_0b2; + /* 0b3 */ unk8 mUnk_0b3; + /* 0b4 */ unk32 mUnk_0b4; + /* 0b8 */ unk32 mUnk_0b8; + /* 0bc */ unk32 mUnk_0bc; + /* 0c0 */ unk32 mUnk_0c0; + /* 0c4 */ unk32 mUnk_0c4; + /* 0c8 */ void *mUnk_0c8; + /* 0cc */ unk32 mUnk_0cc; + /* 0d0 */ unk8 mUnk_0d0[0x18c]; + /* 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 + /* 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 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_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(); + 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(); +}; diff --git a/src/00_Core/Map/Course.cpp b/src/00_Core/Map/Course.cpp new file mode 100644 index 00000000..27a4fe96 --- /dev/null +++ b/src/00_Core/Map/Course.cpp @@ -0,0 +1,55 @@ +#include "Map/Course.hpp" + +#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::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_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() {} +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() {} + +#endif