diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index b3b1875c..00000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.s encoding=sjis diff=sjis \ No newline at end of file diff --git a/.gitignore b/.gitignore index b63315e9..a0a106e8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ ph_*/ *bios.bin /m2ctx *.sav +*.xMAP diff --git a/Makefile b/Makefile index ec88dbc5..0dc3c52a 100644 --- a/Makefile +++ b/Makefile @@ -49,8 +49,8 @@ LCF_FILE := $(ROOT)/$(BUILD_DIR)/arm9_linker_script.lcf OBJS_FILE := $(ROOT)/$(BUILD_DIR)/arm9_objects.txt ASM_FLAGS := -proc arm5te -d $(REGION) -i asm -msgstyle gcc -CC_FLAGS := -proc arm946e -interworking -O4,p -enum int -i include -i- -i libs/c/include -i libs/cpp/include -nolink -d $(REGION) -char signed -sym on -msgstyle gcc -RTTI off -C_FLAGS := -lang=c +CC_FLAGS := -O4,p -enum int -char signed -str noreuse -proc arm946e -gccext,on -fp soft -inline on,noauto -Cpp_exceptions off -RTTI off -interworking -sym on -gccinc -i include -i libs/c/include -i libs/cpp/include -nolink -d $(REGION) -msgstyle gcc +C_FLAGS := -lang=c CXX_FLAGS := -lang=c++ LD_FLAGS := -proc arm946e -nostdlib -interworking -nodead -m Entry -map closure,unused -o main.bin -msgstyle gcc @@ -85,6 +85,7 @@ all: tools rom tools: cd $(TOOLS_DIR)/compress && $(MAKE) cd $(TOOLS_DIR)/rom && $(MAKE) + cd $(TOOLS_DIR)/elf && $(MAKE) .PHONY: rom rom: arm9 @@ -126,10 +127,12 @@ $(ASM_OBJS): $(TARGET_DIR)/%.o: % $(CXX_OBJS): $(TARGET_DIR)/%.o: % mkdir -p $(dir $@) LM_LICENSE_FILE=$(MW_LICENSE) $(WINE) $(MW_CC) $(CC_FLAGS) $(CXX_FLAGS) $< -o $@ + $(TOOLS_DIR)/elf/elfkill -s $< -e $@ $(C_OBJS): $(TARGET_DIR)/%.o: % mkdir -p $(dir $@) LM_LICENSE_FILE=$(MW_LICENSE) $(WINE) $(MW_CC) $(CC_FLAGS) $(C_FLAGS) $< -o $@ + $(TOOLS_DIR)/elf/elfkill -s $< -e $@ .PHONY: link link: lcf $(ASM_OBJS) $(CXX_OBJS) $(C_OBJS) diff --git a/asm/dtcm.s b/asm/dtcm.s index b3664d47..92fc93a3 100644 --- a/asm/dtcm.s +++ b/asm/dtcm.s @@ -3548,8 +3548,8 @@ data_027e0e58: .global data_027e0e5c data_027e0e5c: .space 0x4 - .global data_027e0e60 -data_027e0e60: + .global gMapManager +gMapManager: .space 0x4 .global data_027e0e64 data_027e0e64: @@ -4001,8 +4001,8 @@ gItemManager: .global data_027e0fb8 data_027e0fb8: .space 0x4 - .global data_027e0fbc -data_027e0fbc: + .global gHealthManager +gHealthManager: .space 0x4 .global data_027e0fc0 data_027e0fc0: diff --git a/asm/itcm.inc b/asm/itcm.inc index 77612b92..29c77a1d 100644 --- a/asm/itcm.inc +++ b/asm/itcm.inc @@ -19,7 +19,7 @@ .extern data_027e080c .extern data_027e081c .extern data_027e08e4 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0e64 .extern data_027e0f6c .extern data_027e0fdc @@ -49,18 +49,18 @@ .extern func_0202b2e8 .extern func_0204f614 .extern func_0204f754 -.extern func_ov00_0207e968 -.extern func_ov00_0207e96c +.extern _ZN7MapBase18func_ov00_0207e968Ev +.extern _ZN7MapBase18func_ov00_0207e96cEv .extern func_ov00_02081ef4 -.extern func_ov00_0208335c -.extern func_ov00_02083368 -.extern func_ov00_020839d4 -.extern func_ov00_020839f8 -.extern func_ov00_02083ee0 -.extern func_ov00_02083ef8 -.extern func_ov00_020840c4 -.extern func_ov00_02086284 -.extern func_ov00_02086a84 +.extern _ZN10MapManager17Get_MapData_Unk28Ev +.extern _ZN10MapManager17Get_MapData_Unk2aEv +.extern _ZN10MapManager18func_ov00_020839d4Ev +.extern _ZN10MapManager18func_ov00_020839f8Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager18func_ov00_02086284EPiP5Vec3pS2_itS2_S2_ +.extern _ZN10MapManager18func_ov00_02086a84EPiP5Vec3pS2_iiiS2_S2_ .extern func_ov00_0208e4f8 .extern func_ov00_0208ed74 .extern func_ov00_0208ee00 diff --git a/asm/itcm.s b/asm/itcm.s index cb895711..b93dd552 100644 --- a/asm/itcm.s +++ b/asm/itcm.s @@ -5041,11 +5041,11 @@ func_01ffc118: ; 0x01ffc118 beq _01ffc530 ldr r1, [sp, #0x260] ldr r0, [sp, #0x14] - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev str r0, [sp, #0x4c] ldr r0, [sp, #0x14] ldr r1, [sp, #0x268] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev add r1, r8, #0x800 str r0, [sp, #0x48] mov r0, r1, asr #0xc @@ -5055,10 +5055,10 @@ func_01ffc118: ; 0x01ffc118 sub r0, r0, r1, asr #12 str r0, [sp, #0x44] ldr r0, [sp, #0x14] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev str r0, [sp, #0x38] ldr r0, [sp, #0x14] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv str r0, [sp, #0x34] ldr r1, [sp, #0x44] ldr r0, [sp, #0x40] @@ -5106,7 +5106,7 @@ _01ffc24c: strb r0, [sp, #0x69] ldr r0, [sp, #0x14] strb r2, [sp, #0x68] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _01ffc508 ldr r1, [r5, #4] @@ -5240,7 +5240,7 @@ _01ffc398: str r0, [sp, #0xc] ldr r0, [sp, #0x14] mov r2, ip - bl func_ov00_02086284 + bl _ZN10MapManager18func_ov00_02086284EPiP5Vec3pS2_itS2_S2_ cmp r0, #0 mov r0, #1 beq _01ffc4dc @@ -5434,7 +5434,7 @@ _01ffc73c: str r0, [sp, #0xc] ldr r0, [sp, #0x14] mov r2, r6 - bl func_ov00_02086284 + bl _ZN10MapManager18func_ov00_02086284EPiP5Vec3pS2_itS2_S2_ cmp r0, #0 mov r1, r5, lsl #0x1 beq _01ffc840 @@ -5622,10 +5622,10 @@ _01ffc998: ldr r3, _01ffd1d4 ; =data_027e0e64 mov r1, r4 bl func_01ffedf4 - ldr r1, _01ffd1d8 ; =func_ov00_0207e968 + ldr r1, _01ffd1d8 ; =_ZN7MapBase18func_ov00_0207e968Ev str r0, [sp, #0x2c] str r1, [sp] - ldr r3, _01ffd1dc ; =func_ov00_0207e96c + ldr r3, _01ffd1dc ; =_ZN7MapBase18func_ov00_0207e96cEv add r0, sp, #0x284 mov r1, #3 mov r2, #0x10 @@ -6105,7 +6105,7 @@ _01ffd18c: ldr r0, [sp, #0x268] str r0, [r10, #8] _01ffd1b0: - ldr r3, _01ffd1d8 ; =func_ov00_0207e968 + ldr r3, _01ffd1d8 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, sp, #0x284 mov r1, #3 mov r2, #0x10 @@ -6117,8 +6117,8 @@ _01ffd1b0: arm_func_end func_01ffc118 _01ffd1d0: .word data_027e0f6c _01ffd1d4: .word data_027e0e64 -_01ffd1d8: .word func_ov00_0207e968 -_01ffd1dc: .word func_ov00_0207e96c +_01ffd1d8: .word _ZN7MapBase18func_ov00_0207e968Ev +_01ffd1dc: .word _ZN7MapBase18func_ov00_0207e96cEv .global func_01ffd1e0 arm_func_start func_01ffd1e0 @@ -6172,22 +6172,22 @@ func_01ffd1e0: ; 0x01ffd1e0 bl func_ov00_0208ee00 ldr r0, [sp, #0x14] ldr r1, [sp, #0x298] - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev sub r0, r0, #1 str r0, [sp, #0x3c] ldr r0, [sp, #0x14] ldr r1, [sp, #0x2a0] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev sub r0, r0, #1 str r0, [sp, #0x28] ldr r0, [sp, #0x14] ldr r1, [sp, #0x2a4] - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev add r0, r0, #1 str r0, [sp, #0x38] ldr r0, [sp, #0x14] ldr r1, [sp, #0x2ac] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev add r0, r0, #1 str r0, [sp, #0x34] mov r0, #0 @@ -6207,10 +6207,10 @@ func_01ffd1e0: ; 0x01ffd1e0 add r2, sp, #0x2b0 bl func_01ff9bf8 ldr r0, [sp, #0x14] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev str r0, [sp, #0x30] ldr r0, [sp, #0x14] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv str r0, [sp, #0x2c] ldr r1, [sp, #0x28] ldr r0, [sp, #0x34] @@ -6252,7 +6252,7 @@ _01ffd398: strb r0, [sp, #0x5d] ldr r0, [sp, #0x14] strb r4, [sp, #0x5c] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _01ffd650 ldr r1, [r5, #4] @@ -6386,7 +6386,7 @@ _01ffd4e4: add r2, sp, #0x26c str r2, [sp, #0x10] mov r2, ip - bl func_ov00_02086a84 + bl _ZN10MapManager18func_ov00_02086a84EPiP5Vec3pS2_iiiS2_S2_ cmp r0, #0 mov r0, #1 beq _01ffd624 @@ -6571,7 +6571,7 @@ _01ffd858: add r1, sp, #0x230 str r1, [sp, #0x10] mov r1, r4 - bl func_ov00_02086a84 + bl _ZN10MapManager18func_ov00_02086a84EPiP5Vec3pS2_iiiS2_S2_ cmp r0, #0 mov r1, r5, lsl #0x1 beq _01ffd964 @@ -6690,10 +6690,10 @@ _01ffda18: ldr r3, _01ffe1bc ; =data_027e0e64 mov r1, r5 bl func_01ffedf4 - ldr r1, _01ffe1c0 ; =func_ov00_0207e968 + ldr r1, _01ffe1c0 ; =_ZN7MapBase18func_ov00_0207e968Ev mov r7, r0 str r1, [sp] - ldr r3, _01ffe1c4 ; =func_ov00_0207e96c + ldr r3, _01ffe1c4 ; =_ZN7MapBase18func_ov00_0207e96cEv add r0, sp, #0x2ec mov r1, #3 mov r2, #0x10 @@ -7092,7 +7092,7 @@ _01ffdfa8: mov r1, r7 mov r2, r9 str r4, [sp, #0x31c] - bl func_ov00_02083ef8 + bl _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ ldr r1, [sp, #0x1d4] add r0, r0, r8 cmp r1, r0 @@ -7157,7 +7157,7 @@ _01ffe174: ldr r0, [sp, #0x2d0] str r0, [r10, #8] _01ffe198: - ldr r3, _01ffe1c0 ; =func_ov00_0207e968 + ldr r3, _01ffe1c0 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, sp, #0x2ec mov r1, #3 mov r2, #0x10 @@ -7169,8 +7169,8 @@ _01ffe198: arm_func_end func_01ffd1e0 _01ffe1b8: .word data_027e0f6c _01ffe1bc: .word data_027e0e64 -_01ffe1c0: .word func_ov00_0207e968 -_01ffe1c4: .word func_ov00_0207e96c +_01ffe1c0: .word _ZN7MapBase18func_ov00_0207e968Ev +_01ffe1c4: .word _ZN7MapBase18func_ov00_0207e96cEv _01ffe1c8: .word 0x00001922 .global func_01ffe1cc @@ -7222,25 +7222,25 @@ func_01ffe1cc: ; 0x01ffe1cc bl func_ov00_0208ee00 ldr r0, [sp, #0xc] ldr r1, [sp, #0x48] - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev str r0, [sp, #0x24] ldr r0, [sp, #0xc] ldr r1, [sp, #0x50] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev mov r6, r0 ldr r0, [sp, #0xc] ldr r1, [sp, #0x54] - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev mov r4, r0 ldr r0, [sp, #0xc] ldr r1, [sp, #0x5c] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev str r0, [sp, #0x20] ldr r0, [sp, #0xc] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev str r0, [sp, #0x1c] ldr r0, [sp, #0xc] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv str r0, [sp, #0x18] ldr r0, [sp, #0x20] cmp r6, r0 @@ -7274,7 +7274,7 @@ _01ffe314: strb r0, [sp, #0x31] ldr r0, [sp, #0xc] strb r5, [sp, #0x30] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r7, r0 beq _01ffe43c ldr r1, [r0] @@ -8582,8 +8582,8 @@ func_01fff510: ; 0x01fff510 ldr r1, [sp, #4] mov r0, r6 bl func_ov00_0208ee00 - ldr r1, _01fffb44 ; =func_ov00_0207e968 - ldr r3, _01fffb48 ; =func_ov00_0207e96c + ldr r1, _01fffb44 ; =_ZN7MapBase18func_ov00_0207e968Ev + ldr r3, _01fffb48 ; =_ZN7MapBase18func_ov00_0207e96cEv str r1, [sp] add r0, sp, #0x118 mov r1, #3 @@ -8769,7 +8769,7 @@ _01fff788: cmp r0, #0 bne _01fff840 _01fff820: - ldr r3, _01fffb44 ; =func_ov00_0207e968 + ldr r3, _01fffb44 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, sp, #0x118 mov r1, #3 mov r2, #0x10 @@ -8949,7 +8949,7 @@ _01fffa00: cmp r0, #0 bne _01fffad4 _01fffab4: - ldr r3, _01fffb44 ; =func_ov00_0207e968 + ldr r3, _01fffb44 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, sp, #0x118 mov r1, #3 mov r2, #0x10 @@ -8981,7 +8981,7 @@ _01fffb04: str r0, [sp, #0x20] bhs _01fff908 _01fffb24: - ldr r3, _01fffb44 ; =func_ov00_0207e968 + ldr r3, _01fffb44 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, sp, #0x118 mov r1, #3 mov r2, #0x10 @@ -8991,8 +8991,8 @@ _01fffb24: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_01fff510 -_01fffb44: .word func_ov00_0207e968 -_01fffb48: .word func_ov00_0207e96c +_01fffb44: .word _ZN7MapBase18func_ov00_0207e968Ev +_01fffb48: .word _ZN7MapBase18func_ov00_0207e96cEv .global func_01fffb4c arm_func_start func_01fffb4c @@ -9181,7 +9181,7 @@ func_01fffd04: ; 0x01fffd04 ldr r0, [sp, #0x4c] ldr r1, [sp, #0x44] str r0, [sp, #0x34] - ldr r0, _01ffff04 ; =data_027e0e60 + ldr r0, _01ffff04 ; =gMapManager ldr r3, [sp, #0x48] ldr r2, [sp, #0x54] str r1, [sp, #0x2c] @@ -9193,7 +9193,7 @@ func_01fffd04: ; 0x01fffd04 str r1, [sp, #0x30] moveq r2, #0 add r1, sp, #0x2c - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r3, [r6, #0x4c] ldr r1, [sp, #0x54] ldr r2, [sp, #0x5c] @@ -9212,7 +9212,7 @@ _01fffdf4: mov ip, #0 str r0, [sp, #0x24] ldr r1, [r6, #0x50] - ldr r0, _01ffff04 ; =data_027e0e60 + ldr r0, _01ffff04 ; =gMapManager str r1, [sp, #0x28] ldr r1, [r6, #0x54] add r2, sp, #0x20 @@ -9277,7 +9277,7 @@ _01fffef8: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_01fffd04 -_01ffff04: .word data_027e0e60 +_01ffff04: .word gMapManager .global func_01ffff08 arm_func_start func_01ffff08 diff --git a/asm/main/main_02000000.inc b/asm/main/main_02000000.inc index f55a7b3b..f9d8e1ce 100644 --- a/asm/main/main_02000000.inc +++ b/asm/main/main_02000000.inc @@ -1,6 +1,10 @@ #pragma once .extern Divide -.extern _ZN11ItemManager10GiveRupeesEjj +.extern _ZN10MapManager18func_ov00_02082614Eii +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_02084740Ev +.extern _ZN10MapManager18func_ov00_02086044Eiii +.extern _ZN11ItemManager10GiveRupeesEsb .extern _ZN11ItemManager7AddItemEi .extern _ZN11ItemManager8GiveKeysEj .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j @@ -111,7 +115,6 @@ .extern data_027e0dbc .extern data_027e0e28 .extern data_027e0e2c -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f7c .extern data_027e0f80 @@ -375,10 +378,6 @@ .extern func_ov00_0207bcb4 .extern func_ov00_0207be84 .extern func_ov00_0207c0f0 -.extern func_ov00_02082614 -.extern func_ov00_020838e8 -.extern func_ov00_02084740 -.extern func_ov00_02086044 .extern func_ov00_02087d98 .extern func_ov00_02089068 .extern func_ov00_0208b180 @@ -477,6 +476,7 @@ .extern gAdventureFlags .extern gHeap .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern gpBuildDate .extern strcat diff --git a/asm/main/main_02000000.s b/asm/main/main_02000000.s index 52244b07..c514ec88 100644 --- a/asm/main/main_02000000.s +++ b/asm/main/main_02000000.s @@ -58474,7 +58474,7 @@ func_0202bf58: ; 0x0202bf58 mov r0, #0 ldmmiia sp!, {r3, pc} ldr ip, [r2] - ldr r0, _0202bfbc ; =data_027e0e60 + ldr r0, _0202bfbc ; =gMapManager str ip, [sp, #0xc] ldr ip, [r2, #4] ldr r0, [r0] @@ -58489,12 +58489,12 @@ func_0202bf58: ; 0x0202bf58 ldr ip, [r1, #8] add r1, sp, #0xc str ip, [sp, #8] - bl func_ov00_02086044 + bl _ZN10MapManager18func_ov00_02086044Eiii add sp, sp, #0x18 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_0202bf58 -_0202bfbc: .word data_027e0e60 +_0202bfbc: .word gMapManager .global func_0202bfc0 arm_func_start func_0202bfc0 @@ -76814,7 +76814,7 @@ _0203826c: ldr r1, [r4, #4] ldr r0, [r0] mov r2, #1 - bl _ZN11ItemManager10GiveRupeesEjj + bl _ZN11ItemManager10GiveRupeesEsb add sp, sp, #0x18 mov r0, #2 ldmia sp!, {r3, r4, r5, pc} @@ -76848,7 +76848,7 @@ _020382e8: mov r3, #0 sub r2, r3, #2 mov r5, #0x47 - ldr r0, _0203859c ; =data_027e0e60 + ldr r0, _0203859c ; =gMapManager mov r1, #0xff str r2, [sp, #0xc] str r5, [sp] @@ -76862,7 +76862,7 @@ _020382e8: ldr r0, [r0] ldr r1, [r4, #4] add r2, sp, #0 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 beq _02038368 ldr r0, _020385a0 ; =data_027e0d38 @@ -76953,9 +76953,9 @@ _02038444: mov r0, #2 ldmia sp!, {r3, r4, r5, pc} _0203846c: - ldr r0, _0203859c ; =data_027e0e60 + ldr r0, _0203859c ; =gMapManager ldr r0, [r0] - bl func_ov00_02084740 + bl _ZN10MapManager18func_ov00_02084740Ev mov r1, r0 ldr r2, [r4, #4] ldr r0, _020385ac ; =data_ov00_020eec68 @@ -77039,7 +77039,7 @@ _0203858c: .word data_027e0618 _02038590: .word gItemManager _02038594: .word data_027e0db0 _02038598: .word data_027e0c68 -_0203859c: .word data_027e0e60 +_0203859c: .word gMapManager _020385a0: .word data_027e0d38 _020385a4: .word data_027e0f64 _020385a8: .word data_020569e0 @@ -80336,11 +80336,11 @@ _0203ac8c: b _0203ad24 _0203acc0: ldrh r2, [r5, #6] - ldr r0, _0203ae9c ; =data_027e0e60 + ldr r0, _0203ae9c ; =gMapManager add r1, sp, #8 ldr r0, [r0] and r2, r2, #0xff - bl func_ov00_02082614 + bl _ZN10MapManager18func_ov00_02082614Eii ldr r0, _0203ae94 ; =data_027e103c add r1, sp, #8 ldr r0, [r0] @@ -80465,7 +80465,7 @@ _0203ae8c: .word 0x00020001 _0203ae90: .word 0xffff0001 _0203ae94: .word data_027e103c _0203ae98: .word data_027e0d3c -_0203ae9c: .word data_027e0e60 +_0203ae9c: .word gMapManager _0203aea0: .word data_02057ed0 _0203aea4: .word data_027e0c68 @@ -113908,19 +113908,23 @@ data_02057664: ; 0x02057664 .byte 0x00 .global data_02057670 data_02057670: ; 0x02057670 - .ascii "ƒƒ‚ƒŠƒKƒiƒC.file" + ; string "パヒγƒͺγ‚¬γƒŠγ‚€.file" + .byte 0x83, 0x81, 0x83, 0x82, 0x83, 0x8a, 0x83, 0x4b, 0x83, 0x69, 0x83, 0x43, 0x2e, 0x66, 0x69, 0x6c, 0x65 .byte 0x00, 0x00, 0x00 .global data_02057684 data_02057684: ; 0x02057684 - .ascii "ƒVƒj" + ; string "シニ" + .byte 0x83, 0x56, 0x83, 0x6a .byte 0x00, 0x00, 0x00, 0x00 .global data_0205768c data_0205768c: ; 0x0205768c - .ascii "ƒIƒL" + ; string "γ‚ͺγ‚­" + .byte 0x83, 0x49, 0x83, 0x4c .byte 0x00, 0x00, 0x00, 0x00 .global data_02057694 data_02057694: ; 0x02057694 - .ascii "ƒlƒ‹" + ; string "ネル" + .byte 0x83, 0x6c, 0x83, 0x8b .byte 0x00, 0x00, 0x00, 0x00 .global data_0205769c data_0205769c: ; 0x0205769c @@ -113940,7 +113944,8 @@ data_020576e4: ; 0x020576e4 .byte 0x00, 0x00 .global data_020576f0 data_020576f0: ; 0x020576f0 - .ascii "ƒƒ‚ƒŠƒKƒiƒC.%s" + ; string "パヒγƒͺγ‚¬γƒŠγ‚€.%s" + .byte 0x83, 0x81, 0x83, 0x82, 0x83, 0x8a, 0x83, 0x4b, 0x83, 0x69, 0x83, 0x43, 0x2e, 0x25, 0x73 .byte 0x00 .global data_02057700 data_02057700: ; 0x02057700 @@ -113959,11 +113964,13 @@ data_02057710: ; 0x02057710 .byte 0x00, 0x00, 0x00 .global data_02057718 data_02057718: ; 0x02057718 - .ascii "ƒR[ƒX:" + ; string "γ‚³γƒΌγ‚Ή:" + .byte 0x83, 0x52, 0x81, 0x5b, 0x83, 0x58, 0x3a .byte 0x00 .global data_02057720 data_02057720: ; 0x02057720 - .ascii "ƒR[ƒXƒiƒV" + ; string "γ‚³γƒΌγ‚ΉγƒŠγ‚·" + .byte 0x83, 0x52, 0x81, 0x5b, 0x83, 0x58, 0x83, 0x69, 0x83, 0x56 .byte 0x00, 0x00 .global data_0205772c data_0205772c: ; 0x0205772c @@ -113983,11 +113990,13 @@ data_02057744: ; 0x02057744 .byte 0x00, 0x00 .global data_02057750 data_02057750: ; 0x02057750 - .ascii "ƒŒƒCƒKƒCƒ`ƒ…ƒE(%d,%d)" + ; string "レむガむチγƒ₯ウ(%d,%d)" + .byte 0x83, 0x8c, 0x83, 0x43, 0x83, 0x4b, 0x83, 0x43, 0x83, 0x60, 0x83, 0x85, 0x83, 0x45, 0x28, 0x25, 0x64, 0x2c, 0x25, 0x64, 0x29 .byte 0x00, 0x00, 0x00 .global data_02057768 data_02057768: ; 0x02057768 - .ascii "ƒŒƒCƒKƒC ƒnƒbƒZƒC" + ; string "レむガむ ハッセむ" + .byte 0x83, 0x8c, 0x83, 0x43, 0x83, 0x4b, 0x83, 0x43, 0x20, 0x83, 0x6e, 0x83, 0x62, 0x83, 0x5a, 0x83, 0x43 .byte 0x00, 0x00, 0x00 .global data_0205777c data_0205777c: ; 0x0205777c diff --git a/asm/ov00/Actor/Actor.inc b/asm/ov00/Actor/Actor.inc index 869800e4..be979665 100644 --- a/asm/ov00/Actor/Actor.inc +++ b/asm/ov00/Actor/Actor.inc @@ -1,4 +1,9 @@ #pragma once +.extern _ZN10MapManager18func_ov00_02083570Eii +.extern _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084be0Eii +.extern _ZN10MapManager18func_ov00_02084c5cEii .extern _ZN10PlayerBase18EquipItem_vfunc_2cEv .extern _ZN10PlayerBase18EquipItem_vfunc_3cEP8Cylinderi .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder @@ -10,6 +15,7 @@ .extern _ZN12ActorManager18func_ov00_020c39acEjPjb .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN13PlayerControl13StopFollowingEv +.extern _ZN14AdventureFlags18func_ov00_02097738Ev .extern _ZN9SysObjectdlEPv .extern _ZNK11ItemManager19GetActiveFairyLevelEi .extern data_02050f54 @@ -19,8 +25,7 @@ .extern data_027e0c54 .extern data_027e0d0c .extern data_027e0d3c -.extern data_027e0e60 -.extern gAdventureFlags +.extern gMapManager .extern data_027e0f90 .extern data_027e0f94 .extern data_027e0fac @@ -47,13 +52,7 @@ .extern func_ov00_0207a188 .extern func_ov00_0207a1c8 .extern func_ov00_0207b89c -.extern func_ov00_02083570 -.extern func_ov00_02083ef8 -.extern func_ov00_02084b38 -.extern func_ov00_02084be0 -.extern func_ov00_02084c5c .extern func_ov00_02087ef0 -.extern _ZN14AdventureFlags18func_ov00_02097738Ev .extern func_ov00_020bc46c .extern func_ov00_020bc7f8 .extern func_ov00_020bc854 @@ -73,4 +72,5 @@ .extern func_ov14_0213dadc .extern func_ov14_0213ddd4 .extern func_ov14_0213defc +.extern gAdventureFlags .extern gItemManager diff --git a/asm/ov00/Actor/Actor.s b/asm/ov00/Actor/Actor.s index 5250f84a..d255d42d 100644 --- a/asm/ov00/Actor/Actor.s +++ b/asm/ov00/Actor/Actor.s @@ -204,16 +204,16 @@ _020c1784: .word func_ov00_02087ef0 .global _ZN5Actor18func_ov00_020c1788Ev arm_func_start _ZN5Actor18func_ov00_020c1788Ev _ZN5Actor18func_ov00_020c1788Ev: ; 0x020c1788 - ldr r3, _020c17a0 ; =data_027e0e60 - ldr ip, _020c17a4 ; =func_ov00_02083570 + ldr r3, _020c17a0 ; =gMapManager + ldr ip, _020c17a4 ; =_ZN10MapManager18func_ov00_02083570Eii ldrb r1, [r0, #0x10] ldrb r2, [r0, #0x11] ldr r0, [r3] bx ip .align 2, 0 arm_func_end _ZN5Actor18func_ov00_020c1788Ev -_020c17a0: .word data_027e0e60 -_020c17a4: .word func_ov00_02083570 +_020c17a0: .word gMapManager +_020c17a4: .word _ZN10MapManager18func_ov00_02083570Eii .global _ZN5Actor8vfunc_2cEv arm_func_start _ZN5Actor8vfunc_2cEv @@ -680,32 +680,32 @@ _ZN5Actor8vfunc_a8Ev: ; 0x020c1bf8 arm_func_start _ZN5Actor18func_Ov00_020c1bfcEi _ZN5Actor18func_Ov00_020c1bfcEi: ; 0x020c1bfc add r2, r0, r1 - ldr r0, _020c1c18 ; =data_027e0e60 + ldr r0, _020c1c18 ; =gMapManager ldrb r1, [r2, #0x2a] - ldr ip, _020c1c1c ; =func_ov00_02084be0 + ldr ip, _020c1c1c ; =_ZN10MapManager18func_ov00_02084be0Eii ldrb r2, [r2, #0x28] ldr r0, [r0] bx ip .align 2, 0 arm_func_end _ZN5Actor18func_Ov00_020c1bfcEi -_020c1c18: .word data_027e0e60 -_020c1c1c: .word func_ov00_02084be0 +_020c1c18: .word gMapManager +_020c1c1c: .word _ZN10MapManager18func_ov00_02084be0Eii .global _ZN5Actor18func_ov00_020c1c20Eiii arm_func_start _ZN5Actor18func_ov00_020c1c20Eiii _ZN5Actor18func_ov00_020c1c20Eiii: ; 0x020c1c20 stmdb sp!, {r3, lr} add ip, r0, r1 - ldr r0, _020c1c44 ; =data_027e0e60 + ldr r0, _020c1c44 ; =gMapManager mov r3, r2 ldrb r1, [ip, #0x2a] ldrb r2, [ip, #0x28] ldr r0, [r0] - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldmia sp!, {r3, pc} .align 2, 0 arm_func_end _ZN5Actor18func_ov00_020c1c20Eiii -_020c1c44: .word data_027e0e60 +_020c1c44: .word gMapManager .global _ZN5Actor8vfunc_48Ei arm_func_start _ZN5Actor8vfunc_48Ei @@ -2306,7 +2306,7 @@ _ZN5Actor18func_ov00_020c3094Ev: ; 0x020c3094 sub sp, sp, #0x18 mov r5, r0 ldr r1, [r5, #0x48] - ldr r0, _020c3108 ; =data_027e0e60 + ldr r0, _020c3108 ; =gMapManager str r1, [sp, #0xc] ldr r1, [r5, #0x4c] mov r4, #0 @@ -2323,7 +2323,7 @@ _ZN5Actor18func_ov00_020c3094Ev: ; 0x020c3094 ldr ip, [r5, #0x5c] mov r3, r4 str ip, [sp, #8] - bl func_ov00_02083ef8 + bl _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ ldr r1, [r5, #0x4c] cmp r1, r0 movle r4, #1 @@ -2333,7 +2333,7 @@ _ZN5Actor18func_ov00_020c3094Ev: ; 0x020c3094 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end _ZN5Actor18func_ov00_020c3094Ev -_020c3108: .word data_027e0e60 +_020c3108: .word gMapManager .global _ZN5Actor6GetPosEv arm_func_start _ZN5Actor6GetPosEv @@ -2382,14 +2382,14 @@ _ZN5Actor18func_ov00_020c3158Ev: ; 0x020c3158 ldr r1, [r0, #0x3c] cmp r1, #0 ldmltia sp!, {r3, pc} - ldr r0, _020c317c ; =data_027e0e60 + ldr r0, _020c317c ; =gMapManager mov r2, #1 ldr r0, [r0] - bl func_ov00_02084c5c + bl _ZN10MapManager18func_ov00_02084c5cEii ldmia sp!, {r3, pc} .align 2, 0 arm_func_end _ZN5Actor18func_ov00_020c3158Ev -_020c317c: .word data_027e0e60 +_020c317c: .word gMapManager .global _ZN5Actor4KillEv arm_func_start _ZN5Actor4KillEv diff --git a/asm/ov00/Actor/ActorManager.inc b/asm/ov00/Actor/ActorManager.inc index f6b3c7c3..68a7a1cd 100644 --- a/asm/ov00/Actor/ActorManager.inc +++ b/asm/ov00/Actor/ActorManager.inc @@ -1,14 +1,14 @@ #pragma once +.extern _ZN10MapManager18func_ov00_020836ccEjP4AABBj .extern _ZN5Actor10SetUnk_129Eb .extern _ZN5Actor14DistanceToLinkEv .extern _ZN5Actor14StopLinkFollowEv .extern _ZN5Actor18func_ov00_020c27a8Ei .extern data_02056be4 .extern data_027e077c -.extern data_027e0e60 +.extern gMapManager .extern data_027e103c .extern func_01ff9ec0 -.extern func_ov00_020836cc .extern func_ov00_0208e72c .extern func_ov00_0208e7a4 .extern func_ov00_0208f318 diff --git a/asm/ov00/Actor/ActorManager.s b/asm/ov00/Actor/ActorManager.s index bf9a3318..b8de6df0 100644 --- a/asm/ov00/Actor/ActorManager.s +++ b/asm/ov00/Actor/ActorManager.s @@ -616,11 +616,11 @@ _ZN12ActorManager18func_ov00_020c3bb0EiPi: ; 0x020c3bb0 str r0, [sp] movne r0, #0 strne r0, [r10] - ldr r0, _020c3ce4 ; =data_027e0e60 + ldr r0, _020c3ce4 ; =gMapManager add r2, sp, #0x14 ldr r0, [r0] mov r3, #8 - bl func_ov00_020836cc + bl _ZN10MapManager18func_ov00_020836ccEjP4AABBj mov r5, r0 cmp r5, #0 addle sp, sp, #0xd4 @@ -695,20 +695,20 @@ _020c3cd8: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end _ZN12ActorManager18func_ov00_020c3bb0EiPi -_020c3ce4: .word data_027e0e60 +_020c3ce4: .word gMapManager .global _ZN12ActorManager18func_ov00_020c3ce8Eii arm_func_start _ZN12ActorManager18func_ov00_020c3ce8Eii _ZN12ActorManager18func_ov00_020c3ce8Eii: ; 0x020c3ce8 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0xcc - ldr r3, _020c3dcc ; =data_027e0e60 + ldr r3, _020c3dcc ; =gMapManager mov r11, r0 ldr r0, [r3] mov r10, r2 add r2, sp, #0xc mov r3, #8 - bl func_ov00_020836cc + bl _ZN10MapManager18func_ov00_020836ccEjP4AABBj mov r5, r0 cmp r5, #0 addle sp, sp, #0xcc @@ -763,7 +763,7 @@ _020c3db0: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end _ZN12ActorManager18func_ov00_020c3ce8Eii -_020c3dcc: .word data_027e0e60 +_020c3dcc: .word gMapManager .global _ZN12ActorManager14Actor_vfunc_28Ev arm_func_start _ZN12ActorManager14Actor_vfunc_28Ev diff --git a/asm/ov00/Item/ItemManager.inc b/asm/ov00/Item/ItemManager.inc deleted file mode 100644 index 871cc044..00000000 --- a/asm/ov00/Item/ItemManager.inc +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once -.extern LoadTreasureItemFanfare -.extern _ZN11ItemManager12GetEquipItemEi -.extern _ZNK11ItemManager10GetMaxAmmoEi -.extern data_027e0e60 -.extern gAdventureFlags -.extern data_027e0f78 -.extern data_027e0fbc -.extern data_027e103c -.extern data_027e1058 -.extern data_027e105c -.extern data_ov00_020eec68 -.extern func_020196bc -.extern func_020196fc -.extern strcat -.extern func_ov00_02079ffc -.extern func_ov00_02084b08 -.extern func_ov00_02084b14 -.extern _ZN14AdventureFlags3GetEj -.extern _ZN14AdventureFlags3SetEjb -.extern func_ov00_020cf374 -.extern func_ov00_020d73bc -.extern func_ov05_02104004 -.extern func_ov09_0211c700 -.extern func_ov09_0211ca20 -.extern gItemManager diff --git a/asm/ov00/Item/ItemManager.s b/asm/ov00/Item/ItemManager.s deleted file mode 100644 index ccf8fb70..00000000 --- a/asm/ov00/Item/ItemManager.s +++ /dev/null @@ -1,2316 +0,0 @@ - .include "macros/function.inc" - .include "ov00/Item/ItemManager.inc" - - .text - - .global _ZN11ItemManager15LoadFanfareItemEj - thumb_func_start _ZN11ItemManager15LoadFanfareItemEj -_ZN11ItemManager15LoadFanfareItemEj: ; 0x020adb30 - push {r4, r5, lr} - sub sp, #0x10c - add r5, r0, #0 - mov r0, #0x46 - lsl r0, r0, #2 - str r1, [r5, r0] - cmp r1, #0x2b - beq _020adb54 - cmp r1, #0x25 - beq _020adb54 - cmp r1, #0x79 - blt _020adb4c - cmp r1, #0x7c - ble _020adb54 -_020adb4c: - cmp r1, #0x7e - beq _020adb54 - cmp r1, #0x85 - bne _020adb5c -_020adb54: - ldr r0, _020adc8c ; =data_027e1058 - ldr r0, [r0] - ldr r1, [r0] - b _020adc7c -_020adb5c: - cmp r1, #0x30 - blt _020adb76 - cmp r1, #0x37 - bgt _020adb76 - ldr r0, _020adc90 ; =data_027e105c - sub r1, #0x30 - ldr r0, [r0] - mov r2, #1 - mov r3, #0 - bl LoadTreasureItemFanfare - add r1, r0, #0 - b _020adc7c -_020adb76: - cmp r1, #0x7d - bne _020adb82 - ldr r0, _020adc90 ; =data_027e105c - ldr r0, [r0] - ldr r1, [r0] - b _020adc7c -_020adb82: - add r3, sp, #0x8c - mov r2, #0x80 - mov r0, #0 -_020adb88: - strb r0, [r3] - add r3, r3, #1 - sub r2, r2, #1 - bne _020adb88 - add r3, sp, #0xc - mov r2, #0x80 - mov r0, #0 -_020adb96: - strb r0, [r3] - add r3, r3, #1 - sub r2, r2, #1 - bne _020adb96 - mov r4, #0 - cmp r1, #0x28 - bne _020adbb4 - add r0, r5, #0 - add r0, #0xb4 - ldrh r0, [r0] - cmp r0, #1 - blt _020adbb4 - ldr r0, _020adc94 ; =data_ov00_020e5df8 - ldr r4, [r0, #4] - b _020adc22 -_020adbb4: - cmp r1, #0x29 - bne _020adbc8 - add r0, r5, #0 - add r0, #0xb6 - ldrh r0, [r0] - cmp r0, #1 - blt _020adbc8 - ldr r0, _020adc94 ; =data_ov00_020e5df8 - ldr r4, [r0, #8] - b _020adc22 -_020adbc8: - cmp r1, #0x2a - bne _020adbdc - add r0, r5, #0 - add r0, #0xb8 - ldrh r0, [r0] - cmp r0, #1 - blt _020adbdc - ldr r0, _020adc94 ; =data_ov00_020e5df8 - ldr r4, [r0, #0xc] - b _020adc22 -_020adbdc: - cmp r1, #0x3e - bne _020adbe6 - ldr r0, _020adc98 ; =data_ov00_020e5c78 - ldr r4, [r0, #0x2c] - b _020adc22 -_020adbe6: - cmp r1, #0x46 - bge _020adbf2 - ldr r0, _020adc9c ; =data_ov00_020e5c9c - lsl r1, r1, #2 - ldr r4, [r0, r1] - b _020adc22 -_020adbf2: - cmp r1, #0x71 - blt _020adc04 - cmp r1, #0x79 - bge _020adc04 - sub r1, #0x71 - ldr r0, _020adca0 ; =data_ov00_020e5db4 - lsl r1, r1, #2 - ldr r4, [r0, r1] - b _020adc22 -_020adc04: - cmp r1, #0x7f - blt _020adc16 - cmp r1, #0x88 - bge _020adc16 - sub r1, #0x7f - ldr r0, _020adca4 ; =data_ov00_020e5dd4 - lsl r1, r1, #2 - ldr r4, [r0, r1] - b _020adc22 -_020adc16: - cmp r1, #0x4b - blt _020adc22 - cmp r1, #0x6a - bgt _020adc22 - ldr r0, _020adc94 ; =data_ov00_020e5df8 - ldr r4, [r0] -_020adc22: - cmp r4, #0 - bne _020adc2a - ldr r0, _020adc98 ; =data_ov00_020e5c78 - ldr r4, [r0, #0x20] -_020adc2a: - ldr r1, _020adc94 ; =data_ov00_020e5df8 - add r0, sp, #0x8c - ldr r1, [r1, #0x10] - blx strcat - add r0, sp, #0x8c - add r1, r4, #0 - blx strcat - ldr r1, _020adc94 ; =data_ov00_020e5df8 - add r0, sp, #0x8c - ldr r1, [r1, #0x14] - blx strcat - ldr r1, _020adc94 ; =data_ov00_020e5df8 - add r0, sp, #0xc - ldr r1, [r1, #0x10] - blx strcat - add r0, sp, #0xc - add r1, r4, #0 - blx strcat - ldr r1, _020adc94 ; =data_ov00_020e5df8 - add r0, sp, #0xc - ldr r1, [r1, #0x18] - blx strcat - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x12 - lsl r0, r0, #4 - ldr r0, [r5, r0] - add r1, sp, #0x8c - add r2, sp, #0xc - bl func_ov00_02079ffc - add r1, r0, #0 -_020adc7c: - mov r0, #0x45 - lsl r0, r0, #2 - ldr r0, [r5, r0] - ldr r2, [r0] - ldr r2, [r2, #0xc] - blx r2 - add sp, #0x10c - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end _ZN11ItemManager15LoadFanfareItemEj -_020adc8c: .word data_027e1058 -_020adc90: .word data_027e105c -_020adc94: .word data_ov00_020e5df8 -_020adc98: .word data_ov00_020e5c78 -_020adc9c: .word data_ov00_020e5c9c -_020adca0: .word data_ov00_020e5db4 -_020adca4: .word data_ov00_020e5dd4 - - .global _ZNK11ItemManager19GetFanfareItemScaleEP5Vec3p - thumb_func_start _ZNK11ItemManager19GetFanfareItemScaleEP5Vec3p -_ZNK11ItemManager19GetFanfareItemScaleEP5Vec3p: ; 0x020adca8 - mov r2, #0x46 - lsl r2, r2, #2 - ldr r0, [r0, r2] - cmp r0, #0x1b - bgt _020adcc4 - cmp r0, #0x1a - blt _020adcbe - beq _020adcc8 - cmp r0, #0x1b - beq _020adcc8 - b _020adcd4 -_020adcbe: - cmp r0, #9 - beq _020adcc8 - b _020adcd4 -_020adcc4: - cmp r0, #0x82 - bne _020adcd4 -_020adcc8: - ldr r0, _020adcd8 ; =0x00001666 - str r0, [r1] - str r0, [r1, #4] - str r0, [r1, #8] - mov r0, #1 - bx lr -_020adcd4: - mov r0, #0 - bx lr - .align 2, 0 - thumb_func_end _ZNK11ItemManager19GetFanfareItemScaleEP5Vec3p -_020adcd8: .word 0x00001666 - - .global _ZN11ItemManager8GiveItemEjjj - thumb_func_start _ZN11ItemManager8GiveItemEjjj -_ZN11ItemManager8GiveItemEjjj: ; 0x020adcdc - push {r3, r4, r5, lr} - cmp r1, #0x76 - bgt _020addd2 - blt _020adce6 - b _020ae128 -_020adce6: - cmp r1, #0x6f - bgt _020adda0 - blt _020adcee - b _020ae0ec -_020adcee: - cmp r1, #0x6c - bgt _020add8e - blt _020adcf6 - b _020ae0bc -_020adcf6: - cmp r1, #0x3d - bgt _020add86 - cmp r1, #0 - blt _020add8c - add r2, r1, r1 - add r2, pc - ldrh r2, [r2, #6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_020add0a: ; jump table - .short _020ae222 - _020add0a - 2 ; case 0 - .short _020ade36 - _020add0a - 2 ; case 1 - .short _020ade3e - _020add0a - 2 ; case 2 - .short _020ade7c - _020add0a - 2 ; case 3 - .short _020ade98 - _020add0a - 2 ; case 4 - .short _020ae222 - _020add0a - 2 ; case 5 - .short _020ae1fe - _020add0a - 2 ; case 6 - .short _020adeb4 - _020add0a - 2 ; case 7 - .short _020adec8 - _020add0a - 2 ; case 8 - .short _020ade5c - _020add0a - 2 ; case 9 - .short _020ae1fe - _020add0a - 2 ; case 10 - .short _020ae1fe - _020add0a - 2 ; case 11 - .short _020aded2 - _020add0a - 2 ; case 12 - .short _020adedc - _020add0a - 2 ; case 13 - .short _020adebe - _020add0a - 2 ; case 14 - .short _020ae1fe - _020add0a - 2 ; case 15 - .short _020ae222 - _020add0a - 2 ; case 16 - .short _020ae1fe - _020add0a - 2 ; case 17 - .short _020adefa - _020add0a - 2 ; case 18 - .short _020adf12 - _020add0a - 2 ; case 19 - .short _020adf2c - _020add0a - 2 ; case 20 - .short _020adf46 - _020add0a - 2 ; case 21 - .short _020adf60 - _020add0a - 2 ; case 22 - .short _020ae1fe - _020add0a - 2 ; case 23 - .short _020ade48 - _020add0a - 2 ; case 24 - .short _020ade52 - _020add0a - 2 ; case 25 - .short _020ade66 - _020add0a - 2 ; case 26 - .short _020ade70 - _020add0a - 2 ; case 27 - .short _020ae1fe - _020add0a - 2 ; case 28 - .short _020ae1fe - _020add0a - 2 ; case 29 - .short _020ae1fe - _020add0a - 2 ; case 30 - .short _020adee6 - _020add0a - 2 ; case 31 - .short _020adef0 - _020add0a - 2 ; case 32 - .short _020ae1fe - _020add0a - 2 ; case 33 - .short _020ae1fe - _020add0a - 2 ; case 34 - .short _020ae1fe - _020add0a - 2 ; case 35 - .short _020adf7a - _020add0a - 2 ; case 36 - .short _020adf96 - _020add0a - 2 ; case 37 - .short _020adfbe - _020add0a - 2 ; case 38 - .short _020adfd8 - _020add0a - 2 ; case 39 - .short _020adff2 - _020add0a - 2 ; case 40 - .short _020adff8 - _020add0a - 2 ; case 41 - .short _020adffe - _020add0a - 2 ; case 42 - .short _020ae1fe - _020add0a - 2 ; case 43 - .short _020ae004 - _020add0a - 2 ; case 44 - .short _020ae024 - _020add0a - 2 ; case 45 - .short _020ae032 - _020add0a - 2 ; case 46 - .short _020ae040 - _020add0a - 2 ; case 47 - .short _020ae1fe - _020add0a - 2 ; case 48 - .short _020ae1fe - _020add0a - 2 ; case 49 - .short _020ae1fe - _020add0a - 2 ; case 50 - .short _020ae1fe - _020add0a - 2 ; case 51 - .short _020ae1fe - _020add0a - 2 ; case 52 - .short _020ae1fe - _020add0a - 2 ; case 53 - .short _020ae1fe - _020add0a - 2 ; case 54 - .short _020ae1fe - _020add0a - 2 ; case 55 - .short _020ae014 - _020add0a - 2 ; case 56 - .short _020ae1fe - _020add0a - 2 ; case 57 - .short _020ae1fe - _020add0a - 2 ; case 58 - .short _020ae1fe - _020add0a - 2 ; case 59 - .short _020ae1fe - _020add0a - 2 ; case 60 - .short _020ae04e - _020add0a - 2 ; case 61 -_020add86: - cmp r1, #0x6b - bne _020add8c - b _020ae0ac -_020add8c: - b _020ae1fe -_020add8e: - cmp r1, #0x6d - bgt _020add98 - bne _020add96 - b _020ae0cc -_020add96: - b _020ae1fe -_020add98: - cmp r1, #0x6e - bne _020add9e - b _020ae0dc -_020add9e: - b _020ae1fe -_020adda0: - cmp r1, #0x72 - bgt _020addba - blt _020adda8 - b _020ae082 -_020adda8: - cmp r1, #0x70 - bgt _020addb2 - bne _020addb0 - b _020ae0fc -_020addb0: - b _020ae1fe -_020addb2: - cmp r1, #0x71 - bne _020addb8 - b _020ae072 -_020addb8: - b _020ae1fe -_020addba: - cmp r1, #0x74 - bgt _020addca - blt _020addc2 - b _020ae09e -_020addc2: - cmp r1, #0x73 - bne _020addc8 - b _020ae090 -_020addc8: - b _020ae1fe -_020addca: - cmp r1, #0x75 - bne _020addd0 - b _020ae10c -_020addd0: - b _020ae1fe -_020addd2: - cmp r1, #0x7c - bgt _020ade06 - blt _020addda - b _020ae1b0 -_020addda: - cmp r1, #0x79 - bgt _020addf4 - blt _020adde2 - b _020ae16c -_020adde2: - cmp r1, #0x77 - bgt _020addec - bne _020addea - b _020ae144 -_020addea: - b _020ae1fe -_020addec: - cmp r1, #0x78 - bne _020addf2 - b _020ae160 -_020addf2: - b _020ae1fe -_020addf4: - cmp r1, #0x7a - bgt _020addfe - bne _020addfc - b _020ae182 -_020addfc: - b _020ae1fe -_020addfe: - cmp r1, #0x7b - bne _020ade04 - thumb_func_end _ZN11ItemManager8GiveItemEjjj -_020ade02: - b _020ae198 -_020ade04: - b _020ae1fe -_020ade06: - cmp r1, #0x81 - bgt _020ade20 - blt _020ade0e - b _020ae1e6 -_020ade0e: - cmp r1, #0x7f - bgt _020ade18 - bne _020ade16 - b _020ae1c6 -_020ade16: - b _020ae1fe -_020ade18: - cmp r1, #0x80 - bne _020ade1e - b _020ae1d6 -_020ade1e: - b _020ae1fe -_020ade20: - cmp r1, #0x83 - bgt _020ade2e - bge _020ade32 - cmp r1, #0x82 - bne _020ade2c - b _020ae1f2 -_020ade2c: - b _020ae1fe -_020ade2e: - cmp r1, #0x84 - bne _020ade34 -_020ade32: - b _020ae222 -_020ade34: - b _020ae1fe -_020ade36: - mov r1, #1 - bl _ZN11ItemManager8GiveKeysEj - b _020ae222 -_020ade3e: - mov r1, #1 - add r2, r1, #0 - blx _ZN11ItemManager10GiveRupeesEjj - b _020ae222 -_020ade48: - mov r1, #5 - mov r2, #1 - blx _ZN11ItemManager10GiveRupeesEjj - b _020ae222 -_020ade52: - mov r1, #0x14 - mov r2, #1 - blx _ZN11ItemManager10GiveRupeesEjj - b _020ae222 -_020ade5c: - mov r1, #0x64 - mov r2, #1 - blx _ZN11ItemManager10GiveRupeesEjj - b _020ae222 -_020ade66: - mov r1, #0xc8 - mov r2, #1 - blx _ZN11ItemManager10GiveRupeesEjj - b _020ae222 -_020ade70: - mov r1, #0x4b - lsl r1, r1, #2 - mov r2, #1 - blx _ZN11ItemManager10GiveRupeesEjj - b _020ae222 -_020ade7c: - mov r2, #0x4a - lsl r2, r2, #2 - ldr r3, [r0, r2] - mov r1, #1 - orr r1, r3 - str r1, [r0, r2] - mov r1, #0 - blx _ZN11ItemManager12GetEquipItemEi - ldr r2, [r0] - mov r1, #1 - ldr r2, [r2, #0x20] - blx r2 - b _020ae222 -_020ade98: - mov r2, #0x4a - lsl r2, r2, #2 - ldr r3, [r0, r2] - mov r1, #2 - orr r1, r3 - str r1, [r0, r2] - mov r1, #1 - blx _ZN11ItemManager12GetEquipItemEi - ldr r2, [r0] - mov r1, #1 - ldr r2, [r2, #0x20] - blx r2 - b _020ae222 -_020adeb4: - mov r1, #4 - mov r2, #0xa - bl _ZN11ItemManager13GiveEquipItemEij - b _020ae222 -_020adebe: - mov r1, #7 - mov r2, #0xa - bl _ZN11ItemManager13GiveEquipItemEij - b _020ae222 -_020adec8: - mov r1, #5 - mov r2, #0x14 - bl _ZN11ItemManager13GiveEquipItemEij - b _020ae222 -_020aded2: - mov r1, #2 - mov r2, #1 - bl _ZN11ItemManager13GiveEquipItemEij - b _020ae222 -_020adedc: - mov r1, #3 - mov r2, #1 - bl _ZN11ItemManager13GiveEquipItemEij - b _020ae222 -_020adee6: - mov r1, #8 - mov r2, #1 - bl _ZN11ItemManager13GiveEquipItemEij - b _020ae222 -_020adef0: - mov r1, #6 - mov r2, #1 - bl _ZN11ItemManager13GiveEquipItemEij - b _020ae222 -_020adefa: - mov r1, #0x4b - lsl r1, r1, #2 - ldr r3, [r0, r1] - mov r2, #1 - orr r3, r2 - str r3, [r0, r1] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x13 - ldr r0, [r0] - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020adf12: - mov r2, #0x4b - lsl r2, r2, #2 - ldr r3, [r0, r2] - mov r1, #2 - orr r1, r3 - str r1, [r0, r2] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #9 - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020adf2c: - mov r2, #0x4b - lsl r2, r2, #2 - ldr r3, [r0, r2] - mov r1, #4 - orr r1, r3 - str r1, [r0, r2] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0xa - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020adf46: - mov r2, #0x4b - lsl r2, r2, #2 - ldr r3, [r0, r2] - mov r1, #8 - orr r1, r3 - str r1, [r0, r2] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0xb - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020adf60: - mov r2, #0x4b - lsl r2, r2, #2 - ldr r3, [r0, r2] - mov r1, #0x10 - orr r1, r3 - str r1, [r0, r2] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0xc - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020adf7a: - mov r2, #0x4b - lsl r2, r2, #2 - add r1, r2, #0 - ldr r3, [r0, r2] - sub r1, #0x2c - orr r1, r3 - str r1, [r0, r2] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x2b - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020adf96: - mov r2, #0x4b - lsl r2, r2, #2 - add r1, r2, #0 - ldr r3, [r0, r2] - add r1, #0xd4 - orr r1, r3 - str r1, [r0, r2] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x30 - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - mov r0, #3 - mov r1, #0 - bl func_ov09_0211ca20 - bl func_ov09_0211c700 - b _020ae222 -_020adfbe: - mov r2, #0x4b - lsl r2, r2, #2 - ldr r3, [r0, r2] - mov r1, #0x40 - orr r1, r3 - str r1, [r0, r2] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x16 - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020adfd8: - mov r2, #0x4b - lsl r2, r2, #2 - ldr r3, [r0, r2] - mov r1, #0x80 - orr r1, r3 - str r1, [r0, r2] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x17 - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020adff2: - bl _ZN11ItemManager13UpgradeQuiverEv - b _020ae222 -_020adff8: - bl _ZN11ItemManager14UpgradeBombBagEv - b _020ae222 -_020adffe: - bl _ZN11ItemManager17UpgradeBombchuBagEv - b _020ae222 -_020ae004: - mov r2, #0x4b - lsl r2, r2, #2 - mov r1, #1 - ldr r3, [r0, r2] - lsl r1, r1, #0xa - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae014: - mov r2, #0x4b - lsl r2, r2, #2 - mov r1, #2 - ldr r3, [r0, r2] - lsl r1, r1, #0xa - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae024: - add r1, r0, #0 - add r1, #0x25 - ldrb r1, [r1] - add r0, #0x25 - add r1, r1, #1 - strb r1, [r0] - b _020ae222 -_020ae032: - add r1, r0, #0 - add r1, #0x26 - ldrb r1, [r1] - add r0, #0x26 - add r1, r1, #1 - strb r1, [r0] - b _020ae222 -_020ae040: - add r1, r0, #0 - add r1, #0x24 - ldrb r1, [r1] - add r0, #0x24 - add r1, r1, #1 - strb r1, [r0] - b _020ae222 -_020ae04e: - mov r2, #0x4b - lsl r2, r2, #2 - mov r1, #1 - ldr r3, [r0, r2] - lsl r1, r1, #0xc - orr r1, r3 - str r1, [r0, r2] - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x8c - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - ldr r0, _020ae248 ; =data_027e0fbc - mov r1, #5 - ldr r0, [r0] - strh r1, [r0, #8] - b _020ae222 -_020ae072: - mov r2, #0x4b - lsl r2, r2, #2 - mov r1, #2 - ldr r3, [r0, r2] - lsl r1, r1, #0xc - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae082: - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x7e - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020ae090: - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x7d - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020ae09e: - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x7f - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - b _020ae222 -_020ae0ac: - mov r2, #0x4a - lsl r2, r2, #2 - mov r1, #1 - ldr r3, [r0, r2] - lsl r1, r1, #0x18 - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae0bc: - mov r2, #0x4a - lsl r2, r2, #2 - mov r1, #2 - ldr r3, [r0, r2] - lsl r1, r1, #0x18 - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae0cc: - mov r2, #0x4a - lsl r2, r2, #2 - mov r1, #2 - ldr r3, [r0, r2] - lsl r1, r1, #0x16 - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae0dc: - mov r2, #0x4a - lsl r2, r2, #2 - mov r1, #2 - ldr r3, [r0, r2] - lsl r1, r1, #0x1a - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae0ec: - mov r2, #0x4a - lsl r2, r2, #2 - mov r1, #1 - ldr r3, [r0, r2] - lsl r1, r1, #0x1c - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae0fc: - mov r2, #0x4a - lsl r2, r2, #2 - mov r1, #1 - ldr r3, [r0, r2] - lsl r1, r1, #0x1a - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae10c: - mov r1, #0 -_020ae10e: - add r2, r0, r1 - add r2, #0xbc - ldrb r2, [r2] - cmp r2, #0 - bne _020ae120 - mov r2, #1 - blx _ZN11ItemManager9SetPotionEjj - b _020ae222 -_020ae120: - add r1, r1, #1 - cmp r1, #2 - blt _020ae10e - b _020ae222 -_020ae128: - mov r1, #0 -_020ae12a: - add r2, r0, r1 - add r2, #0xbc - ldrb r2, [r2] - cmp r2, #0 - bne _020ae13c - mov r2, #2 - blx _ZN11ItemManager9SetPotionEjj - b _020ae222 -_020ae13c: - add r1, r1, #1 - cmp r1, #2 - blt _020ae12a - b _020ae222 -_020ae144: - mov r1, #0 -_020ae146: - add r2, r0, r1 - add r2, #0xbc - ldrb r2, [r2] - cmp r2, #0 - bne _020ae158 - mov r2, #3 - blx _ZN11ItemManager9SetPotionEjj - b _020ae222 -_020ae158: - add r1, r1, #1 - cmp r1, #2 - blt _020ae146 - b _020ae222 -_020ae160: - mov r1, #0xe1 - ldr r2, [r0, #0xc] - lsl r1, r1, #4 - add r1, r2, r1 - str r1, [r0, #0xc] - b _020ae222 -_020ae16c: - ldr r0, _020ae244 ; =gAdventureFlags - ldr r1, _020ae24c ; =0x00000126 - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - mov r0, #6 - mov r1, #8 - bl func_ov09_0211ca20 - b _020ae222 -_020ae182: - ldr r0, _020ae244 ; =gAdventureFlags - ldr r1, _020ae250 ; =0x00000127 - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - mov r0, #4 - mov r1, #8 - bl func_ov09_0211ca20 - b _020ae222 -_020ae198: - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x4a - ldr r0, [r0] - lsl r1, r1, #2 - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - mov r0, #3 - mov r1, #8 - bl func_ov09_0211ca20 - b _020ae222 -_020ae1b0: - ldr r0, _020ae244 ; =gAdventureFlags - ldr r1, _020ae254 ; =0x00000129 - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb - mov r0, #2 - mov r1, #8 - bl func_ov09_0211ca20 - b _020ae222 -_020ae1c6: - mov r2, #0x4b - lsl r2, r2, #2 - mov r1, #1 - ldr r3, [r0, r2] - lsl r1, r1, #0xe - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae1d6: - mov r2, #0x4b - lsl r2, r2, #2 - mov r1, #2 - ldr r3, [r0, r2] - lsl r1, r1, #0xe - orr r1, r3 - str r1, [r0, r2] - b _020ae222 -_020ae1e6: - mov r1, #9 - mvn r1, r1 - mov r2, #1 - blx _ZN11ItemManager10GiveRupeesEjj - b _020ae222 -_020ae1f2: - mov r1, #0x31 - mvn r1, r1 - mov r2, #1 - blx _ZN11ItemManager10GiveRupeesEjj - b _020ae222 -_020ae1fe: - cmp r1, #0x4b - blt _020ae222 - cmp r1, #0x6a - bgt _020ae222 - mov r2, #0x4a - lsl r2, r2, #2 - add r1, #0x15 - add r3, r0, r2 - lsr r0, r1, #5 - mov r4, #0x1f - lsl r2, r0, #2 - mov r5, #1 - and r1, r4 - add r4, r5, #0 - ldr r0, [r3, r2] - lsl r4, r1 - orr r0, r4 - str r0, [r3, r2] -_020ae222: - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x7d - ldr r0, [r0] - blx _ZN14AdventureFlags3GetEj - cmp r0, #0 - beq _020ae270 - ldr r0, _020ae244 ; =gAdventureFlags - mov r1, #0x7e - ldr r0, [r0] - blx _ZN14AdventureFlags3GetEj - cmp r0, #0 - beq _020ae270 - ldr r0, _020ae244 ; =gAdventureFlags - b _020ae258 - nop -_020ae244: .word gAdventureFlags -_020ae248: .word data_027e0fbc -_020ae24c: .word 0x00000126 -_020ae250: .word 0x00000127 -_020ae254: .word 0x00000129 -_020ae258: - mov r1, #0x7f - ldr r0, [r0] - blx _ZN14AdventureFlags3GetEj - cmp r0, #0 - beq _020ae270 - ldr r0, _020ae274 ; =gAdventureFlags - mov r1, #0x80 - ldr r0, [r0] - mov r2, #1 - blx _ZN14AdventureFlags3SetEjb -_020ae270: - pop {r3, r4, r5, pc} - nop -_020ae274: .word gAdventureFlags - - .global _ZN11ItemManager13GiveEquipItemEij - thumb_func_start _ZN11ItemManager13GiveEquipItemEij -_ZN11ItemManager13GiveEquipItemEij: ; 0x020ae278 - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - str r2, [sp] - lsl r2, r6, #0x10 - lsr r5, r2, #0x10 - mov r2, #0x4a - lsr r3, r5, #5 - add r4, r0, #0 - lsl r2, r2, #2 - add r2, r4, r2 - lsl r7, r3, #2 - ldr r3, [r2, r7] - mov ip, r3 - mov r3, #0x1f - and r5, r3 - mov r3, #1 - lsl r3, r5 - mov r5, ip - orr r3, r5 - str r3, [r2, r7] - blx _ZN11ItemManager12GetEquipItemEi - ldr r2, [r0] - ldr r1, [sp] - ldr r2, [r2, #0x20] - blx r2 - mov r0, #0 - ldr r1, [r4] - mvn r0, r0 - cmp r1, r0 - bne _020ae2bc - str r6, [r4] - mov r0, #1 - strh r0, [r4, #0x20] -_020ae2bc: - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end _ZN11ItemManager13GiveEquipItemEij - - .global _ZN11ItemManager13UnequipPotionEv - thumb_func_start _ZN11ItemManager13UnequipPotionEv -_ZN11ItemManager13UnequipPotionEv: ; 0x020ae2c0 - push {r3, lr} - ldr r1, [r0] - cmp r1, #9 - beq _020ae2cc - cmp r1, #0xa - bne _020ae2d0 -_020ae2cc: - blx _ZN11ItemManager17EquipPreviousItemEv -_020ae2d0: - pop {r3, pc} - .align 2, 0 - thumb_func_end _ZN11ItemManager13UnequipPotionEv - - .global _ZNK11ItemManager12GetMaxRupeesEv - arm_func_start _ZNK11ItemManager12GetMaxRupeesEv -_ZNK11ItemManager12GetMaxRupeesEv: ; 0x020ae2d4 - ldr r0, _020ae2dc ; =0x0000270f - bx lr - .align 2, 0 - arm_func_end _ZNK11ItemManager12GetMaxRupeesEv -_020ae2dc: .word 0x0000270f - - .global _ZN11ItemManager10GiveRupeesEjj - arm_func_start _ZN11ItemManager10GiveRupeesEjj -_ZN11ItemManager10GiveRupeesEjj: ; 0x020ae2e0 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - ldrh r3, [r6, #0x22] - mov r5, r2 - add r4, r3, r1 - bl _ZNK11ItemManager12GetMaxRupeesEv - cmp r4, r0 - ble _020ae310 - mov r0, r6 - bl _ZNK11ItemManager12GetMaxRupeesEv - mov r4, r0 - b _020ae318 -_020ae310: - cmp r4, #0 - movlt r4, #0 -_020ae318: - ldr r0, _020ae34c ; =data_027e103c - mov r1, #1 - ldr r0, [r0] - bl func_ov00_020cf374 - cmp r5, #0 - ldrneh r0, [r6, #0x22] - cmpne r0, r4 - beq _020ae344 - ldr r0, _020ae34c ; =data_027e103c - ldr r0, [r0] - bl func_ov05_02104004 -_020ae344: - strh r4, [r6, #0x22] - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end _ZN11ItemManager10GiveRupeesEjj -_020ae34c: .word data_027e103c - - .global _ZNK11ItemManager18func_ov00_020ae350Ev - arm_func_start _ZNK11ItemManager18func_ov00_020ae350Ev -_ZNK11ItemManager18func_ov00_020ae350Ev: ; 0x020ae350 - ldr r0, _020ae360 ; =data_027e0e60 - ldr ip, _020ae364 ; =func_ov00_02084b14 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end _ZNK11ItemManager18func_ov00_020ae350Ev -_020ae360: .word data_027e0e60 -_020ae364: .word func_ov00_02084b14 - - .global _ZN11ItemManager8GiveKeysEj - thumb_func_start _ZN11ItemManager8GiveKeysEj -_ZN11ItemManager8GiveKeysEj: ; 0x020ae368 - push {r4, lr} - ldr r0, _020ae38c ; =data_027e0e60 - add r4, r1, #0 - ldr r0, [r0] - blx func_ov00_02084b14 - add r1, r4, r0 - cmp r1, #8 - blt _020ae37c - mov r1, #8 -_020ae37c: - cmp r1, #0 - bgt _020ae382 - mov r1, #0 -_020ae382: - ldr r0, _020ae38c ; =data_027e0e60 - ldr r0, [r0] - blx func_ov00_02084b08 - pop {r4, pc} - .align 2, 0 - thumb_func_end _ZN11ItemManager8GiveKeysEj -_020ae38c: .word data_027e0e60 - - .global _ZNK11ItemManager15GetEquippedItemEv - arm_func_start _ZNK11ItemManager15GetEquippedItemEv -_ZNK11ItemManager15GetEquippedItemEv: ; 0x020ae390 - ldr r2, [r0, #8] - mvn r1, #0 - cmp r2, r1 - ldreq r2, [r0] - mov r0, r2 - bx lr - arm_func_end _ZNK11ItemManager15GetEquippedItemEv - - .global _ZN11ItemManager15SetEquippedItemEi - arm_func_start _ZN11ItemManager15SetEquippedItemEi -_ZN11ItemManager15SetEquippedItemEi: ; 0x020ae3a8 - ldr r3, [r0] - mov r2, #2 - stmia r0, {r1, r3} - strh r2, [r0, #0x20] - mov r0, #1 - bx lr - arm_func_end _ZN11ItemManager15SetEquippedItemEi - - .global _ZN11ItemManager17EquipPreviousItemEv - arm_func_start _ZN11ItemManager17EquipPreviousItemEv -_ZN11ItemManager17EquipPreviousItemEv: ; 0x020ae3c0 - ldr ip, _020ae3cc ; =_ZN11ItemManager15SetEquippedItemEi - ldr r1, [r0, #4] - bx ip - .align 2, 0 - arm_func_end _ZN11ItemManager17EquipPreviousItemEv -_020ae3cc: .word _ZN11ItemManager15SetEquippedItemEi - 1 - - .global _ZN11ItemManager13ForceEquipItemEi - thumb_func_start _ZN11ItemManager13ForceEquipItemEi -_ZN11ItemManager13ForceEquipItemEi: ; 0x020ae3d0 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - add r6, r0, #0 - add r7, r1, #0 - add r5, r4, #0 -_020ae3da: - cmp r4, r7 - beq _020ae3ee - add r0, r6, #0 - add r0, #0xac - ldr r0, [r0] - mov r1, #0 - ldr r0, [r0, r5] - ldr r2, [r0] - ldr r2, [r2, #0x28] - blx r2 -_020ae3ee: - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #0xb - blt _020ae3da - str r7, [r6, #8] - mov r0, #1 - strh r0, [r6, #0x20] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end _ZN11ItemManager13ForceEquipItemEi - - .global _ZN11ItemManager20ClearForcedEquipItemEv - thumb_func_start _ZN11ItemManager20ClearForcedEquipItemEv -_ZN11ItemManager20ClearForcedEquipItemEv: ; 0x020ae400 - push {r3, lr} - mov r2, #0 - mvn r2, r2 - str r2, [r0, #8] - ldr r1, [r0] - cmp r1, r2 - beq _020ae414 - blx _ZN11ItemManager15SetEquippedItemEi - pop {r3, pc} -_020ae414: - mov r0, #0 - pop {r3, pc} - thumb_func_end _ZN11ItemManager20ClearForcedEquipItemEv - - .global _ZN11ItemManager22UpdateSwordShieldInUseEv - arm_func_start _ZN11ItemManager22UpdateSwordShieldInUseEv -_ZN11ItemManager22UpdateSwordShieldInUseEv: ; 0x020ae418 - stmdb sp!, {r4, lr} - mov r1, #0 - mov r4, r0 - bl _ZN11ItemManager12GetEquipItemEi - ldr r2, [r0] - mov r1, #1 - ldr r2, [r2, #0x28] - blx r2 - mov r0, r4 - mov r1, #1 - bl _ZN11ItemManager12GetEquipItemEi - ldr r2, [r0] - mov r1, #1 - ldr r2, [r2, #0x28] - blx r2 - ldmia sp!, {r4, pc} - arm_func_end _ZN11ItemManager22UpdateSwordShieldInUseEv - - .global _ZN11ItemManager13UpgradeQuiverEv - thumb_func_start _ZN11ItemManager13UpgradeQuiverEv -_ZN11ItemManager13UpgradeQuiverEv: ; 0x020ae458 - push {r4, lr} - add r4, r0, #0 - add r0, #0xb4 - ldrh r0, [r0] - cmp r0, #2 - bhs _020ae472 - add r0, r4, #0 - add r0, #0xb4 - ldrh r0, [r0] - add r1, r0, #1 - add r0, r4, #0 - add r0, #0xb4 - strh r1, [r0] -_020ae472: - add r0, r4, #0 - mov r1, #5 - bl _ZNK11ItemManager10GetMaxAmmoEi - add r4, #0xb0 - ldr r1, [r4] - strh r0, [r1, #0xa] - pop {r4, pc} - .align 2, 0 - thumb_func_end _ZN11ItemManager13UpgradeQuiverEv - - .global _ZN11ItemManager14UpgradeBombBagEv - thumb_func_start _ZN11ItemManager14UpgradeBombBagEv -_ZN11ItemManager14UpgradeBombBagEv: ; 0x020ae484 - push {r4, lr} - add r4, r0, #0 - add r0, #0xb6 - ldrh r0, [r0] - cmp r0, #2 - bhs _020ae49e - add r0, r4, #0 - add r0, #0xb6 - ldrh r0, [r0] - add r1, r0, #1 - add r0, r4, #0 - add r0, #0xb6 - strh r1, [r0] -_020ae49e: - add r0, r4, #0 - mov r1, #4 - bl _ZNK11ItemManager10GetMaxAmmoEi - add r4, #0xb0 - ldr r1, [r4] - strh r0, [r1, #8] - pop {r4, pc} - .align 2, 0 - thumb_func_end _ZN11ItemManager14UpgradeBombBagEv - - .global _ZN11ItemManager17UpgradeBombchuBagEv - thumb_func_start _ZN11ItemManager17UpgradeBombchuBagEv -_ZN11ItemManager17UpgradeBombchuBagEv: ; 0x020ae4b0 - push {r4, lr} - add r4, r0, #0 - add r0, #0xb8 - ldrh r0, [r0] - cmp r0, #2 - bhs _020ae4ca - add r0, r4, #0 - add r0, #0xb8 - ldrh r0, [r0] - add r1, r0, #1 - add r0, r4, #0 - add r0, #0xb8 - strh r1, [r0] -_020ae4ca: - add r0, r4, #0 - mov r1, #7 - bl _ZNK11ItemManager10GetMaxAmmoEi - add r4, #0xb0 - ldr r1, [r4] - strh r0, [r1, #0xe] - pop {r4, pc} - .align 2, 0 - thumb_func_end _ZN11ItemManager17UpgradeBombchuBagEv - - .global _ZN11ItemManager18func_ov00_020ae4dcEj - arm_func_start _ZN11ItemManager18func_ov00_020ae4dcEj -_ZN11ItemManager18func_ov00_020ae4dcEj: ; 0x020ae4dc - ldrh r3, [r0, #0xba] - add r2, r3, r1 - cmp r2, #9 - movgt r1, #9 - strgth r1, [r0, #0xba] - bxgt lr - rsb r1, r1, #0 - cmp r3, r1 - movlt r1, #0 - strlth r1, [r0, #0xba] - strgeh r2, [r0, #0xba] - bx lr - arm_func_end _ZN11ItemManager18func_ov00_020ae4dcEj - - .global _ZN11ItemManager9SetPotionEjj - arm_func_start _ZN11ItemManager9SetPotionEjj -_ZN11ItemManager9SetPotionEjj: ; 0x020ae50c - add r3, r0, r1 - strb r2, [r3, #0xbc] - cmp r2, #0 - add r1, r1, #9 - bne _020ae544 - add r3, r0, #0x128 - mov r2, r1, lsr #0x5 - and r0, r1, #0x1f - mov r1, #1 - mvn r0, r1, lsl r0 - ldr r1, [r3, r2, lsl #2] - and r0, r1, r0 - str r0, [r3, r2, lsl #2] - bx lr -_020ae544: - add ip, r0, #0x128 - mov r3, r1, lsr #0x5 - and r0, r1, #0x1f - ldr r2, [ip, r3, lsl #2] - mov r1, #1 - orr r0, r2, r1, lsl r0 - str r0, [ip, r3, lsl #2] - bx lr - arm_func_end _ZN11ItemManager9SetPotionEjj - - .global _ZNK11ItemManager9HasPotionEj - arm_func_start _ZNK11ItemManager9HasPotionEj -_ZNK11ItemManager9HasPotionEj: ; 0x020ae564 - add r0, r0, r1 - ldrb r0, [r0, #0xbc] - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _020ae590 -_020ae578: ; jump table - b _020ae590 ; case 0 - b _020ae588 ; case 1 - b _020ae588 ; case 2 - b _020ae588 ; case 3 -_020ae588: - mov r0, #1 - bx lr -_020ae590: - mov r0, #0 - bx lr - arm_func_end _ZNK11ItemManager9HasPotionEj - - .global _ZNK11ItemManager13HasAllPotionsEv - arm_func_start _ZNK11ItemManager13HasAllPotionsEv -_ZNK11ItemManager13HasAllPotionsEv: ; 0x020ae598 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, #0 -_020ae5a4: - mov r0, r5 - mov r1, r4 - bl _ZNK11ItemManager9HasPotionEj - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} - add r4, r4, #1 - cmp r4, #2 - blt _020ae5a4 - mov r0, #1 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZNK11ItemManager13HasAllPotionsEv - - .global _ZNK11ItemManager15HasPurplePotionEv - arm_func_start _ZNK11ItemManager15HasPurplePotionEv -_ZNK11ItemManager15HasPurplePotionEv: ; 0x020ae5d0 - mov r2, #0 -_020ae5d4: - add r1, r0, r2 - ldrb r1, [r1, #0xbc] - cmp r1, #2 - moveq r0, #1 - bxeq lr - add r2, r2, #1 - cmp r2, #2 - blt _020ae5d4 - mov r0, #0 - bx lr - arm_func_end _ZNK11ItemManager15HasPurplePotionEv - - .global _ZN11ItemManager21LoadDungeonItemModelsEv - thumb_func_start _ZN11ItemManager21LoadDungeonItemModelsEv -_ZN11ItemManager21LoadDungeonItemModelsEv: ; 0x020ae5fc - push {r3, r4, r5, r6, r7, lr} - ldr r7, _020ae644 ; =data_027e0f78 - add r5, r0, #0 - mov r4, #0 -_020ae604: - mov r0, #1 - lsl r0, r0, #8 - ldr r0, [r5, r0] - cmp r0, #0 - beq _020ae638 - cmp r4, #2 - beq _020ae61a - cmp r4, #3 - beq _020ae61a - cmp r4, #4 - bne _020ae622 -_020ae61a: - ldr r2, [r7] - ldrh r1, [r2, #0x1e] - ldrh r6, [r2, #0x1c] - b _020ae628 -_020ae622: - ldr r2, [r7] - ldrh r1, [r2, #0x1a] - ldrh r6, [r2, #0x18] -_020ae628: - blx func_020196bc - mov r0, #1 - lsl r0, r0, #8 - ldr r0, [r5, r0] - add r1, r6, #0 - blx func_020196fc -_020ae638: - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #5 - blt _020ae604 - pop {r3, r4, r5, r6, r7, pc} - nop - thumb_func_end _ZN11ItemManager21LoadDungeonItemModelsEv -_020ae644: .word data_027e0f78 - - .global _ZN11ItemManager18func_ov00_020ae648Ejjj - thumb_func_start _ZN11ItemManager18func_ov00_020ae648Ejjj -_ZN11ItemManager18func_ov00_020ae648Ejjj: ; 0x020ae648 - push {r3, lr} - ldr r1, _020ae6e8 ; =gItemManager - ldr r2, [r1] - mov r1, #0x53 - lsl r1, r1, #2 - ldrb r3, [r2, r1] - cmp r3, #1 - bne _020ae65e - mov r0, #0 - strb r0, [r2, r1] - pop {r3, pc} -_020ae65e: - cmp r0, #0x2d - bgt _020ae692 - bge _020ae6b4 - cmp r0, #0x18 - bgt _020ae684 - bge _020ae6bc - cmp r0, #2 - bgt _020ae67e - cmp r0, #0 - blt _020ae6cc - beq _020ae6c4 - cmp r0, #1 - beq _020ae6bc - cmp r0, #2 - beq _020ae6bc - b _020ae6cc -_020ae67e: - cmp r0, #0xa - beq _020ae6c8 - b _020ae6cc -_020ae684: - cmp r0, #0x19 - bgt _020ae68c - beq _020ae6bc - b _020ae6cc -_020ae68c: - cmp r0, #0x1b - beq _020ae6b8 - b _020ae6cc -_020ae692: - cmp r0, #0x3e - bgt _020ae6a6 - bge _020ae6c4 - cmp r0, #0x2e - bgt _020ae6a0 - beq _020ae6b4 - b _020ae6cc -_020ae6a0: - cmp r0, #0x2f - beq _020ae6b4 - b _020ae6cc -_020ae6a6: - cmp r0, #0x81 - bgt _020ae6ae - beq _020ae6c0 - b _020ae6cc -_020ae6ae: - cmp r0, #0x82 - beq _020ae6c0 - b _020ae6cc -_020ae6b4: - mov r1, #0x2e - b _020ae6ce -_020ae6b8: - mov r1, #0x2a - b _020ae6ce -_020ae6bc: - mov r1, #0x29 - b _020ae6ce -_020ae6c0: - mov r1, #0x2b - b _020ae6ce -_020ae6c4: - mov r1, #0x2c - b _020ae6ce -_020ae6c8: - mov r1, #0x2d - b _020ae6ce -_020ae6cc: - mov r1, #0x28 -_020ae6ce: - mov r0, #0x47 - lsl r0, r0, #2 - ldr r3, [r2, r0] - cmp r3, #0 - beq _020ae6de - add r1, r3, #0 - mov r3, #0 - str r3, [r2, r0] -_020ae6de: - ldr r0, _020ae6ec ; =data_ov00_020eec68 - blx func_ov00_020d73bc - pop {r3, pc} - nop - thumb_func_end _ZN11ItemManager18func_ov00_020ae648Ejjj -_020ae6e8: .word gItemManager -_020ae6ec: .word data_ov00_020eec68 - - .global _ZNK11ItemManager18IsTreasureSalvagedEjj - thumb_func_start _ZNK11ItemManager18IsTreasureSalvagedEjj -_ZNK11ItemManager18IsTreasureSalvagedEjj: ; 0x020ae6f0 - push {r3, r4} - lsl r3, r1, #3 - add r1, r1, r3 - add r4, r2, r1 - mov r2, #1 - mov r1, #0x1f - add r3, r4, #0 - and r3, r1 - add r1, r2, #0 - lsl r1, r3 - lsr r3, r4, #5 - lsl r3, r3, #2 - add r3, r0, r3 - mov r0, #0x4f - lsl r0, r0, #2 - ldr r0, [r3, r0] - tst r0, r1 - bne _020ae716 - mov r2, #0 -_020ae716: - add r0, r2, #0 - pop {r3, r4} - bx lr - thumb_func_end _ZNK11ItemManager18IsTreasureSalvagedEjj - - .global _ZN11ItemManager19SetTreasureSalvagedEjj - thumb_func_start _ZN11ItemManager19SetTreasureSalvagedEjj -_ZN11ItemManager19SetTreasureSalvagedEjj: ; 0x020ae71c - push {r4, r5} - lsl r3, r1, #3 - add r1, r1, r3 - add r2, r2, r1 - mov r1, #0x4f - lsl r1, r1, #2 - add r1, r0, r1 - lsr r0, r2, #5 - lsl r0, r0, #2 - mov r3, #0x1f - mov r4, #1 - and r2, r3 - add r3, r4, #0 - ldr r5, [r1, r0] - lsl r3, r2 - add r2, r5, #0 - orr r2, r3 - str r2, [r1, r0] - pop {r4, r5} - bx lr - thumb_func_end _ZN11ItemManager19SetTreasureSalvagedEjj - - .global _ZNK11ItemManager21HasTreasurePriceShownEj - thumb_func_start _ZNK11ItemManager21HasTreasurePriceShownEj -_ZNK11ItemManager21HasTreasurePriceShownEj: ; 0x020ae744 - push {r3, r4} - add r4, r1, #0 - lsr r1, r1, #5 - lsl r1, r1, #2 - mov r2, #0x1f - add r1, r0, r1 - mov r0, #0x52 - lsl r0, r0, #2 - mov r3, #1 - and r4, r2 - add r2, r3, #0 - lsl r2, r4 - ldr r0, [r1, r0] - tst r0, r2 - bne _020ae764 - mov r3, #0 -_020ae764: - add r0, r3, #0 - pop {r3, r4} - bx lr - .align 2, 0 - thumb_func_end _ZNK11ItemManager21HasTreasurePriceShownEj - - .global _ZN11ItemManager21AddTreasurePriceShownEj - thumb_func_start _ZN11ItemManager21AddTreasurePriceShownEj -_ZN11ItemManager21AddTreasurePriceShownEj: ; 0x020ae76c - push {r4, r5} - mov r2, #0x52 - lsl r2, r2, #2 - add r2, r0, r2 - lsr r0, r1, #5 - lsl r0, r0, #2 - mov r3, #0x1f - mov r4, #1 - and r1, r3 - add r3, r4, #0 - ldr r5, [r2, r0] - lsl r3, r1 - add r1, r5, #0 - orr r1, r3 - str r1, [r2, r0] - pop {r4, r5} - bx lr - .align 2, 0 - thumb_func_end _ZN11ItemManager21AddTreasurePriceShownEj - - .rodata - - .data - .global data_ov00_020e5c58 -data_ov00_020e5c58: ; 0x020e5c58 - .ascii "brg" - .byte 0x00 - .global data_ov00_020e5c5c -data_ov00_020e5c5c: ; 0x020e5c5c - .ascii "fnl" - .byte 0x00 - .global data_ov00_020e5c60 -data_ov00_020e5c60: ; 0x020e5c60 - .ascii "pdl" - .byte 0x00 - .global data_ov00_020e5c64 -data_ov00_020e5c64: ; 0x020e5c64 - .ascii "dco" - .byte 0x00 - .global data_ov00_020e5c68 -data_ov00_020e5c68: ; 0x020e5c68 - .ascii "can" - .byte 0x00 - .global data_ov00_020e5c6c -data_ov00_020e5c6c: ; 0x020e5c6c - .ascii "hul" - .byte 0x00 - .global data_ov00_020e5c70 -data_ov00_020e5c70: ; 0x020e5c70 - .ascii "bow" - .byte 0x00 - .global data_ov00_020e5c74 -data_ov00_020e5c74: ; 0x020e5c74 - .ascii "anc" - .byte 0x00 - .global data_ov00_020e5c78 -data_ov00_020e5c78: ; 0x020e5c78 - .word data_ov00_020e5c74 - .global data_ov00_020e5c7c -data_ov00_020e5c7c: ; 0x020e5c7c - .word data_ov00_020e5c70 - .global data_ov00_020e5c80 -data_ov00_020e5c80: ; 0x020e5c80 - .word data_ov00_020e5c6c - .global data_ov00_020e5c84 -data_ov00_020e5c84: ; 0x020e5c84 - .word data_ov00_020e5c68 - .global data_ov00_020e5c88 -data_ov00_020e5c88: ; 0x020e5c88 - .word data_ov00_020e5c64 - .global data_ov00_020e5c8c -data_ov00_020e5c8c: ; 0x020e5c8c - .word data_ov00_020e5c60 - .global data_ov00_020e5c90 -data_ov00_020e5c90: ; 0x020e5c90 - .word data_ov00_020e5c5c - .global data_ov00_020e5c94 -data_ov00_020e5c94: ; 0x020e5c94 - .word data_ov00_020e5c58 - .global data_ov00_020e5c98 -data_ov00_020e5c98: ; 0x020e5c98 - .word data_ov00_020e5e14 - .global data_ov00_020e5c9c -data_ov00_020e5c9c: ; 0x020e5c9c - .word data_ov00_020e5e18 - .global data_ov00_020e5ca0 -data_ov00_020e5ca0: ; 0x020e5ca0 - .word data_ov00_020e5e1c - .global data_ov00_020e5ca4 -data_ov00_020e5ca4: ; 0x020e5ca4 - .word data_ov00_020e5e20 - .global data_ov00_020e5ca8 -data_ov00_020e5ca8: ; 0x020e5ca8 - .word data_ov00_020e5e28 - .global data_ov00_020e5cac -data_ov00_020e5cac: ; 0x020e5cac - .word data_ov00_020e5e2c - .global data_ov00_020e5cb0 -data_ov00_020e5cb0: ; 0x020e5cb0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5cb4 -data_ov00_020e5cb4: ; 0x020e5cb4 - .word data_ov00_020e5e30 - .global data_ov00_020e5cb8 -data_ov00_020e5cb8: ; 0x020e5cb8 - .word data_ov00_020e5e38 - .global data_ov00_020e5cbc -data_ov00_020e5cbc: ; 0x020e5cbc - .word data_ov00_020e5e40 - .global data_ov00_020e5cc0 -data_ov00_020e5cc0: ; 0x020e5cc0 - .word data_ov00_020e5e44 - .global data_ov00_020e5cc4 -data_ov00_020e5cc4: ; 0x020e5cc4 - .word data_ov00_020e5e4c - .global data_ov00_020e5cc8 -data_ov00_020e5cc8: ; 0x020e5cc8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5ccc -data_ov00_020e5ccc: ; 0x020e5ccc - .word data_ov00_020e5e58 - .global data_ov00_020e5cd0 -data_ov00_020e5cd0: ; 0x020e5cd0 - .word data_ov00_020e5e64 - .global data_ov00_020e5cd4 -data_ov00_020e5cd4: ; 0x020e5cd4 - .word data_ov00_020e5e68 - .global data_ov00_020e5cd8 -data_ov00_020e5cd8: ; 0x020e5cd8 - .word data_ov00_020e5e70 - .global data_ov00_020e5cdc -data_ov00_020e5cdc: ; 0x020e5cdc - .word data_ov00_020e5e78 - .global data_ov00_020e5ce0 -data_ov00_020e5ce0: ; 0x020e5ce0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5ce4 -data_ov00_020e5ce4: ; 0x020e5ce4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5ce8 -data_ov00_020e5ce8: ; 0x020e5ce8 - .word data_ov00_020e5e80 - .global data_ov00_020e5cec -data_ov00_020e5cec: ; 0x020e5cec - .word data_ov00_020e5e88 - .global data_ov00_020e5cf0 -data_ov00_020e5cf0: ; 0x020e5cf0 - .word data_ov00_020e5e90 - .global data_ov00_020e5cf4 -data_ov00_020e5cf4: ; 0x020e5cf4 - .word data_ov00_020e5e98 - .global data_ov00_020e5cf8 -data_ov00_020e5cf8: ; 0x020e5cf8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5cfc -data_ov00_020e5cfc: ; 0x020e5cfc - .word data_ov00_020e5ea0 - .global data_ov00_020e5d00 -data_ov00_020e5d00: ; 0x020e5d00 - .word data_ov00_020e5ea8 - .global data_ov00_020e5d04 -data_ov00_020e5d04: ; 0x020e5d04 - .word data_ov00_020e5eb0 - .global data_ov00_020e5d08 -data_ov00_020e5d08: ; 0x020e5d08 - .word data_ov00_020e5eb8 - .global data_ov00_020e5d0c -data_ov00_020e5d0c: ; 0x020e5d0c - .word data_ov00_020e5ec4 - .global data_ov00_020e5d10 -data_ov00_020e5d10: ; 0x020e5d10 - .word data_ov00_020e5ecc - .global data_ov00_020e5d14 -data_ov00_020e5d14: ; 0x020e5d14 - .word data_ov00_020e5ed4 - .global data_ov00_020e5d18 -data_ov00_020e5d18: ; 0x020e5d18 - .word data_ov00_020e5edc - .global data_ov00_020e5d1c -data_ov00_020e5d1c: ; 0x020e5d1c - .word data_ov00_020e5ee0 - .global data_ov00_020e5d20 -data_ov00_020e5d20: ; 0x020e5d20 - .word data_ov00_020e5ee8 - .global data_ov00_020e5d24 -data_ov00_020e5d24: ; 0x020e5d24 - .word data_ov00_020e5ef0 - .global data_ov00_020e5d28 -data_ov00_020e5d28: ; 0x020e5d28 - .word data_ov00_020e5ef8 - .global data_ov00_020e5d2c -data_ov00_020e5d2c: ; 0x020e5d2c - .word data_ov00_020e5f00 - .global data_ov00_020e5d30 -data_ov00_020e5d30: ; 0x020e5d30 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d34 -data_ov00_020e5d34: ; 0x020e5d34 - .word data_ov00_020e5f04 - .global data_ov00_020e5d38 -data_ov00_020e5d38: ; 0x020e5d38 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d3c -data_ov00_020e5d3c: ; 0x020e5d3c - .word data_ov00_020e5f0c - .global data_ov00_020e5d40 -data_ov00_020e5d40: ; 0x020e5d40 - .word data_ov00_020e5f18 - .global data_ov00_020e5d44 -data_ov00_020e5d44: ; 0x020e5d44 - .word data_ov00_020e5f20 - .global data_ov00_020e5d48 -data_ov00_020e5d48: ; 0x020e5d48 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d4c -data_ov00_020e5d4c: ; 0x020e5d4c - .word data_ov00_020e5f28 - .global data_ov00_020e5d50 -data_ov00_020e5d50: ; 0x020e5d50 - .word data_ov00_020e5f30 - .global data_ov00_020e5d54 -data_ov00_020e5d54: ; 0x020e5d54 - .word data_ov00_020e5f38 - .global data_ov00_020e5d58 -data_ov00_020e5d58: ; 0x020e5d58 - .word data_ov00_020e5f40 - .global data_ov00_020e5d5c -data_ov00_020e5d5c: ; 0x020e5d5c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d60 -data_ov00_020e5d60: ; 0x020e5d60 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d64 -data_ov00_020e5d64: ; 0x020e5d64 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d68 -data_ov00_020e5d68: ; 0x020e5d68 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d6c -data_ov00_020e5d6c: ; 0x020e5d6c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d70 -data_ov00_020e5d70: ; 0x020e5d70 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d74 -data_ov00_020e5d74: ; 0x020e5d74 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d78 -data_ov00_020e5d78: ; 0x020e5d78 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d7c -data_ov00_020e5d7c: ; 0x020e5d7c - .word data_ov00_020e5f48 - .global data_ov00_020e5d80 -data_ov00_020e5d80: ; 0x020e5d80 - .word data_ov00_020e5f50 - .global data_ov00_020e5d84 -data_ov00_020e5d84: ; 0x020e5d84 - .word data_ov00_020e5f5c - .global data_ov00_020e5d88 -data_ov00_020e5d88: ; 0x020e5d88 - .word data_ov00_020e5f68 - .global data_ov00_020e5d8c -data_ov00_020e5d8c: ; 0x020e5d8c - .word data_ov00_020e5f74 - .global data_ov00_020e5d90 -data_ov00_020e5d90: ; 0x020e5d90 - .word data_ov00_020e5f7c - .global data_ov00_020e5d94 -data_ov00_020e5d94: ; 0x020e5d94 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5d98 -data_ov00_020e5d98: ; 0x020e5d98 - .word data_ov00_020e5f84 - .global data_ov00_020e5d9c -data_ov00_020e5d9c: ; 0x020e5d9c - .word data_ov00_020e5f90 - .global data_ov00_020e5da0 -data_ov00_020e5da0: ; 0x020e5da0 - .word data_ov00_020e5f9c - .global data_ov00_020e5da4 -data_ov00_020e5da4: ; 0x020e5da4 - .word data_ov00_020e5fa4 - .global data_ov00_020e5da8 -data_ov00_020e5da8: ; 0x020e5da8 - .word data_ov00_020e5fac - .global data_ov00_020e5dac -data_ov00_020e5dac: ; 0x020e5dac - .word data_ov00_020e5fb4 - .global data_ov00_020e5db0 -data_ov00_020e5db0: ; 0x020e5db0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5db4 -data_ov00_020e5db4: ; 0x020e5db4 - .word data_ov00_020e5fbc - .global data_ov00_020e5db8 -data_ov00_020e5db8: ; 0x020e5db8 - .word data_ov00_020e5fc8 - .global data_ov00_020e5dbc -data_ov00_020e5dbc: ; 0x020e5dbc - .word data_ov00_020e5fd0 - .global data_ov00_020e5dc0 -data_ov00_020e5dc0: ; 0x020e5dc0 - .word data_ov00_020e5fd8 - .global data_ov00_020e5dc4 -data_ov00_020e5dc4: ; 0x020e5dc4 - .word data_ov00_020e5fe0 - .global data_ov00_020e5dc8 -data_ov00_020e5dc8: ; 0x020e5dc8 - .word data_ov00_020e5fe8 - .global data_ov00_020e5dcc -data_ov00_020e5dcc: ; 0x020e5dcc - .word data_ov00_020e5ff4 - .global data_ov00_020e5dd0 -data_ov00_020e5dd0: ; 0x020e5dd0 - .word data_ov00_020e6000 - .global data_ov00_020e5dd4 -data_ov00_020e5dd4: ; 0x020e5dd4 - .word data_ov00_020e6008 - .global data_ov00_020e5dd8 -data_ov00_020e5dd8: ; 0x020e5dd8 - .word data_ov00_020e6010 - .global data_ov00_020e5ddc -data_ov00_020e5ddc: ; 0x020e5ddc - .word data_ov00_020e6018 - .global data_ov00_020e5de0 -data_ov00_020e5de0: ; 0x020e5de0 - .word data_ov00_020e6024 - .global data_ov00_020e5de4 -data_ov00_020e5de4: ; 0x020e5de4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5de8 -data_ov00_020e5de8: ; 0x020e5de8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5dec -data_ov00_020e5dec: ; 0x020e5dec - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5df0 -data_ov00_020e5df0: ; 0x020e5df0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5df4 -data_ov00_020e5df4: ; 0x020e5df4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5df8 -data_ov00_020e5df8: ; 0x020e5df8 - .word data_ov00_020e6030 - .global data_ov00_020e5dfc -data_ov00_020e5dfc: ; 0x020e5dfc - .word data_ov00_020e603c - .global data_ov00_020e5e00 -data_ov00_020e5e00: ; 0x020e5e00 - .word data_ov00_020e6048 - .global data_ov00_020e5e04 -data_ov00_020e5e04: ; 0x020e5e04 - .word data_ov00_020e6050 - .global data_ov00_020e5e08 -data_ov00_020e5e08: ; 0x020e5e08 - .word data_ov00_020e6058 - .global data_ov00_020e5e0c -data_ov00_020e5e0c: ; 0x020e5e0c - .word data_ov00_020e6068 - .global data_ov00_020e5e10 -data_ov00_020e5e10: ; 0x020e5e10 - .word data_ov00_020e6070 - .global data_ov00_020e5e14 -data_ov00_020e5e14: ; 0x020e5e14 - .ascii "key" - .byte 0x00 - .global data_ov00_020e5e18 -data_ov00_020e5e18: ; 0x020e5e18 - .ascii "key" - .byte 0x00 - .global data_ov00_020e5e1c -data_ov00_020e5e1c: ; 0x020e5e1c - .ascii "key" - .byte 0x00 - .global data_ov00_020e5e20 -data_ov00_020e5e20: ; 0x020e5e20 - .ascii "rupee_g" - .byte 0x00 - .global data_ov00_020e5e28 -data_ov00_020e5e28: ; 0x020e5e28 - .ascii "swA" - .byte 0x00 - .global data_ov00_020e5e2c -data_ov00_020e5e2c: ; 0x020e5e2c - .ascii "shA" - .byte 0x00 - .global data_ov00_020e5e30 -data_ov00_020e5e30: ; 0x020e5e30 - .ascii "force_y" - .byte 0x00 - .global data_ov00_020e5e38 -data_ov00_020e5e38: ; 0x020e5e38 - .ascii "bomb" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5e40 -data_ov00_020e5e40: ; 0x020e5e40 - .ascii "bow" - .byte 0x00 - .global data_ov00_020e5e44 -data_ov00_020e5e44: ; 0x020e5e44 - .ascii "rupee_g" - .byte 0x00 - .global data_ov00_020e5e4c -data_ov00_020e5e4c: ; 0x020e5e4c - .ascii "heart_utu" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5e58 -data_ov00_020e5e58: ; 0x020e5e58 - .ascii "boomerang" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5e64 -data_ov00_020e5e64: ; 0x020e5e64 - .ascii "scp" - .byte 0x00 - .global data_ov00_020e5e68 -data_ov00_020e5e68: ; 0x020e5e68 - .ascii "bomchu" - .byte 0x00, 0x00 - .global data_ov00_020e5e70 -data_ov00_020e5e70: ; 0x020e5e70 - .ascii "bosskey" - .byte 0x00 - .global data_ov00_020e5e78 -data_ov00_020e5e78: ; 0x020e5e78 - .ascii "rev_bin" - .byte 0x00 - .global data_ov00_020e5e80 -data_ov00_020e5e80: ; 0x020e5e80 - .ascii "mapSea" - .byte 0x00, 0x00 - .global data_ov00_020e5e88 -data_ov00_020e5e88: ; 0x020e5e88 - .ascii "mapSea" - .byte 0x00, 0x00 - .global data_ov00_020e5e90 -data_ov00_020e5e90: ; 0x020e5e90 - .ascii "mapSea" - .byte 0x00, 0x00 - .global data_ov00_020e5e98 -data_ov00_020e5e98: ; 0x020e5e98 - .ascii "mapSea" - .byte 0x00, 0x00 - .global data_ov00_020e5ea0 -data_ov00_020e5ea0: ; 0x020e5ea0 - .ascii "rupee_b" - .byte 0x00 - .global data_ov00_020e5ea8 -data_ov00_020e5ea8: ; 0x020e5ea8 - .ascii "rupee_r" - .byte 0x00 - .global data_ov00_020e5eb0 -data_ov00_020e5eb0: ; 0x020e5eb0 - .ascii "rupee_r" - .byte 0x00 - .global data_ov00_020e5eb8 -data_ov00_020e5eb8: ; 0x020e5eb8 - .ascii "rupee_go" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5ec4 -data_ov00_020e5ec4: ; 0x020e5ec4 - .ascii "force_y" - .byte 0x00 - .global data_ov00_020e5ecc -data_ov00_020e5ecc: ; 0x020e5ecc - .ascii "force_r" - .byte 0x00 - .global data_ov00_020e5ed4 -data_ov00_020e5ed4: ; 0x020e5ed4 - .ascii "force_b" - .byte 0x00 - .global data_ov00_020e5edc -data_ov00_020e5edc: ; 0x020e5edc - .ascii "ham" - .byte 0x00 - .global data_ov00_020e5ee0 -data_ov00_020e5ee0: ; 0x020e5ee0 - .ascii "rope" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5ee8 -data_ov00_020e5ee8: ; 0x020e5ee8 - .ascii "cstl_c" - .byte 0x00, 0x00 - .global data_ov00_020e5ef0 -data_ov00_020e5ef0: ; 0x020e5ef0 - .ascii "cstl_s" - .byte 0x00, 0x00 - .global data_ov00_020e5ef8 -data_ov00_020e5ef8: ; 0x020e5ef8 - .ascii "cstl_t" - .byte 0x00, 0x00 - .global data_ov00_020e5f00 -data_ov00_020e5f00: ; 0x020e5f00 - .ascii "fp" - .byte 0x00, 0x00 - .global data_ov00_020e5f04 -data_ov00_020e5f04: ; 0x020e5f04 - .ascii "key_su" - .byte 0x00, 0x00 - .global data_ov00_020e5f0c -data_ov00_020e5f0c: ; 0x020e5f0c - .ascii "arrowpod" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5f18 -data_ov00_020e5f18: ; 0x020e5f18 - .ascii "bmbagM" - .byte 0x00, 0x00 - .global data_ov00_020e5f20 -data_ov00_020e5f20: ; 0x020e5f20 - .ascii "bcbagM" - .byte 0x00, 0x00 - .global data_ov00_020e5f28 -data_ov00_020e5f28: ; 0x020e5f28 - .ascii "key_ki" - .byte 0x00, 0x00 - .global data_ov00_020e5f30 -data_ov00_020e5f30: ; 0x020e5f30 - .ascii "minaP" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5f38 -data_ov00_020e5f38: ; 0x020e5f38 - .ascii "minaC" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5f40 -data_ov00_020e5f40: ; 0x020e5f40 - .ascii "minaY" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5f48 -data_ov00_020e5f48: ; 0x020e5f48 - .ascii "key_gh" - .byte 0x00, 0x00 - .global data_ov00_020e5f50 -data_ov00_020e5f50: ; 0x020e5f50 - .ascii "tic_tada" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5f5c -data_ov00_020e5f5c: ; 0x020e5f5c - .ascii "tic_ohome" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5f68 -data_ov00_020e5f68: ; 0x020e5f68 - .ascii "tic_rare" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5f74 -data_ov00_020e5f74: ; 0x020e5f74 - .ascii "neckl" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5f7c -data_ov00_020e5f7c: ; 0x020e5f7c - .ascii "slvarm" - .byte 0x00, 0x00 - .global data_ov00_020e5f84 -data_ov00_020e5f84: ; 0x020e5f84 - .ascii "telescope" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5f90 -data_ov00_020e5f90: ; 0x020e5f90 - .ascii "notebook" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5f9c -data_ov00_020e5f9c: ; 0x020e5f9c - .ascii "letter" - .byte 0x00, 0x00 - .global data_ov00_020e5fa4 -data_ov00_020e5fa4: ; 0x020e5fa4 - .ascii "card" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5fac -data_ov00_020e5fac: ; 0x020e5fac - .ascii "marron" - .byte 0x00, 0x00 - .global data_ov00_020e5fb4 -data_ov00_020e5fb4: ; 0x020e5fb4 - .ascii "swBedge" - .byte 0x00 - .global data_ov00_020e5fbc -data_ov00_020e5fbc: ; 0x020e5fbc - .ascii "makimono" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5fc8 -data_ov00_020e5fc8: ; 0x020e5fc8 - .ascii "hagaH" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5fd0 -data_ov00_020e5fd0: ; 0x020e5fd0 - .ascii "hagaK" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5fd8 -data_ov00_020e5fd8: ; 0x020e5fd8 - .ascii "hagaS" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e5fe0 -data_ov00_020e5fe0: ; 0x020e5fe0 - .ascii "rev_bin" - .byte 0x00 - .global data_ov00_020e5fe8 -data_ov00_020e5fe8: ; 0x020e5fe8 - .ascii "rev_binP" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e5ff4 -data_ov00_020e5ff4: ; 0x020e5ff4 - .ascii "rev_binY" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e6000 -data_ov00_020e6000: ; 0x020e6000 - .ascii "sand_m" - .byte 0x00, 0x00 - .global data_ov00_020e6008 -data_ov00_020e6008: ; 0x020e6008 - .ascii "compass" - .byte 0x00 - .global data_ov00_020e6010 -data_ov00_020e6010: ; 0x020e6010 - .ascii "lure" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e6018 -data_ov00_020e6018: ; 0x020e6018 - .ascii "rupee_bb" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e6024 -data_ov00_020e6024: ; 0x020e6024 - .ascii "rupee_bb" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e6030 -data_ov00_020e6030: ; 0x020e6030 - .ascii "mapTakara" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e603c -data_ov00_020e603c: ; 0x020e603c - .ascii "arrowpodL" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e6048 -data_ov00_020e6048: ; 0x020e6048 - .ascii "bmbagL" - .byte 0x00, 0x00 - .global data_ov00_020e6050 -data_ov00_020e6050: ; 0x020e6050 - .ascii "bcbagL" - .byte 0x00, 0x00 - .global data_ov00_020e6058 -data_ov00_020e6058: ; 0x020e6058 - .ascii "Player/get/gd_" - .byte 0x00, 0x00 - .global data_ov00_020e6068 -data_ov00_020e6068: ; 0x020e6068 - .ascii ".nsbmd" - .byte 0x00, 0x00 - .global data_ov00_020e6070 -data_ov00_020e6070: ; 0x020e6070 - .ascii ".nsbtx" - .byte 0x00, 0x00 diff --git a/asm/ov00/Item/ItemManager_func_ov00_020ad790.inc b/asm/ov00/Item/ItemManager_func_ov00_020ad790.inc index 52adae5a..7381d9e3 100644 --- a/asm/ov00/Item/ItemManager_func_ov00_020ad790.inc +++ b/asm/ov00/Item/ItemManager_func_ov00_020ad790.inc @@ -29,10 +29,10 @@ _020ad7c0: movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} _020ad800: - lda r0, data_027e0e60 + lda r0, gMapManager ldr r4, [r6, #8] ldr r0, [r0] - bl func_ov00_020849f8 + bl _ZN10MapManager18func_ov00_020849f8Ei cmp r0, #0 moveq r2, #1 ldr r1, [r6] diff --git a/asm/ov00/Map/Course.inc b/asm/ov00/Map/Course.inc new file mode 100644 index 00000000..17c008fd --- /dev/null +++ b/asm/ov00/Map/Course.inc @@ -0,0 +1,29 @@ +#pragma once +.extern Divide +.extern _ZN14AdventureFlags3GetEj +.extern data_027e0d38 +.extern data_027e0f7c +.extern data_027e103c +.extern data_ov00_020e233c +.extern data_ov00_020e2508 +.extern data_ov00_020e250c +.extern func_02002c14 +.extern func_0200c8d0 +.extern func_ov00_020972e4 +.extern func_ov00_0209740c +.extern func_ov00_02097458 +.extern func_ov00_02097478 +.extern func_ov00_020974c4 +.extern func_ov00_020974e4 +.extern func_ov00_02097530 +.extern func_ov00_02097550 +.extern func_ov00_0209759c +.extern func_ov00_020975bc +.extern func_ov00_02097608 +.extern func_ov00_0209d71c +.extern func_ov00_020a3510 +.extern func_ov00_020a3710 +.extern func_ov00_020a5e9c +.extern func_ov00_020cf414 +.extern gAdventureFlags +.extern strcpy diff --git a/asm/ov00/Map/Course.s b/asm/ov00/Map/Course.s new file mode 100644 index 00000000..a54df401 --- /dev/null +++ b/asm/ov00/Map/Course.s @@ -0,0 +1,1459 @@ + .include "ov00/Map/Course.inc" + .include "macros/function.inc" + + .text + + .global _ZN6Course18GetDungeonProgressEP14CourseProgress + arm_func_start _ZN6Course18GetDungeonProgressEP14CourseProgress +_ZN6Course18GetDungeonProgressEP14CourseProgress: ; 0x0207ca00 + ldr r2, [r0, #0x268] + str r2, [r1] + ldr r2, [r0, #4] + cmp r2, #3 + bxeq lr + ldr r2, [r0, #0x260] + strb r2, [r1, #4] + ldrb r0, [r0, #0x25d] + strb r0, [r1, #5] + bx lr + arm_func_end _ZN6Course18GetDungeonProgressEP14CourseProgress + + .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 + cmp ip, #3 + ldr r0, [r0, #0xcc] + bne _0207ca54 + mov r1, r2 + mov r2, r3 + mov r3, #1 + bl func_ov00_020972e4 + ldmia sp!, {r3, pc} +_0207ca54: + mov r1, r2 + mov r2, r3 + mov r3, #0 + bl func_ov00_020972e4 + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course18func_ov00_0207ca28Eiii + + .global _ZN6Course13SetCourseNameEPc + arm_func_start _ZN6Course13SetCourseNameEPc +_ZN6Course13SetCourseNameEPc: ; 0x0207ca68 + ldr ip, _0207ca74 ; =strcpy + add r0, r0, #0xc + bx ip + .align 2, 0 + arm_func_end _ZN6Course13SetCourseNameEPc +_0207ca74: .word strcpy + + .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 _ZN6Course11FindMapDataEj + movs r1, r0 + ldmeqia sp!, {r3, r4, r5, pc} + strb r4, [r1] + ldr r0, [r5, #0xc8] + ldr r1, [r1, #8] + mov r2, #1 + bl func_ov00_020a3510 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN6Course18func_ov00_0207ca78Eici + + .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 + mov r5, r2 + mov r4, r3 + addeq sp, sp, #0x10 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, pc} + mov r3, #0x47 + mov r2, #0 + strb r2, [sp, #0xc] + str r3, [sp] + ldr r0, [r0, #0xc8] + add r2, sp, #0 + bl func_ov00_020a3710 + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, pc} + ldr r1, [sp] + mov r0, #1 + str r1, [r5] + ldrb r1, [sp, #4] + strb r1, [r4] + ldrb r1, [sp, #5] + strb r1, [r4, #1] + ldrh r1, [sp, #6] + strh r1, [r4, #2] + ldrh r1, [sp, #8] + strh r1, [r4, #4] + ldrh r1, [sp, #0xa] + strh r1, [r4, #6] + add sp, sp, #0x10 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN6Course18func_ov00_0207caa8EiPiPc + + .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 + addeq sp, sp, #0x10 + ldreq r0, _0207cb78 ; =0x0000ffff + ldmeqia sp!, {r3, pc} + mov r3, #0x47 + mov r2, #0 + strb r2, [sp, #0xc] + str r3, [sp] + ldr r0, [r0, #0xc8] + add r2, sp, #0 + bl func_ov00_020a3710 + cmp r0, #0 + ldrneh r0, [sp, #0xa] + ldreq r0, _0207cb78 ; =0x0000ffff + add sp, sp, #0x10 + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN6Course18func_ov00_0207cb30Ei +_0207cb78: .word 0x0000ffff + + .global _ZN6Course14FindMapGridPosEP5Vec2bPS_j + arm_func_start _ZN6Course14FindMapGridPosEP5Vec2bPS_j +_ZN6Course14FindMapGridPosEP5Vec2bPS_j: ; 0x0207cb7c + stmdb sp!, {r3, r4, r5, lr} + mov lr, #0 + mov r5, r1 + mov ip, lr +_0207cb8c: + mov r4, ip +_0207cb90: + add r3, r5, r4 + ldrb r3, [r3, #0x20] + cmp r2, r3 + streqb lr, [r0] + streqb r4, [r0, #1] + ldmeqia sp!, {r3, r4, r5, pc} + add r4, r4, #1 + cmp r4, #0xa + blt _0207cb90 + add lr, lr, #1 + cmp lr, #0xa + add r5, r5, #0xa + blt _0207cb8c + ldrb r2, [r1, #0x1d] + ldrb r1, [r1, #0x1c] + strb r1, [r0] + strb r2, [r0, #1] + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN6Course14FindMapGridPosEP5Vec2bPS_j + + .global _ZN6Course13FindMapCenterEi + arm_func_start _ZN6Course13FindMapCenterEi +_ZN6Course13FindMapCenterEi: ; 0x0207cbd8 + stmdb sp!, {r3, lr} + bl _ZN6Course11FindMapDataEj + add r0, r0, #0x14 + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course13FindMapCenterEi + + .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 + addeq sp, sp, #0x10 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + mov r3, #0x47 + mov r2, #0 + strb r2, [sp, #0xc] + str r3, [sp] + ldr r0, [r0, #0xc8] + add r2, sp, #0 + bl func_ov00_020a3710 + add sp, sp, #0x10 + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course18func_ov00_0207cbe8Ei + + .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 + addeq sp, sp, #0x10 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + mov r3, #0x47 + mov r2, #0 + strb r2, [sp, #0xc] + str r3, [sp] + ldr r0, [r0, #0xc8] + add r2, sp, #0 + bl func_ov00_020a3710 + cmp r0, #0 + ldrneb r0, [sp, #0xc] + moveq r0, #0 + add sp, sp, #0x10 + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course18func_ov00_0207cc24Ei + + .global _ZN6Course18FindMapData_Unk_08Ei + arm_func_start _ZN6Course18FindMapData_Unk_08Ei +_ZN6Course18FindMapData_Unk_08Ei: ; 0x0207cc6c + stmdb sp!, {r3, lr} + bl _ZN6Course11FindMapDataEj + cmp r0, #0 + moveq r0, #0 + ldrne r0, [r0, #8] + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course18FindMapData_Unk_08Ei + + .global _ZN6Course14GetMCSFilePathEiii + arm_func_start _ZN6Course14GetMCSFilePathEiii +_ZN6Course14GetMCSFilePathEiii: ; 0x0207cc84 + stmdb sp!, {r3, lr} + mov lr, r0 + mov ip, r2 + cmp r3, #3 + addls pc, pc, r3, lsl #2 + b _0207cd3c +_0207cc9c: ; jump table + b _0207cd3c ; case 0 + b _0207ccac ; case 1 + b _0207cce8 ; case 2 + b _0207cd24 ; case 3 +_0207ccac: + cmp ip, #0 + bne _0207cccc + ldr r2, _0207cd58 ; =data_ov00_020e2508 + mov r0, r1 + ldr r2, [r2] + ldr r1, _0207cd5c ; =data_ov00_020e2058 + bl func_0200c8d0 + ldmia sp!, {r3, pc} +_0207cccc: + ldr r2, _0207cd58 ; =data_ov00_020e2508 + mov r0, r1 + ldr r2, [r2] + ldr r1, _0207cd60 ; =data_ov00_020e2070 + mov r3, ip + bl func_0200c8d0 + ldmia sp!, {r3, pc} +_0207cce8: + cmp ip, #0 + bne _0207cd08 + ldr r2, _0207cd58 ; =data_ov00_020e2508 + mov r0, r1 + ldr r2, [r2] + ldr r1, _0207cd64 ; =data_ov00_020e208c + bl func_0200c8d0 + ldmia sp!, {r3, pc} +_0207cd08: + ldr r2, _0207cd58 ; =data_ov00_020e2508 + mov r0, r1 + ldr r2, [r2] + ldr r1, _0207cd68 ; =data_ov00_020e20a4 + mov r3, ip + bl func_0200c8d0 + ldmia sp!, {r3, pc} +_0207cd24: + ldr r2, _0207cd58 ; =data_ov00_020e2508 + mov r0, r1 + ldr r2, [r2] + ldr r1, _0207cd6c ; =data_ov00_020e20c0 + bl func_0200c8d0 + ldmia sp!, {r3, pc} +_0207cd3c: + ldr r2, _0207cd58 ; =data_ov00_020e2508 + mov r0, r1 + ldr r2, [r2] + ldr r1, _0207cd70 ; =data_ov00_020e20d8 + add r3, lr, #0xc + bl func_0200c8d0 + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN6Course14GetMCSFilePathEiii +_0207cd58: .word data_ov00_020e2508 +_0207cd5c: .word data_ov00_020e2058 +_0207cd60: .word data_ov00_020e2070 +_0207cd64: .word data_ov00_020e208c +_0207cd68: .word data_ov00_020e20a4 +_0207cd6c: .word data_ov00_020e20c0 +_0207cd70: .word data_ov00_020e20d8 + + .global _ZN6Course14GetMRCFilePathEiii + arm_func_start _ZN6Course14GetMRCFilePathEiii +_ZN6Course14GetMRCFilePathEiii: ; 0x0207cd74 + stmdb sp!, {r4, lr} + mov r4, r2 + cmp r3, #3 + addls pc, pc, r3, lsl #2 + b _0207cde0 +_0207cd88: ; jump table + b _0207cde0 ; case 0 + b _0207cd98 ; case 1 + b _0207cdb0 ; case 2 + b _0207cdc8 ; case 3 +_0207cd98: + ldr r0, _0207ce08 ; =data_ov00_020e250c + ldr r1, _0207ce0c ; =data_ov00_020e20ec + ldr r2, [r0] + mov r0, r4 + bl func_0200c8d0 + ldmia sp!, {r4, pc} +_0207cdb0: + ldr r0, _0207ce08 ; =data_ov00_020e250c + ldr r1, _0207ce10 ; =data_ov00_020e2104 + ldr r2, [r0] + mov r0, r4 + bl func_0200c8d0 + ldmia sp!, {r4, pc} +_0207cdc8: + ldr r0, _0207ce08 ; =data_ov00_020e250c + ldr r1, _0207ce14 ; =data_ov00_020e211c + ldr r2, [r0] + mov r0, r4 + bl func_0200c8d0 + ldmia sp!, {r4, pc} +_0207cde0: + ldr r0, _0207ce18 ; =data_027e0f7c + ldr r0, [r0] + bl func_ov00_0209d71c + ldr r1, _0207ce08 ; =data_ov00_020e250c + mov r3, r0 + ldr r2, [r1] + ldr r1, _0207ce1c ; =data_ov00_020e2134 + mov r0, r4 + bl func_0200c8d0 + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN6Course14GetMRCFilePathEiii +_0207ce08: .word data_ov00_020e250c +_0207ce0c: .word data_ov00_020e20ec +_0207ce10: .word data_ov00_020e2104 +_0207ce14: .word data_ov00_020e211c +_0207ce18: .word data_027e0f7c +_0207ce1c: .word data_ov00_020e2134 + + .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] + stmia sp, {r3, ip} + mov ip, r1 + mov r3, r2 + ldr r1, [r0] + mov r2, ip + bl _ZN6Course18func_ov00_0207ce4cEiiiPci + add sp, sp, #8 + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course18func_ov00_0207ce20EiiPci + + .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 + mov r8, r0 + ldr r0, [r4] + mov r7, r1 + mov r6, r2 + mov r5, r3 + ldr r4, [sp, #0x20] + bl func_ov00_0209d71c + ldr r1, [sp, #0x24] + mov r3, r0 + cmp r1, #7 + addls pc, pc, r1, lsl #2 + b _0207d364 +_0207ce88: ; jump table + b _0207d364 ; case 0 + b _0207cef0 ; case 1 + b _0207cea8 ; case 2 + b _0207cf38 ; case 3 + b _0207d07c ; case 4 + b _0207d294 ; case 5 + b _0207d2d8 ; case 6 + b _0207d31c ; case 7 +_0207cea8: + ldr r2, _0207d3b0 ; =0x66666667 + mov r1, r6, lsr #0x1f + smull r0, r5, r2, r6 + smull r0, r7, r2, r6 + add r7, r1, r7, asr #2 + add r5, r1, r5, asr #2 + mov r2, #0xa + smull r0, r1, r2, r5 + sub r5, r6, r0 + str r7, [sp] + ldr r0, _0207d3b4 ; =data_ov00_020e233c + str r5, [sp, #4] + ldr r2, [r0] + ldr r1, _0207d3b8 ; =data_ov00_020e2148 + mov r0, r4 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207cef0: + ldr r2, _0207d3b0 ; =0x66666667 + mov r1, r6, lsr #0x1f + smull r0, r5, r2, r6 + smull r0, r7, r2, r6 + add r7, r1, r7, asr #2 + add r5, r1, r5, asr #2 + mov r2, #0xa + smull r0, r1, r2, r5 + sub r5, r6, r0 + str r7, [sp] + ldr r0, _0207d3b4 ; =data_ov00_020e233c + str r5, [sp, #4] + ldr r2, [r0] + ldr r1, _0207d3bc ; =data_ov00_020e2160 + mov r0, r4 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207cf38: + ldr r1, [r8, #8] + mvn r0, #1 + cmp r1, r0 + bne _0207cf98 + ldr r0, _0207d3c0 ; =data_027e0d38 + ldr r0, [r0] + ldr r0, [r0, #0x28] + add r0, r0, #0x44 + bl func_ov00_020a5e9c + ldr r2, _0207d3c0 ; =data_027e0d38 + mov r1, r0 + ldr r0, [r2] + mov r3, r5 + ldr r0, [r0, #0x28] + ldrb r2, [r0, #0x56] + mov r0, r8 + cmp r2, #0xff + str r4, [sp] + mov r4, #4 + moveq r2, #0 + str r4, [sp, #4] + bl _ZN6Course18func_ov00_0207ce4cEiiiPci + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207cf98: + ldr r0, [r8, #4] + cmp r0, #2 + bne _0207cfc8 + mov r7, #4 + mov r0, r8 + mov r1, r6 + mov r2, r5 + mov r3, r4 + str r7, [sp] + bl _ZN6Course18func_ov00_0207ce20EiiPci + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207cfc8: + cmp r6, #0xff + beq _0207cfdc + ldrb r0, [r8, #0x25c] + cmp r0, #0 + beq _0207d03c +_0207cfdc: + cmp r7, #0x1b + bne _0207cffc + ldr r1, _0207d3c4 ; =data_ov00_020e2174 + mov r0, r4 + mov r2, r3 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207cffc: + ldr r1, _0207d3b0 ; =0x66666667 + mov r2, r3 + smull r0, r8, r1, r6 + smull r0, r3, r1, r6 + mov r7, r6, lsr #0x1f + add r8, r7, r8, asr #2 + mov r5, #0xa + smull r0, r1, r5, r8 + sub r8, r6, r0 + ldr r1, _0207d3c8 ; =data_ov00_020e2188 + mov r0, r4 + add r3, r7, r3, asr #2 + str r8, [sp] + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d03c: + ldr r1, _0207d3b0 ; =0x66666667 + mov r2, r3 + smull r0, r8, r1, r6 + smull r0, r3, r1, r6 + mov r7, r6, lsr #0x1f + add r8, r7, r8, asr #2 + mov r5, #0xa + smull r0, r1, r5, r8 + sub r8, r6, r0 + ldr r1, _0207d3cc ; =data_ov00_020e219c + mov r0, r4 + add r3, r7, r3, asr #2 + str r8, [sp] + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d07c: + ldr r0, [r8] + cmp r0, #0x32 + bgt _0207d0b4 + bge _0207d19c + cmp r0, #3 + bgt _0207d1d4 + cmp r0, #1 + blt _0207d1d4 + beq _0207d0f4 + cmp r0, #2 + beq _0207d12c + cmp r0, #3 + beq _0207d164 + b _0207d1d4 +_0207d0b4: + cmp r0, #0x38 + bne _0207d1d4 + ldr r1, _0207d3b0 ; =0x66666667 + mov r5, r6, lsr #0x1f + smull r0, r3, r1, r6 + smull r0, r2, r1, r6 + add r3, r5, r3, asr #2 + mov r1, #0xa + smull r3, r0, r1, r3 + ldr r1, _0207d3d0 ; =data_ov00_020e21b4 + mov r0, r4 + add r2, r5, r2, asr #2 + sub r3, r6, r3 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d0f4: + ldr r1, _0207d3b0 ; =0x66666667 + mov r5, r6, lsr #0x1f + smull r0, r3, r1, r6 + smull r0, r2, r1, r6 + add r3, r5, r3, asr #2 + mov r1, #0xa + smull r3, r0, r1, r3 + ldr r1, _0207d3d4 ; =data_ov00_020e21d0 + mov r0, r4 + add r2, r5, r2, asr #2 + sub r3, r6, r3 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d12c: + ldr r1, _0207d3b0 ; =0x66666667 + mov r5, r6, lsr #0x1f + smull r0, r3, r1, r6 + smull r0, r2, r1, r6 + add r3, r5, r3, asr #2 + mov r1, #0xa + smull r3, r0, r1, r3 + ldr r1, _0207d3d8 ; =data_ov00_020e21f0 + mov r0, r4 + add r2, r5, r2, asr #2 + sub r3, r6, r3 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d164: + ldr r1, _0207d3b0 ; =0x66666667 + mov r5, r6, lsr #0x1f + smull r0, r3, r1, r6 + smull r0, r2, r1, r6 + add r3, r5, r3, asr #2 + mov r1, #0xa + smull r3, r0, r1, r3 + ldr r1, _0207d3dc ; =data_ov00_020e2210 + mov r0, r4 + add r2, r5, r2, asr #2 + sub r3, r6, r3 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d19c: + ldr r1, _0207d3b0 ; =0x66666667 + mov r5, r6, lsr #0x1f + smull r0, r3, r1, r6 + smull r0, r2, r1, r6 + add r3, r5, r3, asr #2 + mov r1, #0xa + smull r3, r0, r1, r3 + ldr r1, _0207d3e0 ; =data_ov00_020e2230 + mov r0, r4 + add r2, r5, r2, asr #2 + sub r3, r6, r3 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d1d4: + cmp r6, #3 + bne _0207d25c + ldr r0, _0207d3e4 ; =gAdventureFlags + mov r1, #0x32 + ldr r0, [r0] + bl _ZN14AdventureFlags3GetEj + cmp r0, #0 + ldr r1, _0207d3b0 ; =0x66666667 + mov r5, r6, lsr #0x1f + beq _0207d22c + smull r0, r3, r1, r6 + smull r0, r2, r1, r6 + add r3, r5, r3, asr #2 + mov r1, #0xa + smull r3, r0, r1, r3 + ldr r1, _0207d3e8 ; =data_ov00_020e2250 + mov r0, r4 + add r2, r5, r2, asr #2 + sub r3, r6, r3 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d22c: + smull r0, r3, r1, r6 + smull r0, r2, r1, r6 + add r3, r5, r3, asr #2 + mov r1, #0xa + smull r3, r0, r1, r3 + ldr r1, _0207d3ec ; =data_ov00_020e226c + mov r0, r4 + add r2, r5, r2, asr #2 + sub r3, r6, r3 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d25c: + ldr r1, _0207d3b0 ; =0x66666667 + mov r5, r6, lsr #0x1f + smull r0, r3, r1, r6 + smull r0, r2, r1, r6 + add r3, r5, r3, asr #2 + mov r1, #0xa + smull r3, r0, r1, r3 + ldr r1, _0207d3f0 ; =data_ov00_020e2284 + mov r0, r4 + add r2, r5, r2, asr #2 + sub r3, r6, r3 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d294: + ldr r8, _0207d3b0 ; =0x66666667 + mov r7, r6, lsr #0x1f + smull r0, r1, r8, r6 + add r1, r7, r1, asr #2 + mov r2, #0xa + smull r0, r1, r2, r1 + sub r1, r6, r0 + smull r0, r3, r8, r6 + stmia sp, {r1, r5} + ldr r0, _0207d3b4 ; =data_ov00_020e233c + ldr r1, _0207d3f4 ; =data_ov00_020e229c + ldr r2, [r0] + mov r0, r4 + add r3, r7, r3, asr #2 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d2d8: + ldr r8, _0207d3b0 ; =0x66666667 + mov r7, r6, lsr #0x1f + smull r0, r1, r8, r6 + add r1, r7, r1, asr #2 + mov r2, #0xa + smull r0, r1, r2, r1 + sub r1, r6, r0 + smull r0, r3, r8, r6 + stmia sp, {r1, r5} + ldr r0, _0207d3b4 ; =data_ov00_020e233c + ldr r1, _0207d3f8 ; =data_ov00_020e22b8 + ldr r2, [r0] + mov r0, r4 + add r3, r7, r3, asr #2 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d31c: + ldr r2, _0207d3b0 ; =0x66666667 + mov r1, r6, lsr #0x1f + smull r0, r5, r2, r6 + smull r0, r7, r2, r6 + add r7, r1, r7, asr #2 + add r5, r1, r5, asr #2 + mov r2, #0xa + smull r0, r1, r2, r5 + sub r5, r6, r0 + str r7, [sp] + ldr r0, _0207d3b4 ; =data_ov00_020e233c + str r5, [sp, #4] + ldr r2, [r0] + ldr r1, _0207d3fc ; =data_ov00_020e22d4 + mov r0, r4 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0207d364: + ldr r2, _0207d3b0 ; =0x66666667 + mov r1, r6, lsr #0x1f + smull r0, r5, r2, r6 + smull r0, r7, r2, r6 + add r7, r1, r7, asr #2 + add r5, r1, r5, asr #2 + mov r2, #0xa + smull r0, r1, r2, r5 + str r7, [sp] + sub r5, r6, r0 + ldr r0, _0207d3b4 ; =data_ov00_020e233c + str r5, [sp, #4] + ldr r2, [r0] + ldr r1, _0207d400 ; =data_ov00_020e22e8 + mov r0, r4 + bl func_0200c8d0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, pc} + .align 2, 0 + arm_func_end _ZN6Course18func_ov00_0207ce4cEiiiPci +_0207d3ac: .word data_027e0f7c +_0207d3b0: .word 0x66666667 +_0207d3b4: .word data_ov00_020e233c +_0207d3b8: .word data_ov00_020e2148 +_0207d3bc: .word data_ov00_020e2160 +_0207d3c0: .word data_027e0d38 +_0207d3c4: .word data_ov00_020e2174 +_0207d3c8: .word data_ov00_020e2188 +_0207d3cc: .word data_ov00_020e219c +_0207d3d0: .word data_ov00_020e21b4 +_0207d3d4: .word data_ov00_020e21d0 +_0207d3d8: .word data_ov00_020e21f0 +_0207d3dc: .word data_ov00_020e2210 +_0207d3e0: .word data_ov00_020e2230 +_0207d3e4: .word gAdventureFlags +_0207d3e8: .word data_ov00_020e2250 +_0207d3ec: .word data_ov00_020e226c +_0207d3f0: .word data_ov00_020e2284 +_0207d3f4: .word data_ov00_020e229c +_0207d3f8: .word data_ov00_020e22b8 +_0207d3fc: .word data_ov00_020e22d4 +_0207d400: .word data_ov00_020e22e8 + + .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 + cmp r1, #0 + mov r5, r2 + mov r4, r3 + addeq sp, sp, #0x18 + mov r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + mov r2, #0x47 + str r2, [sp, #8] + strb r0, [sp, #0x14] + ldr r0, [r6, #0xc8] + add r2, sp, #8 + bl func_ov00_020a3710 + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + ldr r0, [sp, #0x28] + str r4, [sp] + str r0, [sp, #4] + ldrb r2, [sp, #0xc] + ldr r1, [sp, #8] + mov r0, r6 + mov r3, r5 + bl _ZN6Course18func_ov00_0207ce4cEiiiPci + mov r0, #1 + add sp, sp, #0x18 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN6Course18func_ov00_0207d404Eiii + + .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 _ZN6Course22IsCurrentMapInMainGridEv +_0207d48c: .word _ZN6Course12IsInMainGridEii + + .global _ZN6Course12IsInMainGridEii + arm_func_start _ZN6Course12IsInMainGridEii +_ZN6Course12IsInMainGridEii: ; 0x0207d490 + ldrb r3, [r0, #0x25c] + cmp r3, #0 + moveq r0, #1 + bxeq lr + ldrb ip, [r0, #0x84] + cmp ip, r1 + bgt _0207d4dc + ldrb r3, [r0, #0x86] + add r3, ip, r3 + cmp r1, r3 + bge _0207d4dc + ldrb r1, [r0, #0x85] + cmp r1, r2 + bgt _0207d4dc + ldrb r0, [r0, #0x87] + add r0, r1, r0 + cmp r2, r0 + movlt r0, #1 + bxlt lr +_0207d4dc: + mov r0, #0 + bx lr + arm_func_end _ZN6Course12IsInMainGridEii + + .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 _ZN6Course14FindMapGridPosEP5Vec2bPS_j + ldrb r1, [sp] + ldrb r2, [sp, #1] + mov r0, r4 + bl _ZN6Course12IsInMainGridEii + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end _ZN6Course15IsMapInMainGridEj + + .global _ZN6Course15GetMapScreenPosEiPiS0_ + arm_func_start _ZN6Course15GetMapScreenPosEiPiS0_ +_ZN6Course15GetMapScreenPosEiPiS0_: ; 0x0207d518 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r4, r1 + mov r7, r0 + cmp r4, #0xff + mov r6, r2 + mov r5, r3 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + add r0, sp, #0 + mov r1, r7 + mov r2, r4 + bl _ZN6Course14FindMapGridPosEP5Vec2bPS_j + ldrb r1, [sp] + ldrb r2, [sp, #1] + mov r0, r7 + bl _ZN6Course12IsInMainGridEii + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + ldrb r4, [r7, #0x86] + ldrb r0, [r7, #0x87] + cmp r0, r4 + movhi r4, r0 + mov r1, r4 + mov r0, #0x100 + bl func_02002c14 + ldrb r3, [sp] + ldrb r2, [r7, #0x84] + ldr ip, [r7, #0x88] + mov r1, r4 + sub r2, r3, r2 + mla r2, r0, r2, ip + str r2, [r6] + mov r0, #0xc0 + bl func_02002c14 + ldrb r2, [sp, #1] + ldrb r1, [r7, #0x85] + ldr r3, [r7, #0x8c] + sub r1, r2, r1 + mla r1, r0, r1, r3 + str r1, [r5] + mov r0, #1 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN6Course15GetMapScreenPosEiPiS0_ + + .global _ZN6Course21GetScreenMapCellSizeXEv + arm_func_start _ZN6Course21GetScreenMapCellSizeXEv +_ZN6Course21GetScreenMapCellSizeXEv: ; 0x0207d5c4 + stmdb sp!, {r3, lr} + ldrb r1, [r0, #0x86] + ldrb r0, [r0, #0x87] + cmp r0, r1 + movhi r1, r0 + mov r1, r1, lsl #0xc + mov r0, #0x100000 + bl Divide + mov r1, #0x40000 + bl Divide + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course21GetScreenMapCellSizeXEv + + .global _ZN6Course21GetScreenMapCellSizeYEv + arm_func_start _ZN6Course21GetScreenMapCellSizeYEv +_ZN6Course21GetScreenMapCellSizeYEv: ; 0x0207d5f0 + stmdb sp!, {r3, lr} + ldrb r1, [r0, #0x87] + ldrb r0, [r0, #0x86] + cmp r0, r1 + movhi r1, r0 + mov r1, r1, lsl #0xc + mov r0, #0xc0000 + bl Divide + mov r1, #0x30000 + bl Divide + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course21GetScreenMapCellSizeYEv + + .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 _ZN6Course13Get_Unk_c8_00Ev + + .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 _ZN6Course13Get_Unk_c8_04Ev + + .global _ZN6Course23IsAdjacentMapOnMainGridEi + arm_func_start _ZN6Course23IsAdjacentMapOnMainGridEi +_ZN6Course23IsAdjacentMapOnMainGridEi: ; 0x0207d634 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldrb r4, [r6, #0x1c] + ldrb r5, [r6, #0x1d] + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _0207d67c +_0207d650: ; jump table + b _0207d660 ; case 0 + b _0207d668 ; case 1 + b _0207d670 ; case 2 + b _0207d678 ; case 3 +_0207d660: + add r4, r4, #1 + b _0207d67c +_0207d668: + sub r4, r4, #1 + b _0207d67c +_0207d670: + add r5, r5, #1 + b _0207d67c +_0207d678: + sub r5, r5, #1 +_0207d67c: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl _ZN6Course12IsInMainGridEii + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl _ZN6Course10HasGridMapEii + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN6Course23IsAdjacentMapOnMainGridEi + + .global _ZN6Course10HasGridMapEii + arm_func_start _ZN6Course10HasGridMapEii +_ZN6Course10HasGridMapEii: ; 0x0207d6ac + cmp r1, #0 + cmpge r2, #0 + blt _0207d6c4 + cmp r1, #0xa + cmplt r2, #0xa + blt _0207d6cc +_0207d6c4: + mov r0, #0 + bx lr +_0207d6cc: + mov r3, #0xa + mla r0, r1, r3, r0 + add r0, r0, r2 + ldrb r0, [r0, #0x20] + cmp r0, #0xff + movne r0, #1 + moveq r0, #0 + bx lr + arm_func_end _ZN6Course10HasGridMapEii + + .global _ZN6Course14GetAdjacentMapEi + arm_func_start _ZN6Course14GetAdjacentMapEi +_ZN6Course14GetAdjacentMapEi: ; 0x0207d6ec + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl _ZN6Course23IsAdjacentMapOnMainGridEi + cmp r0, #0 + moveq r0, #0xff + ldmeqia sp!, {r4, r5, r6, pc} + mov r0, r6 + mov r1, r5 + bl _ZN6Course15GetAdjacentMapYEi + mov r4, r0 + mov r0, r6 + mov r1, r5 + 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 _ZN6Course14GetAdjacentMapEi + + .global _ZN6Course15GetAdjacentMapXEi + arm_func_start _ZN6Course15GetAdjacentMapXEi +_ZN6Course15GetAdjacentMapXEi: ; 0x0207d738 + cmp r1, #0 + ldrb r0, [r0, #0x1c] + beq _0207d750 + cmp r1, #1 + subeq r0, r0, #1 + bx lr +_0207d750: + add r0, r0, #1 + bx lr + arm_func_end _ZN6Course15GetAdjacentMapXEi + + .global _ZN6Course15GetAdjacentMapYEi + arm_func_start _ZN6Course15GetAdjacentMapYEi +_ZN6Course15GetAdjacentMapYEi: ; 0x0207d758 + cmp r1, #2 + ldrb r0, [r0, #0x1d] + beq _0207d770 + cmp r1, #3 + subeq r0, r0, #1 + bx lr +_0207d770: + add r0, r0, #1 + bx lr + arm_func_end _ZN6Course15GetAdjacentMapYEi + + .global _ZN6Course25FindCurrentMapData_Unk_04Ev + arm_func_start _ZN6Course25FindCurrentMapData_Unk_04Ev +_ZN6Course25FindCurrentMapData_Unk_04Ev: ; 0x0207d778 + stmdb sp!, {r3, lr} + bl _ZN6Course18FindCurrentMapDataEv + ldrh r0, [r0, #4] + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course25FindCurrentMapData_Unk_04Ev + + .global _ZN6Course18FindMapData_Unk_04Ei + arm_func_start _ZN6Course18FindMapData_Unk_04Ei +_ZN6Course18FindMapData_Unk_04Ei: ; 0x0207d788 + stmdb sp!, {r3, lr} + bl _ZN6Course11FindMapDataEj + cmp r0, #0 + ldreq r0, _0207d7a0 ; =0x0000ffff + ldrneh r0, [r0, #4] + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN6Course18FindMapData_Unk_04Ei +_0207d7a0: .word 0x0000ffff + + .global _ZN6Course18FindMapData_Unk_0cEi + arm_func_start _ZN6Course18FindMapData_Unk_0cEi +_ZN6Course18FindMapData_Unk_0cEi: ; 0x0207d7a4 + stmdb sp!, {r3, lr} + bl _ZN6Course11FindMapDataEj + cmp r0, #0 + moveq r0, #0 + ldrne r0, [r0, #0xc] + ldmia sp!, {r3, pc} + arm_func_end _ZN6Course18FindMapData_Unk_0cEi + + .global _ZN6Course18func_ov00_0207d7bcEv + arm_func_start _ZN6Course18func_ov00_0207d7bcEv +_ZN6Course18func_ov00_0207d7bcEv: ; 0x0207d7bc + stmdb sp!, {r3, lr} + bl _ZN6Course18FindCurrentMapDataEv + 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 _ZN6Course18func_ov00_0207d7bcEv +_0207d7d8: .word data_027e103c + + .global _ZN6Course8SetFlag0Ejb + arm_func_start _ZN6Course8SetFlag0Ejb +_ZN6Course8SetFlag0Ejb: ; 0x0207d7dc + cmp r2, #0 + beq _0207d804 + add ip, r0, #0x264 + mov r3, r1, lsr #0x5 + and r0, r1, #0x1f + ldr r2, [ip, r3, lsl #2] + mov r1, #1 + orr r0, r2, r1, lsl r0 + str r0, [ip, r3, lsl #2] + bx lr +_0207d804: + add r3, r0, #0x264 + mov r2, r1, lsr #0x5 + and r0, r1, #0x1f + mov r1, #1 + mvn r0, r1, lsl r0 + ldr r1, [r3, r2, lsl #2] + and r0, r1, r0 + str r0, [r3, r2, lsl #2] + bx lr + arm_func_end _ZN6Course8SetFlag0Ejb + + .global _ZN6Course8GetFlag0Ej + arm_func_start _ZN6Course8GetFlag0Ej +_ZN6Course8GetFlag0Ej: ; 0x0207d828 + mov r2, r1, lsr #0x5 + add r0, r0, r2, lsl #2 + ldr r2, [r0, #0x264] + and r1, r1, #0x1f + mov r0, #1 + tst r2, r0, lsl r1 + moveq r0, #0 + bx lr + arm_func_end _ZN6Course8GetFlag0Ej + + .global _ZN6Course8SetFlag1Ejb + arm_func_start _ZN6Course8SetFlag1Ejb +_ZN6Course8SetFlag1Ejb: ; 0x0207d848 + cmp r2, #0 + beq _0207d870 + add ip, r0, #0x268 + mov r3, r1, lsr #0x5 + and r0, r1, #0x1f + ldr r2, [ip, r3, lsl #2] + mov r1, #1 + orr r0, r2, r1, lsl r0 + str r0, [ip, r3, lsl #2] + bx lr +_0207d870: + add r3, r0, #0x268 + mov r2, r1, lsr #0x5 + and r0, r1, #0x1f + mov r1, #1 + mvn r0, r1, lsl r0 + ldr r1, [r3, r2, lsl #2] + and r0, r1, r0 + str r0, [r3, r2, lsl #2] + bx lr + arm_func_end _ZN6Course8SetFlag1Ejb + + .global _ZN6Course8SetFlag1Ej + arm_func_start _ZN6Course8SetFlag1Ej +_ZN6Course8SetFlag1Ej: ; 0x0207d894 + mov r2, r1, lsr #0x5 + add r0, r0, r2, lsl #2 + ldr r2, [r0, #0x268] + and r1, r1, #0x1f + mov r0, #1 + tst r2, r0, lsl r1 + moveq r0, #0 + bx lr + arm_func_end _ZN6Course8SetFlag1Ej + + .global _ZN6Course15SetMapDataFlag0Eib + arm_func_start _ZN6Course15SetMapDataFlag0Eib +_ZN6Course15SetMapDataFlag0Eib: ; 0x0207d8b4 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r1 + mov r4, r2 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r5 + mov r2, r4 + bl func_ov00_0209740c + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN6Course15SetMapDataFlag0Eib + + .global _ZN6Course15GetMapDataFlag0Ei + arm_func_start _ZN6Course15GetMapDataFlag0Ei +_ZN6Course15GetMapDataFlag0Ei: ; 0x0207d8d4 + stmdb sp!, {r4, lr} + mov r4, r1 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r4 + bl func_ov00_02097458 + ldmia sp!, {r4, pc} + arm_func_end _ZN6Course15GetMapDataFlag0Ei + + .global _ZN6Course15SetMapDataFlag1Eib + arm_func_start _ZN6Course15SetMapDataFlag1Eib +_ZN6Course15SetMapDataFlag1Eib: ; 0x0207d8ec + stmdb sp!, {r3, r4, r5, lr} + mov r5, r1 + mov r4, r2 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r5 + mov r2, r4 + bl func_ov00_02097478 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN6Course15SetMapDataFlag1Eib + + .global _ZN6Course15GetMapDataFlag1Ei + arm_func_start _ZN6Course15GetMapDataFlag1Ei +_ZN6Course15GetMapDataFlag1Ei: ; 0x0207d90c + stmdb sp!, {r4, lr} + mov r4, r1 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r4 + bl func_ov00_020974c4 + ldmia sp!, {r4, pc} + arm_func_end _ZN6Course15GetMapDataFlag1Ei + + .global _ZN6Course15SetMapDataFlag2Eib + arm_func_start _ZN6Course15SetMapDataFlag2Eib +_ZN6Course15SetMapDataFlag2Eib: ; 0x0207d924 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r1 + mov r4, r2 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r5 + mov r2, r4 + bl func_ov00_020974e4 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN6Course15SetMapDataFlag2Eib + + .global _ZN6Course15GetMapDataFlag2Ei + arm_func_start _ZN6Course15GetMapDataFlag2Ei +_ZN6Course15GetMapDataFlag2Ei: ; 0x0207d944 + stmdb sp!, {r4, lr} + mov r4, r1 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r4 + bl func_ov00_02097530 + ldmia sp!, {r4, pc} + arm_func_end _ZN6Course15GetMapDataFlag2Ei + + .global _ZN6Course15SetMapDataFlag3Eib + arm_func_start _ZN6Course15SetMapDataFlag3Eib +_ZN6Course15SetMapDataFlag3Eib: ; 0x0207d95c + stmdb sp!, {r3, r4, r5, lr} + mov r5, r1 + mov r4, r2 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r5 + mov r2, r4 + bl func_ov00_02097550 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN6Course15SetMapDataFlag3Eib + + .global _ZN6Course15GetMapDataFlag3Ei + arm_func_start _ZN6Course15GetMapDataFlag3Ei +_ZN6Course15GetMapDataFlag3Ei: ; 0x0207d97c + stmdb sp!, {r4, lr} + mov r4, r1 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r4 + bl func_ov00_0209759c + ldmia sp!, {r4, pc} + arm_func_end _ZN6Course15GetMapDataFlag3Ei + + .global _ZN6Course15SetMapDataFlag4Eii + arm_func_start _ZN6Course15SetMapDataFlag4Eii +_ZN6Course15SetMapDataFlag4Eii: ; 0x0207d994 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r1 + mov r4, r2 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r5 + mov r2, r4 + bl func_ov00_020975bc + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN6Course15SetMapDataFlag4Eii + + .global _ZN6Course15GetMapDataFlag4Ei + arm_func_start _ZN6Course15GetMapDataFlag4Ei +_ZN6Course15GetMapDataFlag4Ei: ; 0x0207d9b4 + stmdb sp!, {r4, lr} + mov r4, r1 + bl _ZN6Course18FindCurrentMapDataEv + mov r1, r4 + bl func_ov00_02097608 + ldmia sp!, {r4, pc} + arm_func_end _ZN6Course15GetMapDataFlag4Ei + + .global _ZN6Course11FindMapDataEj + arm_func_start _ZN6Course11FindMapDataEj +_ZN6Course11FindMapDataEj: ; 0x0207d9cc + ldrb r2, [r0, #0xb0] + mov ip, #0 + cmp r2, #0 + ble _0207da0c +_0207d9dc: + add r2, r0, ip, lsl #2 + ldr r3, [r2, #0xcc] + cmp r3, #0 + beq _0207d9fc + ldrb r2, [r3, #1] + cmp r1, r2 + moveq r0, r3 + bxeq lr +_0207d9fc: + ldrb r2, [r0, #0xb0] + add ip, ip, #1 + cmp ip, r2 + blt _0207d9dc +_0207da0c: + mov r0, #0 + bx lr + arm_func_end _ZN6Course11FindMapDataEj + + .global _ZN6Course18FindCurrentMapDataEv + arm_func_start _ZN6Course18FindCurrentMapDataEv +_ZN6Course18FindCurrentMapDataEv: ; 0x0207da14 + ldrb r3, [r0, #0x1c] + mov r1, #0xa + ldrb r2, [r0, #0x1d] + mla r1, r3, r1, r0 + add r1, r1, r2 + ldr ip, _0207da34 ; =_ZN6Course11FindMapDataEj + ldrb r1, [r1, #0x20] + bx ip + .align 2, 0 + arm_func_end _ZN6Course18FindCurrentMapDataEv +_0207da34: .word _ZN6Course11FindMapDataEj + + .data + .global data_ov00_020e2058 +data_ov00_020e2058: ; 0x020e2058 + .ascii "%s:objlist/motype.zob" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e2070 +data_ov00_020e2070: ; 0x020e2070 + .ascii "%s:objlist/motype_%d.zob" + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e208c +data_ov00_020e208c: ; 0x020e208c + .ascii "%s:objlist/npctype.zob" + .byte 0x00, 0x00 + .global data_ov00_020e20a4 +data_ov00_020e20a4: ; 0x020e20a4 + .ascii "%s:objlist/npctype_%d.zob" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e20c0 +data_ov00_020e20c0: ; 0x020e20c0 + .ascii "%s:tex/mapModel.nsbtx" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e20d8 +data_ov00_020e20d8: ; 0x020e20d8 + .ascii "%s:arrange/%s.zab" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e20ec +data_ov00_020e20ec: ; 0x020e20ec + .ascii "%s:objlist/motype.zob" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e2104 +data_ov00_020e2104: ; 0x020e2104 + .ascii "%s:objlist/npctype.zob" + .byte 0x00, 0x00 + .global data_ov00_020e211c +data_ov00_020e211c: ; 0x020e211c + .ascii "%s:tex/mapModel.nsbtx" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e2134 +data_ov00_020e2134: ; 0x020e2134 + .ascii "%s:arrange/%s.zab" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e2148 +data_ov00_020e2148: ; 0x020e2148 + .ascii "%s:nsbmd/%s_%d%d.nsbmd" + .byte 0x00, 0x00 + .global data_ov00_020e2160 +data_ov00_020e2160: ; 0x020e2160 + .ascii "%s:zcb/%s_%d%d.zcb" + .byte 0x00, 0x00 + .global data_ov00_020e2174 +data_ov00_020e2174: ; 0x020e2174 + .ascii "Map2D/%s/map00.bin" + .byte 0x00, 0x00 + .global data_ov00_020e2188 +data_ov00_020e2188: ; 0x020e2188 + .ascii "Map2D/%s/mapwd.bin" + .byte 0x00, 0x00 + .global data_ov00_020e219c +data_ov00_020e219c: ; 0x020e219c + .ascii "Map2D/%s/map%d%d.bin" + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e21b4 +data_ov00_020e21b4: ; 0x020e21b4 + .ascii "Map2D/seatest/map%d%d.bin" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e21d0 +data_ov00_020e21d0: ; 0x020e21d0 + .ascii "Map2D/sea_minigame/map%d%d.bin" + .byte 0x00, 0x00 + .global data_ov00_020e21f0 +data_ov00_020e21f0: ; 0x020e21f0 + .ascii "Map2D/sea_fishing/map%d%d.bin" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e2210 +data_ov00_020e2210: ; 0x020e2210 + .ascii "Map2D/sea_salvage/map%d%d.bin" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e2230 +data_ov00_020e2230: ; 0x020e2230 + .ascii "Map2D/boss_last2/map%d%d.bin" + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2250 +data_ov00_020e2250: ; 0x020e2250 + .ascii "Map2D/sea/map%d%d_02.bin" + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e226c +data_ov00_020e226c: ; 0x020e226c + .ascii "Map2D/sea/map%d%d.bin" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e2284 +data_ov00_020e2284: ; 0x020e2284 + .ascii "Map2D/sea/map%d%d.bin" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e229c +data_ov00_020e229c: ; 0x020e229c + .ascii "%s:zob/motype_%d%d_%d.zob" + .byte 0x00, 0x00, 0x00 + .global data_ov00_020e22b8 +data_ov00_020e22b8: ; 0x020e22b8 + .ascii "%s:zob/npctype_%d%d_%d.zob" + .byte 0x00, 0x00 + .global data_ov00_020e22d4 +data_ov00_020e22d4: ; 0x020e22d4 + .ascii "%s:mcb/%s_%d%d.mcb" + .byte 0x00, 0x00 + .global data_ov00_020e22e8 +data_ov00_020e22e8: ; 0x020e22e8 + .ascii "%s:zmb/%s_%d%d.zmb" + .byte 0x00, 0x00 diff --git a/asm/ov00/Map/MapBase.inc b/asm/ov00/Map/MapBase.inc new file mode 100644 index 00000000..0ad7fa37 --- /dev/null +++ b/asm/ov00/Map/MapBase.inc @@ -0,0 +1,85 @@ +#pragma once +.extern Divide +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN6Course13FindMapCenterEi +.extern _ZN9SysObjectdlEPv +.extern _ZN9SysObjectnwEmPjj +.extern data_027e0618 +.extern data_027e0ce0 +.extern data_027e0d38 +.extern data_027e0e58 +.extern data_027e0f64 +.extern data_027e0f68 +.extern data_027e0f6c +.extern data_027e0f78 +.extern data_027e0f88 +.extern data_027e0f8c +.extern data_ov00_020ecde4 +.extern data_ov00_020ee0a0 +.extern func_01ffe904 +.extern func_01fff084 +.extern func_01fff264 +.extern func_020078f4 +.extern func_0200c8d0 +.extern func_020196bc +.extern func_020196fc +.extern func_0201e24c +.extern func_0201e4cc +.extern func_02042f68 +.extern func_0204f614 +.extern func_0204f754 +.extern func_ov00_02078b40 +.extern func_ov00_02079e3c +.extern func_ov00_02080f20 +.extern func_ov00_02080f64 +.extern func_ov00_02080f94 +.extern func_ov00_02080ff8 +.extern func_ov00_02081040 +.extern func_ov00_02081070 +.extern func_ov00_020810b8 +.extern func_ov00_020810e8 +.extern func_ov00_02081130 +.extern func_ov00_02087dd8 +.extern func_ov00_0208b79c +.extern func_ov00_0208d820 +.extern func_ov00_0208ee00 +.extern func_ov00_02095554 +.extern func_ov00_0209564c +.extern func_ov00_0209581c +.extern func_ov00_02095d58 +.extern func_ov00_0209c08c +.extern func_ov00_0209c1e4 +.extern func_ov00_0209c2b4 +.extern func_ov00_0209c2d0 +.extern func_ov00_0209c530 +.extern func_ov00_0209c61c +.extern func_ov00_0209c788 +.extern func_ov00_0209c8e4 +.extern func_ov00_0209cc3c +.extern func_ov00_0209cc48 +.extern func_ov00_0209cd80 +.extern func_ov00_0209cd9c +.extern func_ov00_0209cddc +.extern func_ov00_0209cdf8 +.extern func_ov00_020a1a0c +.extern func_ov00_020a3de0 +.extern func_ov00_020a5e9c +.extern func_ov04_0210bfa8 +.extern func_ov04_0210c1f8 +.extern func_ov04_0210c3fc +.extern func_ov04_0210c52c +.extern func_ov04_0210c5cc +.extern func_ov04_0210c764 +.extern func_ov04_0210c800 +.extern func_ov04_0210c88c +.extern func_ov04_0210c8d4 +.extern func_ov04_0210ca84 +.extern func_ov04_0210cb00 +.extern func_ov04_0210cb1c +.extern func_ov04_0210dd90 +.extern func_ov05_02111bc0 +.extern func_ov05_02111c00 +.extern func_ov05_02111c6c +.extern func_ov05_02111c70 +.extern gMapManager +.extern strcmp diff --git a/asm/ov00/Map/MapBase.s b/asm/ov00/Map/MapBase.s new file mode 100644 index 00000000..15a6cca6 --- /dev/null +++ b/asm/ov00/Map/MapBase.s @@ -0,0 +1,4401 @@ + .include "ov00/Map/MapBase.inc" + .include "macros/function.inc" + + .text + .global _ZN7MapBaseD1Ev + arm_func_start _ZN7MapBaseD1Ev +_ZN7MapBaseD1Ev: ; 0x0207da38 + stmdb sp!, {r3, r4, r5, lr} + ldr r1, _0207db0c ; =_ZTV7MapBase + mov r4, r0 + str r1, [r4] + ldr r1, [r0] + ldr r1, [r1, #0x2c] + blx r1 + ldr r5, [r4, #0x144] + cmp r5, #0 + beq _0207da7c + beq _0207da74 + mov r0, r5 + blx func_ov04_0210dd90 + mov r0, r5 + bl _ZN9SysObjectdlEPv +_0207da74: + mov r0, #0 + str r0, [r4, #0x144] +_0207da7c: + ldr r0, _0207db10 ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dac0 + ldr r1, [r0] + ldr r1, [r1, #0xc] + blx r1 + ldr r0, _0207db10 ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dab4 + ldr r1, [r0] + ldr r1, [r1, #4] + blx r1 +_0207dab4: + ldr r0, _0207db10 ; =data_ov00_020ec81c + mov r1, #0 + str r1, [r0, #4] +_0207dac0: + mov r0, r4 + blx func_ov04_0210cb1c + ldr r3, _0207db14 ; =_ZN15MapBase_Unk_180D1Ev + add r0, r4, #0x180 + mov r1, #2 + mov r2, #4 + bl func_0204f754 + add r0, r4, #0x130 + bl func_ov00_02080f20 + add r0, r4, #0x124 + bl func_ov00_020810e8 + add r0, r4, #0x118 + bl func_ov00_02081070 + add r0, r4, #0x10c + bl func_ov00_02080f20 + add r0, r4, #0x100 + bl func_ov00_02080ff8 + mov r0, r4 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN7MapBaseD1Ev +_0207db0c: .word _ZTV7MapBase +_0207db10: .word data_ov00_020ec81c +_0207db14: .word _ZN15MapBase_Unk_180D1Ev + + .global _ZN15MapBase_Unk_180D1Ev + arm_func_start _ZN15MapBase_Unk_180D1Ev +_ZN15MapBase_Unk_180D1Ev: ; 0x0207db18 + bx lr + arm_func_end _ZN15MapBase_Unk_180D1Ev + + .global _ZN7MapBaseD0Ev + arm_func_start _ZN7MapBaseD0Ev +_ZN7MapBaseD0Ev: ; 0x0207db1c + stmdb sp!, {r3, r4, r5, lr} + ldr r1, _0207dbf8 ; =_ZTV7MapBase + mov r4, r0 + str r1, [r4] + ldr r1, [r0] + ldr r1, [r1, #0x2c] + blx r1 + ldr r5, [r4, #0x144] + cmp r5, #0 + beq _0207db60 + beq _0207db58 + mov r0, r5 + blx func_ov04_0210dd90 + mov r0, r5 + bl _ZN9SysObjectdlEPv +_0207db58: + mov r0, #0 + str r0, [r4, #0x144] +_0207db60: + ldr r0, _0207dbfc ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dba4 + ldr r1, [r0] + ldr r1, [r1, #0xc] + blx r1 + ldr r0, _0207dbfc ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207db98 + ldr r1, [r0] + ldr r1, [r1, #4] + blx r1 +_0207db98: + ldr r0, _0207dbfc ; =data_ov00_020ec81c + mov r1, #0 + str r1, [r0, #4] +_0207dba4: + mov r0, r4 + blx func_ov04_0210cb1c + ldr r3, _0207dc00 ; =_ZN15MapBase_Unk_180D1Ev + add r0, r4, #0x180 + mov r1, #2 + mov r2, #4 + bl func_0204f754 + add r0, r4, #0x130 + bl func_ov00_02080f20 + add r0, r4, #0x124 + bl func_ov00_020810e8 + add r0, r4, #0x118 + bl func_ov00_02081070 + add r0, r4, #0x10c + bl func_ov00_02080f20 + add r0, r4, #0x100 + bl func_ov00_02080ff8 + mov r0, r4 + bl _ZN9SysObjectdlEPv + mov r0, r4 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN7MapBaseD0Ev +_0207dbf8: .word _ZTV7MapBase +_0207dbfc: .word data_ov00_020ec81c +_0207dc00: .word _ZN15MapBase_Unk_180D1Ev + + .global _ZN7MapBaseD2Ev + arm_func_start _ZN7MapBaseD2Ev +_ZN7MapBaseD2Ev: ; 0x0207dc04 + stmdb sp!, {r3, r4, r5, lr} + ldr r1, _0207dcd8 ; =_ZTV7MapBase + mov r4, r0 + str r1, [r4] + ldr r1, [r0] + ldr r1, [r1, #0x2c] + blx r1 + ldr r5, [r4, #0x144] + cmp r5, #0 + beq _0207dc48 + beq _0207dc40 + mov r0, r5 + blx func_ov04_0210dd90 + mov r0, r5 + bl _ZN9SysObjectdlEPv +_0207dc40: + mov r0, #0 + str r0, [r4, #0x144] +_0207dc48: + ldr r0, _0207dcdc ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dc8c + ldr r1, [r0] + ldr r1, [r1, #0xc] + blx r1 + ldr r0, _0207dcdc ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dc80 + ldr r1, [r0] + ldr r1, [r1, #4] + blx r1 +_0207dc80: + ldr r0, _0207dcdc ; =data_ov00_020ec81c + mov r1, #0 + str r1, [r0, #4] +_0207dc8c: + mov r0, r4 + blx func_ov04_0210cb1c + ldr r3, _0207dce0 ; =_ZN15MapBase_Unk_180D1Ev + add r0, r4, #0x180 + mov r1, #2 + mov r2, #4 + bl func_0204f754 + add r0, r4, #0x130 + bl func_ov00_02080f20 + add r0, r4, #0x124 + bl func_ov00_020810e8 + add r0, r4, #0x118 + bl func_ov00_02081070 + add r0, r4, #0x10c + bl func_ov00_02080f20 + add r0, r4, #0x100 + bl func_ov00_02080ff8 + mov r0, r4 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN7MapBaseD2Ev +_0207dcd8: .word _ZTV7MapBase +_0207dcdc: .word data_ov00_020ec81c +_0207dce0: .word _ZN15MapBase_Unk_180D1Ev + + .global _ZN7MapBase9SetBoundsEii + arm_func_start _ZN7MapBase9SetBoundsEii +_ZN7MapBase9SetBoundsEii: ; 0x0207dce4 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0x2c + mov r4, r0 + ldrh r5, [r4, #0x28] + ldrh r3, [r4, #0x2a] + mov r0, r2 + mov r5, r5, lsl #0xc + mov r2, r3, lsl #0xc + str r5, [sp] + str r2, [sp, #4] + bl _ZN6Course13FindMapCenterEi + mov ip, r5 + add r5, sp, #0x20 + ldmia r0, {r0, r1, r2} + stmia r5, {r0, r1, r2} + ldr r1, [sp, #0x20] + ldr r3, [sp, #4] + ldr r2, [sp, #0x28] + ldr r0, [sp, #0x24] + sub r1, r1, ip, asr #1 + str r1, [r4, #0xdc] + str r0, [r4, #0xe0] + sub r1, r2, r3, asr #1 + str r1, [r4, #0xe4] + ldr r1, [sp, #0x20] + mov r5, r3, asr #0x1 + str r1, [r4, #0xd0] + ldr r1, [sp, #0x24] + add r3, r2, r3, asr #1 + str r1, [r4, #0xd4] + ldr r1, [sp, #0x28] + mov lr, ip, asr #0x1 + str r1, [r4, #0xd8] + ldr r2, [sp, #0x20] + rsb r1, lr, #0 + add r2, r2, ip, asr #1 + str r2, [r4, #0xe8] + str r0, [r4, #0xec] + str r3, [r4, #0xf0] + str r1, [r4, #0xf4] + mov r0, #0 + str r0, [r4, #0xf8] + rsb r0, r5, #0 + str r0, [r4, #0xfc] + add sp, sp, #0x2c + ldmia sp!, {r4, r5, pc} + arm_func_end _ZN7MapBase9SetBoundsEii + + .global _ZN15MapManager_Unk2D1Ev + arm_func_start _ZN15MapManager_Unk2D1Ev +_ZN15MapManager_Unk2D1Ev: ; 0x0207dd9c + bx lr + arm_func_end _ZN15MapManager_Unk2D1Ev + + .global _ZN7MapBase14GetMapFilePathEPcii + arm_func_start _ZN7MapBase14GetMapFilePathEPcii +_ZN7MapBase14GetMapFilePathEPcii: ; 0x0207dda0 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #4 + ldr ip, _0207ddec ; =0x66666667 + mov r6, r1 + smull r0, r5, ip, r2 + mov r0, r3 + smull r1, r3, ip, r2 + mov r4, r2, lsr #0x1f + add r5, r4, r5, asr #2 + mov lr, #0xa + smull r1, ip, lr, r5 + sub r5, r2, r1 + ldr r1, _0207ddf0 ; =data_ov00_020e2410 + mov r2, r6 + add r3, r4, r3, asr #2 + str r5, [sp] + bl func_0200c8d0 + add sp, sp, #4 + ldmia sp!, {r3, r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN7MapBase14GetMapFilePathEPcii +_0207ddec: .word 0x66666667 +_0207ddf0: .word data_ov00_020e2410 + + .global _ZN7MapBase8vfunc_18Ev + arm_func_start _ZN7MapBase8vfunc_18Ev +_ZN7MapBase8vfunc_18Ev: ; 0x0207ddf4 + bx lr + arm_func_end _ZN7MapBase8vfunc_18Ev + + .global _ZN7MapBase18func_ov00_0207ddf8Eb + arm_func_start _ZN7MapBase18func_ov00_0207ddf8Eb +_ZN7MapBase18func_ov00_0207ddf8Eb: ; 0x0207ddf8 + stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} + mov r7, #0 + mov r10, r0 + mov r9, r1 + add r8, r10, #0x180 + mvn r5, #0 + mov r6, r7 + mov r4, r7 + mov r11, #4 +_0207de1c: + cmp r9, #0 + beq _0207de44 + mov r2, r6 + add r1, r10, r7, lsl #2 +_0207de2c: + add r0, r1, r2, lsl #2 + add r2, r2, #1 + str r5, [r0, #0x180] + cmp r2, #1 + blo _0207de2c + b _0207de54 +_0207de44: + mov r0, r4 + mov r1, r8 + mov r2, r11 + bl func_020078f4 +_0207de54: + add r7, r7, #1 + cmp r7, #2 + add r8, r8, #4 + blt _0207de1c + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} + arm_func_end _ZN7MapBase18func_ov00_0207ddf8Eb + + .global _ZN7MapBase18func_ov00_0207de68Ei + arm_func_start _ZN7MapBase18func_ov00_0207de68Ei +_ZN7MapBase18func_ov00_0207de68Ei: ; 0x0207de68 + stmdb sp!, {r3, lr} + ldr r0, [r0, #0x144] + mov r2, r1 + cmp r0, #0 + ldmeqia sp!, {r3, pc} + mov r1, #0 + bl func_ov00_0209c08c + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_0207de68Ei + + .global _ZN7MapBase18func_ov00_0207de88Ev + arm_func_start _ZN7MapBase18func_ov00_0207de88Ev +_ZN7MapBase18func_ov00_0207de88Ev: ; 0x0207de88 + stmdb sp!, {r3, lr} + ldr r0, [r0, #0x144] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl func_ov00_0209c61c + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_0207de88Ev + + .global _ZN7MapBase18func_ov00_0207dea0Eb + arm_func_start _ZN7MapBase18func_ov00_0207dea0Eb +_ZN7MapBase18func_ov00_0207dea0Eb: ; 0x0207dea0 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r5, r0 + ldr r2, _0207e044 ; =data_027e0f78 + ldr r0, [r5, #0x144] + mov r4, r1 + ldr r6, [r2] + bl func_ov00_0209c530 + ldrh r2, [r0, #4] + mov r0, r6 + mov r1, #0 + bl func_ov00_0209cc3c + ldr r1, _0207e044 ; =data_027e0f78 + ldr r0, [r5, #0x144] + ldr r6, [r1] + bl func_ov00_0209c530 + mov r1, r0 + ldrh r2, [r1, #6] + mov r0, r6 + mov r1, #1 + bl func_ov00_0209cc3c + ldr r1, _0207e044 ; =data_027e0f78 + ldr r0, [r5, #0x144] + ldr r6, [r1] + bl func_ov00_0209c530 + mov r1, r0 + ldrh r2, [r1, #8] + mov r0, r6 + mov r1, #2 + bl func_ov00_0209cc3c + ldr r1, _0207e044 ; =data_027e0f78 + ldr r0, [r5, #0x144] + ldr r6, [r1] + bl func_ov00_0209c530 + mov r1, r0 + ldrh r2, [r1, #0xa] + mov r0, r6 + mov r1, #3 + bl func_ov00_0209cc3c + ldr r0, _0207e044 ; =data_027e0f78 + ldr r0, [r0] + bl func_ov00_0209cc48 + ldr r1, _0207e048 ; =data_027e0f88 + ldr r0, [r5, #0x144] + ldr r6, [r1] + bl func_ov00_0209c530 + mov r1, r0 + ldrh r2, [r1, #0xc] + mov r0, r6 + mov r1, #0 + bl func_ov00_020a1a0c + cmp r4, #0 + beq _0207dff0 + ldr r0, [r5, #0x144] + ldr r1, _0207e04c ; =data_ov00_020ecde4 + ldr r2, [r0, #0xc] + mov r0, #0x68 + mla r0, r2, r0, r1 + add r0, r0, #0x54 + add r4, sp, #0 + ldmia r0, {r0, r1, r2, r3} + stmia r4, {r0, r1, r2, r3} + ldr r0, [sp] + cmp r0, #1 + blt _0207dfb4 + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + mov r1, #1 + bl func_ov00_0209cd80 + b _0207dfc0 +_0207dfb4: + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + mov r1, #0 + bl func_ov00_0209cd80 +_0207dfc0: + ldr r0, [r5, #0x144] + bl func_ov00_0209c530 + ldrh r1, [r0, #0xe] + ldr r2, [sp, #0xc] + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + bl func_ov00_0209cd9c + ldr r1, [sp, #4] + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + bl func_ov00_0209cddc + ldr r1, [sp, #8] + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + bl func_ov00_0209cdf8 +_0207dff0: + ldr r0, _0207e054 ; =data_027e0d38 + ldr r0, [r0] + bl func_ov00_02078b40 + cmp r0, #2 + bne _0207e01c + ldr r0, [r5, #0x144] + bl func_ov00_0209c530 + ldr r1, _0207e058 ; =data_027e0e58 + ldrh r2, [r0, #0x10] + ldr r0, [r1] + strh r2, [r0, #0x22] +_0207e01c: + ldr r0, [r5, #0x144] + bl func_ov00_0209c530 + mov r1, r0 + ldr r0, _0207e05c ; =data_027e0f8c + add r1, r1, #0x12 + bl func_ov00_020a3de0 + ldr r0, [r5, #0x144] + bl func_ov00_0209c788 + add sp, sp, #0x10 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207dea0Eb +_0207e044: .word data_027e0f78 +_0207e048: .word data_027e0f88 +_0207e04c: .word data_ov00_020ecde4 +_0207e050: .word data_ov00_020ee0a0 +_0207e054: .word data_027e0d38 +_0207e058: .word data_027e0e58 +_0207e05c: .word data_027e0f8c + + .global _ZN7MapBase8vfunc_b0Eii + arm_func_start _ZN7MapBase8vfunc_b0Eii +_ZN7MapBase8vfunc_b0Eii: ; 0x0207e060 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #0x13c] + mov r4, r2 + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, pc} + bl func_020196fc + ldr r0, [r5, #0x13c] + mov r1, r4 + bl func_020196bc + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN7MapBase8vfunc_b0Eii + + .global _ZN7MapBase18func_ov00_0207e08cEii + arm_func_start _ZN7MapBase18func_ov00_0207e08cEii +_ZN7MapBase18func_ov00_0207e08cEii: ; 0x0207e08c + stmdb sp!, {r3, lr} + ldr r3, [r0, #0x13c] + cmp r3, #0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldr r0, [r3, #8] + adds lr, r3, r0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldrh r0, [lr, #0xa] + add ip, lr, #4 + cmp lr, #0 + ldrh r3, [ip, r0] + add r0, ip, r0 + mla r0, r3, r2, r0 + ldr r0, [r0, #4] + add r3, lr, r0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldr r2, [r3, #0x14] + mov r0, #1 + str r2, [r1] + ldrh r2, [r3, #0x1c] + strh r2, [r1, #4] + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_0207e08cEii + + .global _ZN7MapBase18func_ov00_0207e0f0Ei + arm_func_start _ZN7MapBase18func_ov00_0207e0f0Ei +_ZN7MapBase18func_ov00_0207e0f0Ei: ; 0x0207e0f0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x14 + mov r10, r0 + ldr r2, [r10, #0x13c] + str r1, [sp] + cmp r2, #0 + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldr r0, [r2, #8] + adds r0, r2, r0 + str r0, [sp, #4] + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldrh r1, [r0] + adds r0, r0, r1 + str r0, [sp, #0xc] + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldrb r1, [r0, #1] + mov r0, #0 + str r0, [sp, #8] + cmp r1, #0 + bls _0207e280 + mov r7, r0 +_0207e15c: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0xc] + ldrh r3, [r0, #6] + mov r0, r10 + ldr r2, [r0] + add r3, r1, r3 + ldrh r1, [r3, #2] + ldr r2, [r2, #0xb4] + add r4, r3, r1 + blx r2 + add r0, r0, #0x3c + add r1, r4, r7 + bl func_0201e24c + cmp r0, #0 + beq _0207e260 + ldr r0, [sp, #0xc] + mov r5, #0 + ldrh r2, [r0, #6] + ldrh r1, [r0, r2] + add r0, r0, r2 + add r2, r0, #4 + ldr r0, [sp, #8] + mul r0, r1, r0 + add r11, r2, r0 + ldrb r1, [r11, #2] + ldrh r0, [r2, r0] + cmp r1, #0 + str r0, [sp, #0x10] + ble _0207e260 +_0207e1d0: + ldr r1, [sp, #4] + ldr r0, [sp, #0x10] + ldrb r0, [r1, r0] + add r1, r0, r5 + ldr r0, [sp] + cmp r0, r1 + bne _0207e250 + mov r0, r10 + ldr r1, [r0] + ldr r1, [r1, #0xb4] + blx r1 + add r1, r0, #0x3c + ldrb r9, [r1, #1] + mov r6, #0 + cmp r9, #0 + ble _0207e250 + ldrh r0, [r1, #6] + add r8, r1, r0 +_0207e218: + ldrh r0, [r8, #2] + add r1, r4, r7 + add r0, r8, r0 + add r0, r0, r6, lsl #4 + bl strcmp + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, r6 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + add r0, r6, #1 + mov r0, r0, lsl #0x10 + cmp r9, r0, lsr #16 + mov r6, r0, lsr #0x10 + bgt _0207e218 +_0207e250: + ldrb r0, [r11, #2] + add r5, r5, #1 + cmp r5, r0 + blt _0207e1d0 +_0207e260: + ldr r0, [sp, #0xc] + add r7, r7, #0x10 + ldrb r1, [r0, #1] + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, r1 + blo _0207e15c +_0207e280: + mvn r0, #0 + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + arm_func_end _ZN7MapBase18func_ov00_0207e0f0Ei + + .global _ZN7MapBase18func_ov00_0207e28cEi + arm_func_start _ZN7MapBase18func_ov00_0207e28cEi +_ZN7MapBase18func_ov00_0207e28cEi: ; 0x0207e28c + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x14 + mov r10, r0 + ldr r2, [r10, #0x13c] + str r1, [sp] + cmp r2, #0 + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldr r0, [r2, #8] + adds r0, r2, r0 + str r0, [sp, #4] + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldrh r1, [r0, #2] + adds r0, r0, r1 + str r0, [sp, #0xc] + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldrb r1, [r0, #1] + mov r0, #0 + str r0, [sp, #8] + cmp r1, #0 + bls _0207e438 + mov r7, r0 +_0207e2f8: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0xc] + ldrh r3, [r0, #6] + mov r0, r10 + ldr r2, [r0] + add r3, r1, r3 + ldrh r1, [r3, #2] + ldr r2, [r2, #0xb4] + add r4, r3, r1 + blx r2 + ldrh r2, [r0, #0x34] + add r1, r4, r7 + add r0, r0, r2 + bl func_0201e24c + cmp r0, #0 + beq _0207e418 + ldr r0, [sp, #0xc] + mov r5, #0 + ldrh r2, [r0, #6] + ldrh r1, [r0, r2] + add r0, r0, r2 + add r2, r0, #4 + ldr r0, [sp, #8] + mul r0, r1, r0 + add r11, r2, r0 + ldrb r1, [r11, #2] + ldrh r0, [r2, r0] + cmp r1, #0 + str r0, [sp, #0x10] + ble _0207e418 +_0207e370: + ldr r1, [sp, #4] + ldr r0, [sp, #0x10] + ldrb r0, [r1, r0] + add r1, r0, r5 + ldr r0, [sp] + cmp r0, r1 + bne _0207e408 + mov r0, r10 + ldr r1, [r0] + ldr r1, [r1, #0xb4] + blx r1 + mov r8, r0 + mov r0, r10 + ldr r1, [r0] + ldr r1, [r1, #0xb4] + blx r1 + ldrh r0, [r0, #0x34] + mov r6, #0 + add r1, r8, r0 + ldrb r9, [r1, #1] + cmp r9, #0 + ble _0207e408 + ldrh r0, [r1, #6] + add r8, r1, r0 +_0207e3d0: + ldrh r0, [r8, #2] + add r1, r4, r7 + add r0, r8, r0 + add r0, r0, r6, lsl #4 + bl strcmp + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, r6 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + add r0, r6, #1 + mov r0, r0, lsl #0x10 + cmp r9, r0, lsr #16 + mov r6, r0, lsr #0x10 + bgt _0207e3d0 +_0207e408: + ldrb r0, [r11, #2] + add r5, r5, #1 + cmp r5, r0 + blt _0207e370 +_0207e418: + ldr r0, [sp, #0xc] + add r7, r7, #0x10 + ldrb r1, [r0, #1] + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, r1 + blo _0207e2f8 +_0207e438: + mvn r0, #0 + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + arm_func_end _ZN7MapBase18func_ov00_0207e28cEi + + .global _ZN7MapBase8vfunc_b4Ev + arm_func_start _ZN7MapBase8vfunc_b4Ev +_ZN7MapBase8vfunc_b4Ev: ; 0x0207e444 + stmdb sp!, {r3, lr} + ldr r0, _0207e468 ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldr r0, [r0, #8] + bl func_0201e4cc + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_b4Ev +_0207e468: .word data_ov00_020ec81c + + .global _ZN7MapBase8vfunc_48Ev + arm_func_start _ZN7MapBase8vfunc_48Ev +_ZN7MapBase8vfunc_48Ev: ; 0x0207e46c + stmdb sp!, {r4, lr} + mov r4, r0 + bl _ZN7MapBase16Trigger_vfunc_08Ev + ldr r0, [r4, #0x144] + mov r1, #0 + bl func_ov00_0209c8e4 + ldmia sp!, {r4, pc} + arm_func_end _ZN7MapBase8vfunc_48Ev + + .global _ZN7MapBase8vfunc_50Ev + arm_func_start _ZN7MapBase8vfunc_50Ev +_ZN7MapBase8vfunc_50Ev: ; 0x0207e488 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_50Ev + + .global _ZN7MapBase8vfunc_54Ev + arm_func_start _ZN7MapBase8vfunc_54Ev +_ZN7MapBase8vfunc_54Ev: ; 0x0207e490 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_54Ev + + .global _ZN7MapBase8vfunc_58Ev + arm_func_start _ZN7MapBase8vfunc_58Ev +_ZN7MapBase8vfunc_58Ev: ; 0x0207e498 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_58Ev + + .global _ZN7MapBase8vfunc_5cEv + arm_func_start _ZN7MapBase8vfunc_5cEv +_ZN7MapBase8vfunc_5cEv: ; 0x0207e4a0 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_5cEv + + .global _ZN7MapBase8vfunc_60Ev + arm_func_start _ZN7MapBase8vfunc_60Ev +_ZN7MapBase8vfunc_60Ev: ; 0x0207e4a8 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_60Ev + + .global _ZN7MapBase8vfunc_64Ev + arm_func_start _ZN7MapBase8vfunc_64Ev +_ZN7MapBase8vfunc_64Ev: ; 0x0207e4b0 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_64Ev + + .global _ZN7MapBase8vfunc_68Eii + arm_func_start _ZN7MapBase8vfunc_68Eii +_ZN7MapBase8vfunc_68Eii: ; 0x0207e4b8 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x7c + ldr r3, _0207e92c ; =gMapManager + mov r9, r1 + ldr r1, [r3] + mov r8, r0 + mov r4, r2 + add r0, sp, #8 + mov r2, r9 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + mov r0, r8 + ldr r2, [r0] + add r1, sp, #8 + ldr r2, [r2, #0x54] + blx r2 + cmp r0, #0x1e + bgt _0207e570 + bge _0207e724 + cmp r0, #0x17 + bgt _0207e554 + bge _0207e724 + cmp r0, #9 + bgt _0207e548 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _0207e63c +_0207e520: ; jump table + b _0207e63c ; case 0 + b _0207e724 ; case 1 + b _0207e724 ; case 2 + b _0207e724 ; case 3 + b _0207e724 ; case 4 + b _0207e63c ; case 5 + b _0207e63c ; case 6 + b _0207e63c ; case 7 + b _0207e724 ; case 8 + b _0207e724 ; case 9 +_0207e548: + cmp r0, #0x16 + beq _0207e724 + b _0207e63c +_0207e554: + cmp r0, #0x19 + bgt _0207e564 + beq _0207e724 + b _0207e63c +_0207e564: + cmp r0, #0x1d + beq _0207e724 + b _0207e63c +_0207e570: + cmp r0, #0x35 + bgt _0207e5c8 + bge _0207e5e4 + cmp r0, #0x29 + bgt _0207e5bc + subs r1, r0, #0x1f + addpl pc, pc, r1, lsl #2 + b _0207e63c +_0207e590: ; jump table + b _0207e724 ; case 0 + b _0207e63c ; case 1 + b _0207e63c ; case 2 + b _0207e63c ; case 3 + b _0207e63c ; case 4 + b _0207e63c ; case 5 + b _0207e63c ; case 6 + b _0207e63c ; case 7 + b _0207e724 ; case 8 + b _0207e724 ; case 9 + b _0207e724 ; case 10 +_0207e5bc: + cmp r0, #0x30 + beq _0207e724 + b _0207e63c +_0207e5c8: + cmp r0, #0x40 + bgt _0207e5d8 + beq _0207e724 + b _0207e63c +_0207e5d8: + cmp r0, #0x50 + beq _0207e724 + b _0207e63c +_0207e5e4: + cmp r4, #0 + beq _0207e724 + add r2, sp, #0x14 + mov r0, r8 + mov r1, r9 + bl _ZN7MapBase18func_ov00_0207f104Eii + cmp r0, #0 + ldrne r0, [sp, #0x14] + addne sp, sp, #0x7c + ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + add r2, sp, #0x14 + mov r0, r8 + mov r1, r9 + bl _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi + cmp r0, #0 + beq _0207e724 + ldr r0, [sp, #0x14] + ldr r1, [r9, #4] + cmp r1, r0 + blt _0207e724 + add sp, sp, #0x7c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e63c: + ldrb r0, [r8, #0xe] + cmp r0, #0 + bne _0207e724 + cmp r4, #0 + bne _0207e694 + mov r0, r8 + ldr r3, [r0] + add r1, sp, #8 + ldr r3, [r3, #0x58] + mov r2, #5 + blx r3 + cmp r0, #0 + ldreqb r0, [r8, #8] + cmpeq r0, #0 + bne _0207e724 + mov r0, r8 + ldr r2, [r0] + add r1, sp, #8 + ldr r2, [r2, #0x60] + blx r2 + add sp, sp, #0x7c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e694: + add r2, sp, #0x10 + mov r0, r8 + mov r1, r9 + bl _ZN7MapBase18func_ov00_0207f104Eii + cmp r0, #0 + ldrne r0, [sp, #0x10] + addne sp, sp, #0x7c + ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + add r2, sp, #0x10 + mov r0, r8 + mov r1, r9 + bl _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi + cmp r0, #0 + beq _0207e6e0 + ldr r0, [sp, #0x10] + ldr r1, [r9, #4] + cmp r1, r0 + addge sp, sp, #0x7c + ldmgeia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e6e0: + mov r0, r8 + ldr r3, [r0] + add r1, sp, #8 + ldr r3, [r3, #0x58] + mov r2, #5 + blx r3 + cmp r0, #0 + ldreqb r0, [r8, #8] + cmpeq r0, #0 + bne _0207e724 + mov r0, r8 + ldr r2, [r0] + add r1, sp, #8 + ldr r2, [r2, #0x60] + blx r2 + add sp, sp, #0x7c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e724: + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r0, _0207e930 ; =data_027e0f6c + ldr r3, _0207e934 ; =data_ov00_020ec824 + ldr r0, [r0] + mov r1, r9 + mov r2, #2 + bl func_01fff084 + ldr r4, _0207e938 ; =_ZN7MapBase18func_ov00_0207e968Ev + mov r5, r0 + ldr r3, _0207e93c ; =_ZN7MapBase18func_ov00_0207e96cEv + add r0, sp, #0x48 + mov r1, #3 + mov r2, #0x10 + str r4, [sp] + mov r6, #0x2000 + bl func_0204f614 + mov r7, #0 + sub r0, r7, #0x10000 + add r4, sp, #0x18 + str r7, [sp, #0x24] + str r7, [sp, #0x2c] + str r0, [sp, #0x28] + ldmia r9, {r0, r1, r2} + stmia r4, {r0, r1, r2} + cmp r5, #0 + ble _0207e8a0 + ldr r10, _0207e934 ; =data_ov00_020ec824 + ldr r9, _0207e930 ; =data_027e0f6c + mov r11, #0x4c +_0207e7a4: + mov r0, r7, lsl #0x1 + ldrh r1, [r10, r0] + ldr r2, [r9] + add r0, sp, #0x30 + ldr r3, [r2, #0x20] + mul r2, r1, r11 + add ip, r3, r2 + ldrh lr, [r3, r2] + ldrh r3, [ip, #2] + mov r1, r4 + add r2, sp, #0x24 + strh r3, [sp, #0x32] + strh lr, [sp, #0x30] + ldrh lr, [ip, #4] + add r3, sp, #0xc + strh lr, [sp, #0x34] + ldrh lr, [ip, #6] + strh lr, [sp, #0x36] + ldr lr, [ip, #8] + str lr, [sp, #0x38] + ldr lr, [ip, #0xc] + str lr, [sp, #0x3c] + ldr lr, [ip, #0x10] + str lr, [sp, #0x40] + ldr lr, [ip, #0x14] + str lr, [sp, #0x44] + ldr lr, [ip, #0x18] + str lr, [sp, #0x48] + ldr lr, [ip, #0x1c] + str lr, [sp, #0x4c] + ldr lr, [ip, #0x20] + str lr, [sp, #0x50] + ldr lr, [ip, #0x24] + str lr, [sp, #0x54] + ldr lr, [ip, #0x28] + str lr, [sp, #0x58] + ldr lr, [ip, #0x2c] + str lr, [sp, #0x5c] + ldr lr, [ip, #0x30] + str lr, [sp, #0x60] + ldr lr, [ip, #0x34] + str lr, [sp, #0x64] + ldr lr, [ip, #0x38] + str lr, [sp, #0x68] + ldr lr, [ip, #0x3c] + str lr, [sp, #0x6c] + ldr lr, [ip, #0x40] + str lr, [sp, #0x70] + ldr lr, [ip, #0x44] + str lr, [sp, #0x74] + ldr ip, [ip, #0x48] + str ip, [sp, #0x78] + bl func_01ffe904 + cmp r0, #0 + beq _0207e88c + ldr r0, [sp, #0xc] + cmp r0, r6 + movlt r6, r0 +_0207e88c: + add r0, r7, #1 + mov r0, r0, lsl #0x10 + cmp r5, r0, lsr #16 + mov r7, r0, lsr #0x10 + bgt _0207e7a4 +_0207e8a0: + cmp r6, #0x1000 + bgt _0207e8f4 + mvn r1, #0 + mov r0, r1, lsl #0x10 + umull r3, r2, r6, r0 + mla r2, r6, r1, r2 + mov r1, r6, asr #0x1f + mla r2, r1, r0, r2 + adds r3, r3, #0x800 + adc r1, r2, #0 + mov r4, r3, lsr #0xc + orr r4, r4, r1, lsl #20 + ldr r3, _0207e938 ; =_ZN7MapBase18func_ov00_0207e968Ev + ldr r5, [sp, #0x1c] + add r0, sp, #0x48 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + add sp, sp, #0x7c + add r0, r5, r4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e8f4: + mov r0, r8 + ldr r2, [r0] + add r1, sp, #8 + ldr r2, [r2, #0x60] + blx r2 + mov r4, r0 + ldr r3, _0207e938 ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, sp, #0x48 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + mov r0, r4 + add sp, sp, #0x7c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_68Eii +_0207e92c: .word gMapManager +_0207e930: .word data_027e0f6c +_0207e934: .word data_ov00_020ec824 +_0207e938: .word _ZN7MapBase18func_ov00_0207e968Ev +_0207e93c: .word _ZN7MapBase18func_ov00_0207e96cEv + + .global _ZN7MapBase18func_ov00_0207e940EPc + arm_func_start _ZN7MapBase18func_ov00_0207e940EPc +_ZN7MapBase18func_ov00_0207e940EPc: ; 0x0207e940 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r3, _0207e964 ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, r4, #0x18 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + mov r0, r4 + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207e940EPc +_0207e964: .word _ZN7MapBase18func_ov00_0207e968Ev + + .global _ZN7MapBase18func_ov00_0207e968Ev + arm_func_start _ZN7MapBase18func_ov00_0207e968Ev +_ZN7MapBase18func_ov00_0207e968Ev: ; 0x0207e968 + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207e968Ev + + .global _ZN7MapBase18func_ov00_0207e96cEv + arm_func_start _ZN7MapBase18func_ov00_0207e96cEv +_ZN7MapBase18func_ov00_0207e96cEv: ; 0x0207e96c + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207e96cEv + + .global _ZN7MapBase8vfunc_6cEiii + arm_func_start _ZN7MapBase8vfunc_6cEiii +_ZN7MapBase8vfunc_6cEiii: ; 0x0207e970 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0xc4 + ldr r4, _0207ee00 ; =gMapManager + mov r9, r1 + ldr r1, [r4] + mov r8, r0 + str r2, [sp, #8] + add r0, sp, #0xc + mov r2, r9 + mov r7, r3 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + mov r0, r8 + ldr r2, [r0] + add r1, sp, #0xc + ldr r2, [r2, #0x54] + blx r2 + cmp r0, #0x1e + bgt _0207ea2c + bge _0207eb04 + cmp r0, #0x17 + bgt _0207ea10 + bge _0207eb04 + cmp r0, #9 + bgt _0207ea04 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _0207ea9c +_0207e9dc: ; jump table + b _0207ea9c ; case 0 + b _0207eb04 ; case 1 + b _0207eb04 ; case 2 + b _0207eb04 ; case 3 + b _0207eb04 ; case 4 + b _0207ea9c ; case 5 + b _0207ea9c ; case 6 + b _0207ea9c ; case 7 + b _0207eb04 ; case 8 + b _0207eb04 ; case 9 +_0207ea04: + cmp r0, #0x16 + beq _0207eb04 + b _0207ea9c +_0207ea10: + cmp r0, #0x19 + bgt _0207ea20 + beq _0207eb04 + b _0207ea9c +_0207ea20: + cmp r0, #0x1d + beq _0207eb04 + b _0207ea9c +_0207ea2c: + cmp r0, #0x35 + bgt _0207ea84 + bge _0207eb04 + cmp r0, #0x29 + bgt _0207ea78 + subs r1, r0, #0x1f + addpl pc, pc, r1, lsl #2 + b _0207ea9c +_0207ea4c: ; jump table + b _0207eb04 ; case 0 + b _0207ea9c ; case 1 + b _0207ea9c ; case 2 + b _0207ea9c ; case 3 + b _0207ea9c ; case 4 + b _0207ea9c ; case 5 + b _0207ea9c ; case 6 + b _0207ea9c ; case 7 + b _0207eb04 ; case 8 + b _0207eb04 ; case 9 + b _0207eb04 ; case 10 +_0207ea78: + cmp r0, #0x30 + beq _0207eb04 + b _0207ea9c +_0207ea84: + cmp r0, #0x40 + bgt _0207ea94 + beq _0207eb04 + b _0207ea9c +_0207ea94: + cmp r0, #0x50 + beq _0207eb04 +_0207ea9c: + ldrb r0, [r8, #0xe] + cmp r0, #0 + bne _0207eb04 + mov r0, r8 + ldr r3, [r0] + add r1, sp, #0xc + ldr r3, [r3, #0x58] + mov r2, #5 + blx r3 + cmp r0, #0 + ldreqb r0, [r8, #8] + cmpeq r0, #0 + bne _0207eb04 + mov r0, r8 + ldr r2, [r0] + add r1, sp, #0xc + ldr r2, [r2, #0x60] + blx r2 + ldr r1, [sp, #8] + add sp, sp, #0xc4 + str r0, [r1] + mov r1, #0 + str r1, [r7] + mov r0, #0x1000 + stmib r7, {r0, r1} + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207eb04: + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r0, _0207ee04 ; =data_027e0f6c + ldr r3, _0207ee08 ; =data_ov00_020ec864 + ldr r0, [r0] + mov r1, r9 + mov r2, #2 + bl func_01fff084 + ldr r5, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev + mov r4, r0 + str r5, [sp] + ldr r3, _0207ee10 ; =_ZN7MapBase18func_ov00_0207e96cEv + add r0, sp, #0x90 + mov r1, #3 + mov r2, #0x10 + mov r5, #0x2000 + bl func_0204f614 + ldr r1, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev + ldr r3, _0207ee10 ; =_ZN7MapBase18func_ov00_0207e96cEv + str r1, [sp] + add r0, sp, #0x44 + mov r1, #3 + mov r2, #0x10 + bl func_0204f614 + mov r6, #0 + sub r0, r6, #0x10000 + str r6, [sp, #0x20] + str r6, [sp, #0x28] + str r0, [sp, #0x24] + add r3, sp, #0x14 + ldmia r9, {r0, r1, r2} + cmp r4, #0 + stmia r3, {r0, r1, r2} + ble _0207ed48 + ldr r10, _0207ee08 ; =data_ov00_020ec864 + ldr r9, _0207ee04 ; =data_027e0f6c + mov r11, #0x4c +_0207eba0: + mov r0, r6, lsl #0x1 + ldrh r1, [r10, r0] + ldr r2, [r9] + add r0, sp, #0x78 + ldr r3, [r2, #0x20] + mul r2, r1, r11 + add ip, r3, r2 + ldrh lr, [r3, r2] + ldrh r3, [ip, #2] + add r1, sp, #0x14 + add r2, sp, #0x20 + strh r3, [sp, #0x7a] + strh lr, [sp, #0x78] + ldrh lr, [ip, #4] + add r3, sp, #0x10 + strh lr, [sp, #0x7c] + ldrh lr, [ip, #6] + strh lr, [sp, #0x7e] + ldr lr, [ip, #8] + str lr, [sp, #0x80] + ldr lr, [ip, #0xc] + str lr, [sp, #0x84] + ldr lr, [ip, #0x10] + str lr, [sp, #0x88] + ldr lr, [ip, #0x14] + str lr, [sp, #0x8c] + ldr lr, [ip, #0x18] + str lr, [sp, #0x90] + ldr lr, [ip, #0x1c] + str lr, [sp, #0x94] + ldr lr, [ip, #0x20] + str lr, [sp, #0x98] + ldr lr, [ip, #0x24] + str lr, [sp, #0x9c] + ldr lr, [ip, #0x28] + str lr, [sp, #0xa0] + ldr lr, [ip, #0x2c] + str lr, [sp, #0xa4] + ldr lr, [ip, #0x30] + str lr, [sp, #0xa8] + ldr lr, [ip, #0x34] + str lr, [sp, #0xac] + ldr lr, [ip, #0x38] + str lr, [sp, #0xb0] + ldr lr, [ip, #0x3c] + str lr, [sp, #0xb4] + ldr lr, [ip, #0x40] + str lr, [sp, #0xb8] + ldr lr, [ip, #0x44] + str lr, [sp, #0xbc] + ldr ip, [ip, #0x48] + str ip, [sp, #0xc0] + bl func_01ffe904 + cmp r0, #0 + beq _0207ed34 + ldr r1, [sp, #0x10] + cmp r1, r5 + bge _0207ed34 + ldrh r0, [sp, #0x78] + mov r5, r1 + ldrh r1, [sp, #0x7a] + strh r0, [sp, #0x2c] + ldrh r0, [sp, #0x7c] + strh r1, [sp, #0x2e] + ldrh r1, [sp, #0x7e] + strh r0, [sp, #0x30] + ldr r0, [sp, #0x80] + strh r1, [sp, #0x32] + str r0, [sp, #0x34] + ldr r1, [sp, #0x84] + ldr r0, [sp, #0x88] + str r1, [sp, #0x38] + str r0, [sp, #0x3c] + ldr r1, [sp, #0x8c] + ldr r0, [sp, #0x90] + str r1, [sp, #0x40] + str r0, [sp, #0x44] + ldr r1, [sp, #0x94] + ldr r0, [sp, #0x98] + str r1, [sp, #0x48] + str r0, [sp, #0x4c] + ldr r1, [sp, #0x9c] + ldr r0, [sp, #0xa0] + str r1, [sp, #0x50] + str r0, [sp, #0x54] + ldr r1, [sp, #0xa4] + ldr r0, [sp, #0xa8] + str r1, [sp, #0x58] + str r0, [sp, #0x5c] + ldr r1, [sp, #0xac] + ldr r0, [sp, #0xb0] + str r1, [sp, #0x60] + str r0, [sp, #0x64] + ldr r1, [sp, #0xb4] + ldr r0, [sp, #0xb8] + str r1, [sp, #0x68] + str r0, [sp, #0x6c] + ldr r1, [sp, #0xbc] + ldr r0, [sp, #0xc0] + str r1, [sp, #0x70] + str r0, [sp, #0x74] +_0207ed34: + add r0, r6, #1 + mov r0, r0, lsl #0x10 + cmp r4, r0, lsr #16 + mov r6, r0, lsr #0x10 + bgt _0207eba0 +_0207ed48: + cmp r5, #0x1000 + bgt _0207eda4 + mvn r1, #0 + mov r0, r1, lsl #0x10 + umull r3, r2, r5, r0 + mla r2, r5, r1, r2 + ldr r4, [sp, #0x34] + mov r1, r5, asr #0x1f + str r4, [r7] + ldr r4, [sp, #0x38] + mla r2, r1, r0, r2 + str r4, [r7, #4] + ldr r1, [sp, #0x3c] + adds r3, r3, #0x800 + str r1, [r7, #8] + adc r0, r2, #0 + mov r1, r3, lsr #0xc + orr r1, r1, r0, lsl #20 + ldr r2, [sp, #0x18] + ldr r0, [sp, #8] + add r1, r2, r1 + str r1, [r0] + b _0207edd0 +_0207eda4: + mov r0, r8 + ldr r2, [r0] + add r1, sp, #0xc + ldr r2, [r2, #0x60] + blx r2 + ldr r1, [sp, #8] + str r0, [r1] + mov r1, #0 + str r1, [r7] + mov r0, #0x1000 + stmib r7, {r0, r1} +_0207edd0: + ldr r3, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, sp, #0x44 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + ldr r3, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, sp, #0x90 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + add sp, sp, #0xc4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_6cEiii +_0207ee00: .word gMapManager +_0207ee04: .word data_027e0f6c +_0207ee08: .word data_ov00_020ec864 +_0207ee0c: .word _ZN7MapBase18func_ov00_0207e968Ev +_0207ee10: .word _ZN7MapBase18func_ov00_0207e96cEv + + .global _ZN7MapBase8vfunc_70EP5Vec3p + arm_func_start _ZN7MapBase8vfunc_70EP5Vec3p +_ZN7MapBase8vfunc_70EP5Vec3p: ; 0x0207ee14 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x74 + ldr r0, _0207efdc ; =gMapManager + mov r9, r1 + ldr r1, [r0] + add r0, sp, #8 + mov r2, r9 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r0, _0207efe0 ; =data_027e0f6c + ldr r3, _0207efe4 ; =data_ov00_020ec8a4 + ldr r0, [r0] + mov r1, r9 + mov r2, #2 + bl func_01fff084 + ldr r1, _0207efe8 ; =_ZN7MapBase18func_ov00_0207e968Ev + mov r5, r0 + str r1, [sp] + ldr r3, _0207efec ; =_ZN7MapBase18func_ov00_0207e96cEv + add r0, sp, #0x40 + mov r1, #3 + mov r2, #0x10 + mov r6, #0x2000 + ldr r7, _0207eff0 ; =0x0000ffff + bl func_0204f614 + mov r8, #0 + sub r0, r8, #0x10000 + str r8, [sp, #0x1c] + str r8, [sp, #0x24] + str r0, [sp, #0x20] + add r4, sp, #0x10 + ldmia r9, {r0, r1, r2} + cmp r5, #0 + stmia r4, {r0, r1, r2} + ble _0207efbc + ldr r10, _0207efe4 ; =data_ov00_020ec8a4 + ldr r9, _0207efe0 ; =data_027e0f6c + mov r11, #0x4c +_0207eeb8: + mov r0, r8, lsl #0x1 + ldrh r1, [r10, r0] + ldr r2, [r9] + add r0, sp, #0x28 + ldr r3, [r2, #0x20] + mul r2, r1, r11 + add ip, r3, r2 + ldrh lr, [r3, r2] + ldrh r3, [ip, #2] + mov r1, r4 + add r2, sp, #0x1c + strh r3, [sp, #0x2a] + strh lr, [sp, #0x28] + ldrh lr, [ip, #4] + add r3, sp, #0xc + strh lr, [sp, #0x2c] + ldrh lr, [ip, #6] + strh lr, [sp, #0x2e] + ldr lr, [ip, #8] + str lr, [sp, #0x30] + ldr lr, [ip, #0xc] + str lr, [sp, #0x34] + ldr lr, [ip, #0x10] + str lr, [sp, #0x38] + ldr lr, [ip, #0x14] + str lr, [sp, #0x3c] + ldr lr, [ip, #0x18] + str lr, [sp, #0x40] + ldr lr, [ip, #0x1c] + str lr, [sp, #0x44] + ldr lr, [ip, #0x20] + str lr, [sp, #0x48] + ldr lr, [ip, #0x24] + str lr, [sp, #0x4c] + ldr lr, [ip, #0x28] + str lr, [sp, #0x50] + ldr lr, [ip, #0x2c] + str lr, [sp, #0x54] + ldr lr, [ip, #0x30] + str lr, [sp, #0x58] + ldr lr, [ip, #0x34] + str lr, [sp, #0x5c] + ldr lr, [ip, #0x38] + str lr, [sp, #0x60] + ldr lr, [ip, #0x3c] + str lr, [sp, #0x64] + ldr lr, [ip, #0x40] + str lr, [sp, #0x68] + ldr lr, [ip, #0x44] + str lr, [sp, #0x6c] + ldr ip, [ip, #0x48] + str ip, [sp, #0x70] + bl func_01ffe904 + cmp r0, #0 + beq _0207efa8 + ldr r1, [sp, #0xc] + cmp r1, r6 + movlt r0, r8, lsl #0x1 + ldrlth r7, [r10, r0] + movlt r6, r1 +_0207efa8: + add r0, r8, #1 + mov r0, r0, lsl #0x10 + cmp r5, r0, lsr #16 + mov r8, r0, lsr #0x10 + bgt _0207eeb8 +_0207efbc: + ldr r3, _0207efe8 ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, sp, #0x40 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + mov r0, r7 + add sp, sp, #0x74 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_70EP5Vec3p +_0207efdc: .word gMapManager +_0207efe0: .word data_027e0f6c +_0207efe4: .word data_ov00_020ec8a4 +_0207efe8: .word _ZN7MapBase18func_ov00_0207e968Ev +_0207efec: .word _ZN7MapBase18func_ov00_0207e96cEv +_0207eff0: .word 0x0000ffff + + .global _ZN7MapBase8vfunc_74EP5Vec3p + arm_func_start _ZN7MapBase8vfunc_74EP5Vec3p +_ZN7MapBase8vfunc_74EP5Vec3p: ; 0x0207eff4 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #0x24 + ldr r0, _0207f0f4 ; =gMapManager + mov r8, r1 + ldr r1, [r0] + add r0, sp, #8 + mov r2, r8 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + add r4, sp, #0xc + ldmia r8, {r0, r1, r2} + stmia r4, {r0, r1, r2} + add r3, sp, #0x18 + ldmia r8, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r4 + mov r1, #0x800 + bl func_ov00_0208ee00 + mov r0, #0x20 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _0207f0f8 ; =data_027e0f6c + ldr r3, _0207f0fc ; =data_ov00_020ec8e4 + ldr r0, [r0] + mov r1, r4 + mov r2, #8 + bl func_01fff264 + mov r5, r0 + cmp r5, #0 + mov r6, #0 + ble _0207f0e8 + ldr r4, _0207f0fc ; =data_ov00_020ec8e4 + ldr r9, _0207f0f8 ; =data_027e0f6c +_0207f078: + mov r0, r6, lsl #0x1 + ldr r1, [r9] + ldrh r0, [r4, r0] + ldr r1, [r1, #0x40] + ldr r7, [r1, r0, lsl #2] + cmp r7, #0 + ldrneb r0, [r7, #4] + cmpne r0, #0 + ldrneb r0, [r7, #5] + cmpne r0, #0 + beq _0207f0dc + ldr r0, [r7, #0xc] + ands r0, r0, #0x1f + cmpne r0, #1 + cmpne r0, #2 + beq _0207f0dc + mov r0, r7 + ldr r2, [r0] + mov r1, r8 + ldr r2, [r2, #0x48] + blx r2 + cmp r0, #0 + addne sp, sp, #0x24 + movne r0, r7 + ldmneia sp!, {r4, r5, r6, r7, r8, r9, pc} +_0207f0dc: + add r6, r6, #1 + cmp r6, r5 + blt _0207f078 +_0207f0e8: + mov r0, #0 + add sp, sp, #0x24 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_74EP5Vec3p +_0207f0f4: .word gMapManager +_0207f0f8: .word data_027e0f6c +_0207f0fc: .word data_ov00_020ec8e4 + + .global _ZN7MapBase18func_ov00_0207f100Ev + arm_func_start _ZN7MapBase18func_ov00_0207f100Ev +_ZN7MapBase18func_ov00_0207f100Ev: ; 0x0207f100 + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f100Ev + + .global _ZN7MapBase18func_ov00_0207f104Eii + arm_func_start _ZN7MapBase18func_ov00_0207f104Eii +_ZN7MapBase18func_ov00_0207f104Eii: ; 0x0207f104 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + ldr r3, _0207f1f0 ; =gMapManager + mov r5, r1 + ldr r1, [r3] + mov r6, r0 + mov r4, r2 + add r0, sp, #0 + mov r2, r5 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + mov r0, r6 + ldr r2, [r0] + add r1, sp, #0 + ldr r2, [r2, #0x78] + blx r2 + movs r7, r0 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + ldr r1, [r0] + ldr r1, [r1, #0x58] + blx r1 + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + mov r0, r7 + ldr r1, [r0] + ldr r1, [r1, #0x54] + blx r1 + cmp r0, #0 + moveq r0, #0 + ldrneb r0, [r0, #5] + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + mov r0, r7 + mov r1, r5 + bl func_ov00_0208b79c + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + mov r0, r7 + ldr r1, [r0] + ldr r1, [r1, #0x54] + blx r1 + cmp r0, #0 + moveq r5, #0 + beq _0207f1cc + ldr r1, [r0] + ldr r1, [r1, #0x44] + blx r1 + mov r5, r0 +_0207f1cc: + mov r0, r6 + ldr r2, [r0] + add r1, sp, #0 + ldr r2, [r2, #0x60] + blx r2 + add r0, r0, r5 + str r0, [r4] + mov r0, #1 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207f104Eii +_0207f1f0: .word gMapManager + + .global _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi + arm_func_start _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi +_ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi: ; 0x0207f1f4 + stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, lr} + sub sp, sp, #0x3c + ldr r0, _0207f318 ; =gMapManager + mov r9, r1 + ldr r1, [r0] + mov r8, r2 + add r0, sp, #8 + mov r2, r9 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + add r4, sp, #0x24 + ldmia r9, {r0, r1, r2} + stmia r4, {r0, r1, r2} + add r3, sp, #0x30 + ldmia r9, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r4 + mov r1, #0x800 + bl func_ov00_0208ee00 + mov r0, #0x20 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _0207f31c ; =data_027e0f6c + ldr r3, _0207f320 ; =data_ov00_020ec924 + ldr r0, [r0] + mov r1, r4 + mov r2, #8 + bl func_01fff264 + mov r5, r0 + cmp r5, #0 + mov r6, #0 + ble _0207f30c + ldr r4, _0207f320 ; =data_ov00_020ec924 + ldr r10, _0207f31c ; =data_027e0f6c +_0207f27c: + mov r0, r6, lsl #0x1 + ldr r1, [r10] + ldrh r0, [r4, r0] + ldr r1, [r1, #0x40] + ldr r7, [r1, r0, lsl #2] + cmp r7, #0 + ldrneb r0, [r7, #4] + cmpne r0, #0 + ldrneb r0, [r7, #5] + cmpne r0, #0 + beq _0207f300 + ldr r0, [r7, #0xc] + ands r0, r0, #0x1f + cmpne r0, #1 + cmpne r0, #2 + beq _0207f300 + mov r0, r7 + ldr r2, [r0] + mov r1, r9 + ldr r2, [r2, #0x48] + blx r2 + cmp r0, #0 + beq _0207f300 + mov r0, r7 + ldr r2, [r0] + add r1, sp, #0xc + ldr r2, [r2, #0x2c] + blx r2 + ldr r1, [sp, #0x1c] + add sp, sp, #0x3c + mov r0, #1 + str r1, [r8] + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} +_0207f300: + add r6, r6, #1 + cmp r6, r5 + blt _0207f27c +_0207f30c: + mov r0, #0 + add sp, sp, #0x3c + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi +_0207f318: .word gMapManager +_0207f31c: .word data_027e0f6c +_0207f320: .word data_ov00_020ec924 + + .global _ZN7MapBase8vfunc_88Ev + arm_func_start _ZN7MapBase8vfunc_88Ev +_ZN7MapBase8vfunc_88Ev: ; 0x0207f324 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_88Ev + + .global _ZN7MapBase8vfunc_8cEv + arm_func_start _ZN7MapBase8vfunc_8cEv +_ZN7MapBase8vfunc_8cEv: ; 0x0207f32c + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_8cEv + + .global _ZN7MapBase8vfunc_9cEv + arm_func_start _ZN7MapBase8vfunc_9cEv +_ZN7MapBase8vfunc_9cEv: ; 0x0207f334 + bx lr + arm_func_end _ZN7MapBase8vfunc_9cEv + + .global _ZN7MapBase8vfunc_a0Ev + arm_func_start _ZN7MapBase8vfunc_a0Ev +_ZN7MapBase8vfunc_a0Ev: ; 0x0207f338 + bx lr + arm_func_end _ZN7MapBase8vfunc_a0Ev + + .global _ZN7MapBase8vfunc_a4Ev + arm_func_start _ZN7MapBase8vfunc_a4Ev +_ZN7MapBase8vfunc_a4Ev: ; 0x0207f33c + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_a4Ev + + .global _ZN7MapBase8vfunc_a8Ev + arm_func_start _ZN7MapBase8vfunc_a8Ev +_ZN7MapBase8vfunc_a8Ev: ; 0x0207f344 + bx lr + arm_func_end _ZN7MapBase8vfunc_a8Ev + + .global _ZN7MapBase8vfunc_acEv + arm_func_start _ZN7MapBase8vfunc_acEv +_ZN7MapBase8vfunc_acEv: ; 0x0207f348 + bx lr + arm_func_end _ZN7MapBase8vfunc_acEv + + .global _ZN7MapBase8vfunc_78Ev + arm_func_start _ZN7MapBase8vfunc_78Ev +_ZN7MapBase8vfunc_78Ev: ; 0x0207f34c + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_78Ev + + .global _ZN7MapBase8vfunc_7cEv + arm_func_start _ZN7MapBase8vfunc_7cEv +_ZN7MapBase8vfunc_7cEv: ; 0x0207f354 + mov r0, #1 + bx lr + arm_func_end _ZN7MapBase8vfunc_7cEv + + .global _ZN7MapBase8vfunc_80Ev + arm_func_start _ZN7MapBase8vfunc_80Ev +_ZN7MapBase8vfunc_80Ev: ; 0x0207f35c + mov r0, #1 + bx lr + arm_func_end _ZN7MapBase8vfunc_80Ev + + .global _ZN7MapBase8vfunc_84Ei + arm_func_start _ZN7MapBase8vfunc_84Ei +_ZN7MapBase8vfunc_84Ei: ; 0x0207f364 + stmdb sp!, {r3, lr} + ldrb r3, [r1, #0x15] + ldrb r2, [r1, #0x14] + add r1, sp, #0 + strb r3, [sp, #1] + strb r2, [sp] + ldr r2, [r0] + ldr r2, [r2, #0x80] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase8vfunc_84Ei + + .global _ZN7MapBase18func_ov00_0207f38cEi + arm_func_start _ZN7MapBase18func_ov00_0207f38cEi +_ZN7MapBase18func_ov00_0207f38cEi: ; 0x0207f38c + stmdb sp!, {r4, lr} + ldr r2, [r0] + mov r4, r1 + ldr r2, [r2, #0x84] + blx r2 + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + ldr r0, _0207f3c0 ; =data_027e0f68 + mov r1, r4 + ldr r0, [r0] + bl func_ov00_0208d820 + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207f38cEi +_0207f3c0: .word data_027e0f68 + + .global _ZN7MapBase8vfunc_90Eiii + arm_func_start _ZN7MapBase8vfunc_90Eiii +_ZN7MapBase8vfunc_90Eiii: ; 0x0207f3c4 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + ldr r3, [r0] + mov r6, r0 + ldr r3, [r3, #0x54] + mov r5, r1 + mov r4, r2 + blx r3 + mov r7, r0 + cmp r7, r4 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + mov r0, r6 + ldr r3, [r0] + mov r1, r5 + ldr r3, [r3, #0xbc] + mov r2, r4 + blx r3 + mov r0, r6 + ldr r2, [r0] + mov r1, r5 + ldr r2, [r2, #0x5c] + blx r2 + mov r1, r0 + cmp r4, #0x14 + bne _0207f448 + mov r0, r6 + ldr r3, [r0] + sub r1, r1, #3 + mov r2, r1, lsl #0x18 + ldr r3, [r3, #0xc0] + mov r1, r5 + mov r2, r2, asr #0x18 + blx r3 + b _0207f470 +_0207f448: + cmp r7, #0x14 + bne _0207f470 + mov r0, r6 + ldr r3, [r0] + add r1, r1, #3 + mov r2, r1, lsl #0x18 + ldr r3, [r3, #0xc0] + mov r1, r5 + mov r2, r2, asr #0x18 + blx r3 +_0207f470: + mov r0, r6 + ldr r2, [r0] + mov r1, r5 + ldr r2, [r2, #0x78] + blx r2 + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0x44] + blx r2 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN7MapBase8vfunc_90Eiii + + .global _ZN7MapBase8vfunc_94Ev + arm_func_start _ZN7MapBase8vfunc_94Ev +_ZN7MapBase8vfunc_94Ev: ; 0x0207f4a0 + bx lr + arm_func_end _ZN7MapBase8vfunc_94Ev + + .global _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si + arm_func_start _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si +_ZN7MapBase18func_ov00_0207f4a4EP5Vec2si: ; 0x0207f4a4 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + ldrsh r3, [r1, #2] + ldrsh r4, [r1] + add r3, r3, r3, lsr #31 + add ip, r4, r4, lsr #31 + mov r4, r3, asr #0x1 + mov r3, ip, asr #0x1 + strb r3, [sp] + strb r4, [sp, #1] + ldrsh r4, [r1] + ldrsh ip, [r1, #2] + mov r3, r4, lsr #0x1f + mov lr, ip, lsr #0x1f + rsb r1, r3, r4, lsl #31 + rsb ip, lr, ip, lsl #31 + adds r1, r3, r1, ror #31 + add r3, lr, ip, ror #31 + cmpeq r3, #0 + moveq r2, #0 + beq _0207f524 + cmp r1, #1 + cmpeq r3, #0 + moveq r2, #1 + beq _0207f524 + cmp r1, #1 + cmpeq r3, #1 + moveq r2, #3 + beq _0207f524 + cmp r1, #0 + cmpeq r3, #1 + moveq r2, #2 +_0207f524: + ldr r3, [r0] + add r1, sp, #0 + ldr r3, [r3, #0x58] + blx r3 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si + + .global _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p + arm_func_start _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p +_ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p: ; 0x0207f53c + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r0, #0 + strh r0, [r5] + mov r4, r2 + strh r0, [r5, #2] + ldr r0, [r4] + mov r1, #0x800 + bl Divide + add r0, r0, #0x800 + mov r0, r0, asr #0xc + strh r0, [r5] + ldr r0, [r4, #8] + mov r1, #0x800 + bl Divide + add r0, r0, #0x800 + mov r0, r0, asr #0xc + strh r0, [r5, #2] + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p + + .global _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi + arm_func_start _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi +_ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi: ; 0x0207f588 + mov r1, #0 + strh r1, [r0] + strh r1, [r0, #2] + cmp r3, #3 + addls pc, pc, r3, lsl #2 + bx lr +_0207f5a0: ; jump table + b _0207f5b0 ; case 0 + b _0207f5cc ; case 1 + b _0207f5ec ; case 2 + b _0207f60c ; case 3 +_0207f5b0: + ldrb r1, [r2] + mov r1, r1, lsl #0x1 + strh r1, [r0] + ldrb r1, [r2, #1] + mov r1, r1, lsl #0x1 + strh r1, [r0, #2] + bx lr +_0207f5cc: + ldrb r1, [r2] + mov r1, r1, lsl #0x1 + add r1, r1, #1 + strh r1, [r0] + ldrb r1, [r2, #1] + mov r1, r1, lsl #0x1 + strh r1, [r0, #2] + bx lr +_0207f5ec: + ldrb r1, [r2] + mov r1, r1, lsl #0x1 + strh r1, [r0] + ldrb r1, [r2, #1] + mov r1, r1, lsl #0x1 + add r1, r1, #1 + strh r1, [r0, #2] + bx lr +_0207f60c: + ldrb r1, [r2] + mov r1, r1, lsl #0x1 + add r1, r1, #1 + strh r1, [r0] + ldrb r1, [r2, #1] + mov r1, r1, lsl #0x1 + add r1, r1, #1 + strh r1, [r0, #2] + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi + + .global _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p + arm_func_start _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p +_ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p: ; 0x0207f630 + stmdb sp!, {r4, lr} + ldrsh r3, [r1, #2] + ldrsh r1, [r1] + mov r0, #0x800 + mov lr, r3, lsl #0xc + mov ip, lr, asr #0x1f + mov r3, r1, lsl #0xc + mov ip, ip, lsl #0xb + mov r1, r3, asr #0x1f + mov r1, r1, lsl #0xb + adds r4, r0, lr, lsl #11 + orr ip, ip, lr, lsr #21 + adc lr, ip, #0 + adds ip, r0, r3, lsl #11 + orr r1, r1, r3, lsr #21 + mov r3, r4, lsr #0xc + adc r0, r1, #0 + mov r1, ip, lsr #0xc + orr r1, r1, r0, lsl #20 + str r1, [r2] + mov r0, #0 + str r0, [r2, #4] + orr r3, r3, lr, lsl #20 + str r3, [r2, #8] + ldmia sp!, {r4, pc} + arm_func_end _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p + + .global _ZN7MapBase13GetTileStartXEi + arm_func_start _ZN7MapBase13GetTileStartXEi +_ZN7MapBase13GetTileStartXEi: ; 0x0207f694 + ldr r0, [r0, #0xf4] + add r0, r0, r1, lsl #12 + bx lr + arm_func_end _ZN7MapBase13GetTileStartXEi + + .global _ZN7MapBase13GetTileStartZEi + arm_func_start _ZN7MapBase13GetTileStartZEi +_ZN7MapBase13GetTileStartZEi: ; 0x0207f6a0 + ldr r0, [r0, #0xfc] + add r0, r0, r1, lsl #12 + bx lr + arm_func_end _ZN7MapBase13GetTileStartZEi + + .global _ZN7MapBase11GetTileEndXEi + arm_func_start _ZN7MapBase11GetTileEndXEi +_ZN7MapBase11GetTileEndXEi: ; 0x0207f6ac + stmdb sp!, {r3, lr} + bl _ZN7MapBase13GetTileStartXEi + add r0, r0, #0x1000 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase11GetTileEndXEi + + .global _ZN7MapBase11GetTileEndZEi + arm_func_start _ZN7MapBase11GetTileEndZEi +_ZN7MapBase11GetTileEndZEi: ; 0x0207f6bc + stmdb sp!, {r3, lr} + bl _ZN7MapBase13GetTileStartZEi + add r0, r0, #0x1000 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase11GetTileEndZEi + + .global _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB + arm_func_start _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB +_ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB: ; 0x0207f6cc + stmdb sp!, {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x18 + mov r7, r1 + ldrb r1, [r7] + mov r6, r0 + mov r5, r2 + bl _ZN7MapBase13GetTileStartXEi + ldrb r1, [r7, #1] + mov r0, r6 + bl _ZN7MapBase13GetTileStartZEi + mov r4, r0 + ldrb r1, [r7] + mov r0, r6 + bl _ZN7MapBase13GetTileStartXEi + ldr r2, _0207f774 ; =0xffffeccd + str r0, [sp, #0xc] + ldrb r1, [r7, #1] + mov r0, r6 + str r2, [sp, #0x10] + str r4, [sp, #0x14] + bl _ZN7MapBase11GetTileEndZEi + mov r4, r0 + mov r0, r6 + mov r1, r7 + ldr r2, [r0] + ldr r2, [r2, #0x60] + blx r2 + ldrb r1, [r7] + mov r7, r0 + mov r0, r6 + bl _ZN7MapBase11GetTileEndXEi + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x10] + str r2, [r5] + str r1, [r5, #4] + ldr r1, [sp, #0x14] + str r1, [r5, #8] + str r0, [r5, #0xc] + str r7, [r5, #0x10] + str r4, [r5, #0x14] + add sp, sp, #0x18 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + .align 2, 0 + arm_func_end _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB +_0207f774: .word 0xffffeccd + + .global _ZN7MapBase15GetClampedTileXEi + arm_func_start _ZN7MapBase15GetClampedTileXEi +_ZN7MapBase15GetClampedTileXEi: ; 0x0207f778 + ldr r2, [r0, #0xf4] + ldrh r0, [r0, #0x28] + sub r1, r1, r2 + movs r1, r1, asr #0xc + movmi r1, #0 + sub r0, r0, #1 + cmp r1, r0 + movge r1, r0 + mov r0, r1 + bx lr + arm_func_end _ZN7MapBase15GetClampedTileXEi + + .global _ZN7MapBase15GetClampedTileYEi + arm_func_start _ZN7MapBase15GetClampedTileYEi +_ZN7MapBase15GetClampedTileYEi: ; 0x0207f7a0 + ldr r2, [r0, #0xfc] + ldrh r0, [r0, #0x2a] + sub r1, r1, r2 + movs r1, r1, asr #0xc + movmi r1, #0 + sub r0, r0, #1 + cmp r1, r0 + movge r1, r0 + mov r0, r1 + bx lr + arm_func_end _ZN7MapBase15GetClampedTileYEi + + .global _ZN7MapBase8GetTileXEi + arm_func_start _ZN7MapBase8GetTileXEi +_ZN7MapBase8GetTileXEi: ; 0x0207f7c8 + ldr r0, [r0, #0xf4] + sub r0, r1, r0 + mov r0, r0, asr #0xc + bx lr + arm_func_end _ZN7MapBase8GetTileXEi + + .global _ZN7MapBase8GetTileYEi + arm_func_start _ZN7MapBase8GetTileYEi +_ZN7MapBase8GetTileYEi: ; 0x0207f7d8 + ldr r0, [r0, #0xfc] + sub r0, r1, r0 + mov r0, r0, asr #0xc + bx lr + arm_func_end _ZN7MapBase8GetTileYEi + + .global _ZN7MapBase10IsInBoundsEP5Vec3p + arm_func_start _ZN7MapBase10IsInBoundsEP5Vec3p +_ZN7MapBase10IsInBoundsEP5Vec3p: ; 0x0207f7e8 + stmdb sp!, {r4, r5, r6, lr} + mov r5, r1 + ldr r1, [r5] + mov r6, r0 + bl _ZN7MapBase8GetTileXEi + mov r4, r0 + ldr r1, [r5, #8] + mov r0, r6 + bl _ZN7MapBase8GetTileYEi + cmp r4, #0 + blt _0207f834 + ldrh r1, [r6, #0x28] + cmp r4, r1 + bge _0207f834 + cmp r0, #0 + blt _0207f834 + ldrh r1, [r6, #0x2a] + cmp r0, r1 + blt _0207f83c +_0207f834: + mov r0, #0 + ldmia sp!, {r4, r5, r6, pc} +_0207f83c: + mov r0, #1 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN7MapBase10IsInBoundsEP5Vec3p + + .global _ZN7MapBase11AddEntranceEP8Entrance + arm_func_start _ZN7MapBase11AddEntranceEP8Entrance +_ZN7MapBase11AddEntranceEP8Entrance: ; 0x0207f844 + stmdb sp!, {r3, lr} + mov lr, #0 + strb lr, [sp, #1] + ldr ip, [r0, #0x104] + ldr r2, [r0, #0x108] + mov r3, r1 + cmp ip, r2 + bhs _0207f8a0 + add r1, ip, #1 + str r1, [r0, #0x104] + ldr r2, [r0, #0x100] + sub r1, r1, #1 + mov r0, #0x14 + mla ip, r1, r0, r2 + ldmia r3, {r0, r1, r2} + stmia ip, {r0, r1, r2} + ldrsh r0, [r3, #0xc] + strh r0, [ip, #0xc] + ldrb r0, [r3, #0xe] + strb r0, [ip, #0xe] + ldr r0, [r3, #0x10] + str r0, [ip, #0x10] + ldmia sp!, {r3, pc} +_0207f8a0: + strb lr, [sp] + sub r3, sp, #4 + and r2, lr, #0xff + strb r2, [r3] + ldr r2, [r3] + add r0, r0, #0x100 + bl func_ov00_02081040 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase11AddEntranceEP8Entrance + + .global _ZN7MapBase12FindEntranceEi + arm_func_start _ZN7MapBase12FindEntranceEi +_ZN7MapBase12FindEntranceEi: ; 0x0207f8c0 + sub sp, sp, #0x18 + ldr r3, [r0, #0x100] + ldr r2, [r0, #0x104] + mov r0, #0x14 + mla ip, r2, r0, r3 + str r1, [sp, #0xc] + str r1, [sp] + str ip, [sp, #0x10] + str ip, [sp, #4] + str r3, [sp, #0x14] + str r3, [sp, #8] + mov r2, r3 + b _0207f8fc +_0207f8f4: + add r2, r2, #0x14 + str r2, [sp, #8] +_0207f8fc: + cmp r2, ip + ldrneb r0, [r2, #0xe] + cmpne r1, r0 + bne _0207f8f4 + ldr r0, [sp, #8] + cmp r0, ip + moveq r0, r3 + ldrne r0, [sp, #8] + add sp, sp, #0x18 + bx lr + arm_func_end _ZN7MapBase12FindEntranceEi + + .global _ZN7MapBase18func_ov00_0207f924Ei + arm_func_start _ZN7MapBase18func_ov00_0207f924Ei +_ZN7MapBase18func_ov00_0207f924Ei: ; 0x0207f924 + add r1, r0, r1 + ldrb r0, [r1, #0x18] + strb r0, [r1, #0x16] + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f924Ei + + .global _ZN7MapBase18func_ov00_0207f934Ev + arm_func_start _ZN7MapBase18func_ov00_0207f934Ev +_ZN7MapBase18func_ov00_0207f934Ev: ; 0x0207f934 + ldr r0, [r0, #0x140] + cmp r0, #0 + moveq r0, #0 + ldrne r0, [r0, #0x60] + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f934Ev + + .global _ZN7MapBase18func_ov00_0207f948Ei + arm_func_start _ZN7MapBase18func_ov00_0207f948Ei +_ZN7MapBase18func_ov00_0207f948Ei: ; 0x0207f948 + ldr r0, [r0, #0x140] + cmp r0, #0 + strne r1, [r0, #0x60] + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f948Ei + + .global _ZN7MapBase10AddTriggerEP13TriggerParams + arm_func_start _ZN7MapBase10AddTriggerEP13TriggerParams +_ZN7MapBase10AddTriggerEP13TriggerParams: ; 0x0207f958 + stmdb sp!, {r3, r4, r5, lr} + sub sp, sp, #8 + mov r2, #0 + str r2, [sp, #4] + mov r4, r1 + ldrb r1, [r4, #5] + mov r5, r0 + mov r2, #4 + cmp r1, #0 + beq _0207f9a8 + ldr r1, _0207faa4 ; =data_027e0ce0 + mov r0, #0x5c + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _0207f9a0 + mov r1, r4 + bl func_ov00_02095d58 +_0207f9a0: + str r0, [sp, #4] + b _0207fa34 +_0207f9a8: + ldrb r0, [r4, #9] + cmp r0, #1 + bne _0207f9dc + ldr r1, _0207faa4 ; =data_027e0ce0 + mov r0, #0xe0 + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _0207f9d4 + mov r1, r4 + bl func_ov00_0209581c +_0207f9d4: + str r0, [sp, #4] + b _0207fa34 +_0207f9dc: + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0207fa10 + ldr r1, _0207faa4 ; =data_027e0ce0 + mov r0, #0x28 + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _0207fa08 + mov r1, r4 + bl func_ov00_0209564c +_0207fa08: + str r0, [sp, #4] + b _0207fa34 +_0207fa10: + ldr r1, _0207faa4 ; =data_027e0ce0 + mov r0, #0x2c + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _0207fa30 + mov r1, r4 + bl func_ov00_02095554 +_0207fa30: + str r0, [sp, #4] +_0207fa34: + ldr r0, [sp, #4] + ldr r1, [r0] + ldr r1, [r1, #8] + blx r1 + mov r2, #0 + strb r2, [sp, #1] + ldr r1, [r5, #0x110] + ldr r0, [r5, #0x114] + cmp r1, r0 + bhs _0207fa7c + add r0, r1, #1 + str r0, [r5, #0x110] + ldr r2, [sp, #4] + ldr r1, [r5, #0x10c] + sub r0, r0, #1 + str r2, [r1, r0, lsl #2] + add sp, sp, #8 + ldmia sp!, {r3, r4, r5, pc} +_0207fa7c: + strb r2, [sp] + sub r1, sp, #4 + and r0, r2, #0xff + strb r0, [r1] + ldr r2, [r1] + add r1, sp, #4 + add r0, r5, #0x10c + bl func_ov00_02080f64 + add sp, sp, #8 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN7MapBase10AddTriggerEP13TriggerParams +_0207faa4: .word data_027e0ce0 + + .global _ZN11TriggerBase8vfunc_08Ev + arm_func_start _ZN11TriggerBase8vfunc_08Ev +_ZN11TriggerBase8vfunc_08Ev: ; 0x0207faa8 + bx lr + arm_func_end _ZN11TriggerBase8vfunc_08Ev + + .global _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB + arm_func_start _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB +_ZN7MapBase21GetTriggerBoundingBoxEiP4AABB: ; 0x0207faac + stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #0x18 + mov r9, r0 + ldr r6, [r9, #0x10c] + ldr r0, [r9, #0x110] + mov r8, r1 + add r0, r6, r0, lsl #2 + mov r7, r2 + cmp r6, r0 + mov r5, #0 + beq _0207fb50 + add r4, sp, #0 +_0207fadc: + ldr r0, [r6] + ldrb r1, [r0, #5] + cmp r8, r1 + bne _0207fb38 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0x18] + blx r2 + cmp r0, #0 + beq _0207fb38 + ldr r0, [sp] + add r5, r5, #1 + str r0, [r7] + ldr r0, [sp, #4] + str r0, [r7, #4] + ldr r0, [sp, #8] + str r0, [r7, #8] + ldr r0, [sp, #0xc] + str r0, [r7, #0xc] + ldr r0, [sp, #0x10] + str r0, [r7, #0x10] + ldr r0, [sp, #0x14] + str r0, [r7, #0x14] +_0207fb38: + ldr r1, [r9, #0x10c] + ldr r0, [r9, #0x110] + add r6, r6, #4 + add r0, r1, r0, lsl #2 + cmp r6, r0 + bne _0207fadc +_0207fb50: + mov r0, r5 + add sp, sp, #0x18 + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} + arm_func_end _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB + + .global _ZN11TriggerBase14GetBoundingBoxEv + arm_func_start _ZN11TriggerBase14GetBoundingBoxEv +_ZN11TriggerBase14GetBoundingBoxEv: ; 0x0207fb5c + mov r0, #0 + bx lr + arm_func_end _ZN11TriggerBase14GetBoundingBoxEv + + .global _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi + arm_func_start _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi +_ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi: ; 0x0207fb64 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + sub sp, sp, #0x18 + mov r10, r0 + ldr r6, [r10, #0x10c] + ldr r0, [r10, #0x110] + mov r9, r1 + add r0, r6, r0, lsl #2 + mov r8, r2 + mov r7, r3 + cmp r6, r0 + mov r5, #0 + beq _0207fc20 + add r4, sp, #0 +_0207fb98: + ldr r0, [r6] + ldrb r1, [r0, #5] + cmp r9, r1 + bne _0207fbf8 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0x18] + blx r2 + cmp r0, #0 + beq _0207fbf8 + ldr r0, [sp] + add r5, r5, #1 + str r0, [r8] + ldr r0, [sp, #4] + str r0, [r8, #4] + ldr r0, [sp, #8] + str r0, [r8, #8] + ldr r0, [sp, #0xc] + str r0, [r8, #0xc] + ldr r0, [sp, #0x10] + str r0, [r8, #0x10] + ldr r0, [sp, #0x14] + str r0, [r8, #0x14] + add r8, r8, #0x18 +_0207fbf8: + cmp r5, r7 + addhs sp, sp, #0x18 + movhs r0, r5 + ldmhsia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + ldr r1, [r10, #0x10c] + ldr r0, [r10, #0x110] + add r6, r6, #4 + add r0, r1, r0, lsl #2 + cmp r6, r0 + bne _0207fb98 +_0207fc20: + mov r0, r5 + add sp, sp, #0x18 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + arm_func_end _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi + + .global _ZN7MapBase21GetOverlappingTriggerEP5Vec3p + arm_func_start _ZN7MapBase21GetOverlappingTriggerEP5Vec3p +_ZN7MapBase21GetOverlappingTriggerEP5Vec3p: ; 0x0207fc2c + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r6, r0 + ldr r4, [r6, #0x10c] + ldr r0, [r6, #0x110] + mov r5, r1 + add r0, r4, r0, lsl #2 + cmp r4, r0 + beq _0207fc88 +_0207fc4c: + ldr r7, [r4] + mov r1, r5 + mov r0, r7 + ldr r2, [r0] + ldr r2, [r2, #0x14] + blx r2 + cmp r0, #0 + ldrneb r0, [r7, #5] + ldmneia sp!, {r3, r4, r5, r6, r7, pc} + ldr r1, [r6, #0x10c] + ldr r0, [r6, #0x110] + add r4, r4, #4 + add r0, r1, r0, lsl #2 + cmp r4, r0 + bne _0207fc4c +_0207fc88: + mov r0, #0 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN7MapBase21GetOverlappingTriggerEP5Vec3p + + .global _ZN11TriggerBase8OverlapsEv + arm_func_start _ZN11TriggerBase8OverlapsEv +_ZN11TriggerBase8OverlapsEv: ; 0x0207fc90 + mov r0, #0 + bx lr + arm_func_end _ZN11TriggerBase8OverlapsEv + + .global _ZN7MapBase11FindTriggerEi + arm_func_start _ZN7MapBase11FindTriggerEi +_ZN7MapBase11FindTriggerEi: ; 0x0207fc98 + ldr ip, [r0, #0x10c] + ldr r2, [r0, #0x110] + add r2, ip, r2, lsl #2 + cmp ip, r2 + beq _0207fcd8 +_0207fcac: + ldr r3, [ip] + ldrb r2, [r3, #5] + cmp r1, r2 + moveq r0, r3 + bxeq lr + ldr r3, [r0, #0x10c] + ldr r2, [r0, #0x110] + add ip, ip, #4 + add r2, r3, r2, lsl #2 + cmp ip, r2 + bne _0207fcac +_0207fcd8: + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase11FindTriggerEi + + .global _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei + arm_func_start _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei +_ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei: ; 0x0207fce0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + mov r10, r0 + ldr r6, [r10, #0x10c] + ldr r0, [r10, #0x110] + mov r9, r1 + add r0, r6, r0, lsl #2 + mov r8, r2 + mov r7, r3 + cmp r6, r0 + mov r4, #0 + beq _0207fd50 +_0207fd0c: + cmp r4, r7 + bhs _0207fd50 + ldr r5, [r6] + mov r1, r9 + mov r0, r5 + ldr r2, [r0] + ldr r2, [r2, #0x14] + blx r2 + cmp r0, #0 + strne r5, [r8, r4, lsl #2] + ldr r1, [r10, #0x10c] + ldr r0, [r10, #0x110] + add r6, r6, #4 + add r0, r1, r0, lsl #2 + addne r4, r4, #1 + cmp r6, r0 + bne _0207fd0c +_0207fd50: + mov r0, r4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + arm_func_end _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei + + .global _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p + arm_func_start _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p +_ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p: ; 0x0207fd58 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + movs r6, r1 + mov r7, r0 + mov r5, r2 + moveq r0, #1 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + ldr r4, [r7, #0x10c] + ldr r0, [r7, #0x110] + add r0, r4, r0, lsl #2 + cmp r4, r0 + beq _0207fdc8 +_0207fd84: + ldr r0, [r4] + ldrb r1, [r0, #5] + cmp r6, r1 + bne _0207fdb0 + ldr r2, [r0] + mov r1, r5 + ldr r2, [r2, #0x14] + blx r2 + cmp r0, #0 + movne r0, #1 + ldmneia sp!, {r3, r4, r5, r6, r7, pc} +_0207fdb0: + ldr r1, [r7, #0x10c] + ldr r0, [r7, #0x110] + add r4, r4, #4 + add r0, r1, r0, lsl #2 + cmp r4, r0 + bne _0207fd84 +_0207fdc8: + mov r0, #0 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p + + .global _ZN7MapBase18AnyTrigger_func_0cEi + arm_func_start _ZN7MapBase18AnyTrigger_func_0cEi +_ZN7MapBase18AnyTrigger_func_0cEi: ; 0x0207fdd0 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r5, [r7, #0x10c] + ldr r0, [r7, #0x110] + mov r6, r1 + add r0, r5, r0, lsl #2 + cmp r5, r0 + beq _0207fe2c + mov r4, #1 +_0207fdf4: + ldr r0, [r5] + ldrb r1, [r0, #5] + cmp r6, r1 + bne _0207fe14 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0xc] + blx r2 +_0207fe14: + ldr r1, [r7, #0x10c] + ldr r0, [r7, #0x110] + add r5, r5, #4 + add r0, r1, r0, lsl #2 + cmp r5, r0 + bne _0207fdf4 +_0207fe2c: + mov r0, #1 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN7MapBase18AnyTrigger_func_0cEi + + .global _ZN11TriggerBase8vfunc_0cEv + arm_func_start _ZN11TriggerBase8vfunc_0cEv +_ZN11TriggerBase8vfunc_0cEv: ; 0x0207fe34 + mov r0, #0 + bx lr + arm_func_end _ZN11TriggerBase8vfunc_0cEv + + .global _ZN7MapBase16Trigger_vfunc_08Ev + arm_func_start _ZN7MapBase16Trigger_vfunc_08Ev +_ZN7MapBase16Trigger_vfunc_08Ev: ; 0x0207fe3c + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + ldr r4, [r5, #0x10c] + ldr r0, [r5, #0x110] + add r0, r4, r0, lsl #2 + cmp r4, r0 + ldmeqia sp!, {r3, r4, r5, pc} +_0207fe58: + ldr r0, [r4], #4 + ldr r1, [r0] + ldr r1, [r1, #8] + blx r1 + ldr r1, [r5, #0x10c] + ldr r0, [r5, #0x110] + add r0, r1, r0, lsl #2 + cmp r4, r0 + bne _0207fe58 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN7MapBase16Trigger_vfunc_08Ev + + .global _ZN7MapBase10AddTriggerEi + arm_func_start _ZN7MapBase10AddTriggerEi +_ZN7MapBase10AddTriggerEi: ; 0x0207fe80 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr r1, [r0, #0x110] + cmp r1, #0x40 + addhs sp, sp, #0x14 + movhs r0, #0 + ldmhsia sp!, {lr} + addhs sp, sp, #0x10 + bxhs lr + ldr r2, [r0, #0x10c] + ldr r1, [r0, #0x110] + str r2, [sp, #0x10] + add ip, r2, r1, lsl #2 + str ip, [sp, #0xc] + str ip, [sp, #4] + str r2, [sp, #8] + ldr r3, [sp, #0x1c] + b _0207fed4 +_0207fecc: + add r2, r2, #4 + str r2, [sp, #8] +_0207fed4: + cmp r2, ip + ldrne r1, [r2] + cmpne r1, r3 + bne _0207fecc + ldr r1, [sp, #8] + cmp r1, ip + addne sp, sp, #0x14 + movne r0, #0 + ldmneia sp!, {lr} + addne sp, sp, #0x10 + bxne lr + ldr r1, [sp, #0x1c] + ldrb r1, [r1, #4] + cmp r1, #0 + addne sp, sp, #0x14 + movne r0, #0 + ldmneia sp!, {lr} + addne sp, sp, #0x10 + bxne lr + mov r3, #0 + strb r3, [sp, #1] + ldr r2, [r0, #0x110] + ldr r1, [r0, #0x114] + cmp r2, r1 + bhs _0207ff54 + add r3, r2, #1 + str r3, [r0, #0x110] + ldr r1, [r0, #0x10c] + ldr r2, [sp, #0x1c] + sub r0, r3, #1 + str r2, [r1, r0, lsl #2] + b _0207ff74 +_0207ff54: + strb r3, [sp] + sub r2, sp, #4 + and r1, r3, #0xff + strb r1, [r2] + ldr r2, [r2] + add r1, sp, #0x1c + add r0, r0, #0x10c + bl func_ov00_02080f64 +_0207ff74: + mov r0, #1 + add sp, sp, #0x14 + ldmia sp!, {lr} + add sp, sp, #0x10 + bx lr + arm_func_end _ZN7MapBase10AddTriggerEi + + .global _ZN7MapBase18func_ov00_0207ff88Ei + arm_func_start _ZN7MapBase18func_ov00_0207ff88Ei +_ZN7MapBase18func_ov00_0207ff88Ei: ; 0x0207ff88 + stmdb sp!, {r3, lr} + sub sp, sp, #0x28 + ldrb r2, [r1, #4] + cmp r2, #0 + addne sp, sp, #0x28 + movne r0, #0 + ldmneia sp!, {r3, pc} + ldr ip, [r0, #0x10c] + ldr r2, [r0, #0x110] + str ip, [sp, #0x20] + add r3, ip, r2, lsl #2 + str r3, [sp, #0x1c] + str r3, [sp, #0xc] + str r3, [sp, #4] + str ip, [sp, #8] + b _0207ffd0 +_0207ffc8: + add ip, ip, #4 + str ip, [sp, #8] +_0207ffd0: + cmp ip, r3 + ldrne r2, [ip] + cmpne r2, r1 + bne _0207ffc8 + ldr r2, [sp, #8] + ldr r3, [sp, #0xc] + mov lr, r2 + cmp r2, r3 + addne ip, lr, #4 + cmpne ip, r3 + beq _02080014 +_0207fffc: + ldr r2, [ip] + add ip, ip, #4 + cmp r2, r1 + strne r2, [lr], #4 + cmp ip, r3 + bne _0207fffc +_02080014: + ldr r2, [r0, #0x10c] + ldr r1, [r0, #0x110] + mov r3, #0 + add r2, r2, r1, lsl #2 + strb r3, [sp] + sub r1, sp, #4 + strb r3, [r1] + ldr r3, [r1] + mov r1, lr + add r0, r0, #0x10c + str lr, [sp, #0x24] + str r2, [sp, #0x18] + str r2, [sp, #0x10] + str lr, [sp, #0x14] + bl func_ov00_02080f94 + mov r0, #1 + add sp, sp, #0x28 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_0207ff88Ei + + .global _ZN7MapBase18func_ov00_0208005cEiii + arm_func_start _ZN7MapBase18func_ov00_0208005cEiii +_ZN7MapBase18func_ov00_0208005cEiii: ; 0x0208005c + ldr ip, _02080068 ; =func_ov00_0209c1e4 + ldr r0, [r0, #0x144] + bx ip + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0208005cEiii +_02080068: .word func_ov00_0209c1e4 + + .global _ZN7MapBase18func_ov00_0208006cEii + arm_func_start _ZN7MapBase18func_ov00_0208006cEii +_ZN7MapBase18func_ov00_0208006cEii: ; 0x0208006c + ldr ip, _02080078 ; =func_ov00_0209c2b4 + ldr r0, [r0, #0x144] + bx ip + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0208006cEii +_02080078: .word func_ov00_0209c2b4 + + .global _ZN7MapBase18func_ov00_0208007cEii + arm_func_start _ZN7MapBase18func_ov00_0208007cEii +_ZN7MapBase18func_ov00_0208007cEii: ; 0x0208007c + ldr ip, _02080088 ; =func_ov00_0209c2d0 + ldr r0, [r0, #0x144] + bx ip + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0208007cEii +_02080088: .word func_ov00_0209c2d0 + + .global _ZN7MapBase18func_ov00_0208008cEj + arm_func_start _ZN7MapBase18func_ov00_0208008cEj +_ZN7MapBase18func_ov00_0208008cEj: ; 0x0208008c + ldr ip, _02080098 ; =func_ov00_0209c8e4 + ldr r0, [r0, #0x144] + bx ip + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0208008cEj +_02080098: .word func_ov00_0209c8e4 + + .global _ZN7MapBase7AddExitEP4Exit + arm_func_start _ZN7MapBase7AddExitEP4Exit +_ZN7MapBase7AddExitEP4Exit: ; 0x0208009c + stmdb sp!, {r3, lr} + mov ip, #0 + strb ip, [sp, #1] + ldr r3, [r0, #0x11c] + ldr r2, [r0, #0x120] + cmp r3, r2 + bhs _02080120 + add ip, r3, #1 + sub r3, ip, #1 + mov r2, #0x18 + mul r2, r3, r2 + str ip, [r0, #0x11c] + ldr r3, [r0, #0x118] + ldr r0, [r1] + add ip, r3, r2 + str r0, [r3, r2] + ldr r0, [r1, #4] + str r0, [ip, #4] + ldr r0, [r1, #8] + str r0, [ip, #8] + ldr r0, [r1, #0xc] + str r0, [ip, #0xc] + ldrsh r0, [r1, #0x10] + strh r0, [ip, #0x10] + ldrb r0, [r1, #0x12] + strb r0, [ip, #0x12] + ldrb r0, [r1, #0x13] + strb r0, [ip, #0x13] + ldrb r0, [r1, #0x14] + strb r0, [ip, #0x14] + ldrb r0, [r1, #0x15] + strb r0, [ip, #0x15] + ldmia sp!, {r3, pc} +_02080120: + strb ip, [sp] + sub r3, sp, #4 + and r2, ip, #0xff + strb r2, [r3] + ldr r2, [r3] + add r0, r0, #0x118 + bl func_ov00_020810b8 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase7AddExitEP4Exit + + .global _ZN7MapBase18func_ov00_02080140EP4Exit + arm_func_start _ZN7MapBase18func_ov00_02080140EP4Exit +_ZN7MapBase18func_ov00_02080140EP4Exit: ; 0x02080140 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + sub sp, sp, #0x50 + ldr r9, [r1] + mov r4, r0 + str r9, [sp, #0x38] + ldr r8, [r1, #4] + mov r10, #0x18 + str r8, [sp, #0x3c] + ldr r7, [r1, #8] + add r0, sp, #0x1c + str r7, [sp, #0x40] + ldr r6, [r1, #0xc] + add r3, sp, #0x20 + str r6, [sp, #0x44] + ldrsh r5, [r1, #0x10] + strh r5, [sp, #0x48] + ldrb lr, [r1, #0x12] + strb lr, [sp, #0x4a] + ldrb ip, [r1, #0x13] + strb ip, [sp, #0x4b] + ldrb r2, [r1, #0x14] + strb r2, [sp, #0x4c] + ldrb r1, [r1, #0x15] + str r9, [sp, #0x20] + str r8, [sp, #0x24] + strb r1, [sp, #0x4d] + str r7, [sp, #0x28] + str r6, [sp, #0x2c] + strh r5, [sp, #0x30] + strb lr, [sp, #0x32] + strb ip, [sp, #0x33] + strb r2, [sp, #0x34] + strb r1, [sp, #0x35] + ldr r1, [r4, #0x118] + ldr r5, [r4, #0x11c] + str r1, [sp, #0x18] + mla r2, r5, r10, r1 + str r2, [sp, #0x14] + bl _ZN12MapBase_Unk118func_ov00_02080324Eiii + ldr r0, [r4, #0x118] + ldr r2, [r4, #0x11c] + mov r1, r10 + mla r5, r2, r1, r0 + ldr r1, [sp, #0x1c] + cmp r1, r5 + bne _02080310 + mov r1, #0 + cmp r0, r5 + str r0, [sp, #8] + addne r3, r0, #0x18 + strne r3, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + strb r1, [sp, #2] + str r5, [sp, #4] + cmpne r3, r5 + beq _02080244 +_02080224: + ldrb r2, [r0, #0x14] + ldrb r1, [r3, #0x14] + cmp r2, r1 + movlo r0, r3 + add r3, r3, #0x18 + cmp r3, r5 + bne _02080224 + str r3, [sp, #8] +_02080244: + ldr r3, [r4, #0x118] + ldr r2, [r4, #0x11c] + mov r1, #0x18 + mla r1, r2, r1, r3 + cmp r0, r1 + moveq r0, #1 + streqb r0, [sp, #0x4c] + ldrneb r0, [r0, #0x14] + mov r2, #0 + addne r0, r0, #1 + strneb r0, [sp, #0x4c] + strb r2, [sp, #1] + ldr r1, [r4, #0x11c] + ldr r0, [r4, #0x120] + cmp r1, r0 + bhs _020802ec + add r3, r1, #1 + sub r1, r3, #1 + mov r0, #0x18 + mul r2, r1, r0 + str r3, [r4, #0x11c] + ldr r1, [r4, #0x118] + ldr r0, [sp, #0x38] + add r3, r1, r2 + str r0, [r1, r2] + ldr r0, [sp, #0x3c] + str r0, [r3, #4] + ldr r0, [sp, #0x40] + str r0, [r3, #8] + ldr r0, [sp, #0x44] + str r0, [r3, #0xc] + ldrsh r0, [sp, #0x48] + strh r0, [r3, #0x10] + ldrb r0, [sp, #0x4a] + strb r0, [r3, #0x12] + ldrb r0, [sp, #0x4b] + strb r0, [r3, #0x13] + ldrb r0, [sp, #0x4c] + strb r0, [r3, #0x14] + ldrb r0, [sp, #0x4d] + strb r0, [r3, #0x15] + b _02080318 +_020802ec: + strb r2, [sp] + sub r1, sp, #4 + and r0, r2, #0xff + strb r0, [r1] + ldr r2, [r1] + add r1, sp, #0x38 + add r0, r4, #0x118 + bl func_ov00_020810b8 + b _02080318 +_02080310: + ldrb r0, [r1, #0x14] + strb r0, [sp, #0x4c] +_02080318: + ldrb r0, [sp, #0x4c] + add sp, sp, #0x50 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + arm_func_end _ZN7MapBase18func_ov00_02080140EP4Exit + + .global _ZN12MapBase_Unk118func_ov00_02080324Eiii + arm_func_start _ZN12MapBase_Unk118func_ov00_02080324Eiii +_ZN12MapBase_Unk118func_ov00_02080324Eiii: ; 0x02080324 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r7, r0 + mov r6, r3 + ldr r5, [sp, #0x20] + ldr r4, [sp, #0x1c] + b _02080344 +_02080340: + add r4, r4, #0x18 +_02080344: + cmp r4, r5 + beq _0208038c + mov r0, r4 + bl func_ov00_020a5e9c + mov r8, r0 + mov r0, r6 + bl func_ov00_020a5e9c + cmp r8, r0 + ldreqb r1, [r4, #0x12] + ldreqb r0, [r6, #0x12] + cmpeq r1, r0 + ldreqb r1, [r4, #0x13] + ldreqb r0, [r6, #0x13] + cmpeq r1, r0 + ldreq r1, [r4, #8] + ldreq r0, [r6, #8] + cmpeq r1, r0 + bne _02080340 +_0208038c: + str r4, [r7] + ldmia sp!, {r4, r5, r6, r7, r8, lr} + add sp, sp, #0x10 + bx lr + arm_func_end _ZN12MapBase_Unk118func_ov00_02080324Eiii + + .global _ZN7MapBase8FindExitEiP4Exit + arm_func_start _ZN7MapBase8FindExitEiP4Exit +_ZN7MapBase8FindExitEiP4Exit: ; 0x0208039c + stmdb sp!, {lr} + sub sp, sp, #0x14 + cmp r1, #0 + addle sp, sp, #0x14 + movle r0, #0 + ldmleia sp!, {pc} + ldr ip, [r0, #0x118] + ldr r3, [r0, #0x11c] + mov r0, #0x18 + mla lr, r3, r0, ip + and r0, r1, #0xff + strb r1, [sp, #1] + strb r0, [sp] + str lr, [sp, #0xc] + str lr, [sp, #4] + str ip, [sp, #0x10] + str ip, [sp, #8] + and r1, r0, #0xff + b _020803f0 +_020803e8: + add ip, ip, #0x18 + str ip, [sp, #8] +_020803f0: + cmp ip, lr + ldrneb r0, [ip, #0x14] + cmpne r1, r0 + bne _020803e8 + ldr r0, [sp, #8] + cmp r0, lr + addeq sp, sp, #0x14 + moveq r0, #0 + ldmeqia sp!, {pc} + ldr r3, [sp, #8] + mov r0, #1 + ldr r1, [r3] + str r1, [r2] + ldr r1, [r3, #4] + str r1, [r2, #4] + ldr r1, [r3, #8] + str r1, [r2, #8] + ldr r1, [r3, #0xc] + str r1, [r2, #0xc] + ldrsh r1, [r3, #0x10] + strh r1, [r2, #0x10] + ldrb r1, [r3, #0x12] + strb r1, [r2, #0x12] + ldrb r1, [r3, #0x13] + strb r1, [r2, #0x13] + ldrb r1, [r3, #0x14] + strb r1, [r2, #0x14] + ldrb r1, [r3, #0x15] + strb r1, [r2, #0x15] + add sp, sp, #0x14 + ldmia sp!, {pc} + arm_func_end _ZN7MapBase8FindExitEiP4Exit + + .global _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint + arm_func_start _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint +_ZN7MapBase18AddCameraViewpointEP15CameraViewpoint: ; 0x0208046c + stmdb sp!, {r3, lr} + mov ip, #0 + strb ip, [sp, #1] + ldr r3, [r0, #0x128] + ldr r2, [r0, #0x12c] + cmp r3, r2 + bhs _020804f0 + add ip, r3, #1 + sub r3, ip, #1 + mov r2, #0x1c + mul r2, r3, r2 + str ip, [r0, #0x128] + ldr r3, [r0, #0x124] + ldr r0, [r1] + add ip, r3, r2 + str r0, [r3, r2] + ldrb r0, [r1, #4] + strb r0, [ip, #4] + ldr r0, [r1, #8] + str r0, [ip, #8] + ldr r0, [r1, #0xc] + str r0, [ip, #0xc] + ldr r0, [r1, #0x10] + str r0, [ip, #0x10] + ldrsh r0, [r1, #0x14] + strh r0, [ip, #0x14] + ldrsh r0, [r1, #0x16] + strh r0, [ip, #0x16] + ldrh r2, [r1, #0x18] + ldrh r0, [r1, #0x1a] + strh r2, [ip, #0x18] + strh r0, [ip, #0x1a] + ldmia sp!, {r3, pc} +_020804f0: + strb ip, [sp] + sub r3, sp, #4 + and r2, ip, #0xff + strb r2, [r3] + ldr r2, [r3] + add r0, r0, #0x124 + bl func_ov00_02081130 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint + + .global _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint + arm_func_start _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint +_ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint: ; 0x02080510 + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr ip, [r0, #0x124] + ldr r3, [r0, #0x128] + mov r0, #0x1c + mla lr, r3, r0, ip + and r0, r1, #0xff + strb r1, [sp, #1] + strb r0, [sp] + str lr, [sp, #0xc] + str lr, [sp, #4] + str ip, [sp, #0x10] + str ip, [sp, #8] + and r1, r0, #0xff + b _02080554 +_0208054c: + add ip, ip, #0x1c + str ip, [sp, #8] +_02080554: + cmp ip, lr + ldrneb r0, [ip, #4] + cmpne r1, r0 + bne _0208054c + ldr r0, [sp, #8] + cmp r0, lr + addeq sp, sp, #0x14 + moveq r0, #0 + ldmeqia sp!, {pc} + ldr ip, [sp, #8] + mov r0, #1 + ldr r1, [ip] + str r1, [r2] + ldrb r1, [ip, #4] + strb r1, [r2, #4] + ldr r1, [ip, #8] + str r1, [r2, #8] + ldr r1, [ip, #0xc] + str r1, [r2, #0xc] + ldr r1, [ip, #0x10] + str r1, [r2, #0x10] + ldrsh r1, [ip, #0x14] + strh r1, [r2, #0x14] + ldrsh r1, [ip, #0x16] + strh r1, [r2, #0x16] + ldrh r3, [ip, #0x18] + ldrh r1, [ip, #0x1a] + strh r3, [r2, #0x18] + strh r1, [r2, #0x1a] + add sp, sp, #0x14 + ldmia sp!, {pc} + arm_func_end _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint + + .global _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint + arm_func_start _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint +_ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint: ; 0x020805d0 + stmdb sp!, {r3, lr} + sub sp, sp, #0x18 + ldr ip, [r0, #0x124] + ldr r3, [r0, #0x128] + mov r0, #0x1c + mla lr, r3, r0, ip + str r1, [sp, #0xc] + str r1, [sp] + str lr, [sp, #0x10] + str lr, [sp, #4] + str ip, [sp, #0x14] + str ip, [sp, #8] + b _0208060c +_02080604: + add ip, ip, #0x1c + str ip, [sp, #8] +_0208060c: + cmp ip, lr + ldrne r0, [ip] + cmpne r1, r0 + bne _02080604 + ldr r0, [sp, #8] + cmp r0, lr + addeq sp, sp, #0x18 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldr ip, [sp, #8] + mov r0, #1 + ldr r1, [ip] + str r1, [r2] + ldrb r1, [ip, #4] + strb r1, [r2, #4] + ldr r1, [ip, #8] + str r1, [r2, #8] + ldr r1, [ip, #0xc] + str r1, [r2, #0xc] + ldr r1, [ip, #0x10] + str r1, [r2, #0x10] + ldrsh r1, [ip, #0x14] + strh r1, [r2, #0x14] + ldrsh r1, [ip, #0x16] + strh r1, [r2, #0x16] + ldrh r3, [ip, #0x18] + ldrh r1, [ip, #0x1a] + strh r3, [r2, #0x18] + strh r1, [r2, #0x1a] + add sp, sp, #0x18 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint + + .global _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi + arm_func_start _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi +_ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi: ; 0x02080688 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #0x1c + mov r6, r0 + mov r4, r2 + add r2, r6, r4 + mov r5, r1 + ldrb r1, [r2, #0x16] + cmp r1, #0 + bne _020806c8 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0xb8] + blx r2 + add sp, sp, #0x1c + str r0, [r5] + ldmia sp!, {r3, r4, r5, r6, pc} +_020806c8: + mov ip, #0 + mov r0, #0xff + add r3, sp, #0 + str ip, [sp] + strb r0, [sp, #4] + strh ip, [sp, #0x14] + strh ip, [sp, #0x16] + mov r2, ip +_020806e8: + add r0, r3, ip, lsl #1 + add ip, ip, #1 + strh r2, [r0, #0x18] + cmp ip, #2 + blo _020806e8 + add r2, sp, #0 + mov r0, r6 + bl _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint + cmp r0, #0 + bne _02080730 + mov r0, r6 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0xb8] + blx r2 + add sp, sp, #0x1c + str r0, [r5] + ldmia sp!, {r3, r4, r5, r6, pc} +_02080730: + ldr r0, [sp] + str r0, [r5] + ldrb r0, [sp, #4] + strb r0, [r5, #4] + ldr r0, [sp, #8] + str r0, [r5, #8] + ldr r0, [sp, #0xc] + str r0, [r5, #0xc] + ldr r0, [sp, #0x10] + str r0, [r5, #0x10] + ldrsh r0, [sp, #0x14] + strh r0, [r5, #0x14] + ldrsh r0, [sp, #0x16] + strh r0, [r5, #0x16] + ldrh r1, [sp, #0x18] + ldrh r0, [sp, #0x1a] + strh r1, [r5, #0x18] + strh r0, [r5, #0x1a] + add sp, sp, #0x1c + ldmia sp!, {r3, r4, r5, r6, pc} + arm_func_end _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi + + .global _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei + arm_func_start _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei +_ZN7MapBase26GetCurrentViewpoint_Unk_00Ei: ; 0x02080780 + stmdb sp!, {lr} + sub sp, sp, #0x1c + mov lr, #0 + mov r3, #0xff + strb r3, [sp, #4] + add ip, sp, #0 + mov r2, r1 + str lr, [sp] + strh lr, [sp, #0x14] + strh lr, [sp, #0x16] + mov r3, lr +_020807ac: + add r1, ip, lr, lsl #1 + add lr, lr, #1 + strh r3, [r1, #0x18] + cmp lr, #2 + blo _020807ac + add r1, sp, #0 + bl _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi + ldr r0, [sp] + add sp, sp, #0x1c + ldmia sp!, {pc} + arm_func_end _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei + + .global _ZN7MapBase8vfunc_b8Ev + arm_func_start _ZN7MapBase8vfunc_b8Ev +_ZN7MapBase8vfunc_b8Ev: ; 0x020807d4 + stmdb sp!, {r3, lr} + ldr r0, _02080820 ; =data_027e0618 + ldr r0, [r0] + cmp r0, #6 + bne _02080818 + bl func_ov00_02079e3c + cmp r0, #0 + beq _02080800 + cmp r0, #1 + beq _02080808 + b _02080810 +_02080800: + mov r0, #0 + ldmia sp!, {r3, pc} +_02080808: + mov r0, #0x1c + ldmia sp!, {r3, pc} +_02080810: + mov r0, #0x1c + ldmia sp!, {r3, pc} +_02080818: + mov r0, #0 + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_b8Ev +_02080820: .word data_027e0618 + + .global _ZN7MapBase18func_ov00_02080824Eii + arm_func_start _ZN7MapBase18func_ov00_02080824Eii +_ZN7MapBase18func_ov00_02080824Eii: ; 0x02080824 + stmdb sp!, {r4, lr} + ldr r4, [r0, #0x14c] + cmp r4, #0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + ldrh r3, [r4, #4] + mov ip, #0 + cmp r3, #0 + ble _020808c8 + mov lr, r4 +_0208084c: + ldrb r0, [lr, #8] + cmp r1, r0 + bne _020808b8 + mov r0, #0x1c + mul r0, ip, r0 + add r3, r4, #8 + ldrb r1, [r3, r0] + add r3, r3, r0 + mov r0, #1 + strb r1, [r2] + ldrb r1, [r3, #1] + strb r1, [r2, #1] + ldrsh r1, [r3, #2] + strh r1, [r2, #2] + ldr r1, [r3, #4] + str r1, [r2, #4] + ldr r1, [r3, #8] + str r1, [r2, #8] + ldr r1, [r3, #0xc] + str r1, [r2, #0xc] + ldr r1, [r3, #0x10] + str r1, [r2, #0x10] + ldr r1, [r3, #0x14] + str r1, [r2, #0x14] + ldr r1, [r3, #0x18] + str r1, [r2, #0x18] + ldmia sp!, {r4, pc} +_020808b8: + add ip, ip, #1 + cmp ip, r3 + add lr, lr, #0x1c + blt _0208084c +_020808c8: + mov r0, #0 + ldmia sp!, {r4, pc} + arm_func_end _ZN7MapBase18func_ov00_02080824Eii + + .global _ZN7MapBase10AddUnk_130Ei + arm_func_start _ZN7MapBase10AddUnk_130Ei +_ZN7MapBase10AddUnk_130Ei: ; 0x020808d0 + stmdb sp!, {r0, r1, r2, r3} + arm_func_end _ZN7MapBase10AddUnk_130Ei + + .global func_ov00_020808d4 + arm_func_start func_ov00_020808d4 +func_ov00_020808d4: ; 0x020808d4 + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr r1, [r0, #0x134] + cmp r1, #0x20 + addhs sp, sp, #0x14 + movhs r0, #0 + ldmhsia sp!, {lr} + addhs sp, sp, #0x10 + bxhs lr + ldr r2, [r0, #0x130] + ldr r1, [r0, #0x134] + str r2, [sp, #0x10] + add ip, r2, r1, lsl #2 + str ip, [sp, #0xc] + str ip, [sp, #4] + str r2, [sp, #8] + ldr r3, [sp, #0x1c] + b _02080924 +_0208091c: + add r2, r2, #4 + str r2, [sp, #8] +_02080924: + cmp r2, ip + ldrne r1, [r2] + cmpne r1, r3 + bne _0208091c + ldr r1, [sp, #8] + cmp r1, ip + addne sp, sp, #0x14 + movne r0, #0 + ldmneia sp!, {lr} + addne sp, sp, #0x10 + bxne lr + mov r3, #0 + strb r3, [sp, #1] + ldr r2, [r0, #0x134] + ldr r1, [r0, #0x138] + cmp r2, r1 + bhs _02080984 + add r3, r2, #1 + str r3, [r0, #0x134] + ldr r1, [r0, #0x130] + ldr r2, [sp, #0x1c] + sub r0, r3, #1 + str r2, [r1, r0, lsl #2] + b _020809a4 +_02080984: + strb r3, [sp] + sub r2, sp, #4 + and r1, r3, #0xff + strb r1, [r2] + ldr r2, [r2] + add r1, sp, #0x1c + add r0, r0, #0x130 + bl func_ov00_02080f64 +_020809a4: + mov r0, #1 + add sp, sp, #0x14 + ldmia sp!, {lr} + add sp, sp, #0x10 + bx lr + arm_func_end func_ov00_020808d4 + + .global _ZN7MapBase18func_ov00_020809b8Ei + arm_func_start _ZN7MapBase18func_ov00_020809b8Ei +_ZN7MapBase18func_ov00_020809b8Ei: ; 0x020809b8 + stmdb sp!, {r3, lr} + sub sp, sp, #0x28 + ldr ip, [r0, #0x130] + ldr r2, [r0, #0x134] + str ip, [sp, #0x20] + add r3, ip, r2, lsl #2 + str r3, [sp, #0x1c] + str r3, [sp, #0xc] + str r3, [sp, #4] + str ip, [sp, #8] + b _020809ec +_020809e4: + add ip, ip, #4 + str ip, [sp, #8] +_020809ec: + cmp ip, r3 + ldrne r2, [ip] + cmpne r2, r1 + bne _020809e4 + ldr r2, [sp, #8] + ldr r3, [sp, #0xc] + mov lr, r2 + cmp r2, r3 + addne ip, lr, #4 + cmpne ip, r3 + beq _02080a30 +_02080a18: + ldr r2, [ip] + add ip, ip, #4 + cmp r2, r1 + strne r2, [lr], #4 + cmp ip, r3 + bne _02080a18 +_02080a30: + ldr r2, [r0, #0x130] + ldr r1, [r0, #0x134] + mov r3, #0 + add r2, r2, r1, lsl #2 + strb r3, [sp] + sub r1, sp, #4 + strb r3, [r1] + ldr r3, [r1] + mov r1, lr + add r0, r0, #0x130 + str lr, [sp, #0x24] + str r2, [sp, #0x18] + str r2, [sp, #0x10] + str lr, [sp, #0x14] + bl func_ov00_02080f94 + mov r0, #1 + add sp, sp, #0x28 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_020809b8Ei + + .global _ZN7MapBase18func_ov00_02080a78EP5Vec3p + arm_func_start _ZN7MapBase18func_ov00_02080a78EP5Vec3p +_ZN7MapBase18func_ov00_02080a78EP5Vec3p: ; 0x02080a78 + stmdb sp!, {r4, lr} + sub sp, sp, #0x18 + mov r4, r0 + add r3, sp, #0xc + ldmia r1, {r0, r1, r2} + stmia r3, {r0, r1, r2} + ldr r1, [r4, #0x130] + ldr r2, [r4, #0x134] + add r0, sp, #8 + add r2, r1, r2, lsl #2 + str r2, [sp] + str r1, [sp, #4] + bl _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ + ldr r1, [r4, #0x130] + ldr r0, [r4, #0x134] + ldr r2, [sp, #8] + add r0, r1, r0, lsl #2 + cmp r2, r0 + moveq r0, #0 + ldrne r0, [r2] + add sp, sp, #0x18 + ldmia sp!, {r4, pc} + arm_func_end _ZN7MapBase18func_ov00_02080a78EP5Vec3p + + .global _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ + arm_func_start _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ +_ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_: ; 0x02080ad0 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r3 + ldr r5, [sp, #0x20] + ldr r4, [sp, #0x1c] + b _02080af0 +_02080aec: + add r4, r4, #4 +_02080af0: + cmp r4, r5 + beq _02080b14 + ldr r0, [r4] + mov r1, r6 + ldr r2, [r0] + ldr r2, [r2] + blx r2 + cmp r0, #0 + beq _02080aec +_02080b14: + str r4, [r7] + ldmia sp!, {r3, r4, r5, r6, r7, lr} + add sp, sp, #0x10 + bx lr + arm_func_end _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ + + .global _ZN7MapBase18func_ov00_02080b24EP5Vec2b + arm_func_start _ZN7MapBase18func_ov00_02080b24EP5Vec2b +_ZN7MapBase18func_ov00_02080b24EP5Vec2b: ; 0x02080b24 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x14 + ldr r3, [r0] + mov r2, #4 + ldr r3, [r3, #0x58] + str r0, [sp] + mov r10, r1 + blx r3 + cmp r0, #0 + addne sp, sp, #0x14 + ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldr r0, [sp] + ldrh r0, [r0, #0x30] + cmp r0, #0x60 + blo _02080cd0 + ldr r0, [sp] + mov r6, #0 + ldrh r0, [r0, #0x28] + mov r7, r6 + mov r8, r6 + str r0, [sp, #4] + cmp r0, #0 + ldr r0, [sp] + ldrh r11, [r0, #0x2a] + ble _02080c4c +_02080b88: + cmp r11, #0 + mov r9, #0 + ble _02080c3c + and r0, r8, #0xff + str r0, [sp, #8] +_02080b9c: + ldr r1, [sp, #8] + ldr r0, [sp] + strb r1, [sp, #0x10] + strb r9, [sp, #0x11] + ldr r2, [r0] + add r1, sp, #0x10 + ldr r2, [r2, #0x78] + blx r2 + movs r5, r0 + beq _02080c30 + ldr r1, [r0] + ldr r1, [r1, #0x1c] + blx r1 + cmp r0, #0x42 + bne _02080c30 + cmp r6, #0 + ldrb r0, [r10] + bne _02080c08 + sub r0, r8, r0 + mov r6, r5 + bl func_02042f68 + ldrb r1, [r10, #1] + mov r4, r0 + sub r0, r9, r1 + bl func_02042f68 + add r7, r4, r0 + b _02080c30 +_02080c08: + sub r0, r8, r0 + bl func_02042f68 + ldrb r1, [r10, #1] + mov r4, r0 + sub r0, r9, r1 + bl func_02042f68 + add r0, r4, r0 + cmp r0, r7 + movgt r6, r5 + movgt r7, r0 +_02080c30: + add r9, r9, #1 + cmp r9, r11 + blt _02080b9c +_02080c3c: + ldr r0, [sp, #4] + add r8, r8, #1 + cmp r8, r0 + blt _02080b88 +_02080c4c: + cmp r6, #0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldr r1, [r6, #4] + ldr r0, [sp] + bic r1, r1, #1 + str r1, [r6, #4] + ldrb r4, [r6, #0x15] + ldrb r3, [r6, #0x14] + add r1, sp, #0xe + mov r2, #4 + strb r3, [sp, #0xe] + strb r4, [sp, #0xf] + ldr r4, [r0] + mov r3, #0 + ldr r4, [r4, #0x98] + blx r4 + ldrb r3, [r6, #0x15] + ldrb r2, [r6, #0x14] + ldr r0, [sp] + add r1, sp, #0xc + strb r2, [sp, #0xc] + strb r3, [sp, #0xd] + ldr r4, [r0] + mov r2, #6 + ldr r4, [r4, #0x98] + mov r3, #1 + blx r4 + ldr r0, [sp] + ldrh r0, [r0, #0x30] + sub r1, r0, #1 + ldr r0, [sp] + strh r1, [r0, #0x30] +_02080cd0: + ldr r0, [sp] + mov r1, r10 + ldr r4, [r0] + mov r2, #4 + ldr r4, [r4, #0x98] + mov r3, #1 + blx r4 + ldr r0, [sp] + ldrh r0, [r0, #0x30] + add r1, r0, #1 + ldr r0, [sp] + strh r1, [r0, #0x30] + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + arm_func_end _ZN7MapBase18func_ov00_02080b24EP5Vec2b + + .global _ZN7MapBase18func_ov00_02080d08Ei + arm_func_start _ZN7MapBase18func_ov00_02080d08Ei +_ZN7MapBase18func_ov00_02080d08Ei: ; 0x02080d08 + stmdb sp!, {r3, r4, r5, lr} + ldr r3, [r0] + mov r2, #4 + ldr r3, [r3, #0x58] + mov r5, r0 + mov r4, r1 + blx r3 + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, pc} + mov r0, r5 + ldr ip, [r0] + mov r1, r4 + ldr ip, [ip, #0x98] + mov r2, #4 + mov r3, #0 + blx ip + mov r0, r5 + ldr ip, [r0] + mov r1, r4 + ldr ip, [ip, #0x98] + mov r2, #6 + mov r3, #1 + blx ip + ldrh r0, [r5, #0x30] + sub r0, r0, #1 + strh r0, [r5, #0x30] + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN7MapBase18func_ov00_02080d08Ei + + .global _ZN7MapBase8vfunc_bcEv + arm_func_start _ZN7MapBase8vfunc_bcEv +_ZN7MapBase8vfunc_bcEv: ; 0x02080d74 + bx lr + arm_func_end _ZN7MapBase8vfunc_bcEv + + .global _ZN7MapBase8vfunc_98Ev + arm_func_start _ZN7MapBase8vfunc_98Ev +_ZN7MapBase8vfunc_98Ev: ; 0x02080d78 + bx lr + arm_func_end _ZN7MapBase8vfunc_98Ev + + .global _ZN7MapBase8vfunc_c0Ev + arm_func_start _ZN7MapBase8vfunc_c0Ev +_ZN7MapBase8vfunc_c0Ev: ; 0x02080d7c + bx lr + arm_func_end _ZN7MapBase8vfunc_c0Ev + + .global _ZN7MapBase22TriggerOfType_vfunc_10Ei + arm_func_start _ZN7MapBase22TriggerOfType_vfunc_10Ei +_ZN7MapBase22TriggerOfType_vfunc_10Ei: ; 0x02080d80 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r4, [r6, #0x10c] + ldr r0, [r6, #0x110] + mov r5, r1 + add r0, r4, r0, lsl #2 + cmp r4, r0 + beq _02080dd4 +_02080da0: + ldr r0, [r4] + ldrb r1, [r0, #5] + cmp r5, r1 + bne _02080dbc + ldr r1, [r0] + ldr r1, [r1, #0x10] + blx r1 +_02080dbc: + ldr r1, [r6, #0x10c] + ldr r0, [r6, #0x110] + add r4, r4, #4 + add r0, r1, r0, lsl #2 + cmp r4, r0 + bne _02080da0 +_02080dd4: + mov r0, #1 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN7MapBase22TriggerOfType_vfunc_10Ei + + .global _ZN11TriggerBase8vfunc_10Ev + arm_func_start _ZN11TriggerBase8vfunc_10Ev +_ZN11TriggerBase8vfunc_10Ev: ; 0x02080ddc + mov r0, #1 + bx lr + arm_func_end _ZN11TriggerBase8vfunc_10Ev + + .global _ZN7MapBase18func_ov00_02080de4Ev + arm_func_start _ZN7MapBase18func_ov00_02080de4Ev +_ZN7MapBase18func_ov00_02080de4Ev: ; 0x02080de4 + bx lr + arm_func_end _ZN7MapBase18func_ov00_02080de4Ev + + .global _ZN7MapBase18func_ov00_02080de8Ei + arm_func_start _ZN7MapBase18func_ov00_02080de8Ei +_ZN7MapBase18func_ov00_02080de8Ei: ; 0x02080de8 + stmdb sp!, {r4, r5, r6, lr} + ldr r2, _02080ed4 ; =data_027e0f64 + mov r5, r0 + ldr r0, [r2] + mov r4, #0 + add r0, r0, r1, lsl #2 + ldr r6, [r0, #4] + ldr r0, [r6, #0x15c] + cmp r0, #0x16 + bgt _02080e64 + bge _02080e84 + cmp r0, #0xb + bgt _02080e58 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _02080e94 +_02080e28: ; jump table + b _02080e84 ; case 0 + b _02080e84 ; case 1 + b _02080e84 ; case 2 + b _02080e8c ; case 3 + b _02080e94 ; case 4 + b _02080e94 ; case 5 + b _02080e94 ; case 6 + b _02080e94 ; case 7 + b _02080e94 ; case 8 + b _02080e94 ; case 9 + b _02080e94 ; case 10 + b _02080e88 ; case 11 +_02080e58: + cmp r0, #0x15 + beq _02080e84 + b _02080e94 +_02080e64: + cmp r0, #0x5a + bgt _02080e7c + bge _02080e84 + cmp r0, #0x33 + beq _02080e84 + b _02080e94 +_02080e7c: + cmp r0, #0x5b + bne _02080e94 +_02080e84: + mov r4, #0 +_02080e88: + b _02080ec8 +_02080e8c: + mov r4, #0x1f + b _02080ec8 +_02080e94: + mov r0, r6 + bl func_ov00_02087dd8 + cmp r0, #0 + beq _02080ec8 + add r0, r6, #0x200 + ldrsh r1, [r0, #0x24] + ldr r0, _02080ed8 ; =0x00001c72 + cmp r1, r0 + ble _02080ec4 + rsb r0, r0, #0x4000 + cmp r1, r0 + blt _02080ec8 +_02080ec4: + mov r4, #0x1f +_02080ec8: + ldr r0, [r5, #0x140] + strb r4, [r0, #0x5c] + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_02080de8Ei +_02080ed4: .word data_027e0f64 +_02080ed8: .word 0x00001c72 + + .global _ZN7MapBase18func_ov00_02080edcEv + arm_func_start _ZN7MapBase18func_ov00_02080edcEv +_ZN7MapBase18func_ov00_02080edcEv: ; 0x02080edc + stmdb sp!, {r4, lr} + ldr r1, _02080f1c ; =data_027e0d38 + mov r4, r0 + ldr r0, [r1] + add r0, r0, #0xc + bl func_ov00_020a5e9c + cmp r0, #0x2a + cmpne r0, #0x2f + cmpne r0, #0x30 + bne _02080f10 + mov r0, #0 + strb r0, [r4, #5] + ldmia sp!, {r4, pc} +_02080f10: + mov r0, #1 + strb r0, [r4, #5] + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_02080edcEv +_02080f1c: .word data_027e0d38 + + .data + .global data_ov00_020e22fc +data_ov00_020e22fc: ; 0x020e22fc + .ascii "fnl" + .byte 0x00 + .global data_ov00_020e2300 +data_ov00_020e2300: ; 0x020e2300 + .ascii "bow" + .byte 0x00 + .global data_ov00_020e2304 +data_ov00_020e2304: ; 0x020e2304 + .ascii "dco" + .byte 0x00 + .global data_ov00_020e2308 +data_ov00_020e2308: ; 0x020e2308 + .ascii "can" + .byte 0x00 + .global data_ov00_020e230c +data_ov00_020e230c: ; 0x020e230c + .ascii "hul" + .byte 0x00 + .global data_ov00_020e2310 +data_ov00_020e2310: ; 0x020e2310 + .ascii "pdl" + .byte 0x00 + .global data_ov00_020e2314 +data_ov00_020e2314: ; 0x020e2314 + .ascii "anc" + .byte 0x00 + .global data_ov00_020e2318 +data_ov00_020e2318: ; 0x020e2318 + .ascii "brg" + .byte 0x00 + .global data_ov00_020e231c +data_ov00_020e231c: ; 0x020e231c + .word data_ov00_020e2314 + .global data_ov00_020e2320 +data_ov00_020e2320: ; 0x020e2320 + .word data_ov00_020e2300 + .global data_ov00_020e2324 +data_ov00_020e2324: ; 0x020e2324 + .word data_ov00_020e230c + .global data_ov00_020e2328 +data_ov00_020e2328: ; 0x020e2328 + .word data_ov00_020e2308 + .global data_ov00_020e232c +data_ov00_020e232c: ; 0x020e232c + .word data_ov00_020e2304 + .global data_ov00_020e2330 +data_ov00_020e2330: ; 0x020e2330 + .word data_ov00_020e2310 + .global data_ov00_020e2334 +data_ov00_020e2334: ; 0x020e2334 + .word data_ov00_020e22fc + .global data_ov00_020e2338 +data_ov00_020e2338: ; 0x020e2338 + .word data_ov00_020e2318 + .global data_ov00_020e233c +data_ov00_020e233c: ; 0x020e233c + .word data_ov00_020e240c + .global data_ov00_020e2340 +data_ov00_020e2340: ; 0x020e2340 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2344 +data_ov00_020e2344: ; 0x020e2344 + .byte 0x00, 0x00, 0x00, 0x00 + .global _ZTV7MapBase +_ZTV7MapBase: ; 0x020e2348 + .word _ZN7MapBaseD2Ev + .global data_ov00_020e234c +data_ov00_020e234c: ; 0x020e234c + .word _ZN7MapBaseD0Ev + .global data_ov00_020e2350 +data_ov00_020e2350: ; 0x020e2350 + .word func_ov04_0210c1f8 ; data_ov07_0210c1f8 + .global data_ov00_020e2354 +data_ov00_020e2354: ; 0x020e2354 + .word func_ov04_0210c3fc ; data_ov07_0210c3fc + .global data_ov00_020e2358 +data_ov00_020e2358: ; 0x020e2358 + .word func_ov04_0210c52c ; data_ov07_0210c52c + .global data_ov00_020e235c +data_ov00_020e235c: ; 0x020e235c + .word func_ov04_0210bfa8 ; data_ov07_0210bfa8 + .global data_ov00_020e2360 +data_ov00_020e2360: ; 0x020e2360 + .word _ZN7MapBase8vfunc_18Ev + .global data_ov00_020e2364 +data_ov00_020e2364: ; 0x020e2364 + .word func_ov05_02111bc0 + .global data_ov00_020e2368 +data_ov00_020e2368: ; 0x020e2368 + .word func_ov05_02111c00 + .global data_ov00_020e236c +data_ov00_020e236c: ; 0x020e236c + .word func_ov05_02111c6c + .global data_ov00_020e2370 +data_ov00_020e2370: ; 0x020e2370 + .word func_ov05_02111c70 + .global data_ov00_020e2374 +data_ov00_020e2374: ; 0x020e2374 + .word func_ov04_0210c5cc ; data_ov07_0210c5cc + .global data_ov00_020e2378 +data_ov00_020e2378: ; 0x020e2378 + .word func_ov04_0210c764 ; data_ov07_0210c764 + .global data_ov00_020e237c +data_ov00_020e237c: ; 0x020e237c + .word func_ov04_0210c800 ; data_ov07_0210c800 + .global data_ov00_020e2380 +data_ov00_020e2380: ; 0x020e2380 + .word func_ov04_0210c88c ; data_ov07_0210c88c + .global data_ov00_020e2384 +data_ov00_020e2384: ; 0x020e2384 + .word func_ov04_0210c8d4 ; data_ov07_0210c8d4 + .global data_ov00_020e2388 +data_ov00_020e2388: ; 0x020e2388 + .word func_ov04_0210ca84 ; data_ov07_0210ca84 + .global data_ov00_020e238c +data_ov00_020e238c: ; 0x020e238c + .word func_ov04_0210cb00 ; data_ov07_0210cb00 + .global data_ov00_020e2390 +data_ov00_020e2390: ; 0x020e2390 + .word _ZN7MapBase8vfunc_48Ev + .global data_ov00_020e2394 +data_ov00_020e2394: ; 0x020e2394 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2398 +data_ov00_020e2398: ; 0x020e2398 + .word _ZN7MapBase8vfunc_50Ev + .global data_ov00_020e239c +data_ov00_020e239c: ; 0x020e239c + .word _ZN7MapBase8vfunc_54Ev + .global data_ov00_020e23a0 +data_ov00_020e23a0: ; 0x020e23a0 + .word _ZN7MapBase8vfunc_58Ev + .global data_ov00_020e23a4 +data_ov00_020e23a4: ; 0x020e23a4 + .word _ZN7MapBase8vfunc_5cEv + .global data_ov00_020e23a8 +data_ov00_020e23a8: ; 0x020e23a8 + .word _ZN7MapBase8vfunc_60Ev + .global data_ov00_020e23ac +data_ov00_020e23ac: ; 0x020e23ac + .word _ZN7MapBase8vfunc_64Ev + .global data_ov00_020e23b0 +data_ov00_020e23b0: ; 0x020e23b0 + .word _ZN7MapBase8vfunc_68Eii + .global data_ov00_020e23b4 +data_ov00_020e23b4: ; 0x020e23b4 + .word _ZN7MapBase8vfunc_6cEiii + .global data_ov00_020e23b8 +data_ov00_020e23b8: ; 0x020e23b8 + .word _ZN7MapBase8vfunc_70EP5Vec3p + .global data_ov00_020e23bc +data_ov00_020e23bc: ; 0x020e23bc + .word _ZN7MapBase8vfunc_74EP5Vec3p + .global data_ov00_020e23c0 +data_ov00_020e23c0: ; 0x020e23c0 + .word _ZN7MapBase8vfunc_78Ev + .global data_ov00_020e23c4 +data_ov00_020e23c4: ; 0x020e23c4 + .word _ZN7MapBase8vfunc_7cEv + .global data_ov00_020e23c8 +data_ov00_020e23c8: ; 0x020e23c8 + .word _ZN7MapBase8vfunc_80Ev + .global data_ov00_020e23cc +data_ov00_020e23cc: ; 0x020e23cc + .word _ZN7MapBase8vfunc_84Ei + .global data_ov00_020e23d0 +data_ov00_020e23d0: ; 0x020e23d0 + .word _ZN7MapBase8vfunc_88Ev + .global data_ov00_020e23d4 +data_ov00_020e23d4: ; 0x020e23d4 + .word _ZN7MapBase8vfunc_8cEv + .global data_ov00_020e23d8 +data_ov00_020e23d8: ; 0x020e23d8 + .word _ZN7MapBase8vfunc_90Eiii + .global data_ov00_020e23dc +data_ov00_020e23dc: ; 0x020e23dc + .word _ZN7MapBase8vfunc_94Ev + .global data_ov00_020e23e0 +data_ov00_020e23e0: ; 0x020e23e0 + .word _ZN7MapBase8vfunc_98Ev + .global data_ov00_020e23e4 +data_ov00_020e23e4: ; 0x020e23e4 + .word _ZN7MapBase8vfunc_9cEv + .global data_ov00_020e23e8 +data_ov00_020e23e8: ; 0x020e23e8 + .word _ZN7MapBase8vfunc_a0Ev + .global data_ov00_020e23ec +data_ov00_020e23ec: ; 0x020e23ec + .word _ZN7MapBase8vfunc_a4Ev + .global data_ov00_020e23f0 +data_ov00_020e23f0: ; 0x020e23f0 + .word _ZN7MapBase8vfunc_a8Ev + .global data_ov00_020e23f4 +data_ov00_020e23f4: ; 0x020e23f4 + .word _ZN7MapBase8vfunc_acEv + .global data_ov00_020e23f8 +data_ov00_020e23f8: ; 0x020e23f8 + .word _ZN7MapBase8vfunc_b0Eii + .global data_ov00_020e23fc +data_ov00_020e23fc: ; 0x020e23fc + .word _ZN7MapBase8vfunc_b4Ev + .global data_ov00_020e2400 +data_ov00_020e2400: ; 0x020e2400 + .word _ZN7MapBase8vfunc_b8Ev + .global data_ov00_020e2404 +data_ov00_020e2404: ; 0x020e2404 + .word _ZN7MapBase8vfunc_bcEv + .global data_ov00_020e2408 +data_ov00_020e2408: ; 0x020e2408 + .word _ZN7MapBase8vfunc_c0Ev + .global data_ov00_020e240c +data_ov00_020e240c: ; 0x020e240c + .ascii "M00" + .byte 0x00 + .global data_ov00_020e2410 +data_ov00_020e2410: ; 0x020e2410 + .ascii "Map/%s/map%d%d.bin" + .byte 0x00, 0x00 + + .sbss + .global data_ov00_020ec81c +data_ov00_020ec81c: + .space 0x4 + .global data_ov00_020ec820 +data_ov00_020ec820: + .space 0x4 + .global data_ov00_020ec824 +data_ov00_020ec824: + .space 0x40 + .global data_ov00_020ec864 +data_ov00_020ec864: + .space 0x40 + .global data_ov00_020ec8a4 +data_ov00_020ec8a4: + .space 0x40 + .global data_ov00_020ec8e4 +data_ov00_020ec8e4: + .space 0x40 + .global data_ov00_020ec924 +data_ov00_020ec924: + .space 0x40 diff --git a/asm/ov00/Map/MapManager.inc b/asm/ov00/Map/MapManager.inc new file mode 100644 index 00000000..744b5b7b --- /dev/null +++ b/asm/ov00/Map/MapManager.inc @@ -0,0 +1,180 @@ +#pragma once +.extern Divide +.extern _ZN12ActorManager13FindActorByIdEj +.extern _ZN12ActorManager18func_ov00_020c3ce8Eii +.extern _ZN14AdventureFlags18func_ov00_020976c8Ev +.extern _ZN6Course13Get_Unk_c8_04Ev +.extern _ZN6Course18GetDungeonProgressEP14CourseProgress +.extern _ZN6Course18func_ov00_0207ca28Eiii +.extern _ZN6Course18func_ov00_0207caa8EiPiPc +.extern _ZN6Course18func_ov00_0207cb30Ei +.extern _ZN6Course14FindMapGridPosEP5Vec2bPS_j +.extern _ZN6Course13FindMapCenterEi +.extern _ZN6Course18func_ov00_0207cbe8Ei +.extern _ZN6Course18func_ov00_0207cc24Ei +.extern _ZN6Course18FindMapData_Unk_08Ei +.extern _ZN6Course18func_ov00_0207ce20EiiPci +.extern _ZN6Course18func_ov00_0207d404Eiii +.extern _ZN6Course22IsCurrentMapInMainGridEv +.extern _ZN6Course15IsMapInMainGridEj +.extern _ZN6Course15GetMapScreenPosEiPiS0_ +.extern _ZN6Course21GetScreenMapCellSizeXEv +.extern _ZN6Course21GetScreenMapCellSizeYEv +.extern _ZN6Course13Get_Unk_c8_00Ev +.extern _ZN6Course25FindCurrentMapData_Unk_04Ev +.extern _ZN6Course18FindMapData_Unk_04Ei +.extern _ZN6Course18func_ov00_0207d7bcEv +.extern _ZN6Course8SetFlag0Ejb +.extern _ZN6Course8GetFlag0Ej +.extern _ZN6Course8SetFlag1Ejb +.extern _ZN6Course8SetFlag1Ej +.extern _ZN6Course15SetMapDataFlag0Eib +.extern _ZN6Course15GetMapDataFlag0Ei +.extern _ZN6Course15SetMapDataFlag1Eib +.extern _ZN6Course15GetMapDataFlag1Ei +.extern _ZN6Course15SetMapDataFlag2Eib +.extern _ZN6Course15GetMapDataFlag2Ei +.extern _ZN6Course15SetMapDataFlag3Eib +.extern _ZN6Course15GetMapDataFlag3Ei +.extern _ZN6Course15SetMapDataFlag4Eii +.extern _ZN6Course15GetMapDataFlag4Ei +.extern _ZN9SysObjectnwEmPjj +.extern __register_global_object +.extern data_027e077c +.extern data_027e0c68 +.extern data_027e0ce0 +.extern data_027e0d38 +.extern data_027e0d3c +.extern data_027e0f64 +.extern data_027e0f68 +.extern data_027e0f6c +.extern data_027e0f70 +.extern data_027e0f78 +.extern data_027e0f7c +.extern data_027e0f90 +.extern data_027e0f94 +.extern data_027e0fe4 +.extern data_027e0fe8 +.extern data_027e103c +.extern data_ov00_020e24a4 +.extern data_ov00_020eec68 +.extern data_ov15_02190458 +.extern func_01ff9bc4 +.extern func_01ff9bf8 +.extern func_01ff9cec +.extern func_01ff9d4c +.extern func_01ff9e64 +.extern func_01ff9ec0 +.extern func_01ffbe78 +.extern func_01ffe61c +.extern func_01fffb4c +.extern func_01fffbec +.extern func_0200c8d0 +.extern func_0202b2e8 +.extern func_0202b8e4 +.extern func_ov00_02078b40 +.extern func_ov00_02078bc4 +.extern func_ov00_02078bf0 +.extern func_ov00_02078fe8 +.extern func_ov00_0207920c +.extern func_ov00_020792a0 +.extern func_ov00_02079898 +.extern func_ov00_020798bc +.extern _ZN15MapManager_Unk2D1Ev +.extern _ZN7MapBase18func_ov00_0207de68Ei +.extern _ZN7MapBase18func_ov00_0207de88Ev +.extern _ZN7MapBase18func_ov00_0207e08cEii +.extern _ZN7MapBase18func_ov00_0207e0f0Ei +.extern _ZN7MapBase18func_ov00_0207e28cEi +.extern _ZN7MapBase18func_ov00_0207e968Ev +.extern _ZN7MapBase18func_ov00_0207f38cEi +.extern _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p +.extern _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p +.extern _ZN7MapBase13GetTileStartXEi +.extern _ZN7MapBase13GetTileStartZEi +.extern _ZN7MapBase11GetTileEndXEi +.extern _ZN7MapBase11GetTileEndZEi +.extern _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB +.extern _ZN7MapBase15GetClampedTileXEi +.extern _ZN7MapBase15GetClampedTileYEi +.extern _ZN7MapBase10IsInBoundsEP5Vec3p +.extern _ZN7MapBase11AddEntranceEP8Entrance +.extern _ZN7MapBase12FindEntranceEi +.extern _ZN7MapBase18func_ov00_0207f924Ei +.extern _ZN7MapBase18func_ov00_0207f934Ev +.extern _ZN7MapBase18func_ov00_0207f948Ei +.extern _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB +.extern _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi +.extern _ZN7MapBase21GetOverlappingTriggerEP5Vec3p +.extern _ZN7MapBase11FindTriggerEi +.extern _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p +.extern _ZN7MapBase18AnyTrigger_func_0cEi +.extern _ZN7MapBase10AddTriggerEi +.extern _ZN7MapBase18func_ov00_0207ff88Ei +.extern _ZN7MapBase18func_ov00_0208005cEiii +.extern _ZN7MapBase18func_ov00_0208006cEii +.extern _ZN7MapBase18func_ov00_0208007cEii +.extern _ZN7MapBase18func_ov00_0208008cEj +.extern _ZN7MapBase18func_ov00_02080140EP4Exit +.extern _ZN7MapBase8FindExitEiP4Exit +.extern _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint +.extern _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint +.extern _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi +.extern _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei +.extern _ZN7MapBase18func_ov00_02080824Eii +.extern _ZN7MapBase10AddUnk_130Ei +.extern _ZN7MapBase18func_ov00_020809b8Ei +.extern _ZN7MapBase18func_ov00_02080a78EP5Vec3p +.extern _ZN7MapBase18func_ov00_02080b24EP5Vec2b +.extern _ZN7MapBase18func_ov00_02080d08Ei +.extern _ZN7MapBase22TriggerOfType_vfunc_10Ei +.extern func_ov00_02086cd0 +.extern func_ov00_02088000 +.extern func_ov00_02088130 +.extern func_ov00_02088144 +.extern func_ov00_0208b13c +.extern func_ov00_0208b180 +.extern func_ov00_0208b73c +.extern func_ov00_0208b7d0 +.extern func_ov00_0208b804 +.extern func_ov00_0208cc88 +.extern func_ov00_0208d620 +.extern func_ov00_0208d680 +.extern func_ov00_0208df78 +.extern func_ov00_0208e6b0 +.extern func_ov00_0208e6f0 +.extern func_ov00_0208e704 +.extern func_ov00_0208e87c +.extern func_ov00_0208ed74 +.extern func_ov00_0208ee00 +.extern func_ov00_02093a1c +.extern func_ov00_02096324 +.extern func_ov00_02096418 +.extern func_ov00_0209d6e8 +.extern func_ov00_0209d71c +.extern func_ov00_020a5e9c +.extern func_ov00_020c1500 +.extern func_ov00_020c3348 +.extern func_ov00_020c4048 +.extern func_ov00_020cfcec +.extern func_ov00_020d70a4 +.extern func_ov00_020d72b8 +.extern func_ov00_020d7424 +.extern func_ov04_021024c4 +.extern func_ov04_02102770 +.extern func_ov04_02102b28 +.extern func_ov04_02102e3c +.extern func_ov04_02105578 +.extern func_ov04_02105608 +.extern func_ov04_02106db8 +.extern func_ov12_0212b358 +.extern func_ov15_02128dd8 +.extern func_ov15_02129c14 +.extern func_ov15_02129c24 +.extern func_ov15_02129c34 +.extern func_ov15_02129c44 +.extern func_ov15_021849a4 +.extern func_ov17_0215b4e8 +.extern func_ov18_0215b4a0 +.extern gAdventureFlags +.extern gMapManager diff --git a/asm/ov00/Map/MapManager.s b/asm/ov00/Map/MapManager.s new file mode 100644 index 00000000..fe64cb25 --- /dev/null +++ b/asm/ov00/Map/MapManager.s @@ -0,0 +1,6742 @@ + .include "ov00/Map/MapManager.inc" + .include "macros/function.inc" + + .text + + .global _ZN10MapManager18func_ov00_020820ecEPi + arm_func_start _ZN10MapManager18func_ov00_020820ecEPi +_ZN10MapManager18func_ov00_020820ecEPi: ; 0x020820ec + ldr ip, _020820f8 ; =_ZN6Course18GetDungeonProgressEP14CourseProgress + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020820ecEPi +_020820f8: .word _ZN6Course18GetDungeonProgressEP14CourseProgress + + .global _ZN10MapManager18func_ov00_020820fcEiii + arm_func_start _ZN10MapManager18func_ov00_020820fcEiii +_ZN10MapManager18func_ov00_020820fcEiii: ; 0x020820fc + ldr ip, _02082108 ; =_ZN6Course18func_ov00_0207ca28Eiii + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020820fcEiii +_02082108: .word _ZN6Course18func_ov00_0207ca28Eiii + + .global _ZN10MapManager18func_ov00_0208210cEii + arm_func_start _ZN10MapManager18func_ov00_0208210cEii +_ZN10MapManager18func_ov00_0208210cEii: ; 0x0208210c + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x30 + mov lr, #0 + sub ip, lr, #2 + mov r6, #0x47 + mov r3, #0xff + mov r5, r0 + mov r4, r2 + str r6, [sp, #0x18] + str lr, [sp, #0x1c] + str lr, [sp, #0x20] + str ip, [sp, #0x24] + strh lr, [sp, #0x28] + strb r3, [sp, #0x2a] + strb lr, [sp, #0x2b] + strb lr, [sp, #0x2c] + strb lr, [sp, #0x2d] + cmp r1, #0 + beq _02082170 + mov r0, #0xb + str r0, [r4] + mov r0, #2 + strb r0, [r4, #4] + mov r0, #4 + b _02082190 +_02082170: + add r1, sp, #0x18 + bl _ZN10MapManager18func_ov00_02082348Ei + add r0, sp, #0x18 + bl func_ov00_020a5e9c + str r0, [r4] + ldrb r0, [sp, #0x2a] + strb r0, [r4, #4] + ldrb r0, [sp, #0x2b] +_02082190: + strb r0, [r4, #5] + ldr r0, _02082300 ; =data_027e0d38 + ldr r0, [r0] + ldr r0, [r0, #0x28] + add r0, r0, #0x1c + bl func_ov00_020a5e9c + ldr r1, _02082300 ; =data_027e0d38 + str r0, [r4, #8] + ldr r0, [r1] + ldr r0, [r0, #0x28] + ldrb r0, [r0, #0x2e] + strb r0, [r4, #0x10] + ldr r0, [r1] + ldr r0, [r0, #0x28] + ldrsh r0, [r0, #0x36] + strh r0, [r4, #0x14] + ldr r0, [r1] + ldr r2, [r0, #0x28] + ldr r0, [r2, #0x38] + str r0, [r4, #0x18] + ldr r0, [r2, #0x3c] + str r0, [r4, #0x1c] + ldr r0, [r2, #0x40] + str r0, [r4, #0x20] + ldr r0, [r1] + ldr r0, [r0, #0x28] + add r0, r0, #0x44 + bl func_ov00_020a5e9c + str r0, [r4, #0xc] + ldr r1, _02082300 ; =data_027e0d38 + add r0, sp, #0 + ldr r2, [r1] + ldr r2, [r2, #0x28] + ldrb r2, [r2, #0x56] + strb r2, [r4, #0x11] + ldr r2, [r1] + ldr r3, [r2, #0x28] + ldr r2, [r3, #0x5c] + str r2, [r4, #0x24] + ldr r2, [r3, #0x60] + str r2, [r4, #0x28] + ldr r2, [r3, #0x64] + str r2, [r4, #0x2c] + ldr r2, [r1] + ldr r2, [r2, #0x28] + ldrsh r2, [r2, #0x68] + strh r2, [r4, #0x16] + ldr r1, [r1] + ldr r2, [r1, #0x28] + ldr r1, [r2, #0x70] + str r1, [sp] + ldr r1, [r2, #0x74] + str r1, [sp, #4] + ldr r1, [r2, #0x78] + str r1, [sp, #8] + ldr r1, [r2, #0x7c] + str r1, [sp, #0xc] + ldrsh r1, [r2, #0x80] + strh r1, [sp, #0x10] + ldrb r1, [r2, #0x82] + strb r1, [sp, #0x12] + ldrb r1, [r2, #0x83] + strb r1, [sp, #0x13] + ldrb r1, [r2, #0x84] + strb r1, [sp, #0x14] + ldrb r1, [r2, #0x85] + strb r1, [sp, #0x15] + bl func_ov00_020a5e9c + str r0, [r4, #0x1c0] + ldrb r2, [sp, #0x12] + ldr r0, _02082304 ; =data_027e0f70 + mov r1, r4 + strb r2, [r4, #0x1be] + ldrb r2, [sp, #0x13] + strb r2, [r4, #0x1bf] + ldr r0, [r0] + bl func_ov00_02096324 + ldr r0, _02082308 ; =data_027e0f7c + mov r1, r4 + ldr r0, [r0] + bl func_ov00_0209d6e8 + ldr r0, [r5] + ldr r0, [r0, #4] + cmp r0, #3 + addeq sp, sp, #0x30 + ldmeqia sp!, {r4, r5, r6, pc} + ldrb r0, [r5, #8] + strb r0, [r4, #7] + ldrb r0, [r5, #9] + strb r0, [r4, #0x1bc] + add sp, sp, #0x30 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_0208210cEii +_02082300: .word data_027e0d38 +_02082304: .word data_027e0f70 +_02082308: .word data_027e0f7c + + .global _ZN10MapManager18func_ov00_0208230cEi + arm_func_start _ZN10MapManager18func_ov00_0208230cEi +_ZN10MapManager18func_ov00_0208230cEi: ; 0x0208230c + stmdb sp!, {r3, lr} + ldr r3, [r0] + mov r2, #0xa + ldr r3, [r3] + str r3, [r1] + ldr lr, [r0] + ldrb ip, [lr, #0x1c] + ldrb r3, [lr, #0x1d] + mla r2, ip, r2, lr + add r2, r2, r3 + ldrb r2, [r2, #0x20] + strb r2, [r1, #0x12] + ldrb r0, [r0, #0xc] + strb r0, [r1, #0x13] + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_0208230cEi + + .global _ZN10MapManager18func_ov00_02082348Ei + arm_func_start _ZN10MapManager18func_ov00_02082348Ei +_ZN10MapManager18func_ov00_02082348Ei: ; 0x02082348 + stmdb sp!, {r4, lr} + sub sp, sp, #0x18 + mov ip, #0 + mov r4, r1 + sub r3, ip, #2 + mov lr, #0x47 + mov r2, #0xff + add r1, sp, #0 + str lr, [sp] + str ip, [sp, #4] + str ip, [sp, #8] + str r3, [sp, #0xc] + strh ip, [sp, #0x10] + strb r2, [sp, #0x12] + strb ip, [sp, #0x13] + strb ip, [sp, #0x14] + strb ip, [sp, #0x15] + bl _ZN10MapManager18func_ov00_0208230cEi + add r0, sp, #0 + mov r1, r4 + blx func_ov00_02078bf0 + add sp, sp, #0x18 + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager18func_ov00_02082348Ei + + .global _ZN10MapManager18func_ov00_020823a4Ei + arm_func_start _ZN10MapManager18func_ov00_020823a4Ei +_ZN10MapManager18func_ov00_020823a4Ei: ; 0x020823a4 + ldr ip, _020823b0 ; =_ZN7MapBase18func_ov00_0207de68Ei + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020823a4Ei +_020823b0: .word _ZN7MapBase18func_ov00_0207de68Ei + + .global _ZN10MapManager18func_ov00_020823b4Ev + arm_func_start _ZN10MapManager18func_ov00_020823b4Ev +_ZN10MapManager18func_ov00_020823b4Ev: ; 0x020823b4 + ldr ip, _020823c0 ; =_ZN7MapBase18func_ov00_0207de88Ev + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020823b4Ev +_020823c0: .word _ZN7MapBase18func_ov00_0207de88Ev + + .global _ZN10MapManager18func_ov00_020823c4EPii + arm_func_start _ZN10MapManager18func_ov00_020823c4EPii +_ZN10MapManager18func_ov00_020823c4EPii: ; 0x020823c4 + ldr ip, _020823d0 ; =_ZN7MapBase18func_ov00_0207e08cEii + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020823c4EPii +_020823d0: .word _ZN7MapBase18func_ov00_0207e08cEii + + .global _ZN10MapManager18func_ov00_020823d4Ei + arm_func_start _ZN10MapManager18func_ov00_020823d4Ei +_ZN10MapManager18func_ov00_020823d4Ei: ; 0x020823d4 + ldr ip, _020823e0 ; =_ZN7MapBase18func_ov00_0207e0f0Ei + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020823d4Ei +_020823e0: .word _ZN7MapBase18func_ov00_0207e0f0Ei + + .global _ZN10MapManager18func_ov00_020823e4Ei + arm_func_start _ZN10MapManager18func_ov00_020823e4Ei +_ZN10MapManager18func_ov00_020823e4Ei: ; 0x020823e4 + ldr ip, _020823f0 ; =_ZN7MapBase18func_ov00_0207e28cEi + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020823e4Ei +_020823f0: .word _ZN7MapBase18func_ov00_0207e28cEi + + .global _ZN10MapManager16MapData_vfunc_b4Ev + arm_func_start _ZN10MapManager16MapData_vfunc_b4Ev +_ZN10MapManager16MapData_vfunc_b4Ev: ; 0x020823f4 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r1, [r0] + ldr r1, [r1, #0xb4] + blx r1 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_b4Ev + + .global _ZN10MapManager16MapData_vfunc_9cEv + arm_func_start _ZN10MapManager16MapData_vfunc_9cEv +_ZN10MapManager16MapData_vfunc_9cEv: ; 0x0208240c + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r1, [r0] + ldr r1, [r1, #0x9c] + blx r1 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_9cEv + + .global _ZN10MapManager18func_ov00_02082424Ev + arm_func_start _ZN10MapManager18func_ov00_02082424Ev +_ZN10MapManager18func_ov00_02082424Ev: ; 0x02082424 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, [r4, #4] + ldr r1, [r0] + ldr r1, [r1, #0x4c] + blx r1 + cmp r0, #2 + movne r0, #0 + ldmneia sp!, {r4, pc} + ldr r0, [r4, #4] + bl func_ov15_02129c14 + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager18func_ov00_02082424Ev + + .global _ZN10MapManager18func_ov00_02082454Eii + arm_func_start _ZN10MapManager18func_ov00_02082454Eii +_ZN10MapManager18func_ov00_02082454Eii: ; 0x02082454 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, [r6, #4] + mov r5, r1 + ldr r1, [r0] + mov r4, r2 + ldr r1, [r1, #0x4c] + blx r1 + cmp r0, #2 + movne r0, #0 + ldmneia sp!, {r4, r5, r6, pc} + ldr r0, [r6, #4] + mov r1, r5 + mov r2, r4 + bl func_ov15_02129c24 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN10MapManager18func_ov00_02082454Eii + + .global _ZN10MapManager18func_ov00_02082494Ei + arm_func_start _ZN10MapManager18func_ov00_02082494Ei +_ZN10MapManager18func_ov00_02082494Ei: ; 0x02082494 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #4] + mov r4, r1 + ldr r1, [r0] + ldr r1, [r1, #0x4c] + blx r1 + cmp r0, #2 + movne r0, #0 + ldmneia sp!, {r3, r4, r5, pc} + ldr r0, [r5, #4] + mov r1, r4 + bl func_ov15_02129c34 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN10MapManager18func_ov00_02082494Ei + + .global _ZN10MapManager18func_ov00_020824ccEi + arm_func_start _ZN10MapManager18func_ov00_020824ccEi +_ZN10MapManager18func_ov00_020824ccEi: ; 0x020824cc + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #4] + mov r4, r1 + ldr r1, [r0] + ldr r1, [r1, #0x4c] + blx r1 + cmp r0, #2 + movne r0, #0 + ldmneia sp!, {r3, r4, r5, pc} + ldr r0, [r5, #4] + mov r1, r4 + bl func_ov15_02129c44 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN10MapManager18func_ov00_020824ccEi + + .global _ZN10MapManager18func_ov00_02082504Ev + arm_func_start _ZN10MapManager18func_ov00_02082504Ev +_ZN10MapManager18func_ov00_02082504Ev: ; 0x02082504 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, [r4, #4] + ldr r1, [r0] + ldr r1, [r1, #0x4c] + blx r1 + cmp r0, #2 + movne r0, #0 + ldmneia sp!, {r4, pc} + ldr r0, [r4, #4] + add r0, r0, #0x100 + ldrsh r0, [r0, #0xac] + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager18func_ov00_02082504Ev + + .global _ZN10MapManager18func_ov00_02082538Ev + arm_func_start _ZN10MapManager18func_ov00_02082538Ev +_ZN10MapManager18func_ov00_02082538Ev: ; 0x02082538 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #0xc + mov r4, r0 + ldr r0, [r4, #4] + ldr r1, [r0] + ldr r1, [r1, #0x4c] + blx r1 + cmp r0, #2 + ldreq r0, [r4, #4] + addeq sp, sp, #0xc + addeq r0, r0, #0x1a0 + ldmeqia sp!, {r3, r4, pc} + ldr r1, _02082590 ; =data_027e0f94 + add r0, sp, #0 + ldr r3, [r1] + ldr r2, [r1, #4] + str r3, [sp] + str r2, [sp, #4] + ldr r1, [r1, #8] + str r1, [sp, #8] + add sp, sp, #0xc + ldmia sp!, {r3, r4, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082538Ev +_02082590: .word data_027e0f94 + + .global _ZN10MapManager18func_ov00_02082594Ev + arm_func_start _ZN10MapManager18func_ov00_02082594Ev +_ZN10MapManager18func_ov00_02082594Ev: ; 0x02082594 + ldr r0, _020825a4 ; =data_027e0f68 + ldr ip, _020825a8 ; =func_ov00_0208d620 + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082594Ev +_020825a4: .word data_027e0f68 +_020825a8: .word func_ov00_0208d620 + + .global _ZN10MapManager18func_ov00_020825acEv + arm_func_start _ZN10MapManager18func_ov00_020825acEv +_ZN10MapManager18func_ov00_020825acEv: ; 0x020825ac + ldr r0, _020825bc ; =data_027e0f68 + ldr ip, _020825c0 ; =func_ov00_0208d680 + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020825acEv +_020825bc: .word data_027e0f68 +_020825c0: .word func_ov00_0208d680 + + .global _ZN10MapManager17GetCourseFilePathEPcS0_ + arm_func_start _ZN10MapManager17GetCourseFilePathEPcS0_ +_ZN10MapManager17GetCourseFilePathEPcS0_: ; 0x020825c4 + ldr ip, _020825dc ; =func_0200c8d0 + mov r3, r1 + mov r0, r2 + ldr r1, _020825e0 ; =data_ov00_020e2528 + mov r2, r3 + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager17GetCourseFilePathEPcS0_ +_020825dc: .word func_0200c8d0 +_020825e0: .word data_ov00_020e2528 + + .global _ZN10MapManager18func_ov00_020825e4Eii + arm_func_start _ZN10MapManager18func_ov00_020825e4Eii +_ZN10MapManager18func_ov00_020825e4Eii: ; 0x020825e4 + stmdb sp!, {r3, r4, r5, lr} + ldr r3, _02082610 ; =data_027e0f7c + mov r5, r0 + ldr r0, [r3] + mov r4, r2 + bl func_ov00_0209d71c + mov r1, r0 + mov r0, r5 + mov r2, r4 + bl _ZN10MapManager17GetCourseFilePathEPcS0_ + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020825e4Eii +_02082610: .word data_027e0f7c + + .global _ZN10MapManager18func_ov00_02082614Eii + arm_func_start _ZN10MapManager18func_ov00_02082614Eii +_ZN10MapManager18func_ov00_02082614Eii: ; 0x02082614 + stmdb sp!, {r3, lr} + mov r3, #4 + str r3, [sp] + ldr r0, [r0] + mov r3, r1 + mov r1, r2 + mov r2, #0 + bl _ZN6Course18func_ov00_0207ce20EiiPci + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02082614Eii + + .global _ZN10MapManager16MapData_vfunc_b0Ev + arm_func_start _ZN10MapManager16MapData_vfunc_b0Ev +_ZN10MapManager16MapData_vfunc_b0Ev: ; 0x02082638 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r3, [r0] + ldr r3, [r3, #0xb0] + blx r3 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_b0Ev + + .global _ZN10MapManager18func_ov00_02082650Eiii + arm_func_start _ZN10MapManager18func_ov00_02082650Eiii +_ZN10MapManager18func_ov00_02082650Eiii: ; 0x02082650 + ldr ip, _0208265c ; =_ZN7MapBase18func_ov00_0208005cEiii + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082650Eiii +_0208265c: .word _ZN7MapBase18func_ov00_0208005cEiii + + .global _ZN10MapManager18func_ov00_02082660Eii + arm_func_start _ZN10MapManager18func_ov00_02082660Eii +_ZN10MapManager18func_ov00_02082660Eii: ; 0x02082660 + ldr ip, _0208266c ; =_ZN7MapBase18func_ov00_0208007cEii + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082660Eii +_0208266c: .word _ZN7MapBase18func_ov00_0208007cEii + + .global _ZN10MapManager18func_ov00_02082670Eii + arm_func_start _ZN10MapManager18func_ov00_02082670Eii +_ZN10MapManager18func_ov00_02082670Eii: ; 0x02082670 + ldr ip, _0208267c ; =_ZN7MapBase18func_ov00_0208006cEii + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082670Eii +_0208267c: .word _ZN7MapBase18func_ov00_0208006cEii + + .global _ZN10MapManager18func_ov00_02082680Eii + arm_func_start _ZN10MapManager18func_ov00_02082680Eii +_ZN10MapManager18func_ov00_02082680Eii: ; 0x02082680 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + mov r3, r2 + ldr ip, [r0] + mov r2, #5 + ldr ip, [ip, #0x98] + blx ip + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02082680Eii + + .global _ZN10MapManager18func_ov00_020826a0Eiii + arm_func_start _ZN10MapManager18func_ov00_020826a0Eiii +_ZN10MapManager18func_ov00_020826a0Eiii: ; 0x020826a0 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + mov r3, r2 + ldr ip, [r0] + mov r2, #7 + ldr ip, [ip, #0x98] + blx ip + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_020826a0Eiii + + .global _ZN10MapManager9CreateMapEiii + arm_func_start _ZN10MapManager9CreateMapEiii +_ZN10MapManager9CreateMapEiii: ; 0x020826c0 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, [r6, #4] + mov r5, r2 + mov r4, r3 + cmp r0, #0 + ldmneia sp!, {r4, r5, r6, pc} + cmp r1, #4 + addls pc, pc, r1, lsl #2 + b _0208278c +_020826e8: ; jump table + b _0208275c ; case 0 + b _0208278c ; case 1 + b _0208272c ; case 2 + b _0208278c ; case 3 + b _020826fc ; case 4 +_020826fc: + ldr r1, _020827bc ; =data_027e0ce0 + mov r0, #0x790 + ldr r1, [r1, #4] + mov r2, #4 + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _02082724 + mov r1, r5 + mov r2, r4 + bl func_ov12_0212b358 +_02082724: + str r0, [r6, #4] + ldmia sp!, {r4, r5, r6, pc} +_0208272c: + ldr r1, _020827bc ; =data_027e0ce0 + mov r0, #0x1b0 + ldr r1, [r1, #4] + mov r2, #4 + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _02082754 + mov r1, r5 + mov r2, r4 + bl func_ov15_02128dd8 +_02082754: + str r0, [r6, #4] + ldmia sp!, {r4, r5, r6, pc} +_0208275c: + ldr r1, _020827bc ; =data_027e0ce0 + mov r0, #0x1dc + ldr r1, [r1, #4] + mov r2, #4 + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _02082784 + mov r1, r5 + mov r2, r4 + bl func_ov18_0215b4a0 +_02082784: + str r0, [r6, #4] + ldmia sp!, {r4, r5, r6, pc} +_0208278c: + ldr r1, _020827bc ; =data_027e0ce0 + mov r0, #0x790 + ldr r1, [r1, #4] + mov r2, #4 + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _020827b4 + mov r1, r5 + mov r2, r4 + blx func_ov17_0215b4e8 +_020827b4: + str r0, [r6, #4] + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN10MapManager9CreateMapEiii +_020827bc: .word data_027e0ce0 + + .global _ZN10MapManager10DestroyMapEv + arm_func_start _ZN10MapManager10DestroyMapEv +_ZN10MapManager10DestroyMapEv: ; 0x020827c0 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, [r4, #4] + cmp r0, #0 + ldmeqia sp!, {r4, pc} + beq _020827e4 + ldr r1, [r0] + ldr r1, [r1, #4] + blx r1 +_020827e4: + mov r0, #0 + str r0, [r4, #4] + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager10DestroyMapEv + + .global _ZN10MapManager16MapData_vfunc_44Ev + arm_func_start _ZN10MapManager16MapData_vfunc_44Ev +_ZN10MapManager16MapData_vfunc_44Ev: ; 0x020827f0 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r1, [r0] + ldr r1, [r1, #0x44] + blx r1 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_44Ev + + .global _ZN10MapManager18func_ov00_02082808Ev + arm_func_start _ZN10MapManager18func_ov00_02082808Ev +_ZN10MapManager18func_ov00_02082808Ev: ; 0x02082808 + stmdb sp!, {r3, r4, r5, lr} + ldr r2, _020828b4 ; =data_027e0d38 + mov r5, r1 + ldr r1, [r2] + ldr r1, [r1, #0x14] + cmp r1, #1 + ldmeqia sp!, {r3, r4, r5, pc} + bl _ZN10MapManager18func_ov00_02084740Ev + mov r4, r0 + cmp r5, #0 + beq _0208286c + ldr r0, _020828b4 ; =data_027e0d38 + ldr r0, [r0] + add r0, r0, #0xc + bl func_ov00_020a5e9c + cmp r0, #0 + bne _02082854 + ldr r0, _020828b8 ; =data_ov15_02190458 + bl func_ov15_021849a4 +_02082854: + ldr r0, _020828bc ; =data_ov00_020eec68 + mov r1, r4 + mov r2, #0 + mov r3, #0x7f + bl func_ov00_020d70a4 + b _02082890 +_0208286c: + ldr r0, _020828bc ; =data_ov00_020eec68 + bl func_ov00_020d7424 + cmp r4, r0 + ldmeqia sp!, {r3, r4, r5, pc} + ldr r0, _020828bc ; =data_ov00_020eec68 + mov r1, r4 + mov r2, #0 + mov r3, #0x7f + bl func_ov00_020d70a4 +_02082890: + ldr r0, _020828b4 ; =data_027e0d38 + ldr r0, [r0] + add r0, r0, #0xc + bl func_ov00_020a5e9c + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, pc} + ldr r0, _020828bc ; =data_ov00_020eec68 + bl func_ov00_020d72b8 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082808Ev +_020828b4: .word data_027e0d38 +_020828b8: .word data_ov15_02190458 +_020828bc: .word data_ov00_020eec68 + + .global _ZN10MapManager16MapData_vfunc_7cEv + arm_func_start _ZN10MapManager16MapData_vfunc_7cEv +_ZN10MapManager16MapData_vfunc_7cEv: ; 0x020828c0 + stmdb sp!, {r3, lr} + ldr ip, [sp, #8] + str ip, [sp] + ldr r0, [r0, #4] + ldr ip, [r0] + ldr ip, [ip, #0x7c] + blx ip + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_7cEv + + .global _ZN10MapManager16MapData_vfunc_84Ev + arm_func_start _ZN10MapManager16MapData_vfunc_84Ev +_ZN10MapManager16MapData_vfunc_84Ev: ; 0x020828e0 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r2, [r0] + ldr r2, [r2, #0x84] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_84Ev + + .global _ZN10MapManager18func_ov00_020828f8EPi + arm_func_start _ZN10MapManager18func_ov00_020828f8EPi +_ZN10MapManager18func_ov00_020828f8EPi: ; 0x020828f8 + ldr ip, _02082904 ; =_ZN7MapBase18func_ov00_0207f38cEi + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020828f8EPi +_02082904: .word _ZN7MapBase18func_ov00_0207f38cEi + + .global _ZN10MapManager20GetCourseData_Unk_b0Ev + arm_func_start _ZN10MapManager20GetCourseData_Unk_b0Ev +_ZN10MapManager20GetCourseData_Unk_b0Ev: ; 0x02082908 + ldr r0, [r0] + ldrb r0, [r0, #0xb0] + bx lr + arm_func_end _ZN10MapManager20GetCourseData_Unk_b0Ev + + .global _ZN10MapManager18func_ov00_02082914Ei + arm_func_start _ZN10MapManager18func_ov00_02082914Ei +_ZN10MapManager18func_ov00_02082914Ei: ; 0x02082914 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #0x34 + mov r8, r1 + sub r1, r8, #0xfa + mov r9, r0 + cmp r1, #4 + addls pc, pc, r1, lsl #2 + b _02082ac0 +_02082934: ; jump table + b _02082948 ; case 0 + b _02082990 ; case 1 + b _02082990 ; case 2 + b _02082990 ; case 3 + b _02082990 ; case 4 +_02082948: + ldr r0, _02082ac8 ; =data_027e0d38 + add r3, sp, #0x20 + ldr r0, [r0] + ldr r0, [r0, #0x28] + add r4, r0, #0x5c + ldmia r4, {r0, r1, r2} + stmia r3, {r0, r1, r2} + ldrsh r0, [r4, #0xc] + mov r1, r3 + strh r0, [sp, #0x2c] + ldrb r0, [r4, #0xe] + strb r0, [sp, #0x2e] + ldr r0, [r4, #0x10] + str r0, [sp, #0x30] + ldr r0, [r9, #4] + bl _ZN7MapBase11AddEntranceEP8Entrance + add sp, sp, #0x34 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} +_02082990: + ldr r0, _02082ac8 ; =data_027e0d38 + mov r1, #0xff + mov r4, #0 + ldr r0, [r0] + strb r1, [sp, #0x1a] + str r4, [sp, #0x1c] + ldr r1, [r0, #0x28] + ldr r0, [r9] + ldr r3, [r1, #0x38] + ldr r2, [r1, #0x3c] + ldr r1, [r1, #0x40] + ldr r0, [r0, #4] + mov r5, #0x2000 + mov r6, r5 + str r3, [sp] + str r2, [sp, #4] + str r1, [sp, #8] + cmp r0, #2 + mov r7, #0xfd + bne _02082a0c + ldr r0, [r9, #4] + ldr r1, [r0] + ldr r1, [r1, #0x88] + blx r1 + add r5, r0, #0xa000 + ldr r0, [r9, #4] + ldr r1, [r0] + ldr r1, [r1, #0x8c] + blx r1 + add r6, r0, #0xa000 + mov r7, #0xfe +_02082a0c: + sub r0, r8, #0xfb + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _02082a90 +_02082a1c: ; jump table + b _02082a2c ; case 0 + b _02082a48 ; case 1 + b _02082a60 ; case 2 + b _02082a7c ; case 3 +_02082a2c: + mov r0, r9 + bl _ZN10MapManager18func_ov00_020833e8Ev + sub r0, r0, r6 + mov r4, #0x8000 + str r0, [sp, #8] + rsb r4, r4, #0 + b _02082a90 +_02082a48: + mov r0, r9 + bl _ZN10MapManager18func_ov00_020833d0Ev + add r0, r6, r0 + str r0, [sp, #8] + mov r4, #0 + b _02082a90 +_02082a60: + mov r0, r9 + bl _ZN10MapManager18func_ov00_020833dcEv + sub r0, r0, r5 + mov r4, #0x4000 + str r0, [sp] + rsb r4, r4, #0 + b _02082a90 +_02082a7c: + mov r0, r9 + bl _ZN10MapManager18func_ov00_020833c4Ev + add r0, r5, r0 + str r0, [sp] + mov r4, #0x4000 +_02082a90: + ldr r2, [sp] + ldr r1, [sp, #4] + ldr r0, [sp, #8] + str r1, [sp, #0x10] + strb r8, [sp, #0x1a] + str r2, [sp, #0xc] + strh r4, [sp, #0x18] + str r7, [sp, #0x1c] + str r0, [sp, #0x14] + ldr r0, [r9, #4] + add r1, sp, #0xc + bl _ZN7MapBase11AddEntranceEP8Entrance +_02082ac0: + add sp, sp, #0x34 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082914Ei +_02082ac8: .word data_027e0d38 + + .global _ZN10MapManager18func_ov00_02082accEv + arm_func_start _ZN10MapManager18func_ov00_02082accEv +_ZN10MapManager18func_ov00_02082accEv: ; 0x02082acc + ldr ip, _02082ad8 ; =_ZN6Course18func_ov00_0207d7bcEv + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082accEv +_02082ad8: .word _ZN6Course18func_ov00_0207d7bcEv + + .global _ZN10MapManager18func_ov00_02082adcEv + arm_func_start _ZN10MapManager18func_ov00_02082adcEv +_ZN10MapManager18func_ov00_02082adcEv: ; 0x02082adc + ldr r0, _02082aec ; =data_027e0f70 + ldr ip, _02082af0 ; =func_ov00_02096418 + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082adcEv +_02082aec: .word data_027e0f70 +_02082af0: .word func_ov00_02096418 + + .global _ZN10MapManager18func_ov00_02082af4Ev + arm_func_start _ZN10MapManager18func_ov00_02082af4Ev +_ZN10MapManager18func_ov00_02082af4Ev: ; 0x02082af4 + stmdb sp!, {r4, lr} + ldr r1, _02082b38 ; =data_027e0f68 + mov r4, r0 + ldr r0, [r1] + bl func_ov00_0208cc88 + ldr r0, [r4, #4] + ldr r1, [r0] + ldr r1, [r1, #0x48] + blx r1 + mov r0, r4 + mov r1, #0 + bl _ZN10MapManager18func_ov00_02082808Ev + mov r0, #1 + strb r0, [r4, #0xa] + mov r0, #0 + strb r0, [r4, #0xb] + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082af4Ev +_02082b38: .word data_027e0f68 + + .global _ZN10MapManager18func_ov00_02082b3cEi + arm_func_start _ZN10MapManager18func_ov00_02082b3cEi +_ZN10MapManager18func_ov00_02082b3cEi: ; 0x02082b3c + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r5, r1 + mov r6, r0 + ldrb r2, [r5, #0x12] + ldr r1, [r6] + add r0, sp, #0 + bl _ZN6Course14FindMapGridPosEP5Vec2bPS_j + mov r0, r6 + bl _ZN10MapManager20GetCourseData_Unk_1cEv + ldrb r1, [sp] + cmp r1, r0 + bne _02082bac + mov r0, r6 + bl _ZN10MapManager20GetCourseData_Unk_1dEv + ldrb r1, [sp, #1] + cmp r1, r0 + bne _02082bac + ldr r0, [r5, #8] + cmp r0, #1 + bne _02082ba0 + ldr r0, _02082ce0 ; =data_027e0d38 + ldr r0, [r0] + ldr r0, [r0, #0x14] + cmp r0, #1 + beq _02082bac +_02082ba0: + ldrb r0, [r5, #0x15] + cmp r0, #0 + beq _02082c90 +_02082bac: + ldr r0, _02082ce4 ; =gAdventureFlags + ldr r0, [r0] + bl _ZN14AdventureFlags18func_ov00_020976c8Ev + ldr r0, _02082ce8 ; =data_027e0f64 + ldr r0, [r0] + bl func_ov00_0208b13c + ldr r1, _02082cec ; =data_027e0fe4 + mov r0, r6 + ldr r4, [r1] + bl _ZN10MapManager18func_ov00_02082d08Ev + mov r3, r0 + ldrb r1, [sp] + ldrb r2, [sp, #1] + mov r0, r4 + blx func_ov04_02105608 + ldr r0, [r6, #4] + ldr r1, [r0] + ldr r1, [r1, #0x2c] + blx r1 + ldr r0, _02082cf0 ; =data_027e0f68 + ldr r0, [r0] + blx func_ov04_02102b28 + ldr r0, _02082cf4 ; =data_027e0f6c + ldr r0, [r0] + blx func_ov04_02102770 + ldr r0, _02082cf8 ; =data_027e0f78 + ldr r0, [r0] + blx func_ov04_02102e3c + ldrb r7, [r5, #0x12] + ldr r0, [r6] + mov r4, #0 + bl _ZN6Course25FindCurrentMapData_Unk_04Ev + mov r1, r7 + mov r7, r0 + ldr r0, [r6] + bl _ZN6Course18FindMapData_Unk_04Ei + cmp r7, r0 + ldrb r2, [sp] + ldr r1, [r6] + movne r4, #1 + strb r2, [r1, #0x1c] + mov r0, r6 + ldrb ip, [sp, #1] + ldr r6, [r6] + mov r1, r5 + mov r2, r4 + mov r3, #0 + strb ip, [r6, #0x1d] + blx func_ov04_021024c4 + ldr r0, _02082cec ; =data_027e0fe4 + ldrb r1, [r5, #0x12] + ldr r0, [r0] + blx func_ov04_02105578 + ldr r0, _02082cfc ; =data_027e103c + ldr r0, [r0] + bl func_ov00_020cfcec + b _02082cd8 +_02082c90: + ldr r0, _02082ce4 ; =gAdventureFlags + ldr r0, [r0] + bl _ZN14AdventureFlags18func_ov00_020976c8Ev + ldrb r1, [r5, #0x13] + ldr r0, _02082d00 ; =data_027e0f90 + mov r2, #0 + strb r1, [r6, #0xc] + ldr r0, [r0] + ldrb r1, [r5, #0x13] + ldr r3, [r0] + ldr r3, [r3, #0x38] + blx r3 + ldr r0, _02082d04 ; =data_027e0c68 + blx func_ov04_02106db8 + ldr r0, [r6, #4] + ldr r1, [r0] + ldr r1, [r1, #0x18] + blx r1 +_02082cd8: + mov r0, #1 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082b3cEi +_02082ce0: .word data_027e0d38 +_02082ce4: .word gAdventureFlags +_02082ce8: .word data_027e0f64 +_02082cec: .word data_027e0fe4 +_02082cf0: .word data_027e0f68 +_02082cf4: .word data_027e0f6c +_02082cf8: .word data_027e0f78 +_02082cfc: .word data_027e103c +_02082d00: .word data_027e0f90 +_02082d04: .word data_027e0c68 + + .global _ZN10MapManager18func_ov00_02082d08Ev + arm_func_start _ZN10MapManager18func_ov00_02082d08Ev +_ZN10MapManager18func_ov00_02082d08Ev: ; 0x02082d08 + ldr r3, [r0] + mov r0, #0xa + ldrb r2, [r3, #0x1c] + ldrb r1, [r3, #0x1d] + mla r0, r2, r0, r3 + add r0, r0, r1 + ldrb r0, [r0, #0x20] + bx lr + arm_func_end _ZN10MapManager18func_ov00_02082d08Ev + + .global _ZN10MapManager20GetCourseData_Unk_1cEv + arm_func_start _ZN10MapManager20GetCourseData_Unk_1cEv +_ZN10MapManager20GetCourseData_Unk_1cEv: ; 0x02082d28 + ldr r0, [r0] + ldrb r0, [r0, #0x1c] + bx lr + arm_func_end _ZN10MapManager20GetCourseData_Unk_1cEv + + .global _ZN10MapManager20GetCourseData_Unk_1dEv + arm_func_start _ZN10MapManager20GetCourseData_Unk_1dEv +_ZN10MapManager20GetCourseData_Unk_1dEv: ; 0x02082d34 + ldr r0, [r0] + ldrb r0, [r0, #0x1d] + bx lr + arm_func_end _ZN10MapManager20GetCourseData_Unk_1dEv + + .global _ZN10MapManager18func_ov00_02082d40Ev + arm_func_start _ZN10MapManager18func_ov00_02082d40Ev +_ZN10MapManager18func_ov00_02082d40Ev: ; 0x02082d40 + ldr r3, [r0] + ldr r0, [r3, #4] + cmp r0, #2 + bne _02082d6c + ldrb r2, [r3, #0x1c] + mov r0, #0xa + ldrb r1, [r3, #0x1d] + mla r0, r2, r0, r3 + add r0, r0, r1 + ldrb r0, [r0, #0x20] + bx lr +_02082d6c: + ldrb r0, [r3, #0xb1] + bx lr + arm_func_end _ZN10MapManager18func_ov00_02082d40Ev + + .global _ZN10MapManager18func_ov00_02082d74Ei + arm_func_start _ZN10MapManager18func_ov00_02082d74Ei +_ZN10MapManager18func_ov00_02082d74Ei: ; 0x02082d74 + ldr ip, _02082d80 ; =func_ov00_02078bc4 + mov r0, r1 + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082d74Ei +_02082d80: .word func_ov00_02078bc4 + + .global _ZN10MapManager18func_ov00_02082d84Ev + arm_func_start _ZN10MapManager18func_ov00_02082d84Ev +_ZN10MapManager18func_ov00_02082d84Ev: ; 0x02082d84 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl _ZN10MapManager17Get_MapData_Unk28Ev + mov r1, r0, lsl #0xc + mov r0, #0x100000 + bl Divide + mov r4, r0 + mov r0, r8 + bl _ZN10MapManager17Get_MapData_Unk2aEv + mov r1, r0, lsl #0xc + mov r0, #0xc0000 + bl Divide + ldrb r1, [r7] + mov r1, r1, lsl #0xc + smull r3, r2, r1, r4 + adds r3, r3, #0x800 + adc r1, r2, #0 + mov r2, r3, lsr #0xc + orr r2, r2, r1, lsl #20 + add r1, r2, r4, asr #1 + add r1, r1, #0x800 + mov r1, r1, asr #0xc + str r1, [r6] + ldrb r1, [r7, #1] + mov r1, r1, lsl #0xc + smull r3, r2, r1, r0 + adds r3, r3, #0x800 + adc r1, r2, #0 + mov r2, r3, lsr #0xc + orr r2, r2, r1, lsl #20 + add r0, r2, r0, asr #1 + add r0, r0, #0x800 + mov r0, r0, asr #0xc + str r0, [r5] + ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end _ZN10MapManager18func_ov00_02082d84Ev + + .global _ZN10MapManager18func_ov00_02082e1cEPiS0_ + arm_func_start _ZN10MapManager18func_ov00_02082e1cEPiS0_ +_ZN10MapManager18func_ov00_02082e1cEPiS0_: ; 0x02082e1c + stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x34 + mov r8, r0 + ldr r0, [r8] + mov r7, r1 + ldrb r1, [r0, #0x25c] + mov r6, r2 + cmp r1, #0 + beq _02083050 + bl _ZN6Course22IsCurrentMapInMainGridEv + cmp r0, #0 + bne _02083038 + mvn r1, #0xff + ldr r0, _02083068 ; =data_027e0d38 + str r1, [sp, #0xc] + str r1, [sp, #8] + ldr r1, [r8, #4] + ldr r0, [r0] + ldrb r4, [r1, #0x1a] + bl func_ov00_02078b40 + cmp r0, #0 + bne _02082e88 + ldr r0, _02083068 ; =data_027e0d38 + ldr r0, [r0] + ldr r0, [r0, #0x28] + ldrb r5, [r0, #0x9a] + b _02082e98 +_02082e88: + ldr r0, _02083068 ; =data_027e0d38 + ldr r0, [r0] + ldr r0, [r0, #0x28] + ldrb r5, [r0, #0x2e] +_02082e98: + cmp r5, #0xff + bne _02082ebc + ldr r3, [r8] + mov r0, #0xa + ldrb r2, [r3, #0x1e] + ldrb r1, [r3, #0x1f] + mla r0, r2, r0, r3 + add r0, r0, r1 + ldrb r5, [r0, #0x20] +_02082ebc: + ldr r0, _02083068 ; =data_027e0d38 + ldr r0, [r0] + bl func_ov00_02078b40 + cmp r0, #0 + bne _02082ef8 + ldr r0, _02083068 ; =data_027e0d38 + ldr r0, [r0] + ldr r0, [r0, #0x28] + ldr r2, [r0, #0xa4] + ldr r1, [r0, #0xa8] + ldr r0, [r0, #0xa0] + str r0, [sp, #0x28] + str r2, [sp, #0x2c] + str r1, [sp, #0x30] + b _02082f1c +_02082ef8: + ldr r0, _02083068 ; =data_027e0d38 + ldr r0, [r0] + ldr r0, [r0, #0x28] + ldr r2, [r0, #0x3c] + ldr r1, [r0, #0x40] + ldr r0, [r0, #0x38] + str r0, [sp, #0x28] + str r2, [sp, #0x2c] + str r1, [sp, #0x30] +_02082f1c: + ldr r0, [r8] + add r2, sp, #0xc + add r3, sp, #8 + mov r1, r4 + bl _ZN6Course15GetMapScreenPosEiPiS0_ + cmp r0, #0 + ldr r0, [r8] + bne _02082fc0 + add r2, sp, #0xc + add r3, sp, #8 + mov r1, r5 + bl _ZN6Course15GetMapScreenPosEiPiS0_ + ldr r1, [r8] + add r0, sp, #6 + mov r2, r5 + bl _ZN6Course14FindMapGridPosEP5Vec2bPS_j + ldrb r1, [sp, #7] + add r0, sp, #4 + add r2, sp, #0x28 + str r1, [sp] + ldrb r3, [sp, #6] + mov r1, r8 + bl _ZN10MapManager18func_ov00_02083a54EiPS_iii + ldr r0, [r8] + bl _ZN6Course21GetScreenMapCellSizeXEv + ldrb r1, [sp, #4] + ldr r3, [sp, #0xc] + mov r1, r1, lsl #0xc + smull r2, r0, r1, r0 + adds r1, r2, #0x800 + adc r0, r0, #0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #20 + add r0, r1, #0x800 + add r0, r3, r0, asr #12 + str r0, [r7] + ldr r0, [r8] + bl _ZN6Course21GetScreenMapCellSizeYEv + ldrb r1, [sp, #5] + ldr r3, [sp, #8] + b _02083008 +_02082fc0: + bl _ZN6Course21GetScreenMapCellSizeXEv + ldr r2, [r8, #4] + ldr r1, [sp, #0xc] + ldrb r2, [r2, #0x1b] + mov r2, r2, lsl #0xc + smull r3, r0, r2, r0 + adds r2, r3, #0x800 + adc r0, r0, #0 + mov r2, r2, lsr #0xc + orr r2, r2, r0, lsl #20 + add r0, r2, #0x800 + add r0, r1, r0, asr #12 + str r0, [r7] + ldr r0, [r8] + bl _ZN6Course21GetScreenMapCellSizeYEv + ldr r1, [r8, #4] + ldr r3, [sp, #8] + ldrb r1, [r1, #0x1c] +_02083008: + mov r1, r1, lsl #0xc + smull r2, r0, r1, r0 + adds r1, r2, #0x800 + adc r0, r0, #0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #20 + add r0, r1, #0x800 + add r0, r3, r0, asr #12 + str r0, [r6] + add sp, sp, #0x34 + mov r0, #1 + ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} +_02083038: + mov r0, #0x80 + str r0, [r7] + str r0, [r6] + add sp, sp, #0x34 + mov r0, #0 + ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} +_02083050: + mov r0, #0xc0 + str r0, [r7] + str r0, [r6] + mov r0, #0 + add sp, sp, #0x34 + ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02082e1cEPiS0_ +_02083068: .word data_027e0d38 + + .global _ZN10MapManager18func_ov00_0208306cEv + arm_func_start _ZN10MapManager18func_ov00_0208306cEv +_ZN10MapManager18func_ov00_0208306cEv: ; 0x0208306c + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x20 + mov r6, r0 + ldr lr, [r6] + mvn r3, #2 + ldr ip, [lr, #8] + mov r5, r1 + cmp ip, r3 + addne r0, r3, #1 + mov r4, r2 + cmpne ip, r0 + beq _020830f0 + add r0, r3, #2 + cmp ip, r0 + bne _02083138 + ldr r1, _02083154 ; =data_027e0f94 + add r0, sp, #4 + ldr r2, [r1, #4] + ldr r3, [r1] + str r2, [sp, #0x18] + str r3, [sp, #0x14] + ldr r3, [r1, #8] + add r2, sp, #0x14 + mov r1, r6 + str r3, [sp, #0x1c] + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + add r1, sp, #4 + mov r0, r6 + mov r2, r5 + mov r3, r4 + bl _ZN10MapManager18func_ov00_02082d84Ev + add sp, sp, #0x20 + ldmia sp!, {r4, r5, r6, pc} +_020830f0: + ldr r0, _02083158 ; =data_027e0d38 + add r2, sp, #8 + ldr ip, [r0] + mov r0, r6 + ldr r6, [ip, #0x28] + mov r3, r5 + ldr r1, [r6, #0x5c] + str r1, [sp, #8] + ldr r1, [r6, #0x60] + str r1, [sp, #0xc] + ldr r1, [r6, #0x64] + str r1, [sp, #0x10] + str r4, [sp] + ldr r1, [ip, #0x28] + ldrb r1, [r1, #0x56] + bl _ZN10MapManager18func_ov00_02083244EjPiS0_S0_ + add sp, sp, #0x20 + ldmia sp!, {r4, r5, r6, pc} +_02083138: + ldr r0, [lr, #0xb4] + str r0, [r5] + ldr r0, [r6] + ldr r0, [r0, #0xb8] + str r0, [r4] + add sp, sp, #0x20 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_0208306cEv +_02083154: .word data_027e0f94 +_02083158: .word data_027e0d38 + + .global _ZN10MapManager18func_ov00_0208315cEPiS0_ + arm_func_start _ZN10MapManager18func_ov00_0208315cEPiS0_ +_ZN10MapManager18func_ov00_0208315cEPiS0_: ; 0x0208315c + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #0x1c + mov r6, r0 + ldr lr, [r6] + mvn r3, #2 + ldr ip, [lr, #8] + mov r5, r1 + cmp ip, r3 + addne r1, r3, #1 + mov r4, r2 + cmpne ip, r1 + beq _020831d8 + add r1, r3, #2 + cmp ip, r1 + bne _02083220 + ldr r1, _0208323c ; =data_027e0f94 + ldr r3, [r1] + ldr r2, [r1, #4] + str r3, [sp, #0x10] + str r2, [sp, #0x14] + ldr r1, [r1, #8] + str r1, [sp, #0x18] + bl _ZN10MapManager18func_ov00_02082d08Ev + mov r1, r0 + add r2, sp, #0x10 + mov r0, r6 + mov r3, r5 + str r4, [sp] + bl _ZN10MapManager18func_ov00_02083298EjPiS0_S0_ + add sp, sp, #0x1c + ldmia sp!, {r3, r4, r5, r6, pc} +_020831d8: + ldr r0, _02083240 ; =data_027e0d38 + add r2, sp, #4 + ldr ip, [r0] + mov r0, r6 + ldr r6, [ip, #0x28] + mov r3, r5 + ldr r1, [r6, #0x5c] + str r1, [sp, #4] + ldr r1, [r6, #0x60] + str r1, [sp, #8] + ldr r1, [r6, #0x64] + str r1, [sp, #0xc] + str r4, [sp] + ldr r1, [ip, #0x28] + ldrb r1, [r1, #0x56] + bl _ZN10MapManager18func_ov00_02083298EjPiS0_S0_ + add sp, sp, #0x1c + ldmia sp!, {r3, r4, r5, r6, pc} +_02083220: + ldr r0, [lr, #0xbc] + str r0, [r5] + ldr r0, [r6] + ldr r0, [r0, #0xc0] + str r0, [r4] + add sp, sp, #0x1c + ldmia sp!, {r3, r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_0208315cEPiS0_ +_0208323c: .word data_027e0f94 +_02083240: .word data_027e0d38 + + .global _ZN10MapManager18func_ov00_02083244EjPiS0_S0_ + arm_func_start _ZN10MapManager18func_ov00_02083244EjPiS0_S0_ +_ZN10MapManager18func_ov00_02083244EjPiS0_S0_: ; 0x02083244 + stmdb sp!, {r3, lr} + ldr r0, _02083290 ; =data_ov00_020e24e8 + cmp r1, #4 + movhs r1, #0 + ldr ip, [r0, r1, lsl #3] + ldr lr, [r2] + ldr r0, _02083294 ; =data_ov00_020e24ec + sub ip, lr, ip + add ip, ip, #0x800 + mov ip, ip, asr #0xc + str ip, [r3] + ldr r1, [r0, r1, lsl #3] + ldr r2, [r2, #8] + ldr r0, [sp, #8] + sub r1, r2, r1 + add r1, r1, #0x800 + mov r1, r1, asr #0xc + str r1, [r0] + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083244EjPiS0_S0_ +_02083290: .word data_ov00_020e24e8 +_02083294: .word data_ov00_020e24ec + + .global _ZN10MapManager18func_ov00_02083298EjPiS0_S0_ + arm_func_start _ZN10MapManager18func_ov00_02083298EjPiS0_S0_ +_ZN10MapManager18func_ov00_02083298EjPiS0_S0_: ; 0x02083298 + stmdb sp!, {r3, lr} + ldr r0, _020832fc ; =data_ov00_020e24e8 + cmp r1, #4 + movhs r1, #0 + ldr lr, _02083300 ; =data_ov00_020e24c8 + ldr ip, [r2] + ldr r0, [r0, r1, lsl #3] + ldr lr, [lr, r1, lsl #3] + sub r0, ip, r0 + mov r0, r0, asr #0x1 + add r0, r0, #0x800 + add r0, lr, r0, asr #12 + str r0, [r3] + ldr r0, _02083304 ; =data_ov00_020e24ec + ldr r3, _02083308 ; =data_ov00_020e24cc + ldr r2, [r2, #8] + ldr r0, [r0, r1, lsl #3] + ldr r3, [r3, r1, lsl #3] + sub r0, r2, r0 + mov r0, r0, asr #0x1 + add r1, r0, #0x800 + ldr r0, [sp, #8] + add r1, r3, r1, asr #12 + str r1, [r0] + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083298EjPiS0_S0_ +_020832fc: .word data_ov00_020e24e8 +_02083300: .word data_ov00_020e24c8 +_02083304: .word data_ov00_020e24ec +_02083308: .word data_ov00_020e24cc + + .global _ZN10MapManager21GetCourseData_Unk_25cEv + arm_func_start _ZN10MapManager21GetCourseData_Unk_25cEv +_ZN10MapManager21GetCourseData_Unk_25cEv: ; 0x0208330c + ldr r0, [r0] + ldrb r0, [r0, #0x25c] + bx lr + arm_func_end _ZN10MapManager21GetCourseData_Unk_25cEv + + .global _ZN10MapManager18func_ov00_02083318Ei + arm_func_start _ZN10MapManager18func_ov00_02083318Ei +_ZN10MapManager18func_ov00_02083318Ei: ; 0x02083318 + ldr ip, _02083324 ; =_ZN6Course15IsMapInMainGridEj + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083318Ei +_02083324: .word _ZN6Course15IsMapInMainGridEj + + .global _ZN10MapManager18func_ov00_02083328Ev + arm_func_start _ZN10MapManager18func_ov00_02083328Ev +_ZN10MapManager18func_ov00_02083328Ev: ; 0x02083328 + stmdb sp!, {r4, lr} + mov r4, r0 + bl _ZN10MapManager18func_ov00_02082d08Ev + mov r1, r0 + ldr r0, [r4] + bl _ZN6Course15IsMapInMainGridEj + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager18func_ov00_02083328Ev + + .global _ZN10MapManager20GetCourseData_Unk_86Ev + arm_func_start _ZN10MapManager20GetCourseData_Unk_86Ev +_ZN10MapManager20GetCourseData_Unk_86Ev: ; 0x02083344 + ldr r0, [r0] + ldrb r0, [r0, #0x86] + bx lr + arm_func_end _ZN10MapManager20GetCourseData_Unk_86Ev + + .global _ZN10MapManager20GetCourseData_Unk_87Ev + arm_func_start _ZN10MapManager20GetCourseData_Unk_87Ev +_ZN10MapManager20GetCourseData_Unk_87Ev: ; 0x02083350 + ldr r0, [r0] + ldrb r0, [r0, #0x87] + bx lr + arm_func_end _ZN10MapManager20GetCourseData_Unk_87Ev + + .global _ZN10MapManager17Get_MapData_Unk28Ev + arm_func_start _ZN10MapManager17Get_MapData_Unk28Ev +_ZN10MapManager17Get_MapData_Unk28Ev: ; 0x0208335c + ldr r0, [r0, #4] + ldrh r0, [r0, #0x28] + bx lr + arm_func_end _ZN10MapManager17Get_MapData_Unk28Ev + + .global _ZN10MapManager17Get_MapData_Unk2aEv + arm_func_start _ZN10MapManager17Get_MapData_Unk2aEv +_ZN10MapManager17Get_MapData_Unk2aEv: ; 0x02083368 + ldr r0, [r0, #4] + ldrh r0, [r0, #0x2a] + bx lr + arm_func_end _ZN10MapManager17Get_MapData_Unk2aEv + + .global _ZN10MapManager18func_ov00_02083374Ev + arm_func_start _ZN10MapManager18func_ov00_02083374Ev +_ZN10MapManager18func_ov00_02083374Ev: ; 0x02083374 + stmdb sp!, {r3, lr} + bl _ZN10MapManager17Get_MapData_Unk28Ev + mov r0, r0, lsl #0xc + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02083374Ev + + .global _ZN10MapManager18func_ov00_02083384Ev + arm_func_start _ZN10MapManager18func_ov00_02083384Ev +_ZN10MapManager18func_ov00_02083384Ev: ; 0x02083384 + stmdb sp!, {r3, lr} + bl _ZN10MapManager17Get_MapData_Unk2aEv + mov r0, r0, lsl #0xc + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02083384Ev + + .global _ZN10MapManager13GetCourseMinXEv + arm_func_start _ZN10MapManager13GetCourseMinXEv +_ZN10MapManager13GetCourseMinXEv: ; 0x02083394 + ldr r0, [r0] + ldr r0, [r0, #0x98] + bx lr + arm_func_end _ZN10MapManager13GetCourseMinXEv + + .global _ZN10MapManager13GetCourseMinZEv + arm_func_start _ZN10MapManager13GetCourseMinZEv +_ZN10MapManager13GetCourseMinZEv: ; 0x020833a0 + ldr r0, [r0] + ldr r0, [r0, #0xa0] + bx lr + arm_func_end _ZN10MapManager13GetCourseMinZEv + + .global _ZN10MapManager13GetCourseMaxXEv + arm_func_start _ZN10MapManager13GetCourseMaxXEv +_ZN10MapManager13GetCourseMaxXEv: ; 0x020833ac + ldr r0, [r0] + ldr r0, [r0, #0xa4] + bx lr + arm_func_end _ZN10MapManager13GetCourseMaxXEv + + .global _ZN10MapManager13GetCourseMaxZEv + arm_func_start _ZN10MapManager13GetCourseMaxZEv +_ZN10MapManager13GetCourseMaxZEv: ; 0x020833b8 + ldr r0, [r0] + ldr r0, [r0, #0xac] + bx lr + arm_func_end _ZN10MapManager13GetCourseMaxZEv + + .global _ZN10MapManager18func_ov00_020833c4Ev + arm_func_start _ZN10MapManager18func_ov00_020833c4Ev +_ZN10MapManager18func_ov00_020833c4Ev: ; 0x020833c4 + ldr r0, [r0, #4] + ldr r0, [r0, #0xdc] + bx lr + arm_func_end _ZN10MapManager18func_ov00_020833c4Ev + + .global _ZN10MapManager18func_ov00_020833d0Ev + arm_func_start _ZN10MapManager18func_ov00_020833d0Ev +_ZN10MapManager18func_ov00_020833d0Ev: ; 0x020833d0 + ldr r0, [r0, #4] + ldr r0, [r0, #0xe4] + bx lr + arm_func_end _ZN10MapManager18func_ov00_020833d0Ev + + .global _ZN10MapManager18func_ov00_020833dcEv + arm_func_start _ZN10MapManager18func_ov00_020833dcEv +_ZN10MapManager18func_ov00_020833dcEv: ; 0x020833dc + ldr r0, [r0, #4] + ldr r0, [r0, #0xe8] + bx lr + arm_func_end _ZN10MapManager18func_ov00_020833dcEv + + .global _ZN10MapManager18func_ov00_020833e8Ev + arm_func_start _ZN10MapManager18func_ov00_020833e8Ev +_ZN10MapManager18func_ov00_020833e8Ev: ; 0x020833e8 + ldr r0, [r0, #4] + ldr r0, [r0, #0xf0] + bx lr + arm_func_end _ZN10MapManager18func_ov00_020833e8Ev + + .global _ZN10MapManager18Get_MapData_Unk_d0Ev + arm_func_start _ZN10MapManager18Get_MapData_Unk_d0Ev +_ZN10MapManager18Get_MapData_Unk_d0Ev: ; 0x020833f4 + ldr r0, [r0, #4] + ldr r0, [r0, #0xd0] + bx lr + arm_func_end _ZN10MapManager18Get_MapData_Unk_d0Ev + + .global _ZN10MapManager18Get_MapData_Unk_d8Ev + arm_func_start _ZN10MapManager18Get_MapData_Unk_d8Ev +_ZN10MapManager18Get_MapData_Unk_d8Ev: ; 0x02083400 + ldr r0, [r0, #4] + ldr r0, [r0, #0xd8] + bx lr + arm_func_end _ZN10MapManager18Get_MapData_Unk_d8Ev + + .global _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p + arm_func_start _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p +_ZN10MapManager17GetMapData_Unk_dcEP5Vec3p: ; 0x0208340c + ldr r2, [r0, #4] + ldr r0, [r2, #0xdc] + str r0, [r1] + ldr r0, [r2, #0xe0] + str r0, [r1, #4] + ldr r0, [r2, #0xe4] + str r0, [r1, #8] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p + + .global _ZN10MapManager17GetMapData_Unk_e8EP5Vec3p + arm_func_start _ZN10MapManager17GetMapData_Unk_e8EP5Vec3p +_ZN10MapManager17GetMapData_Unk_e8EP5Vec3p: ; 0x0208342c + ldr r2, [r0, #4] + ldr r0, [r2, #0xe8] + str r0, [r1] + ldr r0, [r2, #0xec] + str r0, [r1, #4] + ldr r0, [r2, #0xf0] + str r0, [r1, #8] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_e8EP5Vec3p + + .global _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p + arm_func_start _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +_ZN10MapManager17GetMapData_Unk_d0EP5Vec3p: ; 0x0208344c + ldr r2, [r0, #4] + ldr r0, [r2, #0xd0] + str r0, [r1] + ldr r0, [r2, #0xd4] + str r0, [r1, #4] + ldr r0, [r2, #0xd8] + str r0, [r1, #8] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p + + .global _ZN10MapManager18func_ov00_0208346cEP4AABB + arm_func_start _ZN10MapManager18func_ov00_0208346cEP4AABB +_ZN10MapManager18func_ov00_0208346cEP4AABB: ; 0x0208346c + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl _ZN10MapManager18func_ov00_020833c4Ev + str r0, [r4] + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833d0Ev + str r0, [r4, #8] + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833dcEv + str r0, [r4, #0xc] + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833e8Ev + ldr r1, _020834b8 ; =0x00001333 + str r0, [r4, #0x14] + str r1, [r4, #0x10] + mov r0, #0 + str r0, [r4, #4] + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_0208346cEP4AABB +_020834b8: .word 0x00001333 + + .global _ZN10MapManager18func_ov00_020834bcEP5Vec3pii + arm_func_start _ZN10MapManager18func_ov00_020834bcEP5Vec3pii +_ZN10MapManager18func_ov00_020834bcEP5Vec3pii: ; 0x020834bc + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5] + mov r4, #0xa + mla r4, r2, r4, r0 + add r2, r4, r3 + mov r4, r1 + ldrb r1, [r2, #0x20] + bl _ZN6Course13FindMapCenterEi + ldr r1, [r0] + str r1, [r4] + ldr r1, [r0, #4] + str r1, [r4, #4] + ldr r1, [r0, #8] + mov r0, r5 + str r1, [r4, #8] + bl _ZN10MapManager18func_ov00_02083374Ev + ldr r1, [r4] + sub r1, r1, r0, asr #1 + mov r0, r5 + str r1, [r4] + bl _ZN10MapManager18func_ov00_02083384Ev + ldr r1, [r4, #8] + sub r0, r1, r0, asr #1 + str r0, [r4, #8] + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN10MapManager18func_ov00_020834bcEP5Vec3pii + + .global _ZN10MapManager18func_ov00_02083524EP5Vec3pii + arm_func_start _ZN10MapManager18func_ov00_02083524EP5Vec3pii +_ZN10MapManager18func_ov00_02083524EP5Vec3pii: ; 0x02083524 + stmdb sp!, {r4, lr} + ldr r0, [r0] + mov ip, #0xa + mla ip, r2, ip, r0 + add r2, ip, r3 + mov r4, r1 + ldrb r1, [r2, #0x20] + bl _ZN6Course13FindMapCenterEi + ldr r1, [r0] + str r1, [r4] + ldr r1, [r0, #4] + str r1, [r4, #4] + ldr r0, [r0, #8] + str r0, [r4, #8] + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager18func_ov00_02083524EP5Vec3pii + + .global _ZN10MapManager18func_ov00_02083560EiPS_j + arm_func_start _ZN10MapManager18func_ov00_02083560EiPS_j +_ZN10MapManager18func_ov00_02083560EiPS_j: ; 0x02083560 + ldr ip, _0208356c ; =_ZN6Course14FindMapGridPosEP5Vec2bPS_j + ldr r1, [r1] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083560EiPS_j +_0208356c: .word _ZN6Course14FindMapGridPosEP5Vec2bPS_j + + .global _ZN10MapManager18func_ov00_02083570Eii + arm_func_start _ZN10MapManager18func_ov00_02083570Eii +_ZN10MapManager18func_ov00_02083570Eii: ; 0x02083570 + ldr r3, [r0] + mov r0, #0xa + mla r0, r1, r0, r3 + add r0, r0, r2 + ldrb r0, [r0, #0x20] + bx lr + arm_func_end _ZN10MapManager18func_ov00_02083570Eii + + .global _ZN10MapManager18func_ov00_02083588Ev + arm_func_start _ZN10MapManager18func_ov00_02083588Ev +_ZN10MapManager18func_ov00_02083588Ev: ; 0x02083588 + stmdb sp!, {r4, lr} + mov r4, r0 + bl _ZN10MapManager18func_ov00_02082d08Ev + mov r1, r0 + ldr r0, [r4] + bl _ZN6Course18FindMapData_Unk_08Ei + 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 ; =_ZN6Course13Get_Unk_c8_00Ev + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020835a4Ev +_020835b0: .word _ZN6Course13Get_Unk_c8_00Ev + + .global _ZN10MapManager18func_ov00_020835b4Ev + arm_func_start _ZN10MapManager18func_ov00_020835b4Ev +_ZN10MapManager18func_ov00_020835b4Ev: ; 0x020835b4 + ldr ip, _020835c0 ; =_ZN6Course13Get_Unk_c8_04Ev + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020835b4Ev +_020835c0: .word _ZN6Course13Get_Unk_c8_04Ev + + .global _ZN10MapManager18func_ov00_020835c4Eii + arm_func_start _ZN10MapManager18func_ov00_020835c4Eii +_ZN10MapManager18func_ov00_020835c4Eii: ; 0x020835c4 + stmdb sp!, {r3, lr} + mov r3, #3 + str r3, [sp] + ldr r0, [r0] + mov r3, r2 + mov r2, #0 + 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 ; =_ZN6Course18func_ov00_0207caa8EiPiPc + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020835e4EiPiS0_ +_020835f0: .word _ZN6Course18func_ov00_0207caa8EiPiPc + + .global _ZN10MapManager18func_ov00_020835f4Ei + arm_func_start _ZN10MapManager18func_ov00_020835f4Ei +_ZN10MapManager18func_ov00_020835f4Ei: ; 0x020835f4 + ldr ip, _02083600 ; =_ZN6Course18func_ov00_0207cb30Ei + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020835f4Ei +_02083600: .word _ZN6Course18func_ov00_0207cb30Ei + + .global _ZN10MapManager18func_ov00_02083604Ei + arm_func_start _ZN10MapManager18func_ov00_02083604Ei +_ZN10MapManager18func_ov00_02083604Ei: ; 0x02083604 + ldr ip, _02083610 ; =_ZN6Course18func_ov00_0207cbe8Ei + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083604Ei +_02083610: .word _ZN6Course18func_ov00_0207cbe8Ei + + .global _ZN10MapManager18func_ov00_02083614Ei + arm_func_start _ZN10MapManager18func_ov00_02083614Ei +_ZN10MapManager18func_ov00_02083614Ei: ; 0x02083614 + ldr ip, _02083620 ; =_ZN6Course18func_ov00_0207cc24Ei + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083614Ei +_02083620: .word _ZN6Course18func_ov00_0207cc24Ei + + .global _ZN10MapManager14GetEntrancePosEP5Vec3pi + arm_func_start _ZN10MapManager14GetEntrancePosEP5Vec3pi +_ZN10MapManager14GetEntrancePosEP5Vec3pi: ; 0x02083624 + stmdb sp!, {r4, lr} + ldr r0, [r0, #4] + mov r4, r1 + mov r1, r2 + bl _ZN7MapBase12FindEntranceEi + mov r3, r0 + ldmia r3, {r0, r1, r2} + stmia r4, {r0, r1, r2} + ldrsh r1, [r3, #0xc] + mov r0, #1 + strh r1, [r4, #0xc] + ldrb r1, [r3, #0xe] + strb r1, [r4, #0xe] + ldr r1, [r3, #0x10] + str r1, [r4, #0x10] + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager14GetEntrancePosEP5Vec3pi + + .global _ZN10MapManager18func_ov00_02083664EP5Vec3pi + arm_func_start _ZN10MapManager18func_ov00_02083664EP5Vec3pi +_ZN10MapManager18func_ov00_02083664EP5Vec3pi: ; 0x02083664 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #0x14 + mov r4, r1 + mov ip, #0xff + mov r3, #0 + add r1, sp, #0 + strb ip, [sp, #0xe] + str r3, [sp, #0x10] + bl _ZN10MapManager14GetEntrancePosEP5Vec3pi + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, #0 + ldmeqia sp!, {r3, r4, pc} + ldr r1, [sp] + mov r0, #1 + str r1, [r4] + ldr r1, [sp, #4] + str r1, [r4, #4] + ldr r1, [sp, #8] + str r1, [r4, #8] + add sp, sp, #0x14 + ldmia sp!, {r3, r4, pc} + arm_func_end _ZN10MapManager18func_ov00_02083664EP5Vec3pi + + .global _ZN10MapManager18func_ov00_020836bcEjPi + arm_func_start _ZN10MapManager18func_ov00_020836bcEjPi +_ZN10MapManager18func_ov00_020836bcEjPi: ; 0x020836bc + ldr ip, _020836c8 ; =_ZN7MapBase21GetTriggerBoundingBoxEiP4AABB + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020836bcEjPi +_020836c8: .word _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB + + .global _ZN10MapManager18func_ov00_020836ccEjP4AABBj + arm_func_start _ZN10MapManager18func_ov00_020836ccEjP4AABBj +_ZN10MapManager18func_ov00_020836ccEjP4AABBj: ; 0x020836cc + ldr ip, _020836d8 ; =_ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020836ccEjP4AABBj +_020836d8: .word _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi + + .global _ZN10MapManager18func_ov00_020836dcEii + arm_func_start _ZN10MapManager18func_ov00_020836dcEii +_ZN10MapManager18func_ov00_020836dcEii: ; 0x020836dc + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0xc + cmp r2, #0 + mov r5, r0 + mov r4, r1 + cmpne r2, #1 + bne _02083718 + ldr r0, _02083768 ; =data_027e0f94 + ldr r2, [r0] + ldr r1, [r0, #4] + str r2, [sp] + str r1, [sp, #4] + ldr r0, [r0, #8] + str r0, [sp, #8] + b _02083750 +_02083718: + ldr r0, _0208376c ; =data_027e0fe4 + mov r1, r2 + ldr r0, [r0] + bl _ZN12ActorManager13FindActorByIdEj + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + ldmeqia sp!, {r4, r5, pc} + ldr r1, [r0, #0x48] + str r1, [sp] + ldr r1, [r0, #0x4c] + str r1, [sp, #4] + ldr r0, [r0, #0x50] + str r0, [sp, #8] +_02083750: + add r2, sp, #0 + mov r0, r5 + mov r1, r4 + bl _ZN10MapManager18func_ov00_02083770Eji + add sp, sp, #0xc + ldmia sp!, {r4, r5, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020836dcEii +_02083768: .word data_027e0f94 +_0208376c: .word data_027e0fe4 + + .global _ZN10MapManager18func_ov00_02083770Eji + arm_func_start _ZN10MapManager18func_ov00_02083770Eji +_ZN10MapManager18func_ov00_02083770Eji: ; 0x02083770 + ldr ip, _0208377c ; =_ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083770Eji +_0208377c: .word _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p + + .global _ZN10MapManager18func_ov00_02083780Ei + arm_func_start _ZN10MapManager18func_ov00_02083780Ei +_ZN10MapManager18func_ov00_02083780Ei: ; 0x02083780 + ldr ip, _0208378c ; =_ZN7MapBase21GetOverlappingTriggerEP5Vec3p + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083780Ei +_0208378c: .word _ZN7MapBase21GetOverlappingTriggerEP5Vec3p + + .global _ZN10MapManager18func_ov00_02083790Ei + arm_func_start _ZN10MapManager18func_ov00_02083790Ei +_ZN10MapManager18func_ov00_02083790Ei: ; 0x02083790 + stmdb sp!, {r3, r4, r5, lr} + sub sp, sp, #8 + movs r4, r1 + mov r5, r0 + addeq sp, sp, #8 + moveq r0, #1 + ldmeqia sp!, {r3, r4, r5, pc} + ldr r1, _02083830 ; =data_027e0f64 + ldr r0, _02083834 ; =data_027e0d38 + ldr r2, [r1] + ldr r2, [r2, #8] + str r4, [r2, #0x1b4] + ldr r1, [r1] + ldr r1, [r1, #4] + str r4, [r1, #0x1b4] + ldr r0, [r0] + bl func_ov00_02078b40 + cmp r0, #0 + beq _0208381c + add r1, sp, #4 + add r2, sp, #0 + mov r0, r5 + bl _ZN10MapManager18func_ov00_02082e1cEPiS0_ + cmp r0, #0 + bne _0208381c + ldr r0, _02083838 ; =data_027e0d3c + mov r1, r4 + ldr r0, [r0] + mov r2, #0x10 + bl func_ov00_02079898 + ldr r0, _0208383c ; =data_027e0fe4 + mov r1, r4 + ldr r0, [r0] + mov r2, #1 + bl _ZN12ActorManager18func_ov00_020c3ce8Eii +_0208381c: + ldr r0, [r5, #4] + mov r1, r4 + bl _ZN7MapBase18AnyTrigger_func_0cEi + add sp, sp, #8 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083790Ei +_02083830: .word data_027e0f64 +_02083834: .word data_027e0d38 +_02083838: .word data_027e0d3c +_0208383c: .word data_027e0fe4 + + .global _ZN10MapManager18func_ov00_02083840Ei + arm_func_start _ZN10MapManager18func_ov00_02083840Ei +_ZN10MapManager18func_ov00_02083840Ei: ; 0x02083840 + stmdb sp!, {r3, r4, r5, lr} + movs r4, r1 + mov r5, r0 + moveq r0, #1 + ldmeqia sp!, {r3, r4, r5, pc} + ldr r1, _020838bc ; =data_027e0f64 + mvn r3, #0 + ldr r2, [r1] + ldr r0, _020838c0 ; =data_027e0d3c + ldr r2, [r2, #8] + str r3, [r2, #0x1b4] + ldr r1, [r1] + ldr r1, [r1, #4] + str r3, [r1, #0x1b4] + ldr r0, [r0] + bl func_ov00_02078fe8 + cmp r0, #0 + blt _020838ac + ldr r0, _020838c0 ; =data_027e0d3c + mov r1, #0x10 + ldr r0, [r0] + bl func_ov00_020798bc + ldr r0, _020838c4 ; =data_027e0fe4 + mov r1, r4 + ldr r0, [r0] + mov r2, #0 + bl _ZN12ActorManager18func_ov00_020c3ce8Eii +_020838ac: + ldr r0, [r5, #4] + mov r1, r4 + bl _ZN7MapBase22TriggerOfType_vfunc_10Ei + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083840Ei +_020838bc: .word data_027e0f64 +_020838c0: .word data_027e0d3c +_020838c4: .word data_027e0fe4 + + .global _ZN10MapManager18func_ov00_020838c8Ei + arm_func_start _ZN10MapManager18func_ov00_020838c8Ei +_ZN10MapManager18func_ov00_020838c8Ei: ; 0x020838c8 + ldr ip, _020838d4 ; =_ZN7MapBase10AddTriggerEi + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020838c8Ei +_020838d4: .word _ZN7MapBase10AddTriggerEi + + .global _ZN10MapManager18func_ov00_020838d8Ei + arm_func_start _ZN10MapManager18func_ov00_020838d8Ei +_ZN10MapManager18func_ov00_020838d8Ei: ; 0x020838d8 + ldr ip, _020838e4 ; =_ZN7MapBase18func_ov00_0207ff88Ei + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020838d8Ei +_020838e4: .word _ZN7MapBase18func_ov00_0207ff88Ei + + .global _ZN10MapManager18func_ov00_020838e8EjPi + arm_func_start _ZN10MapManager18func_ov00_020838e8EjPi +_ZN10MapManager18func_ov00_020838e8EjPi: ; 0x020838e8 + ldr ip, _020838f4 ; =_ZN7MapBase8FindExitEiP4Exit + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020838e8EjPi +_020838f4: .word _ZN7MapBase8FindExitEiP4Exit + + .global _ZN10MapManager18func_ov00_020838f8EPi + arm_func_start _ZN10MapManager18func_ov00_020838f8EPi +_ZN10MapManager18func_ov00_020838f8EPi: ; 0x020838f8 + ldr ip, _02083904 ; =_ZN7MapBase18func_ov00_02080140EP4Exit + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020838f8EPi +_02083904: .word _ZN7MapBase18func_ov00_02080140EP4Exit + + .global _ZN10MapManager18func_ov00_02083908EcPi + arm_func_start _ZN10MapManager18func_ov00_02083908EcPi +_ZN10MapManager18func_ov00_02083908EcPi: ; 0x02083908 + ldr ip, _02083914 ; =_ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083908EcPi +_02083914: .word _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint + + .global _ZN10MapManager18func_ov00_02083918EiPi + arm_func_start _ZN10MapManager18func_ov00_02083918EiPi +_ZN10MapManager18func_ov00_02083918EiPi: ; 0x02083918 + ldr ip, _02083924 ; =_ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083918EiPi +_02083924: .word _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint + + .global _ZN10MapManager18func_ov00_02083928EPci + arm_func_start _ZN10MapManager18func_ov00_02083928EPci +_ZN10MapManager18func_ov00_02083928EPci: ; 0x02083928 + ldr ip, _02083934 ; =_ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083928EPci +_02083934: .word _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi + + .global _ZN10MapManager18func_ov00_02083938Ei + arm_func_start _ZN10MapManager18func_ov00_02083938Ei +_ZN10MapManager18func_ov00_02083938Ei: ; 0x02083938 + ldr ip, _02083944 ; =_ZN7MapBase26GetCurrentViewpoint_Unk_00Ei + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083938Ei +_02083944: .word _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei + + .global _ZN10MapManager18Set_MapData_Unk_16Eci + arm_func_start _ZN10MapManager18Set_MapData_Unk_16Eci +_ZN10MapManager18Set_MapData_Unk_16Eci: ; 0x02083948 + ldr r0, [r0, #4] + add r0, r0, r2 + strb r1, [r0, #0x16] + bx lr + arm_func_end _ZN10MapManager18Set_MapData_Unk_16Eci + + .global _ZN10MapManager18func_ov00_02083958Ei + arm_func_start _ZN10MapManager18func_ov00_02083958Ei +_ZN10MapManager18func_ov00_02083958Ei: ; 0x02083958 + ldr ip, _02083964 ; =_ZN7MapBase18func_ov00_0207f924Ei + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083958Ei +_02083964: .word _ZN7MapBase18func_ov00_0207f924Ei + + .global _ZN10MapManager18func_ov00_02083968EjPc + arm_func_start _ZN10MapManager18func_ov00_02083968EjPc +_ZN10MapManager18func_ov00_02083968EjPc: ; 0x02083968 + ldr ip, _02083974 ; =_ZN7MapBase18func_ov00_02080824Eii + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083968EjPc +_02083974: .word _ZN7MapBase18func_ov00_02080824Eii + + .global _ZN10MapManager18func_ov00_02083978EiP5Vec3p + arm_func_start _ZN10MapManager18func_ov00_02083978EiP5Vec3p +_ZN10MapManager18func_ov00_02083978EiP5Vec3p: ; 0x02083978 + stmdb sp!, {r4, lr} + ldr r0, [r0, #4] + mov r4, r2 + bl _ZN7MapBase18func_ov00_02080a78EP5Vec3p + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + ldr r1, [r0, #8] + str r1, [r4] + ldr r1, [r0, #0xc] + str r1, [r4, #4] + ldr r1, [r0, #0x10] + mov r0, #1 + str r1, [r4, #8] + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager18func_ov00_02083978EiP5Vec3p + + .global _ZN10MapManager18func_ov00_020839b4Ei + arm_func_start _ZN10MapManager18func_ov00_020839b4Ei +_ZN10MapManager18func_ov00_020839b4Ei: ; 0x020839b4 + ldr ip, _020839c0 ; =_ZN7MapBase10AddUnk_130Ei + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020839b4Ei +_020839c0: .word _ZN7MapBase10AddUnk_130Ei + + .global _ZN10MapManager18func_ov00_020839c4Ei + arm_func_start _ZN10MapManager18func_ov00_020839c4Ei +_ZN10MapManager18func_ov00_020839c4Ei: ; 0x020839c4 + ldr ip, _020839d0 ; =_ZN7MapBase18func_ov00_020809b8Ei + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020839c4Ei +_020839d0: .word _ZN7MapBase18func_ov00_020809b8Ei + + .global _ZN10MapManager18func_ov00_020839d4Ev + arm_func_start _ZN10MapManager18func_ov00_020839d4Ev +_ZN10MapManager18func_ov00_020839d4Ev: ; 0x020839d4 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + mov r1, r0 + ldr r0, [r5, #4] + sub r1, r4, r1 + bl _ZN7MapBase15GetClampedTileXEi + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN10MapManager18func_ov00_020839d4Ev + + .global _ZN10MapManager18func_ov00_020839f8Ev + arm_func_start _ZN10MapManager18func_ov00_020839f8Ev +_ZN10MapManager18func_ov00_020839f8Ev: ; 0x020839f8 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev + mov r1, r0 + ldr r0, [r5, #4] + sub r1, r4, r1 + bl _ZN7MapBase15GetClampedTileYEi + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN10MapManager18func_ov00_020839f8Ev + + .global _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + arm_func_start _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +_ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p: ; 0x02083a1c + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r5, r2 + mov r6, r1 + mov r7, r0 + ldr r1, [r5, #8] + mov r0, r6 + bl _ZN10MapManager18func_ov00_020839f8Ev + mov r4, r0 + ldr r1, [r5] + mov r0, r6 + bl _ZN10MapManager18func_ov00_020839d4Ev + strb r0, [r7] + strb r4, [r7, #1] + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + + .global _ZN10MapManager18func_ov00_02083a54EiPS_iii + arm_func_start _ZN10MapManager18func_ov00_02083a54EiPS_iii +_ZN10MapManager18func_ov00_02083a54EiPS_iii: ; 0x02083a54 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #0x24 + mov r6, r1 + mov r7, r0 + mov r0, r6 + mov r5, r2 + mov r4, r3 + bl _ZN10MapManager21GetCourseData_Unk_25cEv + cmp r0, #0 + beq _02083b58 + mvn r0, #0 + cmp r4, r0 + ldrne r2, [sp, #0x38] + cmpne r2, r0 + bne _02083aa0 + mov r0, r6 + bl _ZN10MapManager18func_ov00_02082d08Ev + mov r1, r0 + b _02083ab4 +_02083aa0: + ldr r1, [r6] + mov r0, #0xa + mla r0, r4, r0, r1 + add r0, r0, r2 + ldrb r1, [r0, #0x20] +_02083ab4: + mov r0, r6 + bl _ZN10MapManager18func_ov00_02083318Ei + cmp r0, #0 + beq _02083b2c + ldr r3, [sp, #0x38] + add r1, sp, #0x18 + mov r0, r6 + mov r2, r4 + bl _ZN10MapManager18func_ov00_02083524EP5Vec3pii + ldr r1, [r5] + add r0, sp, #0 + str r1, [sp] + ldr r2, [r5, #4] + add r1, sp, #0x18 + str r2, [sp, #4] + ldr r3, [r5, #8] + add r2, sp, #0xc + str r3, [sp, #8] + bl func_01ff9bf8 + ldr r0, [r6, #4] + ldr r1, [sp, #0x14] + bl _ZN7MapBase15GetClampedTileYEi + mov r4, r0 + ldr r0, [r6, #4] + ldr r1, [sp, #0xc] + bl _ZN7MapBase15GetClampedTileXEi + strb r0, [r7] + add sp, sp, #0x24 + strb r4, [r7, #1] + ldmia sp!, {r4, r5, r6, r7, pc} +_02083b2c: + ldr r1, [r5, #8] + mov r0, r6 + bl _ZN10MapManager18func_ov00_020839f8Ev + mov r4, r0 + ldr r1, [r5] + mov r0, r6 + bl _ZN10MapManager18func_ov00_020839d4Ev + strb r0, [r7] + add sp, sp, #0x24 + strb r4, [r7, #1] + ldmia sp!, {r4, r5, r6, r7, pc} +_02083b58: + ldr r1, [r5, #8] + mov r0, r6 + bl _ZN10MapManager18func_ov00_020839f8Ev + mov r4, r0 + ldr r1, [r5] + mov r0, r6 + bl _ZN10MapManager18func_ov00_020839d4Ev + strb r0, [r7] + strb r4, [r7, #1] + add sp, sp, #0x24 + ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end _ZN10MapManager18func_ov00_02083a54EiPS_iii + + .global _ZN10MapManager18func_ov00_02083b84Ev + arm_func_start _ZN10MapManager18func_ov00_02083b84Ev +_ZN10MapManager18func_ov00_02083b84Ev: ; 0x02083b84 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + mov r4, r0 + ldr r0, [r6, #4] + mov r1, r5 + bl _ZN7MapBase13GetTileStartXEi + add r0, r4, r0 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN10MapManager18func_ov00_02083b84Ev + + .global _ZN10MapManager18func_ov00_02083bacEv + arm_func_start _ZN10MapManager18func_ov00_02083bacEv +_ZN10MapManager18func_ov00_02083bacEv: ; 0x02083bac + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev + mov r4, r0 + ldr r0, [r6, #4] + mov r1, r5 + bl _ZN7MapBase13GetTileStartZEi + add r0, r4, r0 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN10MapManager18func_ov00_02083bacEv + + .global _ZN10MapManager18func_ov00_02083bd4Ev + arm_func_start _ZN10MapManager18func_ov00_02083bd4Ev +_ZN10MapManager18func_ov00_02083bd4Ev: ; 0x02083bd4 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + mov r4, r0 + ldr r0, [r6, #4] + mov r1, r5 + bl _ZN7MapBase11GetTileEndXEi + add r0, r4, r0 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN10MapManager18func_ov00_02083bd4Ev + + .global _ZN10MapManager18func_ov00_02083bfcEv + arm_func_start _ZN10MapManager18func_ov00_02083bfcEv +_ZN10MapManager18func_ov00_02083bfcEv: ; 0x02083bfc + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev + mov r4, r0 + ldr r0, [r6, #4] + mov r1, r5 + bl _ZN7MapBase11GetTileEndZEi + add r0, r4, r0 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN10MapManager18func_ov00_02083bfcEv + + .global _ZN10MapManager18func_ov00_02083c24Ei + arm_func_start _ZN10MapManager18func_ov00_02083c24Ei +_ZN10MapManager18func_ov00_02083c24Ei: ; 0x02083c24 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + mov r4, r0 + ldr r0, [r6, #4] + mov r1, r5 + bl _ZN7MapBase13GetTileStartXEi + add r0, r4, r0 + add r0, r0, #0x800 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN10MapManager18func_ov00_02083c24Ei + + .global _ZN10MapManager18func_ov00_02083c50Ei + arm_func_start _ZN10MapManager18func_ov00_02083c50Ei +_ZN10MapManager18func_ov00_02083c50Ei: ; 0x02083c50 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev + mov r4, r0 + ldr r0, [r6, #4] + mov r1, r5 + bl _ZN7MapBase13GetTileStartZEi + add r0, r4, r0 + add r0, r0, #0x800 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN10MapManager18func_ov00_02083c50Ei + + .global _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi + arm_func_start _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +_ZN10MapManager18func_ov00_02083c7cEP5Vec3pi: ; 0x02083c7c + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0xc + mov r4, r1 + ldrb r1, [sp, #0x20] + mov r5, r0 + bl _ZN10MapManager18func_ov00_02083c24Ei + str r0, [r4] + ldrb r1, [sp, #0x21] + mov r0, r5 + bl _ZN10MapManager18func_ov00_02083c50Ei + str r0, [r4, #8] + ldr r0, [r4] + add r1, sp, #0 + str r0, [sp] + ldr r2, [r4, #4] + mov r0, r5 + str r2, [sp, #4] + ldr r3, [r4, #8] + mov r2, #1 + str r3, [sp, #8] + bl _ZN10MapManager16MapData_vfunc_68Ev + str r0, [r4, #4] + add sp, sp, #0xc + ldmia sp!, {r4, r5, lr} + add sp, sp, #0x10 + bx lr + arm_func_end _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi + + .global _ZN10MapManager18func_ov00_02083ce8Ecccci + arm_func_start _ZN10MapManager18func_ov00_02083ce8Ecccci +_ZN10MapManager18func_ov00_02083ce8Ecccci: ; 0x02083ce8 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x18 + mov r6, r0 + mov r5, r1 + mov r4, r3 + bl _ZN10MapManager21GetCourseData_Unk_25cEv + cmp r0, #0 + beq _02083dd0 + mvn r0, #0 + cmp r4, r0 + ldrne r2, [sp, #0x38] + cmpne r2, r0 + bne _02083d30 + mov r0, r6 + bl _ZN10MapManager18func_ov00_02082d08Ev + mov r1, r0 + b _02083d44 +_02083d30: + ldr r1, [r6] + mov r0, #0xa + mla r0, r4, r0, r1 + add r0, r0, r2 + ldrb r1, [r0, #0x20] +_02083d44: + mov r0, r6 + bl _ZN10MapManager18func_ov00_02083318Ei + cmp r0, #0 + beq _02083da4 + ldr r3, [sp, #0x38] + add r1, sp, #0xc + mov r0, r6 + mov r2, r4 + bl _ZN10MapManager18func_ov00_02083524EP5Vec3pii + ldrb r1, [sp, #0x30] + ldr r0, [r6, #4] + bl _ZN7MapBase13GetTileStartXEi + ldr r2, [sp, #0xc] + ldrb r1, [sp, #0x31] + add r0, r2, r0 + add r0, r0, #0x800 + str r0, [r5] + ldr r0, [r6, #4] + bl _ZN7MapBase13GetTileStartZEi + ldr r1, [sp, #0x14] + add r0, r1, r0 + add r0, r0, #0x800 + str r0, [r5, #8] + b _02083df8 +_02083da4: + ldrb r1, [sp, #0x30] + ldr r0, [r6, #4] + bl _ZN7MapBase13GetTileStartXEi + add r0, r0, #0x800 + str r0, [r5] + ldrb r1, [sp, #0x31] + ldr r0, [r6, #4] + bl _ZN7MapBase13GetTileStartZEi + add r0, r0, #0x800 + str r0, [r5, #8] + b _02083df8 +_02083dd0: + ldrb r1, [sp, #0x30] + ldr r0, [r6, #4] + bl _ZN7MapBase13GetTileStartXEi + add r0, r0, #0x800 + str r0, [r5] + ldrb r1, [sp, #0x31] + ldr r0, [r6, #4] + bl _ZN7MapBase13GetTileStartZEi + add r0, r0, #0x800 + str r0, [r5, #8] +_02083df8: + ldr r0, [r5] + add r1, sp, #0 + str r0, [sp] + ldr r2, [r5, #4] + mov r0, r6 + str r2, [sp, #4] + ldr r3, [r5, #8] + mov r2, #1 + str r3, [sp, #8] + bl _ZN10MapManager16MapData_vfunc_68Ev + str r0, [r5, #4] + add sp, sp, #0x18 + ldmia sp!, {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr + arm_func_end _ZN10MapManager18func_ov00_02083ce8Ecccci + + .global _ZN10MapManager18func_ov00_02083e34Ecci + arm_func_start _ZN10MapManager18func_ov00_02083e34Ecci +_ZN10MapManager18func_ov00_02083e34Ecci: ; 0x02083e34 + stmdb sp!, {r3, lr} + strb r1, [sp] + strb r2, [sp, #1] + ldr r0, [r0, #4] + add r1, sp, #0 + ldr r2, [r0] + ldr r2, [r2, #0x60] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02083e34Ecci + + .global _ZN10MapManager16MapData_vfunc_60Ev + arm_func_start _ZN10MapManager16MapData_vfunc_60Ev +_ZN10MapManager16MapData_vfunc_60Ev: ; 0x02083e58 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r2, [r0] + ldr r2, [r2, #0x60] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_60Ev + + .global _ZN10MapManager18func_ov00_02083e70Ev + arm_func_start _ZN10MapManager18func_ov00_02083e70Ev +_ZN10MapManager18func_ov00_02083e70Ev: ; 0x02083e70 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl _ZN10MapManager16MapData_vfunc_54Ev + cmp r0, #0x2b + bgt _02083e98 + bge _02083eb0 + cmp r0, #0x1b + beq _02083eb0 + b _02083eb8 +_02083e98: + cmp r0, #0x4f + bgt _02083eb8 + cmp r0, #0x4e + blt _02083eb8 + cmpne r0, #0x4f + bne _02083eb8 +_02083eb0: + mov r0, #1 + ldmia sp!, {r3, r4, r5, pc} +_02083eb8: + mov r0, r5 + mov r1, r4 + bl _ZN10MapManager16MapData_vfunc_60Ev + mov r4, r0 + mov r0, r5 + bl _ZN10MapManager17GetMapData_Unk_48Ev + cmp r4, r0 + movge r0, #1 + movlt r0, #0 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN10MapManager18func_ov00_02083e70Ev + + .global _ZN10MapManager16MapData_vfunc_68Ev + arm_func_start _ZN10MapManager16MapData_vfunc_68Ev +_ZN10MapManager16MapData_vfunc_68Ev: ; 0x02083ee0 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r3, [r0] + ldr r3, [r3, #0x68] + blx r3 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_68Ev + + .global _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ + arm_func_start _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ +_ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_: ; 0x02083ef8 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #0xc + add ip, sp, #0 + mov r4, r0 + mov lr, r2 + ldmia r1, {r0, r1, r2} + stmia ip, {r0, r1, r2} + ldr r1, [lr, #4] + ldr r0, [sp, #4] + mov r2, r3 + cmp r1, r0 + strgt r1, [sp, #4] + ldr r0, [r4, #4] + add r1, sp, #0 + ldr ip, [r0] + ldr ip, [ip, #0x68] + blx ip + add sp, sp, #0xc + ldmia sp!, {r3, r4, pc} + arm_func_end _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ + + .global _ZN10MapManager18func_ov00_02083f44EP5Vec3p + arm_func_start _ZN10MapManager18func_ov00_02083f44EP5Vec3p +_ZN10MapManager18func_ov00_02083f44EP5Vec3p: ; 0x02083f44 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #0xc + ldr ip, _02083f7c ; =data_ov00_020e24a4 + mov r3, r2 + ldr r4, [r1, #8] + ldr lr, [r1] + ldr ip, [ip, #0x20] + add r2, sp, #0 + str lr, [sp] + str ip, [sp, #4] + str r4, [sp, #8] + bl _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ + add sp, sp, #0xc + ldmia sp!, {r3, r4, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083f44EP5Vec3p +_02083f7c: .word data_ov00_020e24a4 + + .global _ZN10MapManager16MapData_vfunc_6cEv + arm_func_start _ZN10MapManager16MapData_vfunc_6cEv +_ZN10MapManager16MapData_vfunc_6cEv: ; 0x02083f80 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr ip, [r0] + ldr ip, [ip, #0x6c] + blx ip + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_6cEv + + .global _ZN10MapManager16MapData_vfunc_70Ev + arm_func_start _ZN10MapManager16MapData_vfunc_70Ev +_ZN10MapManager16MapData_vfunc_70Ev: ; 0x02083f98 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r2, [r0] + ldr r2, [r2, #0x70] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_70Ev + + .global _ZN10MapManager18func_ov00_02083fb0EiPS_i + arm_func_start _ZN10MapManager18func_ov00_02083fb0EiPS_i +_ZN10MapManager18func_ov00_02083fb0EiPS_i: ; 0x02083fb0 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r1 + mov r4, r0 + ldr r0, [r6, #4] + mov r5, r2 + ldr r2, [r0] + mov r1, r5 + ldr r2, [r2, #0x74] + blx r2 + cmp r0, #0 + ldrne r0, [r0, #0xc] + strne r0, [r4] + ldmneia sp!, {r4, r5, r6, pc} + mov r0, r6 + mov r1, r5 + bl _ZN10MapManager16MapData_vfunc_70Ev + ldr r1, _0208401c ; =0x0000ffff + mov r2, r0 + cmp r2, r1 + moveq r0, #0 + streq r0, [r4] + ldmeqia sp!, {r4, r5, r6, pc} + ldr r1, _02084020 ; =data_027e0f6c + mov r0, r4 + ldr r1, [r1] + bl func_ov00_02093a1c + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02083fb0EiPS_i +_0208401c: .word 0x0000ffff +_02084020: .word data_027e0f6c + + .global _ZN10MapManager18func_ov00_02084024EiP4AABB + arm_func_start _ZN10MapManager18func_ov00_02084024EiP4AABB +_ZN10MapManager18func_ov00_02084024EiP4AABB: ; 0x02084024 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + mov r6, r0 + ldr r0, [r6, #4] + mov r5, r2 + bl _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB + mov r0, r6 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev + mov r4, r0 + mov r0, r6 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + add r1, sp, #0 + mov r0, r5 + mov r2, r5 + str r4, [sp, #8] + bl func_01ff9bc4 + add r0, r5, #0xc + mov r2, r0 + add r1, sp, #0 + bl func_01ff9bc4 + add sp, sp, #0xc + ldmia sp!, {r3, r4, r5, r6, pc} + arm_func_end _ZN10MapManager18func_ov00_02084024EiP4AABB + + .global _ZN10MapManager16MapData_vfunc_54Ev + arm_func_start _ZN10MapManager16MapData_vfunc_54Ev +_ZN10MapManager16MapData_vfunc_54Ev: ; 0x02084088 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r2, [r0] + ldr r2, [r2, #0x54] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_54Ev + + .global _ZN10MapManager18func_ov00_020840a0Ecci + arm_func_start _ZN10MapManager18func_ov00_020840a0Ecci +_ZN10MapManager18func_ov00_020840a0Ecci: ; 0x020840a0 + stmdb sp!, {r3, lr} + strb r1, [sp] + strb r2, [sp, #1] + ldr r0, [r0, #4] + add r1, sp, #0 + ldr r2, [r0] + ldr r2, [r2, #0x54] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_020840a0Ecci + + .global _ZN10MapManager16MapData_vfunc_78Ev + arm_func_start _ZN10MapManager16MapData_vfunc_78Ev +_ZN10MapManager16MapData_vfunc_78Ev: ; 0x020840c4 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r2, [r0] + ldr r2, [r2, #0x78] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_78Ev + + .global _ZN10MapManager18func_ov00_020840dcEv + arm_func_start _ZN10MapManager18func_ov00_020840dcEv +_ZN10MapManager18func_ov00_020840dcEv: ; 0x020840dc + stmdb sp!, {r3, lr} + bl _ZN10MapManager16MapData_vfunc_78Ev + cmp r0, #0 + mvneq r0, #0 + ldmeqia sp!, {r3, pc} + ldr r1, [r0] + ldr r1, [r1, #0x1c] + blx r1 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_020840dcEv + + .global _ZN10MapManager18func_ov00_02084100EiPS_ + arm_func_start _ZN10MapManager18func_ov00_02084100EiPS_ +_ZN10MapManager18func_ov00_02084100EiPS_: ; 0x02084100 + ldr r1, [r1, #4] + ldr r2, [r1, #0x40] + ldr r1, [r1, #0x44] + stmia r0, {r1, r2} + bx lr + arm_func_end _ZN10MapManager18func_ov00_02084100EiPS_ + + .global _ZN10MapManager17GetMapData_Unk_48Ev + arm_func_start _ZN10MapManager17GetMapData_Unk_48Ev +_ZN10MapManager17GetMapData_Unk_48Ev: ; 0x02084114 + ldr r0, [r0, #4] + ldr r0, [r0, #0x48] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_48Ev + + .global _ZN10MapManager17GetMapData_Unk_4cEv + arm_func_start _ZN10MapManager17GetMapData_Unk_4cEv +_ZN10MapManager17GetMapData_Unk_4cEv: ; 0x02084120 + ldr r0, [r0, #4] + ldr r0, [r0, #0x4c] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_4cEv + + .global _ZN10MapManager18func_ov00_0208412cEv + arm_func_start _ZN10MapManager18func_ov00_0208412cEv +_ZN10MapManager18func_ov00_0208412cEv: ; 0x0208412c + ldr ip, _02084138 ; =_ZN7MapBase18func_ov00_0207f934Ev + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_0208412cEv +_02084138: .word _ZN7MapBase18func_ov00_0207f934Ev + + .global _ZN10MapManager18func_ov00_0208413cEi + arm_func_start _ZN10MapManager18func_ov00_0208413cEi +_ZN10MapManager18func_ov00_0208413cEi: ; 0x0208413c + ldr ip, _02084148 ; =_ZN7MapBase18func_ov00_0207f948Ei + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_0208413cEi +_02084148: .word _ZN7MapBase18func_ov00_0207f948Ei + + .global _ZN10MapManager16MapData_vfunc_58Ev + arm_func_start _ZN10MapManager16MapData_vfunc_58Ev +_ZN10MapManager16MapData_vfunc_58Ev: ; 0x0208414c + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r3, [r0] + ldr r3, [r3, #0x58] + blx r3 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_58Ev + + .global _ZN10MapManager18func_ov00_02084164Ev + arm_func_start _ZN10MapManager18func_ov00_02084164Ev +_ZN10MapManager18func_ov00_02084164Ev: ; 0x02084164 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #4] + mov r2, #7 + ldr r3, [r0] + mov r4, r1 + ldr r3, [r3, #0x58] + blx r3 + cmp r0, #0 + movne r0, #0 + ldmneia sp!, {r3, r4, r5, pc} + mov r0, r5 + mov r1, r4 + bl _ZN10MapManager16MapData_vfunc_54Ev + cmp r0, #0x54 + addls pc, pc, r0, lsl #2 + b _02084304 +_020841a8: ; jump table + b _020842fc ; case 0 + b _02084304 ; case 1 + b _02084304 ; case 2 + b _02084304 ; case 3 + b _02084304 ; case 4 + b _02084304 ; case 5 + b _02084304 ; case 6 + b _02084304 ; case 7 + b _020842fc ; case 8 + b _020842fc ; case 9 + b _02084304 ; case 10 + b _020842fc ; case 11 + b _020842fc ; case 12 + b _020842fc ; case 13 + b _020842fc ; case 14 + b _020842fc ; case 15 + b _020842fc ; case 16 + b _020842fc ; case 17 + b _020842fc ; case 18 + b _020842fc ; case 19 + b _02084304 ; case 20 + b _020842fc ; case 21 + b _020842fc ; case 22 + b _02084304 ; case 23 + b _020842fc ; case 24 + b _02084304 ; case 25 + b _020842fc ; case 26 + b _02084304 ; case 27 + b _02084304 ; case 28 + b _02084304 ; case 29 + b _02084304 ; case 30 + b _02084304 ; case 31 + b _020842fc ; case 32 + b _020842fc ; case 33 + b _020842fc ; case 34 + b _020842fc ; case 35 + b _02084304 ; case 36 + b _020842fc ; case 37 + b _020842fc ; case 38 + b _020842fc ; case 39 + b _020842fc ; case 40 + b _020842fc ; case 41 + b _020842fc ; case 42 + b _02084304 ; case 43 + b _020842fc ; case 44 + b _020842fc ; case 45 + b _020842fc ; case 46 + b _020842fc ; case 47 + b _02084304 ; case 48 + b _020842fc ; case 49 + b _020842fc ; case 50 + b _02084304 ; case 51 + b _02084304 ; case 52 + b _020842fc ; case 53 + b _020842fc ; case 54 + b _02084304 ; case 55 + b _020842fc ; case 56 + b _020842fc ; case 57 + b _020842fc ; case 58 + b _020842fc ; case 59 + b _020842fc ; case 60 + b _020842fc ; case 61 + b _020842fc ; case 62 + b _020842fc ; case 63 + b _02084304 ; case 64 + b _020842fc ; case 65 + b _020842fc ; case 66 + b _020842fc ; case 67 + b _020842fc ; case 68 + b _020842fc ; case 69 + b _02084304 ; case 70 + b _02084304 ; case 71 + b _02084304 ; case 72 + b _02084304 ; case 73 + b _02084304 ; case 74 + b _02084304 ; case 75 + b _02084304 ; case 76 + b _020842fc ; case 77 + b _02084304 ; case 78 + b _02084304 ; case 79 + b _02084304 ; case 80 + b _020842fc ; case 81 + b _020842fc ; case 82 + b _020842fc ; case 83 + b _020842fc ; case 84 +_020842fc: + mov r0, #1 + ldmia sp!, {r3, r4, r5, pc} +_02084304: + mov r0, #0 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN10MapManager18func_ov00_02084164Ev + + .global _ZN10MapManager17GetMapData_Unk_0aEv + arm_func_start _ZN10MapManager17GetMapData_Unk_0aEv +_ZN10MapManager17GetMapData_Unk_0aEv: ; 0x0208430c + ldr r0, [r0, #4] + ldrb r0, [r0, #0xa] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_0aEv + + .global _ZN10MapManager17GetMapData_Unk_0bEv + arm_func_start _ZN10MapManager17GetMapData_Unk_0bEv +_ZN10MapManager17GetMapData_Unk_0bEv: ; 0x02084318 + ldr r0, [r0, #4] + ldrb r0, [r0, #0xb] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_0bEv + + .global _ZN10MapManager16MapData_vfunc_a4Ev + arm_func_start _ZN10MapManager16MapData_vfunc_a4Ev +_ZN10MapManager16MapData_vfunc_a4Ev: ; 0x02084324 + stmdb sp!, {r3, lr} + ldr r0, [r0, #4] + ldr r2, [r0] + ldr r2, [r2, #0xa4] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager16MapData_vfunc_a4Ev + + .global _ZN10MapManager18func_ov00_0208433cEP5Vec3pi + arm_func_start _ZN10MapManager18func_ov00_0208433cEP5Vec3pi +_ZN10MapManager18func_ov00_0208433cEP5Vec3pi: ; 0x0208433c + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0x1c + add r3, sp, #0x10 + mov r5, r0 + mov r4, r2 + ldmia r1, {r0, r1, r2} + stmia r3, {r0, r1, r2} + add r1, sp, #4 + mov r0, r5 + bl _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p + add r0, sp, #0x10 + add r1, sp, #4 + mov r2, r0 + bl func_01ff9bf8 + ldr r1, [r5, #4] + add r0, sp, #0 + add r2, sp, #0x10 + bl _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p + ldrsh r0, [sp] + strh r0, [r4] + ldrsh r0, [sp, #2] + strh r0, [r4, #2] + add sp, sp, #0x1c + ldmia sp!, {r4, r5, pc} + arm_func_end _ZN10MapManager18func_ov00_0208433cEP5Vec3pi + + .global _ZN10MapManager18func_ov00_0208439cEv + arm_func_start _ZN10MapManager18func_ov00_0208439cEv +_ZN10MapManager18func_ov00_0208439cEv: ; 0x0208439c + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0xc + mov r5, r0 + ldr r0, [r5, #4] + mov r4, r2 + bl _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p + add r1, sp, #0 + mov r0, r5 + bl _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p + add r1, sp, #0 + mov r0, r4 + mov r2, r4 + bl func_01ff9bc4 + mov r0, r5 + mov r1, r4 + mov r2, #1 + bl _ZN10MapManager16MapData_vfunc_68Ev + str r0, [r4, #4] + add sp, sp, #0xc + ldmia sp!, {r4, r5, pc} + arm_func_end _ZN10MapManager18func_ov00_0208439cEv + + .global _ZN10MapManager18func_ov00_020843ecEPi + arm_func_start _ZN10MapManager18func_ov00_020843ecEPi +_ZN10MapManager18func_ov00_020843ecEPi: ; 0x020843ec + stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x6c + mov r6, r1 + mov r5, r0 + mov r0, r6 + ldr r1, [r0] + mov r4, r2 + ldr r1, [r1, #8] + blx r1 + cmp r0, #0 + cmpne r0, #1 + beq _0208442c + cmp r0, #2 + beq _02084574 + add sp, sp, #0x6c + ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} +_0208442c: + mov r0, r6 + ldr r2, [r0] + add r1, sp, #0x60 + ldr r2, [r2, #0x3c] + blx r2 + mov r0, r6 + ldr r1, [r0] + ldr r1, [r1, #0x40] + blx r1 + ldr r6, [sp, #0x64] + ldr r2, [sp, #0x60] + ldr r3, [sp, #0x68] + sub r1, r2, r0 + str r1, [sp, #0x54] + sub r1, r3, r0 + str r1, [sp, #0x5c] + add r2, r2, r0 + add r1, r3, r0 + mov r0, r5 + str r2, [sp, #0x48] + str r6, [sp, #0x58] + str r6, [sp, #0x4c] + str r1, [sp, #0x50] + bl _ZN10MapManager18func_ov00_020833c4Ev + ldr r1, [sp, #0x54] + sub r0, r1, r0 + str r0, [sp, #0x54] + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833d0Ev + ldr r1, [sp, #0x5c] + sub r0, r1, r0 + str r0, [sp, #0x5c] + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833c4Ev + ldr r1, [sp, #0x48] + sub r0, r1, r0 + str r0, [sp, #0x48] + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833d0Ev + ldr r1, [sp, #0x50] + add r2, sp, #0x54 + sub r0, r1, r0 + str r0, [sp, #0x50] + ldr r1, [r5, #4] + add r0, sp, #0x14 + bl _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p + ldr r1, [r5, #4] + add r0, sp, #0x10 + add r2, sp, #0x48 + bl _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p + ldrsh r7, [sp, #0x14] + ldrsh r0, [sp, #0x10] + cmp r7, r0 + addgt sp, sp, #0x6c + ldmgtia sp!, {r3, r4, r5, r6, r7, r8, pc} + add r6, sp, #4 +_0208450c: + ldrsh r8, [sp, #0x16] + ldrsh r0, [sp, #0x12] + cmp r8, r0 + bgt _02084554 +_0208451c: + strh r7, [sp, #4] + strh r8, [sp, #6] + ldr r0, [r5, #4] + mov r1, r6 + ldr r3, [r0] + mov r2, r4 + ldr r3, [r3, #0xac] + blx r3 + add r0, r8, #1 + mov r0, r0, lsl #0x10 + ldrsh r1, [sp, #0x12] + mov r8, r0, asr #0x10 + cmp r1, r0, asr #16 + bge _0208451c +_02084554: + ldrsh r1, [sp, #0x10] + add r0, r7, #1 + mov r0, r0, lsl #0x10 + cmp r1, r0, asr #16 + mov r7, r0, asr #0x10 + bge _0208450c + add sp, sp, #0x6c + ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} +_02084574: + mov r0, r6 + ldr r2, [r0] + add r1, sp, #0x30 + ldr r2, [r2, #0x2c] + blx r2 + add r0, sp, #0x30 + add r3, sp, #0x24 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + add r0, sp, #0x3c + add r3, sp, #0x18 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833c4Ev + ldr r1, [sp, #0x24] + sub r0, r1, r0 + str r0, [sp, #0x24] + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833d0Ev + ldr r1, [sp, #0x2c] + sub r0, r1, r0 + str r0, [sp, #0x2c] + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833c4Ev + ldr r1, [sp, #0x18] + sub r0, r1, r0 + str r0, [sp, #0x18] + mov r0, r5 + bl _ZN10MapManager18func_ov00_020833d0Ev + ldr r1, [sp, #0x20] + add r2, sp, #0x24 + sub r0, r1, r0 + str r0, [sp, #0x20] + ldr r1, [r5, #4] + add r0, sp, #0xc + bl _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p + ldr r1, [r5, #4] + add r0, sp, #8 + add r2, sp, #0x18 + bl _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p + ldrsh r7, [sp, #0xc] + ldrsh r0, [sp, #8] + cmp r7, r0 + addgt sp, sp, #0x6c + ldmgtia sp!, {r3, r4, r5, r6, r7, r8, pc} + add r6, sp, #0 +_02084630: + ldrsh r8, [sp, #0xe] + ldrsh r0, [sp, #0xa] + cmp r8, r0 + bgt _02084678 +_02084640: + strh r7, [sp] + strh r8, [sp, #2] + ldr r0, [r5, #4] + mov r1, r6 + ldr r3, [r0] + mov r2, r4 + ldr r3, [r3, #0xac] + blx r3 + add r0, r8, #1 + mov r0, r0, lsl #0x10 + ldrsh r1, [sp, #0xa] + mov r8, r0, asr #0x10 + cmp r1, r0, asr #16 + bge _02084640 +_02084678: + ldrsh r1, [sp, #8] + add r0, r7, #1 + mov r0, r0, lsl #0x10 + cmp r1, r0, asr #16 + mov r7, r0, asr #0x10 + bge _02084630 + add sp, sp, #0x6c + ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} + arm_func_end _ZN10MapManager18func_ov00_020843ecEPi + + .global _ZN10MapManager17GetMapData_Unk_38Ev + arm_func_start _ZN10MapManager17GetMapData_Unk_38Ev +_ZN10MapManager17GetMapData_Unk_38Ev: ; 0x02084698 + ldr r0, [r0, #4] + ldr r0, [r0, #0x38] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_38Ev + + .global _ZN10MapManager18func_ov00_020846a4Ev + arm_func_start _ZN10MapManager18func_ov00_020846a4Ev +_ZN10MapManager18func_ov00_020846a4Ev: ; 0x020846a4 + ldr r1, [r0, #4] + ldr r1, [r1, #0x144] + ldr r1, [r1, #4] + cmp r1, #0xff + bne _020846f8 + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _020846f0 +_020846cc: ; jump table + b _020846f0 ; case 0 + b _020846e0 ; case 1 + b _020846e8 ; case 2 + b _020846e0 ; case 3 + b _020846e0 ; case 4 +_020846e0: + mov r0, #1 + bx lr +_020846e8: + mov r0, #2 + bx lr +_020846f0: + mov r0, #0 + bx lr +_020846f8: + mov r0, r1 + bx lr + arm_func_end _ZN10MapManager18func_ov00_020846a4Ev + + .global _ZN10MapManager18func_ov00_02084700Ev + arm_func_start _ZN10MapManager18func_ov00_02084700Ev +_ZN10MapManager18func_ov00_02084700Ev: ; 0x02084700 + ldr r2, [r0, #4] + mvn r1, #0 + ldr r2, [r2, #0x34] + cmp r2, r1 + ldreq r0, [r0] + ldreq r2, [r0, #0xc4] + cmp r2, #0x1b + bne _02084734 + ldr r0, _0208473c ; =data_027e0fe4 + ldr r0, [r0] + ldrb r0, [r0, #0x29] + cmp r0, #0 + movne r2, #0x1c +_02084734: + mov r0, r2 + bx lr + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02084700Ev +_0208473c: .word data_027e0fe4 + + .global _ZN10MapManager18func_ov00_02084740Ev + arm_func_start _ZN10MapManager18func_ov00_02084740Ev +_ZN10MapManager18func_ov00_02084740Ev: ; 0x02084740 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0x1bc + mov r5, r0 + bl _ZN10MapManager18func_ov00_02084700Ev + ldr r1, _020847d4 ; =data_027e0d38 + mov r4, r0 + ldr r0, [r1] + bl func_ov00_02078b40 + cmp r0, #2 + beq _020847a8 + ldr r0, _020847d8 ; =data_027e0f94 + add r1, sp, #0 + ldr r3, [r0] + ldr r2, [r0, #4] + str r3, [sp] + str r2, [sp, #4] + ldr r2, [r0, #8] + mov r0, r5 + str r2, [sp, #8] + bl _ZN10MapManager18func_ov00_02083780Ei + mov r1, r0 + cmp r1, #0 + ble _020847a8 + mov r0, r5 + bl _ZN10MapManager18func_ov00_020847f0Ev + mov r4, r0 +_020847a8: + ldr r5, _020847dc ; =data_ov00_020d88f0 + add lr, sp, #0xc + mov ip, #0x1b +_020847b4: + ldmia r5!, {r0, r1, r2, r3} + stmia lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _020847b4 + add r0, sp, #0xc + ldr r0, [r0, r4, lsl #2] + add sp, sp, #0x1bc + ldmia sp!, {r4, r5, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02084740Ev +_020847d4: .word data_027e0d38 +_020847d8: .word data_027e0f94 +_020847dc: .word data_ov00_020d88f0 + + .global _ZN10MapManager18func_ov00_020847e0Ev + arm_func_start _ZN10MapManager18func_ov00_020847e0Ev +_ZN10MapManager18func_ov00_020847e0Ev: ; 0x020847e0 + ldr r0, [r0, #4] + ldr r0, [r0, #0x144] + ldr r0, [r0, #0xc] + bx lr + arm_func_end _ZN10MapManager18func_ov00_020847e0Ev + + .global _ZN10MapManager18func_ov00_020847f0Ev + arm_func_start _ZN10MapManager18func_ov00_020847f0Ev +_ZN10MapManager18func_ov00_020847f0Ev: ; 0x020847f0 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, [r4, #4] + bl _ZN7MapBase11FindTriggerEi + cmp r0, #0 + bne _02084814 + mov r0, r4 + bl _ZN10MapManager18func_ov00_02084700Ev + ldmia sp!, {r4, pc} +_02084814: + ldr r0, [r0, #0xc] + mvn r1, #0 + cmp r0, r1 + beq _0208482c + cmp r0, #0x6c + ldmltia sp!, {r4, pc} +_0208482c: + mov r0, r4 + bl _ZN10MapManager18func_ov00_02084700Ev + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager18func_ov00_020847f0Ev + + .global _ZN10MapManager18func_ov00_02084838Ev + arm_func_start _ZN10MapManager18func_ov00_02084838Ev +_ZN10MapManager18func_ov00_02084838Ev: ; 0x02084838 + stmdb sp!, {r3, lr} + bl _ZN10MapManager17GetMapData_Unk_38Ev + cmp r0, #0x16 + addls pc, pc, r0, lsl #2 + b _020848b0 +_0208484c: ; jump table + b _020848b0 ; case 0 + b _020848a8 ; case 1 + b _020848a8 ; case 2 + b _020848a8 ; case 3 + b _020848a8 ; case 4 + b _020848a8 ; case 5 + b _020848b0 ; case 6 + b _020848b0 ; case 7 + b _020848b0 ; case 8 + b _020848b0 ; case 9 + b _020848a8 ; case 10 + b _020848a8 ; case 11 + b _020848a8 ; case 12 + b _020848b0 ; case 13 + b _020848b0 ; case 14 + b _020848b0 ; case 15 + b _020848b0 ; case 16 + b _020848a8 ; case 17 + b _020848b0 ; case 18 + b _020848a8 ; case 19 + b _020848a8 ; case 20 + b _020848a8 ; case 21 + b _020848a8 ; case 22 +_020848a8: + mov r0, #1 + ldmia sp!, {r3, pc} +_020848b0: + mov r0, #0 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084838Ev + + .global _ZN10MapManager18func_ov00_020848b8Ev + arm_func_start _ZN10MapManager18func_ov00_020848b8Ev +_ZN10MapManager18func_ov00_020848b8Ev: ; 0x020848b8 + stmdb sp!, {r3, lr} + bl _ZN10MapManager18func_ov00_020846a4Ev + cmp r0, #0x11 + addls pc, pc, r0, lsl #2 + b _0208491c +_020848cc: ; jump table + b _0208491c ; case 0 + b _0208491c ; case 1 + b _0208491c ; case 2 + b _0208491c ; case 3 + b _0208491c ; case 4 + b _0208491c ; case 5 + b _02084914 ; case 6 + b _0208491c ; case 7 + b _0208491c ; case 8 + b _0208491c ; case 9 + b _0208491c ; case 10 + b _0208491c ; case 11 + b _02084914 ; case 12 + b _02084914 ; case 13 + b _0208491c ; case 14 + b _02084914 ; case 15 + b _0208491c ; case 16 + b _02084914 ; case 17 +_02084914: + mov r0, #1 + ldmia sp!, {r3, pc} +_0208491c: + mov r0, #0 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_020848b8Ev + + .global _ZN10MapManager18func_ov00_02084924Ej + arm_func_start _ZN10MapManager18func_ov00_02084924Ej +_ZN10MapManager18func_ov00_02084924Ej: ; 0x02084924 + ldr ip, _02084930 ; =_ZN7MapBase18func_ov00_0208008cEj + ldr r0, [r0, #4] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02084924Ej +_02084930: .word _ZN7MapBase18func_ov00_0208008cEj + + .global _ZN10MapManager18func_ov00_02084934Ev + arm_func_start _ZN10MapManager18func_ov00_02084934Ev +_ZN10MapManager18func_ov00_02084934Ev: ; 0x02084934 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #0xc + mov r6, r1 + mov r7, r0 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev + ldr r1, [r6, #8] + ldr r4, [r6, #4] + sub r5, r1, r0 + mov r0, r7 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + ldr r2, [r6] + add r1, sp, #0 + sub r0, r2, r0 + str r4, [sp, #4] + str r5, [sp, #8] + str r0, [sp] + ldr r0, [r7, #4] + bl _ZN7MapBase10IsInBoundsEP5Vec3p + add sp, sp, #0xc + ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end _ZN10MapManager18func_ov00_02084934Ev + + .global _ZN10MapManager17GetMapData_Unk_06Ev + arm_func_start _ZN10MapManager17GetMapData_Unk_06Ev +_ZN10MapManager17GetMapData_Unk_06Ev: ; 0x02084984 + ldr r0, [r0, #4] + ldrb r0, [r0, #6] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_06Ev + + .global _ZN10MapManager17GetMapData_Unk_07Ev + arm_func_start _ZN10MapManager17GetMapData_Unk_07Ev +_ZN10MapManager17GetMapData_Unk_07Ev: ; 0x02084990 + ldr r0, [r0, #4] + ldrb r0, [r0, #7] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_07Ev + + .global _ZN10MapManager18func_ov00_0208499cEv + arm_func_start _ZN10MapManager18func_ov00_0208499cEv +_ZN10MapManager18func_ov00_0208499cEv: ; 0x0208499c + stmdb sp!, {r4, lr} + mov r4, r0 + bl _ZN10MapManager18func_ov00_020849c0Ev + cmp r0, #0 + movne r0, #0 + ldmneia sp!, {r4, pc} + ldr r0, [r4] + bl _ZN6Course22IsCurrentMapInMainGridEv + ldmia sp!, {r4, pc} + arm_func_end _ZN10MapManager18func_ov00_0208499cEv + + .global _ZN10MapManager18func_ov00_020849c0Ev + arm_func_start _ZN10MapManager18func_ov00_020849c0Ev +_ZN10MapManager18func_ov00_020849c0Ev: ; 0x020849c0 + ldr r1, [r0] + mvn r0, #1 + ldr r1, [r1, #8] + cmp r1, r0 + moveq r0, #1 + movne r0, #0 + bx lr + arm_func_end _ZN10MapManager18func_ov00_020849c0Ev + + .global _ZN10MapManager18func_ov00_020849dcEv + arm_func_start _ZN10MapManager18func_ov00_020849dcEv +_ZN10MapManager18func_ov00_020849dcEv: ; 0x020849dc + ldr r1, [r0] + mvn r0, #2 + ldr r1, [r1, #8] + cmp r1, r0 + moveq r0, #1 + movne r0, #0 + bx lr + arm_func_end _ZN10MapManager18func_ov00_020849dcEv + + .global _ZN10MapManager18func_ov00_020849f8Ei + arm_func_start _ZN10MapManager18func_ov00_020849f8Ei +_ZN10MapManager18func_ov00_020849f8Ei: ; 0x020849f8 + stmdb sp!, {r4, lr} + ldr r1, _02084a4c ; =data_027e0d38 + mov r4, r0 + ldr r0, [r1] + add r0, r0, #0xc + bl func_ov00_020a5e9c + cmp r0, #5 + bne _02084a20 + mov r0, #1 + ldmia sp!, {r4, pc} +_02084a20: + mov r0, r4 + bl _ZN10MapManager17GetMapData_Unk_06Ev + cmp r0, #0 + beq _02084a44 + mov r0, r4 + bl _ZN10MapManager18func_ov00_020849c0Ev + cmp r0, #0 + moveq r0, #1 + ldmeqia sp!, {r4, pc} +_02084a44: + mov r0, #0 + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020849f8Ei +_02084a4c: .word data_027e0d38 + + .global _ZN10MapManager18func_ov00_02084a50Ev + arm_func_start _ZN10MapManager18func_ov00_02084a50Ev +_ZN10MapManager18func_ov00_02084a50Ev: ; 0x02084a50 + ldr r0, [r0, #4] + ldrb r0, [r0, #0x11] + bx lr + arm_func_end _ZN10MapManager18func_ov00_02084a50Ev + + .global _ZN10MapManager8SpawnNPCEP5Vec3pii + arm_func_start _ZN10MapManager8SpawnNPCEP5Vec3pii +_ZN10MapManager8SpawnNPCEP5Vec3pii: ; 0x02084a5c + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x30 + add r0, sp, #4 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl func_ov00_020c1500 + mvn r1, #0 + add r0, sp, #4 + str r1, [sp, #0x20] + str r1, [sp, #0x24] + bl func_ov00_020c3348 + str r5, [sp, #0x28] + str r4, [sp, #0x2c] + mov r1, #0 + str r1, [sp] + ldr r0, _02084abc ; =data_027e0fe8 + ldr r1, _02084ac0 ; =0x45564943 + ldr r0, [r0] + mov r2, r6 + add r3, sp, #4 + bl func_ov00_020c4048 + add sp, sp, #0x30 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN10MapManager8SpawnNPCEP5Vec3pii +_02084abc: .word data_027e0fe8 +_02084ac0: .word 0x45564943 + + .global _ZN10MapManager18func_ov00_02084ac4Ej + arm_func_start _ZN10MapManager18func_ov00_02084ac4Ej +_ZN10MapManager18func_ov00_02084ac4Ej: ; 0x02084ac4 + stmdb sp!, {r3, lr} + ldr r0, _02084b00 ; =data_027e0fe4 + ldr r0, [r0] + bl _ZN12ActorManager13FindActorByIdEj + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldr r2, [r0, #4] + ldr r1, _02084b04 ; =0x45564943 + cmp r2, r1 + movne r0, #0 + moveq r1, #0 + streqb r1, [r0, #0x118] + moveq r0, #1 + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02084ac4Ej +_02084b00: .word data_027e0fe4 +_02084b04: .word 0x45564943 + + .global _ZN10MapManager10SetNumKeysEi + arm_func_start _ZN10MapManager10SetNumKeysEi +_ZN10MapManager10SetNumKeysEi: ; 0x02084b08 + ldr r0, [r0] + str r1, [r0, #0x260] + bx lr + arm_func_end _ZN10MapManager10SetNumKeysEi + + .global _ZN10MapManager10GetNumKeysEv + arm_func_start _ZN10MapManager10GetNumKeysEv +_ZN10MapManager10GetNumKeysEv: ; 0x02084b14 + ldr r0, [r0] + ldr r0, [r0, #0x260] + bx lr + arm_func_end _ZN10MapManager10GetNumKeysEv + + .global _ZN10MapManager21SetCourseData_Unk_25cEc + arm_func_start _ZN10MapManager21SetCourseData_Unk_25cEc +_ZN10MapManager21SetCourseData_Unk_25cEc: ; 0x02084b20 + ldr r0, [r0] + strb r1, [r0, #0x25d] + bx lr + arm_func_end _ZN10MapManager21SetCourseData_Unk_25cEc + + .global _ZN10MapManager21GetCourseData_Unk_25dEv + arm_func_start _ZN10MapManager21GetCourseData_Unk_25dEv +_ZN10MapManager21GetCourseData_Unk_25dEv: ; 0x02084b2c + ldr r0, [r0] + ldrb r0, [r0, #0x25d] + bx lr + arm_func_end _ZN10MapManager21GetCourseData_Unk_25dEv + + .global _ZN10MapManager18func_ov00_02084b38Eiii + arm_func_start _ZN10MapManager18func_ov00_02084b38Eiii +_ZN10MapManager18func_ov00_02084b38Eiii: ; 0x02084b38 + stmdb sp!, {r3, lr} + cmp r1, #0 + ldmeqia sp!, {r3, pc} + cmp r2, #3 + addls pc, pc, r2, lsl #2 + ldmia sp!, {r3, pc} +_02084b50: ; jump table + b _02084b60 ; case 0 + b _02084bb0 ; case 1 + b _02084bc0 ; case 2 + b _02084bd0 ; case 3 +_02084b60: + cmp r3, #0 + ldr r0, [r0, #4] + beq _02084b8c + add ip, r0, #0x180 + mov r3, r1, lsr #0x5 + and r0, r1, #0x1f + ldr r2, [ip, r3, lsl #2] + mov r1, #1 + orr r0, r2, r1, lsl r0 + str r0, [ip, r3, lsl #2] + ldmia sp!, {r3, pc} +_02084b8c: + add r3, r0, #0x180 + mov r2, r1, lsr #0x5 + and r0, r1, #0x1f + mov r1, #1 + mvn r0, r1, lsl r0 + ldr r1, [r3, r2, lsl #2] + and r0, r1, r0 + str r0, [r3, r2, lsl #2] + ldmia sp!, {r3, pc} +_02084bb0: + ldr r0, [r0] + mov r2, r3 + bl _ZN6Course15SetMapDataFlag0Eib + ldmia sp!, {r3, pc} +_02084bc0: + ldr r0, [r0] + mov r2, r3 + bl _ZN6Course8SetFlag0Ejb + ldmia sp!, {r3, pc} +_02084bd0: + ldr r0, [r0] + mov r2, r3 + bl _ZN6Course8SetFlag1Ejb + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084b38Eiii + + .global _ZN10MapManager18func_ov00_02084be0Eii + arm_func_start _ZN10MapManager18func_ov00_02084be0Eii +_ZN10MapManager18func_ov00_02084be0Eii: ; 0x02084be0 + stmdb sp!, {r3, lr} + cmp r1, #0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + cmp r2, #3 + addls pc, pc, r2, lsl #2 + b _02084c54 +_02084bfc: ; jump table + b _02084c0c ; case 0 + b _02084c30 ; case 1 + b _02084c3c ; case 2 + b _02084c48 ; case 3 +_02084c0c: + ldr r2, [r0, #4] + mov r0, r1, lsr #0x5 + add r0, r2, r0, lsl #2 + ldr r2, [r0, #0x180] + and r1, r1, #0x1f + mov r0, #1 + tst r2, r0, lsl r1 + moveq r0, #0 + ldmia sp!, {r3, pc} +_02084c30: + ldr r0, [r0] + bl _ZN6Course15GetMapDataFlag0Ei + ldmia sp!, {r3, pc} +_02084c3c: + ldr r0, [r0] + bl _ZN6Course8GetFlag0Ej + ldmia sp!, {r3, pc} +_02084c48: + ldr r0, [r0] + bl _ZN6Course8SetFlag1Ej + ldmia sp!, {r3, pc} +_02084c54: + mov r0, #0 + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084be0Eii + + .global _ZN10MapManager18func_ov00_02084c5cEii + arm_func_start _ZN10MapManager18func_ov00_02084c5cEii +_ZN10MapManager18func_ov00_02084c5cEii: ; 0x02084c5c + ldr ip, _02084c68 ; =_ZN6Course15SetMapDataFlag1Eib + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02084c5cEii +_02084c68: .word _ZN6Course15SetMapDataFlag1Eib + + .global _ZN10MapManager18func_ov00_02084c6cEi + arm_func_start _ZN10MapManager18func_ov00_02084c6cEi +_ZN10MapManager18func_ov00_02084c6cEi: ; 0x02084c6c + ldr ip, _02084c78 ; =_ZN6Course15GetMapDataFlag1Ei + ldr r0, [r0] + bx ip + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02084c6cEi +_02084c78: .word _ZN6Course15GetMapDataFlag1Ei + + .global _ZN10MapManager18func_ov00_02084c7cEi + arm_func_start _ZN10MapManager18func_ov00_02084c7cEi +_ZN10MapManager18func_ov00_02084c7cEi: ; 0x02084c7c + stmdb sp!, {r3, lr} + cmp r1, #0 + ldmltia sp!, {r3, pc} + ldr r0, [r0] + bl _ZN6Course15SetMapDataFlag2Eib + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084c7cEi + + .global _ZN10MapManager18func_ov00_02084c94Ei + arm_func_start _ZN10MapManager18func_ov00_02084c94Ei +_ZN10MapManager18func_ov00_02084c94Ei: ; 0x02084c94 + stmdb sp!, {r3, lr} + cmp r1, #0 + movlt r0, #0 + ldmltia sp!, {r3, pc} + ldr r0, [r0] + bl _ZN6Course15GetMapDataFlag2Ei + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084c94Ei + + .global _ZN10MapManager18func_ov00_02084cb0Ei + arm_func_start _ZN10MapManager18func_ov00_02084cb0Ei +_ZN10MapManager18func_ov00_02084cb0Ei: ; 0x02084cb0 + stmdb sp!, {r3, lr} + cmp r1, #0 + ldmltia sp!, {r3, pc} + ldr r0, [r0] + bl _ZN6Course15SetMapDataFlag3Eib + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084cb0Ei + + .global _ZN10MapManager18func_ov00_02084cc8Ei + arm_func_start _ZN10MapManager18func_ov00_02084cc8Ei +_ZN10MapManager18func_ov00_02084cc8Ei: ; 0x02084cc8 + stmdb sp!, {r3, lr} + cmp r1, #0 + movlt r0, #0 + ldmltia sp!, {r3, pc} + ldr r0, [r0] + bl _ZN6Course15GetMapDataFlag3Ei + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084cc8Ei + + .global _ZN10MapManager18func_ov00_02084ce4Ei + arm_func_start _ZN10MapManager18func_ov00_02084ce4Ei +_ZN10MapManager18func_ov00_02084ce4Ei: ; 0x02084ce4 + stmdb sp!, {r3, lr} + cmp r1, #0 + ldmltia sp!, {r3, pc} + ldr r0, [r0] + bl _ZN6Course15SetMapDataFlag4Eii + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084ce4Ei + + .global _ZN10MapManager18func_ov00_02084cfcEi + arm_func_start _ZN10MapManager18func_ov00_02084cfcEi +_ZN10MapManager18func_ov00_02084cfcEi: ; 0x02084cfc + stmdb sp!, {r3, lr} + cmp r1, #0 + movlt r0, #0 + ldmltia sp!, {r3, pc} + ldr r0, [r0] + bl _ZN6Course15GetMapDataFlag4Ei + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084cfcEi + + .global _ZN10MapManager17GetMapData_Unk_09Ev + arm_func_start _ZN10MapManager17GetMapData_Unk_09Ev +_ZN10MapManager17GetMapData_Unk_09Ev: ; 0x02084d18 + ldr r0, [r0, #4] + ldrb r0, [r0, #9] + bx lr + arm_func_end _ZN10MapManager17GetMapData_Unk_09Ev + + .global _ZN10MapManager18func_ov00_02084d24Ecci + arm_func_start _ZN10MapManager18func_ov00_02084d24Ecci +_ZN10MapManager18func_ov00_02084d24Ecci: ; 0x02084d24 + stmdb sp!, {r3, lr} + strb r1, [sp] + strb r2, [sp, #1] + ldr r0, [r0, #4] + add r1, sp, #0 + ldr ip, [r0] + mov r2, r3 + ldr ip, [ip, #0x90] + blx ip + ldmia sp!, {r3, pc} + arm_func_end _ZN10MapManager18func_ov00_02084d24Ecci + + .global _ZN10MapManager18func_ov00_02084d4cEiiP5Vec3p + arm_func_start _ZN10MapManager18func_ov00_02084d4cEiiP5Vec3p +_ZN10MapManager18func_ov00_02084d4cEiiP5Vec3p: ; 0x02084d4c + stmdb sp!, {r4, lr} + sub sp, sp, #0x38 + add r4, sp, #0x20 + str r4, [sp] + ldr r0, _02084ea0 ; =data_027e0f64 + mov r4, r3 + ldr r0, [r0] + add r3, sp, #0x2c + ldr r0, [r0, #4] + bl func_ov00_0208df78 + mvn r1, #0 + cmp r0, r1 + addeq sp, sp, #0x38 + moveq r0, r1 + ldmeqia sp!, {r4, pc} + ldr r0, _02084ea4 ; =data_ov00_020ec964 + ldr r0, [r0, #0x60] + tst r0, #1 + bne _02084de4 + mov lr, #0 + mov r1, #0x1000 + ldr ip, _02084ea8 ; =data_ov00_020e2510 + add r0, sp, #8 + str lr, [sp, #8] + str lr, [sp, #0x10] + str r1, [sp, #0xc] + ldmia r0, {r0, r1, r2} + stmia ip, {r0, r1, r2} + ldr r3, _02084eac ; =data_ov00_020e24a4 + ldr r1, _02084eb0 ; =_ZN7MapBase18func_ov00_0207e968Ev + ldr r2, _02084eb4 ; =data_ov00_020ec9c8 + mov r0, ip + str lr, [r3, #0x78] + bl __register_global_object + ldr r0, _02084ea4 ; =data_ov00_020ec964 + ldr r1, [r0, #0x60] + orr r1, r1, #1 + str r1, [r0, #0x60] +_02084de4: + add r0, sp, #0x20 + add r3, sp, #0x14 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + add r1, sp, #0x2c + mov r0, r3 + mov r2, r3 + bl func_01ff9bf8 + ldr r0, _02084ea8 ; =data_ov00_020e2510 + add r1, sp, #0x2c + add r2, sp, #0x14 + add r3, sp, #4 + bl func_01ffe61c + cmp r0, #0 + addeq sp, sp, #0x38 + mvneq r0, #0 + ldmeqia sp!, {r4, pc} + ldr r0, [sp, #0x2c] + add r1, sp, #0x14 + str r0, [r4] + ldr r0, [sp, #0x30] + mov r2, r4 + str r0, [r4, #4] + ldr r0, [sp, #0x34] + mov r3, r4 + str r0, [r4, #8] + ldr r0, [sp, #4] + bl func_01ff9e64 + ldr r0, [sp, #4] + cmp r0, #0 + addge sp, sp, #0x38 + movge r0, #0 + ldmgeia sp!, {r4, pc} + ldr r1, [sp, #0x2c] + ldr r0, _02084eb8 ; =0x0000019a + str r1, [r4] + ldr r2, [sp, #0x30] + add r1, sp, #0x14 + str r2, [r4, #4] + ldr ip, [sp, #0x34] + mov r2, r4 + mov r3, r4 + str ip, [r4, #8] + bl func_01ff9e64 + mov r0, #1 + add sp, sp, #0x38 + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02084d4cEiiP5Vec3p +_02084ea0: .word data_027e0f64 +_02084ea4: .word data_ov00_020ec964 +_02084ea8: .word data_ov00_020e2510 +_02084eac: .word data_ov00_020e24a4 +_02084eb0: .word _ZN7MapBase18func_ov00_0207e968Ev +_02084eb4: .word data_ov00_020ec9c8 +_02084eb8: .word 0x0000019a + + .global _ZN10MapManager18func_ov00_02084ebcEi + arm_func_start _ZN10MapManager18func_ov00_02084ebcEi +_ZN10MapManager18func_ov00_02084ebcEi: ; 0x02084ebc + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #8 + mov r6, r0 + mov r5, r1 + add r0, sp, #0 + mov r1, r6 + mov r2, r5 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + add r1, sp, #0 + mov r0, r6 + bl _ZN10MapManager16MapData_vfunc_78Ev + movs r4, r0 + beq _02084f50 + ldr r1, [r0] + ldr r1, [r1, #0x1c] + blx r1 + cmp r0, #0x38 + bgt _02084f14 + bge _02084f50 + cmp r0, #1 + beq _02084f50 + b _02084f44 +_02084f14: + cmp r0, #0x59 + bgt _02084f24 + beq _02084f50 + b _02084f44 +_02084f24: + cmp r0, #0x61 + bne _02084f44 + ldr r0, [r4, #8] + cmp r0, #2 + bne _02084f50 + add sp, sp, #8 + mov r0, #0 + ldmia sp!, {r4, r5, r6, pc} +_02084f44: + add sp, sp, #8 + mov r0, #0 + ldmia sp!, {r4, r5, r6, pc} +_02084f50: + add r1, sp, #0 + mov r0, r6 + bl _ZN10MapManager18func_ov00_02083e70Ev + cmp r0, #0 + addne sp, sp, #8 + movne r0, #0 + ldmneia sp!, {r4, r5, r6, pc} + add r1, sp, #0 + mov r0, r6 + bl _ZN10MapManager16MapData_vfunc_54Ev + cmp r0, #0x46 + bgt _0208504c + bge _0208506c + cmp r0, #0x29 + bgt _02085040 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _02085078 +_02084f98: ; jump table + b _02085078 ; case 0 + b _0208506c ; case 1 + b _0208506c ; case 2 + b _0208506c ; case 3 + b _0208506c ; case 4 + b _0208506c ; case 5 + b _0208506c ; case 6 + b _02085078 ; case 7 + b _0208506c ; case 8 + b _0208506c ; case 9 + b _02085078 ; case 10 + b _02085078 ; case 11 + b _02085078 ; case 12 + b _02085078 ; case 13 + b _02085078 ; case 14 + b _02085078 ; case 15 + b _02085078 ; case 16 + b _02085078 ; case 17 + b _02085078 ; case 18 + b _02085078 ; case 19 + b _0208506c ; case 20 + b _02085078 ; case 21 + b _0208506c ; case 22 + b _0208506c ; case 23 + b _02085078 ; case 24 + b _0208506c ; case 25 + b _02085078 ; case 26 + b _02085078 ; case 27 + b _02085078 ; case 28 + b _0208506c ; case 29 + b _0208506c ; case 30 + b _0208506c ; case 31 + b _02085078 ; case 32 + b _02085078 ; case 33 + b _02085078 ; case 34 + b _02085078 ; case 35 + b _02085078 ; case 36 + b _02085078 ; case 37 + b _02085078 ; case 38 + b _0208506c ; case 39 + b _0208506c ; case 40 + b _0208506c ; case 41 +_02085040: + cmp r0, #0x37 + beq _0208506c + b _02085078 +_0208504c: + cmp r0, #0x48 + bgt _02085064 + bge _0208506c + cmp r0, #0x47 + beq _0208506c + b _02085078 +_02085064: + cmp r0, #0x50 + bne _02085078 +_0208506c: + add sp, sp, #8 + mov r0, #0 + ldmia sp!, {r4, r5, r6, pc} +_02085078: + ldr r0, [r6, #4] + add r1, sp, #0 + ldr r3, [r0] + mov r2, #5 + ldr r3, [r3, #0x58] + blx r3 + cmp r0, #0 + addne sp, sp, #8 + movne r0, #0 + ldmneia sp!, {r4, r5, r6, pc} + mov r0, r6 + mov r1, r5 + bl _ZN10MapManager16MapData_vfunc_70Ev + ldr r1, _02085100 ; =0x0000ffff + mov r2, r0 + cmp r2, r1 + addeq sp, sp, #8 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + ldr r1, _02085104 ; =data_027e0f6c + add r0, sp, #4 + ldr r1, [r1] + bl func_ov00_02093a1c + ldr r0, [sp, #4] + mov r0, r0, lsr #0x5 + and r0, r0, #3 + cmp r0, #1 + bne _020850f4 + add sp, sp, #8 + mov r0, #1 + ldmia sp!, {r4, r5, r6, pc} +_020850f4: + mov r0, #0 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02084ebcEi +_02085100: .word 0x0000ffff +_02085104: .word data_027e0f6c + + .global _ZN10MapManager18func_ov00_02085108EPi + arm_func_start _ZN10MapManager18func_ov00_02085108EPi +_ZN10MapManager18func_ov00_02085108EPi: ; 0x02085108 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x2c + ldr r0, _02085274 ; =data_027e0f64 + str r1, [sp] + ldr r0, [r0] + bl func_ov00_0208b180 + mov r1, r0 + add r0, sp, #0x18 + bl func_ov00_02088130 + mov r1, #0 + ldr r0, _02085274 ; =data_027e0f64 + strb r1, [sp, #0x13] + strb r1, [sp, #0x12] + ldrb r1, [sp, #0x18] + ldr r0, [r0] + str r1, [sp, #0xc] + ldrb r1, [sp, #0x19] + str r1, [sp, #8] + bl func_ov00_0208b180 + mov r1, r0 + add r0, sp, #0x16 + bl func_ov00_02088144 + mov r0, #0 + strb r0, [sp, #0x11] + strb r0, [sp, #0x10] + ldr r1, [sp, #0xc] + ldr r0, [sp, #8] + ldrb r7, [sp, #0x16] + cmp r1, r0 + ldrb r0, [sp, #0x17] + str r0, [sp, #4] + bgt _02085268 +_02085188: + ldr r6, [sp, #4] + mov r0, r6 + cmp r0, r7 + blt _02085250 + ldr r0, [sp, #0xc] + ldr r11, _02085278 ; =gMapManager + and r5, r0, #0xff +_020851a4: + ldr r0, [r11] + add r1, sp, #0x14 + strb r5, [sp, #0x14] + strb r6, [sp, #0x15] + bl _ZN10MapManager16MapData_vfunc_78Ev + movs r4, r0 + beq _02085244 + ldr r1, [r4, #4] + tst r1, #4 + beq _02085244 + ldr r1, [r0] + ldr r9, [r4, #0x1c] + ldr r1, [r1, #0x60] + ldr r8, [r4, #0x18] + ldr r10, [r4, #0x20] + blx r1 + add r9, r9, r0 + mov r0, r4 + ldr r1, [r0] + ldr r1, [r1, #0x5c] + blx r1 + str r0, [sp, #0x28] + add r0, sp, #0x1c + mov r1, #2 + str r8, [sp, #0x1c] + str r9, [sp, #0x20] + str r10, [sp, #0x24] + bl func_0202b8e4 + cmp r0, #0 + beq _02085244 + ldr r0, [sp] + ldr r1, [r4, #0x18] + add sp, sp, #0x2c + str r1, [r0] + ldr r1, [r4, #0x1c] + str r1, [r0, #4] + ldr r1, [r4, #0x20] + str r1, [r0, #8] + ldrsb r0, [r4, #0x12] + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_02085244: + sub r6, r6, #1 + cmp r6, r7 + bge _020851a4 +_02085250: + ldr r0, [sp, #0xc] + add r1, r0, #1 + ldr r0, [sp, #8] + str r1, [sp, #0xc] + cmp r1, r0 + ble _02085188 +_02085268: + mov r0, #0 + add sp, sp, #0x2c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02085108EPi +_02085274: .word data_027e0f64 +_02085278: .word gMapManager + + .global _ZN10MapManager18func_ov00_0208527cEv + arm_func_start _ZN10MapManager18func_ov00_0208527cEv +_ZN10MapManager18func_ov00_0208527cEv: ; 0x0208527c + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x2c + ldr r3, _020853f4 ; =data_027e0f64 + mov r4, r0 + ldr r0, [r3] + mov r10, r1 + str r2, [sp] + bl func_ov00_0208b180 + mov r1, r0 + add r0, sp, #0x14 + bl func_ov00_02088130 + mov r1, #0 + ldr r0, _020853f4 ; =data_027e0f64 + strb r1, [sp, #0xf] + strb r1, [sp, #0xe] + ldrb r1, [sp, #0x15] + ldr r0, [r0] + ldrb r11, [sp, #0x14] + str r1, [sp, #8] + bl func_ov00_0208b180 + mov r1, r0 + add r0, sp, #0x12 + bl func_ov00_02088144 + mov r0, #0 + strb r0, [sp, #0xd] + strb r0, [sp, #0xc] + ldrb r0, [sp, #0x12] + ldrb r9, [sp, #0x13] + str r0, [sp, #4] + mov r0, r4 + bl _ZN10MapManager17Get_MapData_Unk28Ev + mov r5, r0 + mov r0, r4 + bl _ZN10MapManager17Get_MapData_Unk2aEv + cmp r11, #0 + ldr r1, [sp, #8] + movle r11, #0 + cmp r1, r5 + ldr r1, [sp, #4] + subge r11, r5, #1 + cmp r1, #0 + movle r1, #0 + strle r1, [sp, #4] + cmp r9, r0 + subge r9, r0, #1 + mov r0, #0 + str r0, [sp, #0x24] + str r0, [sp, #0x18] + str r0, [sp, #0x1c] + str r0, [sp, #0x20] + ldr r0, [sp, #8] + cmp r11, r0 + bgt _020853e8 + ldr r4, _020853f8 ; =gMapManager + add r6, sp, #0x10 +_02085358: + ldr r8, [sp, #4] + mov r0, r8 + cmp r0, r9 + bgt _020853d8 + and r7, r11, #0xff +_0208536c: + ldr r0, [r4] + mov r1, r6 + strb r7, [sp, #0x10] + strb r8, [sp, #0x11] + bl _ZN10MapManager16MapData_vfunc_78Ev + movs r5, r0 + beq _020853cc + ldr r1, [r5, #4] + tst r1, #4 + beq _020853cc + mov r1, r10 + bl func_ov00_0208b73c + cmp r0, #0 + beq _020853cc + ldr r0, [sp] + ldr r1, [r5, #0x18] + add sp, sp, #0x2c + str r1, [r0] + ldr r1, [r5, #0x1c] + str r1, [r0, #4] + ldr r1, [r5, #0x20] + str r1, [r0, #8] + ldrsb r0, [r5, #0x12] + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_020853cc: + add r8, r8, #1 + cmp r8, r9 + ble _0208536c +_020853d8: + ldr r0, [sp, #8] + add r11, r11, #1 + cmp r11, r0 + ble _02085358 +_020853e8: + mov r0, #0 + add sp, sp, #0x2c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_0208527cEv +_020853f4: .word data_027e0f64 +_020853f8: .word gMapManager + + .global _ZN10MapManager18func_ov00_020853fcEv + arm_func_start _ZN10MapManager18func_ov00_020853fcEv +_ZN10MapManager18func_ov00_020853fcEv: ; 0x020853fc + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x2c + ldr r3, _0208558c ; =data_027e0f64 + mov r5, r0 + ldr r0, [r3] + mov r10, r1 + mov r9, r2 + bl func_ov00_0208b180 + mov r1, r0 + add r0, sp, #0x14 + bl func_ov00_02088130 + mov r1, #0 + ldr r0, _0208558c ; =data_027e0f64 + strb r1, [sp, #0xf] + strb r1, [sp, #0xe] + ldrb r1, [sp, #0x14] + ldr r0, [r0] + str r1, [sp, #8] + ldrb r1, [sp, #0x15] + str r1, [sp, #4] + bl func_ov00_0208b180 + mov r1, r0 + add r0, sp, #0x12 + bl func_ov00_02088144 + mov r0, #0 + strb r0, [sp, #0xd] + strb r0, [sp, #0xc] + ldrb r0, [sp, #0x12] + ldrb r8, [sp, #0x13] + str r0, [sp] + mov r0, r5 + bl _ZN10MapManager17Get_MapData_Unk28Ev + mov r4, r0 + mov r0, r5 + bl _ZN10MapManager17Get_MapData_Unk2aEv + mov r11, #0 + ldr r1, [sp, #8] + str r11, [sp, #0x24] + cmp r1, #0 + movle r1, #0 + strle r1, [sp, #8] + ldr r1, [sp, #4] + str r11, [sp, #0x18] + cmp r1, r4 + subge r1, r4, #1 + strge r1, [sp, #8] + ldr r1, [sp] + str r11, [sp, #0x1c] + cmp r1, #0 + movle r1, #0 + strle r1, [sp] + cmp r8, r0 + subge r8, r0, #1 + ldr r1, [sp, #8] + ldr r0, [sp, #4] + str r11, [sp, #0x20] + cmp r1, r0 + bgt _02085580 +_020854e4: + ldr r7, [sp] + mov r0, r7 + cmp r0, r8 + bgt _02085568 + ldr r0, [sp, #8] + and r6, r0, #0xff +_020854fc: + ldr r0, _02085590 ; =gMapManager + add r1, sp, #0x10 + ldr r0, [r0] + strb r6, [sp, #0x10] + strb r7, [sp, #0x11] + bl _ZN10MapManager16MapData_vfunc_78Ev + movs r5, r0 + beq _0208555c + ldr r0, [r5, #4] + tst r0, #4 + beq _0208555c + mov r1, r10 + add r0, r5, #0x18 + bl func_01ff9ec0 + ldr r1, [r9] + mov r4, r0 + cmp r4, r1 + bge _0208555c + mov r0, r5 + mov r1, r10 + bl func_ov00_0208b7d0 + cmp r0, #0 + movne r11, r5 + strne r4, [r9] +_0208555c: + add r7, r7, #1 + cmp r7, r8 + ble _020854fc +_02085568: + ldr r0, [sp, #8] + add r1, r0, #1 + ldr r0, [sp, #4] + str r1, [sp, #8] + cmp r1, r0 + ble _020854e4 +_02085580: + mov r0, r11 + add sp, sp, #0x2c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020853fcEv +_0208558c: .word data_027e0f64 +_02085590: .word gMapManager + + .global _ZN10MapManager18func_ov00_02085594Ev + arm_func_start _ZN10MapManager18func_ov00_02085594Ev +_ZN10MapManager18func_ov00_02085594Ev: ; 0x02085594 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #0x14 + mov r7, r0 + mov r6, r1 + add r0, sp, #0 + mov r1, r7 + mov r2, r6 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + add r1, sp, #0 + mov r0, r7 + bl _ZN10MapManager16MapData_vfunc_78Ev + movs r4, r0 + mov r5, #1 + beq _02085670 + ldr r1, [r4, #0x18] + str r1, [r6] + ldr r1, [r4, #0x1c] + str r1, [r6, #4] + ldr r1, [r4, #0x20] + str r1, [r6, #8] + ldr r1, [r0] + ldr r1, [r1, #0x1c] + blx r1 + cmp r0, #0x42 + bgt _02085618 + bge _02085658 + cmp r0, #1 + bgt _0208560c + beq _02085670 + b _02085664 +_0208560c: + cmp r0, #0x38 + beq _02085670 + b _02085664 +_02085618: + cmp r0, #0x59 + bgt _02085628 + beq _02085648 + b _02085664 +_02085628: + cmp r0, #0x61 + bne _02085664 + ldr r0, [r4, #8] + cmp r0, #2 + bne _02085670 + add sp, sp, #0x14 + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, pc} +_02085648: + ldr r0, [r4, #8] + cmp r0, #4 + movne r5, #0 + b _02085670 +_02085658: + add sp, sp, #0x14 + mov r0, #2 + ldmia sp!, {r4, r5, r6, r7, pc} +_02085664: + add sp, sp, #0x14 + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, pc} +_02085670: + ldrb r1, [sp] + ldrb r2, [sp, #1] + mov r0, r7 + bl _ZN10MapManager18func_ov00_020840a0Ecci + cmp r0, #0x46 + bgt _02085754 + bge _02085774 + cmp r0, #0x29 + bgt _02085748 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _02085780 +_020856a0: ; jump table + b _02085780 ; case 0 + b _02085774 ; case 1 + b _02085774 ; case 2 + b _02085774 ; case 3 + b _02085774 ; case 4 + b _02085774 ; case 5 + b _02085774 ; case 6 + b _02085780 ; case 7 + b _02085774 ; case 8 + b _02085774 ; case 9 + b _02085780 ; case 10 + b _02085780 ; case 11 + b _02085780 ; case 12 + b _02085780 ; case 13 + b _02085780 ; case 14 + b _02085780 ; case 15 + b _02085780 ; case 16 + b _02085780 ; case 17 + b _02085780 ; case 18 + b _02085780 ; case 19 + b _02085774 ; case 20 + b _02085780 ; case 21 + b _02085774 ; case 22 + b _02085774 ; case 23 + b _02085780 ; case 24 + b _02085774 ; case 25 + b _02085780 ; case 26 + b _02085780 ; case 27 + b _02085780 ; case 28 + b _02085774 ; case 29 + b _02085774 ; case 30 + b _02085774 ; case 31 + b _02085780 ; case 32 + b _02085780 ; case 33 + b _02085780 ; case 34 + b _02085780 ; case 35 + b _02085780 ; case 36 + b _02085780 ; case 37 + b _02085780 ; case 38 + b _02085774 ; case 39 + b _02085774 ; case 40 + b _02085774 ; case 41 +_02085748: + cmp r0, #0x37 + beq _02085774 + b _02085780 +_02085754: + cmp r0, #0x48 + bgt _0208576c + bge _02085774 + cmp r0, #0x47 + beq _02085774 + b _02085780 +_0208576c: + cmp r0, #0x50 + bne _02085780 +_02085774: + add sp, sp, #0x14 + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, pc} +_02085780: + ldr r0, [r7, #4] + add r1, sp, #0 + ldr r3, [r0] + mov r2, #5 + ldr r3, [r3, #0x58] + blx r3 + cmp r0, #0 + addne sp, sp, #0x14 + movne r0, #0 + ldmneia sp!, {r4, r5, r6, r7, pc} + ldrb r2, [sp] + ldrb r0, [sp, #1] + sub r3, sp, #4 + add r1, sp, #8 + strb r2, [r3] + strb r0, [r3, #1] + ldr r2, [r3] + mov r0, r7 + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi + add r1, sp, #8 + mov r0, r7 + bl _ZN10MapManager16MapData_vfunc_70Ev + ldr r1, _02085834 ; =0x0000ffff + mov r2, r0 + cmp r2, r1 + addeq sp, sp, #0x14 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r1, _02085838 ; =data_027e0f6c + add r0, sp, #4 + ldr r1, [r1] + bl func_ov00_02093a1c + ldr r0, [sp, #4] + mov r0, r0, lsr #0x5 + and r0, r0, #3 + cmp r0, #1 + bne _02085828 + cmp r5, #0 + movne r0, #1 + add sp, sp, #0x14 + moveq r0, #2 + ldmia sp!, {r4, r5, r6, r7, pc} +_02085828: + mov r0, #0 + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02085594Ev +_02085834: .word 0x0000ffff +_02085838: .word data_027e0f6c + + .global _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi + arm_func_start _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi +_ZN10MapManager18func_ov00_0208583cEiP5Vec3pi: ; 0x0208583c + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r3, r1 + mov r4, r2 + add r0, sp, #0 + mov r1, r5 + mov r2, r3 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + add r1, sp, #0 + mov r0, r5 + bl _ZN10MapManager16MapData_vfunc_78Ev + cmp r0, #0 + mvneq r0, #0 + ldmeqia sp!, {r3, r4, r5, pc} + ldr r1, _020858ac ; =data_027e077c + ldr r2, [r1] + cmp r2, #1 + mvnne r0, #0 + ldmneia sp!, {r3, r4, r5, pc} + ldr r1, [r1, #4] + cmp r2, r1 + mvnne r0, #0 + ldmneia sp!, {r3, r4, r5, pc} + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0x30] + blx r2 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi +_020858ac: .word data_027e077c + + .global _ZN10MapManager18func_ov00_020858b0Ev + arm_func_start _ZN10MapManager18func_ov00_020858b0Ev +_ZN10MapManager18func_ov00_020858b0Ev: ; 0x020858b0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x1c + mov r9, r2 + mov r10, r0 + mov r11, r1 + cmp r9, #1 + bne _020858e4 + ldr r0, _02085a2c ; =data_027e0f64 + mov r1, #7 + ldr r0, [r0] + ldr r0, [r0, #4] + bl func_ov00_02088000 + b _020858f8 +_020858e4: + ldr r0, _02085a2c ; =data_027e0f64 + mov r1, #6 + ldr r0, [r0] + ldr r0, [r0, #4] + bl func_ov00_02088000 +_020858f8: + mov r0, r10 + bl _ZN10MapManager17Get_MapData_Unk28Ev + str r0, [sp, #0x10] + mov r0, r10 + bl _ZN10MapManager17Get_MapData_Unk2aEv + str r0, [sp, #0xc] + mvn r3, #0 + add r0, sp, #0x18 + mov r1, r10 + mov r2, r11 + str r3, [sp, #8] + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldrb r3, [sp, #0x18] + ldrb r2, [sp, #0x19] + ldr r1, _02085a30 ; =data_027e0f94 + add r0, r3, #1 + sub r7, r3, #1 + str r0, [sp, #4] + cmp r7, r0 + sub r0, r2, #1 + ldr r5, [r1, #4] + str r0, [sp] + add r6, r2, #1 + bgt _02085a20 +_02085958: + cmp r7, #0 + blt _02085a10 + ldr r0, [sp, #0x10] + cmp r7, r0 + bge _02085a10 + ldr r8, [sp] + mov r0, r8 + cmp r0, r6 + bgt _02085a10 + and r4, r7, #0xff +_02085980: + cmp r8, #0 + blt _02085a04 + ldr r0, [sp, #0xc] + cmp r8, r0 + bge _02085a04 + mov r0, r10 + add r1, sp, #0x16 + strb r4, [sp, #0x16] + strb r8, [sp, #0x17] + bl _ZN10MapManager16MapData_vfunc_60Ev + subs r0, r0, r5 + rsbmi r0, r0, #0 + cmp r0, #0xcd + bgt _02085a04 + mov r0, r10 + add r1, sp, #0x14 + strb r4, [sp, #0x14] + strb r8, [sp, #0x15] + bl _ZN10MapManager16MapData_vfunc_78Ev + cmp r0, #0 + beq _02085a04 + ldrb r1, [sp, #0x18] + ldr ip, [r0] + mov r3, r11 + cmp r7, r1 + ldreqb r1, [sp, #0x19] + ldr ip, [ip, #0x38] + cmpeq r8, r1 + moveq r2, #0 + movne r2, #1 + mov r1, r9 + blx ip + str r0, [sp, #8] +_02085a04: + add r8, r8, #1 + cmp r8, r6 + ble _02085980 +_02085a10: + ldr r0, [sp, #4] + add r7, r7, #1 + cmp r7, r0 + ble _02085958 +_02085a20: + ldr r0, [sp, #8] + add sp, sp, #0x1c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_020858b0Ev +_02085a2c: .word data_027e0f64 +_02085a30: .word data_027e0f94 + + .global _ZN10MapManager18func_ov00_02085a34Eii + arm_func_start _ZN10MapManager18func_ov00_02085a34Eii +_ZN10MapManager18func_ov00_02085a34Eii: ; 0x02085a34 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x20 + mov r4, r2 + mov r5, r0 + mov r6, r1 + cmp r4, #1 + beq _02085a60 + cmp r4, #2 + cmpne r4, #3 + beq _02085bdc + b _02085c54 +_02085a60: + add r0, sp, #8 + mov r1, r5 + mov r2, r6 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + mov r0, r5 + mov r1, r6 + bl _ZN10MapManager18func_ov00_02084ebcEi + cmp r0, #0 + addeq sp, sp, #0x20 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + add r1, sp, #8 + mov r0, r5 + bl _ZN10MapManager16MapData_vfunc_78Ev + movs r6, r0 + beq _02085b24 + ldr r1, [r0] + ldr r1, [r1, #0x1c] + blx r1 + cmp r0, #0x38 + bgt _02085ac4 + bge _02085ae0 + cmp r0, #1 + beq _02085ae0 + b _02085b18 +_02085ac4: + cmp r0, #0x59 + bgt _02085ad4 + beq _02085afc + b _02085b18 +_02085ad4: + cmp r0, #0x61 + beq _02085afc + b _02085b18 +_02085ae0: + ldr r1, [r6, #4] + mov r0, r5 + bic r2, r1, #1 + mov r1, r6 + str r2, [r6, #4] + bl _ZN10MapManager18func_ov00_020828f8EPi + b _02085b24 +_02085afc: + mov r0, r6 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0x3c] + blx r2 + add sp, sp, #0x20 + ldmia sp!, {r4, r5, r6, pc} +_02085b18: + add sp, sp, #0x20 + mvn r0, #0 + ldmia sp!, {r4, r5, r6, pc} +_02085b24: + ldr r0, [r5, #4] + add r1, sp, #8 + bl _ZN7MapBase18func_ov00_02080b24EP5Vec2b + mov r2, #0 + sub r1, r2, #1 + mov r0, #1 + strh r1, [sp, #0x1c] + str r2, [sp, #0x18] + strb r0, [sp, #0x1e] + mov r4, r2 + add r1, sp, #0xc +_02085b50: + mov r0, r2, lsl #0x1 + add r2, r2, #1 + strh r4, [r1, r0] + cmp r2, #4 + blo _02085b50 + mov r3, #0 +_02085b68: + strb r3, [r1, #8] + add r4, r4, #1 + strb r3, [r1, #0xa] + cmp r4, #2 + add r1, r1, #1 + blo _02085b68 + add r4, sp, #0xc + add r2, sp, #8 + mov r0, r5 + mov r1, #0x42 + str r4, [sp] + bl _ZN10MapManager16MapData_vfunc_7cEv + cmp r0, #0 + addeq sp, sp, #0x20 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + add r1, sp, #8 + mov r0, r5 + bl _ZN10MapManager16MapData_vfunc_78Ev + cmp r0, #0 + beq _02085bd0 + ldrsh r0, [r0, #0xe] + cmp r0, #0 + addgt sp, sp, #0x20 + movgt r0, #1 + ldmgtia sp!, {r4, r5, r6, pc} +_02085bd0: + add sp, sp, #0x20 + mov r0, #0 + ldmia sp!, {r4, r5, r6, pc} +_02085bdc: + add r0, sp, #6 + mov r1, r5 + mov r2, r6 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + add r1, sp, #6 + mov r0, r5 + bl _ZN10MapManager16MapData_vfunc_78Ev + movs r6, r0 + addeq sp, sp, #0x20 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + ldr r1, [r0] + ldr r1, [r1, #0x1c] + blx r1 + cmp r0, #0x42 + bne _02085c38 + ldrb r2, [r6, #0x15] + ldrb r0, [r6, #0x14] + add r1, sp, #4 + strb r2, [sp, #5] + strb r0, [sp, #4] + ldr r0, [r5, #4] + bl _ZN7MapBase18func_ov00_02080d08Ei +_02085c38: + mov r0, r6 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0x3c] + blx r2 + add sp, sp, #0x20 + ldmia sp!, {r4, r5, r6, pc} +_02085c54: + mvn r0, #0 + add sp, sp, #0x20 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN10MapManager18func_ov00_02085a34Eii + + .global _ZN10MapManager18func_ov00_02085c60Eiiii + arm_func_start _ZN10MapManager18func_ov00_02085c60Eiiii +_ZN10MapManager18func_ov00_02085c60Eiiii: ; 0x02085c60 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0xfc + ldr r11, [sp, #0x120] + ldr r8, [sp, #0x124] + ldr r7, [sp, #0x128] + ldr r6, [sp, #0x12c] + cmp r11, #0 + mov r10, r0 + mov r9, r1 + mov r5, r2 + mov r4, r3 + addeq sp, sp, #0xfc + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + add r1, sp, #0x88 + str r1, [sp] + ldr r0, _0208603c ; =data_027e0d3c + ldmia r5, {r2, r3} + ldr r0, [r0] + mov r1, #0 + bl func_ov00_020792a0 + add r1, sp, #0x7c + str r1, [sp] + ldr r0, _0208603c ; =data_027e0d3c + ldmia r4, {r2, r3} + ldr r0, [r0] + mov r1, #0 + bl func_ov00_020792a0 + add r0, sp, #0x88 + add r5, sp, #0x70 + ldmia r0, {r0, r1, r2} + stmia r5, {r0, r1, r2} + add r0, sp, #0x7c + add r4, sp, #0x64 + ldmia r0, {r0, r1, r2} + stmia r4, {r0, r1, r2} + add r3, sp, #0x58 + ldmia r5, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r1, r4 + mov r0, r3 + mov r2, r3 + bl func_01ff9bf8 + mov r1, #0xc000 + mov r2, #0 + umull r5, r3, r11, r1 + mla r3, r11, r2, r3 + mov r4, r11, asr #0x1f + adds r2, r5, #0x800 + mla r3, r4, r1, r3 + adc r1, r3, #0 + mov r5, r2, lsr #0xc + add r0, sp, #0x58 + orr r5, r5, r1, lsl #20 + bl func_01ff9cec + cmp r0, r5 + ble _02085d9c + add r0, sp, #0x58 + mov r1, r0 + bl func_01ff9d4c + add r0, sp, #0x58 + mov r1, r5 + bl func_01fffbec + ldr r1, [sp, #0x7c] + ldr r0, [sp, #0x80] + str r1, [sp, #0x88] + ldr r1, [sp, #0x84] + str r0, [sp, #0x8c] + add r0, sp, #0x88 + str r1, [sp, #0x90] + add r1, sp, #0x58 + mov r2, r0 + bl func_01ff9bc4 + ldr r0, [sp, #0x8c] + ldr r1, [sp, #0x88] + str r0, [sp, #0x74] + ldr r0, [sp, #0x90] + str r1, [sp, #0x70] + str r0, [sp, #0x78] +_02085d9c: + add r0, sp, #0x58 + ldr ip, [sp, #0x88] + ldr r5, [sp, #0x8c] + ldr r3, [sp, #0x90] + add r1, sp, #0x7c + mov r2, r0 + str ip, [sp, #0x58] + str r5, [sp, #0x5c] + str r3, [sp, #0x60] + bl func_01ff9bf8 + mov r1, r4, lsl #0xb + mov r0, #0x800 + adds r2, r0, r11, lsl #11 + orr r1, r1, r11, lsr #21 + add r0, sp, #0x58 + adc r1, r1, #0 + mov r5, r2, lsr #0xc + orr r5, r5, r1, lsl #20 + bl func_01ff9cec + cmp r0, r11 + blt _02085e30 + add r0, sp, #0x58 + mov r1, r0 + bl func_01ff9d4c + add r0, sp, #0x58 + mov r1, r5 + bl func_01fffbec + ldr r2, [sp, #0x64] + ldr r1, [sp, #0x68] + str r2, [sp, #0x70] + ldr r2, [sp, #0x6c] + str r1, [sp, #0x74] + add r0, sp, #0x70 + str r2, [sp, #0x78] + add r1, sp, #0x58 + mov r2, r0 + bl func_01ff9bc4 +_02085e30: + mov r4, #0 + mov r0, r11, lsl #0x1 + str r4, [sp, #0x48] + str r0, [sp, #0x4c] + str r4, [sp, #0x50] + str r11, [sp, #0x54] +_02085e48: + add r0, sp, #0x48 + stmia sp, {r0, r8} + str r7, [sp, #8] + str r6, [sp, #0xc] + mov r0, #0 + str r0, [sp, #0x10] + mov r0, r10 + mov r1, r9 + add r2, sp, #0x70 + add r3, sp, #0x64 + bl func_01ffbe78 + cmp r0, #0 + beq _02085fb8 + ldr r1, [r9] + add r0, sp, #0x30 + str r1, [sp, #0x3c] + ldr r2, [r9, #4] + mov r1, r0 + str r2, [sp, #0x40] + ldr r2, [r9, #8] + str r2, [sp, #0x44] + ldr r2, [r9, #0xc] + str r2, [sp, #0x30] + ldr r2, [r9, #0x10] + str r2, [sp, #0x34] + ldr r2, [r9, #0x14] + str r2, [sp, #0x38] + bl func_01ff9d4c + add r0, sp, #0x30 + mov r1, r11 + bl func_01fffbec + add r0, sp, #0x3c + add r1, sp, #0x30 + mov r2, r0 + bl func_01ff9bc4 + ldr r1, [sp, #0x3c] + ldr r2, _02086040 ; =0x0000ffff + str r1, [r9] + ldr r1, [sp, #0x40] + mov r3, #0 + str r1, [r9, #4] + ldr r4, [sp, #0x44] + sub r1, r3, #1 + str r4, [r9, #8] + strh r2, [sp, #0xb8] + strh r2, [sp, #0xba] + strh r2, [sp, #0xbc] + strh r2, [sp, #0xbe] + strh r3, [sp, #0xc0] + strb r3, [sp, #0xe2] + strb r3, [sp, #0xe3] + strb r3, [sp, #0xe4] + strb r3, [sp, #0xe5] + strb r3, [sp, #0xec] + strb r3, [sp, #0xed] + strb r3, [sp, #0xee] + strb r3, [sp, #0xef] + strb r3, [sp, #0xf0] + strb r3, [sp, #0xf1] + str r1, [sp, #0xf4] + str r1, [sp, #0xf8] + add r2, sp, #0x48 + stmia sp, {r2, r8} + str r7, [sp, #8] + str r6, [sp, #0xc] + add r2, sp, #0x3c + str r3, [sp, #0x10] + mov r0, r10 + add r1, sp, #0x94 + mov r3, r2 + bl func_01ffbe78 + cmp r0, #0 + beq _02085f84 + ldr r2, [sp, #0x94] + ldr r1, [sp, #0x98] + ldr r0, [sp, #0x9c] + str r2, [sp, #0x3c] + str r1, [sp, #0x40] + str r0, [sp, #0x44] +_02085f84: + ldr r0, _0208603c ; =data_027e0d3c + add r1, sp, #0x3c + ldr r0, [r0] + add r2, sp, #0x1c + mov r3, #0 + bl func_ov00_0207920c + ldr r1, [sp, #0x1c] + mov r0, #1 + str r1, [r9, #0x60] + ldr r1, [sp, #0x20] + add sp, sp, #0xfc + str r1, [r9, #0x64] + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_02085fb8: + ldr r1, [sp, #0x70] + ldr r0, [sp, #0x74] + str r1, [sp, #0x64] + ldr r1, [sp, #0x78] + str r0, [sp, #0x68] + str r1, [sp, #0x6c] + add r0, sp, #0x70 + add r1, sp, #0x88 + mov r2, r5 + bl func_0202b2e8 + cmp r0, #0 + movne r4, #1 + cmp r4, #0 + beq _02085e48 + ldr r1, [sp, #0x88] + ldr r0, _0208603c ; =data_027e0d3c + str r1, [r9] + ldr r2, [sp, #0x8c] + add r1, sp, #0x88 + str r2, [r9, #4] + ldr r3, [sp, #0x90] + add r2, sp, #0x14 + str r3, [r9, #8] + ldr r0, [r0] + mov r3, #0 + bl func_ov00_0207920c + ldr r1, [sp, #0x14] + mov r0, #0 + str r1, [r9, #0x60] + ldr r1, [sp, #0x18] + str r1, [r9, #0x64] + add sp, sp, #0xfc + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02085c60Eiiii +_0208603c: .word data_027e0d3c +_02086040: .word 0x0000ffff + + .global _ZN10MapManager18func_ov00_02086044Eiii + arm_func_start _ZN10MapManager18func_ov00_02086044Eiii +_ZN10MapManager18func_ov00_02086044Eiii: ; 0x02086044 + stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0xb0 + add r5, sp, #0x98 + mov r9, r2 + mov r10, r0 + str r1, [sp] + ldmia r9, {r0, r1, r2} + stmia r5, {r0, r1, r2} + mov r8, r3 + ldmia r9, {r0, r1, r2} + add r4, sp, #0xa4 + stmia r4, {r0, r1, r2} + ldr r0, [sp] + add r3, sp, #0x50 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r5 + mov r1, r3 + bl func_ov00_0208ed74 + mov r0, r5 + mov r1, r8 + bl func_ov00_0208ee00 + ldr r1, [sp, #0x98] + mov r0, r10 + bl _ZN10MapManager18func_ov00_020839d4Ev + mov r6, r0 + ldr r1, [sp, #0xa0] + mov r0, r10 + bl _ZN10MapManager18func_ov00_020839f8Ev + str r0, [sp, #0xc] + ldr r1, [sp, #0xa4] + mov r0, r10 + bl _ZN10MapManager18func_ov00_020839d4Ev + str r0, [sp, #8] + ldr r1, [sp, #0xac] + mov r0, r10 + bl _ZN10MapManager18func_ov00_020839f8Ev + mov r11, r0 + add r5, sp, #0x8c + ldmia r9, {r0, r1, r2} + stmia r5, {r0, r1, r2} + ldr r0, [sp] + add r4, sp, #0x44 + ldmia r0, {r0, r1, r2} + stmia r4, {r0, r1, r2} + add r3, sp, #0x38 + ldmia r9, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r4 + mov r1, r3 + add r2, sp, #0x80 + bl func_01ff9bf8 + ldr r1, [r9] + mov r0, r10 + bl _ZN10MapManager18func_ov00_020839d4Ev + mov r4, r0 + ldr r1, [r9, #8] + mov r0, r10 + bl _ZN10MapManager18func_ov00_020839f8Ev + mov r2, r0 + mov r1, r4 + mov r0, r10 + bl _ZN10MapManager18func_ov00_02083e34Ecci + str r0, [sp, #4] + ldr r0, [sp, #8] + cmp r6, r0 + bgt _02086274 +_02086150: + ldr r7, [sp, #0xc] + mov r0, r7 + cmp r0, r11 + bgt _02086264 + and r5, r6, #0xff +_02086164: + mov r0, r10 + mov r1, r6 + mov r2, r7 + bl _ZN10MapManager18func_ov00_02083e34Ecci + ldr r1, [sp, #4] + cmp r0, r1 + ble _020861ec + ldr r0, _02086280 ; =gMapManager + add r1, sp, #0x12 + ldr r0, [r0] + add r2, sp, #0x68 + strb r5, [sp, #0x12] + strb r7, [sp, #0x13] + bl _ZN10MapManager18func_ov00_02084024EiP4AABB + ldr r0, [sp] + mov r1, r9 + add r2, sp, #0x5c + bl func_01ff9bf8 + ldr r1, [r9] + add r0, sp, #0x68 + str r1, [sp, #0x28] + ldr r2, [r9, #4] + add r1, sp, #0x28 + str r2, [sp, #0x2c] + ldr r3, [r9, #8] + add r2, sp, #0x5c + str r3, [sp, #0x30] + add r3, sp, #0x14 + str r8, [sp, #0x34] + bl func_ov00_0208e87c + cmp r0, #0 + addne sp, sp, #0xb0 + movne r0, #1 + ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} +_020861ec: + mov r0, r10 + add r1, sp, #0x10 + strb r5, [sp, #0x10] + strb r7, [sp, #0x11] + bl _ZN10MapManager16MapData_vfunc_78Ev + movs r4, r0 + beq _02086258 + ldr r1, [r0] + ldr r1, [r1, #0x58] + blx r1 + cmp r0, #0 + beq _02086258 + ldr r2, [r9] + mov r0, r4 + str r2, [sp, #0x18] + ldr r3, [r9, #4] + add r1, sp, #0x18 + str r3, [sp, #0x1c] + ldr r3, [r9, #8] + add r2, sp, #0x80 + str r3, [sp, #0x20] + str r8, [sp, #0x24] + bl func_ov00_0208b804 + cmp r0, #0 + addne sp, sp, #0xb0 + movne r0, #1 + ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} +_02086258: + add r7, r7, #1 + cmp r7, r11 + ble _02086164 +_02086264: + ldr r0, [sp, #8] + add r6, r6, #1 + cmp r6, r0 + ble _02086150 +_02086274: + mov r0, #0 + add sp, sp, #0xb0 + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN10MapManager18func_ov00_02086044Eiii +_02086280: .word gMapManager + + .global _ZN10MapManager18func_ov00_02086284EPiP5Vec3pS2_itS2_S2_ + arm_func_start _ZN10MapManager18func_ov00_02086284EPiP5Vec3pS2_itS2_S2_ +_ZN10MapManager18func_ov00_02086284EPiP5Vec3pS2_itS2_S2_: ; 0x02086284 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #0x15c + mov r9, r1 + mov r0, r9 + ldr r1, [r0] + mov r8, r2 + ldr r1, [r1, #8] + mov r7, r3 + ldr r6, [sp, #0x178] + ldr r5, [sp, #0x180] + ldr r4, [sp, #0x184] + blx r1 + cmp r0, #0 + beq _020862d0 + cmp r0, #1 + beq _020863a8 + cmp r0, #2 + beq _02086520 + b _02086a78 +_020862d0: + mov r0, r9 + ldr r2, [r0] + add r1, sp, #0x14c + ldr r2, [r2, #0x24] + blx r2 + add r0, sp, #0x14c + add r3, sp, #0x140 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r8 + mov r1, r3 + bl func_01ff9ec0 + ldr r2, [sp, #0x158] + add r1, sp, #0x140 + add r2, r2, r6 + sub r6, r2, r0 + mov r0, r8 + mov r2, r1 + bl func_01ff9bf8 + add r0, sp, #0x140 + bl func_01fffb4c + cmp r0, #0 + bne _02086340 + mov r1, #0 + mov r0, #0x1000 + str r1, [sp, #0x140] + str r1, [sp, #0x144] + str r0, [sp, #0x148] +_02086340: + add r0, sp, #0x140 + mov r1, r6 + bl func_01fffbec + add r1, sp, #0x140 + mov r0, r8 + mov r2, r5 + bl func_01ff9bc4 + add r0, sp, #0x14c + add r3, sp, #0x128 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + add r2, sp, #0x134 + mov r0, r7 + mov r1, r3 + bl func_01ff9bf8 + add r0, sp, #0x134 + bl func_01fffb4c + ldr r1, [sp, #0x134] + mov r0, #0 + str r1, [r4] + ldr r1, [sp, #0x138] + str r1, [r4, #4] + ldr r1, [sp, #0x13c] + add sp, sp, #0x15c + str r1, [r4, #8] + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} +_020863a8: + mov r1, #0 + mov r0, r9 + str r1, [sp, #0x120] + str r1, [sp, #0x114] + str r1, [sp, #0x118] + str r1, [sp, #0x11c] + ldr r2, [r0] + add r1, sp, #0x114 + ldr r2, [r2, #0x28] + blx r2 + ldr r2, [r8, #4] + ldr r1, [sp, #0x114] + ldr r0, [sp, #0x11c] + str r1, [sp, #0x108] + str r2, [sp, #0x10c] + str r0, [sp, #0x110] + ldrb r0, [r9, #5] + cmp r0, #0 + beq _02086464 + add r0, sp, #0x168 + ldrh r0, [r0, #0x14] + tst r0, #0x80 + beq _02086464 + add r0, sp, #0x108 + mov r1, r8 + bl func_01ff9ec0 + ldr r1, [sp, #0x120] + cmp r0, r1 + bgt _02086464 + ldr r2, [sp, #0x118] + ldr r1, [sp, #0x124] + ldr r0, [r7, #4] + add r1, r2, r1 + cmp r0, r1 + blt _02086464 + ldr r0, [r8, #4] + add r1, r6, r1 + cmp r0, r1 + bgt _02086464 + str r1, [r5, #4] + mov r1, #0 + str r1, [r4] + mov r0, #0x1000 + stmib r4, {r0, r1} + add sp, sp, #0x15c + mov r0, #1 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} +_02086464: + add r1, sp, #0x108 + mov r0, r8 + bl func_01ff9ec0 + ldr r2, [sp, #0x120] + add r1, sp, #0x108 + add r2, r2, r6 + sub r6, r2, r0 + mov r0, r8 + mov r2, r1 + bl func_01ff9bf8 + add r0, sp, #0x108 + bl func_01fffb4c + cmp r0, #0 + bne _020864b0 + mov r1, #0 + mov r0, #0x1000 + str r1, [sp, #0x108] + str r1, [sp, #0x10c] + str r0, [sp, #0x110] +_020864b0: + add r0, sp, #0x108 + mov r1, r6 + bl func_01fffbec + add r1, sp, #0x108 + mov r0, r8 + mov r2, r5 + bl func_01ff9bc4 + add r0, sp, #0x114 + add r3, sp, #0xf0 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + ldr r0, [r7, #4] + add r2, sp, #0xfc + str r0, [sp, #0xf4] + mov r0, r7 + mov r1, r3 + bl func_01ff9bf8 + add r0, sp, #0xfc + bl func_01fffb4c + ldr r1, [sp, #0xfc] + mov r0, #0 + str r1, [r4] + ldr r1, [sp, #0x100] + str r1, [r4, #4] + ldr r1, [sp, #0x104] + add sp, sp, #0x15c + str r1, [r4, #8] + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} +_02086520: + mov r0, r9 + ldr r2, [r0] + add r1, sp, #0xd8 + ldr r2, [r2, #0x2c] + blx r2 + add r0, sp, #0xd8 + add r1, sp, #0xcc + bl func_ov00_0208e6b0 + ldr r2, [r8, #4] + ldr r0, [sp, #0xcc] + str r2, [sp, #0xc4] + ldr r2, [sp, #0xd4] + str r0, [sp, #0xc0] + add r1, sp, #0xc0 + str r2, [sp, #0xc8] + mov r0, r8 + mov r2, r1 + bl func_01ff9bf8 + add r0, sp, #0xc0 + add r3, sp, #0xb4 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r3 + bl func_01fffb4c + cmp r0, #0 + bne _0208659c + mov r1, #0 + mov r0, #0x1000 + str r1, [sp, #0xb4] + str r1, [sp, #0xb8] + str r0, [sp, #0xbc] +_0208659c: + ldrb r0, [r9, #5] + cmp r0, #0 + beq _0208662c + add r0, sp, #0x168 + ldrh r0, [r0, #0x14] + tst r0, #0x80 + beq _0208662c + ldr r1, [r8] + ldr r0, [sp, #0xe4] + cmp r1, r0 + bge _020865f0 + ldr r0, [sp, #0xd8] + cmp r1, r0 + blt _020865f0 + ldr r1, [r8, #8] + ldr r0, [sp, #0xec] + cmp r1, r0 + bge _020865f0 + ldr r0, [sp, #0xe0] + cmp r1, r0 + bge _02086604 +_020865f0: + ldr r0, [sp, #0xe8] + ldr r1, [r7, #4] + add r0, r0, r6 + cmp r1, r0 + blt _0208662c +_02086604: + ldr r0, [sp, #0xe8] + mov r1, #0 + add r0, r0, r6 + str r0, [r5, #4] + str r1, [r4] + mov r0, #0x1000 + stmib r4, {r0, r1} + add sp, sp, #0x15c + mov r0, #1 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} +_0208662c: + add r0, sp, #0xd8 + add r1, sp, #0xa8 + bl func_ov00_0208e6b0 + ldr r3, [sp, #0xec] + ldr r2, [r8, #8] + cmp r2, r3 + bge _020867f8 + ldr r0, [sp, #0xe0] + cmp r2, r0 + blt _020867f8 + ldr r1, [r8] + ldr r0, [sp, #0xe4] + cmp r1, r0 + bge _020867f8 + ldr r0, [sp, #0xd8] + cmp r1, r0 + blt _020867f8 + add r0, sp, #0xd8 + bl func_ov00_0208e6f0 + mov r7, r0 + add r0, sp, #0xd8 + bl func_ov00_0208e704 + cmp r7, r0 + bne _020866bc + ldr r1, [sp, #0xb0] + ldr r0, [r8, #8] + subs r2, r1, r0 + ldr r1, [sp, #0xa8] + ldr r0, [r8] + rsbmi r2, r2, #0 + subs r0, r1, r0 + rsbmi r0, r0, #0 + cmp r0, r2 + movgt r0, #1 + movle r0, #0 + b _020866dc +_020866bc: + add r0, sp, #0xd8 + bl func_ov00_0208e6f0 + mov r7, r0 + add r0, sp, #0xd8 + bl func_ov00_0208e704 + cmp r7, r0 + movlt r0, #1 + movge r0, #0 +_020866dc: + cmp r0, #0 + beq _02086770 + ldr r0, [sp, #0xb4] + cmp r0, #0 + add r0, sp, #0xd8 + blt _02086730 + ldr r7, [sp, #0xc0] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e6f0 + add r0, r6, r0, asr #1 + ldr r1, [r5] + sub r0, r0, r7 + add r0, r1, r0 + str r0, [r5] + mov r0, #0x1000 + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + str r0, [r4, #8] + b _02086a6c +_02086730: + ldr r7, [sp, #0xc0] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e6f0 + add r1, r6, r0, asr #1 + mov r0, #0x1000 + ldr r2, [r5] + sub r1, r1, r7 + sub r1, r2, r1 + str r1, [r5] + rsb r0, r0, #0 + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + str r0, [r4, #8] + b _02086a6c +_02086770: + ldr r0, [sp, #0xbc] + cmp r0, #0 + add r0, sp, #0xd8 + blt _020867bc + ldr r7, [sp, #0xc8] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e704 + add r0, r6, r0, asr #1 + ldr r1, [r5, #8] + sub r0, r0, r7 + add r0, r1, r0 + str r0, [r5, #8] + mov r0, #0 + str r0, [r4] + str r0, [r4, #4] + mov r0, #0x1000 + str r0, [r4, #8] + b _02086a6c +_020867bc: + ldr r7, [sp, #0xc8] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e704 + add r1, r6, r0, asr #1 + ldr r2, [r5, #8] + sub r1, r1, r7 + sub r1, r2, r1 + mov r0, #0 + str r1, [r5, #8] + str r0, [r4] + str r0, [r4, #4] + sub r0, r0, #0x1000 + str r0, [r4, #8] + b _02086a6c +_020867f8: + ldr r1, [r8] + ldr r0, [sp, #0xe4] + cmp r1, r0 + bge _0208689c + ldr r0, [sp, #0xd8] + cmp r1, r0 + blt _0208689c + ldr r0, [sp, #0xbc] + cmp r0, #0 + add r0, sp, #0xd8 + blt _02086860 + ldr r7, [sp, #0xc8] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e704 + add r0, r6, r0, asr #1 + ldr r1, [r5, #8] + sub r0, r0, r7 + add r0, r1, r0 + str r0, [r5, #8] + mov r0, #0 + str r0, [r4] + str r0, [r4, #4] + mov r0, #0x1000 + str r0, [r4, #8] + b _02086a6c +_02086860: + ldr r7, [sp, #0xc8] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e704 + add r1, r6, r0, asr #1 + ldr r2, [r5, #8] + sub r1, r1, r7 + sub r1, r2, r1 + mov r0, #0 + str r1, [r5, #8] + str r0, [r4] + str r0, [r4, #4] + sub r0, r0, #0x1000 + str r0, [r4, #8] + b _02086a6c +_0208689c: + cmp r2, r3 + bge _0208693c + ldr r0, [sp, #0xe0] + cmp r2, r0 + blt _0208693c + ldr r0, [sp, #0xb4] + cmp r0, #0 + add r0, sp, #0xd8 + blt _020868fc + ldr r7, [sp, #0xc0] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e6f0 + add r0, r6, r0, asr #1 + ldr r1, [r5] + sub r0, r0, r7 + add r0, r1, r0 + str r0, [r5] + mov r0, #0x1000 + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + str r0, [r4, #8] + b _02086a6c +_020868fc: + ldr r7, [sp, #0xc0] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e6f0 + add r1, r6, r0, asr #1 + mov r0, #0x1000 + ldr r2, [r5] + sub r1, r1, r7 + sub r1, r2, r1 + str r1, [r5] + rsb r0, r0, #0 + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + str r0, [r4, #8] + b _02086a6c +_0208693c: + ldr r0, [sp, #0xb0] + subs r2, r0, r2 + ldr r0, [sp, #0xa8] + rsbmi r2, r2, #0 + subs r0, r0, r1 + rsbmi r0, r0, #0 + cmp r0, r2 + ble _020869e8 + ldr r0, [sp, #0xb4] + cmp r0, #0 + add r0, sp, #0xd8 + blt _020869a8 + ldr r7, [sp, #0xc0] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e6f0 + add r0, r6, r0, asr #1 + ldr r1, [r5] + sub r0, r0, r7 + add r0, r1, r0 + str r0, [r5] + mov r0, #0x1000 + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + str r0, [r4, #8] + b _02086a6c +_020869a8: + ldr r7, [sp, #0xc0] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e6f0 + add r1, r6, r0, asr #1 + mov r0, #0x1000 + ldr r2, [r5] + sub r1, r1, r7 + sub r1, r2, r1 + str r1, [r5] + rsb r0, r0, #0 + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + str r0, [r4, #8] + b _02086a6c +_020869e8: + ldr r0, [sp, #0xbc] + cmp r0, #0 + add r0, sp, #0xd8 + blt _02086a34 + ldr r7, [sp, #0xc8] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e704 + add r0, r6, r0, asr #1 + ldr r1, [r5, #8] + sub r0, r0, r7 + add r0, r1, r0 + str r0, [r5, #8] + mov r0, #0 + str r0, [r4] + str r0, [r4, #4] + mov r0, #0x1000 + str r0, [r4, #8] + b _02086a6c +_02086a34: + ldr r7, [sp, #0xc8] + cmp r7, #0 + rsblt r7, r7, #0 + bl func_ov00_0208e704 + add r1, r6, r0, asr #1 + ldr r2, [r5, #8] + sub r1, r1, r7 + sub r1, r2, r1 + mov r0, #0 + str r1, [r5, #8] + str r0, [r4] + str r0, [r4, #4] + sub r0, r0, #0x1000 + str r0, [r4, #8] +_02086a6c: + add sp, sp, #0x15c + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} +_02086a78: + mov r0, #0 + add sp, sp, #0x15c + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} + arm_func_end _ZN10MapManager18func_ov00_02086284EPiP5Vec3pS2_itS2_S2_ + + .global _ZN10MapManager18func_ov00_02086a84EPiP5Vec3pS2_iiiS2_S2_ + arm_func_start _ZN10MapManager18func_ov00_02086a84EPiP5Vec3pS2_iiiS2_S2_ +_ZN10MapManager18func_ov00_02086a84EPiP5Vec3pS2_iiiS2_S2_: ; 0x02086a84 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #0x84 + mov r8, r2 + mov r7, r3 + mov r9, r1 + add r2, sp, #0x78 + mov r0, r8 + mov r1, r7 + ldr r6, [sp, #0xa4] + ldr r5, [sp, #0xac] + ldr r4, [sp, #0xb0] + bl func_01ff9bf8 + mov r0, r9 + ldr r1, [r0] + ldr r1, [r1, #8] + blx r1 + cmp r0, #0 + beq _02086ae0 + cmp r0, #1 + beq _02086be4 + cmp r0, #2 + beq _02086c64 + b _02086cc4 +_02086ae0: + mov r0, r9 + ldr r2, [r0] + add r1, sp, #0x68 + ldr r2, [r2, #0x24] + blx r2 + cmp r6, #0 + bne _02086b7c + add r0, sp, #0x68 + add r3, sp, #0x5c + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r8 + mov r1, r3 + bl func_01ff9ec0 + ldr r3, [sp, #0x74] + ldr r2, [sp, #0xa0] + add r1, sp, #0x68 + add r2, r3, r2 + sub r6, r2, r0 + add r2, sp, #0x5c + mov r0, r8 + bl func_01ff9bf8 + add r0, sp, #0x5c + bl func_01fffb4c + cmp r0, #0 + bne _02086b5c + mov r1, #0 + mov r0, #0x1000 + str r1, [sp, #0x5c] + str r1, [sp, #0x60] + str r0, [sp, #0x64] +_02086b5c: + add r0, sp, #0x5c + mov r1, r6 + bl func_01fffbec + add r1, sp, #0x5c + mov r0, r8 + mov r2, r5 + bl func_01ff9bc4 + b _02086b98 +_02086b7c: + add r0, sp, #0x78 + mov r1, r6 + bl func_01fffbec + add r1, sp, #0x78 + mov r0, r7 + mov r2, r5 + bl func_01ff9bc4 +_02086b98: + add r0, sp, #0x68 + add r3, sp, #0x44 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + add r2, sp, #0x50 + mov r0, r7 + mov r1, r3 + bl func_01ff9bf8 + add r0, sp, #0x50 + bl func_01fffb4c + ldr r1, [sp, #0x50] + mov r0, #0 + str r1, [r4] + ldr r1, [sp, #0x54] + str r1, [r4, #4] + ldr r1, [sp, #0x58] + add sp, sp, #0x84 + str r1, [r4, #8] + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} +_02086be4: + mov r1, #0 + mov r0, r9 + str r1, [sp, #0x3c] + str r1, [sp, #0x30] + str r1, [sp, #0x34] + str r1, [sp, #0x38] + ldr r2, [r0] + add r1, sp, #0x30 + ldr r2, [r2, #0x28] + blx r2 + add r0, sp, #0x78 + mov r1, r6 + bl func_01fffbec + add r1, sp, #0x78 + mov r0, r7 + mov r2, r5 + bl func_01ff9bc4 + add r0, sp, #0x30 + add r3, sp, #0x24 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + ldr r2, [r7, #4] + mov r1, r3 + str r2, [sp, #0x28] + mov r0, r7 + mov r2, r4 + bl func_01ff9bf8 + mov r0, r4 + bl func_01fffb4c + add sp, sp, #0x84 + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} +_02086c64: + mov r0, r9 + ldr r2, [r0] + add r1, sp, #0xc + ldr r2, [r2, #0x2c] + blx r2 + add r0, sp, #0xc + add r1, sp, #0 + bl func_ov00_0208e6b0 + add r0, sp, #0x78 + mov r1, r6 + bl func_01fffbec + add r1, sp, #0x78 + mov r2, r5 + mov r0, r7 + bl func_01ff9bc4 + mov r0, r7 + add r1, sp, #0 + mov r2, r4 + bl func_01ff9bf8 + mov r0, r4 + bl func_01fffb4c + add sp, sp, #0x84 + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} +_02086cc4: + mov r0, #0 + add sp, sp, #0x84 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} + arm_func_end _ZN10MapManager18func_ov00_02086a84EPiP5Vec3pS2_iiiS2_S2_ + + .rodata + .global data_ov00_020d88f0 +data_ov00_020d88f0: ; 0x020d88f0 + .byte 0x51, 0x00, 0x00, 0x00 + .global data_ov00_020d88f4 +data_ov00_020d88f4: ; 0x020d88f4 + .byte 0x6e, 0x00, 0x00, 0x00 + .global data_ov00_020d88f8 +data_ov00_020d88f8: ; 0x020d88f8 + .byte 0x65, 0x00, 0x00, 0x00 + .global data_ov00_020d88fc +data_ov00_020d88fc: ; 0x020d88fc + .byte 0x50, 0x00, 0x00, 0x00 + .global data_ov00_020d8900 +data_ov00_020d8900: ; 0x020d8900 + .byte 0x30, 0x00, 0x00, 0x00 + .global data_ov00_020d8904 +data_ov00_020d8904: ; 0x020d8904 + .byte 0x74, 0x00, 0x00, 0x00 + .global data_ov00_020d8908 +data_ov00_020d8908: ; 0x020d8908 + .byte 0x49, 0x00, 0x00, 0x00 + .global data_ov00_020d890c +data_ov00_020d890c: ; 0x020d890c + .byte 0x50, 0x00, 0x00, 0x00 + .global data_ov00_020d8910 +data_ov00_020d8910: ; 0x020d8910 + .byte 0x51, 0x00, 0x00, 0x00 + .global data_ov00_020d8914 +data_ov00_020d8914: ; 0x020d8914 + .byte 0x54, 0x00, 0x00, 0x00 + .global data_ov00_020d8918 +data_ov00_020d8918: ; 0x020d8918 + .byte 0x52, 0x00, 0x00, 0x00 + .global data_ov00_020d891c +data_ov00_020d891c: ; 0x020d891c + .byte 0x53, 0x00, 0x00, 0x00 + .global data_ov00_020d8920 +data_ov00_020d8920: ; 0x020d8920 + .byte 0x55, 0x00, 0x00, 0x00 + .global data_ov00_020d8924 +data_ov00_020d8924: ; 0x020d8924 + .byte 0x56, 0x00, 0x00, 0x00 + .global data_ov00_020d8928 +data_ov00_020d8928: ; 0x020d8928 + .byte 0x57, 0x00, 0x00, 0x00 + .global data_ov00_020d892c +data_ov00_020d892c: ; 0x020d892c + .byte 0x58, 0x00, 0x00, 0x00 + .global data_ov00_020d8930 +data_ov00_020d8930: ; 0x020d8930 + .byte 0x59, 0x00, 0x00, 0x00 + .global data_ov00_020d8934 +data_ov00_020d8934: ; 0x020d8934 + .byte 0x5a, 0x00, 0x00, 0x00 + .global data_ov00_020d8938 +data_ov00_020d8938: ; 0x020d8938 + .byte 0x5f, 0x00, 0x00, 0x00 + .global data_ov00_020d893c +data_ov00_020d893c: ; 0x020d893c + .byte 0x60, 0x00, 0x00, 0x00 + .global data_ov00_020d8940 +data_ov00_020d8940: ; 0x020d8940 + .byte 0x61, 0x00, 0x00, 0x00 + .global data_ov00_020d8944 +data_ov00_020d8944: ; 0x020d8944 + .byte 0x5c, 0x00, 0x00, 0x00 + .global data_ov00_020d8948 +data_ov00_020d8948: ; 0x020d8948 + .byte 0x5b, 0x00, 0x00, 0x00 + .global data_ov00_020d894c +data_ov00_020d894c: ; 0x020d894c + .byte 0x5e, 0x00, 0x00, 0x00 + .global data_ov00_020d8950 +data_ov00_020d8950: ; 0x020d8950 + .byte 0x62, 0x00, 0x00, 0x00 + .global data_ov00_020d8954 +data_ov00_020d8954: ; 0x020d8954 + .byte 0x63, 0x00, 0x00, 0x00 + .global data_ov00_020d8958 +data_ov00_020d8958: ; 0x020d8958 + .byte 0x64, 0x00, 0x00, 0x00 + .global data_ov00_020d895c +data_ov00_020d895c: ; 0x020d895c + .byte 0x3f, 0x00, 0x00, 0x00 + .global data_ov00_020d8960 +data_ov00_020d8960: ; 0x020d8960 + .byte 0x40, 0x00, 0x00, 0x00 + .global data_ov00_020d8964 +data_ov00_020d8964: ; 0x020d8964 + .byte 0x41, 0x00, 0x00, 0x00 + .global data_ov00_020d8968 +data_ov00_020d8968: ; 0x020d8968 + .byte 0x42, 0x00, 0x00, 0x00 + .global data_ov00_020d896c +data_ov00_020d896c: ; 0x020d896c + .byte 0x43, 0x00, 0x00, 0x00 + .global data_ov00_020d8970 +data_ov00_020d8970: ; 0x020d8970 + .byte 0x44, 0x00, 0x00, 0x00 + .global data_ov00_020d8974 +data_ov00_020d8974: ; 0x020d8974 + .byte 0x45, 0x00, 0x00, 0x00 + .global data_ov00_020d8978 +data_ov00_020d8978: ; 0x020d8978 + .byte 0x46, 0x00, 0x00, 0x00 + .global data_ov00_020d897c +data_ov00_020d897c: ; 0x020d897c + .byte 0x5d, 0x00, 0x00, 0x00 + .global data_ov00_020d8980 +data_ov00_020d8980: ; 0x020d8980 + .byte 0x31, 0x00, 0x00, 0x00 + .global data_ov00_020d8984 +data_ov00_020d8984: ; 0x020d8984 + .byte 0x39, 0x00, 0x00, 0x00 + .global data_ov00_020d8988 +data_ov00_020d8988: ; 0x020d8988 + .byte 0x3a, 0x00, 0x00, 0x00 + .global data_ov00_020d898c +data_ov00_020d898c: ; 0x020d898c + .byte 0x3b, 0x00, 0x00, 0x00 + .global data_ov00_020d8990 +data_ov00_020d8990: ; 0x020d8990 + .byte 0x3c, 0x00, 0x00, 0x00 + .global data_ov00_020d8994 +data_ov00_020d8994: ; 0x020d8994 + .byte 0x32, 0x00, 0x00, 0x00 + .global data_ov00_020d8998 +data_ov00_020d8998: ; 0x020d8998 + .byte 0x33, 0x00, 0x00, 0x00 + .global data_ov00_020d899c +data_ov00_020d899c: ; 0x020d899c + .byte 0x34, 0x00, 0x00, 0x00 + .global data_ov00_020d89a0 +data_ov00_020d89a0: ; 0x020d89a0 + .byte 0x35, 0x00, 0x00, 0x00 + .global data_ov00_020d89a4 +data_ov00_020d89a4: ; 0x020d89a4 + .byte 0x38, 0x00, 0x00, 0x00 + .global data_ov00_020d89a8 +data_ov00_020d89a8: ; 0x020d89a8 + .byte 0x3d, 0x00, 0x00, 0x00 + .global data_ov00_020d89ac +data_ov00_020d89ac: ; 0x020d89ac + .byte 0xd9, 0x00, 0x00, 0x00 + .global data_ov00_020d89b0 +data_ov00_020d89b0: ; 0x020d89b0 + .byte 0xdc, 0x00, 0x00, 0x00 + .global data_ov00_020d89b4 +data_ov00_020d89b4: ; 0x020d89b4 + .byte 0xa1, 0x00, 0x00, 0x00 + .global data_ov00_020d89b8 +data_ov00_020d89b8: ; 0x020d89b8 + .byte 0xa2, 0x00, 0x00, 0x00 + .global data_ov00_020d89bc +data_ov00_020d89bc: ; 0x020d89bc + .byte 0xa3, 0x00, 0x00, 0x00 + .global data_ov00_020d89c0 +data_ov00_020d89c0: ; 0x020d89c0 + .byte 0xa4, 0x00, 0x00, 0x00 + .global data_ov00_020d89c4 +data_ov00_020d89c4: ; 0x020d89c4 + .byte 0xa5, 0x00, 0x00, 0x00 + .global data_ov00_020d89c8 +data_ov00_020d89c8: ; 0x020d89c8 + .byte 0xa6, 0x00, 0x00, 0x00 + .global data_ov00_020d89cc +data_ov00_020d89cc: ; 0x020d89cc + .byte 0x6f, 0x00, 0x00, 0x00 + .global data_ov00_020d89d0 +data_ov00_020d89d0: ; 0x020d89d0 + .byte 0x72, 0x00, 0x00, 0x00 + .global data_ov00_020d89d4 +data_ov00_020d89d4: ; 0x020d89d4 + .byte 0x75, 0x00, 0x00, 0x00 + .global data_ov00_020d89d8 +data_ov00_020d89d8: ; 0x020d89d8 + .byte 0x78, 0x00, 0x00, 0x00 + .global data_ov00_020d89dc +data_ov00_020d89dc: ; 0x020d89dc + .byte 0x79, 0x00, 0x00, 0x00 + .global data_ov00_020d89e0 +data_ov00_020d89e0: ; 0x020d89e0 + .byte 0x7a, 0x00, 0x00, 0x00 + .global data_ov00_020d89e4 +data_ov00_020d89e4: ; 0x020d89e4 + .byte 0x7b, 0x00, 0x00, 0x00 + .global data_ov00_020d89e8 +data_ov00_020d89e8: ; 0x020d89e8 + .byte 0x7f, 0x00, 0x00, 0x00 + .global data_ov00_020d89ec +data_ov00_020d89ec: ; 0x020d89ec + .byte 0x83, 0x00, 0x00, 0x00 + .global data_ov00_020d89f0 +data_ov00_020d89f0: ; 0x020d89f0 + .byte 0x87, 0x00, 0x00, 0x00 + .global data_ov00_020d89f4 +data_ov00_020d89f4: ; 0x020d89f4 + .byte 0x7c, 0x00, 0x00, 0x00 + .global data_ov00_020d89f8 +data_ov00_020d89f8: ; 0x020d89f8 + .byte 0x80, 0x00, 0x00, 0x00 + .global data_ov00_020d89fc +data_ov00_020d89fc: ; 0x020d89fc + .byte 0x84, 0x00, 0x00, 0x00 + .global data_ov00_020d8a00 +data_ov00_020d8a00: ; 0x020d8a00 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8a04 +data_ov00_020d8a04: ; 0x020d8a04 + .byte 0x88, 0x00, 0x00, 0x00 + .global data_ov00_020d8a08 +data_ov00_020d8a08: ; 0x020d8a08 + .byte 0x89, 0x00, 0x00, 0x00 + .global data_ov00_020d8a0c +data_ov00_020d8a0c: ; 0x020d8a0c + .byte 0x8a, 0x00, 0x00, 0x00 + .global data_ov00_020d8a10 +data_ov00_020d8a10: ; 0x020d8a10 + .byte 0x8b, 0x00, 0x00, 0x00 + .global data_ov00_020d8a14 +data_ov00_020d8a14: ; 0x020d8a14 + .byte 0x8c, 0x00, 0x00, 0x00 + .global data_ov00_020d8a18 +data_ov00_020d8a18: ; 0x020d8a18 + .byte 0x8d, 0x00, 0x00, 0x00 + .global data_ov00_020d8a1c +data_ov00_020d8a1c: ; 0x020d8a1c + .byte 0x8e, 0x00, 0x00, 0x00 + .global data_ov00_020d8a20 +data_ov00_020d8a20: ; 0x020d8a20 + .byte 0x8f, 0x00, 0x00, 0x00 + .global data_ov00_020d8a24 +data_ov00_020d8a24: ; 0x020d8a24 + .byte 0x90, 0x00, 0x00, 0x00 + .global data_ov00_020d8a28 +data_ov00_020d8a28: ; 0x020d8a28 + .byte 0x91, 0x00, 0x00, 0x00 + .global data_ov00_020d8a2c +data_ov00_020d8a2c: ; 0x020d8a2c + .byte 0x92, 0x00, 0x00, 0x00 + .global data_ov00_020d8a30 +data_ov00_020d8a30: ; 0x020d8a30 + .byte 0x93, 0x00, 0x00, 0x00 + .global data_ov00_020d8a34 +data_ov00_020d8a34: ; 0x020d8a34 + .byte 0x94, 0x00, 0x00, 0x00 + .global data_ov00_020d8a38 +data_ov00_020d8a38: ; 0x020d8a38 + .byte 0x95, 0x00, 0x00, 0x00 + .global data_ov00_020d8a3c +data_ov00_020d8a3c: ; 0x020d8a3c + .byte 0x96, 0x00, 0x00, 0x00 + .global data_ov00_020d8a40 +data_ov00_020d8a40: ; 0x020d8a40 + .byte 0x97, 0x00, 0x00, 0x00 + .global data_ov00_020d8a44 +data_ov00_020d8a44: ; 0x020d8a44 + .byte 0x98, 0x00, 0x00, 0x00 + .global data_ov00_020d8a48 +data_ov00_020d8a48: ; 0x020d8a48 + .byte 0x99, 0x00, 0x00, 0x00 + .global data_ov00_020d8a4c +data_ov00_020d8a4c: ; 0x020d8a4c + .byte 0x9a, 0x00, 0x00, 0x00 + .global data_ov00_020d8a50 +data_ov00_020d8a50: ; 0x020d8a50 + .byte 0x9b, 0x00, 0x00, 0x00 + .global data_ov00_020d8a54 +data_ov00_020d8a54: ; 0x020d8a54 + .byte 0x9d, 0x00, 0x00, 0x00 + .global data_ov00_020d8a58 +data_ov00_020d8a58: ; 0x020d8a58 + .byte 0x9e, 0x00, 0x00, 0x00 + .global data_ov00_020d8a5c +data_ov00_020d8a5c: ; 0x020d8a5c + .byte 0x9f, 0x00, 0x00, 0x00 + .global data_ov00_020d8a60 +data_ov00_020d8a60: ; 0x020d8a60 + .byte 0xa0, 0x00, 0x00, 0x00 + .global data_ov00_020d8a64 +data_ov00_020d8a64: ; 0x020d8a64 + .byte 0x70, 0x00, 0x00, 0x00 + .global data_ov00_020d8a68 +data_ov00_020d8a68: ; 0x020d8a68 + .byte 0x71, 0x00, 0x00, 0x00 + .global data_ov00_020d8a6c +data_ov00_020d8a6c: ; 0x020d8a6c + .byte 0x73, 0x00, 0x00, 0x00 + .global data_ov00_020d8a70 +data_ov00_020d8a70: ; 0x020d8a70 + .byte 0x76, 0x00, 0x00, 0x00 + .global data_ov00_020d8a74 +data_ov00_020d8a74: ; 0x020d8a74 + .byte 0x77, 0x00, 0x00, 0x00 + .global data_ov00_020d8a78 +data_ov00_020d8a78: ; 0x020d8a78 + .byte 0x7d, 0x00, 0x00, 0x00 + .global data_ov00_020d8a7c +data_ov00_020d8a7c: ; 0x020d8a7c + .byte 0x7e, 0x00, 0x00, 0x00 + .global data_ov00_020d8a80 +data_ov00_020d8a80: ; 0x020d8a80 + .byte 0x81, 0x00, 0x00, 0x00 + .global data_ov00_020d8a84 +data_ov00_020d8a84: ; 0x020d8a84 + .byte 0x82, 0x00, 0x00, 0x00 + .global data_ov00_020d8a88 +data_ov00_020d8a88: ; 0x020d8a88 + .byte 0x86, 0x00, 0x00, 0x00 + .global data_ov00_020d8a8c +data_ov00_020d8a8c: ; 0x020d8a8c + .byte 0x9c, 0x00, 0x00, 0x00 + .global data_ov00_020d8a90 +data_ov00_020d8a90: ; 0x020d8a90 + .byte 0x36, 0x00, 0x00, 0x00 + .global data_ov00_020d8a94 +data_ov00_020d8a94: ; 0x020d8a94 + .byte 0x37, 0x00, 0x00, 0x00 + .global data_ov00_020d8a98 +data_ov00_020d8a98: ; 0x020d8a98 + .byte 0xd0, 0x00, 0x00, 0x00 + .global data_ov00_020d8a9c +data_ov00_020d8a9c: ; 0x020d8a9c + .byte 0xd1, 0x00, 0x00, 0x00 + .global data_ov00_020d8aa0 +data_ov00_020d8aa0: ; 0x020d8aa0 + .byte 0xcd, 0x00, 0x00, 0x00 + .global data_ov00_020d8aa4 +data_ov00_020d8aa4: ; 0x020d8aa4 + .byte 0x9a, 0x01, 0x00, 0x00 + + .section .init, 4, 1, 4 + .global func_ov00_020df4cc + arm_func_start func_ov00_020df4cc +func_ov00_020df4cc: ; 0x020df4cc + stmdb sp!, {r3, lr} + ldr r0, _020df5f0 ; =0x00005fff + ldr r3, _020df5f4 ; =data_ov00_020e24a4 + mov ip, #0 + str r0, [r3, #0x20] + ldr r0, _020df5f8 ; =data_ov00_020e24c8 + ldr r1, _020df5fc ; =func_ov00_02086cd0 + ldr r2, _020df600 ; =data_ov00_020ec964 + str ip, [r3, #0x24] + mov ip, #0x60 + str ip, [r3, #0x28] + bl __register_global_object + ldr r0, _020df604 ; =data_ov00_020e24d0 + mov r3, #0 + ldr r1, _020df5fc ; =func_ov00_02086cd0 + ldr r2, _020df608 ; =data_ov00_020ec970 + str r3, [r0] + str r3, [r0, #4] + bl __register_global_object + ldr r0, _020df60c ; =data_ov00_020e24d8 + mov ip, #0x80 + mov r3, #0x60 + ldr r1, _020df5fc ; =func_ov00_02086cd0 + ldr r2, _020df610 ; =data_ov00_020ec97c + str ip, [r0] + str r3, [r0, #4] + bl __register_global_object + ldr r0, _020df614 ; =data_ov00_020e24e0 + mov ip, #0x80 + mov r3, #0 + ldr r1, _020df5fc ; =func_ov00_02086cd0 + ldr r2, _020df618 ; =data_ov00_020ec988 + str ip, [r0] + str r3, [r0, #4] + bl __register_global_object + mov r2, #0x80000 + rsb r2, r2, #0 + ldr r0, _020df5f4 ; =data_ov00_020e24a4 + add r1, r2, #0x20000 + str r2, [r0, #0x44] + str r1, [r0, #0x48] + ldr r0, _020df61c ; =data_ov00_020e24e8 + ldr r1, _020df620 ; =_ZN15MapManager_Unk2D1Ev + ldr r2, _020df624 ; =data_ov00_020ec994 + bl __register_global_object + ldr r0, _020df628 ; =data_ov00_020e24f0 + mov r1, #0x80000 + rsb r1, r1, #0 + str r1, [r0] + add r1, r1, #0x20000 + str r1, [r0, #4] + ldr r1, _020df620 ; =_ZN15MapManager_Unk2D1Ev + ldr r2, _020df62c ; =data_ov00_020ec9a0 + bl __register_global_object + ldr r0, _020df630 ; =data_ov00_020e24f8 + mov r1, #0x80000 + rsb r1, r1, #0 + str r1, [r0] + add r1, r1, #0x20000 + str r1, [r0, #4] + ldr r1, _020df620 ; =_ZN15MapManager_Unk2D1Ev + ldr r2, _020df634 ; =data_ov00_020ec9ac + bl __register_global_object + ldr r0, _020df638 ; =data_ov00_020e2500 + mov r1, #0x80000 + rsb r1, r1, #0 + str r1, [r0] + add r1, r1, #0x20000 + str r1, [r0, #4] + ldr r1, _020df620 ; =_ZN15MapManager_Unk2D1Ev + ldr r2, _020df63c ; =data_ov00_020ec9b8 + bl __register_global_object + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end func_ov00_020df4cc +_020df5f0: .word 0x00005fff +_020df5f4: .word data_ov00_020e24a4 +_020df5f8: .word data_ov00_020e24c8 +_020df5fc: .word func_ov00_02086cd0 +_020df600: .word data_ov00_020ec964 +_020df604: .word data_ov00_020e24d0 +_020df608: .word data_ov00_020ec970 +_020df60c: .word data_ov00_020e24d8 +_020df610: .word data_ov00_020ec97c +_020df614: .word data_ov00_020e24e0 +_020df618: .word data_ov00_020ec988 +_020df61c: .word data_ov00_020e24e8 +_020df620: .word _ZN15MapManager_Unk2D1Ev +_020df624: .word data_ov00_020ec994 +_020df628: .word data_ov00_020e24f0 +_020df62c: .word data_ov00_020ec9a0 +_020df630: .word data_ov00_020e24f8 +_020df634: .word data_ov00_020ec9ac +_020df638: .word data_ov00_020e2500 +_020df63c: .word data_ov00_020ec9b8 + + .section .ctor, 4, 1, 4 + .global data_ov00_020e1ebc +data_ov00_020e1ebc: ; 0x020e1ebc + .word func_ov00_020df4cc + + .data + .global data_ov00_020e24c4 +data_ov00_020e24c4: ; 0x020e24c4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24c8 +data_ov00_020e24c8: ; 0x020e24c8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24cc +data_ov00_020e24cc: ; 0x020e24cc + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24d0 +data_ov00_020e24d0: ; 0x020e24d0 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24d4 +data_ov00_020e24d4: ; 0x020e24d4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24d8 +data_ov00_020e24d8: ; 0x020e24d8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24dc +data_ov00_020e24dc: ; 0x020e24dc + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24e0 +data_ov00_020e24e0: ; 0x020e24e0 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24e4 +data_ov00_020e24e4: ; 0x020e24e4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24e8 +data_ov00_020e24e8: ; 0x020e24e8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24ec +data_ov00_020e24ec: ; 0x020e24ec + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24f0 +data_ov00_020e24f0: ; 0x020e24f0 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24f4 +data_ov00_020e24f4: ; 0x020e24f4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24f8 +data_ov00_020e24f8: ; 0x020e24f8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e24fc +data_ov00_020e24fc: ; 0x020e24fc + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2500 +data_ov00_020e2500: ; 0x020e2500 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2504 +data_ov00_020e2504: ; 0x020e2504 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2508 +data_ov00_020e2508: ; 0x020e2508 + .word data_ov00_020e2520 + .global data_ov00_020e250c +data_ov00_020e250c: ; 0x020e250c + .word data_ov00_020e2524 + .global data_ov00_020e2510 +data_ov00_020e2510: ; 0x020e2510 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2514 +data_ov00_020e2514: ; 0x020e2514 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2518 +data_ov00_020e2518: ; 0x020e2518 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e251c +data_ov00_020e251c: ; 0x020e251c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2520 +data_ov00_020e2520: ; 0x020e2520 + .ascii "MCS" + .byte 0x00 + .global data_ov00_020e2524 +data_ov00_020e2524: ; 0x020e2524 + .ascii "MRC" + .byte 0x00 + .global data_ov00_020e2528 +data_ov00_020e2528: ; 0x020e2528 + .ascii "Map/%s/course.bin" + .byte 0x00, 0x00, 0x00 + + .sbss + .global data_ov00_020ec964 +data_ov00_020ec964: + .space 0x4 + .global data_ov00_020ec968 +data_ov00_020ec968: + .space 0x4 + .global data_ov00_020ec96c +data_ov00_020ec96c: + .space 0x4 + .global data_ov00_020ec970 +data_ov00_020ec970: + .space 0x4 + .global data_ov00_020ec974 +data_ov00_020ec974: + .space 0x4 + .global data_ov00_020ec978 +data_ov00_020ec978: + .space 0x4 + .global data_ov00_020ec97c +data_ov00_020ec97c: + .space 0x4 + .global data_ov00_020ec980 +data_ov00_020ec980: + .space 0x4 + .global data_ov00_020ec984 +data_ov00_020ec984: + .space 0x4 + .global data_ov00_020ec988 +data_ov00_020ec988: + .space 0x4 + .global data_ov00_020ec98c +data_ov00_020ec98c: + .space 0x4 + .global data_ov00_020ec990 +data_ov00_020ec990: + .space 0x4 + .global data_ov00_020ec994 +data_ov00_020ec994: + .space 0x4 + .global data_ov00_020ec998 +data_ov00_020ec998: + .space 0x4 + .global data_ov00_020ec99c +data_ov00_020ec99c: + .space 0x4 + .global data_ov00_020ec9a0 +data_ov00_020ec9a0: + .space 0x4 + .global data_ov00_020ec9a4 +data_ov00_020ec9a4: + .space 0x4 + .global data_ov00_020ec9a8 +data_ov00_020ec9a8: + .space 0x4 + .global data_ov00_020ec9ac +data_ov00_020ec9ac: + .space 0x4 + .global data_ov00_020ec9b0 +data_ov00_020ec9b0: + .space 0x4 + .global data_ov00_020ec9b4 +data_ov00_020ec9b4: + .space 0x4 + .global data_ov00_020ec9b8 +data_ov00_020ec9b8: + .space 0x4 + .global data_ov00_020ec9bc +data_ov00_020ec9bc: + .space 0x4 + .global data_ov00_020ec9c0 +data_ov00_020ec9c0: + .space 0x4 + .global data_ov00_020ec9c4 +data_ov00_020ec9c4: + .space 0x4 + .global data_ov00_020ec9c8 +data_ov00_020ec9c8: + .space 0x4 + .global data_ov00_020ec9cc +data_ov00_020ec9cc: + .space 0x4 + .global data_ov00_020ec9d0 +data_ov00_020ec9d0: + .space 0x4 diff --git a/asm/ov00/Player/LinkStateDamage.s b/asm/ov00/Player/LinkStateDamage.s index 717c8f2a..89e6fc59 100644 --- a/asm/ov00/Player/LinkStateDamage.s +++ b/asm/ov00/Player/LinkStateDamage.s @@ -1496,33 +1496,41 @@ _ZTV15LinkStateDamage: ; 0x020e5b68 .word func_ov05_0210f6dc .global data_ov00_020e5bac data_ov00_020e5bac: ; 0x020e5bac - .ascii "‘O¬ƒ_ƒΔΆ‘¬“x" + ; string "ε‰ε°γƒ€γƒ‘ε†η”Ÿι€ŸεΊ¦" + .byte 0x91, 0x4f, 0x8f, 0xac, 0x83, 0x5f, 0x83, 0x81, 0x8d, 0xc4, 0x90, 0xb6, 0x91, 0xac, 0x93, 0x78 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5bc0 data_ov00_020e5bc0: ; 0x020e5bc0 - .ascii "‘O¬ƒ_ƒŠJŽnƒtƒŒ[ƒ€" + ; string "前小ダパ開始フレーム" + .byte 0x91, 0x4f, 0x8f, 0xac, 0x83, 0x5f, 0x83, 0x81, 0x8a, 0x4a, 0x8e, 0x6e, 0x83, 0x74, 0x83, 0x8c, 0x81, 0x5b, 0x83, 0x80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5bd8 data_ov00_020e5bd8: ; 0x020e5bd8 - .ascii "‘O¬ƒ_ƒI—ΉƒtƒŒ[ƒ€" + ; string "前小ダパ硂了フレーム" + .byte 0x91, 0x4f, 0x8f, 0xac, 0x83, 0x5f, 0x83, 0x81, 0x8f, 0x49, 0x97, 0xb9, 0x83, 0x74, 0x83, 0x8c, 0x81, 0x5b, 0x83, 0x80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5bf0 data_ov00_020e5bf0: ; 0x020e5bf0 - .ascii "Œγ¬ƒ_ƒΔΆ‘¬“x" + ; string "εΎŒε°γƒ€γƒ‘ε†η”Ÿι€ŸεΊ¦" + .byte 0x8c, 0xe3, 0x8f, 0xac, 0x83, 0x5f, 0x83, 0x81, 0x8d, 0xc4, 0x90, 0xb6, 0x91, 0xac, 0x93, 0x78 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5c04 data_ov00_020e5c04: ; 0x020e5c04 - .ascii "Œγ¬ƒ_ƒŠJŽnƒtƒŒ[ƒ€" + ; string "εΎŒε°γƒ€γƒ‘ι–‹ε§‹γƒ•γƒ¬γƒΌγƒ " + .byte 0x8c, 0xe3, 0x8f, 0xac, 0x83, 0x5f, 0x83, 0x81, 0x8a, 0x4a, 0x8e, 0x6e, 0x83, 0x74, 0x83, 0x8c, 0x81, 0x5b, 0x83, 0x80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5c1c data_ov00_020e5c1c: ; 0x020e5c1c - .ascii "Œγ¬ƒ_ƒI—ΉƒtƒŒ[ƒ€" + ; string "εΎŒε°γƒ€γƒ‘η΅‚δΊ†γƒ•γƒ¬γƒΌγƒ " + .byte 0x8c, 0xe3, 0x8f, 0xac, 0x83, 0x5f, 0x83, 0x81, 0x8f, 0x49, 0x97, 0xb9, 0x83, 0x74, 0x83, 0x8c, 0x81, 0x5b, 0x83, 0x80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5c34 data_ov00_020e5c34: ; 0x020e5c34 - .ascii "ƒrƒŠƒrƒŠ‰ρ”" + ; string "ビγƒͺビγƒͺε›žζ•°" + .byte 0x83, 0x72, 0x83, 0x8a, 0x83, 0x72, 0x83, 0x8a, 0x89, 0xf1, 0x90, 0x94 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5c44 data_ov00_020e5c44: ; 0x020e5c44 - .ascii "ƒrƒŠƒrƒŠΔΆ‘¬“x" + ; string "ビγƒͺビγƒͺε†η”Ÿι€ŸεΊ¦" + .byte 0x83, 0x72, 0x83, 0x8a, 0x83, 0x72, 0x83, 0x8a, 0x8d, 0xc4, 0x90, 0xb6, 0x91, 0xac, 0x93, 0x78 .byte 0x00, 0x00, 0x00, 0x00 diff --git a/asm/ov00/Player/LinkStateFollow.inc b/asm/ov00/Player/LinkStateFollow.inc index e6df7599..c5775e7b 100644 --- a/asm/ov00/Player/LinkStateFollow.inc +++ b/asm/ov00/Player/LinkStateFollow.inc @@ -1,4 +1,7 @@ #pragma once +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi .extern _ZN10PlayerBase13GetEquipSwordEv .extern _ZN13LinkStateBase12GetPlayerPosEv .extern _ZN13LinkStateBase12GetPlayerVelEv @@ -7,16 +10,13 @@ .extern _ZN13LinkStateBase8vfunc_24Ei .extern _ZN13PlayerControl13StopFollowingEv .extern _ZN13PlayerControl18func_ov00_020af01cEPc -.extern data_027e0e60 +.extern gMapManager .extern data_027e0fb8 .extern func_01ff9bf8 .extern func_01ff9cec .extern func_01fffcd8 .extern func_0202b308 .extern func_0202d95c -.extern func_ov00_02083a1c -.extern func_ov00_02083c7c -.extern func_ov00_020840c4 .extern func_ov04_0210ad94 .extern func_ov04_0210adb0 .extern func_ov04_0210adf8 diff --git a/asm/ov00/Player/LinkStateFollow.s b/asm/ov00/Player/LinkStateFollow.s index 9fbf9a80..22b8876c 100644 --- a/asm/ov00/Player/LinkStateFollow.s +++ b/asm/ov00/Player/LinkStateFollow.s @@ -30,10 +30,10 @@ _ZN15LinkStateFollow16MoveTowardTargetEv: ; 0x020a8f80 ldmneia sp!, {r4, r5, pc} mov r0, r5 bl _ZN13LinkStateBase18func_ov00_020a8d40Ev - ldr r2, _020a9020 ; =data_027e0e60 + ldr r2, _020a9020 ; =gMapManager add r1, r0, #0xc4 ldr r0, [r2] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r4, r0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, pc} @@ -62,7 +62,7 @@ _ZN15LinkStateFollow16MoveTowardTargetEv: ; 0x020a8f80 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end _ZN15LinkStateFollow16MoveTowardTargetEv -_020a9020: .word data_027e0e60 +_020a9020: .word gMapManager _020a9024: .word 0x00000155 .global _ZN15LinkStateFollow12OnStateLeaveEi @@ -82,15 +82,15 @@ _020a904c: cmp r0, #6 cmpne r0, #7 ldmneia sp!, {r3, r4, r5, pc} - ldr r1, _020a90ac ; =data_027e0e60 + ldr r1, _020a90ac ; =gMapManager add r0, sp, #0 ldr r4, [r1] add r2, r5, #0x24 mov r1, r4 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r4 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r4, r0 ldmeqia sp!, {r3, r4, r5, pc} ldr r1, [r0] @@ -104,7 +104,7 @@ _020a904c: .align 2, 0 arm_func_end _ZN15LinkStateFollow12OnStateLeaveEi _020a90a8: .word data_027e0fb8 -_020a90ac: .word data_027e0e60 +_020a90ac: .word gMapManager .global _ZN15LinkStateFollow8vfunc_24Ei arm_func_start _ZN15LinkStateFollow8vfunc_24Ei @@ -204,7 +204,7 @@ _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p: ; 0x020a9180 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _020a920c ; =data_027e0e60 + ldr r0, _020a920c ; =gMapManager ldrb r2, [sp] ldrb r1, [sp, #1] ldr r0, [r0] @@ -213,7 +213,7 @@ _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p: ; 0x020a9180 strb r1, [r3, #1] ldr r2, [r3] mov r1, r4 - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi mov r0, #1 ldmia sp!, {r3, r4, r5, pc} _020a91f0: @@ -226,7 +226,7 @@ _020a91f0: .align 2, 0 arm_func_end _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p _020a9208: .word data_027e0fb8 -_020a920c: .word data_027e0e60 +_020a920c: .word gMapManager .global _ZN15LinkStateFollow18func_ov00_020a9210EP5Vec3pP5Actor arm_func_start _ZN15LinkStateFollow18func_ov00_020a9210EP5Vec3pP5Actor diff --git a/asm/ov00/Player/LinkStateInteract.inc b/asm/ov00/Player/LinkStateInteract.inc index c35564bc..01e57bcd 100644 --- a/asm/ov00/Player/LinkStateInteract.inc +++ b/asm/ov00/Player/LinkStateInteract.inc @@ -43,7 +43,7 @@ .extern _ZNK11ItemManager8GetFairyEi .extern data_02050f54 .extern data_027e0d0c -.extern data_027e0e60 +.extern gMapManager .extern data_027e0fb8 .extern data_027e0fe4 .extern data_ov00_020eec9c diff --git a/asm/ov00/Player/LinkStateInteract.s b/asm/ov00/Player/LinkStateInteract.s index d07a02de..691ece6b 100644 --- a/asm/ov00/Player/LinkStateInteract.s +++ b/asm/ov00/Player/LinkStateInteract.s @@ -940,7 +940,7 @@ _020aae90: add r2, r6, #0x8c str r1, [sp, #0x28] ldr r1, [r6, #0x4c] - ldr r5, _020ab3d8 ; =data_027e0e60 + ldr r5, _020ab3d8 ; =gMapManager str r1, [sp, #0x2c] ldr r3, [r6, #0x50] add r1, sp, #0x68 @@ -1270,7 +1270,7 @@ _020ab3c8: .word 0x000004cd _020ab3cc: .word data_027e0fb8 _020ab3d0: .word data_027e0fe4 _020ab3d4: .word 0x0000ffff -_020ab3d8: .word data_027e0e60 +_020ab3d8: .word gMapManager _020ab3dc: .word 0x00001ccd _020ab3e0: .word 0x00001333 _020ab3e4: .word 0x000018e4 @@ -2200,29 +2200,36 @@ _ZTV17LinkStateInteract: ; 0x020e5974 .word func_ov05_0210f71c .global data_ov00_020e59b8 data_ov00_020e59b8: ; 0x020e59b8 - .ascii "Ž‚Ώγ‚°ΔΆ‘¬“x" + ; string "ζŒγ‘δΈŠγ’ε†η”Ÿι€ŸεΊ¦" + .byte 0x8e, 0x9d, 0x82, 0xbf, 0x8f, 0xe3, 0x82, 0xb0, 0x8d, 0xc4, 0x90, 0xb6, 0x91, 0xac, 0x93, 0x78 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e59cc data_ov00_020e59cc: ; 0x020e59cc - .ascii "Ž‚Ώγ‚°ŠJŽnƒtƒŒ[ƒ€" + ; string "ζŒγ‘δΈŠγ’ι–‹ε§‹γƒ•γƒ¬γƒΌγƒ " + .byte 0x8e, 0x9d, 0x82, 0xbf, 0x8f, 0xe3, 0x82, 0xb0, 0x8a, 0x4a, 0x8e, 0x6e, 0x83, 0x74, 0x83, 0x8c, 0x81, 0x5b, 0x83, 0x80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e59e4 data_ov00_020e59e4: ; 0x020e59e4 - .ascii "Ž‚Ώγ‚°I—ΉƒtƒŒ[ƒ€" + ; string "ζŒγ‘δΈŠγ’η΅‚δΊ†γƒ•γƒ¬γƒΌγƒ " + .byte 0x8e, 0x9d, 0x82, 0xbf, 0x8f, 0xe3, 0x82, 0xb0, 0x8f, 0x49, 0x97, 0xb9, 0x83, 0x74, 0x83, 0x8c, 0x81, 0x5b, 0x83, 0x80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e59fc data_ov00_020e59fc: ; 0x020e59fc - .ascii "“Š‚°ΔΆ‘¬“x" + ; string "ζŠ•γ’ε†η”Ÿι€ŸεΊ¦" + .byte 0x93, 0x8a, 0x82, 0xb0, 0x8d, 0xc4, 0x90, 0xb6, 0x91, 0xac, 0x93, 0x78 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5a0c data_ov00_020e5a0c: ; 0x020e5a0c - .ascii "“Š‚°ŠJŽnƒtƒŒ[ƒ€" + ; string "ζŠ•γ’ι–‹ε§‹γƒ•γƒ¬γƒΌγƒ " + .byte 0x93, 0x8a, 0x82, 0xb0, 0x8a, 0x4a, 0x8e, 0x6e, 0x83, 0x74, 0x83, 0x8c, 0x81, 0x5b, 0x83, 0x80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5a20 data_ov00_020e5a20: ; 0x020e5a20 - .ascii "“Š‚°I—ΉƒtƒŒ[ƒ€" + ; string "ζŠ•γ’η΅‚δΊ†γƒ•γƒ¬γƒΌγƒ " + .byte 0x93, 0x8a, 0x82, 0xb0, 0x8f, 0x49, 0x97, 0xb9, 0x83, 0x74, 0x83, 0x8c, 0x81, 0x5b, 0x83, 0x80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov00_020e5a34 data_ov00_020e5a34: ; 0x020e5a34 - .ascii "’βŽ~ŽžŠΤ" + ; string "εœζ­’ζ™‚ι–“" + .byte 0x92, 0xe2, 0x8e, 0x7e, 0x8e, 0x9e, 0x8a, 0xd4 .byte 0x00, 0x00, 0x00, 0x00 diff --git a/asm/ov00/Player/LinkStateMove.s b/asm/ov00/Player/LinkStateMove.s index 0ca3780b..f5084504 100644 --- a/asm/ov00/Player/LinkStateMove.s +++ b/asm/ov00/Player/LinkStateMove.s @@ -220,5 +220,6 @@ data_ov00_020e5740: ; 0x020e5740 .word func_ov05_0210f71c .global data_ov00_020e5744 data_ov00_020e5744: ; 0x020e5744 - .ascii "‘§‚«ƒ{ƒŠƒ…[ƒ€’α‰Ί—¦" + ; string "ζ―εΉγγƒœγƒͺγƒ₯γƒΌγƒ δ½ŽδΈ‹ηŽ‡" + .byte 0x91, 0xa7, 0x90, 0x81, 0x82, 0xab, 0x83, 0x7b, 0x83, 0x8a, 0x83, 0x85, 0x81, 0x5b, 0x83, 0x80, 0x92, 0xe1, 0x89, 0xba, 0x97, 0xa6 .byte 0x00, 0x00 diff --git a/asm/ov00/Player/PlayerBase.inc b/asm/ov00/Player/PlayerBase.inc index c96e5130..73867f5f 100644 --- a/asm/ov00/Player/PlayerBase.inc +++ b/asm/ov00/Player/PlayerBase.inc @@ -6,7 +6,7 @@ .extern _ZNK11ItemManager8GetFairyEi .extern data_027e0c54 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern gAdventureFlags .extern data_027e0f94 @@ -20,9 +20,9 @@ .extern func_01ffec34 .extern func_01fffcec .extern func_ov00_0207c5d4 -.extern func_ov00_02082af4 -.extern func_ov00_02083624 -.extern func_ov00_02083ee0 +.extern _ZN10MapManager18func_ov00_02082af4Ev +.extern _ZN10MapManager14GetEntrancePosEP5Vec3pi +.extern _ZN10MapManager16MapData_vfunc_68Ev .extern func_ov00_0208ae94 .extern func_ov00_0208f030 .extern _ZN14AdventureFlags18func_ov00_02097700Ev diff --git a/asm/ov00/Player/PlayerBase.s b/asm/ov00/Player/PlayerBase.s index e2be8543..e5d45665 100644 --- a/asm/ov00/Player/PlayerBase.s +++ b/asm/ov00/Player/PlayerBase.s @@ -285,7 +285,7 @@ _020a7de4: _ZN10PlayerBase8TeleportEP5Vec3psibb: ; 0x020a7df4 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x1c - ldr r3, _020a7e6c ; =data_027e0e60 + ldr r3, _020a7e6c ; =gMapManager mov r5, r0 mov r4, r1 mov lr, #0xff @@ -296,7 +296,7 @@ _ZN10PlayerBase8TeleportEP5Vec3psibb: ; 0x020a7df4 mov r2, r4 strb lr, [sp, #0x16] str ip, [sp, #0x18] - bl func_ov00_02083624 + bl _ZN10MapManager14GetEntrancePosEP5Vec3pi str r6, [sp] mov r0, #0 str r0, [sp, #4] @@ -315,7 +315,7 @@ _ZN10PlayerBase8TeleportEP5Vec3psibb: ; 0x020a7df4 ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end _ZN10PlayerBase8TeleportEP5Vec3psibb -_020a7e6c: .word data_027e0e60 +_020a7e6c: .word gMapManager .global _ZN10PlayerBase18TeleportToEntranceEib arm_func_start _ZN10PlayerBase18TeleportToEntranceEib @@ -328,7 +328,7 @@ _ZN10PlayerBase18TeleportToEntranceEib: ; 0x020a7e70 mov r4, r2 str r0, [r3] ldr r1, [r5, #4] - ldr r0, _020a7f68 ; =data_027e0e60 + ldr r0, _020a7f68 ; =gMapManager str r1, [r3, #4] ldr r2, [r5, #8] add r1, sp, #0 @@ -341,7 +341,7 @@ _ZN10PlayerBase18TeleportToEntranceEib: ; 0x020a7e70 str r3, [sp, #4] ldr r3, [r5, #8] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr ip, [r5, #4] ldr r2, _020a7f6c ; =data_027e0fac cmp ip, r0 @@ -366,9 +366,9 @@ _ZN10PlayerBase18TeleportToEntranceEib: ; 0x020a7e70 ldrb r0, [sp, #0x18] cmp r0, #0 beq _020a7f40 - ldr r0, _020a7f68 ; =data_027e0e60 + ldr r0, _020a7f68 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082af4 + bl _ZN10MapManager18func_ov00_02082af4Ev ldr r0, _020a7f80 ; =gAdventureFlags ldr r0, [r0] bl _ZN14AdventureFlags18func_ov00_02097700Ev @@ -386,7 +386,7 @@ _020a7f58: .align 2, 0 arm_func_end _ZN10PlayerBase18TeleportToEntranceEib _020a7f64: .word data_027e0f94 -_020a7f68: .word data_027e0e60 +_020a7f68: .word gMapManager _020a7f6c: .word data_027e0fac _020a7f70: .word data_027e0fa0 _020a7f74: .word data_027e0fb0 diff --git a/asm/ov00/Player/PlayerControl.inc b/asm/ov00/Player/PlayerControl.inc index 457a4bf4..31b1b43a 100644 --- a/asm/ov00/Player/PlayerControl.inc +++ b/asm/ov00/Player/PlayerControl.inc @@ -1,8 +1,17 @@ #pragma once +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +.extern _ZN10MapManager18func_ov00_02085108EPi +.extern _ZN10MapManager18func_ov00_02085594Ev .extern _ZN11ItemManager12GetEquipItemEi .extern _ZN11ItemManager18func_ov00_020ad790Ei .extern _ZN12ActorManager18func_ov00_020c3484EP8ActorRefP5Actori .extern _ZN12ActorManager8GetActorEP8ActorRef +.extern _ZN14AdventureFlags18func_ov00_02097738Ev +.extern _ZN14AdventureFlags18func_ov00_02097750Ev .extern _ZN5Actor16XzDistanceToLinkEv .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZNK11ItemManager15GetEquippedItemEv @@ -17,9 +26,8 @@ .extern data_027e0d0c .extern data_027e0d38 .extern data_027e0e2c -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 -.extern gAdventureFlags .extern data_027e0f90 .extern data_027e0f94 .extern data_027e0fac @@ -44,16 +52,7 @@ .extern func_0202b2e8 .extern func_0202d95c .extern func_ov00_02078b40 -.extern func_ov00_02083a1c -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083c7c -.extern func_ov00_020840c4 -.extern func_ov00_02085108 -.extern func_ov00_02085594 .extern func_ov00_0208b180 -.extern _ZN14AdventureFlags18func_ov00_02097738Ev -.extern _ZN14AdventureFlags18func_ov00_02097750Ev .extern func_ov00_020a5e9c .extern func_ov00_020b78a0 .extern func_ov00_020b7924 @@ -76,4 +75,5 @@ .extern func_ov15_0213dcb0 .extern func_ov15_0213dcb8 .extern func_ov24_02178348 +.extern gAdventureFlags .extern gItemManager diff --git a/asm/ov00/Player/PlayerControl.s b/asm/ov00/Player/PlayerControl.s index 49fc6958..bd4688a2 100644 --- a/asm/ov00/Player/PlayerControl.s +++ b/asm/ov00/Player/PlayerControl.s @@ -643,10 +643,10 @@ _020af5c4: mov r0, r4 bl _ZN13PlayerControl13StopFollowingEv _020af620: - ldr r0, _020af6d8 ; =data_027e0e60 + ldr r0, _020af6d8 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02085108 + bl _ZN10MapManager18func_ov00_02085108EPi cmp r0, #3 cmpne r0, #7 moveq r0, #1 @@ -695,7 +695,7 @@ _020af6c8: .word data_027e0c68 _020af6cc: .word data_027e0fac _020af6d0: .word data_027e0ffc _020af6d4: .word 0x0000010a -_020af6d8: .word data_027e0e60 +_020af6d8: .word gMapManager _020af6dc: .word data_027e103c _020af6e0: .word data_027e05f8 @@ -721,11 +721,11 @@ _ZN13PlayerControl18func_ov00_020af6e4EP5Vec3pii: ; 0x020af6e4 str r0, [r4, #0x84] str r0, [r4, #0x88] _020af72c: - ldr r1, _020af774 ; =data_027e0e60 + ldr r1, _020af774 ; =gMapManager add r0, sp, #0 ldr r1, [r1] mov r2, r6 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r0, [sp] mov r2, #1 mov r1, #0 @@ -741,7 +741,7 @@ _020af72c: .align 2, 0 arm_func_end _ZN13PlayerControl18func_ov00_020af6e4EP5Vec3pii _020af770: .word data_027e0f94 -_020af774: .word data_027e0e60 +_020af774: .word gMapManager .global _ZN13PlayerControl18func_ov00_020af778Ev arm_func_start _ZN13PlayerControl18func_ov00_020af778Ev @@ -883,10 +883,10 @@ _020af944: bl _ZN5Actor16XzDistanceToLinkEv mov r4, r0 _020af97c: - ldr r0, _020afad0 ; =data_027e0e60 + ldr r0, _020afad0 ; =gMapManager add r1, sp, #8 ldr r0, [r0] - bl func_ov00_02085108 + bl _ZN10MapManager18func_ov00_02085108EPi ldr r2, _020afad4 ; =data_027e0f94 mov r1, r0 ldr r0, [r2, #4] @@ -974,7 +974,7 @@ _020afac0: .word data_027e0f90 _020afac4: .word gItemManager _020afac8: .word data_027e0fc8 _020afacc: .word data_027e0fe4 -_020afad0: .word data_027e0e60 +_020afad0: .word gMapManager _020afad4: .word data_027e0f94 .global _ZN13PlayerControl18func_ov00_020afad8EP5Vec3p @@ -999,10 +999,10 @@ _ZN13PlayerControl18func_ov00_020afad8EP5Vec3p: ; 0x020afad8 blx r1 cmp r0, #3 bne _020afb48 - ldr r0, _020afb68 ; =data_027e0e60 + ldr r0, _020afb68 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02085594 + bl _ZN10MapManager18func_ov00_02085594Ev cmp r0, #0 movne r0, #1 add sp, sp, #0xc @@ -1020,7 +1020,7 @@ _020afb54: arm_func_end _ZN13PlayerControl18func_ov00_020afad8EP5Vec3p _020afb60: .word data_027e0f94 _020afb64: .word data_027e0f90 -_020afb68: .word data_027e0e60 +_020afb68: .word gMapManager .global _ZN13PlayerControl18func_ov00_020afb6cEv arm_func_start _ZN13PlayerControl18func_ov00_020afb6cEv @@ -1136,10 +1136,10 @@ _020afcf4: ldrb r0, [r9, #0x81] cmp r0, #0 beq _020afe24 - ldr r0, _020afe84 ; =data_027e0e60 + ldr r0, _020afe84 ; =gMapManager add r1, r9, #0x9c ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev str r0, [r9, #0xa0] cmp r0, #0 beq _020afd88 @@ -1173,7 +1173,7 @@ _020afd5c: b _020afdc4 _020afd88: ldr r1, _020afe78 ; =data_027e0f94 - ldr r0, _020afe84 ; =data_027e0e60 + ldr r0, _020afe84 ; =gMapManager ldr r1, [r1, #4] ldr r0, [r0] str r1, [sp, #8] @@ -1184,7 +1184,7 @@ _020afd88: strb r3, [r5] strb r2, [r5, #1] ldr r2, [r5] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi mov r5, #2 mov r6, #3 _020afdc4: @@ -1242,7 +1242,7 @@ _020afe74: .word gItemManager _020afe78: .word data_027e0f94 _020afe7c: .word data_027e0fc8 _020afe80: .word data_027e0ffc -_020afe84: .word data_027e0e60 +_020afe84: .word gMapManager .global _ZN13PlayerControl18func_ov00_020afe88Eib arm_func_start _ZN13PlayerControl18func_ov00_020afe88Eib @@ -1864,24 +1864,24 @@ _ZN13PlayerControl18func_ov00_020b05e8EP5Vec3p: ; 0x020b05e8 str r3, [sp, #4] str r1, [sp, #0xc] _020b06e0: - ldr r1, _020b0774 ; =data_027e0e60 + ldr r1, _020b0774 ; =gMapManager add r0, sp, #0 ldr r1, [r1] add r2, sp, #4 - bl func_ov00_02083a1c - ldr r0, _020b0774 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _020b0774 ; =gMapManager ldrb r1, [sp] ldr r0, [r0] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei ldr r1, [sp, #4] - ldr r2, _020b0774 ; =data_027e0e60 + ldr r2, _020b0774 ; =gMapManager sub r0, r0, r1 add r0, r0, r0, lsr #31 add r3, r1, r0, asr #1 ldrb r1, [sp, #1] ldr r0, [r2] str r3, [sp, #4] - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei ldr r2, [sp, #0xc] mov r1, r4 sub r0, r0, r2 @@ -1904,7 +1904,7 @@ _020b0764: .word 0x00000333 _020b0768: .word data_027e0f94 _020b076c: .word data_027e0fac _020b0770: .word data_02050f54 -_020b0774: .word data_027e0e60 +_020b0774: .word gMapManager .global _ZN13PlayerControl18func_ov00_020b0778EP5Vec3pji arm_func_start _ZN13PlayerControl18func_ov00_020b0778EP5Vec3pji diff --git a/asm/ov00/Player/TouchControl.inc b/asm/ov00/Player/TouchControl.inc index fd8c24df..07247563 100644 --- a/asm/ov00/Player/TouchControl.inc +++ b/asm/ov00/Player/TouchControl.inc @@ -1,3 +1,8 @@ #pragma once .extern GetTouchStateFlags +.extern __register_global_object +.extern data_027e0d6c +.extern data_027e0d78 .extern func_020078c0 +.extern func_ov00_020df378 +.extern func_ov08_02113080 diff --git a/asm/ov00/Player/TouchControl.s b/asm/ov00/Player/TouchControl.s index 24c5f5ab..7e916190 100644 --- a/asm/ov00/Player/TouchControl.s +++ b/asm/ov00/Player/TouchControl.s @@ -294,3 +294,32 @@ _0207af84: add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} arm_func_end _ZN12TouchControl18func_ov00_0207af38Etb + + .global _ZN12TouchControlD1Ev + arm_func_start _ZN12TouchControlD1Ev +_ZN12TouchControlD1Ev: ; 0x0207af9c + bx lr + arm_func_end _ZN12TouchControlD1Ev + + .section .init, 4, 1, 4 + .global func_ov00_020df38c + arm_func_start func_ov00_020df38c +func_ov00_020df38c: ; 0x020df38c + stmdb sp!, {r3, lr} + ldr r0, _020df3ac ; =data_027e0d78 + bl func_ov08_02113080 + ldr r0, _020df3ac ; =data_027e0d78 + ldr r1, _020df3b0 ; =_ZN12TouchControlD1Ev + ldr r2, _020df3b4 ; =data_027e0d6c + bl __register_global_object + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end func_ov00_020df38c +_020df3ac: .word data_027e0d78 +_020df3b0: .word _ZN12TouchControlD1Ev - 1 +_020df3b4: .word data_027e0d6c + + .section .ctor, 4, 1, 4 + .global data_ov00_020e1e90 +data_ov00_020e1e90: ; 0x020e1e90 + .word func_ov00_020df378 diff --git a/asm/ov00/Save/AdventureFlags.inc b/asm/ov00/Save/AdventureFlags.inc index 00feb695..cd1910ee 100644 --- a/asm/ov00/Save/AdventureFlags.inc +++ b/asm/ov00/Save/AdventureFlags.inc @@ -3,12 +3,12 @@ .extern data_027e0c68 .extern data_027e0db0 .extern data_027e0dbc -.extern data_027e0e60 +.extern gMapManager .extern func_0204f754 .extern func_ov00_0207b2f0 .extern func_ov00_0207b334 .extern func_ov00_0207ba94 -.extern func_ov00_020838f8 +.extern _ZN10MapManager18func_ov00_020838f8EPi .extern func_ov00_020980f4 .extern func_ov00_020980f8 .extern func_ov00_020980fc diff --git a/asm/ov00/Save/AdventureFlags.s b/asm/ov00/Save/AdventureFlags.s index 06cb74e9..2880f496 100644 --- a/asm/ov00/Save/AdventureFlags.s +++ b/asm/ov00/Save/AdventureFlags.s @@ -325,10 +325,10 @@ _ZN14AdventureFlags18func_ov00_02097968Ei: ; 0x02097968 strb ip, [sp, #0x14] strb ip, [sp, #0x15] bl _ZN14AdventureFlags15Get_FlagsUnk_00EiP9FlagsUnk2 - ldr r0, _02097a40 ; =data_027e0e60 + ldr r0, _02097a40 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_020838f8 + bl _ZN10MapManager18func_ov00_020838f8EPi strb r0, [sp, #0x26] ldr r0, [r5, #0x44] add r1, sp, #0x18 @@ -342,7 +342,7 @@ _ZN14AdventureFlags18func_ov00_02097968Ei: ; 0x02097968 .align 2, 0 arm_func_end _ZN14AdventureFlags18func_ov00_02097968Ei _02097a3c: .word data_027e0db0 -_02097a40: .word data_027e0e60 +_02097a40: .word gMapManager .global _ZN14AdventureFlags18func_ov00_02097a44Eii arm_func_start _ZN14AdventureFlags18func_ov00_02097a44Eii diff --git a/asm/ov00/ov00_020773c0.inc b/asm/ov00/ov00_020773c0.inc index 36224a79..e016ee5b 100644 --- a/asm/ov00/ov00_020773c0.inc +++ b/asm/ov00/ov00_020773c0.inc @@ -1,9 +1,19 @@ #pragma once .extern Divide .extern WaitByLoop +.extern _ZN10MapManager13GetCourseMaxXEv +.extern _ZN10MapManager13GetCourseMaxZEv +.extern _ZN10MapManager13GetCourseMinXEv +.extern _ZN10MapManager13GetCourseMinZEv +.extern _ZN10MapManager18func_ov00_02082e1cEPiS0_ +.extern _ZN10MapManager18func_ov00_0208306cEv +.extern _ZN10MapManager18func_ov00_02083588Ev +.extern _ZN10MapManager18func_ov00_020849c0Ev +.extern _ZN14AdventureFlags15Get_FlagsUnk_48Ei .extern _ZN14OverlayManager15LoadIfNotLoadedEjj .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj +.extern __register_global_object .extern data_02000ba0 .extern data_02056be4 .extern data_0205750c @@ -26,9 +36,7 @@ .extern data_027e0d48 .extern data_027e0d54 .extern data_027e0e28 -.extern data_027e0e60 .extern data_027e0f64 -.extern gAdventureFlags .extern data_027e0f7c .extern data_027e1054 .extern data_ov00_020ec718 @@ -127,19 +135,9 @@ .extern func_020426d4 .extern func_02042bb8 .extern func_0204366c -.extern __register_global_object .extern func_ov00_0207bc48 .extern func_ov00_0207c170 -.extern func_ov00_02082e1c -.extern func_ov00_0208306c -.extern func_ov00_02083394 -.extern func_ov00_020833a0 -.extern func_ov00_020833ac -.extern func_ov00_020833b8 -.extern func_ov00_02083588 -.extern func_ov00_020849c0 .extern func_ov00_02088074 -.extern _ZN14AdventureFlags15Get_FlagsUnk_48Ei .extern func_ov00_0209d738 .extern func_ov00_0209d758 .extern func_ov00_0209d768 @@ -155,10 +153,13 @@ .extern func_ov03_020f4b7c .extern func_ov04_02100b6c .extern func_ov08_02112ee0 +.extern func_ov08_02113a0c .extern func_ov08_02113a40 .extern func_ov09_021136c4 .extern func_ov09_0211d860 .extern func_ov09_0211d8a0 .extern func_ov29_02178f1c +.extern gAdventureFlags +.extern gMapManager .extern gOverlayManager .extern strncmp diff --git a/asm/ov00/ov00_020773c0.s b/asm/ov00/ov00_020773c0.s index 92ed8ad2..2a2ffd72 100644 --- a/asm/ov00/ov00_020773c0.s +++ b/asm/ov00/ov00_020773c0.s @@ -3875,10 +3875,10 @@ _02078f7c: .word data_027e1054 arm_func_start func_ov00_02078f80 func_ov00_02078f80: ; 0x02078f80 stmdb sp!, {r4, lr} - ldr r1, _02078fa8 ; =data_027e0e60 + ldr r1, _02078fa8 ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_02083588 + bl _ZN10MapManager18func_ov00_02083588Ev ldr r1, [r4, #0x44] cmp r1, r0 movne r0, #1 @@ -3886,7 +3886,7 @@ func_ov00_02078f80: ; 0x02078f80 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_02078f80 -_02078fa8: .word data_027e0e60 +_02078fa8: .word gMapManager .global func_ov00_02078fac arm_func_start func_ov00_02078fac @@ -4038,23 +4038,23 @@ _02079148: .word data_027e0c38 func_ov00_0207914c: ; 0x0207914c stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x14 - ldr r4, _020791d8 ; =data_027e0e60 + ldr r4, _020791d8 ; =gMapManager mov r11, r0 ldr r7, [r4] mov r10, r1 mov r0, r7 mov r9, r2 mov r8, r3 - bl func_ov00_02083394 + bl _ZN10MapManager13GetCourseMinXEv mov r6, r0 mov r0, r7 - bl func_ov00_020833a0 + bl _ZN10MapManager13GetCourseMinZEv mov r5, r0 mov r0, r7 - bl func_ov00_020833ac + bl _ZN10MapManager13GetCourseMaxXEv mov r4, r0 mov r0, r7 - bl func_ov00_020833b8 + bl _ZN10MapManager13GetCourseMaxZEv ldr r1, [r10, #8] sub r0, r0, r5 sub r1, r1, r5 @@ -4073,7 +4073,7 @@ func_ov00_0207914c: ; 0x0207914c ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov00_0207914c -_020791d8: .word data_027e0e60 +_020791d8: .word gMapManager .global func_ov00_020791dc arm_func_start func_ov00_020791dc @@ -4097,23 +4097,23 @@ func_ov00_020791dc: ; 0x020791dc func_ov00_0207920c: ; 0x0207920c stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x14 - ldr r4, _0207929c ; =data_027e0e60 + ldr r4, _0207929c ; =gMapManager mov r11, r0 ldr r7, [r4] mov r10, r1 mov r0, r7 mov r9, r2 mov r8, r3 - bl func_ov00_02083394 + bl _ZN10MapManager13GetCourseMinXEv mov r6, r0 mov r0, r7 - bl func_ov00_020833a0 + bl _ZN10MapManager13GetCourseMinZEv mov r5, r0 mov r0, r7 - bl func_ov00_020833ac + bl _ZN10MapManager13GetCourseMaxXEv mov r4, r0 mov r0, r7 - bl func_ov00_020833b8 + bl _ZN10MapManager13GetCourseMaxZEv sub r3, r4, r6 ldr r1, [r10, #8] sub r0, r0, r5 @@ -4133,7 +4133,7 @@ func_ov00_0207920c: ; 0x0207920c ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov00_0207920c -_0207929c: .word data_027e0e60 +_0207929c: .word gMapManager .global func_ov00_020792a0 arm_func_start func_ov00_020792a0 @@ -4161,22 +4161,22 @@ _020792d4: ldr r0, [r0, #0x14] add r9, r9, r0 _020792f4: - ldr r0, _020793b4 ; =data_027e0e60 + ldr r0, _020793b4 ; =gMapManager ldr r6, [r0] mov r0, r6 - bl func_ov00_02083394 + bl _ZN10MapManager13GetCourseMinXEv mov r5, r0 mov r0, r6 - bl func_ov00_020833a0 + bl _ZN10MapManager13GetCourseMinZEv mov r4, r0 mov r0, r6 - bl func_ov00_020833ac + bl _ZN10MapManager13GetCourseMaxXEv sub r2, r0, r5 mov r0, r6 mov r1, r2, asr #0x7 add r1, r2, r1, lsr #24 mov r6, r1, asr #0x8 - bl func_ov00_020833b8 + bl _ZN10MapManager13GetCourseMaxZEv sub r0, r0, r4 mov r1, #0xc0 bl func_01ff9b4c @@ -4212,7 +4212,7 @@ _02079368: .align 2, 0 arm_func_end func_ov00_020792a0 _020793b0: .word data_027e0c38 -_020793b4: .word data_027e0e60 +_020793b4: .word gMapManager .global func_ov00_020793b8 arm_func_start func_ov00_020793b8 @@ -4340,28 +4340,28 @@ _0207955c: mov r0, #0 b _02079614 _02079564: - ldr r0, _0207967c ; =data_027e0e60 + ldr r0, _0207967c ; =gMapManager mov r1, r5 ldr r0, [r0] mov r2, r4 - bl func_ov00_02082e1c + bl _ZN10MapManager18func_ov00_02082e1cEPiS0_ cmp r0, #0 movne r0, #0 bne _02079614 - ldr r0, _0207967c ; =data_027e0e60 + ldr r0, _0207967c ; =gMapManager ldr r0, [r0] - bl func_ov00_020849c0 + bl _ZN10MapManager18func_ov00_020849c0Ev cmp r0, #0 beq _020795f8 ldrb r0, [sp, #0x38] cmp r0, #0 moveq r0, #0 beq _02079614 - ldr r0, _0207967c ; =data_027e0e60 + ldr r0, _0207967c ; =gMapManager mov r1, r5 ldr r0, [r0] mov r2, r4 - bl func_ov00_0208306c + bl _ZN10MapManager18func_ov00_0208306cEv ldr r1, [r4] mov r0, #0xc0000 mov r1, r1, lsl #0xc @@ -4415,7 +4415,7 @@ _0207966c: .word data_027e0e28 _02079670: .word data_027e0d38 _02079674: .word gOverlayManager _02079678: .word 0x00000003 -_0207967c: .word data_027e0e60 +_0207967c: .word gMapManager .global func_ov00_02079680 arm_func_start func_ov00_02079680 @@ -4510,11 +4510,11 @@ func_ov00_0207977c: ; 0x0207977c bl func_ov00_02078b88 cmp r0, #0 bne _0207984c - ldr r0, _0207986c ; =data_027e0e60 + ldr r0, _0207986c ; =gMapManager mov r1, r5 ldr r0, [r0] mov r2, r4 - bl func_ov00_02082e1c + bl _ZN10MapManager18func_ov00_02082e1cEPiS0_ cmp r0, #0 beq _0207984c mov r0, r8 @@ -4555,7 +4555,7 @@ _0207984c: arm_func_end func_ov00_0207977c _02079864: .word data_027e0e28 _02079868: .word data_027e0d38 -_0207986c: .word data_027e0e60 +_0207986c: .word gMapManager _02079870: .word data_027e0c38 _02079874: .word data_027e080c @@ -6935,6 +6935,17 @@ _020df36c: .word data_027e0d54 _020df370: .word func_ov00_0207a2fc - 1 _020df374: .word data_027e0d48 + .global func_ov00_020df378 + arm_func_start func_ov00_020df378 +func_ov00_020df378: ; 0x020df378 + ldr ip, _020df384 ; =func_ov08_02113a0c + ldr r0, _020df388 ; =data_ov00_020e9370 + bx ip + .align 2, 0 + arm_func_end func_ov00_020df378 +_020df384: .word func_ov08_02113a0c +_020df388: .word data_ov00_020e9370 + .section .ctor, 4, 1, 4 .global data_ov00_020e1e88 data_ov00_020e1e88: ; 0x020e1e88 @@ -7090,3 +7101,1737 @@ data_ov00_020e9360: .global data_ov00_020e9364 data_ov00_020e9364: .space 0x4 + .global data_ov00_020e9368 +data_ov00_020e9368: + .space 0x4 + .global data_ov00_020e936c +data_ov00_020e936c: + .space 0x4 + .global data_ov00_020e9370 +data_ov00_020e9370: + .space 0x4 + .global data_ov00_020e9374 +data_ov00_020e9374: + .space 0x4 + .global data_ov00_020e9378 +data_ov00_020e9378: + .space 0x4 + .global data_ov00_020e937c +data_ov00_020e937c: + .space 0x4 + .global data_ov00_020e9380 +data_ov00_020e9380: + .space 0x4 + .global data_ov00_020e9384 +data_ov00_020e9384: + .space 0x4 + .global data_ov00_020e9388 +data_ov00_020e9388: + .space 0x4 + .global data_ov00_020e938c +data_ov00_020e938c: + .space 0x4 + .global data_ov00_020e9390 +data_ov00_020e9390: + .space 0x4 + .global data_ov00_020e9394 +data_ov00_020e9394: + .space 0x4 + .global data_ov00_020e9398 +data_ov00_020e9398: + .space 0x4 + .global data_ov00_020e939c +data_ov00_020e939c: + .space 0x4 + .global data_ov00_020e93a0 +data_ov00_020e93a0: + .space 0x4 + .global data_ov00_020e93a4 +data_ov00_020e93a4: + .space 0x4 + .global data_ov00_020e93a8 +data_ov00_020e93a8: + .space 0x4 + .global data_ov00_020e93ac +data_ov00_020e93ac: + .space 0x4 + .global data_ov00_020e93b0 +data_ov00_020e93b0: + .space 0x4 + .global data_ov00_020e93b4 +data_ov00_020e93b4: + .space 0x4 + .global data_ov00_020e93b8 +data_ov00_020e93b8: + .space 0x4 + .global data_ov00_020e93bc +data_ov00_020e93bc: + .space 0x4 + .global data_ov00_020e93c0 +data_ov00_020e93c0: + .space 0x4 + .global data_ov00_020e93c4 +data_ov00_020e93c4: + .space 0x4 + .global data_ov00_020e93c8 +data_ov00_020e93c8: + .space 0x4 + .global data_ov00_020e93cc +data_ov00_020e93cc: + .space 0x4 + .global data_ov00_020e93d0 +data_ov00_020e93d0: + .space 0x4 + .global data_ov00_020e93d4 +data_ov00_020e93d4: + .space 0x4 + .global data_ov00_020e93d8 +data_ov00_020e93d8: + .space 0x4 + .global data_ov00_020e93dc +data_ov00_020e93dc: + .space 0x4 + .global data_ov00_020e93e0 +data_ov00_020e93e0: + .space 0x4 + .global data_ov00_020e93e4 +data_ov00_020e93e4: + .space 0x4 + .global data_ov00_020e93e8 +data_ov00_020e93e8: + .space 0x4 + .global data_ov00_020e93ec +data_ov00_020e93ec: + .space 0x4 + .global data_ov00_020e93f0 +data_ov00_020e93f0: + .space 0x4 + .global data_ov00_020e93f4 +data_ov00_020e93f4: + .space 0x4 + .global data_ov00_020e93f8 +data_ov00_020e93f8: + .space 0x4 + .global data_ov00_020e93fc +data_ov00_020e93fc: + .space 0x4 + .global data_ov00_020e9400 +data_ov00_020e9400: + .space 0x4 + .global data_ov00_020e9404 +data_ov00_020e9404: + .space 0x4 + .global data_ov00_020e9408 +data_ov00_020e9408: + .space 0x4 + .global data_ov00_020e940c +data_ov00_020e940c: + .space 0x4 + .global data_ov00_020e9410 +data_ov00_020e9410: + .space 0x4 + .global data_ov00_020e9414 +data_ov00_020e9414: + .space 0x4 + .global data_ov00_020e9418 +data_ov00_020e9418: + .space 0x4 + .global data_ov00_020e941c +data_ov00_020e941c: + .space 0x4 + .global data_ov00_020e9420 +data_ov00_020e9420: + .space 0x4 + .global data_ov00_020e9424 +data_ov00_020e9424: + .space 0x4 + .global data_ov00_020e9428 +data_ov00_020e9428: + .space 0x4 + .global data_ov00_020e942c +data_ov00_020e942c: + .space 0x4 + .global data_ov00_020e9430 +data_ov00_020e9430: + .space 0x4 + .global data_ov00_020e9434 +data_ov00_020e9434: + .space 0x4 + .global data_ov00_020e9438 +data_ov00_020e9438: + .space 0x4 + .global data_ov00_020e943c +data_ov00_020e943c: + .space 0x4 + .global data_ov00_020e9440 +data_ov00_020e9440: + .space 0x4 + .global data_ov00_020e9444 +data_ov00_020e9444: + .space 0x4 + .global data_ov00_020e9448 +data_ov00_020e9448: + .space 0x4 + .global data_ov00_020e944c +data_ov00_020e944c: + .space 0x4 + .global data_ov00_020e9450 +data_ov00_020e9450: + .space 0x4 + .global data_ov00_020e9454 +data_ov00_020e9454: + .space 0x4 + .global data_ov00_020e9458 +data_ov00_020e9458: + .space 0x4 + .global data_ov00_020e945c +data_ov00_020e945c: + .space 0x4 + .global data_ov00_020e9460 +data_ov00_020e9460: + .space 0x4 + .global data_ov00_020e9464 +data_ov00_020e9464: + .space 0x4 + .global data_ov00_020e9468 +data_ov00_020e9468: + .space 0x4 + .global data_ov00_020e946c +data_ov00_020e946c: + .space 0x4 + .global data_ov00_020e9470 +data_ov00_020e9470: + .space 0x4 + .global data_ov00_020e9474 +data_ov00_020e9474: + .space 0x4 + .global data_ov00_020e9478 +data_ov00_020e9478: + .space 0x4 + .global data_ov00_020e947c +data_ov00_020e947c: + .space 0x4 + .global data_ov00_020e9480 +data_ov00_020e9480: + .space 0x4 + .global data_ov00_020e9484 +data_ov00_020e9484: + .space 0x4 + .global data_ov00_020e9488 +data_ov00_020e9488: + .space 0x4 + .global data_ov00_020e948c +data_ov00_020e948c: + .space 0x4 + .global data_ov00_020e9490 +data_ov00_020e9490: + .space 0x4 + .global data_ov00_020e9494 +data_ov00_020e9494: + .space 0x4 + .global data_ov00_020e9498 +data_ov00_020e9498: + .space 0x4 + .global data_ov00_020e949c +data_ov00_020e949c: + .space 0x4 + .global data_ov00_020e94a0 +data_ov00_020e94a0: + .space 0x4 + .global data_ov00_020e94a4 +data_ov00_020e94a4: + .space 0x4 + .global data_ov00_020e94a8 +data_ov00_020e94a8: + .space 0x4 + .global data_ov00_020e94ac +data_ov00_020e94ac: + .space 0x4 + .global data_ov00_020e94b0 +data_ov00_020e94b0: + .space 0x4 + .global data_ov00_020e94b4 +data_ov00_020e94b4: + .space 0x4 + .global data_ov00_020e94b8 +data_ov00_020e94b8: + .space 0x4 + .global data_ov00_020e94bc +data_ov00_020e94bc: + .space 0x4 + .global data_ov00_020e94c0 +data_ov00_020e94c0: + .space 0x4 + .global data_ov00_020e94c4 +data_ov00_020e94c4: + .space 0x4 + .global data_ov00_020e94c8 +data_ov00_020e94c8: + .space 0x4 + .global data_ov00_020e94cc +data_ov00_020e94cc: + .space 0x4 + .global data_ov00_020e94d0 +data_ov00_020e94d0: + .space 0x4 + .global data_ov00_020e94d4 +data_ov00_020e94d4: + .space 0x4 + .global data_ov00_020e94d8 +data_ov00_020e94d8: + .space 0x4 + .global data_ov00_020e94dc +data_ov00_020e94dc: + .space 0x4 + .global data_ov00_020e94e0 +data_ov00_020e94e0: + .space 0x4 + .global data_ov00_020e94e4 +data_ov00_020e94e4: + .space 0x4 + .global data_ov00_020e94e8 +data_ov00_020e94e8: + .space 0x4 + .global data_ov00_020e94ec +data_ov00_020e94ec: + .space 0x4 + .global data_ov00_020e94f0 +data_ov00_020e94f0: + .space 0x4 + .global data_ov00_020e94f4 +data_ov00_020e94f4: + .space 0x4 + .global data_ov00_020e94f8 +data_ov00_020e94f8: + .space 0x4 + .global data_ov00_020e94fc +data_ov00_020e94fc: + .space 0x4 + .global data_ov00_020e9500 +data_ov00_020e9500: + .space 0x4 + .global data_ov00_020e9504 +data_ov00_020e9504: + .space 0x4 + .global data_ov00_020e9508 +data_ov00_020e9508: + .space 0x4 + .global data_ov00_020e950c +data_ov00_020e950c: + .space 0x4 + .global data_ov00_020e9510 +data_ov00_020e9510: + .space 0x4 + .global data_ov00_020e9514 +data_ov00_020e9514: + .space 0x4 + .global data_ov00_020e9518 +data_ov00_020e9518: + .space 0x4 + .global data_ov00_020e951c +data_ov00_020e951c: + .space 0x4 + .global data_ov00_020e9520 +data_ov00_020e9520: + .space 0x4 + .global data_ov00_020e9524 +data_ov00_020e9524: + .space 0x4 + .global data_ov00_020e9528 +data_ov00_020e9528: + .space 0x4 + .global data_ov00_020e952c +data_ov00_020e952c: + .space 0x4 + .global data_ov00_020e9530 +data_ov00_020e9530: + .space 0x4 + .global data_ov00_020e9534 +data_ov00_020e9534: + .space 0x4 + .global data_ov00_020e9538 +data_ov00_020e9538: + .space 0x4 + .global data_ov00_020e953c +data_ov00_020e953c: + .space 0x4 + .global data_ov00_020e9540 +data_ov00_020e9540: + .space 0x4 + .global data_ov00_020e9544 +data_ov00_020e9544: + .space 0x4 + .global data_ov00_020e9548 +data_ov00_020e9548: + .space 0x4 + .global data_ov00_020e954c +data_ov00_020e954c: + .space 0x4 + .global data_ov00_020e9550 +data_ov00_020e9550: + .space 0x4 + .global data_ov00_020e9554 +data_ov00_020e9554: + .space 0x4 + .global data_ov00_020e9558 +data_ov00_020e9558: + .space 0x4 + .global data_ov00_020e955c +data_ov00_020e955c: + .space 0x4 + .global data_ov00_020e9560 +data_ov00_020e9560: + .space 0x4 + .global data_ov00_020e9564 +data_ov00_020e9564: + .space 0x4 + .global data_ov00_020e9568 +data_ov00_020e9568: + .space 0x4 + .global data_ov00_020e956c +data_ov00_020e956c: + .space 0x4 + .global data_ov00_020e9570 +data_ov00_020e9570: + .space 0x4 + .global data_ov00_020e9574 +data_ov00_020e9574: + .space 0x4 + .global data_ov00_020e9578 +data_ov00_020e9578: + .space 0x4 + .global data_ov00_020e957c +data_ov00_020e957c: + .space 0x4 + .global data_ov00_020e9580 +data_ov00_020e9580: + .space 0x4 + .global data_ov00_020e9584 +data_ov00_020e9584: + .space 0x4 + .global data_ov00_020e9588 +data_ov00_020e9588: + .space 0x4 + .global data_ov00_020e958c +data_ov00_020e958c: + .space 0x4 + .global data_ov00_020e9590 +data_ov00_020e9590: + .space 0x4 + .global data_ov00_020e9594 +data_ov00_020e9594: + .space 0x4 + .global data_ov00_020e9598 +data_ov00_020e9598: + .space 0x4 + .global data_ov00_020e959c +data_ov00_020e959c: + .space 0x4 + .global data_ov00_020e95a0 +data_ov00_020e95a0: + .space 0x4 + .global data_ov00_020e95a4 +data_ov00_020e95a4: + .space 0x4 + .global data_ov00_020e95a8 +data_ov00_020e95a8: + .space 0x4 + .global data_ov00_020e95ac +data_ov00_020e95ac: + .space 0x4 + .global data_ov00_020e95b0 +data_ov00_020e95b0: + .space 0x4 + .global data_ov00_020e95b4 +data_ov00_020e95b4: + .space 0x4 + .global data_ov00_020e95b8 +data_ov00_020e95b8: + .space 0x4 + .global data_ov00_020e95bc +data_ov00_020e95bc: + .space 0x4 + .global data_ov00_020e95c0 +data_ov00_020e95c0: + .space 0x4 + .global data_ov00_020e95c4 +data_ov00_020e95c4: + .space 0x4 + .global data_ov00_020e95c8 +data_ov00_020e95c8: + .space 0x4 + .global data_ov00_020e95cc +data_ov00_020e95cc: + .space 0x4 + .global data_ov00_020e95d0 +data_ov00_020e95d0: + .space 0x4 + .global data_ov00_020e95d4 +data_ov00_020e95d4: + .space 0x4 + .global data_ov00_020e95d8 +data_ov00_020e95d8: + .space 0x4 + .global data_ov00_020e95dc +data_ov00_020e95dc: + .space 0x4 + .global data_ov00_020e95e0 +data_ov00_020e95e0: + .space 0x4 + .global data_ov00_020e95e4 +data_ov00_020e95e4: + .space 0x4 + .global data_ov00_020e95e8 +data_ov00_020e95e8: + .space 0x4 + .global data_ov00_020e95ec +data_ov00_020e95ec: + .space 0x4 + .global data_ov00_020e95f0 +data_ov00_020e95f0: + .space 0x4 + .global data_ov00_020e95f4 +data_ov00_020e95f4: + .space 0x4 + .global data_ov00_020e95f8 +data_ov00_020e95f8: + .space 0x4 + .global data_ov00_020e95fc +data_ov00_020e95fc: + .space 0x4 + .global data_ov00_020e9600 +data_ov00_020e9600: + .space 0x4 + .global data_ov00_020e9604 +data_ov00_020e9604: + .space 0x4 + .global data_ov00_020e9608 +data_ov00_020e9608: + .space 0x4 + .global data_ov00_020e960c +data_ov00_020e960c: + .space 0x4 + .global data_ov00_020e9610 +data_ov00_020e9610: + .space 0x4 + .global data_ov00_020e9614 +data_ov00_020e9614: + .space 0x4 + .global data_ov00_020e9618 +data_ov00_020e9618: + .space 0x4 + .global data_ov00_020e961c +data_ov00_020e961c: + .space 0x4 + .global data_ov00_020e9620 +data_ov00_020e9620: + .space 0x4 + .global data_ov00_020e9624 +data_ov00_020e9624: + .space 0x4 + .global data_ov00_020e9628 +data_ov00_020e9628: + .space 0x4 + .global data_ov00_020e962c +data_ov00_020e962c: + .space 0x4 + .global data_ov00_020e9630 +data_ov00_020e9630: + .space 0x4 + .global data_ov00_020e9634 +data_ov00_020e9634: + .space 0x4 + .global data_ov00_020e9638 +data_ov00_020e9638: + .space 0x4 + .global data_ov00_020e963c +data_ov00_020e963c: + .space 0x4 + .global data_ov00_020e9640 +data_ov00_020e9640: + .space 0x4 + .global data_ov00_020e9644 +data_ov00_020e9644: + .space 0x4 + .global data_ov00_020e9648 +data_ov00_020e9648: + .space 0x4 + .global data_ov00_020e964c +data_ov00_020e964c: + .space 0x4 + .global data_ov00_020e9650 +data_ov00_020e9650: + .space 0x4 + .global data_ov00_020e9654 +data_ov00_020e9654: + .space 0x4 + .global data_ov00_020e9658 +data_ov00_020e9658: + .space 0x4 + .global data_ov00_020e965c +data_ov00_020e965c: + .space 0x4 + .global data_ov00_020e9660 +data_ov00_020e9660: + .space 0x4 + .global data_ov00_020e9664 +data_ov00_020e9664: + .space 0x4 + .global data_ov00_020e9668 +data_ov00_020e9668: + .space 0x4 + .global data_ov00_020e966c +data_ov00_020e966c: + .space 0x4 + .global data_ov00_020e9670 +data_ov00_020e9670: + .space 0x4 + .global data_ov00_020e9674 +data_ov00_020e9674: + .space 0x4 + .global data_ov00_020e9678 +data_ov00_020e9678: + .space 0x4 + .global data_ov00_020e967c +data_ov00_020e967c: + .space 0x4 + .global data_ov00_020e9680 +data_ov00_020e9680: + .space 0x4 + .global data_ov00_020e9684 +data_ov00_020e9684: + .space 0x4 + .global data_ov00_020e9688 +data_ov00_020e9688: + .space 0x4 + .global data_ov00_020e968c +data_ov00_020e968c: + .space 0x4 + .global data_ov00_020e9690 +data_ov00_020e9690: + .space 0x4 + .global data_ov00_020e9694 +data_ov00_020e9694: + .space 0x4 + .global data_ov00_020e9698 +data_ov00_020e9698: + .space 0x4 + .global data_ov00_020e969c +data_ov00_020e969c: + .space 0x4 + .global data_ov00_020e96a0 +data_ov00_020e96a0: + .space 0x4 + .global data_ov00_020e96a4 +data_ov00_020e96a4: + .space 0x4 + .global data_ov00_020e96a8 +data_ov00_020e96a8: + .space 0x4 + .global data_ov00_020e96ac +data_ov00_020e96ac: + .space 0x4 + .global data_ov00_020e96b0 +data_ov00_020e96b0: + .space 0x4 + .global data_ov00_020e96b4 +data_ov00_020e96b4: + .space 0x4 + .global data_ov00_020e96b8 +data_ov00_020e96b8: + .space 0x4 + .global data_ov00_020e96bc +data_ov00_020e96bc: + .space 0x4 + .global data_ov00_020e96c0 +data_ov00_020e96c0: + .space 0x4 + .global data_ov00_020e96c4 +data_ov00_020e96c4: + .space 0x4 + .global data_ov00_020e96c8 +data_ov00_020e96c8: + .space 0x4 + .global data_ov00_020e96cc +data_ov00_020e96cc: + .space 0x4 + .global data_ov00_020e96d0 +data_ov00_020e96d0: + .space 0x4 + .global data_ov00_020e96d4 +data_ov00_020e96d4: + .space 0x4 + .global data_ov00_020e96d8 +data_ov00_020e96d8: + .space 0x4 + .global data_ov00_020e96dc +data_ov00_020e96dc: + .space 0x4 + .global data_ov00_020e96e0 +data_ov00_020e96e0: + .space 0x4 + .global data_ov00_020e96e4 +data_ov00_020e96e4: + .space 0x4 + .global data_ov00_020e96e8 +data_ov00_020e96e8: + .space 0x4 + .global data_ov00_020e96ec +data_ov00_020e96ec: + .space 0x4 + .global data_ov00_020e96f0 +data_ov00_020e96f0: + .space 0x4 + .global data_ov00_020e96f4 +data_ov00_020e96f4: + .space 0x4 + .global data_ov00_020e96f8 +data_ov00_020e96f8: + .space 0x4 + .global data_ov00_020e96fc +data_ov00_020e96fc: + .space 0x4 + .global data_ov00_020e9700 +data_ov00_020e9700: + .space 0x4 + .global data_ov00_020e9704 +data_ov00_020e9704: + .space 0x4 + .global data_ov00_020e9708 +data_ov00_020e9708: + .space 0x4 + .global data_ov00_020e970c +data_ov00_020e970c: + .space 0x4 + .global data_ov00_020e9710 +data_ov00_020e9710: + .space 0x4 + .global data_ov00_020e9714 +data_ov00_020e9714: + .space 0x4 + .global data_ov00_020e9718 +data_ov00_020e9718: + .space 0x4 + .global data_ov00_020e971c +data_ov00_020e971c: + .space 0x4 + .global data_ov00_020e9720 +data_ov00_020e9720: + .space 0x4 + .global data_ov00_020e9724 +data_ov00_020e9724: + .space 0x4 + .global data_ov00_020e9728 +data_ov00_020e9728: + .space 0x4 + .global data_ov00_020e972c +data_ov00_020e972c: + .space 0x4 + .global data_ov00_020e9730 +data_ov00_020e9730: + .space 0x4 + .global data_ov00_020e9734 +data_ov00_020e9734: + .space 0x4 + .global data_ov00_020e9738 +data_ov00_020e9738: + .space 0x4 + .global data_ov00_020e973c +data_ov00_020e973c: + .space 0x4 + .global data_ov00_020e9740 +data_ov00_020e9740: + .space 0x4 + .global data_ov00_020e9744 +data_ov00_020e9744: + .space 0x4 + .global data_ov00_020e9748 +data_ov00_020e9748: + .space 0x4 + .global data_ov00_020e974c +data_ov00_020e974c: + .space 0x4 + .global data_ov00_020e9750 +data_ov00_020e9750: + .space 0x4 + .global data_ov00_020e9754 +data_ov00_020e9754: + .space 0x4 + .global data_ov00_020e9758 +data_ov00_020e9758: + .space 0x4 + .global data_ov00_020e975c +data_ov00_020e975c: + .space 0x4 + .global data_ov00_020e9760 +data_ov00_020e9760: + .space 0x4 + .global data_ov00_020e9764 +data_ov00_020e9764: + .space 0x4 + .global data_ov00_020e9768 +data_ov00_020e9768: + .space 0x4 + .global data_ov00_020e976c +data_ov00_020e976c: + .space 0x4 + .global data_ov00_020e9770 +data_ov00_020e9770: + .space 0x4 + .global data_ov00_020e9774 +data_ov00_020e9774: + .space 0x4 + .global data_ov00_020e9778 +data_ov00_020e9778: + .space 0x4 + .global data_ov00_020e977c +data_ov00_020e977c: + .space 0x4 + .global data_ov00_020e9780 +data_ov00_020e9780: + .space 0x4 + .global data_ov00_020e9784 +data_ov00_020e9784: + .space 0x4 + .global data_ov00_020e9788 +data_ov00_020e9788: + .space 0x4 + .global data_ov00_020e978c +data_ov00_020e978c: + .space 0x4 + .global data_ov00_020e9790 +data_ov00_020e9790: + .space 0x4 + .global data_ov00_020e9794 +data_ov00_020e9794: + .space 0x4 + .global data_ov00_020e9798 +data_ov00_020e9798: + .space 0x4 + .global data_ov00_020e979c +data_ov00_020e979c: + .space 0x4 + .global data_ov00_020e97a0 +data_ov00_020e97a0: + .space 0x4 + .global data_ov00_020e97a4 +data_ov00_020e97a4: + .space 0x4 + .global data_ov00_020e97a8 +data_ov00_020e97a8: + .space 0x4 + .global data_ov00_020e97ac +data_ov00_020e97ac: + .space 0x4 + .global data_ov00_020e97b0 +data_ov00_020e97b0: + .space 0x4 + .global data_ov00_020e97b4 +data_ov00_020e97b4: + .space 0x4 + .global data_ov00_020e97b8 +data_ov00_020e97b8: + .space 0x4 + .global data_ov00_020e97bc +data_ov00_020e97bc: + .space 0x4 + .global data_ov00_020e97c0 +data_ov00_020e97c0: + .space 0x4 + .global data_ov00_020e97c4 +data_ov00_020e97c4: + .space 0x4 + .global data_ov00_020e97c8 +data_ov00_020e97c8: + .space 0x4 + .global data_ov00_020e97cc +data_ov00_020e97cc: + .space 0x4 + .global data_ov00_020e97d0 +data_ov00_020e97d0: + .space 0x4 + .global data_ov00_020e97d4 +data_ov00_020e97d4: + .space 0x4 + .global data_ov00_020e97d8 +data_ov00_020e97d8: + .space 0x4 + .global data_ov00_020e97dc +data_ov00_020e97dc: + .space 0x4 + .global data_ov00_020e97e0 +data_ov00_020e97e0: + .space 0x4 + .global data_ov00_020e97e4 +data_ov00_020e97e4: + .space 0x4 + .global data_ov00_020e97e8 +data_ov00_020e97e8: + .space 0x4 + .global data_ov00_020e97ec +data_ov00_020e97ec: + .space 0x4 + .global data_ov00_020e97f0 +data_ov00_020e97f0: + .space 0x4 + .global data_ov00_020e97f4 +data_ov00_020e97f4: + .space 0x4 + .global data_ov00_020e97f8 +data_ov00_020e97f8: + .space 0x4 + .global data_ov00_020e97fc +data_ov00_020e97fc: + .space 0x4 + .global data_ov00_020e9800 +data_ov00_020e9800: + .space 0x4 + .global data_ov00_020e9804 +data_ov00_020e9804: + .space 0x4 + .global data_ov00_020e9808 +data_ov00_020e9808: + .space 0x4 + .global data_ov00_020e980c +data_ov00_020e980c: + .space 0x4 + .global data_ov00_020e9810 +data_ov00_020e9810: + .space 0x4 + .global data_ov00_020e9814 +data_ov00_020e9814: + .space 0x4 + .global data_ov00_020e9818 +data_ov00_020e9818: + .space 0x4 + .global data_ov00_020e981c +data_ov00_020e981c: + .space 0x4 + .global data_ov00_020e9820 +data_ov00_020e9820: + .space 0x4 + .global data_ov00_020e9824 +data_ov00_020e9824: + .space 0x4 + .global data_ov00_020e9828 +data_ov00_020e9828: + .space 0x4 + .global data_ov00_020e982c +data_ov00_020e982c: + .space 0x4 + .global data_ov00_020e9830 +data_ov00_020e9830: + .space 0x4 + .global data_ov00_020e9834 +data_ov00_020e9834: + .space 0x4 + .global data_ov00_020e9838 +data_ov00_020e9838: + .space 0x4 + .global data_ov00_020e983c +data_ov00_020e983c: + .space 0x4 + .global data_ov00_020e9840 +data_ov00_020e9840: + .space 0x4 + .global data_ov00_020e9844 +data_ov00_020e9844: + .space 0x4 + .global data_ov00_020e9848 +data_ov00_020e9848: + .space 0x4 + .global data_ov00_020e984c +data_ov00_020e984c: + .space 0x4 + .global data_ov00_020e9850 +data_ov00_020e9850: + .space 0x4 + .global data_ov00_020e9854 +data_ov00_020e9854: + .space 0x4 + .global data_ov00_020e9858 +data_ov00_020e9858: + .space 0x4 + .global data_ov00_020e985c +data_ov00_020e985c: + .space 0x4 + .global data_ov00_020e9860 +data_ov00_020e9860: + .space 0x4 + .global data_ov00_020e9864 +data_ov00_020e9864: + .space 0x4 + .global data_ov00_020e9868 +data_ov00_020e9868: + .space 0x4 + .global data_ov00_020e986c +data_ov00_020e986c: + .space 0x4 + .global data_ov00_020e9870 +data_ov00_020e9870: + .space 0x4 + .global data_ov00_020e9874 +data_ov00_020e9874: + .space 0x4 + .global data_ov00_020e9878 +data_ov00_020e9878: + .space 0x4 + .global data_ov00_020e987c +data_ov00_020e987c: + .space 0x4 + .global data_ov00_020e9880 +data_ov00_020e9880: + .space 0x4 + .global data_ov00_020e9884 +data_ov00_020e9884: + .space 0x4 + .global data_ov00_020e9888 +data_ov00_020e9888: + .space 0x4 + .global data_ov00_020e988c +data_ov00_020e988c: + .space 0x4 + .global data_ov00_020e9890 +data_ov00_020e9890: + .space 0x4 + .global data_ov00_020e9894 +data_ov00_020e9894: + .space 0x4 + .global data_ov00_020e9898 +data_ov00_020e9898: + .space 0x4 + .global data_ov00_020e989c +data_ov00_020e989c: + .space 0x4 + .global data_ov00_020e98a0 +data_ov00_020e98a0: + .space 0x4 + .global data_ov00_020e98a4 +data_ov00_020e98a4: + .space 0x4 + .global data_ov00_020e98a8 +data_ov00_020e98a8: + .space 0x4 + .global data_ov00_020e98ac +data_ov00_020e98ac: + .space 0x4 + .global data_ov00_020e98b0 +data_ov00_020e98b0: + .space 0x4 + .global data_ov00_020e98b4 +data_ov00_020e98b4: + .space 0x4 + .global data_ov00_020e98b8 +data_ov00_020e98b8: + .space 0x4 + .global data_ov00_020e98bc +data_ov00_020e98bc: + .space 0x4 + .global data_ov00_020e98c0 +data_ov00_020e98c0: + .space 0x4 + .global data_ov00_020e98c4 +data_ov00_020e98c4: + .space 0x4 + .global data_ov00_020e98c8 +data_ov00_020e98c8: + .space 0x4 + .global data_ov00_020e98cc +data_ov00_020e98cc: + .space 0x4 + .global data_ov00_020e98d0 +data_ov00_020e98d0: + .space 0x4 + .global data_ov00_020e98d4 +data_ov00_020e98d4: + .space 0x4 + .global data_ov00_020e98d8 +data_ov00_020e98d8: + .space 0x4 + .global data_ov00_020e98dc +data_ov00_020e98dc: + .space 0x4 + .global data_ov00_020e98e0 +data_ov00_020e98e0: + .space 0x4 + .global data_ov00_020e98e4 +data_ov00_020e98e4: + .space 0x4 + .global data_ov00_020e98e8 +data_ov00_020e98e8: + .space 0x4 + .global data_ov00_020e98ec +data_ov00_020e98ec: + .space 0x4 + .global data_ov00_020e98f0 +data_ov00_020e98f0: + .space 0x4 + .global data_ov00_020e98f4 +data_ov00_020e98f4: + .space 0x4 + .global data_ov00_020e98f8 +data_ov00_020e98f8: + .space 0x4 + .global data_ov00_020e98fc +data_ov00_020e98fc: + .space 0x4 + .global data_ov00_020e9900 +data_ov00_020e9900: + .space 0x4 + .global data_ov00_020e9904 +data_ov00_020e9904: + .space 0x4 + .global data_ov00_020e9908 +data_ov00_020e9908: + .space 0x4 + .global data_ov00_020e990c +data_ov00_020e990c: + .space 0x4 + .global data_ov00_020e9910 +data_ov00_020e9910: + .space 0x4 + .global data_ov00_020e9914 +data_ov00_020e9914: + .space 0x4 + .global data_ov00_020e9918 +data_ov00_020e9918: + .space 0x4 + .global data_ov00_020e991c +data_ov00_020e991c: + .space 0x4 + .global data_ov00_020e9920 +data_ov00_020e9920: + .space 0x4 + .global data_ov00_020e9924 +data_ov00_020e9924: + .space 0x4 + .global data_ov00_020e9928 +data_ov00_020e9928: + .space 0x4 + .global data_ov00_020e992c +data_ov00_020e992c: + .space 0x4 + .global data_ov00_020e9930 +data_ov00_020e9930: + .space 0x4 + .global data_ov00_020e9934 +data_ov00_020e9934: + .space 0x4 + .global data_ov00_020e9938 +data_ov00_020e9938: + .space 0x4 + .global data_ov00_020e993c +data_ov00_020e993c: + .space 0x4 + .global data_ov00_020e9940 +data_ov00_020e9940: + .space 0x4 + .global data_ov00_020e9944 +data_ov00_020e9944: + .space 0x4 + .global data_ov00_020e9948 +data_ov00_020e9948: + .space 0x4 + .global data_ov00_020e994c +data_ov00_020e994c: + .space 0x4 + .global data_ov00_020e9950 +data_ov00_020e9950: + .space 0x4 + .global data_ov00_020e9954 +data_ov00_020e9954: + .space 0x4 + .global data_ov00_020e9958 +data_ov00_020e9958: + .space 0x4 + .global data_ov00_020e995c +data_ov00_020e995c: + .space 0x4 + .global data_ov00_020e9960 +data_ov00_020e9960: + .space 0x4 + .global data_ov00_020e9964 +data_ov00_020e9964: + .space 0x4 + .global data_ov00_020e9968 +data_ov00_020e9968: + .space 0x4 + .global data_ov00_020e996c +data_ov00_020e996c: + .space 0x4 + .global data_ov00_020e9970 +data_ov00_020e9970: + .space 0x4 + .global data_ov00_020e9974 +data_ov00_020e9974: + .space 0x4 + .global data_ov00_020e9978 +data_ov00_020e9978: + .space 0x4 + .global data_ov00_020e997c +data_ov00_020e997c: + .space 0x4 + .global data_ov00_020e9980 +data_ov00_020e9980: + .space 0x4 + .global data_ov00_020e9984 +data_ov00_020e9984: + .space 0x4 + .global data_ov00_020e9988 +data_ov00_020e9988: + .space 0x4 + .global data_ov00_020e998c +data_ov00_020e998c: + .space 0x4 + .global data_ov00_020e9990 +data_ov00_020e9990: + .space 0x4 + .global data_ov00_020e9994 +data_ov00_020e9994: + .space 0x4 + .global data_ov00_020e9998 +data_ov00_020e9998: + .space 0x4 + .global data_ov00_020e999c +data_ov00_020e999c: + .space 0x4 + .global data_ov00_020e99a0 +data_ov00_020e99a0: + .space 0x4 + .global data_ov00_020e99a4 +data_ov00_020e99a4: + .space 0x4 + .global data_ov00_020e99a8 +data_ov00_020e99a8: + .space 0x4 + .global data_ov00_020e99ac +data_ov00_020e99ac: + .space 0x4 + .global data_ov00_020e99b0 +data_ov00_020e99b0: + .space 0x4 + .global data_ov00_020e99b4 +data_ov00_020e99b4: + .space 0x4 + .global data_ov00_020e99b8 +data_ov00_020e99b8: + .space 0x4 + .global data_ov00_020e99bc +data_ov00_020e99bc: + .space 0x4 + .global data_ov00_020e99c0 +data_ov00_020e99c0: + .space 0x4 + .global data_ov00_020e99c4 +data_ov00_020e99c4: + .space 0x4 + .global data_ov00_020e99c8 +data_ov00_020e99c8: + .space 0x4 + .global data_ov00_020e99cc +data_ov00_020e99cc: + .space 0x4 + .global data_ov00_020e99d0 +data_ov00_020e99d0: + .space 0x4 + .global data_ov00_020e99d4 +data_ov00_020e99d4: + .space 0x4 + .global data_ov00_020e99d8 +data_ov00_020e99d8: + .space 0x4 + .global data_ov00_020e99dc +data_ov00_020e99dc: + .space 0x4 + .global data_ov00_020e99e0 +data_ov00_020e99e0: + .space 0x4 + .global data_ov00_020e99e4 +data_ov00_020e99e4: + .space 0x4 + .global data_ov00_020e99e8 +data_ov00_020e99e8: + .space 0x4 + .global data_ov00_020e99ec +data_ov00_020e99ec: + .space 0x4 + .global data_ov00_020e99f0 +data_ov00_020e99f0: + .space 0x4 + .global data_ov00_020e99f4 +data_ov00_020e99f4: + .space 0x4 + .global data_ov00_020e99f8 +data_ov00_020e99f8: + .space 0x4 + .global data_ov00_020e99fc +data_ov00_020e99fc: + .space 0x4 + .global data_ov00_020e9a00 +data_ov00_020e9a00: + .space 0x4 + .global data_ov00_020e9a04 +data_ov00_020e9a04: + .space 0x4 + .global data_ov00_020e9a08 +data_ov00_020e9a08: + .space 0x4 + .global data_ov00_020e9a0c +data_ov00_020e9a0c: + .space 0x4 + .global data_ov00_020e9a10 +data_ov00_020e9a10: + .space 0x4 + .global data_ov00_020e9a14 +data_ov00_020e9a14: + .space 0x4 + .global data_ov00_020e9a18 +data_ov00_020e9a18: + .space 0x4 + .global data_ov00_020e9a1c +data_ov00_020e9a1c: + .space 0x4 + .global data_ov00_020e9a20 +data_ov00_020e9a20: + .space 0x4 + .global data_ov00_020e9a24 +data_ov00_020e9a24: + .space 0x4 + .global data_ov00_020e9a28 +data_ov00_020e9a28: + .space 0x4 + .global data_ov00_020e9a2c +data_ov00_020e9a2c: + .space 0x4 + .global data_ov00_020e9a30 +data_ov00_020e9a30: + .space 0x4 + .global data_ov00_020e9a34 +data_ov00_020e9a34: + .space 0x4 + .global data_ov00_020e9a38 +data_ov00_020e9a38: + .space 0x4 + .global data_ov00_020e9a3c +data_ov00_020e9a3c: + .space 0x4 + .global data_ov00_020e9a40 +data_ov00_020e9a40: + .space 0x4 + .global data_ov00_020e9a44 +data_ov00_020e9a44: + .space 0x4 + .global data_ov00_020e9a48 +data_ov00_020e9a48: + .space 0x4 + .global data_ov00_020e9a4c +data_ov00_020e9a4c: + .space 0x4 + .global data_ov00_020e9a50 +data_ov00_020e9a50: + .space 0x4 + .global data_ov00_020e9a54 +data_ov00_020e9a54: + .space 0x4 + .global data_ov00_020e9a58 +data_ov00_020e9a58: + .space 0x4 + .global data_ov00_020e9a5c +data_ov00_020e9a5c: + .space 0x4 + .global data_ov00_020e9a60 +data_ov00_020e9a60: + .space 0x4 + .global data_ov00_020e9a64 +data_ov00_020e9a64: + .space 0x4 + .global data_ov00_020e9a68 +data_ov00_020e9a68: + .space 0x4 + .global data_ov00_020e9a6c +data_ov00_020e9a6c: + .space 0x4 + .global data_ov00_020e9a70 +data_ov00_020e9a70: + .space 0x4 + .global data_ov00_020e9a74 +data_ov00_020e9a74: + .space 0x4 + .global data_ov00_020e9a78 +data_ov00_020e9a78: + .space 0x4 + .global data_ov00_020e9a7c +data_ov00_020e9a7c: + .space 0x4 + .global data_ov00_020e9a80 +data_ov00_020e9a80: + .space 0x4 + .global data_ov00_020e9a84 +data_ov00_020e9a84: + .space 0x4 + .global data_ov00_020e9a88 +data_ov00_020e9a88: + .space 0x4 + .global data_ov00_020e9a8c +data_ov00_020e9a8c: + .space 0x4 + .global data_ov00_020e9a90 +data_ov00_020e9a90: + .space 0x4 + .global data_ov00_020e9a94 +data_ov00_020e9a94: + .space 0x4 + .global data_ov00_020e9a98 +data_ov00_020e9a98: + .space 0x4 + .global data_ov00_020e9a9c +data_ov00_020e9a9c: + .space 0x4 + .global data_ov00_020e9aa0 +data_ov00_020e9aa0: + .space 0x4 + .global data_ov00_020e9aa4 +data_ov00_020e9aa4: + .space 0x4 + .global data_ov00_020e9aa8 +data_ov00_020e9aa8: + .space 0x4 + .global data_ov00_020e9aac +data_ov00_020e9aac: + .space 0x4 + .global data_ov00_020e9ab0 +data_ov00_020e9ab0: + .space 0x4 + .global data_ov00_020e9ab4 +data_ov00_020e9ab4: + .space 0x4 + .global data_ov00_020e9ab8 +data_ov00_020e9ab8: + .space 0x4 + .global data_ov00_020e9abc +data_ov00_020e9abc: + .space 0x4 + .global data_ov00_020e9ac0 +data_ov00_020e9ac0: + .space 0x4 + .global data_ov00_020e9ac4 +data_ov00_020e9ac4: + .space 0x4 + .global data_ov00_020e9ac8 +data_ov00_020e9ac8: + .space 0x4 + .global data_ov00_020e9acc +data_ov00_020e9acc: + .space 0x4 + .global data_ov00_020e9ad0 +data_ov00_020e9ad0: + .space 0x4 + .global data_ov00_020e9ad4 +data_ov00_020e9ad4: + .space 0x4 + .global data_ov00_020e9ad8 +data_ov00_020e9ad8: + .space 0x4 + .global data_ov00_020e9adc +data_ov00_020e9adc: + .space 0x4 + .global data_ov00_020e9ae0 +data_ov00_020e9ae0: + .space 0x4 + .global data_ov00_020e9ae4 +data_ov00_020e9ae4: + .space 0x4 + .global data_ov00_020e9ae8 +data_ov00_020e9ae8: + .space 0x4 + .global data_ov00_020e9aec +data_ov00_020e9aec: + .space 0x4 + .global data_ov00_020e9af0 +data_ov00_020e9af0: + .space 0x4 + .global data_ov00_020e9af4 +data_ov00_020e9af4: + .space 0x4 + .global data_ov00_020e9af8 +data_ov00_020e9af8: + .space 0x4 + .global data_ov00_020e9afc +data_ov00_020e9afc: + .space 0x4 + .global data_ov00_020e9b00 +data_ov00_020e9b00: + .space 0x4 + .global data_ov00_020e9b04 +data_ov00_020e9b04: + .space 0x4 + .global data_ov00_020e9b08 +data_ov00_020e9b08: + .space 0x4 + .global data_ov00_020e9b0c +data_ov00_020e9b0c: + .space 0x4 + .global data_ov00_020e9b10 +data_ov00_020e9b10: + .space 0x4 + .global data_ov00_020e9b14 +data_ov00_020e9b14: + .space 0x4 + .global data_ov00_020e9b18 +data_ov00_020e9b18: + .space 0x4 + .global data_ov00_020e9b1c +data_ov00_020e9b1c: + .space 0x4 + .global data_ov00_020e9b20 +data_ov00_020e9b20: + .space 0x4 + .global data_ov00_020e9b24 +data_ov00_020e9b24: + .space 0x4 + .global data_ov00_020e9b28 +data_ov00_020e9b28: + .space 0x4 + .global data_ov00_020e9b2c +data_ov00_020e9b2c: + .space 0x4 + .global data_ov00_020e9b30 +data_ov00_020e9b30: + .space 0x4 + .global data_ov00_020e9b34 +data_ov00_020e9b34: + .space 0x4 + .global data_ov00_020e9b38 +data_ov00_020e9b38: + .space 0x4 + .global data_ov00_020e9b3c +data_ov00_020e9b3c: + .space 0x4 + .global data_ov00_020e9b40 +data_ov00_020e9b40: + .space 0x4 + .global data_ov00_020e9b44 +data_ov00_020e9b44: + .space 0x4 + .global data_ov00_020e9b48 +data_ov00_020e9b48: + .space 0x4 + .global data_ov00_020e9b4c +data_ov00_020e9b4c: + .space 0x4 + .global data_ov00_020e9b50 +data_ov00_020e9b50: + .space 0x4 + .global data_ov00_020e9b54 +data_ov00_020e9b54: + .space 0x4 + .global data_ov00_020e9b58 +data_ov00_020e9b58: + .space 0x4 + .global data_ov00_020e9b5c +data_ov00_020e9b5c: + .space 0x4 + .global data_ov00_020e9b60 +data_ov00_020e9b60: + .space 0x4 + .global data_ov00_020e9b64 +data_ov00_020e9b64: + .space 0x4 + .global data_ov00_020e9b68 +data_ov00_020e9b68: + .space 0x4 + .global data_ov00_020e9b6c +data_ov00_020e9b6c: + .space 0x4 + .global data_ov00_020e9b70 +data_ov00_020e9b70: + .space 0x4 + .global data_ov00_020e9b74 +data_ov00_020e9b74: + .space 0x4 + .global data_ov00_020e9b78 +data_ov00_020e9b78: + .space 0x4 + .global data_ov00_020e9b7c +data_ov00_020e9b7c: + .space 0x4 + .global data_ov00_020e9b80 +data_ov00_020e9b80: + .space 0x4 + .global data_ov00_020e9b84 +data_ov00_020e9b84: + .space 0x4 + .global data_ov00_020e9b88 +data_ov00_020e9b88: + .space 0x4 + .global data_ov00_020e9b8c +data_ov00_020e9b8c: + .space 0x4 + .global data_ov00_020e9b90 +data_ov00_020e9b90: + .space 0x4 + .global data_ov00_020e9b94 +data_ov00_020e9b94: + .space 0x4 + .global data_ov00_020e9b98 +data_ov00_020e9b98: + .space 0x4 + .global data_ov00_020e9b9c +data_ov00_020e9b9c: + .space 0x4 + .global data_ov00_020e9ba0 +data_ov00_020e9ba0: + .space 0x4 + .global data_ov00_020e9ba4 +data_ov00_020e9ba4: + .space 0x4 + .global data_ov00_020e9ba8 +data_ov00_020e9ba8: + .space 0x4 + .global data_ov00_020e9bac +data_ov00_020e9bac: + .space 0x4 + .global data_ov00_020e9bb0 +data_ov00_020e9bb0: + .space 0x4 + .global data_ov00_020e9bb4 +data_ov00_020e9bb4: + .space 0x4 + .global data_ov00_020e9bb8 +data_ov00_020e9bb8: + .space 0x4 + .global data_ov00_020e9bbc +data_ov00_020e9bbc: + .space 0x4 + .global data_ov00_020e9bc0 +data_ov00_020e9bc0: + .space 0x4 + .global data_ov00_020e9bc4 +data_ov00_020e9bc4: + .space 0x4 + .global data_ov00_020e9bc8 +data_ov00_020e9bc8: + .space 0x4 + .global data_ov00_020e9bcc +data_ov00_020e9bcc: + .space 0x4 + .global data_ov00_020e9bd0 +data_ov00_020e9bd0: + .space 0x4 + .global data_ov00_020e9bd4 +data_ov00_020e9bd4: + .space 0x4 + .global data_ov00_020e9bd8 +data_ov00_020e9bd8: + .space 0x4 + .global data_ov00_020e9bdc +data_ov00_020e9bdc: + .space 0x4 + .global data_ov00_020e9be0 +data_ov00_020e9be0: + .space 0x4 + .global data_ov00_020e9be4 +data_ov00_020e9be4: + .space 0x4 + .global data_ov00_020e9be8 +data_ov00_020e9be8: + .space 0x4 + .global data_ov00_020e9bec +data_ov00_020e9bec: + .space 0x4 + .global data_ov00_020e9bf0 +data_ov00_020e9bf0: + .space 0x4 + .global data_ov00_020e9bf4 +data_ov00_020e9bf4: + .space 0x4 + .global data_ov00_020e9bf8 +data_ov00_020e9bf8: + .space 0x4 + .global data_ov00_020e9bfc +data_ov00_020e9bfc: + .space 0x4 + .global data_ov00_020e9c00 +data_ov00_020e9c00: + .space 0x4 + .global data_ov00_020e9c04 +data_ov00_020e9c04: + .space 0x4 + .global data_ov00_020e9c08 +data_ov00_020e9c08: + .space 0x4 + .global data_ov00_020e9c0c +data_ov00_020e9c0c: + .space 0x4 + .global data_ov00_020e9c10 +data_ov00_020e9c10: + .space 0x4 + .global data_ov00_020e9c14 +data_ov00_020e9c14: + .space 0x4 + .global data_ov00_020e9c18 +data_ov00_020e9c18: + .space 0x4 + .global data_ov00_020e9c1c +data_ov00_020e9c1c: + .space 0x4 + .global data_ov00_020e9c20 +data_ov00_020e9c20: + .space 0x4 + .global data_ov00_020e9c24 +data_ov00_020e9c24: + .space 0x4 + .global data_ov00_020e9c28 +data_ov00_020e9c28: + .space 0x4 + .global data_ov00_020e9c2c +data_ov00_020e9c2c: + .space 0x4 + .global data_ov00_020e9c30 +data_ov00_020e9c30: + .space 0x4 + .global data_ov00_020e9c34 +data_ov00_020e9c34: + .space 0x4 + .global data_ov00_020e9c38 +data_ov00_020e9c38: + .space 0x4 + .global data_ov00_020e9c3c +data_ov00_020e9c3c: + .space 0x4 + .global data_ov00_020e9c40 +data_ov00_020e9c40: + .space 0x4 + .global data_ov00_020e9c44 +data_ov00_020e9c44: + .space 0x4 + .global data_ov00_020e9c48 +data_ov00_020e9c48: + .space 0x4 + .global data_ov00_020e9c4c +data_ov00_020e9c4c: + .space 0x4 + .global data_ov00_020e9c50 +data_ov00_020e9c50: + .space 0x4 + .global data_ov00_020e9c54 +data_ov00_020e9c54: + .space 0x4 + .global data_ov00_020e9c58 +data_ov00_020e9c58: + .space 0x4 + .global data_ov00_020e9c5c +data_ov00_020e9c5c: + .space 0x4 + .global data_ov00_020e9c60 +data_ov00_020e9c60: + .space 0x4 + .global data_ov00_020e9c64 +data_ov00_020e9c64: + .space 0x4 + .global data_ov00_020e9c68 +data_ov00_020e9c68: + .space 0x4 + .global data_ov00_020e9c6c +data_ov00_020e9c6c: + .space 0x4 diff --git a/asm/ov00/ov00_0207afa0.inc b/asm/ov00/ov00_0207afa0.inc new file mode 100644 index 00000000..f9df5e62 --- /dev/null +++ b/asm/ov00/ov00_0207afa0.inc @@ -0,0 +1,113 @@ +#pragma once +.extern Divide +.extern _ZN10MapManager18func_ov00_02082d08Ev +.extern _ZN10MapManager18func_ov00_02083318Ei +.extern _ZN10MapManager18func_ov00_02083328Ev +.extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j +.extern _ZN12ActorManager8GetActorEP8ActorRef +.extern _ZN14OverlayManager15LoadIfNotLoadedEjj +.extern _ZN9SysObjectdlEPv +.extern _ZN9SysObjectnwEmPjj +.extern _ZNK11ItemManager7HasItemEi +.extern __register_global_object +.extern data_02056be4 +.extern data_020691a0 +.extern data_027e037c +.extern data_027e0384 +.extern data_027e03c8 +.extern data_027e0618 +.extern data_027e071c +.extern data_027e077c +.extern data_027e0c54 +.extern data_027e0cbc +.extern data_027e0ce0 +.extern data_027e0d38 +.extern data_027e0d54 +.extern data_027e0db0 +.extern data_027e0db4 +.extern data_027e0db8 +.extern data_027e0dbc +.extern data_027e0de4 +.extern data_027e0de8 +.extern data_027e0e08 +.extern data_027e0e28 +.extern data_027e0e2c +.extern data_027e0e58 +.extern data_027e0e5c +.extern data_027e0f64 +.extern data_027e0f7c +.extern data_027e0f94 +.extern data_027e0fac +.extern data_027e0fcc +.extern data_027e0fe4 +.extern data_027e103c +.extern data_ov09_0211f5dc +.extern func_01ff892c +.extern func_01ff9b4c +.extern func_01ff9ec0 +.extern func_01ffa8d4 +.extern func_01ffe468 +.extern func_02004730 +.extern func_020047d8 +.extern func_02004a3c +.extern func_02004a50 +.extern func_02004dac +.extern func_020052e4 +.extern func_02005628 +.extern func_02005b58 +.extern func_02006060 +.extern func_02006b14 +.extern func_02006b2c +.extern func_02006b90 +.extern func_020078c0 +.extern func_020078d8 +.extern func_02007938 +.extern func_02007984 +.extern func_02007ad8 +.extern func_0200be04 +.extern func_0200e2c0 +.extern func_02012830 +.extern func_020128bc +.extern func_02012934 +.extern func_02023b3c +.extern func_02024130 +.extern func_0202ab78 +.extern func_0202abdc +.extern func_0202c69c +.extern func_0202d56c +.extern func_0202d77c +.extern func_02040464 +.extern func_02042b40 +.extern func_02042bfc +.extern func_0204f754 +.extern func_ov00_02078b40 +.extern func_ov00_02078b88 +.extern func_ov00_02079e04 +.extern func_ov00_0209d738 +.extern func_ov00_0209d778 +.extern func_ov00_020a5e9c +.extern func_ov00_020b7e6c +.extern func_ov00_020cf13c +.extern func_ov00_020df38c +.extern func_ov03_020f3974 +.extern func_ov03_020f3c28 +.extern func_ov03_020fa874 +.extern func_ov04_02100eb0 +.extern func_ov04_02101188 +.extern func_ov05_02100e0c +.extern func_ov05_02101080 +.extern func_ov05_021010b0 +.extern func_ov05_021010ec +.extern func_ov08_021136fc +.extern func_ov08_02113730 +.extern func_ov08_02113aa8 +.extern func_ov09_02114810 +.extern func_ov12_02133c40 +.extern func_ov17_0215cef4 +.extern func_ov18_0215cb28 +.extern func_ov18_0215df1c +.extern func_ov26_02173b7c +.extern func_ov40_02183dac +.extern gItemManager +.extern gMapManager +.extern gOverlayManager diff --git a/asm/ov00/ov00_0207afa0.s b/asm/ov00/ov00_0207afa0.s new file mode 100644 index 00000000..8a8c3b32 --- /dev/null +++ b/asm/ov00/ov00_0207afa0.s @@ -0,0 +1,6130 @@ + .include "macros/function.inc" + .include "ov00/ov00_0207afa0.inc" + + .text + + .global func_ov00_0207afa0 + thumb_func_start func_ov00_0207afa0 +func_ov00_0207afa0: ; 0x0207afa0 + ldr r0, _0207afbc ; =data_027e0618 + ldr r0, [r0] + cmp r0, #2 + beq _0207afb8 + ldr r2, _0207afc0 ; =0x04001008 + mov r0, #0x43 + ldrh r1, [r2] + and r1, r0 + mov r0, #6 + lsl r0, r0, #0xa + orr r0, r1 + strh r0, [r2] +_0207afb8: + bx lr + nop + thumb_func_end func_ov00_0207afa0 +_0207afbc: .word data_027e0618 +_0207afc0: .word 0x04001008 + + .global func_ov00_0207afc4 + thumb_func_start func_ov00_0207afc4 +func_ov00_0207afc4: ; 0x0207afc4 + ldr r0, _0207afec ; =data_027e0618 + ldr r2, _0207aff0 ; =0x0400100a + ldr r0, [r0] + cmp r0, #2 + bne _0207afde + ldrh r1, [r2] + mov r0, #0x43 + and r1, r0 + mov r0, #0xf + lsl r0, r0, #8 + orr r0, r1 + strh r0, [r2] + bx lr +_0207afde: + ldrh r1, [r2] + mov r0, #0x43 + and r1, r0 + ldr r0, _0207aff4 ; =0x00001904 + orr r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 + thumb_func_end func_ov00_0207afc4 +_0207afec: .word data_027e0618 +_0207aff0: .word 0x0400100a +_0207aff4: .word 0x00001904 + + .global func_ov00_0207aff8 + thumb_func_start func_ov00_0207aff8 +func_ov00_0207aff8: ; 0x0207aff8 + ldr r0, _0207b020 ; =data_027e0618 + ldr r2, _0207b024 ; =0x0400100c + ldr r0, [r0] + cmp r0, #2 + bne _0207b010 + ldrh r1, [r2] + mov r0, #0x43 + and r1, r0 + ldr r0, _0207b028 ; =0x00004f08 + orr r0, r1 + strh r0, [r2] + bx lr +_0207b010: + ldrh r1, [r2] + mov r0, #0x43 + and r1, r0 + ldr r0, _0207b02c ; =0x0000190c + orr r0, r1 + strh r0, [r2] + bx lr + nop + thumb_func_end func_ov00_0207aff8 +_0207b020: .word data_027e0618 +_0207b024: .word 0x0400100c +_0207b028: .word 0x00004f08 +_0207b02c: .word 0x0000190c + + .global func_ov00_0207b030 + thumb_func_start func_ov00_0207b030 +func_ov00_0207b030: ; 0x0207b030 + push {r4, lr} + ldr r1, _0207b084 ; =data_027e0618 + ldr r1, [r1] + cmp r1, #2 + bne _0207b074 + cmp r0, #0 + beq _0207b04e + ldr r2, _0207b088 ; =0x0400100e + mov r0, #0x43 + ldrh r1, [r2] + and r1, r0 + ldr r0, _0207b08c ; =0x00004084 + orr r0, r1 + strh r0, [r2] + pop {r4, pc} +_0207b04e: + ldr r0, _0207b090 ; =data_027e0d38 + mov r4, #0 + ldr r0, [r0] + add r0, #0xc + blx func_ov00_020a5e9c + cmp r0, #0x32 + bne _0207b060 + mov r4, #1 +_0207b060: + ldr r2, _0207b088 ; =0x0400100e + mov r0, #0x43 + ldrh r1, [r2] + lsl r3, r4, #0xd + and r1, r0 + ldr r0, _0207b094 ; =0x00004e14 + orr r0, r1 + orr r0, r3 + strh r0, [r2] + pop {r4, pc} +_0207b074: + ldr r2, _0207b088 ; =0x0400100e + mov r0, #0x43 + ldrh r1, [r2] + and r1, r0 + ldr r0, _0207b098 ; =0x00005a14 + orr r0, r1 + strh r0, [r2] + pop {r4, pc} + .align 2, 0 + thumb_func_end func_ov00_0207b030 +_0207b084: .word data_027e0618 +_0207b088: .word 0x0400100e +_0207b08c: .word 0x00004084 +_0207b090: .word data_027e0d38 +_0207b094: .word 0x00004e14 +_0207b098: .word 0x00005a14 + + .global func_ov00_0207b09c + thumb_func_start func_ov00_0207b09c +func_ov00_0207b09c: ; 0x0207b09c + push {r3, r4, lr} + sub sp, #0x1c + add r0, sp, #8 + blx func_02024130 + mov r2, #0x33 + mov r3, #0 + ldr r0, _0207b108 ; =data_ov00_020e2044 + ldr r1, _0207b10c ; =data_020691a0 + lsl r2, r2, #0xa + str r3, [sp] + bl func_0202d56c + add r1, sp, #4 + bl func_02023b3c + ldr r2, [sp, #4] + mov r0, #3 + ldr r1, [r2, #8] + add r4, r1, #3 + bic r4, r0 + ldr r0, [r2, #0xc] + add r1, r4, #0 + blx func_0200e2c0 + ldr r2, [sp, #4] + mov r1, #0 + ldr r0, [r2, #0xc] + ldr r2, [r2, #8] + blx func_02006060 + ldr r0, _0207b110 ; =data_027e0618 + ldr r0, [r0] + cmp r0, #2 + bne _0207b104 + blx func_02004dac + mov r1, #6 + lsl r1, r1, #0xc + cmp r0, r1 + blo _0207b104 + blx func_02006b14 + ldr r0, [sp, #4] + mov r1, #1 + ldr r0, [r0, #0xc] + lsl r1, r1, #0xe + add r2, r4, #0 + blx func_02006b2c + blx func_02006b90 +_0207b104: + add sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end func_ov00_0207b09c +_0207b108: .word data_ov00_020e2044 +_0207b10c: .word data_020691a0 +_0207b110: .word data_027e0618 + + .global func_ov00_0207b114 + thumb_func_start func_ov00_0207b114 +func_ov00_0207b114: ; 0x0207b114 + push {r3, lr} + mov r0, #4 + str r0, [sp] + ldr r0, _0207b128 ; =0x04000050 + mov r1, #0 + mov r2, #0x31 + mov r3, #0xc + blx func_020052e4 + pop {r3, pc} + .align 2, 0 + thumb_func_end func_ov00_0207b114 +_0207b128: .word 0x04000050 + + .global func_ov00_0207b12c + thumb_func_start func_ov00_0207b12c +func_ov00_0207b12c: ; 0x0207b12c + push {r3, lr} + mov r0, #4 + str r0, [sp] + ldr r0, _0207b140 ; =0x04001050 + mov r1, #0 + mov r2, #0x3f + mov r3, #0xc + blx func_020052e4 + pop {r3, pc} + .align 2, 0 + thumb_func_end func_ov00_0207b12c +_0207b140: .word 0x04001050 + + .global func_ov00_0207b144 + thumb_func_start func_ov00_0207b144 +func_ov00_0207b144: ; 0x0207b144 + push {r3, lr} + ldr r1, _0207b1d4 ; =data_027e0618 + ldr r1, [r1] + cmp r1, #2 + bne _0207b1c0 + cmp r0, #0 + beq _0207b164 + ldr r2, _0207b1d8 ; =0x04001000 + ldr r0, _0207b1dc ; =0xffffe0ff + ldr r1, [r2] + and r1, r0 + mov r0, #6 + lsl r0, r0, #0xa + orr r0, r1 + str r0, [r2] + pop {r3, pc} +_0207b164: + ldr r0, _0207b1e0 ; =data_027e0d38 + ldr r0, [r0] + blx func_ov00_02078b88 + cmp r0, #0 + ldr r2, _0207b1d8 ; =0x04001000 + beq _0207b198 + ldr r0, _0207b1e0 ; =data_027e0d38 + ldr r0, [r0] + ldr r0, [r0, #0x18] + cmp r0, #0x14 + ldr r0, _0207b1dc ; =0xffffe0ff + bne _0207b18c + ldr r1, [r2] + and r1, r0 + mov r0, #0x12 + lsl r0, r0, #8 + orr r0, r1 + str r0, [r2] + pop {r3, pc} +_0207b18c: + ldr r1, [r2] + and r1, r0 + lsr r0, r2, #0xe + orr r0, r1 + str r0, [r2] + pop {r3, pc} +_0207b198: + ldr r0, _0207b1e0 ; =data_027e0d38 + ldr r0, [r0] + ldr r0, [r0, #0x14] + cmp r0, #1 + ldr r0, _0207b1dc ; =0xffffe0ff + bne _0207b1b2 + ldr r1, [r2] + and r1, r0 + mov r0, #7 + lsl r0, r0, #0xa + orr r0, r1 + str r0, [r2] + pop {r3, pc} +_0207b1b2: + ldr r1, [r2] + and r1, r0 + mov r0, #0x1e + lsl r0, r0, #8 + orr r0, r1 + str r0, [r2] + pop {r3, pc} +_0207b1c0: + ldr r2, _0207b1d8 ; =0x04001000 + ldr r0, _0207b1dc ; =0xffffe0ff + ldr r1, [r2] + and r1, r0 + mov r0, #0x1f + lsl r0, r0, #8 + orr r0, r1 + str r0, [r2] + pop {r3, pc} + nop + thumb_func_end func_ov00_0207b144 +_0207b1d4: .word data_027e0618 +_0207b1d8: .word 0x04001000 +_0207b1dc: .word 0xffffe0ff +_0207b1e0: .word data_027e0d38 + + .global func_ov00_0207b1e4 + thumb_func_start func_ov00_0207b1e4 +func_ov00_0207b1e4: ; 0x0207b1e4 + push {r3, lr} + blx func_02004a3c + blx func_02004a50 + mov r0, #4 + blx func_02004730 + mov r0, #8 + blx func_020047d8 + pop {r3, pc} + thumb_func_end func_ov00_0207b1e4 + + .global func_ov00_0207b1fc + thumb_func_start func_ov00_0207b1fc +func_ov00_0207b1fc: ; 0x0207b1fc + push {r4, lr} + ldr r0, _0207b264 ; =data_027e0c54 + ldrb r4, [r0] + bl func_ov00_0207afa0 + bl func_ov00_0207afc4 + bl func_ov00_0207b114 + bl func_ov00_0207b12c + add r0, r4, #0 + bl func_ov00_0207b144 + ldr r1, _0207b268 ; =0x04000008 + mov r2, #3 + ldrh r3, [r1] + mov r0, #3 + bic r3, r2 + orr r3, r0 + strh r3, [r1] + ldr r1, _0207b26c ; =0x04001008 + ldrh r3, [r1] + bic r3, r2 + orr r0, r3 + strh r0, [r1] + ldrh r3, [r1, #2] + mov r0, #2 + bic r3, r2 + orr r3, r0 + strh r3, [r1, #2] + ldrh r3, [r1, #4] + bic r3, r2 + orr r0, r3 + strh r0, [r1, #4] + mov r0, #0 + str r0, [r1, #8] + str r0, [r1, #0xc] + blx func_02005b58 + bl func_ov00_0207b09c + ldr r0, _0207b270 ; =data_027e0618 + bl func_0202c69c + ldr r0, _0207b274 ; =data_027e103c + mov r1, #0 + ldr r0, [r0] + blx func_ov00_020cf13c + pop {r4, pc} + nop + thumb_func_end func_ov00_0207b1fc +_0207b264: .word data_027e0c54 +_0207b268: .word 0x04000008 +_0207b26c: .word 0x04001008 +_0207b270: .word data_027e0618 +_0207b274: .word data_027e103c + + .global func_ov00_0207b278 + thumb_func_start func_ov00_0207b278 +func_ov00_0207b278: ; 0x0207b278 + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + strb r1, [r0, #2] + strb r1, [r0, #3] + str r1, [r0, #4] + str r1, [r0, #8] + bx lr + thumb_func_end func_ov00_0207b278 + + .global func_ov00_0207b288 + thumb_func_start func_ov00_0207b288 +func_ov00_0207b288: ; 0x0207b288 + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + bl func_ov00_0207b278 + cmp r5, #2 + bne _0207b29a + mov r0, #1 + strb r0, [r4] +_0207b29a: + ldrb r0, [r4] + cmp r0, #0 + beq _0207b2be + ldr r0, _0207b2c0 ; =0x04000048 + mov r2, #0x3f + ldrh r3, [r0] + mov r1, #0x1f + bic r3, r2 + orr r1, r3 + mov r3, #0x20 + orr r1, r3 + strh r1, [r0] + ldrh r4, [r0, #2] + mov r1, #0x10 + bic r4, r2 + orr r1, r4 + orr r1, r3 + strh r1, [r0, #2] +_0207b2be: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end func_ov00_0207b288 +_0207b2c0: .word 0x04000048 + + .global func_ov00_0207b2c4 + thumb_func_start func_ov00_0207b2c4 +func_ov00_0207b2c4: ; 0x0207b2c4 + ldr r2, [r0, #8] + cmp r1, #0 + beq _0207b2dc + ldr r1, _0207b2ec ; =data_027e0c54 + ldrb r1, [r1] + cmp r1, #0 + beq _0207b2dc + mov r1, #1 + strb r1, [r0, #1] + mov r1, #0xc0 + str r1, [r0, #8] + b _0207b2e4 +_0207b2dc: + mov r1, #0 + strb r1, [r0, #1] + mov r1, #0x60 + str r1, [r0, #8] +_0207b2e4: + mov r1, #0 + strb r1, [r0, #2] + add r0, r2, #0 + bx lr + .align 2, 0 + thumb_func_end func_ov00_0207b2c4 +_0207b2ec: .word data_027e0c54 + + .global func_ov00_0207b2f0 + thumb_func_start func_ov00_0207b2f0 +func_ov00_0207b2f0: ; 0x0207b2f0 + push {r3, r4} + ldrb r4, [r0] + cmp r4, #0 + bne _0207b2fe + mov r0, #0 + pop {r3, r4} + bx lr +_0207b2fe: + strb r2, [r0, #1] + strb r3, [r0, #2] + mov r4, #0 + ldr r2, _0207b330 ; =data_027e0e2c + strb r4, [r0, #3] + ldr r3, [r2, #4] + sub r2, r4, #1 + cmp r3, r2 + beq _0207b31c + strb r4, [r0, #2] + mov r1, #1 + strb r1, [r0, #3] + add r0, r1, #0 + pop {r3, r4} + bx lr +_0207b31c: + mov r2, #0x15 + str r2, [r0, #8] + cmp r1, #0 + beq _0207b328 + ldr r1, [r0, #8] + str r1, [r0, #4] +_0207b328: + mov r0, #1 + pop {r3, r4} + bx lr + nop + thumb_func_end func_ov00_0207b2f0 +_0207b330: .word data_027e0e2c + + .global func_ov00_0207b334 + thumb_func_start func_ov00_0207b334 +func_ov00_0207b334: ; 0x0207b334 + mov r2, #0 + strb r2, [r0, #3] + ldr r2, [r0, #4] + cmp r2, #0 + bne _0207b348 + ldr r2, [r0, #8] + cmp r2, #0 + bne _0207b348 + mov r0, #1 + bx lr +_0207b348: + ldrb r2, [r0] + cmp r2, #0 + bne _0207b352 + mov r0, #0 + bx lr +_0207b352: + ldr r2, _0207b374 ; =data_027e0e2c + ldr r3, [r2, #4] + mov r2, #0 + mvn r2, r2 + cmp r3, r2 + beq _0207b362 + mov r0, #0 + bx lr +_0207b362: + mov r2, #0 + str r2, [r0, #8] + cmp r1, #0 + beq _0207b36e + ldr r1, [r0, #8] + str r1, [r0, #4] +_0207b36e: + mov r0, #1 + bx lr + nop + thumb_func_end func_ov00_0207b334 +_0207b374: .word data_027e0e2c + + .global func_ov00_0207b378 + arm_func_start func_ov00_0207b378 +func_ov00_0207b378: ; 0x0207b378 + stmdb sp!, {r4, lr} + mov r4, r0 + cmp r1, #0 + ldmneia sp!, {r4, pc} + ldrb r0, [r4] + cmp r0, #0 + ldmeqia sp!, {r4, pc} + bl func_ov00_02079e04 + cmp r0, #0 + ldmneia sp!, {r4, pc} + ldr r1, _0207b438 ; =data_027e0e2c + mvn r0, #0 + ldr r1, [r1, #4] + cmp r1, r0 + ldmneia sp!, {r4, pc} + ldrb r0, [r4, #3] + cmp r0, #0 + beq _0207b3e8 + ldr r0, [r4, #4] + cmp r0, #0 + bgt _0207b3e8 + ldrb r2, [r4, #1] + ldrb r3, [r4, #2] + mov r0, r4 + mov r1, #1 + blx func_ov00_0207b2f0 + mov r0, #0 + strb r0, [r4, #3] +_0207b3e8: + ldr r0, [r4, #8] + ldr r1, [r4, #4] + cmp r1, r0 + bge _0207b41c + ldrb r0, [r4, #2] + cmp r0, #0 + addne r0, r1, #1 + addeq r0, r1, #7 + str r0, [r4, #4] + ldmib r4, {r0, r1} + cmp r0, r1 + strgt r1, [r4, #4] + ldmia sp!, {r4, pc} +_0207b41c: + ldmleia sp!, {r4, pc} + sub r1, r1, #0x13 + str r1, [r4, #4] + ldr r0, [r4, #8] + cmp r1, r0 + strlt r0, [r4, #4] + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end func_ov00_0207b378 +_0207b438: .word data_027e0e2c + + .global func_ov00_0207b43c + arm_func_start func_ov00_0207b43c +func_ov00_0207b43c: ; 0x0207b43c + stmdb sp!, {r4, lr} + mov r4, r0 + ldrb r0, [r4] + cmp r0, #0 + ldmeqia sp!, {r4, pc} + ldr r0, [r4, #4] + cmp r0, #0 + ble _0207b50c + bl func_ov00_02079e04 + cmp r0, #0 + bne _0207b50c + mov r0, #0x4000000 + ldr r1, [r0] + bic r1, r1, #0xe000 + orr r1, r1, #0x2000 + str r1, [r0] + ldrb r1, [r4, #1] + cmp r1, #0 + ldrne r1, _0207b520 ; =data_027e0c54 + ldrneb r1, [r1] + cmpne r1, #0 + beq _0207b4e0 + ldr r1, _0207b524 ; =data_027e0618 + ldr r1, [r1, #0xf4] + tst r1, #1 + beq _0207b4c4 + ldr r1, [r4, #4] + ldr r2, _0207b528 ; =0x000001ff + mov r1, r1, lsl #0x8 + and r1, r1, #0xff00 + strh r2, [r0, #0x40] + orr r1, r1, #0xc0 + strh r1, [r0, #0x44] + ldmia sp!, {r4, pc} +_0207b4c4: + ldr r2, [r4, #4] + ldr r1, _0207b528 ; =0x000001ff + rsb r2, r2, #0xc0 + strh r1, [r0, #0x40] + and r1, r2, #0xff + strh r1, [r0, #0x44] + ldmia sp!, {r4, pc} +_0207b4e0: + ldr r0, [r4, #4] + ldr r3, _0207b528 ; =0x000001ff + mov r1, r0, lsl #0x8 + rsb r0, r0, #0xc0 + ldr r2, _0207b52c ; =0x04000040 + and r1, r1, #0xff00 + and r0, r0, #0xff + strh r3, [r2] + orr r0, r1, r0 + strh r0, [r2, #4] + ldmia sp!, {r4, pc} +_0207b50c: + mov r1, #0x4000000 + ldr r0, [r1] + bic r0, r0, #0xe000 + str r0, [r1] + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end func_ov00_0207b43c +_0207b520: .word data_027e0c54 +_0207b524: .word data_027e0618 +_0207b528: .word 0x000001ff +_0207b52c: .word 0x04000040 + + .global func_ov00_0207b530 + thumb_func_start func_ov00_0207b530 +func_ov00_0207b530: ; 0x0207b530 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0207b550 ; =gOverlayManager + ldr r2, _0207b554 ; =0x00000004 + mov r1, #2 + bl _ZN14OverlayManager15LoadIfNotLoadedEjj + add r0, r4, #0 + bl func_ov04_02101188 + ldr r0, _0207b550 ; =gOverlayManager + ldr r2, _0207b558 ; =0x00000005 + mov r1, #2 + bl _ZN14OverlayManager15LoadIfNotLoadedEjj + pop {r4, pc} + .align 2, 0 + thumb_func_end func_ov00_0207b530 +_0207b550: .word gOverlayManager +_0207b554: .word 0x00000004 +_0207b558: .word 0x00000005 + + .global func_ov00_0207b55c + thumb_func_start func_ov00_0207b55c +func_ov00_0207b55c: ; 0x0207b55c + push {r4, lr} + add r4, r0, #0 + mov r3, #1 + add r0, #0x34 + strb r3, [r0] + ldr r0, [r1] + str r0, [r4, #4] + ldr r0, [r1, #4] + str r0, [r4, #8] + ldr r0, [r1, #8] + str r0, [r4, #0xc] + ldr r0, [r1, #0xc] + str r0, [r4, #0x10] + mov r0, #0x10 + ldrsh r0, [r1, r0] + cmp r2, #0 + strh r0, [r4, #0x14] + ldrb r0, [r1, #0x12] + strb r0, [r4, #0x16] + ldrb r0, [r1, #0x13] + strb r0, [r4, #0x17] + ldrb r0, [r1, #0x14] + strb r0, [r4, #0x18] + ldrb r0, [r1, #0x15] + strb r0, [r4, #0x19] + beq _0207b59a + add r4, #0xac + ldr r0, [r4] + bl func_ov04_02100eb0 + pop {r4, pc} +_0207b59a: + add r0, r4, #0 + add r0, #0xac + ldr r0, [r0] + add r2, r0, #0 + add r2, #0x28 + ldrb r2, [r2] + cmp r2, #0 + beq _0207b5b6 + blx func_ov40_02183dac + add r0, r4, #0 + bl func_ov00_0207b530 + pop {r4, pc} +_0207b5b6: + blx func_ov05_02100e0c + pop {r4, pc} + thumb_func_end func_ov00_0207b55c + + .global func_ov00_0207b5bc + thumb_func_start func_ov00_0207b5bc +func_ov00_0207b5bc: ; 0x0207b5bc + push {r4, r5, r6, lr} + sub sp, #0x20 + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + str r0, [sp, #8] + ldr r0, [r4, #4] + str r0, [sp, #0xc] + ldr r1, [r4, #8] + str r1, [sp, #0x10] + ldr r1, [r4, #0xc] + str r1, [sp, #0x14] + mov r1, #0x10 + ldrsh r3, [r4, r1] + add r1, sp, #0 + cmp r0, #1 + strh r3, [r1, #0x18] + ldrb r3, [r4, #0x12] + strb r3, [r1, #0x1a] + ldrb r3, [r4, #0x13] + strb r3, [r1, #0x1b] + ldrb r3, [r4, #0x14] + strb r3, [r1, #0x1c] + ldrb r3, [r4, #0x15] + strb r3, [r1, #0x1d] + beq _0207b5fa + cmp r0, #0xe + beq _0207b62c + cmp r0, #0xf + beq _0207b66a + b _0207b688 +_0207b5fa: + cmp r2, #0 + beq _0207b6cc + ldr r1, _0207b800 ; =data_027e0fe4 + ldr r2, _0207b804 ; =0x414e4353 + ldr r1, [r1] + add r0, sp, #0 + blx _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j + mov r0, #0 + ldr r1, [sp] + mvn r0, r0 + cmp r1, r0 + beq _0207b6cc + ldr r0, _0207b800 ; =data_027e0fe4 + add r1, sp, #0 + ldr r0, [r0] + blx _ZN12ActorManager8GetActorEP8ActorRef + cmp r0, #0 + beq _0207b6cc + add r1, sp, #8 + blx func_ov18_0215df1c + add sp, #0x20 + pop {r4, r5, r6, pc} +_0207b62c: + ldr r0, [r5] + blx func_ov00_020a5e9c + str r0, [r5, #0x44] + ldr r0, _0207b808 ; =gMapManager + ldr r0, [r0] + blx _ZN10MapManager18func_ov00_02082d08Ev + add r1, r5, #0 + add r1, #0x56 + strb r0, [r1] + ldr r0, _0207b80c ; =data_027e0f94 + ldr r1, [r0] + str r1, [r5, #0x5c] + ldr r1, [r0, #4] + str r1, [r5, #0x60] + ldr r0, [r0, #8] + ldr r1, _0207b810 ; =data_027e0fac + str r0, [r5, #0x64] + mov r0, #0 + ldrsh r1, [r1, r0] + add r0, r5, #0 + add r0, #0x68 + strh r1, [r0] + add r0, r5, #0 + mov r1, #0xfa + add r0, #0x6a + strb r1, [r0] + mov r0, #0xfc + str r0, [r5, #0x6c] + b _0207b6cc +_0207b66a: + add r0, r5, #0 + add r0, #0x44 + blx func_ov00_020a5e9c + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x56 + ldrb r1, [r0] + add r0, sp, #0 + strb r1, [r0, #0x1a] + mov r1, #0xfa + strb r1, [r0, #0x1b] + mov r0, #0xf + str r0, [sp, #0xc] + b _0207b6cc +_0207b688: + ldr r0, [r5] + blx func_ov00_020a5e9c + cmp r0, #0x26 + bne _0207b6cc + ldr r0, _0207b814 ; =data_027e0f7c + ldr r6, [r0] + add r0, r4, #0 + blx func_ov00_020a5e9c + add r1, r0, #0 + add r0, r6, #0 + blx func_ov00_0209d738 + cmp r0, #3 + bne _0207b6cc + ldr r0, _0207b818 ; =gItemManager + mov r1, #0x20 + ldr r0, [r0] + blx _ZNK11ItemManager7HasItemEi + cmp r0, #0 + beq _0207b6cc + ldrb r0, [r4, #0x12] + cmp r0, #0 + beq _0207b6c0 + cmp r0, #9 + bne _0207b6cc +_0207b6c0: + ldr r0, _0207b81c ; =data_ov09_0211f5dc + add r1, r4, #0 + bl func_ov26_02173b7c + add sp, #0x20 + pop {r4, r5, r6, pc} +_0207b6cc: + add r0, r4, #0 + blx func_ov00_020a5e9c + cmp r0, #0 + bne _0207b740 + ldr r0, _0207b814 ; =data_027e0f7c + ldr r6, [r0] + ldr r0, [r5] + blx func_ov00_020a5e9c + add r1, r0, #0 + add r0, r6, #0 + blx func_ov00_0209d738 + cmp r0, #0 + bne _0207b740 + ldr r0, _0207b814 ; =data_027e0f7c + ldr r6, [r0] + ldr r0, [r5] + blx func_ov00_020a5e9c + add r1, r0, #0 + add r0, r6, #0 + blx func_ov00_0209d778 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0207b740 + ldr r0, [r4] + str r0, [r5, #0x70] + ldr r0, [r4, #4] + str r0, [r5, #0x74] + ldr r0, [r4, #8] + str r0, [r5, #0x78] + ldr r0, [r4, #0xc] + str r0, [r5, #0x7c] + mov r0, #0x10 + ldrsh r1, [r4, r0] + add r0, r5, #0 + add r0, #0x80 + strh r1, [r0] + add r0, r5, #0 + ldrb r1, [r4, #0x12] + add r0, #0x82 + strb r1, [r0] + add r0, r5, #0 + ldrb r1, [r4, #0x13] + add r0, #0x83 + strb r1, [r0] + add r0, r5, #0 + ldrb r1, [r4, #0x14] + add r0, #0x84 + strb r1, [r0] + add r0, r5, #0 + ldrb r1, [r4, #0x15] + add r0, #0x85 + strb r1, [r0] +_0207b740: + add r0, r4, #0 + blx func_ov00_020a5e9c + add r6, r0, #0 + ldr r0, [r5] + blx func_ov00_020a5e9c + cmp r6, r0 + bne _0207b7f0 + ldr r0, _0207b814 ; =data_027e0f7c + ldr r6, [r0] + ldr r0, [r5] + blx func_ov00_020a5e9c + add r1, r0, #0 + add r0, r6, #0 + blx func_ov00_0209d738 + cmp r0, #0 + bne _0207b7f0 + ldr r0, [r5] + ldr r0, [r0, #8] + cmp r0, #1 + beq _0207b7f0 + ldr r0, _0207b808 ; =gMapManager + ldr r0, [r0] + blx _ZN10MapManager18func_ov00_02083328Ev + cmp r0, #0 + beq _0207b7f0 + ldr r0, _0207b808 ; =gMapManager + ldrb r1, [r4, #0x12] + ldr r0, [r0] + blx _ZN10MapManager18func_ov00_02083318Ei + cmp r0, #0 + bne _0207b7f0 + ldr r0, [r5] + add r1, r5, #0 + ldr r2, [r0] + add r1, #0x88 + str r2, [r1] + add r1, r5, #0 + ldr r2, [r0, #4] + add r1, #0x8c + str r2, [r1] + add r1, r5, #0 + ldr r2, [r0, #8] + add r1, #0x90 + str r2, [r1] + add r1, r5, #0 + ldr r2, [r0, #0xc] + add r1, #0x94 + str r2, [r1] + mov r1, #0x10 + ldrsh r2, [r0, r1] + add r1, r5, #0 + add r1, #0x98 + strh r2, [r1] + add r1, r5, #0 + ldrb r2, [r0, #0x12] + add r1, #0x9a + strb r2, [r1] + add r1, r5, #0 + ldrb r2, [r0, #0x13] + add r1, #0x9b + strb r2, [r1] + add r1, r5, #0 + ldrb r2, [r0, #0x14] + add r1, #0x9c + strb r2, [r1] + ldrb r1, [r0, #0x15] + add r0, r5, #0 + add r0, #0x9d + strb r1, [r0] + ldr r1, _0207b80c ; =data_027e0f94 + add r0, r5, #0 + ldr r2, [r1] + add r0, #0xa0 + str r2, [r0] + add r0, r5, #0 + ldr r2, [r1, #4] + add r0, #0xa4 + str r2, [r0] + add r0, r5, #0 + ldr r1, [r1, #8] + add r0, #0xa8 + str r1, [r0] +_0207b7f0: + add r0, r5, #0 + add r1, sp, #8 + mov r2, #0 + bl func_ov00_0207b55c + add sp, #0x20 + pop {r4, r5, r6, pc} + nop + thumb_func_end func_ov00_0207b5bc +_0207b800: .word data_027e0fe4 +_0207b804: .word 0x414e4353 +_0207b808: .word gMapManager +_0207b80c: .word data_027e0f94 +_0207b810: .word data_027e0fac +_0207b814: .word data_027e0f7c +_0207b818: .word gItemManager +_0207b81c: .word data_ov09_0211f5dc + + .global func_ov00_0207b820 + arm_func_start func_ov00_0207b820 +func_ov00_0207b820: ; 0x0207b820 + stmdb sp!, {r4, lr} + mov r4, r0 + ldrb r0, [r4, #0x34] + cmp r0, #0 + ldmeqia sp!, {r4, pc} + cmp r1, #0 + ldmneia sp!, {r4, pc} + ldr r0, [r4, #0xac] + bl func_ov05_021010b0 + cmp r0, #0 + ldr r0, [r4, #0xac] + beq _0207b87c + ldrb r1, [r0, #0x29] + cmp r1, #0 + beq _0207b864 + blx func_ov00_0207c074 + ldmia sp!, {r4, pc} +_0207b864: + ldrb r0, [r0, #0x28] + cmp r0, #0 + ldmneia sp!, {r4, pc} + mov r0, r4 + blx func_ov00_0207b530 + ldmia sp!, {r4, pc} +_0207b87c: + bl func_ov05_021010ec + cmp r0, #0 + ldmeqia sp!, {r4, pc} + ldr r0, [r4, #0xac] + bl func_ov05_02101080 + mov r0, #0 + strb r0, [r4, #0x34] + ldmia sp!, {r4, pc} + arm_func_end func_ov00_0207b820 + + .global func_ov00_0207b89c + arm_func_start func_ov00_0207b89c +func_ov00_0207b89c: ; 0x0207b89c + stmdb sp!, {r3, r4, r5, lr} + mov r4, r0 + ldr ip, [r4, #0x180] + cmp ip, #0x20 + ldmgeia sp!, {r3, r4, r5, pc} + mov r0, #0xc + mul r0, ip, r0 + ldr ip, [sp, #0x10] + str r3, [r4, r0] + add r5, r4, r0 + ldr r0, _0207b8f8 ; =data_027e0f64 + str ip, [r5, #4] + ldr r3, [r0] + mov r0, r2 + add r1, r3, r1, lsl #2 + ldr r1, [r1, #4] + add r1, r1, #0x260 + bl func_01ff9ec0 + str r0, [r5, #8] + ldr r0, [r4, #0x180] + add r0, r0, #1 + str r0, [r4, #0x180] + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end func_ov00_0207b89c +_0207b8f8: .word data_027e0f64 + + .global func_ov00_0207b8fc + arm_func_start func_ov00_0207b8fc +func_ov00_0207b8fc: ; 0x0207b8fc + ldr r1, [r1, #8] + ldr r0, [r0, #8] + sub r0, r1, r0 + bx lr + arm_func_end func_ov00_0207b8fc + + .global func_ov00_0207b90c + arm_func_start func_ov00_0207b90c +func_ov00_0207b90c: ; 0x0207b90c + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r6, r0 + ldr r1, [r6, #0x180] + cmp r1, #0 + addle sp, sp, #4 + ldmleia sp!, {r3, r4, r5, r6, pc} + cmp r1, #1 + ble _0207b944 + ldr ip, _0207b980 ; =data_020691a0 + ldr r3, _0207b984 ; =func_ov00_0207b8fc + mov r2, #0xc + str ip, [sp] + bl func_0200be04 +_0207b944: + ldr r0, [r6, #0x180] + mov r4, r6 + cmp r0, #0 + mov r5, #0 + addle sp, sp, #4 + ldmleia sp!, {r3, r4, r5, r6, pc} +_0207b95c: + ldr r0, [r4, #4] + ldr r1, [r4], #0xc + blx r1 + ldr r0, [r6, #0x180] + add r5, r5, #1 + cmp r5, r0 + blt _0207b95c + add sp, sp, #4 + ldmia sp!, {r3, r4, r5, r6, pc} + .align 2, 0 + arm_func_end func_ov00_0207b90c +_0207b980: .word data_020691a0 +_0207b984: .word func_ov00_0207b8fc - 1 + + .global func_ov00_0207b988 + thumb_func_start func_ov00_0207b988 +func_ov00_0207b988: ; 0x0207b988 + push {r4, lr} + add r4, r0, #0 + cmp r1, #2 + bne _0207b9ba + ldr r1, _0207b9bc ; =data_027e0ce0 + mov r0, #0x50 + ldr r1, [r1, #4] + mov r2, #4 + blx _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _0207b9a6 + add r1, r4, #0 + bl func_ov03_020f3974 +_0207b9a6: + str r0, [r4, #0x24] + ldr r0, _0207b9c0 ; =data_027e0618 + ldr r0, [r0, #4] + cmp r0, #3 + bne _0207b9ba + ldr r0, _0207b9c4 ; =data_027e0d54 + mov r1, #1 + mov r2, #0 + bl func_ov09_02114810 +_0207b9ba: + pop {r4, pc} + .align 2, 0 + thumb_func_end func_ov00_0207b988 +_0207b9bc: .word data_027e0ce0 +_0207b9c0: .word data_027e0618 +_0207b9c4: .word data_027e0d54 + + .global func_ov00_0207b9c8 + thumb_func_start func_ov00_0207b9c8 +func_ov00_0207b9c8: ; 0x0207b9c8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x24] + cmp r0, #0 + beq _0207b9da + blx _ZN9SysObjectdlEPv + mov r0, #0 + str r0, [r4, #0x24] +_0207b9da: + pop {r4, pc} + thumb_func_end func_ov00_0207b9c8 + + .global func_ov00_0207b9dc + arm_func_start func_ov00_0207b9dc +func_ov00_0207b9dc: ; 0x0207b9dc + stmdb sp!, {r4, r5, r6, lr} + ldr r1, _0207ba8c ; =0x027ffc3c + mov r6, r0 + ldr r5, [r1] + ldr r0, [r6, #0x20] + ldr r1, [r6, #0x1c] + sub r0, r5, r0 + add r0, r1, r0 + str r0, [r6, #0x1c] + cmp r0, #0x3c + blo _0207ba84 + mov r4, #0 +_0207ba0c: + ldr r0, [r6, #0x1c] + sub r0, r0, #0x3c + str r0, [r6, #0x1c] + ldr r0, [r6, #0x18] + add r0, r0, #1 + str r0, [r6, #0x18] + cmp r0, #0x3c + blo _0207ba78 + str r4, [r6, #0x18] + ldr r0, [r6, #0x14] + add r0, r0, #1 + str r0, [r6, #0x14] + cmp r0, #0x3c + blo _0207ba78 + str r4, [r6, #0x14] + ldr r0, [r6, #0x10] + add r0, r0, #1 + str r0, [r6, #0x10] + cmp r0, #0x18 + blo _0207ba78 + mov r0, r6 + str r4, [r6, #0x10] + blx func_02042b40 + mov r1, r0 + mov r0, r6 + add r1, r1, #1 + blx func_02042bfc +_0207ba78: + ldr r0, [r6, #0x1c] + cmp r0, #0x3c + bhs _0207ba0c +_0207ba84: + str r5, [r6, #0x20] + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end func_ov00_0207b9dc +_0207ba8c: .word 0x027ffc3c + + .global func_ov00_0207ba90 + thumb_func_start func_ov00_0207ba90 +func_ov00_0207ba90: ; 0x0207ba90 + ldr r0, [r0, #0x24] + bx lr + thumb_func_end func_ov00_0207ba90 + + .global func_ov00_0207ba94 + thumb_func_start func_ov00_0207ba94 +func_ov00_0207ba94: ; 0x0207ba94 + push {r3, lr} + add r2, r0, #0 + ldr r0, _0207baac ; =gOverlayManager + ldr r3, [r0, #4] + ldr r0, _0207bab0 ; =0x00000003 + cmp r3, r0 + bne _0207baa8 + ldr r0, [r2, #0x24] + bl func_ov03_020f3c28 +_0207baa8: + pop {r3, pc} + nop + thumb_func_end func_ov00_0207ba94 +_0207baac: .word gOverlayManager +_0207bab0: .word 0x00000003 + + .global func_ov00_0207bab4 + arm_func_start func_ov00_0207bab4 +func_ov00_0207bab4: ; 0x0207bab4 + stmdb sp!, {r4, lr} + mov r4, r0 + add r0, r4, #0x11c + ldr r3, _0207bb04 ; =func_ov00_0207bb18 + add r0, r0, #0xc00 + mov r1, #8 + mov r2, #0x30 + bl func_0204f754 + ldr r3, _0207bb08 ; =func_ov00_0207bb14 + add r0, r4, #0x2f8 + mov r1, #0xcf + mov r2, #0xc + bl func_0204f754 + ldr r3, _0207bb0c ; =func_ov00_0207bb10 + add r0, r4, #0xf8 + mov r1, #0x40 + mov r2, #8 + bl func_0204f754 + mov r0, r4 + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end func_ov00_0207bab4 +_0207bb04: .word func_ov00_0207bb18 - 1 +_0207bb08: .word func_ov00_0207bb14 - 1 +_0207bb0c: .word func_ov00_0207bb10 - 1 + + .global func_ov00_0207bb10 + arm_func_start func_ov00_0207bb10 +func_ov00_0207bb10: ; 0x0207bb10 + bx lr + arm_func_end func_ov00_0207bb10 + + .global func_ov00_0207bb14 + arm_func_start func_ov00_0207bb14 +func_ov00_0207bb14: ; 0x0207bb14 + bx lr + arm_func_end func_ov00_0207bb14 + + .global func_ov00_0207bb18 + arm_func_start func_ov00_0207bb18 +func_ov00_0207bb18: ; 0x0207bb18 + bx lr + arm_func_end func_ov00_0207bb18 + + .global func_ov00_0207bb1c + arm_func_start func_ov00_0207bb1c +func_ov00_0207bb1c: ; 0x0207bb1c + stmdb sp!, {r3, lr} + add lr, r0, r1, lsl #2 + ldr ip, _0207bb48 ; =data_ov00_020d8798 + str r2, [lr, #4] + str r3, [lr, #0x24] + ldrb r1, [ip, r1] + ldr r3, [r0] + mov r2, #1 + orr r1, r3, r2, lsl r1 + str r1, [r0] + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end func_ov00_0207bb1c +_0207bb48: .word data_ov00_020d8798 + + .global func_ov00_0207bb4c + arm_func_start func_ov00_0207bb4c +func_ov00_0207bb4c: ; 0x0207bb4c + stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} + mov r10, r0 + ldr r0, [r10] + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} + bl func_01ffa8d4 + ldr r5, _0207bc30 ; =0x04000440 + mov r7, #3 + str r7, [r5] + mov r0, #0 + ldr r8, _0207bc34 ; =data_ov00_020d8860 + str r0, [r5, #0x14] + mov r11, r0 + mov r4, #1 +_0207bb84: + ldr r0, [r10] + tst r0, r4, lsl r7 + beq _0207bc20 + mov r0, r8 + str r11, [r5] + bl func_02005628 + ldr r1, _0207bc38 ; =data_027e0384 + mov r0, r8 + mov r2, #0x40 + bl func_02007984 + ldr r1, _0207bc3c ; =data_027e037c + ldr r0, _0207bc40 ; =data_027e03c8 + ldr r2, [r1, #0xfc] + bic r2, r2, #0x50 + str r2, [r1, #0xfc] + mov r1, #2 + str r1, [r5] + mov r1, #0 + str r1, [r5, #0x14] + bl func_01ff892c + ldr r0, _0207bc3c ; =data_027e037c + ldr r9, _0207bc44 ; =data_ov00_020d8798 + ldr r1, [r0, #0xfc] + mov r6, #0 + bic r1, r1, #0xe8 + str r1, [r0, #0xfc] +_0207bbec: + ldrb r0, [r9] + cmp r0, r7 + bne _0207bc10 + add r0, r10, r6, lsl #2 + ldr r1, [r0, #4] + cmp r1, #0 + beq _0207bc10 + ldr r0, [r0, #0x24] + blx r1 +_0207bc10: + add r9, r9, #1 + add r6, r6, #1 + cmp r6, #8 + blt _0207bbec +_0207bc20: + sub r8, r8, #0x40 + subs r7, r7, #1 + bpl _0207bb84 + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end func_ov00_0207bb4c +_0207bc30: .word 0x04000440 +_0207bc34: .word data_ov00_020d8860 +_0207bc38: .word data_027e0384 +_0207bc3c: .word data_027e037c +_0207bc40: .word data_027e03c8 +_0207bc44: .word data_ov00_020d8798 + + .global func_ov00_0207bc48 + arm_func_start func_ov00_0207bc48 +func_ov00_0207bc48: ; 0x0207bc48 + ldr r1, [r0] + mov r0, #0 + cmp r1, #0 + ldrne r2, [r1, #0x40] + subne r1, r0, #1 + cmpne r2, r1 + movne r0, #1 + bx lr + arm_func_end func_ov00_0207bc48 + + .global func_ov00_0207bc68 + arm_func_start func_ov00_0207bc68 +func_ov00_0207bc68: ; 0x0207bc68 + ldr r0, [r0] + cmp r0, #0 + ldrne r0, [r0, #0x40] + mvneq r0, #0 + bx lr + arm_func_end func_ov00_0207bc68 + + .global func_ov00_0207bc7c + thumb_func_start func_ov00_0207bc7c +func_ov00_0207bc7c: ; 0x0207bc7c + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r5, [r4] + cmp r5, #0 + beq _0207bc98 + beq _0207bc94 + add r0, r5, #0 + blx func_ov18_0215cb28 + add r0, r5, #0 + blx _ZN9SysObjectdlEPv +_0207bc94: + mov r0, #0 + str r0, [r4] +_0207bc98: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end func_ov00_0207bc7c + + .global func_ov00_0207bc9c + arm_func_start func_ov00_0207bc9c +func_ov00_0207bc9c: ; 0x0207bc9c + stmdb sp!, {r3, lr} + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl func_ov17_0215cef4 + ldmia sp!, {r3, pc} + arm_func_end func_ov00_0207bc9c + + .global func_ov00_0207bcb4 + thumb_func_start func_ov00_0207bcb4 +func_ov00_0207bcb4: ; 0x0207bcb4 + mov r1, #0 + mvn r1, r1 + str r1, [r0] + str r1, [r0, #4] + mov r2, #0 + str r2, [r0, #8] + str r2, [r0, #0xc] + str r2, [r0, #0x10] + strh r2, [r0, #0x14] + mov r1, #2 + strb r2, [r0, #0x16] + lsl r1, r1, #0x12 + str r1, [r0, #0x20] + str r1, [r0, #0x18] + mov r1, #6 + lsl r1, r1, #0x10 + str r1, [r0, #0x24] + str r1, [r0, #0x1c] + str r2, [r0, #0x28] + bx lr + thumb_func_end func_ov00_0207bcb4 + + .global func_ov00_0207bcdc + thumb_func_start func_ov00_0207bcdc +func_ov00_0207bcdc: ; 0x0207bcdc + push {r4, r5, r6, lr} + add r4, r0, #0 + add r5, r1, #0 + add r6, r2, #0 + mov r1, #0 + ldr r2, [r4, #4] + mvn r1, r1 + cmp r2, r1 + beq _0207bcf2 + mov r0, #0 + pop {r4, r5, r6, pc} +_0207bcf2: + str r5, [r4, #4] + str r6, [r4, #8] + str r3, [r4, #0xc] + mov r1, #0 + strb r1, [r4, #0x16] + bl func_ov00_0207bdd4 + cmp r5, #3 + bhi _0207bd44 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0207bd10: ; jump table + .short _0207bd18 - _0207bd10 - 2 ; case 0 + .short _0207bd18 - _0207bd10 - 2 ; case 1 + .short _0207bd2c - _0207bd10 - 2 ; case 2 + .short _0207bd2c - _0207bd10 - 2 ; case 3 +_0207bd18: + cmp r5, #1 + bne _0207bd20 + mov r1, #1 + b _0207bd22 +_0207bd20: + mov r1, #0 +_0207bd22: + ldr r0, _0207bd48 ; =data_027e0db0 + bl func_ov00_0207b2c4 + strh r0, [r4, #0x14] + b _0207bd44 +_0207bd2c: + mov r0, #0xa0 + str r0, [r4, #0x28] + cmp r5, #2 + bne _0207bd38 + mov r2, #1 + b _0207bd3a +_0207bd38: + mov r2, #0 +_0207bd3a: + add r4, #0x18 + add r0, r4, #0 + mov r1, #0 + bl func_ov00_0207c8e4 +_0207bd44: + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end func_ov00_0207bcdc +_0207bd48: .word data_027e0db0 + + .global func_ov00_0207bd4c + thumb_func_start func_ov00_0207bd4c +func_ov00_0207bd4c: ; 0x0207bd4c + push {r3, r4, r5, r6, r7, lr} + add r7, r2, #0 + add r2, r3, #0 + ldr r3, [sp, #0x18] + add r5, r0, #0 + add r4, r1, #0 + bl func_ov00_0207bcdc + add r6, r0, #0 + beq _0207bd92 + mov r0, #0 + cmp r4, #3 + bhi _0207bd8a + add r1, r4, r4 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0207bd72: ; jump table + .short _0207bd7a - _0207bd72 - 2 ; case 0 + .short _0207bd7a - _0207bd72 - 2 ; case 1 + .short _0207bd84 - _0207bd72 - 2 ; case 2 + .short _0207bd88 - _0207bd72 - 2 ; case 3 +_0207bd7a: + ldr r0, _0207bd98 ; =data_027e0db0 + ldr r1, [r0, #8] + ldr r0, [r0, #4] + sub r0, r1, r0 + b _0207bd8a +_0207bd84: + mov r0, #0xa0 + b _0207bd8a +_0207bd88: + mov r0, #0x60 +_0207bd8a: + add r1, r7, #0 + blx func_01ff9b4c + str r0, [r5, #0x10] +_0207bd92: + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + nop + thumb_func_end func_ov00_0207bd4c +_0207bd98: .word data_027e0db0 + + .global func_ov00_0207bd9c + thumb_func_start func_ov00_0207bd9c +func_ov00_0207bd9c: ; 0x0207bd9c + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + bl func_ov00_0207bcdc + cmp r0, #0 + beq _0207bdd2 + cmp r5, #3 + bhi _0207bdd2 + add r1, r5, r5 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0207bdba: ; jump table + .short _0207bdc2 - _0207bdba - 2 ; case 0 + .short _0207bdc2 - _0207bdba - 2 ; case 1 + .short _0207bdc8 - _0207bdba - 2 ; case 2 + .short _0207bdce - _0207bdba - 2 ; case 3 +_0207bdc2: + mov r1, #0xa + str r1, [r4, #0x10] + pop {r3, r4, r5, pc} +_0207bdc8: + mov r1, #0xa + str r1, [r4, #0x10] + pop {r3, r4, r5, pc} +_0207bdce: + mov r1, #0xa + str r1, [r4, #0x10] +_0207bdd2: + pop {r3, r4, r5, pc} + thumb_func_end func_ov00_0207bd9c + + .global func_ov00_0207bdd4 + thumb_func_start func_ov00_0207bdd4 +func_ov00_0207bdd4: ; 0x0207bdd4 + push {r3, lr} + add r2, r1, #1 + cmp r2, #3 + bhi _0207bdf6 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0207bde8: ; jump table + .short _0207bdf0 - _0207bde8 - 2 ; case 0 + .short _0207bdf6 - _0207bde8 - 2 ; case 1 + .short _0207bdf6 - _0207bde8 - 2 ; case 2 + .short _0207bdf6 - _0207bde8 - 2 ; case 3 +_0207bdf0: + bl func_ov00_0207bcb4 + pop {r3, pc} +_0207bdf6: + str r1, [r0] + pop {r3, pc} + .align 2, 0 + thumb_func_end func_ov00_0207bdd4 + + .global func_ov00_0207bdfc + thumb_func_start func_ov00_0207bdfc +func_ov00_0207bdfc: ; 0x0207bdfc + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _0207be10 + cmp r0, #1 + beq _0207be28 + cmp r0, #2 + beq _0207be5a + pop {r4, pc} +_0207be10: + add r0, r4, #0 + ldr r2, [r4, #0x10] + add r0, #0x18 + blx func_ov00_0207c91c + cmp r0, #0 + beq _0207be80 + add r0, r4, #0 + mov r1, #1 + bl func_ov00_0207bdd4 + pop {r4, pc} +_0207be28: + ldr r2, [r4, #8] + cmp r2, #0 + beq _0207be34 + ldr r1, [r4, #0xc] + mov r0, #0 + blx r2 +_0207be34: + ldr r0, [r4] + cmp r0, #1 + bne _0207be80 + ldr r0, [r4, #4] + cmp r0, #2 + bne _0207be44 + mov r2, #1 + b _0207be46 +_0207be44: + mov r2, #0 +_0207be46: + add r0, r4, #0 + add r0, #0x18 + mov r1, #1 + bl func_ov00_0207c8e4 + add r0, r4, #0 + mov r1, #2 + bl func_ov00_0207bdd4 + pop {r4, pc} +_0207be5a: + add r0, r4, #0 + ldr r2, [r4, #0x10] + add r0, #0x18 + mov r1, #0xa0 + blx func_ov00_0207c91c + cmp r0, #0 + beq _0207be80 + ldr r2, [r4, #8] + cmp r2, #0 + beq _0207be76 + ldr r1, [r4, #0xc] + mov r0, #1 + blx r2 +_0207be76: + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl func_ov00_0207bdd4 +_0207be80: + pop {r4, pc} + .align 2, 0 + thumb_func_end func_ov00_0207bdfc + + .global func_ov00_0207be84 + arm_func_start func_ov00_0207be84 +func_ov00_0207be84: ; 0x0207be84 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + cmp r1, #0 + ldreqb r1, [r5, #0x16] + cmpeq r1, #0 + ldmneia sp!, {r3, r4, r5, pc} + ldr r2, [r5, #4] + mvn r1, #0 + cmp r2, r1 + ldmeqia sp!, {r3, r4, r5, pc} + ldr r1, [r5, #4] + cmp r1, #3 + addls pc, pc, r1, lsl #2 + ldmia sp!, {r3, r4, r5, pc} +_0207bebc: ; jump table + b _0207becc ; case 0 + b _0207becc ; case 1 + b _0207bfa4 ; case 2 + b _0207bfb0 ; case 3 +_0207becc: + ldr r1, [r5] + ldr r2, _0207bfbc ; =data_027e0db4 + cmp r1, #0 + ldr r4, _0207bfc0 ; =data_027e0db8 + beq _0207bef4 + cmp r1, #1 + beq _0207bf20 + cmp r1, #2 + beq _0207bf5c + ldmia sp!, {r3, r4, r5, pc} +_0207bef4: + ldr ip, [r2] + ldr r1, [r5, #0x10] + ldr r3, [r4] + add r1, ip, r1 + str r1, [r2] + cmp r1, r3 + ldmltia sp!, {r3, r4, r5, pc} + mov r1, #1 + str r3, [r2] + blx func_ov00_0207bdd4 + ldmia sp!, {r3, r4, r5, pc} +_0207bf20: + ldr r2, [r5, #8] + cmp r2, #0 + beq _0207bf38 + ldr r1, [r5, #0xc] + mov r0, #0 + blx r2 +_0207bf38: + ldr r0, [r5] + cmp r0, #1 + ldmneia sp!, {r3, r4, r5, pc} + ldrsh r2, [r5, #0x14] + mov r0, r5 + mov r1, #2 + str r2, [r4] + blx func_ov00_0207bdd4 + ldmia sp!, {r3, r4, r5, pc} +_0207bf5c: + ldr r3, [r2] + ldr r1, [r5, #0x10] + ldr r0, [r4] + sub r1, r3, r1 + str r1, [r2] + cmp r1, r0 + ldmgtia sp!, {r3, r4, r5, pc} + str r0, [r2] + ldr r2, [r5, #8] + cmp r2, #0 + beq _0207bf94 + ldr r1, [r5, #0xc] + mov r0, #1 + blx r2 +_0207bf94: + mov r0, r5 + mvn r1, #0 + blx func_ov00_0207bdd4 + ldmia sp!, {r3, r4, r5, pc} +_0207bfa4: + mov r1, #0 + blx func_ov00_0207bdfc + ldmia sp!, {r3, r4, r5, pc} +_0207bfb0: + mov r1, #0x40 + blx func_ov00_0207bdfc + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end func_ov00_0207be84 +_0207bfbc: .word data_027e0db4 +_0207bfc0: .word data_027e0db8 + + .global func_ov00_0207bfc4 + thumb_func_start func_ov00_0207bfc4 +func_ov00_0207bfc4: ; 0x0207bfc4 + push {r4, lr} + add r4, r0, #0 + bl func_0202ab78 + add r0, r4, #0 + mov r1, #1 + add r0, #0x24 + strb r1, [r0] + add r0, r4, #0 + mov r1, #0 + add r0, #0x25 + strb r1, [r0] + add r0, r4, #0 + add r0, #0x26 + strb r1, [r0] + add r0, r4, #0 + add r0, #0x27 + strb r1, [r0] + add r0, r4, #0 + add r0, #0x28 + strb r1, [r0] + add r0, r4, #0 + add r0, #0x29 + strb r1, [r0] + mov r0, #0x14 + strh r0, [r4, #0x2a] + mov r0, #0x28 + strh r0, [r4, #0x2c] + pop {r4, pc} + .align 2, 0 + thumb_func_end func_ov00_0207bfc4 + + .global func_ov00_0207c000 + thumb_func_start func_ov00_0207c000 +func_ov00_0207c000: ; 0x0207c000 + push {r3, lr} + add r1, r0, #0 + add r1, #0x25 + ldrb r1, [r1] + cmp r1, #0 + beq _0207c02a + add r1, r0, #0 + mov r2, #1 + add r1, #0x24 + strb r2, [r1] + add r1, r0, #0 + mov r2, #0 + add r1, #0x25 + strb r2, [r1] + mov r1, #0x14 + strh r1, [r0, #0x2a] + mov r1, #0x28 + strh r1, [r0, #0x2c] + ldr r0, _0207c02c ; =data_027e0e2c + bl func_ov00_0207bcb4 +_0207c02a: + pop {r3, pc} + .align 2, 0 + thumb_func_end func_ov00_0207c000 +_0207c02c: .word data_027e0e2c + + .global func_ov00_0207c030 + thumb_func_start func_ov00_0207c030 +func_ov00_0207c030: ; 0x0207c030 + add r2, r0, #0 + add r2, #0x25 + ldrb r2, [r2] + mov r1, #0 + cmp r2, #0 + beq _0207c04e + ldr r0, _0207c06c ; =data_027e077c + ldr r1, [r0] + ldr r0, _0207c070 ; =data_02056be4 + ldrb r0, [r0, r1] + mov r1, #1 + tst r0, r1 + beq _0207c066 + mov r1, #2 + b _0207c066 +_0207c04e: + add r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _0207c066 + ldr r0, _0207c06c ; =data_027e077c + ldr r1, [r0] + ldr r0, _0207c070 ; =data_02056be4 + ldrb r0, [r0, r1] + mov r1, #1 + tst r0, r1 + bne _0207c066 + mov r1, #2 +_0207c066: + add r0, r1, #0 + bx lr + nop + thumb_func_end func_ov00_0207c030 +_0207c06c: .word data_027e077c +_0207c070: .word data_02056be4 + + .global func_ov00_0207c074 + thumb_func_start func_ov00_0207c074 +func_ov00_0207c074: ; 0x0207c074 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + mov r2, #0 + add r1, #0x29 + strb r2, [r1] + add r1, r4, #0 + add r1, #0x24 + ldrb r1, [r1] + cmp r1, #0 + beq _0207c0a4 + bl func_ov00_0207c030 + add r2, r0, #0 + ldrh r1, [r4, #0x2a] + add r0, r4, #0 + bl func_0202abdc + cmp r0, #0 + beq _0207c0a4 + ldr r0, _0207c0a8 ; =data_027e071c + add r1, r4, #0 + blx func_0202d77c +_0207c0a4: + pop {r4, pc} + nop + thumb_func_end func_ov00_0207c074 +_0207c0a8: .word data_027e071c + + .global func_ov00_0207c0ac + thumb_func_start func_ov00_0207c0ac +func_ov00_0207c0ac: ; 0x0207c0ac + push {r4, lr} + mov r3, #0 + mvn r3, r3 + cmp r1, r3 + beq _0207c0c6 + ldr r3, _0207c0c8 ; =data_027e0cbc + ldr r4, [r3, #0x1c] + str r4, [r0] + cmp r4, r1 + beq _0207c0c6 + add r0, r3, #0 + blx func_ov03_020fa874 +_0207c0c6: + pop {r4, pc} + .align 2, 0 + thumb_func_end func_ov00_0207c0ac +_0207c0c8: .word data_027e0cbc + + .global func_ov00_0207c0cc + thumb_func_start func_ov00_0207c0cc +func_ov00_0207c0cc: ; 0x0207c0cc + push {r4, lr} + add r4, r0, #0 + add r2, r1, #0 + mov r0, #0 + ldr r1, [r4] + mvn r0, r0 + cmp r1, r0 + beq _0207c0e8 + ldr r0, _0207c0ec ; =data_027e0cbc + blx func_ov03_020fa874 + mov r0, #0 + mvn r0, r0 + str r0, [r4] +_0207c0e8: + pop {r4, pc} + nop + thumb_func_end func_ov00_0207c0cc +_0207c0ec: .word data_027e0cbc + + .global func_ov00_0207c0f0 + thumb_func_start func_ov00_0207c0f0 +func_ov00_0207c0f0: ; 0x0207c0f0 + push {r3, lr} + add r3, r0, #0 + mov r2, #0 + add r0, #0x3c + strb r2, [r0] + cmp r1, #2 + beq _0207c106 + cmp r1, #6 + beq _0207c106 + cmp r1, #7 + bne _0207c110 +_0207c106: + ldr r0, _0207c114 ; =data_ov00_020ec718 + add r1, r3, #0 + mov r2, #0x3c + blx func_020078d8 +_0207c110: + pop {r3, pc} + nop + thumb_func_end func_ov00_0207c0f0 +_0207c114: .word data_ov00_020ec718 + + .global func_ov00_0207c118 + thumb_func_start func_ov00_0207c118 +func_ov00_0207c118: ; 0x0207c118 + push {r4, r5, lr} + sub sp, #0x114 + add r4, r1, #0 + add r5, r0, #0 + add r1, sp, #0x14 + mov r2, #0x80 + blx func_02007ad8 + add r0, r5, #0 + add r1, sp, #0x94 + mov r2, #0x80 + blx func_02007ad8 + mov r3, #0 + str r3, [sp] + ldr r1, _0207c168 ; =0x0003f500 + add r5, r4, #0 + mul r5, r1 + ldr r1, _0207c16c ; =0x0003f200 + str r3, [sp, #4] + mov r0, #7 + str r0, [sp, #8] + mov r0, #0xa + str r0, [sp, #0xc] + mov r2, #2 + str r2, [sp, #0x10] + add r0, sp, #0x14 + add r1, r5, r1 + add r2, #0xfe + bl func_02040464 + cmp r0, #0 + beq _0207c160 + add sp, #0x114 + mov r0, #1 + pop {r4, r5, pc} +_0207c160: + mov r0, #0 + add sp, #0x114 + pop {r4, r5, pc} + nop + thumb_func_end func_ov00_0207c118 +_0207c168: .word 0x0003f500 +_0207c16c: .word 0x0003f200 + + .global func_ov00_0207c170 + thumb_func_start func_ov00_0207c170 +func_ov00_0207c170: ; 0x0207c170 + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + add r5, r0, #0 + add r6, r4, #0 + mov r7, #0x14 +_0207c17a: + add r0, r6, #0 + add r1, r5, #0 + add r2, r7, #0 + blx func_020078c0 + add r4, r4, #1 + add r5, #0x14 + cmp r4, #3 + blt _0207c17a + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end func_ov00_0207c170 + + .global func_ov00_0207c190 + thumb_func_start func_ov00_0207c190 +func_ov00_0207c190: ; 0x0207c190 + mov r2, #0 + add r3, r2, #0 +_0207c194: + ldrb r1, [r0, #0x12] + cmp r1, #0 + beq _0207c1a2 + ldrh r1, [r0] + cmp r1, #0 + bne _0207c1a2 + add r2, r2, #1 +_0207c1a2: + add r3, r3, #1 + add r0, #0x14 + cmp r3, #3 + blt _0207c194 + add r0, r2, #0 + bx lr + .align 2, 0 + thumb_func_end func_ov00_0207c190 + + .global func_ov00_0207c1b0 + arm_func_start func_ov00_0207c1b0 +func_ov00_0207c1b0: ; 0x0207c1b0 + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr lr, [sp, #0x10] + cmp r1, #0x1000 + movge r4, #1 + movlt r4, #0 + ldr ip, [sp, #0x14] + str lr, [sp] + cmp r1, #0x1000 + orrge r3, r3, #0x8000 + cmp r1, #0x1000 + str ip, [sp, #4] + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0x10] + subge r1, r1, #0x1000 + bl func_ov00_0207c694 + add sp, sp, #8 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_0207c1b0 + + .global func_ov00_0207c1f8 + arm_func_start func_ov00_0207c1f8 +func_ov00_0207c1f8: ; 0x0207c1f8 + stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + mov r6, r2 + cmp r6, #0x1000 + movge r4, #1 + mov r7, r1 + mov r8, r0 + mov r0, r7 + mov r5, r3 + movlt r4, #0 + bl func_ov00_020b7e6c + cmp r6, #0x1000 + ldrge r0, [sp, #0x20] + mov r1, r7 + orrge r0, r0, #0x8000 + ldrlt r0, [sp, #0x20] + cmp r6, #0x1000 + str r0, [sp] + add r0, r8, r4, lsl #2 + subge r6, r6, #0x1000 + ldr r0, [r0, #0x10] + mov r2, r6 + mov r3, r5 + bl func_ov00_0207c6ec + add sp, sp, #4 + ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} + arm_func_end func_ov00_0207c1f8 + + .global func_ov00_0207c260 + arm_func_start func_ov00_0207c260 +func_ov00_0207c260: ; 0x0207c260 + stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} + ldr r6, [sp, #0x28] + ldr r5, [sp, #0x2c] + mov r9, r1 + mov r8, r2 + mov r10, r0 + mov r7, r3 + cmp r9, r8 + ldmeqia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} + orr r11, r5, #0x8000 +_0207c288: + ldr r0, [r7] + cmp r0, #0x1000 + movge r0, #1 + movlt r0, #0 + add r1, r10, r0, lsl #2 + mov r0, r9 + ldr r4, [r1, #0x10] + bl func_ov00_020b7e6c + ldr r2, [r7] + mov r0, r4 + cmp r2, #0x1000 + movge ip, r11 + movlt ip, r5 + cmp r2, #0x1000 + subge r2, r2, #0x1000 + mov r1, r9 + mov r3, r6 + str ip, [sp] + bl func_ov00_0207c6ec + add r9, r9, #4 + cmp r9, r8 + add r7, r7, #4 + bne _0207c288 + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} + arm_func_end func_ov00_0207c260 + + .global func_ov00_0207c2e8 + arm_func_start func_ov00_0207c2e8 +func_ov00_0207c2e8: ; 0x0207c2e8 + stmdb sp!, {r3, lr} + sub sp, sp, #0x10 + ldr lr, [sp, #0x18] + str r2, [sp, #8] + str r3, [sp, #0xc] + ldr ip, [sp, #0x1c] + str lr, [sp] + add r3, sp, #8 + add r2, r1, #8 + str ip, [sp, #4] + bl func_ov00_0207c260 + add sp, sp, #0x10 + ldmia sp!, {r3, pc} + arm_func_end func_ov00_0207c2e8 + + .global func_ov00_0207c31c + arm_func_start func_ov00_0207c31c +func_ov00_0207c31c: ; 0x0207c31c + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr ip, [sp, #0x18] + ldr lr, [sp, #0x1c] + str r2, [sp, #8] + str r3, [sp, #0xc] + str ip, [sp, #0x10] + ldr ip, [sp, #0x20] + str lr, [sp] + add r3, sp, #8 + add r2, r1, #0xc + str ip, [sp, #4] + bl func_ov00_0207c260 + add sp, sp, #0x14 + ldmia sp!, {pc} + arm_func_end func_ov00_0207c31c + + .global func_ov00_0207c358 + arm_func_start func_ov00_0207c358 +func_ov00_0207c358: ; 0x0207c358 + stmdb sp!, {r3, lr} + sub sp, sp, #0x18 + ldr lr, [sp, #0x20] + ldr ip, [sp, #0x24] + str r2, [sp, #8] + str r3, [sp, #0xc] + str ip, [sp, #0x14] + ldr r2, [sp, #0x28] + str lr, [sp, #0x10] + str r2, [sp] + ldr ip, [sp, #0x2c] + add r3, sp, #8 + add r2, r1, #0x10 + str ip, [sp, #4] + bl func_ov00_0207c260 + add sp, sp, #0x18 + ldmia sp!, {r3, pc} + arm_func_end func_ov00_0207c358 + + .global func_ov00_0207c39c + arm_func_start func_ov00_0207c39c +func_ov00_0207c39c: ; 0x0207c39c + stmdb sp!, {r3, r4, lr} + sub sp, sp, #0x1c + ldr r4, [sp, #0x28] + ldr lr, [sp, #0x2c] + ldr ip, [sp, #0x30] + str r2, [sp, #8] + str r3, [sp, #0xc] + str ip, [sp, #0x18] + ldr r2, [sp, #0x34] + str r4, [sp, #0x10] + str lr, [sp, #0x14] + str r2, [sp] + ldr ip, [sp, #0x38] + add r3, sp, #8 + add r2, r1, #0x14 + str ip, [sp, #4] + bl func_ov00_0207c260 + add sp, sp, #0x1c + ldmia sp!, {r3, r4, pc} + arm_func_end func_ov00_0207c39c + + .global func_ov00_0207c3e8 + arm_func_start func_ov00_0207c3e8 +func_ov00_0207c3e8: ; 0x0207c3e8 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #0x24 + ldr r6, [sp, #0x38] + ldr r5, [sp, #0x3c] + ldr r4, [sp, #0x40] + ldr lr, [sp, #0x44] + ldr ip, [sp, #0x48] + str r2, [sp, #8] + str r3, [sp, #0xc] + str ip, [sp, #0x20] + ldr r2, [sp, #0x4c] + str r6, [sp, #0x10] + str r5, [sp, #0x14] + str r4, [sp, #0x18] + str lr, [sp, #0x1c] + str r2, [sp] + ldr ip, [sp, #0x50] + add r3, sp, #8 + add r2, r1, #0x1c + str ip, [sp, #4] + bl func_ov00_0207c260 + add sp, sp, #0x24 + ldmia sp!, {r3, r4, r5, r6, pc} + arm_func_end func_ov00_0207c3e8 + + .global func_ov00_0207c444 + arm_func_start func_ov00_0207c444 +func_ov00_0207c444: ; 0x0207c444 + stmdb sp!, {r3, lr} + ldr r2, [r1] + cmp r2, #0 + ldmeqia sp!, {r3, pc} + ldr r2, [r2, #0x9c] + tst r2, #0x8000 + movne r2, #1 + moveq r2, #0 + add r0, r0, r2, lsl #2 + ldr r0, [r0, #0x10] + bl func_ov00_0207c748 + ldmia sp!, {r3, pc} + arm_func_end func_ov00_0207c444 + + .global func_ov00_0207c474 + arm_func_start func_ov00_0207c474 +func_ov00_0207c474: ; 0x0207c474 + stmdb sp!, {r3, lr} + mov r3, r2 + ldr r2, [r1, #4] + ldr ip, [r1] + cmp r2, #0x1000 + movge lr, #1 + movlt lr, #0 + cmp ip, #0 + bne _0207c4c0 + ldr ip, [r1, #8] + cmp r2, #0x1000 + orrge ip, ip, #0x8000 + str ip, [sp] + add r0, r0, lr, lsl #2 + cmp r2, #0x1000 + ldr r0, [r0, #0x10] + subge r2, r2, #0x1000 + bl func_ov00_0207c6ec + ldmia sp!, {r3, pc} +_0207c4c0: + ldr r0, [r1] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + ldr r1, [r0, #0x20] + ldr r2, [r3] + ldr r1, [r1] + ldr r1, [r1, #4] + add r1, r2, r1 + str r1, [r0, #0x28] + ldr r1, [r0, #0x20] + ldr r2, [r3, #4] + ldr r1, [r1] + ldr r1, [r1, #8] + add r1, r2, r1 + str r1, [r0, #0x2c] + ldr r1, [r0, #0x20] + ldr r2, [r3, #8] + ldr r1, [r1] + ldr r1, [r1, #0xc] + add r1, r2, r1 + str r1, [r0, #0x30] + ldmia sp!, {r3, pc} + arm_func_end func_ov00_0207c474 + + .global func_ov00_0207c518 + arm_func_start func_ov00_0207c518 +func_ov00_0207c518: ; 0x0207c518 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r6, r1 + mov r5, r2 + ldr r2, [r6, #4] + mov r7, r0 + cmp r2, #0x1000 + movge r4, #1 + ldr r0, [r6] + movlt r4, #0 + cmp r0, #0 + bne _0207c588 + ldr r0, [r6, #8] + cmp r2, #0x1000 + orrge r0, r0, #0x8000 + orr r0, r0, #0x4000 + str r0, [sp] + add r0, r7, r4, lsl #2 + cmp r2, #0x1000 + ldr r0, [r0, #0x10] + subge r2, r2, #0x1000 + mov r1, r6 + mov r3, r5 + bl func_ov00_0207c6ec + ldr r1, [r6] + cmp r1, #0 + ldrne r0, [r1, #0x24] + orrne r0, r0, #2 + strne r0, [r1, #0x24] +_0207c588: + ldr r0, [r6] + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + add r0, r7, r4, lsl #2 + ldr r0, [r0, #0x10] + ldr r1, [r6] + ldr r0, [r0] + mov r2, r5 + bl func_02012934 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end func_ov00_0207c518 + + .global func_ov00_0207c5b0 + thumb_func_start func_ov00_0207c5b0 +func_ov00_0207c5b0: ; 0x0207c5b0 + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + add r5, r0, #0 + add r6, r1, #0 + sub r7, r4, #1 +_0207c5ba: + ldr r0, [r5] + cmp r0, r7 + beq _0207c5c8 + ldr r0, [r5, #0x10] + add r1, r6, #0 + bl func_ov00_0207c770 +_0207c5c8: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #2 + blt _0207c5ba + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end func_ov00_0207c5b0 + + .global func_ov00_0207c5d4 + arm_func_start func_ov00_0207c5d4 +func_ov00_0207c5d4: ; 0x0207c5d4 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, #0 + mvn r4, #0 +_0207c5ec: + ldr r0, [r8, r5, lsl #2] + cmp r0, r4 + beq _0207c60c + add r0, r8, r5, lsl #2 + ldr r0, [r0, #0x10] + mov r1, r7 + mov r2, r6 + bl func_ov00_0207c798 +_0207c60c: + add r5, r5, #1 + cmp r5, #2 + blt _0207c5ec + ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end func_ov00_0207c5d4 + + .global func_ov00_0207c61c + arm_func_start func_ov00_0207c61c +func_ov00_0207c61c: ; 0x0207c61c + stmdb sp!, {r3, lr} + ldr r2, [r1] + str r2, [r0, #0x9c] + ldr r2, [r0, #0x20] + ldr r2, [r2] + ldr r2, [r2, #0x58] + mov r2, r2, lsl #0x18 + mov r2, r2, lsr #0x18 + and r2, r2, #0xff + tst r2, #0x80 + beq _0207c658 + ldr r2, _0207c670 ; =data_027e0e58 + ldr r2, [r2] + ldrh r2, [r2, #0x22] + strh r2, [r0, #0x76] +_0207c658: + ldr r2, [r1, #8] + cmp r2, #0 + ldmeqia sp!, {r3, pc} + ldr r1, [r1, #4] + blx r2 + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end func_ov00_0207c61c +_0207c670: .word data_027e0e58 + + .global func_ov00_0207c674 + arm_func_start func_ov00_0207c674 +func_ov00_0207c674: ; 0x0207c674 + stmdb sp!, {r3, lr} + ldr r1, _0207c690 ; =data_027e0618 + ldr r1, [r1] + cmp r1, #6 + ldmneia sp!, {r3, pc} + bl func_ov12_02133c40 + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end func_ov00_0207c674 +_0207c690: .word data_027e0618 + + .global func_ov00_0207c694 + arm_func_start func_ov00_0207c694 +func_ov00_0207c694: ; 0x0207c694 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r6, r0 + mov r0, r1 + mov r5, r2 + mov r4, r3 + bl func_ov00_0207c674 + ldr r3, [sp, #0x20] + ldr r2, [sp, #0x24] + str r3, [sp, #8] + str r2, [sp, #0xc] + ldr r1, _0207c6e8 ; =func_ov00_0207c61c + str r4, [sp, #4] + str r1, [sp] + mov r1, r0 + ldr r0, [r6] + add r3, sp, #4 + mov r2, r5 + bl func_02012830 + add sp, sp, #0x10 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end func_ov00_0207c694 +_0207c6e8: .word func_ov00_0207c61c - 1 + + .global func_ov00_0207c6ec + arm_func_start func_ov00_0207c6ec +func_ov00_0207c6ec: ; 0x0207c6ec + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r6, r0 + mov r0, r2 + mov r5, r1 + mov r4, r3 + bl func_ov00_0207c674 + mov r2, #0 + ldr r3, [sp, #0x20] + ldr r1, _0207c744 ; =func_ov00_0207c61c + str r3, [sp, #4] + str r2, [sp, #8] + str r2, [sp, #0xc] + str r1, [sp] + mov r1, r0 + ldr r0, [r6] + add r3, sp, #4 + mov r2, r4 + bl func_02012830 + str r0, [r5] + add sp, sp, #0x10 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end func_ov00_0207c6ec +_0207c744: .word func_ov00_0207c61c - 1 + + .global func_ov00_0207c748 + arm_func_start func_ov00_0207c748 +func_ov00_0207c748: ; 0x0207c748 + stmdb sp!, {r4, lr} + mov r4, r1 + ldr r1, [r4] + cmp r1, #0 + ldmeqia sp!, {r4, pc} + ldr r0, [r0] + bl func_020128bc + mov r0, #0 + str r0, [r4] + ldmia sp!, {r4, pc} + arm_func_end func_ov00_0207c748 + + .global func_ov00_0207c770 + thumb_func_start func_ov00_0207c770 +func_ov00_0207c770: ; 0x0207c770 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5] + add r6, r1, #0 + ldr r1, [r0, #4] + cmp r1, #0 + beq _0207c796 +_0207c77e: + add r0, r1, #0 + add r0, #0x9c + ldr r0, [r0] + ldr r4, [r1] + tst r0, r6 + beq _0207c790 + ldr r0, [r5] + blx func_020128bc +_0207c790: + add r1, r4, #0 + cmp r4, #0 + bne _0207c77e +_0207c796: + pop {r4, r5, r6, pc} + thumb_func_end func_ov00_0207c770 + + .global func_ov00_0207c798 + arm_func_start func_ov00_0207c798 +func_ov00_0207c798: ; 0x0207c798 + ldr r0, [r0] + ldr r3, [r0, #4] + cmp r3, #0 + bxeq lr + cmp r2, #0 + moveq r0, #1 + movne r0, #0 + mov r0, r0, lsl #0x1f +_0207c7b8: + ldr r2, [r3, #0x9c] + ldr ip, [r3] + tst r1, r2 + beq _0207c7d8 + ldr r2, [r3, #0x24] + bic r2, r2, #8 + orr r2, r2, r0, lsr #28 + str r2, [r3, #0x24] +_0207c7d8: + mov r3, ip + cmp ip, #0 + bne _0207c7b8 + bx lr + arm_func_end func_ov00_0207c798 + + .global func_ov00_0207c7e8 + arm_func_start func_ov00_0207c7e8 +func_ov00_0207c7e8: ; 0x0207c7e8 + ldr r3, _0207c800 ; =data_ov00_020d88cc + ldrh r2, [r0] + ldrb r1, [r3, r1] + cmp r2, r1 + strloh r1, [r0] + bx lr + .align 2, 0 + arm_func_end func_ov00_0207c7e8 +_0207c800: .word data_ov00_020d88cc + + .global func_ov00_0207c804 + thumb_func_start func_ov00_0207c804 +func_ov00_0207c804: ; 0x0207c804 + push {r3, r4, r5, r6, lr} + sub sp, #0x24 + ldr r3, _0207c8d0 ; =data_027e0f94 + add r6, r2, #0 + add r5, r0, #0 + add r4, r1, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0x18 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + ldr r0, _0207c8d4 ; =data_027e0d38 + ldr r0, [r0] + blx func_ov00_02078b40 + cmp r0, #2 + bne _0207c830 + ldr r1, [sp, #0x1c] + ldr r0, _0207c8d8 ; =0x0000019a + add r0, r1, r0 + str r0, [sp, #0x1c] + b _0207c876 +_0207c830: + cmp r5, #0 + beq _0207c840 + mov r0, #3 + ldr r1, [sp, #0x1c] + lsl r0, r0, #0xa + add r0, r1, r0 + str r0, [sp, #0x1c] + b _0207c876 +_0207c840: + ldr r0, _0207c8dc ; =data_027e0fcc + ldr r2, [sp, #0x18] + ldr r1, [r0] + add r1, #0x40 + add r0, r1, #0 + add r1, #0x84 + ldr r1, [r1] + add r0, #0x84 + add r2, r2, r1 + lsr r1, r2, #0x1f + add r1, r2, r1 + asr r1, r1, #1 + str r1, [sp, #0x18] + ldr r2, [sp, #0x1c] + ldr r1, [r0, #4] + add r2, r2, r1 + lsr r1, r2, #0x1f + add r1, r2, r1 + asr r1, r1, #1 + str r1, [sp, #0x1c] + ldr r1, [sp, #0x20] + ldr r0, [r0, #8] + add r1, r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r0, r0, #1 + str r0, [sp, #0x20] +_0207c876: + ldr r0, [sp, #0x18] + add r1, sp, #0xc + str r0, [sp, #0xc] + ldr r0, [sp, #0x1c] + add r2, sp, #8 + str r0, [sp, #0x10] + ldr r0, [sp, #0x20] + add r3, sp, #4 + str r0, [sp, #0x14] + mov r0, #1 + str r0, [sp] + ldr r0, _0207c8e0 ; =data_027e0f64 + ldr r0, [r0] + ldr r0, [r0, #4] + blx func_01ffe468 + cmp r0, #0 + beq _0207c8c8 + mov r1, #0x1f + ldr r2, [sp, #8] + mvn r1, r1 + cmp r2, r1 + blt _0207c8c8 + mov r0, #0x12 + lsl r0, r0, #4 + cmp r2, r0 + bge _0207c8c8 + ldr r0, [sp, #4] + add r1, #8 + cmp r0, r1 + blt _0207c8c8 + cmp r0, #0xd8 + bge _0207c8c8 + lsl r0, r2, #0xc + str r0, [r4] + ldr r0, [sp, #4] + add sp, #0x24 + lsl r0, r0, #0xc + str r0, [r6] + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_0207c8c8: + mov r0, #0 + add sp, #0x24 + pop {r3, r4, r5, r6, pc} + nop + thumb_func_end func_ov00_0207c804 +_0207c8d0: .word data_027e0f94 +_0207c8d4: .word data_027e0d38 +_0207c8d8: .word 0x0000019a +_0207c8dc: .word data_027e0fcc +_0207c8e0: .word data_027e0f64 + + .global func_ov00_0207c8e4 + thumb_func_start func_ov00_0207c8e4 +func_ov00_0207c8e4: ; 0x0207c8e4 + push {r3, lr} + add r3, r0, #0 + mov r0, #2 + lsl r0, r0, #0x12 + str r0, [r3, #8] + str r0, [r3] + mov r0, #6 + lsl r0, r0, #0x10 + str r0, [r3, #0xc] + str r0, [r3, #4] + cmp r2, #0 + beq _0207c91a + cmp r1, #0 + bne _0207c910 + add r0, r1, #0 + add r1, r3, #0 + add r3, #0xc + add r1, #8 + add r2, r3, #0 + bl func_ov00_0207c804 + pop {r3, pc} +_0207c910: + add r0, r1, #0 + add r1, r3, #0 + add r2, r3, #4 + bl func_ov00_0207c804 +_0207c91a: + pop {r3, pc} + thumb_func_end func_ov00_0207c8e4 + + .global func_ov00_0207c91c + arm_func_start func_ov00_0207c91c +func_ov00_0207c91c: ; 0x0207c91c + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r0, [r7, #0x10] + mov r6, r1 + mov r5, r2 + cmp r0, r6 + beq _0207c9d8 + subs r0, r6, r0 + rsbmi r0, r0, #0 + mov r0, r0, lsl #0xc + mov r1, r5, lsl #0xc + bl Divide + mov r4, r0 + ldr r2, [r7, #8] + cmp r4, #0x1000 + strle r2, [r7] + ble _0207c97c + ldr r0, [r7] + mov r1, r4 + sub r0, r2, r0 + bl Divide + ldr r1, [r7] + add r0, r1, r0 + str r0, [r7] +_0207c97c: + ldr r2, [r7, #0xc] + cmp r4, #0x1000 + strle r2, [r7, #4] + ble _0207c9a8 + ldr r0, [r7, #4] + mov r1, r4 + sub r0, r2, r0 + bl Divide + ldr r1, [r7, #4] + add r0, r1, r0 + str r0, [r7, #4] +_0207c9a8: + ldr r0, [r7, #0x10] + cmp r0, r6 + bge _0207c9c8 + add r0, r0, r5 + cmp r0, r6 + movge r0, r6 + str r0, [r7, #0x10] + b _0207c9d8 +_0207c9c8: + sub r0, r0, r5 + cmp r0, r6 + movle r0, r6 + str r0, [r7, #0x10] +_0207c9d8: + ldr r0, [r7, #0x10] + cmp r0, r6 + movne r0, #0 + ldmneia sp!, {r3, r4, r5, r6, r7, pc} + ldr r1, [r7, #8] + mov r0, #1 + str r1, [r7] + ldr r1, [r7, #0xc] + str r1, [r7, #4] + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end func_ov00_0207c91c + + .rodata + .global data_ov00_020d8798 +data_ov00_020d8798: ; 0x020d8798 + .byte 0x03 + .global data_ov00_020d8799 +data_ov00_020d8799: ; 0x020d8799 + .byte 0x03 + .global data_ov00_020d879a +data_ov00_020d879a: ; 0x020d879a + .byte 0x02 + .global data_ov00_020d879b +data_ov00_020d879b: ; 0x020d879b + .byte 0x02 + .global data_ov00_020d879c +data_ov00_020d879c: ; 0x020d879c + .byte 0x02 + .global data_ov00_020d879d +data_ov00_020d879d: ; 0x020d879d + .byte 0x01 + .global data_ov00_020d879e +data_ov00_020d879e: ; 0x020d879e + .byte 0x01 + .global data_ov00_020d879f +data_ov00_020d879f: ; 0x020d879f + .byte 0x00 + .global data_ov00_020d87a0 +data_ov00_020d87a0: ; 0x020d87a0 + .byte 0x80, 0x00, 0x00, 0x00 + .global data_ov00_020d87a4 +data_ov00_020d87a4: ; 0x020d87a4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87a8 +data_ov00_020d87a8: ; 0x020d87a8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87ac +data_ov00_020d87ac: ; 0x020d87ac + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87b0 +data_ov00_020d87b0: ; 0x020d87b0 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87b4 +data_ov00_020d87b4: ; 0x020d87b4 + .byte 0x80, 0x00, 0x00, 0x00 + .global data_ov00_020d87b8 +data_ov00_020d87b8: ; 0x020d87b8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87bc +data_ov00_020d87bc: ; 0x020d87bc + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87c0 +data_ov00_020d87c0: ; 0x020d87c0 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87c4 +data_ov00_020d87c4: ; 0x020d87c4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87c8 +data_ov00_020d87c8: ; 0x020d87c8 + .byte 0x80, 0xff, 0xff, 0xff + .global data_ov00_020d87cc +data_ov00_020d87cc: ; 0x020d87cc + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87d0 +data_ov00_020d87d0: ; 0x020d87d0 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87d4 +data_ov00_020d87d4: ; 0x020d87d4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87d8 +data_ov00_020d87d8: ; 0x020d87d8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87dc +data_ov00_020d87dc: ; 0x020d87dc + .byte 0x80, 0x00, 0x00, 0x00 + .global data_ov00_020d87e0 +data_ov00_020d87e0: ; 0x020d87e0 + .byte 0x00, 0x01, 0x00, 0x00 + .global data_ov00_020d87e4 +data_ov00_020d87e4: ; 0x020d87e4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87e8 +data_ov00_020d87e8: ; 0x020d87e8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87ec +data_ov00_020d87ec: ; 0x020d87ec + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87f0 +data_ov00_020d87f0: ; 0x020d87f0 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87f4 +data_ov00_020d87f4: ; 0x020d87f4 + .byte 0x00, 0x01, 0x00, 0x00 + .global data_ov00_020d87f8 +data_ov00_020d87f8: ; 0x020d87f8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d87fc +data_ov00_020d87fc: ; 0x020d87fc + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8800 +data_ov00_020d8800: ; 0x020d8800 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8804 +data_ov00_020d8804: ; 0x020d8804 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8808 +data_ov00_020d8808: ; 0x020d8808 + .byte 0x00, 0xff, 0xff, 0xff + .global data_ov00_020d880c +data_ov00_020d880c: ; 0x020d880c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8810 +data_ov00_020d8810: ; 0x020d8810 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8814 +data_ov00_020d8814: ; 0x020d8814 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8818 +data_ov00_020d8818: ; 0x020d8818 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d881c +data_ov00_020d881c: ; 0x020d881c + .byte 0x00, 0x01, 0x00, 0x00 + .global data_ov00_020d8820 +data_ov00_020d8820: ; 0x020d8820 + .byte 0x80, 0x01, 0x00, 0x00 + .global data_ov00_020d8824 +data_ov00_020d8824: ; 0x020d8824 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8828 +data_ov00_020d8828: ; 0x020d8828 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d882c +data_ov00_020d882c: ; 0x020d882c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8830 +data_ov00_020d8830: ; 0x020d8830 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8834 +data_ov00_020d8834: ; 0x020d8834 + .byte 0x80, 0x01, 0x00, 0x00 + .global data_ov00_020d8838 +data_ov00_020d8838: ; 0x020d8838 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d883c +data_ov00_020d883c: ; 0x020d883c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8840 +data_ov00_020d8840: ; 0x020d8840 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8844 +data_ov00_020d8844: ; 0x020d8844 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8848 +data_ov00_020d8848: ; 0x020d8848 + .byte 0x80, 0xfe, 0xff, 0xff + .global data_ov00_020d884c +data_ov00_020d884c: ; 0x020d884c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8850 +data_ov00_020d8850: ; 0x020d8850 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8854 +data_ov00_020d8854: ; 0x020d8854 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8858 +data_ov00_020d8858: ; 0x020d8858 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d885c +data_ov00_020d885c: ; 0x020d885c + .byte 0x80, 0x01, 0x00, 0x00 + .global data_ov00_020d8860 +data_ov00_020d8860: ; 0x020d8860 + .byte 0x00, 0x02, 0x00, 0x00 + .global data_ov00_020d8864 +data_ov00_020d8864: ; 0x020d8864 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8868 +data_ov00_020d8868: ; 0x020d8868 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d886c +data_ov00_020d886c: ; 0x020d886c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8870 +data_ov00_020d8870: ; 0x020d8870 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8874 +data_ov00_020d8874: ; 0x020d8874 + .byte 0x00, 0x02, 0x00, 0x00 + .global data_ov00_020d8878 +data_ov00_020d8878: ; 0x020d8878 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d887c +data_ov00_020d887c: ; 0x020d887c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8880 +data_ov00_020d8880: ; 0x020d8880 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8884 +data_ov00_020d8884: ; 0x020d8884 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8888 +data_ov00_020d8888: ; 0x020d8888 + .byte 0x00, 0xfe, 0xff, 0xff + .global data_ov00_020d888c +data_ov00_020d888c: ; 0x020d888c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8890 +data_ov00_020d8890: ; 0x020d8890 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8894 +data_ov00_020d8894: ; 0x020d8894 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d8898 +data_ov00_020d8898: ; 0x020d8898 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d889c +data_ov00_020d889c: ; 0x020d889c + .byte 0x00, 0x02, 0x00, 0x00 + .global data_ov00_020d88a0 +data_ov00_020d88a0: ; 0x020d88a0 + .byte 0x00, 0x00 + .global data_ov00_020d88a2 +data_ov00_020d88a2: ; 0x020d88a2 + .byte 0x06, 0x00 + .global data_ov00_020d88a4 +data_ov00_020d88a4: ; 0x020d88a4 + .byte 0x28, 0x00 + .global data_ov00_020d88a6 +data_ov00_020d88a6: ; 0x020d88a6 + .byte 0x20, 0x00 + .global data_ov00_020d88a8 +data_ov00_020d88a8: ; 0x020d88a8 + .byte 0x20, 0x00 + .global data_ov00_020d88aa +data_ov00_020d88aa: ; 0x020d88aa + .byte 0x20, 0x00 + .global data_ov00_020d88ac +data_ov00_020d88ac: ; 0x020d88ac + .byte 0x08, 0x00 + .global data_ov00_020d88ae +data_ov00_020d88ae: ; 0x020d88ae + .byte 0x14, 0x00 + .global data_ov00_020d88b0 +data_ov00_020d88b0: ; 0x020d88b0 + .byte 0x32, 0x00 + .global data_ov00_020d88b2 +data_ov00_020d88b2: ; 0x020d88b2 + .byte 0x00, 0x00 + .global data_ov00_020d88b4 +data_ov00_020d88b4: ; 0x020d88b4 + .ascii " !*+,-6789:" + .byte 0x00 + .global data_ov00_020d88c0 +data_ov00_020d88c0: ; 0x020d88c0 + .byte 0x00 + .global data_ov00_020d88c1 +data_ov00_020d88c1: ; 0x020d88c1 + .byte 0x00 + .global data_ov00_020d88c2 +data_ov00_020d88c2: ; 0x020d88c2 + .byte 0x00 + .global data_ov00_020d88c3 +data_ov00_020d88c3: ; 0x020d88c3 + .byte 0x00 + .global data_ov00_020d88c4 +data_ov00_020d88c4: ; 0x020d88c4 + .byte 0x00 + .global data_ov00_020d88c5 +data_ov00_020d88c5: ; 0x020d88c5 + .byte 0x00 + .global data_ov00_020d88c6 +data_ov00_020d88c6: ; 0x020d88c6 + .byte 0x00 + .global data_ov00_020d88c7 +data_ov00_020d88c7: ; 0x020d88c7 + .byte 0x00 + .global data_ov00_020d88c8 +data_ov00_020d88c8: ; 0x020d88c8 + .byte 0x00 + .global data_ov00_020d88c9 +data_ov00_020d88c9: ; 0x020d88c9 + .byte 0x3b + .global data_ov00_020d88ca +data_ov00_020d88ca: ; 0x020d88ca + .byte 0x3f + .global data_ov00_020d88cb +data_ov00_020d88cb: ; 0x020d88cb + .byte 0x00 + .global data_ov00_020d88cc +data_ov00_020d88cc: ; 0x020d88cc + .byte 0x06 + .global data_ov00_020d88cd +data_ov00_020d88cd: ; 0x020d88cd + .byte 0x0c + .global data_ov00_020d88ce +data_ov00_020d88ce: ; 0x020d88ce + .byte 0x12 + .global data_ov00_020d88cf +data_ov00_020d88cf: ; 0x020d88cf + .byte 0x00 + + .section .init, 4, 1, 4 + + .global func_ov00_020df3b8 + arm_func_start func_ov00_020df3b8 +func_ov00_020df3b8: ; 0x020df3b8 + ldr ip, _020df3c4 ; =func_ov00_0207b278 + ldr r0, _020df3c8 ; =data_027e0db0 + bx ip + .align 2, 0 + arm_func_end func_ov00_020df3b8 +_020df3c4: .word func_ov00_0207b278 +_020df3c8: .word data_027e0db0 + + .global func_ov00_020df3cc + arm_func_start func_ov00_020df3cc +func_ov00_020df3cc: ; 0x020df3cc + ldr r0, _020df3dc ; =data_ov00_020e9c88 + mov r1, #0 + str r1, [r0, #0x180] + bx lr + .align 2, 0 + arm_func_end func_ov00_020df3cc +_020df3dc: .word data_ov00_020e9c88 + + .global func_ov00_020df3e0 + arm_func_start func_ov00_020df3e0 +func_ov00_020df3e0: ; 0x020df3e0 + ldr ip, _020df3ec ; =func_ov08_021136fc + ldr r0, _020df3f0 ; =data_027e0dbc + bx ip + .align 2, 0 + arm_func_end func_ov00_020df3e0 +_020df3ec: .word func_ov08_021136fc +_020df3f0: .word data_027e0dbc + + .global func_ov00_020df3f4 + arm_func_start func_ov00_020df3f4 +func_ov00_020df3f4: ; 0x020df3f4 + stmdb sp!, {r3, lr} + ldr r0, _020df414 ; =data_ov00_020e9e18 + bl func_ov08_02113730 + ldr r0, _020df414 ; =data_ov00_020e9e18 + ldr r1, _020df418 ; =func_ov00_0207bab4 + ldr r2, _020df41c ; =data_ov00_020e9e0c + bl __register_global_object + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end func_ov00_020df3f4 +_020df414: .word data_ov00_020e9e18 +_020df418: .word func_ov00_0207bab4 - 1 +_020df41c: .word data_ov00_020e9e0c + + .global func_ov00_020df420 + arm_func_start func_ov00_020df420 +func_ov00_020df420: ; 0x020df420 + stmdb sp!, {r3, lr} + ldr r3, _020df450 ; =data_027e0de4 + mov r0, #0 + ldr r1, _020df454 ; =data_027e0de8 + mov r2, #0x20 + str r0, [r3] + bl func_02007938 + ldr r1, _020df458 ; =data_027e0e08 + mov r0, #0 + mov r2, #0x20 + bl func_02007938 + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end func_ov00_020df420 +_020df450: .word data_027e0de4 +_020df454: .word data_027e0de8 +_020df458: .word data_027e0e08 + + .global func_ov00_020df45c + arm_func_start func_ov00_020df45c +func_ov00_020df45c: ; 0x020df45c + ldr r0, _020df46c ; =data_027e0e28 + mov r1, #0 + str r1, [r0] + bx lr + .align 2, 0 + arm_func_end func_ov00_020df45c +_020df46c: .word data_027e0e28 + + .global func_ov00_020df470 + arm_func_start func_ov00_020df470 +func_ov00_020df470: ; 0x020df470 + ldr r0, _020df49c ; =data_027e0e2c + mov r1, #0x80000 + str r1, [r0, #0x20] + str r1, [r0, #0x18] + mov r1, #0x60000 + str r1, [r0, #0x24] + str r1, [r0, #0x1c] + mov r1, #0 + ldr ip, _020df4a0 ; =func_ov00_0207bcb4 + str r1, [r0, #0x28] + bx ip + .align 2, 0 + arm_func_end func_ov00_020df470 +_020df49c: .word data_027e0e2c +_020df4a0: .word func_ov00_0207bcb4 + + .global func_ov00_020df4a4 + arm_func_start func_ov00_020df4a4 +func_ov00_020df4a4: ; 0x020df4a4 + ldr ip, _020df4b0 ; =func_ov08_02113aa8 + ldr r0, _020df4b4 ; =data_ov00_020ec7dc + bx ip + .align 2, 0 + arm_func_end func_ov00_020df4a4 +_020df4b0: .word func_ov08_02113aa8 +_020df4b4: .word data_ov00_020ec7dc + + .global func_ov00_020df4b8 + arm_func_start func_ov00_020df4b8 +func_ov00_020df4b8: ; 0x020df4b8 + ldr r0, _020df4c8 ; =data_027e0e5c + mov r1, #0 + strh r1, [r0] + bx lr + .align 2, 0 + arm_func_end func_ov00_020df4b8 +_020df4c8: .word data_027e0e5c + + .section .ctor, 4, 1, 4 + .global data_ov00_020e1e94 +data_ov00_020e1e94: ; 0x020e1e94 + .word func_ov00_020df38c + .global data_ov00_020e1e98 +data_ov00_020e1e98: ; 0x020e1e98 + .word func_ov00_020df3b8 + .global data_ov00_020e1e9c +data_ov00_020e1e9c: ; 0x020e1e9c + .word func_ov00_020df3cc + .global data_ov00_020e1ea0 +data_ov00_020e1ea0: ; 0x020e1ea0 + .word func_ov00_020df3e0 + .global data_ov00_020e1ea4 +data_ov00_020e1ea4: ; 0x020e1ea4 + .word func_ov00_020df3f4 + .global data_ov00_020e1ea8 +data_ov00_020e1ea8: ; 0x020e1ea8 + .word func_ov00_020df420 + .global data_ov00_020e1eac +data_ov00_020e1eac: ; 0x020e1eac + .word func_ov00_020df45c + .global data_ov00_020e1eb0 +data_ov00_020e1eb0: ; 0x020e1eb0 + .word func_ov00_020df470 + .global data_ov00_020e1eb4 +data_ov00_020e1eb4: ; 0x020e1eb4 + .word func_ov00_020df4a4 + .global data_ov00_020e1eb8 +data_ov00_020e1eb8: ; 0x020e1eb8 + .word func_ov00_020df4b8 + + .data + .global data_ov00_020e2044 +data_ov00_020e2044: ; 0x020e2044 + .ascii "Menu/Bg/Color0.NCLR" + .byte 0x00 + + .bss + .global data_ov00_020e9c70 +data_ov00_020e9c70: + .space 0x4 + .global data_ov00_020e9c74 +data_ov00_020e9c74: + .space 0x4 + .global data_ov00_020e9c78 +data_ov00_020e9c78: + .space 0x4 + .global data_ov00_020e9c7c +data_ov00_020e9c7c: + .space 0x4 + .global data_ov00_020e9c80 +data_ov00_020e9c80: + .space 0x4 + .global data_ov00_020e9c84 +data_ov00_020e9c84: + .space 0x4 + .global data_ov00_020e9c88 +data_ov00_020e9c88: + .space 0x4 + .global data_ov00_020e9c8c +data_ov00_020e9c8c: + .space 0x4 + .global data_ov00_020e9c90 +data_ov00_020e9c90: + .space 0x4 + .global data_ov00_020e9c94 +data_ov00_020e9c94: + .space 0x4 + .global data_ov00_020e9c98 +data_ov00_020e9c98: + .space 0x4 + .global data_ov00_020e9c9c +data_ov00_020e9c9c: + .space 0x4 + .global data_ov00_020e9ca0 +data_ov00_020e9ca0: + .space 0x4 + .global data_ov00_020e9ca4 +data_ov00_020e9ca4: + .space 0x4 + .global data_ov00_020e9ca8 +data_ov00_020e9ca8: + .space 0x4 + .global data_ov00_020e9cac +data_ov00_020e9cac: + .space 0x4 + .global data_ov00_020e9cb0 +data_ov00_020e9cb0: + .space 0x4 + .global data_ov00_020e9cb4 +data_ov00_020e9cb4: + .space 0x4 + .global data_ov00_020e9cb8 +data_ov00_020e9cb8: + .space 0x4 + .global data_ov00_020e9cbc +data_ov00_020e9cbc: + .space 0x4 + .global data_ov00_020e9cc0 +data_ov00_020e9cc0: + .space 0x4 + .global data_ov00_020e9cc4 +data_ov00_020e9cc4: + .space 0x4 + .global data_ov00_020e9cc8 +data_ov00_020e9cc8: + .space 0x4 + .global data_ov00_020e9ccc +data_ov00_020e9ccc: + .space 0x4 + .global data_ov00_020e9cd0 +data_ov00_020e9cd0: + .space 0x4 + .global data_ov00_020e9cd4 +data_ov00_020e9cd4: + .space 0x4 + .global data_ov00_020e9cd8 +data_ov00_020e9cd8: + .space 0x4 + .global data_ov00_020e9cdc +data_ov00_020e9cdc: + .space 0x4 + .global data_ov00_020e9ce0 +data_ov00_020e9ce0: + .space 0x4 + .global data_ov00_020e9ce4 +data_ov00_020e9ce4: + .space 0x4 + .global data_ov00_020e9ce8 +data_ov00_020e9ce8: + .space 0x4 + .global data_ov00_020e9cec +data_ov00_020e9cec: + .space 0x4 + .global data_ov00_020e9cf0 +data_ov00_020e9cf0: + .space 0x4 + .global data_ov00_020e9cf4 +data_ov00_020e9cf4: + .space 0x4 + .global data_ov00_020e9cf8 +data_ov00_020e9cf8: + .space 0x4 + .global data_ov00_020e9cfc +data_ov00_020e9cfc: + .space 0x4 + .global data_ov00_020e9d00 +data_ov00_020e9d00: + .space 0x4 + .global data_ov00_020e9d04 +data_ov00_020e9d04: + .space 0x4 + .global data_ov00_020e9d08 +data_ov00_020e9d08: + .space 0x4 + .global data_ov00_020e9d0c +data_ov00_020e9d0c: + .space 0x4 + .global data_ov00_020e9d10 +data_ov00_020e9d10: + .space 0x4 + .global data_ov00_020e9d14 +data_ov00_020e9d14: + .space 0x4 + .global data_ov00_020e9d18 +data_ov00_020e9d18: + .space 0x4 + .global data_ov00_020e9d1c +data_ov00_020e9d1c: + .space 0x4 + .global data_ov00_020e9d20 +data_ov00_020e9d20: + .space 0x4 + .global data_ov00_020e9d24 +data_ov00_020e9d24: + .space 0x4 + .global data_ov00_020e9d28 +data_ov00_020e9d28: + .space 0x4 + .global data_ov00_020e9d2c +data_ov00_020e9d2c: + .space 0x4 + .global data_ov00_020e9d30 +data_ov00_020e9d30: + .space 0x4 + .global data_ov00_020e9d34 +data_ov00_020e9d34: + .space 0x4 + .global data_ov00_020e9d38 +data_ov00_020e9d38: + .space 0x4 + .global data_ov00_020e9d3c +data_ov00_020e9d3c: + .space 0x4 + .global data_ov00_020e9d40 +data_ov00_020e9d40: + .space 0x4 + .global data_ov00_020e9d44 +data_ov00_020e9d44: + .space 0x4 + .global data_ov00_020e9d48 +data_ov00_020e9d48: + .space 0x4 + .global data_ov00_020e9d4c +data_ov00_020e9d4c: + .space 0x4 + .global data_ov00_020e9d50 +data_ov00_020e9d50: + .space 0x4 + .global data_ov00_020e9d54 +data_ov00_020e9d54: + .space 0x4 + .global data_ov00_020e9d58 +data_ov00_020e9d58: + .space 0x4 + .global data_ov00_020e9d5c +data_ov00_020e9d5c: + .space 0x4 + .global data_ov00_020e9d60 +data_ov00_020e9d60: + .space 0x4 + .global data_ov00_020e9d64 +data_ov00_020e9d64: + .space 0x4 + .global data_ov00_020e9d68 +data_ov00_020e9d68: + .space 0x4 + .global data_ov00_020e9d6c +data_ov00_020e9d6c: + .space 0x4 + .global data_ov00_020e9d70 +data_ov00_020e9d70: + .space 0x4 + .global data_ov00_020e9d74 +data_ov00_020e9d74: + .space 0x4 + .global data_ov00_020e9d78 +data_ov00_020e9d78: + .space 0x4 + .global data_ov00_020e9d7c +data_ov00_020e9d7c: + .space 0x4 + .global data_ov00_020e9d80 +data_ov00_020e9d80: + .space 0x4 + .global data_ov00_020e9d84 +data_ov00_020e9d84: + .space 0x4 + .global data_ov00_020e9d88 +data_ov00_020e9d88: + .space 0x4 + .global data_ov00_020e9d8c +data_ov00_020e9d8c: + .space 0x4 + .global data_ov00_020e9d90 +data_ov00_020e9d90: + .space 0x4 + .global data_ov00_020e9d94 +data_ov00_020e9d94: + .space 0x4 + .global data_ov00_020e9d98 +data_ov00_020e9d98: + .space 0x4 + .global data_ov00_020e9d9c +data_ov00_020e9d9c: + .space 0x4 + .global data_ov00_020e9da0 +data_ov00_020e9da0: + .space 0x4 + .global data_ov00_020e9da4 +data_ov00_020e9da4: + .space 0x4 + .global data_ov00_020e9da8 +data_ov00_020e9da8: + .space 0x4 + .global data_ov00_020e9dac +data_ov00_020e9dac: + .space 0x4 + .global data_ov00_020e9db0 +data_ov00_020e9db0: + .space 0x4 + .global data_ov00_020e9db4 +data_ov00_020e9db4: + .space 0x4 + .global data_ov00_020e9db8 +data_ov00_020e9db8: + .space 0x4 + .global data_ov00_020e9dbc +data_ov00_020e9dbc: + .space 0x4 + .global data_ov00_020e9dc0 +data_ov00_020e9dc0: + .space 0x4 + .global data_ov00_020e9dc4 +data_ov00_020e9dc4: + .space 0x4 + .global data_ov00_020e9dc8 +data_ov00_020e9dc8: + .space 0x4 + .global data_ov00_020e9dcc +data_ov00_020e9dcc: + .space 0x4 + .global data_ov00_020e9dd0 +data_ov00_020e9dd0: + .space 0x4 + .global data_ov00_020e9dd4 +data_ov00_020e9dd4: + .space 0x4 + .global data_ov00_020e9dd8 +data_ov00_020e9dd8: + .space 0x4 + .global data_ov00_020e9ddc +data_ov00_020e9ddc: + .space 0x4 + .global data_ov00_020e9de0 +data_ov00_020e9de0: + .space 0x4 + .global data_ov00_020e9de4 +data_ov00_020e9de4: + .space 0x4 + .global data_ov00_020e9de8 +data_ov00_020e9de8: + .space 0x4 + .global data_ov00_020e9dec +data_ov00_020e9dec: + .space 0x4 + .global data_ov00_020e9df0 +data_ov00_020e9df0: + .space 0x4 + .global data_ov00_020e9df4 +data_ov00_020e9df4: + .space 0x4 + .global data_ov00_020e9df8 +data_ov00_020e9df8: + .space 0x4 + .global data_ov00_020e9dfc +data_ov00_020e9dfc: + .space 0x4 + .global data_ov00_020e9e00 +data_ov00_020e9e00: + .space 0x4 + .global data_ov00_020e9e04 +data_ov00_020e9e04: + .space 0x4 + .global data_ov00_020e9e08 +data_ov00_020e9e08: + .space 0x4 + .global data_ov00_020e9e0c +data_ov00_020e9e0c: + .space 0x4 + .global data_ov00_020e9e10 +data_ov00_020e9e10: + .space 0x4 + .global data_ov00_020e9e14 +data_ov00_020e9e14: + .space 0x4 + .global data_ov00_020e9e18 +data_ov00_020e9e18: + .space 0x4 + .global data_ov00_020e9e1c +data_ov00_020e9e1c: + .space 0x4 + .global data_ov00_020e9e20 +data_ov00_020e9e20: + .space 0x4 + .global data_ov00_020e9e24 +data_ov00_020e9e24: + .space 0x4 + .global data_ov00_020e9e28 +data_ov00_020e9e28: + .space 0x4 + .global data_ov00_020e9e2c +data_ov00_020e9e2c: + .space 0x4 + .global data_ov00_020e9e30 +data_ov00_020e9e30: + .space 0x4 + .global data_ov00_020e9e34 +data_ov00_020e9e34: + .space 0x4 + .global data_ov00_020e9e38 +data_ov00_020e9e38: + .space 0x4 + .global data_ov00_020e9e3c +data_ov00_020e9e3c: + .space 0x4 + .global data_ov00_020e9e40 +data_ov00_020e9e40: + .space 0x4 + .global data_ov00_020e9e44 +data_ov00_020e9e44: + .space 0x4 + .global data_ov00_020e9e48 +data_ov00_020e9e48: + .space 0x4 + .global data_ov00_020e9e4c +data_ov00_020e9e4c: + .space 0x4 + .global data_ov00_020e9e50 +data_ov00_020e9e50: + .space 0x4 + .global data_ov00_020e9e54 +data_ov00_020e9e54: + .space 0x4 + .global data_ov00_020e9e58 +data_ov00_020e9e58: + .space 0x4 + .global data_ov00_020e9e5c +data_ov00_020e9e5c: + .space 0x4 + .global data_ov00_020e9e60 +data_ov00_020e9e60: + .space 0x4 + .global data_ov00_020e9e64 +data_ov00_020e9e64: + .space 0x4 + .global data_ov00_020e9e68 +data_ov00_020e9e68: + .space 0x4 + .global data_ov00_020e9e6c +data_ov00_020e9e6c: + .space 0x4 + .global data_ov00_020e9e70 +data_ov00_020e9e70: + .space 0x4 + .global data_ov00_020e9e74 +data_ov00_020e9e74: + .space 0x4 + .global data_ov00_020e9e78 +data_ov00_020e9e78: + .space 0x4 + .global data_ov00_020e9e7c +data_ov00_020e9e7c: + .space 0x4 + .global data_ov00_020e9e80 +data_ov00_020e9e80: + .space 0x4 + .global data_ov00_020e9e84 +data_ov00_020e9e84: + .space 0x4 + .global data_ov00_020e9e88 +data_ov00_020e9e88: + .space 0x4 + .global data_ov00_020e9e8c +data_ov00_020e9e8c: + .space 0x4 + .global data_ov00_020e9e90 +data_ov00_020e9e90: + .space 0x4 + .global data_ov00_020e9e94 +data_ov00_020e9e94: + .space 0x4 + .global data_ov00_020e9e98 +data_ov00_020e9e98: + .space 0x4 + .global data_ov00_020e9e9c +data_ov00_020e9e9c: + .space 0x4 + .global data_ov00_020e9ea0 +data_ov00_020e9ea0: + .space 0x4 + .global data_ov00_020e9ea4 +data_ov00_020e9ea4: + .space 0x4 + .global data_ov00_020e9ea8 +data_ov00_020e9ea8: + .space 0x4 + .global data_ov00_020e9eac +data_ov00_020e9eac: + .space 0x4 + .global data_ov00_020e9eb0 +data_ov00_020e9eb0: + .space 0x4 + .global data_ov00_020e9eb4 +data_ov00_020e9eb4: + .space 0x4 + .global data_ov00_020e9eb8 +data_ov00_020e9eb8: + .space 0x4 + .global data_ov00_020e9ebc +data_ov00_020e9ebc: + .space 0x4 + .global data_ov00_020e9ec0 +data_ov00_020e9ec0: + .space 0x4 + .global data_ov00_020e9ec4 +data_ov00_020e9ec4: + .space 0x4 + .global data_ov00_020e9ec8 +data_ov00_020e9ec8: + .space 0x4 + .global data_ov00_020e9ecc +data_ov00_020e9ecc: + .space 0x4 + .global data_ov00_020e9ed0 +data_ov00_020e9ed0: + .space 0x4 + .global data_ov00_020e9ed4 +data_ov00_020e9ed4: + .space 0x4 + .global data_ov00_020e9ed8 +data_ov00_020e9ed8: + .space 0x4 + .global data_ov00_020e9edc +data_ov00_020e9edc: + .space 0x4 + .global data_ov00_020e9ee0 +data_ov00_020e9ee0: + .space 0x4 + .global data_ov00_020e9ee4 +data_ov00_020e9ee4: + .space 0x4 + .global data_ov00_020e9ee8 +data_ov00_020e9ee8: + .space 0x4 + .global data_ov00_020e9eec +data_ov00_020e9eec: + .space 0x4 + .global data_ov00_020e9ef0 +data_ov00_020e9ef0: + .space 0x4 + .global data_ov00_020e9ef4 +data_ov00_020e9ef4: + .space 0x4 + .global data_ov00_020e9ef8 +data_ov00_020e9ef8: + .space 0x4 + .global data_ov00_020e9efc +data_ov00_020e9efc: + .space 0x4 + .global data_ov00_020e9f00 +data_ov00_020e9f00: + .space 0x4 + .global data_ov00_020e9f04 +data_ov00_020e9f04: + .space 0x4 + .global data_ov00_020e9f08 +data_ov00_020e9f08: + .space 0x4 + .global data_ov00_020e9f0c +data_ov00_020e9f0c: + .space 0x4 + .global data_ov00_020e9f10 +data_ov00_020e9f10: + .space 0x4 + .global data_ov00_020e9f14 +data_ov00_020e9f14: + .space 0x4 + .global data_ov00_020e9f18 +data_ov00_020e9f18: + .space 0x4 + .global data_ov00_020e9f1c +data_ov00_020e9f1c: + .space 0x4 + .global data_ov00_020e9f20 +data_ov00_020e9f20: + .space 0x4 + .global data_ov00_020e9f24 +data_ov00_020e9f24: + .space 0x4 + .global data_ov00_020e9f28 +data_ov00_020e9f28: + .space 0x4 + .global data_ov00_020e9f2c +data_ov00_020e9f2c: + .space 0x4 + .global data_ov00_020e9f30 +data_ov00_020e9f30: + .space 0x4 + .global data_ov00_020e9f34 +data_ov00_020e9f34: + .space 0x4 + .global data_ov00_020e9f38 +data_ov00_020e9f38: + .space 0x4 + .global data_ov00_020e9f3c +data_ov00_020e9f3c: + .space 0x4 + .global data_ov00_020e9f40 +data_ov00_020e9f40: + .space 0x4 + .global data_ov00_020e9f44 +data_ov00_020e9f44: + .space 0x4 + .global data_ov00_020e9f48 +data_ov00_020e9f48: + .space 0x4 + .global data_ov00_020e9f4c +data_ov00_020e9f4c: + .space 0x4 + .global data_ov00_020e9f50 +data_ov00_020e9f50: + .space 0x4 + .global data_ov00_020e9f54 +data_ov00_020e9f54: + .space 0x4 + .global data_ov00_020e9f58 +data_ov00_020e9f58: + .space 0x4 + .global data_ov00_020e9f5c +data_ov00_020e9f5c: + .space 0x4 + .global data_ov00_020e9f60 +data_ov00_020e9f60: + .space 0x4 + .global data_ov00_020e9f64 +data_ov00_020e9f64: + .space 0x4 + .global data_ov00_020e9f68 +data_ov00_020e9f68: + .space 0x4 + .global data_ov00_020e9f6c +data_ov00_020e9f6c: + .space 0x4 + .global data_ov00_020e9f70 +data_ov00_020e9f70: + .space 0x4 + .global data_ov00_020e9f74 +data_ov00_020e9f74: + .space 0x4 + .global data_ov00_020e9f78 +data_ov00_020e9f78: + .space 0x4 + .global data_ov00_020e9f7c +data_ov00_020e9f7c: + .space 0x4 + .global data_ov00_020e9f80 +data_ov00_020e9f80: + .space 0x4 + .global data_ov00_020e9f84 +data_ov00_020e9f84: + .space 0x4 + .global data_ov00_020e9f88 +data_ov00_020e9f88: + .space 0x4 + .global data_ov00_020e9f8c +data_ov00_020e9f8c: + .space 0x4 + .global data_ov00_020e9f90 +data_ov00_020e9f90: + .space 0x4 + .global data_ov00_020e9f94 +data_ov00_020e9f94: + .space 0x4 + .global data_ov00_020e9f98 +data_ov00_020e9f98: + .space 0x4 + .global data_ov00_020e9f9c +data_ov00_020e9f9c: + .space 0x4 + .global data_ov00_020e9fa0 +data_ov00_020e9fa0: + .space 0x4 + .global data_ov00_020e9fa4 +data_ov00_020e9fa4: + .space 0x4 + .global data_ov00_020e9fa8 +data_ov00_020e9fa8: + .space 0x4 + .global data_ov00_020e9fac +data_ov00_020e9fac: + .space 0x4 + .global data_ov00_020e9fb0 +data_ov00_020e9fb0: + .space 0x4 + .global data_ov00_020e9fb4 +data_ov00_020e9fb4: + .space 0x4 + .global data_ov00_020e9fb8 +data_ov00_020e9fb8: + .space 0x4 + .global data_ov00_020e9fbc +data_ov00_020e9fbc: + .space 0x4 + .global data_ov00_020e9fc0 +data_ov00_020e9fc0: + .space 0x4 + .global data_ov00_020e9fc4 +data_ov00_020e9fc4: + .space 0x4 + .global data_ov00_020e9fc8 +data_ov00_020e9fc8: + .space 0x4 + .global data_ov00_020e9fcc +data_ov00_020e9fcc: + .space 0x4 + .global data_ov00_020e9fd0 +data_ov00_020e9fd0: + .space 0x4 + .global data_ov00_020e9fd4 +data_ov00_020e9fd4: + .space 0x4 + .global data_ov00_020e9fd8 +data_ov00_020e9fd8: + .space 0x4 + .global data_ov00_020e9fdc +data_ov00_020e9fdc: + .space 0x4 + .global data_ov00_020e9fe0 +data_ov00_020e9fe0: + .space 0x4 + .global data_ov00_020e9fe4 +data_ov00_020e9fe4: + .space 0x4 + .global data_ov00_020e9fe8 +data_ov00_020e9fe8: + .space 0x4 + .global data_ov00_020e9fec +data_ov00_020e9fec: + .space 0x4 + .global data_ov00_020e9ff0 +data_ov00_020e9ff0: + .space 0x4 + .global data_ov00_020e9ff4 +data_ov00_020e9ff4: + .space 0x4 + .global data_ov00_020e9ff8 +data_ov00_020e9ff8: + .space 0x4 + .global data_ov00_020e9ffc +data_ov00_020e9ffc: + .space 0x4 + .global data_ov00_020ea000 +data_ov00_020ea000: + .space 0x4 + .global data_ov00_020ea004 +data_ov00_020ea004: + .space 0x4 + .global data_ov00_020ea008 +data_ov00_020ea008: + .space 0x4 + .global data_ov00_020ea00c +data_ov00_020ea00c: + .space 0x4 + .global data_ov00_020ea010 +data_ov00_020ea010: + .space 0x4 + .global data_ov00_020ea014 +data_ov00_020ea014: + .space 0x4 + .global data_ov00_020ea018 +data_ov00_020ea018: + .space 0x4 + .global data_ov00_020ea01c +data_ov00_020ea01c: + .space 0x4 + .global data_ov00_020ea020 +data_ov00_020ea020: + .space 0x4 + .global data_ov00_020ea024 +data_ov00_020ea024: + .space 0x4 + .global data_ov00_020ea028 +data_ov00_020ea028: + .space 0x4 + .global data_ov00_020ea02c +data_ov00_020ea02c: + .space 0x4 + .global data_ov00_020ea030 +data_ov00_020ea030: + .space 0x4 + .global data_ov00_020ea034 +data_ov00_020ea034: + .space 0x4 + .global data_ov00_020ea038 +data_ov00_020ea038: + .space 0x4 + .global data_ov00_020ea03c +data_ov00_020ea03c: + .space 0x4 + .global data_ov00_020ea040 +data_ov00_020ea040: + .space 0x4 + .global data_ov00_020ea044 +data_ov00_020ea044: + .space 0x4 + .global data_ov00_020ea048 +data_ov00_020ea048: + .space 0x4 + .global data_ov00_020ea04c +data_ov00_020ea04c: + .space 0x4 + .global data_ov00_020ea050 +data_ov00_020ea050: + .space 0x4 + .global data_ov00_020ea054 +data_ov00_020ea054: + .space 0x4 + .global data_ov00_020ea058 +data_ov00_020ea058: + .space 0x4 + .global data_ov00_020ea05c +data_ov00_020ea05c: + .space 0x4 + .global data_ov00_020ea060 +data_ov00_020ea060: + .space 0x4 + .global data_ov00_020ea064 +data_ov00_020ea064: + .space 0x4 + .global data_ov00_020ea068 +data_ov00_020ea068: + .space 0x4 + .global data_ov00_020ea06c +data_ov00_020ea06c: + .space 0x4 + .global data_ov00_020ea070 +data_ov00_020ea070: + .space 0x4 + .global data_ov00_020ea074 +data_ov00_020ea074: + .space 0x4 + .global data_ov00_020ea078 +data_ov00_020ea078: + .space 0x4 + .global data_ov00_020ea07c +data_ov00_020ea07c: + .space 0x4 + .global data_ov00_020ea080 +data_ov00_020ea080: + .space 0x4 + .global data_ov00_020ea084 +data_ov00_020ea084: + .space 0x4 + .global data_ov00_020ea088 +data_ov00_020ea088: + .space 0x4 + .global data_ov00_020ea08c +data_ov00_020ea08c: + .space 0x4 + .global data_ov00_020ea090 +data_ov00_020ea090: + .space 0x4 + .global data_ov00_020ea094 +data_ov00_020ea094: + .space 0x4 + .global data_ov00_020ea098 +data_ov00_020ea098: + .space 0x4 + .global data_ov00_020ea09c +data_ov00_020ea09c: + .space 0x4 + .global data_ov00_020ea0a0 +data_ov00_020ea0a0: + .space 0x4 + .global data_ov00_020ea0a4 +data_ov00_020ea0a4: + .space 0x4 + .global data_ov00_020ea0a8 +data_ov00_020ea0a8: + .space 0x4 + .global data_ov00_020ea0ac +data_ov00_020ea0ac: + .space 0x4 + .global data_ov00_020ea0b0 +data_ov00_020ea0b0: + .space 0x4 + .global data_ov00_020ea0b4 +data_ov00_020ea0b4: + .space 0x4 + .global data_ov00_020ea0b8 +data_ov00_020ea0b8: + .space 0x4 + .global data_ov00_020ea0bc +data_ov00_020ea0bc: + .space 0x4 + .global data_ov00_020ea0c0 +data_ov00_020ea0c0: + .space 0x4 + .global data_ov00_020ea0c4 +data_ov00_020ea0c4: + .space 0x4 + .global data_ov00_020ea0c8 +data_ov00_020ea0c8: + .space 0x4 + .global data_ov00_020ea0cc +data_ov00_020ea0cc: + .space 0x4 + .global data_ov00_020ea0d0 +data_ov00_020ea0d0: + .space 0x4 + .global data_ov00_020ea0d4 +data_ov00_020ea0d4: + .space 0x4 + .global data_ov00_020ea0d8 +data_ov00_020ea0d8: + .space 0x4 + .global data_ov00_020ea0dc +data_ov00_020ea0dc: + .space 0x4 + .global data_ov00_020ea0e0 +data_ov00_020ea0e0: + .space 0x4 + .global data_ov00_020ea0e4 +data_ov00_020ea0e4: + .space 0x4 + .global data_ov00_020ea0e8 +data_ov00_020ea0e8: + .space 0x4 + .global data_ov00_020ea0ec +data_ov00_020ea0ec: + .space 0x4 + .global data_ov00_020ea0f0 +data_ov00_020ea0f0: + .space 0x4 + .global data_ov00_020ea0f4 +data_ov00_020ea0f4: + .space 0x4 + .global data_ov00_020ea0f8 +data_ov00_020ea0f8: + .space 0x4 + .global data_ov00_020ea0fc +data_ov00_020ea0fc: + .space 0x4 + .global data_ov00_020ea100 +data_ov00_020ea100: + .space 0x4 + .global data_ov00_020ea104 +data_ov00_020ea104: + .space 0x4 + .global data_ov00_020ea108 +data_ov00_020ea108: + .space 0x4 + .global data_ov00_020ea10c +data_ov00_020ea10c: + .space 0x4 + .global data_ov00_020ea110 +data_ov00_020ea110: + .space 0x4 + .global data_ov00_020ea114 +data_ov00_020ea114: + .space 0x4 + .global data_ov00_020ea118 +data_ov00_020ea118: + .space 0x4 + .global data_ov00_020ea11c +data_ov00_020ea11c: + .space 0x4 + .global data_ov00_020ea120 +data_ov00_020ea120: + .space 0x4 + .global data_ov00_020ea124 +data_ov00_020ea124: + .space 0x4 + .global data_ov00_020ea128 +data_ov00_020ea128: + .space 0x4 + .global data_ov00_020ea12c +data_ov00_020ea12c: + .space 0x4 + .global data_ov00_020ea130 +data_ov00_020ea130: + .space 0x4 + .global data_ov00_020ea134 +data_ov00_020ea134: + .space 0x4 + .global data_ov00_020ea138 +data_ov00_020ea138: + .space 0x4 + .global data_ov00_020ea13c +data_ov00_020ea13c: + .space 0x4 + .global data_ov00_020ea140 +data_ov00_020ea140: + .space 0x4 + .global data_ov00_020ea144 +data_ov00_020ea144: + .space 0x4 + .global data_ov00_020ea148 +data_ov00_020ea148: + .space 0x4 + .global data_ov00_020ea14c +data_ov00_020ea14c: + .space 0x4 + .global data_ov00_020ea150 +data_ov00_020ea150: + .space 0x4 + .global data_ov00_020ea154 +data_ov00_020ea154: + .space 0x4 + .global data_ov00_020ea158 +data_ov00_020ea158: + .space 0x4 + .global data_ov00_020ea15c +data_ov00_020ea15c: + .space 0x4 + .global data_ov00_020ea160 +data_ov00_020ea160: + .space 0x4 + .global data_ov00_020ea164 +data_ov00_020ea164: + .space 0x4 + .global data_ov00_020ea168 +data_ov00_020ea168: + .space 0x4 + .global data_ov00_020ea16c +data_ov00_020ea16c: + .space 0x4 + .global data_ov00_020ea170 +data_ov00_020ea170: + .space 0x4 + .global data_ov00_020ea174 +data_ov00_020ea174: + .space 0x4 + .global data_ov00_020ea178 +data_ov00_020ea178: + .space 0x4 + .global data_ov00_020ea17c +data_ov00_020ea17c: + .space 0x4 + .global data_ov00_020ea180 +data_ov00_020ea180: + .space 0x4 + .global data_ov00_020ea184 +data_ov00_020ea184: + .space 0x4 + .global data_ov00_020ea188 +data_ov00_020ea188: + .space 0x4 + .global data_ov00_020ea18c +data_ov00_020ea18c: + .space 0x4 + .global data_ov00_020ea190 +data_ov00_020ea190: + .space 0x4 + .global data_ov00_020ea194 +data_ov00_020ea194: + .space 0x4 + .global data_ov00_020ea198 +data_ov00_020ea198: + .space 0x4 + .global data_ov00_020ea19c +data_ov00_020ea19c: + .space 0x4 + .global data_ov00_020ea1a0 +data_ov00_020ea1a0: + .space 0x4 + .global data_ov00_020ea1a4 +data_ov00_020ea1a4: + .space 0x4 + .global data_ov00_020ea1a8 +data_ov00_020ea1a8: + .space 0x4 + .global data_ov00_020ea1ac +data_ov00_020ea1ac: + .space 0x4 + .global data_ov00_020ea1b0 +data_ov00_020ea1b0: + .space 0x4 + .global data_ov00_020ea1b4 +data_ov00_020ea1b4: + .space 0x4 + .global data_ov00_020ea1b8 +data_ov00_020ea1b8: + .space 0x4 + .global data_ov00_020ea1bc +data_ov00_020ea1bc: + .space 0x4 + .global data_ov00_020ea1c0 +data_ov00_020ea1c0: + .space 0x4 + .global data_ov00_020ea1c4 +data_ov00_020ea1c4: + .space 0x4 + .global data_ov00_020ea1c8 +data_ov00_020ea1c8: + .space 0x4 + .global data_ov00_020ea1cc +data_ov00_020ea1cc: + .space 0x4 + .global data_ov00_020ea1d0 +data_ov00_020ea1d0: + .space 0x4 + .global data_ov00_020ea1d4 +data_ov00_020ea1d4: + .space 0x4 + .global data_ov00_020ea1d8 +data_ov00_020ea1d8: + .space 0x4 + .global data_ov00_020ea1dc +data_ov00_020ea1dc: + .space 0x4 + .global data_ov00_020ea1e0 +data_ov00_020ea1e0: + .space 0x4 + .global data_ov00_020ea1e4 +data_ov00_020ea1e4: + .space 0x4 + .global data_ov00_020ea1e8 +data_ov00_020ea1e8: + .space 0x4 + .global data_ov00_020ea1ec +data_ov00_020ea1ec: + .space 0x4 + .global data_ov00_020ea1f0 +data_ov00_020ea1f0: + .space 0x4 + .global data_ov00_020ea1f4 +data_ov00_020ea1f4: + .space 0x4 + .global data_ov00_020ea1f8 +data_ov00_020ea1f8: + .space 0x4 + .global data_ov00_020ea1fc +data_ov00_020ea1fc: + .space 0x4 + .global data_ov00_020ea200 +data_ov00_020ea200: + .space 0x4 + .global data_ov00_020ea204 +data_ov00_020ea204: + .space 0x4 + .global data_ov00_020ea208 +data_ov00_020ea208: + .space 0x4 + .global data_ov00_020ea20c +data_ov00_020ea20c: + .space 0x4 + .global data_ov00_020ea210 +data_ov00_020ea210: + .space 0x4 + .global data_ov00_020ea214 +data_ov00_020ea214: + .space 0x4 + .global data_ov00_020ea218 +data_ov00_020ea218: + .space 0x4 + .global data_ov00_020ea21c +data_ov00_020ea21c: + .space 0x4 + .global data_ov00_020ea220 +data_ov00_020ea220: + .space 0x4 + .global data_ov00_020ea224 +data_ov00_020ea224: + .space 0x4 + .global data_ov00_020ea228 +data_ov00_020ea228: + .space 0x4 + .global data_ov00_020ea22c +data_ov00_020ea22c: + .space 0x4 + .global data_ov00_020ea230 +data_ov00_020ea230: + .space 0x4 + .global data_ov00_020ea234 +data_ov00_020ea234: + .space 0x4 + .global data_ov00_020ea238 +data_ov00_020ea238: + .space 0x4 + .global data_ov00_020ea23c +data_ov00_020ea23c: + .space 0x4 + .global data_ov00_020ea240 +data_ov00_020ea240: + .space 0x4 + .global data_ov00_020ea244 +data_ov00_020ea244: + .space 0x4 + .global data_ov00_020ea248 +data_ov00_020ea248: + .space 0x4 + .global data_ov00_020ea24c +data_ov00_020ea24c: + .space 0x4 + .global data_ov00_020ea250 +data_ov00_020ea250: + .space 0x4 + .global data_ov00_020ea254 +data_ov00_020ea254: + .space 0x4 + .global data_ov00_020ea258 +data_ov00_020ea258: + .space 0x4 + .global data_ov00_020ea25c +data_ov00_020ea25c: + .space 0x4 + .global data_ov00_020ea260 +data_ov00_020ea260: + .space 0x4 + .global data_ov00_020ea264 +data_ov00_020ea264: + .space 0x4 + .global data_ov00_020ea268 +data_ov00_020ea268: + .space 0x4 + .global data_ov00_020ea26c +data_ov00_020ea26c: + .space 0x4 + .global data_ov00_020ea270 +data_ov00_020ea270: + .space 0x4 + .global data_ov00_020ea274 +data_ov00_020ea274: + .space 0x4 + .global data_ov00_020ea278 +data_ov00_020ea278: + .space 0x4 + .global data_ov00_020ea27c +data_ov00_020ea27c: + .space 0x4 + .global data_ov00_020ea280 +data_ov00_020ea280: + .space 0x4 + .global data_ov00_020ea284 +data_ov00_020ea284: + .space 0x4 + .global data_ov00_020ea288 +data_ov00_020ea288: + .space 0x4 + .global data_ov00_020ea28c +data_ov00_020ea28c: + .space 0x4 + .global data_ov00_020ea290 +data_ov00_020ea290: + .space 0x4 + .global data_ov00_020ea294 +data_ov00_020ea294: + .space 0x4 + .global data_ov00_020ea298 +data_ov00_020ea298: + .space 0x4 + .global data_ov00_020ea29c +data_ov00_020ea29c: + .space 0x4 + .global data_ov00_020ea2a0 +data_ov00_020ea2a0: + .space 0x4 + .global data_ov00_020ea2a4 +data_ov00_020ea2a4: + .space 0x4 + .global data_ov00_020ea2a8 +data_ov00_020ea2a8: + .space 0x4 + .global data_ov00_020ea2ac +data_ov00_020ea2ac: + .space 0x4 + .global data_ov00_020ea2b0 +data_ov00_020ea2b0: + .space 0x4 + .global data_ov00_020ea2b4 +data_ov00_020ea2b4: + .space 0x4 + .global data_ov00_020ea2b8 +data_ov00_020ea2b8: + .space 0x4 + .global data_ov00_020ea2bc +data_ov00_020ea2bc: + .space 0x4 + .global data_ov00_020ea2c0 +data_ov00_020ea2c0: + .space 0x4 + .global data_ov00_020ea2c4 +data_ov00_020ea2c4: + .space 0x4 + .global data_ov00_020ea2c8 +data_ov00_020ea2c8: + .space 0x4 + .global data_ov00_020ea2cc +data_ov00_020ea2cc: + .space 0x4 + .global data_ov00_020ea2d0 +data_ov00_020ea2d0: + .space 0x4 + .global data_ov00_020ea2d4 +data_ov00_020ea2d4: + .space 0x4 + .global data_ov00_020ea2d8 +data_ov00_020ea2d8: + .space 0x4 + .global data_ov00_020ea2dc +data_ov00_020ea2dc: + .space 0x4 + .global data_ov00_020ea2e0 +data_ov00_020ea2e0: + .space 0x4 + .global data_ov00_020ea2e4 +data_ov00_020ea2e4: + .space 0x4 + .global data_ov00_020ea2e8 +data_ov00_020ea2e8: + .space 0x4 + .global data_ov00_020ea2ec +data_ov00_020ea2ec: + .space 0x4 + .global data_ov00_020ea2f0 +data_ov00_020ea2f0: + .space 0x4 + .global data_ov00_020ea2f4 +data_ov00_020ea2f4: + .space 0x4 + .global data_ov00_020ea2f8 +data_ov00_020ea2f8: + .space 0x4 + .global data_ov00_020ea2fc +data_ov00_020ea2fc: + .space 0x4 + .global data_ov00_020ea300 +data_ov00_020ea300: + .space 0x4 + .global data_ov00_020ea304 +data_ov00_020ea304: + .space 0x4 + .global data_ov00_020ea308 +data_ov00_020ea308: + .space 0x4 + .global data_ov00_020ea30c +data_ov00_020ea30c: + .space 0x4 + .global data_ov00_020ea310 +data_ov00_020ea310: + .space 0x4 + .global data_ov00_020ea314 +data_ov00_020ea314: + .space 0x4 + .global data_ov00_020ea318 +data_ov00_020ea318: + .space 0x4 + .global data_ov00_020ea31c +data_ov00_020ea31c: + .space 0x4 + .global data_ov00_020ea320 +data_ov00_020ea320: + .space 0x4 + .global data_ov00_020ea324 +data_ov00_020ea324: + .space 0x4 + .global data_ov00_020ea328 +data_ov00_020ea328: + .space 0x4 + .global data_ov00_020ea32c +data_ov00_020ea32c: + .space 0x4 + .global data_ov00_020ea330 +data_ov00_020ea330: + .space 0x4 + .global data_ov00_020ea334 +data_ov00_020ea334: + .space 0x4 + .global data_ov00_020ea338 +data_ov00_020ea338: + .space 0x4 + .global data_ov00_020ea33c +data_ov00_020ea33c: + .space 0x4 + .global data_ov00_020ea340 +data_ov00_020ea340: + .space 0x4 + .global data_ov00_020ea344 +data_ov00_020ea344: + .space 0x4 + .global data_ov00_020ea348 +data_ov00_020ea348: + .space 0x4 + .global data_ov00_020ea34c +data_ov00_020ea34c: + .space 0x4 + .global data_ov00_020ea350 +data_ov00_020ea350: + .space 0x4 + .global data_ov00_020ea354 +data_ov00_020ea354: + .space 0x4 + .global data_ov00_020ea358 +data_ov00_020ea358: + .space 0x4 + .global data_ov00_020ea35c +data_ov00_020ea35c: + .space 0x4 + .global data_ov00_020ea360 +data_ov00_020ea360: + .space 0x4 + .global data_ov00_020ea364 +data_ov00_020ea364: + .space 0x4 + .global data_ov00_020ea368 +data_ov00_020ea368: + .space 0x4 + .global data_ov00_020ea36c +data_ov00_020ea36c: + .space 0x4 + .global data_ov00_020ea370 +data_ov00_020ea370: + .space 0x4 + .global data_ov00_020ea374 +data_ov00_020ea374: + .space 0x4 + .global data_ov00_020ea378 +data_ov00_020ea378: + .space 0x4 + .global data_ov00_020ea37c +data_ov00_020ea37c: + .space 0x4 + .global data_ov00_020ea380 +data_ov00_020ea380: + .space 0x4 + .global data_ov00_020ea384 +data_ov00_020ea384: + .space 0x4 + .global data_ov00_020ea388 +data_ov00_020ea388: + .space 0x4 + .global data_ov00_020ea38c +data_ov00_020ea38c: + .space 0x4 + .global data_ov00_020ea390 +data_ov00_020ea390: + .space 0x4 + .global data_ov00_020ea394 +data_ov00_020ea394: + .space 0x4 + .global data_ov00_020ea398 +data_ov00_020ea398: + .space 0x4 + .global data_ov00_020ea39c +data_ov00_020ea39c: + .space 0x4 + .global data_ov00_020ea3a0 +data_ov00_020ea3a0: + .space 0x4 + .global data_ov00_020ea3a4 +data_ov00_020ea3a4: + .space 0x4 + .global data_ov00_020ea3a8 +data_ov00_020ea3a8: + .space 0x4 + .global data_ov00_020ea3ac +data_ov00_020ea3ac: + .space 0x4 + .global data_ov00_020ea3b0 +data_ov00_020ea3b0: + .space 0x4 + .global data_ov00_020ea3b4 +data_ov00_020ea3b4: + .space 0x4 + .global data_ov00_020ea3b8 +data_ov00_020ea3b8: + .space 0x4 + .global data_ov00_020ea3bc +data_ov00_020ea3bc: + .space 0x4 + .global data_ov00_020ea3c0 +data_ov00_020ea3c0: + .space 0x4 + .global data_ov00_020ea3c4 +data_ov00_020ea3c4: + .space 0x4 + .global data_ov00_020ea3c8 +data_ov00_020ea3c8: + .space 0x4 + .global data_ov00_020ea3cc +data_ov00_020ea3cc: + .space 0x4 + .global data_ov00_020ea3d0 +data_ov00_020ea3d0: + .space 0x4 + .global data_ov00_020ea3d4 +data_ov00_020ea3d4: + .space 0x4 + .global data_ov00_020ea3d8 +data_ov00_020ea3d8: + .space 0x4 + .global data_ov00_020ea3dc +data_ov00_020ea3dc: + .space 0x4 + .global data_ov00_020ea3e0 +data_ov00_020ea3e0: + .space 0x4 + .global data_ov00_020ea3e4 +data_ov00_020ea3e4: + .space 0x4 + .global data_ov00_020ea3e8 +data_ov00_020ea3e8: + .space 0x4 + .global data_ov00_020ea3ec +data_ov00_020ea3ec: + .space 0x4 + .global data_ov00_020ea3f0 +data_ov00_020ea3f0: + .space 0x4 + .global data_ov00_020ea3f4 +data_ov00_020ea3f4: + .space 0x4 + .global data_ov00_020ea3f8 +data_ov00_020ea3f8: + .space 0x4 + .global data_ov00_020ea3fc +data_ov00_020ea3fc: + .space 0x4 + .global data_ov00_020ea400 +data_ov00_020ea400: + .space 0x4 + .global data_ov00_020ea404 +data_ov00_020ea404: + .space 0x4 + .global data_ov00_020ea408 +data_ov00_020ea408: + .space 0x4 + .global data_ov00_020ea40c +data_ov00_020ea40c: + .space 0x4 + .global data_ov00_020ea410 +data_ov00_020ea410: + .space 0x4 + .global data_ov00_020ea414 +data_ov00_020ea414: + .space 0x4 + .global data_ov00_020ea418 +data_ov00_020ea418: + .space 0x4 + .global data_ov00_020ea41c +data_ov00_020ea41c: + .space 0x4 + .global data_ov00_020ea420 +data_ov00_020ea420: + .space 0x4 + .global data_ov00_020ea424 +data_ov00_020ea424: + .space 0x4 + .global data_ov00_020ea428 +data_ov00_020ea428: + .space 0x4 + .global data_ov00_020ea42c +data_ov00_020ea42c: + .space 0x4 + .global data_ov00_020ea430 +data_ov00_020ea430: + .space 0x4 + .global data_ov00_020ea434 +data_ov00_020ea434: + .space 0x4 + .global data_ov00_020ea438 +data_ov00_020ea438: + .space 0x4 + .global data_ov00_020ea43c +data_ov00_020ea43c: + .space 0x4 + .global data_ov00_020ea440 +data_ov00_020ea440: + .space 0x4 + .global data_ov00_020ea444 +data_ov00_020ea444: + .space 0x4 + .global data_ov00_020ea448 +data_ov00_020ea448: + .space 0x4 + .global data_ov00_020ea44c +data_ov00_020ea44c: + .space 0x4 + .global data_ov00_020ea450 +data_ov00_020ea450: + .space 0x4 + .global data_ov00_020ea454 +data_ov00_020ea454: + .space 0x4 + .global data_ov00_020ea458 +data_ov00_020ea458: + .space 0x4 + .global data_ov00_020ea45c +data_ov00_020ea45c: + .space 0x4 + .global data_ov00_020ea460 +data_ov00_020ea460: + .space 0x4 + .global data_ov00_020ea464 +data_ov00_020ea464: + .space 0x4 + .global data_ov00_020ea468 +data_ov00_020ea468: + .space 0x4 + .global data_ov00_020ea46c +data_ov00_020ea46c: + .space 0x4 + .global data_ov00_020ea470 +data_ov00_020ea470: + .space 0x4 + .global data_ov00_020ea474 +data_ov00_020ea474: + .space 0x4 + .global data_ov00_020ea478 +data_ov00_020ea478: + .space 0x4 + .global data_ov00_020ea47c +data_ov00_020ea47c: + .space 0x4 + .global data_ov00_020ea480 +data_ov00_020ea480: + .space 0x4 + .global data_ov00_020ea484 +data_ov00_020ea484: + .space 0x4 + .global data_ov00_020ea488 +data_ov00_020ea488: + .space 0x4 + .global data_ov00_020ea48c +data_ov00_020ea48c: + .space 0x4 + .global data_ov00_020ea490 +data_ov00_020ea490: + .space 0x4 + .global data_ov00_020ea494 +data_ov00_020ea494: + .space 0x4 + .global data_ov00_020ea498 +data_ov00_020ea498: + .space 0x4 + .global data_ov00_020ea49c +data_ov00_020ea49c: + .space 0x4 + .global data_ov00_020ea4a0 +data_ov00_020ea4a0: + .space 0x4 + .global data_ov00_020ea4a4 +data_ov00_020ea4a4: + .space 0x4 + .global data_ov00_020ea4a8 +data_ov00_020ea4a8: + .space 0x4 + .global data_ov00_020ea4ac +data_ov00_020ea4ac: + .space 0x4 + .global data_ov00_020ea4b0 +data_ov00_020ea4b0: + .space 0x4 + .global data_ov00_020ea4b4 +data_ov00_020ea4b4: + .space 0x4 + .global data_ov00_020ea4b8 +data_ov00_020ea4b8: + .space 0x4 + .global data_ov00_020ea4bc +data_ov00_020ea4bc: + .space 0x4 + .global data_ov00_020ea4c0 +data_ov00_020ea4c0: + .space 0x4 + .global data_ov00_020ea4c4 +data_ov00_020ea4c4: + .space 0x4 + .global data_ov00_020ea4c8 +data_ov00_020ea4c8: + .space 0x4 + .global data_ov00_020ea4cc +data_ov00_020ea4cc: + .space 0x4 + .global data_ov00_020ea4d0 +data_ov00_020ea4d0: + .space 0x4 + .global data_ov00_020ea4d4 +data_ov00_020ea4d4: + .space 0x4 + .global data_ov00_020ea4d8 +data_ov00_020ea4d8: + .space 0x4 + .global data_ov00_020ea4dc +data_ov00_020ea4dc: + .space 0x4 + .global data_ov00_020ea4e0 +data_ov00_020ea4e0: + .space 0x4 + .global data_ov00_020ea4e4 +data_ov00_020ea4e4: + .space 0x4 + .global data_ov00_020ea4e8 +data_ov00_020ea4e8: + .space 0x4 + .global data_ov00_020ea4ec +data_ov00_020ea4ec: + .space 0x4 + .global data_ov00_020ea4f0 +data_ov00_020ea4f0: + .space 0x4 + .global data_ov00_020ea4f4 +data_ov00_020ea4f4: + .space 0x4 + .global data_ov00_020ea4f8 +data_ov00_020ea4f8: + .space 0x4 + .global data_ov00_020ea4fc +data_ov00_020ea4fc: + .space 0x4 + .global data_ov00_020ea500 +data_ov00_020ea500: + .space 0x4 + .global data_ov00_020ea504 +data_ov00_020ea504: + .space 0x4 + .global data_ov00_020ea508 +data_ov00_020ea508: + .space 0x4 + .global data_ov00_020ea50c +data_ov00_020ea50c: + .space 0x4 + .global data_ov00_020ea510 +data_ov00_020ea510: + .space 0x4 + .global data_ov00_020ea514 +data_ov00_020ea514: + .space 0x4 + .global data_ov00_020ea518 +data_ov00_020ea518: + .space 0x4 + .global data_ov00_020ea51c +data_ov00_020ea51c: + .space 0x4 + .global data_ov00_020ea520 +data_ov00_020ea520: + .space 0x4 + .global data_ov00_020ea524 +data_ov00_020ea524: + .space 0x4 + .global data_ov00_020ea528 +data_ov00_020ea528: + .space 0x4 + .global data_ov00_020ea52c +data_ov00_020ea52c: + .space 0x4 + .global data_ov00_020ea530 +data_ov00_020ea530: + .space 0x4 + .global data_ov00_020ea534 +data_ov00_020ea534: + .space 0x4 + .global data_ov00_020ea538 +data_ov00_020ea538: + .space 0x4 + .global data_ov00_020ea53c +data_ov00_020ea53c: + .space 0x4 + .global data_ov00_020ea540 +data_ov00_020ea540: + .space 0x4 + .global data_ov00_020ea544 +data_ov00_020ea544: + .space 0x4 + .global data_ov00_020ea548 +data_ov00_020ea548: + .space 0x4 + .global data_ov00_020ea54c +data_ov00_020ea54c: + .space 0x4 + .global data_ov00_020ea550 +data_ov00_020ea550: + .space 0x4 + .global data_ov00_020ea554 +data_ov00_020ea554: + .space 0x4 + .global data_ov00_020ea558 +data_ov00_020ea558: + .space 0x4 + .global data_ov00_020ea55c +data_ov00_020ea55c: + .space 0x4 + .global data_ov00_020ea560 +data_ov00_020ea560: + .space 0x4 + .global data_ov00_020ea564 +data_ov00_020ea564: + .space 0x4 + .global data_ov00_020ea568 +data_ov00_020ea568: + .space 0x4 + .global data_ov00_020ea56c +data_ov00_020ea56c: + .space 0x4 + .global data_ov00_020ea570 +data_ov00_020ea570: + .space 0x4 + .global data_ov00_020ea574 +data_ov00_020ea574: + .space 0x4 + .global data_ov00_020ea578 +data_ov00_020ea578: + .space 0x4 + .global data_ov00_020ea57c +data_ov00_020ea57c: + .space 0x4 + .global data_ov00_020ea580 +data_ov00_020ea580: + .space 0x4 + .global data_ov00_020ea584 +data_ov00_020ea584: + .space 0x4 + .global data_ov00_020ea588 +data_ov00_020ea588: + .space 0x4 + .global data_ov00_020ea58c +data_ov00_020ea58c: + .space 0x4 + .global data_ov00_020ea590 +data_ov00_020ea590: + .space 0x4 + .global data_ov00_020ea594 +data_ov00_020ea594: + .space 0x4 + .global data_ov00_020ea598 +data_ov00_020ea598: + .space 0x4 + .global data_ov00_020ea59c +data_ov00_020ea59c: + .space 0x4 + .global data_ov00_020ea5a0 +data_ov00_020ea5a0: + .space 0x4 + .global data_ov00_020ea5a4 +data_ov00_020ea5a4: + .space 0x4 + .global data_ov00_020ea5a8 +data_ov00_020ea5a8: + .space 0x4 + .global data_ov00_020ea5ac +data_ov00_020ea5ac: + .space 0x4 + .global data_ov00_020ea5b0 +data_ov00_020ea5b0: + .space 0x4 + .global data_ov00_020ea5b4 +data_ov00_020ea5b4: + .space 0x4 + .global data_ov00_020ea5b8 +data_ov00_020ea5b8: + .space 0x4 + .global data_ov00_020ea5bc +data_ov00_020ea5bc: + .space 0x4 + .global data_ov00_020ea5c0 +data_ov00_020ea5c0: + .space 0x4 + .global data_ov00_020ea5c4 +data_ov00_020ea5c4: + .space 0x4 + .global data_ov00_020ea5c8 +data_ov00_020ea5c8: + .space 0x4 + .global data_ov00_020ea5cc +data_ov00_020ea5cc: + .space 0x4 + .global data_ov00_020ea5d0 +data_ov00_020ea5d0: + .space 0x4 + .global data_ov00_020ea5d4 +data_ov00_020ea5d4: + .space 0x4 + .global data_ov00_020ea5d8 +data_ov00_020ea5d8: + .space 0x4 + .global data_ov00_020ea5dc +data_ov00_020ea5dc: + .space 0x4 + .global data_ov00_020ea5e0 +data_ov00_020ea5e0: + .space 0x4 + .global data_ov00_020ea5e4 +data_ov00_020ea5e4: + .space 0x4 + .global data_ov00_020ea5e8 +data_ov00_020ea5e8: + .space 0x4 + .global data_ov00_020ea5ec +data_ov00_020ea5ec: + .space 0x4 + .global data_ov00_020ea5f0 +data_ov00_020ea5f0: + .space 0x4 + .global data_ov00_020ea5f4 +data_ov00_020ea5f4: + .space 0x4 + .global data_ov00_020ea5f8 +data_ov00_020ea5f8: + .space 0x4 + .global data_ov00_020ea5fc +data_ov00_020ea5fc: + .space 0x4 + .global data_ov00_020ea600 +data_ov00_020ea600: + .space 0x4 + .global data_ov00_020ea604 +data_ov00_020ea604: + .space 0x4 + .global data_ov00_020ea608 +data_ov00_020ea608: + .space 0x4 + .global data_ov00_020ea60c +data_ov00_020ea60c: + .space 0x4 + .global data_ov00_020ea610 +data_ov00_020ea610: + .space 0x4 + .global data_ov00_020ea614 +data_ov00_020ea614: + .space 0x4 + .global data_ov00_020ea618 +data_ov00_020ea618: + .space 0x4 + .global data_ov00_020ea61c +data_ov00_020ea61c: + .space 0x4 + .global data_ov00_020ea620 +data_ov00_020ea620: + .space 0x4 + .global data_ov00_020ea624 +data_ov00_020ea624: + .space 0x4 + .global data_ov00_020ea628 +data_ov00_020ea628: + .space 0x4 + .global data_ov00_020ea62c +data_ov00_020ea62c: + .space 0x4 + .global data_ov00_020ea630 +data_ov00_020ea630: + .space 0x4 + .global data_ov00_020ea634 +data_ov00_020ea634: + .space 0x4 + .global data_ov00_020ea638 +data_ov00_020ea638: + .space 0x4 + .global data_ov00_020ea63c +data_ov00_020ea63c: + .space 0x4 + .global data_ov00_020ea640 +data_ov00_020ea640: + .space 0x4 + .global data_ov00_020ea644 +data_ov00_020ea644: + .space 0x4 + .global data_ov00_020ea648 +data_ov00_020ea648: + .space 0x4 + .global data_ov00_020ea64c +data_ov00_020ea64c: + .space 0x4 + .global data_ov00_020ea650 +data_ov00_020ea650: + .space 0x4 + .global data_ov00_020ea654 +data_ov00_020ea654: + .space 0x4 + .global data_ov00_020ea658 +data_ov00_020ea658: + .space 0x4 + .global data_ov00_020ea65c +data_ov00_020ea65c: + .space 0x4 + .global data_ov00_020ea660 +data_ov00_020ea660: + .space 0x4 + .global data_ov00_020ea664 +data_ov00_020ea664: + .space 0x4 + .global data_ov00_020ea668 +data_ov00_020ea668: + .space 0x4 + .global data_ov00_020ea66c +data_ov00_020ea66c: + .space 0x4 + .global data_ov00_020ea670 +data_ov00_020ea670: + .space 0x4 + .global data_ov00_020ea674 +data_ov00_020ea674: + .space 0x4 + .global data_ov00_020ea678 +data_ov00_020ea678: + .space 0x4 + .global data_ov00_020ea67c +data_ov00_020ea67c: + .space 0x4 + .global data_ov00_020ea680 +data_ov00_020ea680: + .space 0x4 + .global data_ov00_020ea684 +data_ov00_020ea684: + .space 0x4 + .global data_ov00_020ea688 +data_ov00_020ea688: + .space 0x4 + .global data_ov00_020ea68c +data_ov00_020ea68c: + .space 0x4 + .global data_ov00_020ea690 +data_ov00_020ea690: + .space 0x4 + .global data_ov00_020ea694 +data_ov00_020ea694: + .space 0x4 + .global data_ov00_020ea698 +data_ov00_020ea698: + .space 0x4 + .global data_ov00_020ea69c +data_ov00_020ea69c: + .space 0x4 + .global data_ov00_020ea6a0 +data_ov00_020ea6a0: + .space 0x4 + .global data_ov00_020ea6a4 +data_ov00_020ea6a4: + .space 0x4 + .global data_ov00_020ea6a8 +data_ov00_020ea6a8: + .space 0x4 + .global data_ov00_020ea6ac +data_ov00_020ea6ac: + .space 0x4 + .global data_ov00_020ea6b0 +data_ov00_020ea6b0: + .space 0x4 + .global data_ov00_020ea6b4 +data_ov00_020ea6b4: + .space 0x4 + .global data_ov00_020ea6b8 +data_ov00_020ea6b8: + .space 0x4 + .global data_ov00_020ea6bc +data_ov00_020ea6bc: + .space 0x4 + .global data_ov00_020ea6c0 +data_ov00_020ea6c0: + .space 0x4 + .global data_ov00_020ea6c4 +data_ov00_020ea6c4: + .space 0x4 + .global data_ov00_020ea6c8 +data_ov00_020ea6c8: + .space 0x4 + .global data_ov00_020ea6cc +data_ov00_020ea6cc: + .space 0x4 + .global data_ov00_020ea6d0 +data_ov00_020ea6d0: + .space 0x4 + .global data_ov00_020ea6d4 +data_ov00_020ea6d4: + .space 0x4 + .global data_ov00_020ea6d8 +data_ov00_020ea6d8: + .space 0x4 + .global data_ov00_020ea6dc +data_ov00_020ea6dc: + .space 0x4 + .global data_ov00_020ea6e0 +data_ov00_020ea6e0: + .space 0x4 + .global data_ov00_020ea6e4 +data_ov00_020ea6e4: + .space 0x4 + .global data_ov00_020ea6e8 +data_ov00_020ea6e8: + .space 0x4 + .global data_ov00_020ea6ec +data_ov00_020ea6ec: + .space 0x4 + .global data_ov00_020ea6f0 +data_ov00_020ea6f0: + .space 0x4 + .global data_ov00_020ea6f4 +data_ov00_020ea6f4: + .space 0x4 + .global data_ov00_020ea6f8 +data_ov00_020ea6f8: + .space 0x4 + .global data_ov00_020ea6fc +data_ov00_020ea6fc: + .space 0x4 + .global data_ov00_020ea700 +data_ov00_020ea700: + .space 0x4 + .global data_ov00_020ea704 +data_ov00_020ea704: + .space 0x4 + .global data_ov00_020ea708 +data_ov00_020ea708: + .space 0x4 + .global data_ov00_020ea70c +data_ov00_020ea70c: + .space 0x4 + .global data_ov00_020ea710 +data_ov00_020ea710: + .space 0x4 + .global data_ov00_020ea714 +data_ov00_020ea714: + .space 0x4 + .global data_ov00_020ea718 +data_ov00_020ea718: + .space 0x4 + .global data_ov00_020ea71c +data_ov00_020ea71c: + .space 0x4 + .global data_ov00_020ea720 +data_ov00_020ea720: + .space 0x4 + .global data_ov00_020ea724 +data_ov00_020ea724: + .space 0x4 + .global data_ov00_020ea728 +data_ov00_020ea728: + .space 0x4 + .global data_ov00_020ea72c +data_ov00_020ea72c: + .space 0x4 + .global data_ov00_020ea730 +data_ov00_020ea730: + .space 0x4 + .global data_ov00_020ea734 +data_ov00_020ea734: + .space 0x4 + .global data_ov00_020ea738 +data_ov00_020ea738: + .space 0x4 + .global data_ov00_020ea73c +data_ov00_020ea73c: + .space 0x4 + .global data_ov00_020ea740 +data_ov00_020ea740: + .space 0x4 + .global data_ov00_020ea744 +data_ov00_020ea744: + .space 0x4 + .global data_ov00_020ea748 +data_ov00_020ea748: + .space 0x4 + .global data_ov00_020ea74c +data_ov00_020ea74c: + .space 0x4 + .global data_ov00_020ea750 +data_ov00_020ea750: + .space 0x4 + .global data_ov00_020ea754 +data_ov00_020ea754: + .space 0x4 + .global data_ov00_020ea758 +data_ov00_020ea758: + .space 0x4 + .global data_ov00_020ea75c +data_ov00_020ea75c: + .space 0x4 + .global data_ov00_020ea760 +data_ov00_020ea760: + .space 0x4 + .global data_ov00_020ea764 +data_ov00_020ea764: + .space 0x4 + .global data_ov00_020ea768 +data_ov00_020ea768: + .space 0x4 + .global data_ov00_020ea76c +data_ov00_020ea76c: + .space 0x4 + .global data_ov00_020ea770 +data_ov00_020ea770: + .space 0x4 + .global data_ov00_020ea774 +data_ov00_020ea774: + .space 0x4 + .global data_ov00_020ea778 +data_ov00_020ea778: + .space 0x4 + .global data_ov00_020ea77c +data_ov00_020ea77c: + .space 0x4 + .global data_ov00_020ea780 +data_ov00_020ea780: + .space 0x4 + .global data_ov00_020ea784 +data_ov00_020ea784: + .space 0x4 + .global data_ov00_020ea788 +data_ov00_020ea788: + .space 0x4 + .global data_ov00_020ea78c +data_ov00_020ea78c: + .space 0x4 + .global data_ov00_020ea790 +data_ov00_020ea790: + .space 0x4 + .global data_ov00_020ea794 +data_ov00_020ea794: + .space 0x4 + .global data_ov00_020ea798 +data_ov00_020ea798: + .space 0x4 + .global data_ov00_020ea79c +data_ov00_020ea79c: + .space 0x4 + .global data_ov00_020ea7a0 +data_ov00_020ea7a0: + .space 0x4 + .global data_ov00_020ea7a4 +data_ov00_020ea7a4: + .space 0x4 + .global data_ov00_020ea7a8 +data_ov00_020ea7a8: + .space 0x4 + .global data_ov00_020ea7ac +data_ov00_020ea7ac: + .space 0x4 + .global data_ov00_020ea7b0 +data_ov00_020ea7b0: + .space 0x4 + .global data_ov00_020ea7b4 +data_ov00_020ea7b4: + .space 0x4 + .global data_ov00_020ea7b8 +data_ov00_020ea7b8: + .space 0x4 + .global data_ov00_020ea7bc +data_ov00_020ea7bc: + .space 0x4 + .global data_ov00_020ea7c0 +data_ov00_020ea7c0: + .space 0x4 + .global data_ov00_020ea7c4 +data_ov00_020ea7c4: + .space 0x4 + .global data_ov00_020ea7c8 +data_ov00_020ea7c8: + .space 0x4 + .global data_ov00_020ea7cc +data_ov00_020ea7cc: + .space 0x4 + .global data_ov00_020ea7d0 +data_ov00_020ea7d0: + .space 0x4 + .global data_ov00_020ea7d4 +data_ov00_020ea7d4: + .space 0x4 + .global data_ov00_020ea7d8 +data_ov00_020ea7d8: + .space 0x4 + .global data_ov00_020ea7dc +data_ov00_020ea7dc: + .space 0x4 + .global data_ov00_020ea7e0 +data_ov00_020ea7e0: + .space 0x4 + .global data_ov00_020ea7e4 +data_ov00_020ea7e4: + .space 0x4 + .global data_ov00_020ea7e8 +data_ov00_020ea7e8: + .space 0x4 + .global data_ov00_020ea7ec +data_ov00_020ea7ec: + .space 0x4 + .global data_ov00_020ea7f0 +data_ov00_020ea7f0: + .space 0x4 + .global data_ov00_020ea7f4 +data_ov00_020ea7f4: + .space 0x4 + .global data_ov00_020ea7f8 +data_ov00_020ea7f8: + .space 0x4 + .global data_ov00_020ea7fc +data_ov00_020ea7fc: + .space 0x4 + .global data_ov00_020ea800 +data_ov00_020ea800: + .space 0x4 + .global data_ov00_020ea804 +data_ov00_020ea804: + .space 0x4 + .global data_ov00_020ea808 +data_ov00_020ea808: + .space 0x4 + .global data_ov00_020ea80c +data_ov00_020ea80c: + .space 0x4 + .global data_ov00_020ea810 +data_ov00_020ea810: + .space 0x4 + .global data_ov00_020ea814 +data_ov00_020ea814: + .space 0x4 + .global data_ov00_020ea818 +data_ov00_020ea818: + .space 0x4 + .global data_ov00_020ea81c +data_ov00_020ea81c: + .space 0x4 + .global data_ov00_020ea820 +data_ov00_020ea820: + .space 0x4 + .global data_ov00_020ea824 +data_ov00_020ea824: + .space 0x4 + .global data_ov00_020ea828 +data_ov00_020ea828: + .space 0x4 + .global data_ov00_020ea82c +data_ov00_020ea82c: + .space 0x4 + .global data_ov00_020ea830 +data_ov00_020ea830: + .space 0x4 + .global data_ov00_020ea834 +data_ov00_020ea834: + .space 0x4 + .global data_ov00_020ea838 +data_ov00_020ea838: + .space 0x4 + .global data_ov00_020ea83c +data_ov00_020ea83c: + .space 0x4 + .global data_ov00_020ea840 +data_ov00_020ea840: + .space 0x4 + .global data_ov00_020ea844 +data_ov00_020ea844: + .space 0x4 + .global data_ov00_020ea848 +data_ov00_020ea848: + .space 0x4 + .global data_ov00_020ea84c +data_ov00_020ea84c: + .space 0x4 + .global data_ov00_020ea850 +data_ov00_020ea850: + .space 0x4 + .global data_ov00_020ea854 +data_ov00_020ea854: + .space 0x4 + .global data_ov00_020ea858 +data_ov00_020ea858: + .space 0x4 + .global data_ov00_020ea85c +data_ov00_020ea85c: + .space 0x4 + .global data_ov00_020ea860 +data_ov00_020ea860: + .space 0x4 + .global data_ov00_020ea864 +data_ov00_020ea864: + .space 0x4 + .global data_ov00_020ea868 +data_ov00_020ea868: + .space 0x4 + .global data_ov00_020ea86c +data_ov00_020ea86c: + .space 0x4 + .global data_ov00_020ea870 +data_ov00_020ea870: + .space 0x4 + .global data_ov00_020ea874 +data_ov00_020ea874: + .space 0x4 + .global data_ov00_020ea878 +data_ov00_020ea878: + .space 0x4 + .global data_ov00_020ea87c +data_ov00_020ea87c: + .space 0x4 + .global data_ov00_020ea880 +data_ov00_020ea880: + .space 0x4 + .global data_ov00_020ea884 +data_ov00_020ea884: + .space 0x4 + .global data_ov00_020ea888 +data_ov00_020ea888: + .space 0x4 + .global data_ov00_020ea88c +data_ov00_020ea88c: + .space 0x4 + .global data_ov00_020ea890 +data_ov00_020ea890: + .space 0x4 + .global data_ov00_020ea894 +data_ov00_020ea894: + .space 0x4 + .global data_ov00_020ea898 +data_ov00_020ea898: + .space 0x4 + .global data_ov00_020ea89c +data_ov00_020ea89c: + .space 0x4 + .global data_ov00_020ea8a0 +data_ov00_020ea8a0: + .space 0x4 + .global data_ov00_020ea8a4 +data_ov00_020ea8a4: + .space 0x4 + .global data_ov00_020ea8a8 +data_ov00_020ea8a8: + .space 0x4 + .global data_ov00_020ea8ac +data_ov00_020ea8ac: + .space 0x4 + .global data_ov00_020ea8b0 +data_ov00_020ea8b0: + .space 0x4 + .global data_ov00_020ea8b4 +data_ov00_020ea8b4: + .space 0x4 + .global data_ov00_020ea8b8 +data_ov00_020ea8b8: + .space 0x4 + .global data_ov00_020ea8bc +data_ov00_020ea8bc: + .space 0x4 + .global data_ov00_020ea8c0 +data_ov00_020ea8c0: + .space 0x4 + .global data_ov00_020ea8c4 +data_ov00_020ea8c4: + .space 0x4 + .global data_ov00_020ea8c8 +data_ov00_020ea8c8: + .space 0x4 + .global data_ov00_020ea8cc +data_ov00_020ea8cc: + .space 0x4 + .global data_ov00_020ea8d0 +data_ov00_020ea8d0: + .space 0x4 + .global data_ov00_020ea8d4 +data_ov00_020ea8d4: + .space 0x4 + .global data_ov00_020ea8d8 +data_ov00_020ea8d8: + .space 0x4 + .global data_ov00_020ea8dc +data_ov00_020ea8dc: + .space 0x4 + .global data_ov00_020ea8e0 +data_ov00_020ea8e0: + .space 0x4 + .global data_ov00_020ea8e4 +data_ov00_020ea8e4: + .space 0x4 + .global data_ov00_020ea8e8 +data_ov00_020ea8e8: + .space 0x4 + .global data_ov00_020ea8ec +data_ov00_020ea8ec: + .space 0x4 + .global data_ov00_020ea8f0 +data_ov00_020ea8f0: + .space 0x4 + .global data_ov00_020ea8f4 +data_ov00_020ea8f4: + .space 0x4 + .global data_ov00_020ea8f8 +data_ov00_020ea8f8: + .space 0x4 + .global data_ov00_020ea8fc +data_ov00_020ea8fc: + .space 0x4 + .global data_ov00_020ea900 +data_ov00_020ea900: + .space 0x4 + .global data_ov00_020ea904 +data_ov00_020ea904: + .space 0x4 + .global data_ov00_020ea908 +data_ov00_020ea908: + .space 0x4 + .global data_ov00_020ea90c +data_ov00_020ea90c: + .space 0x4 + .global data_ov00_020ea910 +data_ov00_020ea910: + .space 0x4 + .global data_ov00_020ea914 +data_ov00_020ea914: + .space 0x4 + .global data_ov00_020ea918 +data_ov00_020ea918: + .space 0x4 + .global data_ov00_020ea91c +data_ov00_020ea91c: + .space 0x4 + .global data_ov00_020ea920 +data_ov00_020ea920: + .space 0x4 + .global data_ov00_020ea924 +data_ov00_020ea924: + .space 0x4 + .global data_ov00_020ea928 +data_ov00_020ea928: + .space 0x4 + .global data_ov00_020ea92c +data_ov00_020ea92c: + .space 0x4 + .global data_ov00_020ea930 +data_ov00_020ea930: + .space 0x4 + .global data_ov00_020ea934 +data_ov00_020ea934: + .space 0x4 + .global data_ov00_020ea938 +data_ov00_020ea938: + .space 0x4 + .global data_ov00_020ea93c +data_ov00_020ea93c: + .space 0x4 + .global data_ov00_020ea940 +data_ov00_020ea940: + .space 0x4 + .global data_ov00_020ea944 +data_ov00_020ea944: + .space 0x4 + .global data_ov00_020ea948 +data_ov00_020ea948: + .space 0x4 + .global data_ov00_020ea94c +data_ov00_020ea94c: + .space 0x4 + .global data_ov00_020ea950 +data_ov00_020ea950: + .space 0x4 + .global data_ov00_020ea954 +data_ov00_020ea954: + .space 0x4 + .global data_ov00_020ea958 +data_ov00_020ea958: + .space 0x4 + .global data_ov00_020ea95c +data_ov00_020ea95c: + .space 0x4 + .global data_ov00_020ea960 +data_ov00_020ea960: + .space 0x4 + .global data_ov00_020ea964 +data_ov00_020ea964: + .space 0x4 + .global data_ov00_020ea968 +data_ov00_020ea968: + .space 0x4 + .global data_ov00_020ea96c +data_ov00_020ea96c: + .space 0x4 + .global data_ov00_020ea970 +data_ov00_020ea970: + .space 0x4 + .global data_ov00_020ea974 +data_ov00_020ea974: + .space 0x4 + .global data_ov00_020ea978 +data_ov00_020ea978: + .space 0x4 + .global data_ov00_020ea97c +data_ov00_020ea97c: + .space 0x4 + .global data_ov00_020ea980 +data_ov00_020ea980: + .space 0x4 + .global data_ov00_020ea984 +data_ov00_020ea984: + .space 0x4 + .global data_ov00_020ea988 +data_ov00_020ea988: + .space 0x4 + .global data_ov00_020ea98c +data_ov00_020ea98c: + .space 0x4 + .global data_ov00_020ea990 +data_ov00_020ea990: + .space 0x4 + .global data_ov00_020ea994 +data_ov00_020ea994: + .space 0x4 + .global data_ov00_020ea998 +data_ov00_020ea998: + .space 0x4 + .global data_ov00_020ea99c +data_ov00_020ea99c: + .space 0x4 + .global data_ov00_020ea9a0 +data_ov00_020ea9a0: + .space 0x4 + .global data_ov00_020ea9a4 +data_ov00_020ea9a4: + .space 0x4 + .global data_ov00_020ea9a8 +data_ov00_020ea9a8: + .space 0x4 + .global data_ov00_020ea9ac +data_ov00_020ea9ac: + .space 0x4 + .global data_ov00_020ea9b0 +data_ov00_020ea9b0: + .space 0x4 + .global data_ov00_020ea9b4 +data_ov00_020ea9b4: + .space 0x4 + .global data_ov00_020ea9b8 +data_ov00_020ea9b8: + .space 0x4 + .global data_ov00_020ea9bc +data_ov00_020ea9bc: + .space 0x4 + .global data_ov00_020ea9c0 +data_ov00_020ea9c0: + .space 0x4 + .global data_ov00_020ea9c4 +data_ov00_020ea9c4: + .space 0x4 + .global data_ov00_020ea9c8 +data_ov00_020ea9c8: + .space 0x4 + .global data_ov00_020ea9cc +data_ov00_020ea9cc: + .space 0x4 + .global data_ov00_020ea9d0 +data_ov00_020ea9d0: + .space 0x4 + .global data_ov00_020ea9d4 +data_ov00_020ea9d4: + .space 0x4 + .global data_ov00_020ea9d8 +data_ov00_020ea9d8: + .space 0x4 + .global data_ov00_020ea9dc +data_ov00_020ea9dc: + .space 0x4 + .global data_ov00_020ea9e0 +data_ov00_020ea9e0: + .space 0x4 + .global data_ov00_020ea9e4 +data_ov00_020ea9e4: + .space 0x4 + .global data_ov00_020ea9e8 +data_ov00_020ea9e8: + .space 0x4 + .global data_ov00_020ea9ec +data_ov00_020ea9ec: + .space 0x4 + .global data_ov00_020ea9f0 +data_ov00_020ea9f0: + .space 0x4 + .global data_ov00_020ea9f4 +data_ov00_020ea9f4: + .space 0x4 + .global data_ov00_020ea9f8 +data_ov00_020ea9f8: + .space 0x4 + .global data_ov00_020ea9fc +data_ov00_020ea9fc: + .space 0x4 + .global data_ov00_020eaa00 +data_ov00_020eaa00: + .space 0x4 + .global data_ov00_020eaa04 +data_ov00_020eaa04: + .space 0x4 + .global data_ov00_020eaa08 +data_ov00_020eaa08: + .space 0x4 + .global data_ov00_020eaa0c +data_ov00_020eaa0c: + .space 0x4 + .global data_ov00_020eaa10 +data_ov00_020eaa10: + .space 0x4 + .global data_ov00_020eaa14 +data_ov00_020eaa14: + .space 0x4 + .global data_ov00_020eaa18 +data_ov00_020eaa18: + .space 0x4 + .global data_ov00_020eaa1c +data_ov00_020eaa1c: + .space 0x4 + .global data_ov00_020eaa20 +data_ov00_020eaa20: + .space 0x4 + .global data_ov00_020eaa24 +data_ov00_020eaa24: + .space 0x4 + .global data_ov00_020eaa28 +data_ov00_020eaa28: + .space 0x4 + .global data_ov00_020eaa2c +data_ov00_020eaa2c: + .space 0x4 + .global data_ov00_020eaa30 +data_ov00_020eaa30: + .space 0x4 + .global data_ov00_020eaa34 +data_ov00_020eaa34: + .space 0x4 + .global data_ov00_020eaa38 +data_ov00_020eaa38: + .space 0x4 + .global data_ov00_020eaa3c +data_ov00_020eaa3c: + .space 0x4 + .global data_ov00_020eaa40 +data_ov00_020eaa40: + .space 0x4 + .global data_ov00_020eaa44 +data_ov00_020eaa44: + .space 0x4 + .global data_ov00_020eaa48 +data_ov00_020eaa48: + .space 0x4 + .global data_ov00_020eaa4c +data_ov00_020eaa4c: + .space 0x4 + .global data_ov00_020eaa50 +data_ov00_020eaa50: + .space 0x4 + .global data_ov00_020eaa54 +data_ov00_020eaa54: + .space 0x4 + .global data_ov00_020eaa58 +data_ov00_020eaa58: + .space 0x4 + .global data_ov00_020eaa5c +data_ov00_020eaa5c: + .space 0x4 + .global data_ov00_020eaa60 +data_ov00_020eaa60: + .space 0x4 + .global data_ov00_020eaa64 +data_ov00_020eaa64: + .space 0x4 + .global data_ov00_020eaa68 +data_ov00_020eaa68: + .space 0x4 + .global data_ov00_020eaa6c +data_ov00_020eaa6c: + .space 0x4 + .global data_ov00_020eaa70 +data_ov00_020eaa70: + .space 0x4 + .global data_ov00_020eaa74 +data_ov00_020eaa74: + .space 0x4 + .global data_ov00_020eaa78 +data_ov00_020eaa78: + .space 0x4 + .global data_ov00_020eaa7c +data_ov00_020eaa7c: + .space 0x4 + .global data_ov00_020eaa80 +data_ov00_020eaa80: + .space 0x4 + .global data_ov00_020eaa84 +data_ov00_020eaa84: + .space 0x4 + .global data_ov00_020eaa88 +data_ov00_020eaa88: + .space 0x4 + .global data_ov00_020eaa8c +data_ov00_020eaa8c: + .space 0x4 + .global data_ov00_020eaa90 +data_ov00_020eaa90: + .space 0x4 + .global data_ov00_020eaa94 +data_ov00_020eaa94: + .space 0x4 + .global data_ov00_020eaa98 +data_ov00_020eaa98: + .space 0x4 + .global data_ov00_020eaa9c +data_ov00_020eaa9c: + .space 0x4 + .global data_ov00_020eaaa0 +data_ov00_020eaaa0: + .space 0x4 + .global data_ov00_020eaaa4 +data_ov00_020eaaa4: + .space 0x4 + .global data_ov00_020eaaa8 +data_ov00_020eaaa8: + .space 0x4 + .global data_ov00_020eaaac +data_ov00_020eaaac: + .space 0x4 + .global data_ov00_020eaab0 +data_ov00_020eaab0: + .space 0x4 + .global data_ov00_020eaab4 +data_ov00_020eaab4: + .space 0x4 + .global data_ov00_020eaab8 +data_ov00_020eaab8: + .space 0x4 + .global data_ov00_020eaabc +data_ov00_020eaabc: + .space 0x4 + .global data_ov00_020eaac0 +data_ov00_020eaac0: + .space 0x4 + + .sbss + .global data_ov00_020ec718 +data_ov00_020ec718: + .space 0x3c + .global data_ov00_020ec754 +data_ov00_020ec754: + .space 0x4 + .global data_ov00_020ec758 +data_ov00_020ec758: + .space 0x40 + .global data_ov00_020ec798 +data_ov00_020ec798: + .space 0x44 + .global data_ov00_020ec7dc +data_ov00_020ec7dc: + .space 0x12 + .global data_ov00_020ec7ee +data_ov00_020ec7ee: + .space 0x1 + .global data_ov00_020ec7ef +data_ov00_020ec7ef: + .space 0x1 + .global data_ov00_020ec7f0 +data_ov00_020ec7f0: + .space 0x2c diff --git a/asm/ov00/ov00_0207da38.inc b/asm/ov00/ov00_0207da38.inc new file mode 100644 index 00000000..3e40e77d --- /dev/null +++ b/asm/ov00/ov00_0207da38.inc @@ -0,0 +1,8 @@ +#pragma once +.extern _ZN9SysObjectdlEPv +.extern _ZN9SysObjectnwEmPjj +.extern data_027e0ce0 +.extern func_02043594 +.extern func_020435b4 +.extern func_02043600 +.extern func_0204dd9c diff --git a/asm/ov00/ov00_0207da38.s b/asm/ov00/ov00_0207da38.s new file mode 100644 index 00000000..4de0c9ba --- /dev/null +++ b/asm/ov00/ov00_0207da38.s @@ -0,0 +1,1662 @@ + .include "ov00/ov00_0207da38.inc" + .include "macros/function.inc" + + .text + + .global func_ov00_02080f20 + arm_func_start func_ov00_02080f20 +func_ov00_02080f20: ; 0x02080f20 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r0, [r4] + cmp r0, #0 + beq _02080f58 + ldr r1, [r4, #4] + mov r0, #0 + strb r0, [sp] + ldr r0, [r4, #4] + sub r0, r0, r1 + str r0, [r4, #4] + ldr r0, [r4] + bl _ZN9SysObjectdlEPv +_02080f58: + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end func_ov00_02080f20 + + .global func_ov00_02080f64 + arm_func_start func_ov00_02080f64 +func_ov00_02080f64: ; 0x02080f64 + stmdb sp!, {r3, r4, r5, lr} + mov r4, r1 + mov r2, #0 + mov r5, r0 + mov r1, #1 + strb r2, [sp] + bl func_ov00_020812bc + mov r0, r5 + mov r2, r4 + mov r1, #1 + bl func_ov00_02081160 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end func_ov00_02080f64 + + .global func_ov00_02080f94 + arm_func_start func_ov00_02080f94 +func_ov00_02080f94: ; 0x02080f94 + stmdb sp!, {r4, r5, r6, lr} + mov r5, r1 + mov r4, r2 + mov r6, r0 + cmp r5, r4 + beq _02080ff0 + ldr r2, [r6] + ldr r1, [r6, #4] + mov r0, r5 + add r1, r2, r1, lsl #2 + sub r2, r1, r4 + mov r1, r2, asr #0x1 + add r1, r2, r1, lsr #30 + mov r2, r1, asr #0x2 + mov r1, r4 + mov r2, r2, lsl #0x2 + bl func_020435b4 + sub r1, r4, r5 + mov r0, r1, asr #0x1 + ldr r2, [r6, #4] + add r0, r1, r0, lsr #30 + sub r0, r2, r0, asr #2 + str r0, [r6, #4] +_02080ff0: + mov r0, r5 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end func_ov00_02080f94 + + .global func_ov00_02080ff8 + arm_func_start func_ov00_02080ff8 +func_ov00_02080ff8: ; 0x02080ff8 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r1, [r4] + cmp r1, #0 + beq _02081034 + ldr r1, [r4, #4] + mov r3, #0 + strb r3, [sp] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + bl func_ov00_02081388 + ldr r0, [r4] + bl _ZN9SysObjectdlEPv +_02081034: + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end func_ov00_02080ff8 + + .global func_ov00_02081040 + arm_func_start func_ov00_02081040 +func_ov00_02081040: ; 0x02081040 + stmdb sp!, {r3, r4, r5, lr} + mov r4, r1 + mov r2, #0 + mov r5, r0 + mov r1, #1 + strb r2, [sp] + bl func_ov00_02081524 + mov r0, r5 + mov r2, r4 + mov r1, #1 + bl func_ov00_02081398 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end func_ov00_02081040 + + .global func_ov00_02081070 + arm_func_start func_ov00_02081070 +func_ov00_02081070: ; 0x02081070 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r1, [r4] + cmp r1, #0 + beq _020810ac + ldr r1, [r4, #4] + mov r3, #0 + strb r3, [sp] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + bl func_ov00_020815f4 + ldr r0, [r4] + bl _ZN9SysObjectdlEPv +_020810ac: + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end func_ov00_02081070 + + .global func_ov00_020810b8 + arm_func_start func_ov00_020810b8 +func_ov00_020810b8: ; 0x020810b8 + stmdb sp!, {r3, r4, r5, lr} + mov r4, r1 + mov r2, #0 + mov r5, r0 + mov r1, #1 + strb r2, [sp] + bl func_ov00_020817dc + mov r0, r5 + mov r2, r4 + mov r1, #1 + bl func_ov00_02081604 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end func_ov00_020810b8 + + .global func_ov00_020810e8 + arm_func_start func_ov00_020810e8 +func_ov00_020810e8: ; 0x020810e8 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r1, [r4] + cmp r1, #0 + beq _02081124 + ldr r1, [r4, #4] + mov r3, #0 + strb r3, [sp] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + bl func_ov00_020818ac + ldr r0, [r4] + bl _ZN9SysObjectdlEPv +_02081124: + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end func_ov00_020810e8 + + .global func_ov00_02081130 + arm_func_start func_ov00_02081130 +func_ov00_02081130: ; 0x02081130 + stmdb sp!, {r3, r4, r5, lr} + mov r4, r1 + mov r2, #0 + mov r5, r0 + mov r1, #1 + strb r2, [sp] + bl func_ov00_02081a90 + mov r0, r5 + mov r2, r4 + mov r1, #1 + bl func_ov00_020818bc + ldmia sp!, {r3, r4, r5, pc} + arm_func_end func_ov00_02081130 + + .global func_ov00_02081160 + arm_func_start func_ov00_02081160 +func_ov00_02081160: ; 0x02081160 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #0x1c + mov r6, r0 + mov r5, r1 + add r0, sp, #8 + add r1, r6, #8 + mov r4, r2 + bl func_ov00_02081e7c + mov r0, #0 + str r0, [sp, #0x18] + ldmib r6, {r0, r1} + add r2, r0, r5 + mov r0, r6 + sub r1, r2, r1 + bl func_ov00_020812bc + mov r3, #0 + mov r1, r0 + strb r3, [sp, #4] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + add r0, sp, #8 + strb r3, [sp] + bl func_ov00_02081e3c + ldr r1, [r6, #4] + ldr r0, [sp, #8] + str r1, [sp, #0x18] + add r1, r0, r1, lsl #2 + ldr r0, [sp, #0xc] + cmp r5, #0 + add r1, r1, r0, lsl #2 + mov r0, #0 + strb r0, [sp, #3] + mov r2, r5 + beq _020811fc +_020811ec: + ldr r0, [r4] + subs r2, r2, #1 + str r0, [r1], #4 + bne _020811ec +_020811fc: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x18] + add r0, r0, r5 + str r0, [sp, #0xc] + ldr r4, [r6] + ldr r0, [r6, #4] + mov ip, #0 + add r0, r4, r0, lsl #2 + sub r2, r0, r4 + mov r0, r2, asr #0x1 + add r5, r2, r0, lsr #30 + sub r3, r1, r5, asr #2 + mov r2, r5, asr #0x2 + ldr r0, [sp, #8] + mov r7, r2, lsl #0x2 + mov r1, r4 + mov r2, r7 + add r0, r0, r3, lsl #2 + strb ip, [sp, #2] + str r3, [sp, #0x18] + bl func_02043594 + mov r0, r4 + mov r2, r7 + mov r1, #0 + bl func_02043600 + ldr r1, [sp, #0xc] + mov r0, #0 + add r1, r1, r5, asr #2 + str r1, [sp, #0xc] + strb r0, [sp, #1] + str r0, [r6, #4] + add r3, sp, #0x10 + ldr r2, [r6, #8] + ldr r1, [r3] + add r0, sp, #8 + str r1, [r6, #8] + str r2, [r3] + ldr r2, [r6] + ldr r1, [sp, #8] + str r1, [r6] + str r2, [sp, #8] + ldr r2, [r6, #4] + ldr r1, [sp, #0xc] + str r1, [r6, #4] + str r2, [sp, #0xc] + bl func_ov00_02081b60 + add sp, sp, #0x1c + ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end func_ov00_02081160 + + .global func_ov00_020812bc + arm_func_start func_ov00_020812bc +func_ov00_020812bc: ; 0x020812bc + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr r4, [r0, #8] + mvn r0, #0xc0000000 + ldr r1, [sp, #0x14] + sub r0, r0, r4 + cmp r1, r0 + bls _020812e4 + bl func_0204dd9c +_020812e4: + ldr r0, _02081380 ; =0x15555555 + cmp r4, r0 + bhs _02081330 + add r1, r4, #1 + ldr r0, _02081384 ; =0xcccccccd + add r1, r1, r1, lsl #1 + umull r0, r2, r1, r0 + mov r2, r2, lsr #0x2 + ldr r0, [sp, #0x14] + str r2, [sp, #4] + cmp r0, r2 + addhi r0, sp, #0x14 + addls r0, sp, #4 + ldr r0, [r0] + add sp, sp, #8 + add r0, r4, r0 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr +_02081330: + cmp r4, r0, lsl #1 + bhs _0208136c + ldr r0, [sp, #0x14] + add r1, r4, #1 + mov r2, r1, lsr #0x1 + cmp r0, r1, lsr #1 + addhi r0, sp, #0x14 + str r2, [sp] + addls r0, sp, #0 + ldr r0, [r0] + add sp, sp, #8 + add r0, r4, r0 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr +_0208136c: + mvn r0, #0xc0000000 + add sp, sp, #8 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 + arm_func_end func_ov00_020812bc +_02081380: .word 0x15555555 +_02081384: .word 0xcccccccd + + .global func_ov00_02081388 + arm_func_start func_ov00_02081388 +func_ov00_02081388: ; 0x02081388 + ldr r2, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #4] + bx lr + arm_func_end func_ov00_02081388 + + .global func_ov00_02081398 + arm_func_start func_ov00_02081398 +func_ov00_02081398: ; 0x02081398 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #0x1c + mov r6, r0 + mov r5, r1 + add r0, sp, #8 + add r1, r6, #8 + mov r4, r2 + bl func_ov00_02081dd0 + mov r0, #0 + str r0, [sp, #0x18] + ldmib r6, {r0, r1} + add r2, r0, r5 + mov r0, r6 + sub r1, r2, r1 + bl func_ov00_02081524 + mov r3, #0 + mov r1, r0 + strb r3, [sp, #4] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + add r0, sp, #8 + strb r3, [sp] + bl func_ov00_02081d88 + ldr ip, [r6, #4] + mov r0, #0 + strb r0, [sp, #3] + ldr r1, [sp, #8] + mov r0, #0x14 + mla r2, ip, r0, r1 + ldr r1, [sp, #0xc] + str ip, [sp, #0x18] + mla ip, r1, r0, r2 + cmp r5, #0 + mov r3, r5 + beq _02081454 +_02081428: + ldmia r4, {r0, r1, r2} + stmia ip, {r0, r1, r2} + ldrsh r0, [r4, #0xc] + subs r3, r3, #1 + strh r0, [ip, #0xc] + ldrb r0, [r4, #0xe] + strb r0, [ip, #0xe] + ldr r0, [r4, #0x10] + str r0, [ip, #0x10] + add ip, ip, #0x14 + bne _02081428 +_02081454: + ldr r1, [sp, #0xc] + mov r0, #0x14 + add r1, r1, r5 + str r1, [sp, #0xc] + ldr lr, [r6] + ldr r1, [r6, #4] + mov r4, #0 + mla r3, r1, r0, lr + ldr r2, [sp, #8] + ldr r1, [sp, #0x18] + strb r4, [sp, #2] + mla ip, r1, r0, r2 + cmp r3, lr + bls _020814d8 +_0208148c: + sub r3, r3, #0x14 + subs ip, ip, #0x14 + beq _020814b8 + ldmia r3, {r0, r1, r2} + stmia ip, {r0, r1, r2} + ldrsh r0, [r3, #0xc] + strh r0, [ip, #0xc] + ldrb r0, [r3, #0xe] + strb r0, [ip, #0xe] + ldr r0, [r3, #0x10] + str r0, [ip, #0x10] +_020814b8: + ldr r1, [sp, #0x18] + ldr r0, [sp, #0xc] + sub r1, r1, #1 + add r0, r0, #1 + str r1, [sp, #0x18] + str r0, [sp, #0xc] + cmp r3, lr + bhi _0208148c +_020814d8: + mov r0, #0 + strb r0, [sp, #1] + add r3, sp, #0x10 + ldr r2, [r6, #8] + ldr r1, [r3] + add r0, sp, #8 + str r1, [r6, #8] + str r2, [r3] + ldr r2, [r6] + ldr r1, [sp, #8] + str r1, [r6] + str r2, [sp, #8] + ldr r2, [r6, #4] + ldr r1, [sp, #0xc] + str r1, [r6, #4] + str r2, [sp, #0xc] + bl func_ov00_02081b7c + add sp, sp, #0x1c + ldmia sp!, {r3, r4, r5, r6, pc} + arm_func_end func_ov00_02081398 + + .global func_ov00_02081524 + arm_func_start func_ov00_02081524 +func_ov00_02081524: ; 0x02081524 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr r4, [r0, #8] + ldr r0, _020815e8 ; =0x0ccccccc + ldr r1, [sp, #0x14] + sub r0, r0, r4 + cmp r1, r0 + bls _0208154c + bl func_0204dd9c +_0208154c: + ldr r0, _020815ec ; =0x04444444 + cmp r4, r0 + bhs _02081598 + add r1, r4, #1 + ldr r0, _020815f0 ; =0xcccccccd + add r1, r1, r1, lsl #1 + umull r0, r2, r1, r0 + mov r2, r2, lsr #0x2 + ldr r0, [sp, #0x14] + str r2, [sp, #4] + cmp r0, r2 + addhi r0, sp, #0x14 + addls r0, sp, #4 + ldr r0, [r0] + add sp, sp, #8 + add r0, r4, r0 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr +_02081598: + cmp r4, r0, lsl #1 + bhs _020815d4 + ldr r0, [sp, #0x14] + add r1, r4, #1 + mov r2, r1, lsr #0x1 + cmp r0, r1, lsr #1 + addhi r0, sp, #0x14 + str r2, [sp] + addls r0, sp, #0 + ldr r0, [r0] + add sp, sp, #8 + add r0, r4, r0 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr +_020815d4: + ldr r0, _020815e8 ; =0x0ccccccc + add sp, sp, #8 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 + arm_func_end func_ov00_02081524 +_020815e8: .word 0x0ccccccc +_020815ec: .word 0x04444444 +_020815f0: .word 0xcccccccd + + .global func_ov00_020815f4 + arm_func_start func_ov00_020815f4 +func_ov00_020815f4: ; 0x020815f4 + ldr r2, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #4] + bx lr + arm_func_end func_ov00_020815f4 + + .global func_ov00_02081604 + arm_func_start func_ov00_02081604 +func_ov00_02081604: ; 0x02081604 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #0x1c + mov r4, r0 + mov r6, r1 + add r0, sp, #8 + add r1, r4, #8 + mov r5, r2 + bl func_ov00_02081d18 + mov r0, #0 + str r0, [sp, #0x18] + ldmib r4, {r0, r1} + add r2, r0, r6 + mov r0, r4 + sub r1, r2, r1 + bl func_ov00_020817dc + mov r3, #0 + mov r1, r0 + strb r3, [sp, #4] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + add r0, sp, #8 + strb r3, [sp] + bl func_ov00_02081cd0 + ldr ip, [r4, #4] + mov r0, #0 + strb r0, [sp, #3] + ldr r2, [sp, #8] + mov r0, #0x18 + mla r3, ip, r0, r2 + ldr r2, [sp, #0xc] + str ip, [sp, #0x18] + mla r0, r2, r0, r3 + cmp r6, #0 + mov r1, r6 + beq _020816e8 +_02081694: + ldr r2, [r5] + subs r1, r1, #1 + str r2, [r0] + ldr r2, [r5, #4] + str r2, [r0, #4] + ldr r2, [r5, #8] + str r2, [r0, #8] + ldr r2, [r5, #0xc] + str r2, [r0, #0xc] + ldrsh r2, [r5, #0x10] + strh r2, [r0, #0x10] + ldrb r2, [r5, #0x12] + strb r2, [r0, #0x12] + ldrb r2, [r5, #0x13] + strb r2, [r0, #0x13] + ldrb r2, [r5, #0x14] + strb r2, [r0, #0x14] + ldrb r2, [r5, #0x15] + strb r2, [r0, #0x15] + add r0, r0, #0x18 + bne _02081694 +_020816e8: + ldr r0, [sp, #0xc] + mov r1, #0x18 + add r0, r0, r6 + str r0, [sp, #0xc] + ldmia r4, {r2, r3} + mla r0, r3, r1, r2 + mov r6, #0 + ldr r5, [sp, #8] + ldr r3, [sp, #0x18] + strb r6, [sp, #2] + mla r1, r3, r1, r5 + cmp r0, r2 + bls _02081790 +_0208171c: + sub r0, r0, #0x18 + subs r1, r1, #0x18 + beq _02081770 + ldr r3, [r0] + str r3, [r1] + ldr r3, [r0, #4] + str r3, [r1, #4] + ldr r3, [r0, #8] + str r3, [r1, #8] + ldr r3, [r0, #0xc] + str r3, [r1, #0xc] + ldrsh r3, [r0, #0x10] + strh r3, [r1, #0x10] + ldrb r3, [r0, #0x12] + strb r3, [r1, #0x12] + ldrb r3, [r0, #0x13] + strb r3, [r1, #0x13] + ldrb r3, [r0, #0x14] + strb r3, [r1, #0x14] + ldrb r3, [r0, #0x15] + strb r3, [r1, #0x15] +_02081770: + ldr r5, [sp, #0x18] + ldr r3, [sp, #0xc] + sub r5, r5, #1 + add r3, r3, #1 + str r5, [sp, #0x18] + str r3, [sp, #0xc] + cmp r0, r2 + bhi _0208171c +_02081790: + mov r0, #0 + strb r0, [sp, #1] + add r3, sp, #0x10 + ldr r2, [r4, #8] + ldr r1, [r3] + add r0, sp, #8 + str r1, [r4, #8] + str r2, [r3] + ldr r2, [r4] + ldr r1, [sp, #8] + str r1, [r4] + str r2, [sp, #8] + ldr r2, [r4, #4] + ldr r1, [sp, #0xc] + str r1, [r4, #4] + str r2, [sp, #0xc] + bl func_ov00_02081b98 + add sp, sp, #0x1c + ldmia sp!, {r3, r4, r5, r6, pc} + arm_func_end func_ov00_02081604 + + .global func_ov00_020817dc + arm_func_start func_ov00_020817dc +func_ov00_020817dc: ; 0x020817dc + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr r4, [r0, #8] + ldr r0, _020818a0 ; =0x0aaaaaaa + ldr r1, [sp, #0x14] + sub r0, r0, r4 + cmp r1, r0 + bls _02081804 + bl func_0204dd9c +_02081804: + ldr r0, _020818a4 ; =0x038e38e3 + cmp r4, r0 + bhs _02081850 + add r1, r4, #1 + ldr r0, _020818a8 ; =0xcccccccd + add r1, r1, r1, lsl #1 + umull r0, r2, r1, r0 + mov r2, r2, lsr #0x2 + ldr r0, [sp, #0x14] + str r2, [sp, #4] + cmp r0, r2 + addhi r0, sp, #0x14 + addls r0, sp, #4 + ldr r0, [r0] + add sp, sp, #8 + add r0, r4, r0 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr +_02081850: + cmp r4, r0, lsl #1 + bhs _0208188c + ldr r0, [sp, #0x14] + add r1, r4, #1 + mov r2, r1, lsr #0x1 + cmp r0, r1, lsr #1 + addhi r0, sp, #0x14 + str r2, [sp] + addls r0, sp, #0 + ldr r0, [r0] + add sp, sp, #8 + add r0, r4, r0 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr +_0208188c: + ldr r0, _020818a0 ; =0x0aaaaaaa + add sp, sp, #8 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 + arm_func_end func_ov00_020817dc +_020818a0: .word 0x0aaaaaaa +_020818a4: .word 0x038e38e3 +_020818a8: .word 0xcccccccd + + .global func_ov00_020818ac + arm_func_start func_ov00_020818ac +func_ov00_020818ac: ; 0x020818ac + ldr r2, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #4] + bx lr + arm_func_end func_ov00_020818ac + + .global func_ov00_020818bc + arm_func_start func_ov00_020818bc +func_ov00_020818bc: ; 0x020818bc + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #0x1c + mov r4, r0 + mov r6, r1 + add r0, sp, #8 + add r1, r4, #8 + mov r5, r2 + bl func_ov00_02081c60 + mov r0, #0 + str r0, [sp, #0x18] + ldmib r4, {r0, r1} + add r2, r0, r6 + mov r0, r4 + sub r1, r2, r1 + bl func_ov00_02081a90 + mov r3, #0 + mov r1, r0 + strb r3, [sp, #4] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + add r0, sp, #8 + strb r3, [sp] + bl func_ov00_02081c18 + ldr ip, [r4, #4] + mov r0, #0 + strb r0, [sp, #3] + ldr r2, [sp, #8] + mov r0, #0x1c + mla r3, ip, r0, r2 + ldr r2, [sp, #0xc] + str ip, [sp, #0x18] + mla r0, r2, r0, r3 + cmp r6, #0 + mov r1, r6 + beq _020819a0 +_0208194c: + ldr r2, [r5] + subs r1, r1, #1 + str r2, [r0] + ldrb r2, [r5, #4] + strb r2, [r0, #4] + ldr r2, [r5, #8] + str r2, [r0, #8] + ldr r2, [r5, #0xc] + str r2, [r0, #0xc] + ldr r2, [r5, #0x10] + str r2, [r0, #0x10] + ldrsh r2, [r5, #0x14] + strh r2, [r0, #0x14] + ldrsh r2, [r5, #0x16] + strh r2, [r0, #0x16] + ldrh r3, [r5, #0x18] + ldrh r2, [r5, #0x1a] + strh r3, [r0, #0x18] + strh r2, [r0, #0x1a] + add r0, r0, #0x1c + bne _0208194c +_020819a0: + ldr r1, [sp, #0xc] + mov r0, #0x1c + add r1, r1, r6 + str r1, [sp, #0xc] + ldr lr, [r4] + ldr r1, [r4, #4] + mov r5, #0 + mla r3, r1, r0, lr + ldr r2, [sp, #8] + ldr r1, [sp, #0x18] + strb r5, [sp, #2] + mla ip, r1, r0, r2 + cmp r3, lr + bls _02081a44 +_020819d8: + sub r3, r3, #0x1c + subs ip, ip, #0x1c + beq _02081a24 + ldr r1, [r3] + add r0, r3, #8 + str r1, [ip] + ldrb r1, [r3, #4] + add r5, ip, #8 + strb r1, [ip, #4] + ldmia r0, {r0, r1, r2} + stmia r5, {r0, r1, r2} + ldrsh r0, [r3, #0x14] + strh r0, [ip, #0x14] + ldrsh r0, [r3, #0x16] + strh r0, [ip, #0x16] + ldrh r1, [r3, #0x18] + ldrh r0, [r3, #0x1a] + strh r1, [ip, #0x18] + strh r0, [ip, #0x1a] +_02081a24: + ldr r1, [sp, #0x18] + ldr r0, [sp, #0xc] + sub r1, r1, #1 + add r0, r0, #1 + str r1, [sp, #0x18] + str r0, [sp, #0xc] + cmp r3, lr + bhi _020819d8 +_02081a44: + mov r0, #0 + strb r0, [sp, #1] + add r3, sp, #0x10 + ldr r2, [r4, #8] + ldr r1, [r3] + add r0, sp, #8 + str r1, [r4, #8] + str r2, [r3] + ldr r2, [r4] + ldr r1, [sp, #8] + str r1, [r4] + str r2, [sp, #8] + ldr r2, [r4, #4] + ldr r1, [sp, #0xc] + str r1, [r4, #4] + str r2, [sp, #0xc] + bl func_ov00_02081bb4 + add sp, sp, #0x1c + ldmia sp!, {r3, r4, r5, r6, pc} + arm_func_end func_ov00_020818bc + + .global func_ov00_02081a90 + arm_func_start func_ov00_02081a90 +func_ov00_02081a90: ; 0x02081a90 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr r4, [r0, #8] + ldr r0, _02081b54 ; =0x09249249 + ldr r1, [sp, #0x14] + sub r0, r0, r4 + cmp r1, r0 + bls _02081ab8 + bl func_0204dd9c +_02081ab8: + ldr r0, _02081b58 ; =0x030c30c3 + cmp r4, r0 + bhs _02081b04 + add r1, r4, #1 + ldr r0, _02081b5c ; =0xcccccccd + add r1, r1, r1, lsl #1 + umull r0, r2, r1, r0 + mov r2, r2, lsr #0x2 + ldr r0, [sp, #0x14] + str r2, [sp, #4] + cmp r0, r2 + addhi r0, sp, #0x14 + addls r0, sp, #4 + ldr r0, [r0] + add sp, sp, #8 + add r0, r4, r0 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr +_02081b04: + cmp r4, r0, lsl #1 + bhs _02081b40 + ldr r0, [sp, #0x14] + add r1, r4, #1 + mov r2, r1, lsr #0x1 + cmp r0, r1, lsr #1 + addhi r0, sp, #0x14 + str r2, [sp] + addls r0, sp, #0 + ldr r0, [r0] + add sp, sp, #8 + add r0, r4, r0 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr +_02081b40: + ldr r0, _02081b54 ; =0x09249249 + add sp, sp, #8 + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 + arm_func_end func_ov00_02081a90 +_02081b54: .word 0x09249249 +_02081b58: .word 0x030c30c3 +_02081b5c: .word 0xcccccccd + + .global func_ov00_02081b60 + arm_func_start func_ov00_02081b60 +func_ov00_02081b60: ; 0x02081b60 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r1, #0 + str r1, [r4, #4] + bl func_ov00_02081df8 + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081b60 + + .global func_ov00_02081b7c + arm_func_start func_ov00_02081b7c +func_ov00_02081b7c: ; 0x02081b7c + stmdb sp!, {r4, lr} + mov r4, r0 + mov r1, #0 + str r1, [r4, #4] + bl func_ov00_02081d40 + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081b7c + + .global func_ov00_02081b98 + arm_func_start func_ov00_02081b98 +func_ov00_02081b98: ; 0x02081b98 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r1, #0 + str r1, [r4, #4] + bl func_ov00_02081c88 + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081b98 + + .global func_ov00_02081bb4 + arm_func_start func_ov00_02081bb4 +func_ov00_02081bb4: ; 0x02081bb4 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r1, #0 + str r1, [r4, #4] + bl func_ov00_02081bd0 + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081bb4 + + .global func_ov00_02081bd0 + arm_func_start func_ov00_02081bd0 +func_ov00_02081bd0: ; 0x02081bd0 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r1, [r4] + cmp r1, #0 + beq _02081c0c + ldr r1, [r4, #4] + mov r3, #0 + strb r3, [sp] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + bl func_ov00_02081ec4 + ldr r0, [r4] + bl _ZN9SysObjectdlEPv +_02081c0c: + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end func_ov00_02081bd0 + + .global func_ov00_02081c18 + arm_func_start func_ov00_02081c18 +func_ov00_02081c18: ; 0x02081c18 + stmdb sp!, {r3, r4, r5, lr} + ldr r2, _02081c58 ; =0x09249249 + mov r4, r1 + mov r5, r0 + cmp r4, r2 + bls _02081c34 + bl func_0204dd9c +_02081c34: + mov r0, #0x1c + mul r0, r4, r0 + ldr r1, _02081c5c ; =data_027e0ce0 + mov r2, #4 + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + str r0, [r5] + str r4, [r5, #8] + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end func_ov00_02081c18 +_02081c58: .word 0x09249249 +_02081c5c: .word data_027e0ce0 + + .global func_ov00_02081c60 + arm_func_start func_ov00_02081c60 +func_ov00_02081c60: ; 0x02081c60 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r2, r1 + mov r1, #0 + str r1, [r4] + add r0, r4, #8 + str r1, [r4, #4] + bl func_ov00_02081ea4 + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081c60 + + .global func_ov00_02081c88 + arm_func_start func_ov00_02081c88 +func_ov00_02081c88: ; 0x02081c88 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r1, [r4] + cmp r1, #0 + beq _02081cc4 + ldr r1, [r4, #4] + mov r3, #0 + strb r3, [sp] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + bl func_ov00_02081ed4 + ldr r0, [r4] + bl _ZN9SysObjectdlEPv +_02081cc4: + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end func_ov00_02081c88 + + .global func_ov00_02081cd0 + arm_func_start func_ov00_02081cd0 +func_ov00_02081cd0: ; 0x02081cd0 + stmdb sp!, {r3, r4, r5, lr} + ldr r2, _02081d10 ; =0x0aaaaaaa + mov r4, r1 + mov r5, r0 + cmp r4, r2 + bls _02081cec + bl func_0204dd9c +_02081cec: + mov r0, #0x18 + mul r0, r4, r0 + ldr r1, _02081d14 ; =data_027e0ce0 + mov r2, #4 + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + str r0, [r5] + str r4, [r5, #8] + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end func_ov00_02081cd0 +_02081d10: .word 0x0aaaaaaa +_02081d14: .word data_027e0ce0 + + .global func_ov00_02081d18 + arm_func_start func_ov00_02081d18 +func_ov00_02081d18: ; 0x02081d18 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r2, r1 + mov r1, #0 + str r1, [r4] + add r0, r4, #8 + str r1, [r4, #4] + bl func_ov00_02081eac + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081d18 + + .global func_ov00_02081d40 + arm_func_start func_ov00_02081d40 +func_ov00_02081d40: ; 0x02081d40 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r1, [r4] + cmp r1, #0 + beq _02081d7c + ldr r1, [r4, #4] + mov r3, #0 + strb r3, [sp] + sub r2, sp, #4 + strb r3, [r2] + ldr r2, [r2] + bl func_ov00_02081ee4 + ldr r0, [r4] + bl _ZN9SysObjectdlEPv +_02081d7c: + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end func_ov00_02081d40 + + .global func_ov00_02081d88 + arm_func_start func_ov00_02081d88 +func_ov00_02081d88: ; 0x02081d88 + stmdb sp!, {r3, r4, r5, lr} + ldr r2, _02081dc8 ; =0x0ccccccc + mov r4, r1 + mov r5, r0 + cmp r4, r2 + bls _02081da4 + bl func_0204dd9c +_02081da4: + mov r0, #0x14 + mul r0, r4, r0 + ldr r1, _02081dcc ; =data_027e0ce0 + mov r2, #4 + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + str r0, [r5] + str r4, [r5, #8] + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end func_ov00_02081d88 +_02081dc8: .word 0x0ccccccc +_02081dcc: .word data_027e0ce0 + + .global func_ov00_02081dd0 + arm_func_start func_ov00_02081dd0 +func_ov00_02081dd0: ; 0x02081dd0 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r2, r1 + mov r1, #0 + str r1, [r4] + add r0, r4, #8 + str r1, [r4, #4] + bl func_ov00_02081eb4 + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081dd0 + + .global func_ov00_02081df8 + arm_func_start func_ov00_02081df8 +func_ov00_02081df8: ; 0x02081df8 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r0, [r4] + cmp r0, #0 + beq _02081e30 + ldr r1, [r4, #4] + mov r0, #0 + strb r0, [sp] + ldr r0, [r4, #4] + sub r0, r0, r1 + str r0, [r4, #4] + ldr r0, [r4] + bl _ZN9SysObjectdlEPv +_02081e30: + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end func_ov00_02081df8 + + .global func_ov00_02081e3c + arm_func_start func_ov00_02081e3c +func_ov00_02081e3c: ; 0x02081e3c + stmdb sp!, {r3, r4, r5, lr} + mov r4, r1 + mvn r1, #0xc0000000 + mov r5, r0 + cmp r4, r1 + bls _02081e58 + bl func_0204dd9c +_02081e58: + ldr r1, _02081e78 ; =data_027e0ce0 + mov r0, r4, lsl #0x2 + ldr r1, [r1, #4] + mov r2, #4 + bl _ZN9SysObjectnwEmPjj + str r0, [r5] + str r4, [r5, #8] + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end func_ov00_02081e3c +_02081e78: .word data_027e0ce0 + + .global func_ov00_02081e7c + arm_func_start func_ov00_02081e7c +func_ov00_02081e7c: ; 0x02081e7c + stmdb sp!, {r4, lr} + mov r4, r0 + mov r2, r1 + mov r1, #0 + str r1, [r4] + add r0, r4, #8 + str r1, [r4, #4] + bl func_ov00_02081ebc + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081e7c + + .global func_ov00_02081ea4 + arm_func_start func_ov00_02081ea4 +func_ov00_02081ea4: ; 0x02081ea4 + stmia r0, {r1, r2} + bx lr + arm_func_end func_ov00_02081ea4 + + .global func_ov00_02081eac + arm_func_start func_ov00_02081eac +func_ov00_02081eac: ; 0x02081eac + stmia r0, {r1, r2} + bx lr + arm_func_end func_ov00_02081eac + + .global func_ov00_02081eb4 + arm_func_start func_ov00_02081eb4 +func_ov00_02081eb4: ; 0x02081eb4 + stmia r0, {r1, r2} + bx lr + arm_func_end func_ov00_02081eb4 + + .global func_ov00_02081ebc + arm_func_start func_ov00_02081ebc +func_ov00_02081ebc: ; 0x02081ebc + stmia r0, {r1, r2} + bx lr + arm_func_end func_ov00_02081ebc + + .global func_ov00_02081ec4 + arm_func_start func_ov00_02081ec4 +func_ov00_02081ec4: ; 0x02081ec4 + ldr r2, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #4] + bx lr + arm_func_end func_ov00_02081ec4 + + .global func_ov00_02081ed4 + arm_func_start func_ov00_02081ed4 +func_ov00_02081ed4: ; 0x02081ed4 + ldr r2, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #4] + bx lr + arm_func_end func_ov00_02081ed4 + + .global func_ov00_02081ee4 + arm_func_start func_ov00_02081ee4 +func_ov00_02081ee4: ; 0x02081ee4 + ldr r2, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #4] + bx lr + arm_func_end func_ov00_02081ee4 + + .global func_ov00_02081ef4 + arm_func_start func_ov00_02081ef4 +func_ov00_02081ef4: ; 0x02081ef4 + ldr r1, _02081f34 ; =0x0000ffff + mov r2, #0 + strh r1, [r0, #0x24] + strh r1, [r0, #0x26] + strh r1, [r0, #0x28] + strh r1, [r0, #0x2a] + strh r2, [r0, #0x2c] + sub r1, r2, #1 + str r1, [r0, #0x54] + strb r2, [r0, #0x58] + strb r2, [r0, #0x59] + strb r2, [r0, #0x5a] + strb r2, [r0, #0x5b] + strb r2, [r0, #0x5c] + strb r2, [r0, #0x5d] + bx lr + .align 2, 0 + arm_func_end func_ov00_02081ef4 +_02081f34: .word 0x0000ffff + + .global func_ov00_02081f38 + arm_func_start func_ov00_02081f38 +func_ov00_02081f38: ; 0x02081f38 + stmdb sp!, {r4, lr} + mov r4, r0 + bl _ZN9SysObjectdlEPv + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081f38 + + .global func_ov00_02081f4c + arm_func_start func_ov00_02081f4c +func_ov00_02081f4c: ; 0x02081f4c + bx lr + arm_func_end func_ov00_02081f4c + + .global func_ov00_02081f50 + arm_func_start func_ov00_02081f50 +func_ov00_02081f50: ; 0x02081f50 + mov r0, #1 + bx lr + arm_func_end func_ov00_02081f50 + + .global func_ov00_02081f58 + arm_func_start func_ov00_02081f58 +func_ov00_02081f58: ; 0x02081f58 + stmdb sp!, {r4, lr} + mov r4, r0 + bl _ZN9SysObjectdlEPv + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_02081f58 + + .global func_ov00_02081f6c + arm_func_start func_ov00_02081f6c +func_ov00_02081f6c: ; 0x02081f6c + bx lr + arm_func_end func_ov00_02081f6c + + .global func_ov00_02081f70 + arm_func_start func_ov00_02081f70 +func_ov00_02081f70: ; 0x02081f70 + mov r0, #1 + bx lr + arm_func_end func_ov00_02081f70 + + .global func_ov00_02081f78 + arm_func_start func_ov00_02081f78 +func_ov00_02081f78: ; 0x02081f78 + mov r0, #1 + bx lr + arm_func_end func_ov00_02081f78 + + .global func_ov00_02081f80 + arm_func_start func_ov00_02081f80 +func_ov00_02081f80: ; 0x02081f80 + stmdb sp!, {r4, lr} + mov r4, r1 + mov r0, r4 + ldr r1, [r0] + ldr r1, [r1, #0x1c] + blx r1 + cmp r0, #0x10 + bgt _02081fcc + bge _02081fec + cmp r0, #3 + bgt _02081fc0 + cmp r0, #1 + blt _02081ffc + cmpne r0, #3 + beq _02081fec + b _02081ffc +_02081fc0: + cmp r0, #0xe + beq _02081fec + b _02081ffc +_02081fcc: + cmp r0, #0x1c + bgt _02081fe4 + bge _02081fec + cmp r0, #0x17 + beq _02081fec + b _02081ffc +_02081fe4: + cmp r0, #0x38 + bne _02081ffc + arm_func_end func_ov00_02081f80 +_02081fec: + mov r0, r4 + ldr r1, [r0] + ldr r1, [r1, #0x20] + blx r1 +_02081ffc: + mov r0, #1 + ldmia sp!, {r4, pc} + + .global func_ov00_02082004 + arm_func_start func_ov00_02082004 +func_ov00_02082004: ; 0x02082004 + mov r0, #1 + bx lr + arm_func_end func_ov00_02082004 + + .global func_ov00_0208200c + arm_func_start func_ov00_0208200c +func_ov00_0208200c: ; 0x0208200c + mov r0, #1 + bx lr + arm_func_end func_ov00_0208200c + + .global func_ov00_02082014 + arm_func_start func_ov00_02082014 +func_ov00_02082014: ; 0x02082014 + stmdb sp!, {r4, lr} + mov r4, r1 + mov r0, r4 + ldr r1, [r0] + ldr r1, [r1, #0x1c] + blx r1 + cmp r0, #0x10 + bgt _02082054 + cmp r0, #0xe + blt _02082048 + cmpne r0, #0x10 + beq _0208206c + b _0208207c +_02082048: + cmp r0, #3 + beq _0208206c + b _0208207c +_02082054: + cmp r0, #0x17 + bgt _02082064 + beq _0208206c + b _0208207c +_02082064: + cmp r0, #0x1c + bne _0208207c + arm_func_end func_ov00_02082014 +_0208206c: + mov r0, r4 + ldr r1, [r0] + ldr r1, [r1, #0x20] + blx r1 +_0208207c: + mov r0, #1 + ldmia sp!, {r4, pc} + + .global func_ov00_02082084 + arm_func_start func_ov00_02082084 +func_ov00_02082084: ; 0x02082084 + mov r0, #1 + bx lr + arm_func_end func_ov00_02082084 + + .global func_ov00_0208208c + arm_func_start func_ov00_0208208c +func_ov00_0208208c: ; 0x0208208c + stmdb sp!, {r4, lr} + mov r4, r0 + bl func_ov00_02081f4c + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_0208208c + + .global func_ov00_020820a0 + arm_func_start func_ov00_020820a0 +func_ov00_020820a0: ; 0x020820a0 + stmdb sp!, {r4, lr} + mov r4, r0 + bl func_ov00_02081f4c + mov r0, r4 + bl _ZN9SysObjectdlEPv + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_020820a0 + + .global func_ov00_020820bc + arm_func_start func_ov00_020820bc +func_ov00_020820bc: ; 0x020820bc + stmdb sp!, {r4, lr} + mov r4, r0 + bl func_ov00_02081f4c + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_020820bc + + .global func_ov00_020820d0 + arm_func_start func_ov00_020820d0 +func_ov00_020820d0: ; 0x020820d0 + stmdb sp!, {r4, lr} + mov r4, r0 + bl func_ov00_02081f4c + mov r0, r4 + bl _ZN9SysObjectdlEPv + mov r0, r4 + ldmia sp!, {r4, pc} + arm_func_end func_ov00_020820d0 + + .rodata + .global data_ov00_020d88d0 +data_ov00_020d88d0: ; 0x020d88d0 + .ascii "sea" + .byte 0x00 + .global data_ov00_020d88d4 +data_ov00_020d88d4: ; 0x020d88d4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d88d8 +data_ov00_020d88d8: ; 0x020d88d8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d88dc +data_ov00_020d88dc: ; 0x020d88dc + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d88e0 +data_ov00_020d88e0: ; 0x020d88e0 + .ascii "sea" + .byte 0x00 + .global data_ov00_020d88e4 +data_ov00_020d88e4: ; 0x020d88e4 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d88e8 +data_ov00_020d88e8: ; 0x020d88e8 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020d88ec +data_ov00_020d88ec: ; 0x020d88ec + .byte 0x00, 0x00, 0x00, 0x00 + + .data + .global data_ov00_020e2424 +data_ov00_020e2424: ; 0x020e2424 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2428 +data_ov00_020e2428: ; 0x020e2428 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e242c +data_ov00_020e242c: ; 0x020e242c + .word func_ov00_020820bc + .global data_ov00_020e2430 +data_ov00_020e2430: ; 0x020e2430 + .word func_ov00_020820d0 + .global data_ov00_020e2434 +data_ov00_020e2434: ; 0x020e2434 + .word func_ov00_02082004 + .global data_ov00_020e2438 +data_ov00_020e2438: ; 0x020e2438 + .word func_ov00_0208200c + .global data_ov00_020e243c +data_ov00_020e243c: ; 0x020e243c + .word func_ov00_02082014 + .global data_ov00_020e2440 +data_ov00_020e2440: ; 0x020e2440 + .word func_ov00_02082084 + .global data_ov00_020e2444 +data_ov00_020e2444: ; 0x020e2444 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2448 +data_ov00_020e2448: ; 0x020e2448 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e244c +data_ov00_020e244c: ; 0x020e244c + .word func_ov00_0208208c + .global data_ov00_020e2450 +data_ov00_020e2450: ; 0x020e2450 + .word func_ov00_020820a0 + .global data_ov00_020e2454 +data_ov00_020e2454: ; 0x020e2454 + .word func_ov00_02081f70 + .global data_ov00_020e2458 +data_ov00_020e2458: ; 0x020e2458 + .word func_ov00_02081f78 + .global data_ov00_020e245c +data_ov00_020e245c: ; 0x020e245c + .word func_ov00_02081f80 + .global data_ov00_020e2460 +data_ov00_020e2460: ; 0x020e2460 + .word func_ov00_02081f50 + .global data_ov00_020e2464 +data_ov00_020e2464: ; 0x020e2464 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2468 +data_ov00_020e2468: ; 0x020e2468 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e246c +data_ov00_020e246c: ; 0x020e246c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2470 +data_ov00_020e2470: ; 0x020e2470 + .word func_ov00_02081f38 + .global data_ov00_020e2474 +data_ov00_020e2474: ; 0x020e2474 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2478 +data_ov00_020e2478: ; 0x020e2478 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e247c +data_ov00_020e247c: ; 0x020e247c + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2480 +data_ov00_020e2480: ; 0x020e2480 + .word func_ov00_02081f50 + .global data_ov00_020e2484 +data_ov00_020e2484: ; 0x020e2484 + .ascii "brg" + .byte 0x00 + .global data_ov00_020e2488 +data_ov00_020e2488: ; 0x020e2488 + .ascii "fnl" + .byte 0x00 + .global data_ov00_020e248c +data_ov00_020e248c: ; 0x020e248c + .ascii "pdl" + .byte 0x00 + .global data_ov00_020e2490 +data_ov00_020e2490: ; 0x020e2490 + .ascii "dco" + .byte 0x00 + .global data_ov00_020e2494 +data_ov00_020e2494: ; 0x020e2494 + .ascii "can" + .byte 0x00 + .global data_ov00_020e2498 +data_ov00_020e2498: ; 0x020e2498 + .ascii "hul" + .byte 0x00 + .global data_ov00_020e249c +data_ov00_020e249c: ; 0x020e249c + .ascii "bow" + .byte 0x00 + .global data_ov00_020e24a0 +data_ov00_020e24a0: ; 0x020e24a0 + .ascii "anc" + .byte 0x00 + .global data_ov00_020e24a4 +data_ov00_020e24a4: ; 0x020e24a4 + .word data_ov00_020e24a0 + .global data_ov00_020e24a8 +data_ov00_020e24a8: ; 0x020e24a8 + .word data_ov00_020e249c + .global data_ov00_020e24ac +data_ov00_020e24ac: ; 0x020e24ac + .word data_ov00_020e2498 + .global data_ov00_020e24b0 +data_ov00_020e24b0: ; 0x020e24b0 + .word data_ov00_020e2494 + .global data_ov00_020e24b4 +data_ov00_020e24b4: ; 0x020e24b4 + .word data_ov00_020e2490 + .global data_ov00_020e24b8 +data_ov00_020e24b8: ; 0x020e24b8 + .word data_ov00_020e248c + .global data_ov00_020e24bc +data_ov00_020e24bc: ; 0x020e24bc + .word data_ov00_020e2488 + .global data_ov00_020e24c0 +data_ov00_020e24c0: ; 0x020e24c0 + .word data_ov00_020e2484 diff --git a/asm/ov00/ov00_0207af9c.inc b/asm/ov00/ov00_02086cd0.inc similarity index 58% rename from asm/ov00/ov00_0207af9c.inc rename to asm/ov00/ov00_02086cd0.inc index e731a915..42b8f47b 100644 --- a/asm/ov00/ov00_0207af9c.inc +++ b/asm/ov00/ov00_02086cd0.inc @@ -1,21 +1,54 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_54Ev +.extern _ZN10MapManager16MapData_vfunc_60Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p +.extern _ZN10MapManager17Get_MapData_Unk28Ev +.extern _ZN10MapManager17Get_MapData_Unk2aEv +.extern _ZN10MapManager18func_ov00_02082538Ev +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_020826a0Eiii +.extern _ZN10MapManager18func_ov00_020834bcEP5Vec3pii +.extern _ZN10MapManager18func_ov00_02083560EiPS_j +.extern _ZN10MapManager18func_ov00_020835e4EiPiS0_ +.extern _ZN10MapManager18func_ov00_020836ccEjP4AABBj +.extern _ZN10MapManager18func_ov00_020838f8EPi +.extern _ZN10MapManager18func_ov00_02083928EPci +.extern _ZN10MapManager18func_ov00_02083938Ei +.extern _ZN10MapManager18func_ov00_02083968EjPc +.extern _ZN10MapManager18func_ov00_020839d4Ev +.extern _ZN10MapManager18func_ov00_020839f8Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083b84Ev +.extern _ZN10MapManager18func_ov00_02083bacEv +.extern _ZN10MapManager18func_ov00_02083bd4Ev +.extern _ZN10MapManager18func_ov00_02083bfcEv +.extern _ZN10MapManager18func_ov00_02083e70Ev +.extern _ZN10MapManager18func_ov00_02084100EiPS_ +.extern _ZN10MapManager18func_ov00_02084164Ev +.extern _ZN10MapManager18func_ov00_020848b8Ev +.extern _ZN10MapManager18func_ov00_02084934Ev +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084be0Eii +.extern _ZN10MapManager18func_ov00_02084d24Ecci +.extern _ZN11TriggerBase14GetBoundingBoxEv +.extern _ZN11TriggerBase8OverlapsEv +.extern _ZN11TriggerBase8vfunc_08Ev +.extern _ZN11TriggerBase8vfunc_0cEv +.extern _ZN11TriggerBase8vfunc_10Ev .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager13FindActorByIdEj -.extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager18func_ov00_020c3b2cEPi .extern _ZN12ActorManager18func_ov00_020c3bb0EiPi -.extern _ZN12ActorManager18func_ov00_020c3ce8Eii .extern _ZN12ActorManager22FindNearestActorOfTypeEP8ActorRefPS_jP5Vec3p .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN14AdventureFlags15Get_FlagsUnk_00EiP9FlagsUnk2 -.extern _ZN14AdventureFlags18func_ov00_020976c8Ev .extern _ZN14AdventureFlags18func_ov00_02097738Ev .extern _ZN14AdventureFlags18func_ov00_020980d0Ev .extern _ZN14AdventureFlags20Get_FlagsUnk_30_FlagEi -.extern _ZN14AdventureFlags3GetEj -.extern _ZN14OverlayManager15LoadIfNotLoadedEjj .extern _ZN5Actor10SetUnk_11bEv .extern _ZN5Actor11SetVelocityEP5Vec3p .extern _ZN5Actor12CollidesWithEPKS_ @@ -63,45 +96,26 @@ .extern _ZN5Actor8vfunc_b0Ev .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN7MapBase18func_ov00_0207e940EPc +.extern _ZN7MapBase18func_ov00_0207e968Ev +.extern _ZN7MapBase18func_ov00_0207e96cEv +.extern _ZN7MapBase18func_ov00_0207f100Ev .extern _ZN9ActorTypeC1EjPFP5ActorvEPv .extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj -.extern _ZNK11ItemManager7HasItemEi .extern __register_global_object .extern data_02050f54 .extern data_02056be4 .extern data_02063e4c -.extern data_020691a0 -.extern data_027e037c -.extern data_027e0384 -.extern data_027e03c8 -.extern data_027e0618 .extern data_027e071c .extern data_027e0764 .extern data_027e077c -.extern data_027e0c54 .extern data_027e0c68 -.extern data_027e0cbc .extern data_027e0ce0 .extern data_027e0d38 .extern data_027e0d3c .extern data_027e0d44 -.extern data_027e0d54 -.extern data_027e0d6c -.extern data_027e0d78 -.extern data_027e0db0 -.extern data_027e0db4 -.extern data_027e0db8 -.extern data_027e0dbc -.extern data_027e0de4 -.extern data_027e0de8 -.extern data_027e0e08 -.extern data_027e0e28 -.extern data_027e0e2c -.extern data_027e0e58 -.extern data_027e0e5c -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -110,14 +124,11 @@ .extern data_027e0f7c .extern data_027e0f80 .extern data_027e0f84 -.extern data_027e0f88 -.extern data_027e0f8c .extern data_027e0f90 .extern data_027e0f94 .extern data_027e0fa0 .extern data_027e0fac .extern data_027e0fc8 -.extern data_027e0fcc .extern data_027e0fe0 .extern data_027e0fe4 .extern data_027e0fe8 @@ -133,15 +144,13 @@ .extern data_ov00_020e37ec .extern data_ov00_020e38ec .extern data_ov00_020e39ec +.extern data_ov00_020e9370 +.extern data_ov00_020ea110 .extern data_ov00_020eab04 -.extern data_ov00_020eec68 .extern data_ov00_020eec9c -.extern data_ov09_0211f5dc -.extern data_ov15_02190458 .extern func_01ff8018 .extern func_01ff8024 .extern func_01ff8214 -.extern func_01ff892c .extern func_01ff8954 .extern func_01ff8af8 .extern func_01ff9158 @@ -154,29 +163,22 @@ .extern func_01ff9958 .extern func_01ff99f4 .extern func_01ff9a50 -.extern func_01ff9b4c .extern func_01ff9bc4 .extern func_01ff9bf8 .extern func_01ff9c2c .extern func_01ff9c68 .extern func_01ff9cec .extern func_01ff9d4c -.extern func_01ff9e64 .extern func_01ff9ec0 .extern func_01ffa0f4 .extern func_01ffa8d4 .extern func_01ffa9fc .extern func_01ffb7ec .extern func_01ffbe34 -.extern func_01ffbe78 .extern func_01ffbf5c .extern func_01ffe468 -.extern func_01ffe61c -.extern func_01ffe904 .extern func_01ffebe0 .extern func_01ffec34 -.extern func_01fff084 -.extern func_01fff264 .extern func_01fff4c8 .extern func_01fffb4c .extern func_01fffb80 @@ -189,55 +191,19 @@ .extern func_02002588 .extern func_02002774 .extern func_02002c14 -.extern func_02004730 -.extern func_020047d8 -.extern func_02004a3c -.extern func_02004a50 -.extern func_02004dac -.extern func_020052e4 -.extern func_02005628 .extern func_02005660 -.extern func_02005b58 .extern func_02005bfc .extern func_02005dcc -.extern func_02006060 -.extern func_02006b14 -.extern func_02006b2c -.extern func_02006b90 -.extern func_020078c0 -.extern func_020078d8 .extern func_020078f4 -.extern func_02007938 -.extern func_02007984 .extern func_02007a18 -.extern func_02007ad8 -.extern func_0200be04 -.extern func_0200c8d0 -.extern func_0200e2c0 -.extern func_02012830 -.extern func_020128bc -.extern func_02012934 -.extern func_020196bc -.extern func_020196fc .extern func_0201b5e4 -.extern func_0201e24c -.extern func_0201e4cc -.extern func_02023b3c -.extern func_02024130 -.extern func_0202ab78 -.extern func_0202abdc .extern func_0202b154 -.extern func_0202b2e8 .extern func_0202b3bc .extern func_0202b418 .extern func_0202b4e4 .extern func_0202b66c .extern func_0202b734 .extern func_0202b7e4 -.extern func_0202b8e4 -.extern func_0202c69c -.extern func_0202d56c -.extern func_0202d77c .extern func_0202d7ac .extern func_0202e58c .extern func_0202e9f4 @@ -251,11 +217,7 @@ .extern func_020351b8 .extern func_0203eba8 .extern func_0203ebc8 -.extern func_02040464 -.extern func_02042b40 -.extern func_02042bfc .extern func_02042d50 -.extern func_02042f68 .extern func_02043594 .extern func_020435b4 .extern func_02043600 @@ -266,20 +228,12 @@ .extern func_0204f754 .extern func_0204f7b0 .extern func_ov00_02078b40 -.extern func_ov00_02078b88 -.extern func_ov00_02078bc4 -.extern func_ov00_02078bf0 .extern func_ov00_02078f54 -.extern func_ov00_02078fe8 .extern func_ov00_02079008 -.extern func_ov00_0207920c -.extern func_ov00_020792a0 .extern func_ov00_02079470 .extern func_ov00_02079680 -.extern func_ov00_02079898 -.extern func_ov00_020798bc -.extern func_ov00_02079e04 -.extern func_ov00_02079e3c +.extern func_ov00_02081f4c +.extern func_ov00_02081f6c .extern func_ov00_0209afc4 .extern func_ov00_0209b5a4 .extern func_ov00_0209b6f4 @@ -288,24 +242,7 @@ .extern func_ov00_0209b960 .extern func_ov00_0209bbe8 .extern func_ov00_0209bc38 -.extern func_ov00_0209c08c -.extern func_ov00_0209c1e4 -.extern func_ov00_0209c2b4 -.extern func_ov00_0209c2d0 -.extern func_ov00_0209c530 -.extern func_ov00_0209c61c -.extern func_ov00_0209c788 -.extern func_ov00_0209c8e4 -.extern func_ov00_0209cc3c -.extern func_ov00_0209cc48 -.extern func_ov00_0209cd80 -.extern func_ov00_0209cd9c -.extern func_ov00_0209cddc -.extern func_ov00_0209cdf8 -.extern func_ov00_0209d6e8 -.extern func_ov00_0209d71c .extern func_ov00_0209d738 -.extern func_ov00_0209d778 .extern func_ov00_0209da68 .extern func_ov00_0209da90 .extern func_ov00_0209dc60 @@ -320,101 +257,33 @@ .extern func_ov00_020a1838 .extern func_ov00_020a1888 .extern func_ov00_020a19c8 -.extern func_ov00_020a1a0c -.extern func_ov00_020a3510 -.extern func_ov00_020a3710 -.extern func_ov00_020a3de0 .extern func_ov00_020a5e9c .extern func_ov00_020a6110 .extern func_ov00_020a61ac .extern func_ov00_020b3ea8 -.extern func_ov00_020b7e6c .extern func_ov00_020bd304 .extern func_ov00_020bd618 .extern func_ov00_020c1500 .extern func_ov00_020c3348 .extern func_ov00_020c4048 -.extern func_ov00_020cf13c -.extern func_ov00_020cf414 -.extern func_ov00_020cfcec -.extern func_ov00_020d70a4 -.extern func_ov00_020d72b8 -.extern func_ov00_020d7424 .extern func_ov00_020d77e4 -.extern func_ov03_020f3974 -.extern func_ov03_020f3c28 -.extern func_ov03_020fa874 .extern func_ov03_020fb3e0 .extern func_ov03_020fb3f0 .extern func_ov03_020fb404 -.extern func_ov04_02100eb0 -.extern func_ov04_02101188 -.extern func_ov04_021024c4 -.extern func_ov04_02102770 -.extern func_ov04_02102b28 -.extern func_ov04_02102e3c .extern func_ov04_02103444 .extern func_ov04_021034fc -.extern func_ov04_02105578 -.extern func_ov04_02105608 -.extern func_ov04_02106db8 -.extern func_ov04_0210bfa8 -.extern func_ov04_0210c1f8 -.extern func_ov04_0210c3fc -.extern func_ov04_0210c52c -.extern func_ov04_0210c5cc -.extern func_ov04_0210c764 -.extern func_ov04_0210c800 -.extern func_ov04_0210c88c -.extern func_ov04_0210c8d4 -.extern func_ov04_0210ca84 -.extern func_ov04_0210cb00 -.extern func_ov04_0210cb1c -.extern func_ov04_0210dd90 -.extern func_ov05_02100e0c -.extern func_ov05_02101080 -.extern func_ov05_021010b0 -.extern func_ov05_021010ec .extern func_ov05_0210199c .extern func_ov05_02101ab8 .extern func_ov05_02102c2c .extern func_ov05_02103f4c -.extern func_ov05_02111bc0 -.extern func_ov05_02111c00 -.extern func_ov05_02111c6c -.extern func_ov05_02111c70 -.extern func_ov08_02113080 .extern func_ov08_0211351c .extern func_ov08_021135b8 -.extern func_ov08_021136fc -.extern func_ov08_02113730 -.extern func_ov08_02113a0c -.extern func_ov08_02113aa8 -.extern func_ov09_02114810 -.extern func_ov12_0212b358 -.extern func_ov12_02133c40 .extern func_ov14_02125934 .extern func_ov14_02125948 -.extern func_ov15_02128dd8 -.extern func_ov15_02129c14 -.extern func_ov15_02129c24 -.extern func_ov15_02129c34 -.extern func_ov15_02129c44 .extern func_ov15_0214c3c4 .extern func_ov15_0214c414 .extern func_ov15_02175cc4 -.extern func_ov15_021849a4 -.extern func_ov17_0215b4e8 -.extern func_ov17_0215cef4 -.extern func_ov18_0215b4a0 -.extern func_ov18_0215cb28 -.extern func_ov18_0215df1c .extern func_ov18_0216ac24 .extern func_ov18_0216ad38 -.extern func_ov26_02173b7c -.extern func_ov40_02183dac .extern gAdventureFlags -.extern gItemManager -.extern gOverlayManager -.extern strcmp -.extern strcpy +.extern gMapManager diff --git a/asm/ov00/ov00_0207af9c.s b/asm/ov00/ov00_02086cd0.s similarity index 59% rename from asm/ov00/ov00_0207af9c.s rename to asm/ov00/ov00_02086cd0.s index ce2fb4ef..52220a92 100644 --- a/asm/ov00/ov00_0207af9c.s +++ b/asm/ov00/ov00_02086cd0.s @@ -1,16027 +1,7 @@ + .include "ov00/ov00_02086cd0.inc" .include "macros/function.inc" - .include "ov00/ov00_0207af9c.inc" - .text - - .global func_ov00_0207af9c - arm_func_start func_ov00_0207af9c -func_ov00_0207af9c: ; 0x0207af9c - bx lr - arm_func_end func_ov00_0207af9c - - .global func_ov00_0207afa0 - thumb_func_start func_ov00_0207afa0 -func_ov00_0207afa0: ; 0x0207afa0 - ldr r0, _0207afbc ; =data_027e0618 - ldr r0, [r0] - cmp r0, #2 - beq _0207afb8 - ldr r2, _0207afc0 ; =0x04001008 - mov r0, #0x43 - ldrh r1, [r2] - and r1, r0 - mov r0, #6 - lsl r0, r0, #0xa - orr r0, r1 - strh r0, [r2] -_0207afb8: - bx lr - nop - thumb_func_end func_ov00_0207afa0 -_0207afbc: .word data_027e0618 -_0207afc0: .word 0x04001008 - - .global func_ov00_0207afc4 - thumb_func_start func_ov00_0207afc4 -func_ov00_0207afc4: ; 0x0207afc4 - ldr r0, _0207afec ; =data_027e0618 - ldr r2, _0207aff0 ; =0x0400100a - ldr r0, [r0] - cmp r0, #2 - bne _0207afde - ldrh r1, [r2] - mov r0, #0x43 - and r1, r0 - mov r0, #0xf - lsl r0, r0, #8 - orr r0, r1 - strh r0, [r2] - bx lr -_0207afde: - ldrh r1, [r2] - mov r0, #0x43 - and r1, r0 - ldr r0, _0207aff4 ; =0x00001904 - orr r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 - thumb_func_end func_ov00_0207afc4 -_0207afec: .word data_027e0618 -_0207aff0: .word 0x0400100a -_0207aff4: .word 0x00001904 - - .global func_ov00_0207aff8 - thumb_func_start func_ov00_0207aff8 -func_ov00_0207aff8: ; 0x0207aff8 - ldr r0, _0207b020 ; =data_027e0618 - ldr r2, _0207b024 ; =0x0400100c - ldr r0, [r0] - cmp r0, #2 - bne _0207b010 - ldrh r1, [r2] - mov r0, #0x43 - and r1, r0 - ldr r0, _0207b028 ; =0x00004f08 - orr r0, r1 - strh r0, [r2] - bx lr -_0207b010: - ldrh r1, [r2] - mov r0, #0x43 - and r1, r0 - ldr r0, _0207b02c ; =0x0000190c - orr r0, r1 - strh r0, [r2] - bx lr - nop - thumb_func_end func_ov00_0207aff8 -_0207b020: .word data_027e0618 -_0207b024: .word 0x0400100c -_0207b028: .word 0x00004f08 -_0207b02c: .word 0x0000190c - - .global func_ov00_0207b030 - thumb_func_start func_ov00_0207b030 -func_ov00_0207b030: ; 0x0207b030 - push {r4, lr} - ldr r1, _0207b084 ; =data_027e0618 - ldr r1, [r1] - cmp r1, #2 - bne _0207b074 - cmp r0, #0 - beq _0207b04e - ldr r2, _0207b088 ; =0x0400100e - mov r0, #0x43 - ldrh r1, [r2] - and r1, r0 - ldr r0, _0207b08c ; =0x00004084 - orr r0, r1 - strh r0, [r2] - pop {r4, pc} -_0207b04e: - ldr r0, _0207b090 ; =data_027e0d38 - mov r4, #0 - ldr r0, [r0] - add r0, #0xc - blx func_ov00_020a5e9c - cmp r0, #0x32 - bne _0207b060 - mov r4, #1 -_0207b060: - ldr r2, _0207b088 ; =0x0400100e - mov r0, #0x43 - ldrh r1, [r2] - lsl r3, r4, #0xd - and r1, r0 - ldr r0, _0207b094 ; =0x00004e14 - orr r0, r1 - orr r0, r3 - strh r0, [r2] - pop {r4, pc} -_0207b074: - ldr r2, _0207b088 ; =0x0400100e - mov r0, #0x43 - ldrh r1, [r2] - and r1, r0 - ldr r0, _0207b098 ; =0x00005a14 - orr r0, r1 - strh r0, [r2] - pop {r4, pc} - .align 2, 0 - thumb_func_end func_ov00_0207b030 -_0207b084: .word data_027e0618 -_0207b088: .word 0x0400100e -_0207b08c: .word 0x00004084 -_0207b090: .word data_027e0d38 -_0207b094: .word 0x00004e14 -_0207b098: .word 0x00005a14 - - .global func_ov00_0207b09c - thumb_func_start func_ov00_0207b09c -func_ov00_0207b09c: ; 0x0207b09c - push {r3, r4, lr} - sub sp, #0x1c - add r0, sp, #8 - blx func_02024130 - mov r2, #0x33 - mov r3, #0 - ldr r0, _0207b108 ; =data_ov00_020e2044 - ldr r1, _0207b10c ; =data_020691a0 - lsl r2, r2, #0xa - str r3, [sp] - bl func_0202d56c - add r1, sp, #4 - bl func_02023b3c - ldr r2, [sp, #4] - mov r0, #3 - ldr r1, [r2, #8] - add r4, r1, #3 - bic r4, r0 - ldr r0, [r2, #0xc] - add r1, r4, #0 - blx func_0200e2c0 - ldr r2, [sp, #4] - mov r1, #0 - ldr r0, [r2, #0xc] - ldr r2, [r2, #8] - blx func_02006060 - ldr r0, _0207b110 ; =data_027e0618 - ldr r0, [r0] - cmp r0, #2 - bne _0207b104 - blx func_02004dac - mov r1, #6 - lsl r1, r1, #0xc - cmp r0, r1 - blo _0207b104 - blx func_02006b14 - ldr r0, [sp, #4] - mov r1, #1 - ldr r0, [r0, #0xc] - lsl r1, r1, #0xe - add r2, r4, #0 - blx func_02006b2c - blx func_02006b90 -_0207b104: - add sp, #0x1c - pop {r3, r4, pc} - .align 2, 0 - thumb_func_end func_ov00_0207b09c -_0207b108: .word data_ov00_020e2044 -_0207b10c: .word data_020691a0 -_0207b110: .word data_027e0618 - - .global func_ov00_0207b114 - thumb_func_start func_ov00_0207b114 -func_ov00_0207b114: ; 0x0207b114 - push {r3, lr} - mov r0, #4 - str r0, [sp] - ldr r0, _0207b128 ; =0x04000050 - mov r1, #0 - mov r2, #0x31 - mov r3, #0xc - blx func_020052e4 - pop {r3, pc} - .align 2, 0 - thumb_func_end func_ov00_0207b114 -_0207b128: .word 0x04000050 - - .global func_ov00_0207b12c - thumb_func_start func_ov00_0207b12c -func_ov00_0207b12c: ; 0x0207b12c - push {r3, lr} - mov r0, #4 - str r0, [sp] - ldr r0, _0207b140 ; =0x04001050 - mov r1, #0 - mov r2, #0x3f - mov r3, #0xc - blx func_020052e4 - pop {r3, pc} - .align 2, 0 - thumb_func_end func_ov00_0207b12c -_0207b140: .word 0x04001050 - - .global func_ov00_0207b144 - thumb_func_start func_ov00_0207b144 -func_ov00_0207b144: ; 0x0207b144 - push {r3, lr} - ldr r1, _0207b1d4 ; =data_027e0618 - ldr r1, [r1] - cmp r1, #2 - bne _0207b1c0 - cmp r0, #0 - beq _0207b164 - ldr r2, _0207b1d8 ; =0x04001000 - ldr r0, _0207b1dc ; =0xffffe0ff - ldr r1, [r2] - and r1, r0 - mov r0, #6 - lsl r0, r0, #0xa - orr r0, r1 - str r0, [r2] - pop {r3, pc} -_0207b164: - ldr r0, _0207b1e0 ; =data_027e0d38 - ldr r0, [r0] - blx func_ov00_02078b88 - cmp r0, #0 - ldr r2, _0207b1d8 ; =0x04001000 - beq _0207b198 - ldr r0, _0207b1e0 ; =data_027e0d38 - ldr r0, [r0] - ldr r0, [r0, #0x18] - cmp r0, #0x14 - ldr r0, _0207b1dc ; =0xffffe0ff - bne _0207b18c - ldr r1, [r2] - and r1, r0 - mov r0, #0x12 - lsl r0, r0, #8 - orr r0, r1 - str r0, [r2] - pop {r3, pc} -_0207b18c: - ldr r1, [r2] - and r1, r0 - lsr r0, r2, #0xe - orr r0, r1 - str r0, [r2] - pop {r3, pc} -_0207b198: - ldr r0, _0207b1e0 ; =data_027e0d38 - ldr r0, [r0] - ldr r0, [r0, #0x14] - cmp r0, #1 - ldr r0, _0207b1dc ; =0xffffe0ff - bne _0207b1b2 - ldr r1, [r2] - and r1, r0 - mov r0, #7 - lsl r0, r0, #0xa - orr r0, r1 - str r0, [r2] - pop {r3, pc} -_0207b1b2: - ldr r1, [r2] - and r1, r0 - mov r0, #0x1e - lsl r0, r0, #8 - orr r0, r1 - str r0, [r2] - pop {r3, pc} -_0207b1c0: - ldr r2, _0207b1d8 ; =0x04001000 - ldr r0, _0207b1dc ; =0xffffe0ff - ldr r1, [r2] - and r1, r0 - mov r0, #0x1f - lsl r0, r0, #8 - orr r0, r1 - str r0, [r2] - pop {r3, pc} - nop - thumb_func_end func_ov00_0207b144 -_0207b1d4: .word data_027e0618 -_0207b1d8: .word 0x04001000 -_0207b1dc: .word 0xffffe0ff -_0207b1e0: .word data_027e0d38 - - .global func_ov00_0207b1e4 - thumb_func_start func_ov00_0207b1e4 -func_ov00_0207b1e4: ; 0x0207b1e4 - push {r3, lr} - blx func_02004a3c - blx func_02004a50 - mov r0, #4 - blx func_02004730 - mov r0, #8 - blx func_020047d8 - pop {r3, pc} - thumb_func_end func_ov00_0207b1e4 - - .global func_ov00_0207b1fc - thumb_func_start func_ov00_0207b1fc -func_ov00_0207b1fc: ; 0x0207b1fc - push {r4, lr} - ldr r0, _0207b264 ; =data_027e0c54 - ldrb r4, [r0] - bl func_ov00_0207afa0 - bl func_ov00_0207afc4 - bl func_ov00_0207b114 - bl func_ov00_0207b12c - add r0, r4, #0 - bl func_ov00_0207b144 - ldr r1, _0207b268 ; =0x04000008 - mov r2, #3 - ldrh r3, [r1] - mov r0, #3 - bic r3, r2 - orr r3, r0 - strh r3, [r1] - ldr r1, _0207b26c ; =0x04001008 - ldrh r3, [r1] - bic r3, r2 - orr r0, r3 - strh r0, [r1] - ldrh r3, [r1, #2] - mov r0, #2 - bic r3, r2 - orr r3, r0 - strh r3, [r1, #2] - ldrh r3, [r1, #4] - bic r3, r2 - orr r0, r3 - strh r0, [r1, #4] - mov r0, #0 - str r0, [r1, #8] - str r0, [r1, #0xc] - blx func_02005b58 - bl func_ov00_0207b09c - ldr r0, _0207b270 ; =data_027e0618 - bl func_0202c69c - ldr r0, _0207b274 ; =data_027e103c - mov r1, #0 - ldr r0, [r0] - blx func_ov00_020cf13c - pop {r4, pc} - nop - thumb_func_end func_ov00_0207b1fc -_0207b264: .word data_027e0c54 -_0207b268: .word 0x04000008 -_0207b26c: .word 0x04001008 -_0207b270: .word data_027e0618 -_0207b274: .word data_027e103c - - .global func_ov00_0207b278 - thumb_func_start func_ov00_0207b278 -func_ov00_0207b278: ; 0x0207b278 - mov r1, #0 - strb r1, [r0] - strb r1, [r0, #1] - strb r1, [r0, #2] - strb r1, [r0, #3] - str r1, [r0, #4] - str r1, [r0, #8] - bx lr - thumb_func_end func_ov00_0207b278 - - .global func_ov00_0207b288 - thumb_func_start func_ov00_0207b288 -func_ov00_0207b288: ; 0x0207b288 - push {r3, r4, r5, lr} - add r4, r0, #0 - add r5, r1, #0 - bl func_ov00_0207b278 - cmp r5, #2 - bne _0207b29a - mov r0, #1 - strb r0, [r4] -_0207b29a: - ldrb r0, [r4] - cmp r0, #0 - beq _0207b2be - ldr r0, _0207b2c0 ; =0x04000048 - mov r2, #0x3f - ldrh r3, [r0] - mov r1, #0x1f - bic r3, r2 - orr r1, r3 - mov r3, #0x20 - orr r1, r3 - strh r1, [r0] - ldrh r4, [r0, #2] - mov r1, #0x10 - bic r4, r2 - orr r1, r4 - orr r1, r3 - strh r1, [r0, #2] -_0207b2be: - pop {r3, r4, r5, pc} - .align 2, 0 - thumb_func_end func_ov00_0207b288 -_0207b2c0: .word 0x04000048 - - .global func_ov00_0207b2c4 - thumb_func_start func_ov00_0207b2c4 -func_ov00_0207b2c4: ; 0x0207b2c4 - ldr r2, [r0, #8] - cmp r1, #0 - beq _0207b2dc - ldr r1, _0207b2ec ; =data_027e0c54 - ldrb r1, [r1] - cmp r1, #0 - beq _0207b2dc - mov r1, #1 - strb r1, [r0, #1] - mov r1, #0xc0 - str r1, [r0, #8] - b _0207b2e4 -_0207b2dc: - mov r1, #0 - strb r1, [r0, #1] - mov r1, #0x60 - str r1, [r0, #8] -_0207b2e4: - mov r1, #0 - strb r1, [r0, #2] - add r0, r2, #0 - bx lr - .align 2, 0 - thumb_func_end func_ov00_0207b2c4 -_0207b2ec: .word data_027e0c54 - - .global func_ov00_0207b2f0 - thumb_func_start func_ov00_0207b2f0 -func_ov00_0207b2f0: ; 0x0207b2f0 - push {r3, r4} - ldrb r4, [r0] - cmp r4, #0 - bne _0207b2fe - mov r0, #0 - pop {r3, r4} - bx lr -_0207b2fe: - strb r2, [r0, #1] - strb r3, [r0, #2] - mov r4, #0 - ldr r2, _0207b330 ; =data_027e0e2c - strb r4, [r0, #3] - ldr r3, [r2, #4] - sub r2, r4, #1 - cmp r3, r2 - beq _0207b31c - strb r4, [r0, #2] - mov r1, #1 - strb r1, [r0, #3] - add r0, r1, #0 - pop {r3, r4} - bx lr -_0207b31c: - mov r2, #0x15 - str r2, [r0, #8] - cmp r1, #0 - beq _0207b328 - ldr r1, [r0, #8] - str r1, [r0, #4] -_0207b328: - mov r0, #1 - pop {r3, r4} - bx lr - nop - thumb_func_end func_ov00_0207b2f0 -_0207b330: .word data_027e0e2c - - .global func_ov00_0207b334 - thumb_func_start func_ov00_0207b334 -func_ov00_0207b334: ; 0x0207b334 - mov r2, #0 - strb r2, [r0, #3] - ldr r2, [r0, #4] - cmp r2, #0 - bne _0207b348 - ldr r2, [r0, #8] - cmp r2, #0 - bne _0207b348 - mov r0, #1 - bx lr -_0207b348: - ldrb r2, [r0] - cmp r2, #0 - bne _0207b352 - mov r0, #0 - bx lr -_0207b352: - ldr r2, _0207b374 ; =data_027e0e2c - ldr r3, [r2, #4] - mov r2, #0 - mvn r2, r2 - cmp r3, r2 - beq _0207b362 - mov r0, #0 - bx lr -_0207b362: - mov r2, #0 - str r2, [r0, #8] - cmp r1, #0 - beq _0207b36e - ldr r1, [r0, #8] - str r1, [r0, #4] -_0207b36e: - mov r0, #1 - bx lr - nop - thumb_func_end func_ov00_0207b334 -_0207b374: .word data_027e0e2c - - .global func_ov00_0207b378 - arm_func_start func_ov00_0207b378 -func_ov00_0207b378: ; 0x0207b378 - stmdb sp!, {r4, lr} - mov r4, r0 - cmp r1, #0 - ldmneia sp!, {r4, pc} - ldrb r0, [r4] - cmp r0, #0 - ldmeqia sp!, {r4, pc} - bl func_ov00_02079e04 - cmp r0, #0 - ldmneia sp!, {r4, pc} - ldr r1, _0207b438 ; =data_027e0e2c - mvn r0, #0 - ldr r1, [r1, #4] - cmp r1, r0 - ldmneia sp!, {r4, pc} - ldrb r0, [r4, #3] - cmp r0, #0 - beq _0207b3e8 - ldr r0, [r4, #4] - cmp r0, #0 - bgt _0207b3e8 - ldrb r2, [r4, #1] - ldrb r3, [r4, #2] - mov r0, r4 - mov r1, #1 - blx func_ov00_0207b2f0 - mov r0, #0 - strb r0, [r4, #3] -_0207b3e8: - ldr r0, [r4, #8] - ldr r1, [r4, #4] - cmp r1, r0 - bge _0207b41c - ldrb r0, [r4, #2] - cmp r0, #0 - addne r0, r1, #1 - addeq r0, r1, #7 - str r0, [r4, #4] - ldmib r4, {r0, r1} - cmp r0, r1 - strgt r1, [r4, #4] - ldmia sp!, {r4, pc} -_0207b41c: - ldmleia sp!, {r4, pc} - sub r1, r1, #0x13 - str r1, [r4, #4] - ldr r0, [r4, #8] - cmp r1, r0 - strlt r0, [r4, #4] - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_0207b378 -_0207b438: .word data_027e0e2c - - .global func_ov00_0207b43c - arm_func_start func_ov00_0207b43c -func_ov00_0207b43c: ; 0x0207b43c - stmdb sp!, {r4, lr} - mov r4, r0 - ldrb r0, [r4] - cmp r0, #0 - ldmeqia sp!, {r4, pc} - ldr r0, [r4, #4] - cmp r0, #0 - ble _0207b50c - bl func_ov00_02079e04 - cmp r0, #0 - bne _0207b50c - mov r0, #0x4000000 - ldr r1, [r0] - bic r1, r1, #0xe000 - orr r1, r1, #0x2000 - str r1, [r0] - ldrb r1, [r4, #1] - cmp r1, #0 - ldrne r1, _0207b520 ; =data_027e0c54 - ldrneb r1, [r1] - cmpne r1, #0 - beq _0207b4e0 - ldr r1, _0207b524 ; =data_027e0618 - ldr r1, [r1, #0xf4] - tst r1, #1 - beq _0207b4c4 - ldr r1, [r4, #4] - ldr r2, _0207b528 ; =0x000001ff - mov r1, r1, lsl #0x8 - and r1, r1, #0xff00 - strh r2, [r0, #0x40] - orr r1, r1, #0xc0 - strh r1, [r0, #0x44] - ldmia sp!, {r4, pc} -_0207b4c4: - ldr r2, [r4, #4] - ldr r1, _0207b528 ; =0x000001ff - rsb r2, r2, #0xc0 - strh r1, [r0, #0x40] - and r1, r2, #0xff - strh r1, [r0, #0x44] - ldmia sp!, {r4, pc} -_0207b4e0: - ldr r0, [r4, #4] - ldr r3, _0207b528 ; =0x000001ff - mov r1, r0, lsl #0x8 - rsb r0, r0, #0xc0 - ldr r2, _0207b52c ; =0x04000040 - and r1, r1, #0xff00 - and r0, r0, #0xff - strh r3, [r2] - orr r0, r1, r0 - strh r0, [r2, #4] - ldmia sp!, {r4, pc} -_0207b50c: - mov r1, #0x4000000 - ldr r0, [r1] - bic r0, r0, #0xe000 - str r0, [r1] - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_0207b43c -_0207b520: .word data_027e0c54 -_0207b524: .word data_027e0618 -_0207b528: .word 0x000001ff -_0207b52c: .word 0x04000040 - - .global func_ov00_0207b530 - thumb_func_start func_ov00_0207b530 -func_ov00_0207b530: ; 0x0207b530 - push {r4, lr} - add r4, r0, #0 - ldr r0, _0207b550 ; =gOverlayManager - ldr r2, _0207b554 ; =0x00000004 - mov r1, #2 - bl _ZN14OverlayManager15LoadIfNotLoadedEjj - add r0, r4, #0 - bl func_ov04_02101188 - ldr r0, _0207b550 ; =gOverlayManager - ldr r2, _0207b558 ; =0x00000005 - mov r1, #2 - bl _ZN14OverlayManager15LoadIfNotLoadedEjj - pop {r4, pc} - .align 2, 0 - thumb_func_end func_ov00_0207b530 -_0207b550: .word gOverlayManager -_0207b554: .word 0x00000004 -_0207b558: .word 0x00000005 - - .global func_ov00_0207b55c - thumb_func_start func_ov00_0207b55c -func_ov00_0207b55c: ; 0x0207b55c - push {r4, lr} - add r4, r0, #0 - mov r3, #1 - add r0, #0x34 - strb r3, [r0] - ldr r0, [r1] - str r0, [r4, #4] - ldr r0, [r1, #4] - str r0, [r4, #8] - ldr r0, [r1, #8] - str r0, [r4, #0xc] - ldr r0, [r1, #0xc] - str r0, [r4, #0x10] - mov r0, #0x10 - ldrsh r0, [r1, r0] - cmp r2, #0 - strh r0, [r4, #0x14] - ldrb r0, [r1, #0x12] - strb r0, [r4, #0x16] - ldrb r0, [r1, #0x13] - strb r0, [r4, #0x17] - ldrb r0, [r1, #0x14] - strb r0, [r4, #0x18] - ldrb r0, [r1, #0x15] - strb r0, [r4, #0x19] - beq _0207b59a - add r4, #0xac - ldr r0, [r4] - bl func_ov04_02100eb0 - pop {r4, pc} -_0207b59a: - add r0, r4, #0 - add r0, #0xac - ldr r0, [r0] - add r2, r0, #0 - add r2, #0x28 - ldrb r2, [r2] - cmp r2, #0 - beq _0207b5b6 - blx func_ov40_02183dac - add r0, r4, #0 - bl func_ov00_0207b530 - pop {r4, pc} -_0207b5b6: - blx func_ov05_02100e0c - pop {r4, pc} - thumb_func_end func_ov00_0207b55c - - .global func_ov00_0207b5bc - thumb_func_start func_ov00_0207b5bc -func_ov00_0207b5bc: ; 0x0207b5bc - push {r4, r5, r6, lr} - sub sp, #0x20 - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4] - str r0, [sp, #8] - ldr r0, [r4, #4] - str r0, [sp, #0xc] - ldr r1, [r4, #8] - str r1, [sp, #0x10] - ldr r1, [r4, #0xc] - str r1, [sp, #0x14] - mov r1, #0x10 - ldrsh r3, [r4, r1] - add r1, sp, #0 - cmp r0, #1 - strh r3, [r1, #0x18] - ldrb r3, [r4, #0x12] - strb r3, [r1, #0x1a] - ldrb r3, [r4, #0x13] - strb r3, [r1, #0x1b] - ldrb r3, [r4, #0x14] - strb r3, [r1, #0x1c] - ldrb r3, [r4, #0x15] - strb r3, [r1, #0x1d] - beq _0207b5fa - cmp r0, #0xe - beq _0207b62c - cmp r0, #0xf - beq _0207b66a - b _0207b688 -_0207b5fa: - cmp r2, #0 - beq _0207b6cc - ldr r1, _0207b800 ; =data_027e0fe4 - ldr r2, _0207b804 ; =0x414e4353 - ldr r1, [r1] - add r0, sp, #0 - blx _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j - mov r0, #0 - ldr r1, [sp] - mvn r0, r0 - cmp r1, r0 - beq _0207b6cc - ldr r0, _0207b800 ; =data_027e0fe4 - add r1, sp, #0 - ldr r0, [r0] - blx _ZN12ActorManager8GetActorEP8ActorRef - cmp r0, #0 - beq _0207b6cc - add r1, sp, #8 - blx func_ov18_0215df1c - add sp, #0x20 - pop {r4, r5, r6, pc} -_0207b62c: - ldr r0, [r5] - blx func_ov00_020a5e9c - str r0, [r5, #0x44] - ldr r0, _0207b808 ; =data_027e0e60 - ldr r0, [r0] - blx func_ov00_02082d08 - add r1, r5, #0 - add r1, #0x56 - strb r0, [r1] - ldr r0, _0207b80c ; =data_027e0f94 - ldr r1, [r0] - str r1, [r5, #0x5c] - ldr r1, [r0, #4] - str r1, [r5, #0x60] - ldr r0, [r0, #8] - ldr r1, _0207b810 ; =data_027e0fac - str r0, [r5, #0x64] - mov r0, #0 - ldrsh r1, [r1, r0] - add r0, r5, #0 - add r0, #0x68 - strh r1, [r0] - add r0, r5, #0 - mov r1, #0xfa - add r0, #0x6a - strb r1, [r0] - mov r0, #0xfc - str r0, [r5, #0x6c] - b _0207b6cc -_0207b66a: - add r0, r5, #0 - add r0, #0x44 - blx func_ov00_020a5e9c - str r0, [sp, #8] - add r0, r5, #0 - add r0, #0x56 - ldrb r1, [r0] - add r0, sp, #0 - strb r1, [r0, #0x1a] - mov r1, #0xfa - strb r1, [r0, #0x1b] - mov r0, #0xf - str r0, [sp, #0xc] - b _0207b6cc -_0207b688: - ldr r0, [r5] - blx func_ov00_020a5e9c - cmp r0, #0x26 - bne _0207b6cc - ldr r0, _0207b814 ; =data_027e0f7c - ldr r6, [r0] - add r0, r4, #0 - blx func_ov00_020a5e9c - add r1, r0, #0 - add r0, r6, #0 - blx func_ov00_0209d738 - cmp r0, #3 - bne _0207b6cc - ldr r0, _0207b818 ; =gItemManager - mov r1, #0x20 - ldr r0, [r0] - blx _ZNK11ItemManager7HasItemEi - cmp r0, #0 - beq _0207b6cc - ldrb r0, [r4, #0x12] - cmp r0, #0 - beq _0207b6c0 - cmp r0, #9 - bne _0207b6cc -_0207b6c0: - ldr r0, _0207b81c ; =data_ov09_0211f5dc - add r1, r4, #0 - bl func_ov26_02173b7c - add sp, #0x20 - pop {r4, r5, r6, pc} -_0207b6cc: - add r0, r4, #0 - blx func_ov00_020a5e9c - cmp r0, #0 - bne _0207b740 - ldr r0, _0207b814 ; =data_027e0f7c - ldr r6, [r0] - ldr r0, [r5] - blx func_ov00_020a5e9c - add r1, r0, #0 - add r0, r6, #0 - blx func_ov00_0209d738 - cmp r0, #0 - bne _0207b740 - ldr r0, _0207b814 ; =data_027e0f7c - ldr r6, [r0] - ldr r0, [r5] - blx func_ov00_020a5e9c - add r1, r0, #0 - add r0, r6, #0 - blx func_ov00_0209d778 - mov r1, #1 - mvn r1, r1 - cmp r0, r1 - beq _0207b740 - ldr r0, [r4] - str r0, [r5, #0x70] - ldr r0, [r4, #4] - str r0, [r5, #0x74] - ldr r0, [r4, #8] - str r0, [r5, #0x78] - ldr r0, [r4, #0xc] - str r0, [r5, #0x7c] - mov r0, #0x10 - ldrsh r1, [r4, r0] - add r0, r5, #0 - add r0, #0x80 - strh r1, [r0] - add r0, r5, #0 - ldrb r1, [r4, #0x12] - add r0, #0x82 - strb r1, [r0] - add r0, r5, #0 - ldrb r1, [r4, #0x13] - add r0, #0x83 - strb r1, [r0] - add r0, r5, #0 - ldrb r1, [r4, #0x14] - add r0, #0x84 - strb r1, [r0] - add r0, r5, #0 - ldrb r1, [r4, #0x15] - add r0, #0x85 - strb r1, [r0] -_0207b740: - add r0, r4, #0 - blx func_ov00_020a5e9c - add r6, r0, #0 - ldr r0, [r5] - blx func_ov00_020a5e9c - cmp r6, r0 - bne _0207b7f0 - ldr r0, _0207b814 ; =data_027e0f7c - ldr r6, [r0] - ldr r0, [r5] - blx func_ov00_020a5e9c - add r1, r0, #0 - add r0, r6, #0 - blx func_ov00_0209d738 - cmp r0, #0 - bne _0207b7f0 - ldr r0, [r5] - ldr r0, [r0, #8] - cmp r0, #1 - beq _0207b7f0 - ldr r0, _0207b808 ; =data_027e0e60 - ldr r0, [r0] - blx func_ov00_02083328 - cmp r0, #0 - beq _0207b7f0 - ldr r0, _0207b808 ; =data_027e0e60 - ldrb r1, [r4, #0x12] - ldr r0, [r0] - blx func_ov00_02083318 - cmp r0, #0 - bne _0207b7f0 - ldr r0, [r5] - add r1, r5, #0 - ldr r2, [r0] - add r1, #0x88 - str r2, [r1] - add r1, r5, #0 - ldr r2, [r0, #4] - add r1, #0x8c - str r2, [r1] - add r1, r5, #0 - ldr r2, [r0, #8] - add r1, #0x90 - str r2, [r1] - add r1, r5, #0 - ldr r2, [r0, #0xc] - add r1, #0x94 - str r2, [r1] - mov r1, #0x10 - ldrsh r2, [r0, r1] - add r1, r5, #0 - add r1, #0x98 - strh r2, [r1] - add r1, r5, #0 - ldrb r2, [r0, #0x12] - add r1, #0x9a - strb r2, [r1] - add r1, r5, #0 - ldrb r2, [r0, #0x13] - add r1, #0x9b - strb r2, [r1] - add r1, r5, #0 - ldrb r2, [r0, #0x14] - add r1, #0x9c - strb r2, [r1] - ldrb r1, [r0, #0x15] - add r0, r5, #0 - add r0, #0x9d - strb r1, [r0] - ldr r1, _0207b80c ; =data_027e0f94 - add r0, r5, #0 - ldr r2, [r1] - add r0, #0xa0 - str r2, [r0] - add r0, r5, #0 - ldr r2, [r1, #4] - add r0, #0xa4 - str r2, [r0] - add r0, r5, #0 - ldr r1, [r1, #8] - add r0, #0xa8 - str r1, [r0] -_0207b7f0: - add r0, r5, #0 - add r1, sp, #8 - mov r2, #0 - bl func_ov00_0207b55c - add sp, #0x20 - pop {r4, r5, r6, pc} - nop - thumb_func_end func_ov00_0207b5bc -_0207b800: .word data_027e0fe4 -_0207b804: .word 0x414e4353 -_0207b808: .word data_027e0e60 -_0207b80c: .word data_027e0f94 -_0207b810: .word data_027e0fac -_0207b814: .word data_027e0f7c -_0207b818: .word gItemManager -_0207b81c: .word data_ov09_0211f5dc - - .global func_ov00_0207b820 - arm_func_start func_ov00_0207b820 -func_ov00_0207b820: ; 0x0207b820 - stmdb sp!, {r4, lr} - mov r4, r0 - ldrb r0, [r4, #0x34] - cmp r0, #0 - ldmeqia sp!, {r4, pc} - cmp r1, #0 - ldmneia sp!, {r4, pc} - ldr r0, [r4, #0xac] - bl func_ov05_021010b0 - cmp r0, #0 - ldr r0, [r4, #0xac] - beq _0207b87c - ldrb r1, [r0, #0x29] - cmp r1, #0 - beq _0207b864 - blx func_ov00_0207c074 - ldmia sp!, {r4, pc} -_0207b864: - ldrb r0, [r0, #0x28] - cmp r0, #0 - ldmneia sp!, {r4, pc} - mov r0, r4 - blx func_ov00_0207b530 - ldmia sp!, {r4, pc} -_0207b87c: - bl func_ov05_021010ec - cmp r0, #0 - ldmeqia sp!, {r4, pc} - ldr r0, [r4, #0xac] - bl func_ov05_02101080 - mov r0, #0 - strb r0, [r4, #0x34] - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207b820 - - .global func_ov00_0207b89c - arm_func_start func_ov00_0207b89c -func_ov00_0207b89c: ; 0x0207b89c - stmdb sp!, {r3, r4, r5, lr} - mov r4, r0 - ldr ip, [r4, #0x180] - cmp ip, #0x20 - ldmgeia sp!, {r3, r4, r5, pc} - mov r0, #0xc - mul r0, ip, r0 - ldr ip, [sp, #0x10] - str r3, [r4, r0] - add r5, r4, r0 - ldr r0, _0207b8f8 ; =data_027e0f64 - str ip, [r5, #4] - ldr r3, [r0] - mov r0, r2 - add r1, r3, r1, lsl #2 - ldr r1, [r1, #4] - add r1, r1, #0x260 - bl func_01ff9ec0 - str r0, [r5, #8] - ldr r0, [r4, #0x180] - add r0, r0, #1 - str r0, [r4, #0x180] - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_0207b89c -_0207b8f8: .word data_027e0f64 - - .global func_ov00_0207b8fc - arm_func_start func_ov00_0207b8fc -func_ov00_0207b8fc: ; 0x0207b8fc - ldr r1, [r1, #8] - ldr r0, [r0, #8] - sub r0, r1, r0 - bx lr - arm_func_end func_ov00_0207b8fc - - .global func_ov00_0207b90c - arm_func_start func_ov00_0207b90c -func_ov00_0207b90c: ; 0x0207b90c - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r6, r0 - ldr r1, [r6, #0x180] - cmp r1, #0 - addle sp, sp, #4 - ldmleia sp!, {r3, r4, r5, r6, pc} - cmp r1, #1 - ble _0207b944 - ldr ip, _0207b980 ; =data_020691a0 - ldr r3, _0207b984 ; =func_ov00_0207b8fc - mov r2, #0xc - str ip, [sp] - bl func_0200be04 -_0207b944: - ldr r0, [r6, #0x180] - mov r4, r6 - cmp r0, #0 - mov r5, #0 - addle sp, sp, #4 - ldmleia sp!, {r3, r4, r5, r6, pc} -_0207b95c: - ldr r0, [r4, #4] - ldr r1, [r4], #0xc - blx r1 - ldr r0, [r6, #0x180] - add r5, r5, #1 - cmp r5, r0 - blt _0207b95c - add sp, sp, #4 - ldmia sp!, {r3, r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_0207b90c -_0207b980: .word data_020691a0 -_0207b984: .word func_ov00_0207b8fc - - .global func_ov00_0207b988 - thumb_func_start func_ov00_0207b988 -func_ov00_0207b988: ; 0x0207b988 - push {r4, lr} - add r4, r0, #0 - cmp r1, #2 - bne _0207b9ba - ldr r1, _0207b9bc ; =data_027e0ce0 - mov r0, #0x50 - ldr r1, [r1, #4] - mov r2, #4 - blx _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _0207b9a6 - add r1, r4, #0 - bl func_ov03_020f3974 -_0207b9a6: - str r0, [r4, #0x24] - ldr r0, _0207b9c0 ; =data_027e0618 - ldr r0, [r0, #4] - cmp r0, #3 - bne _0207b9ba - ldr r0, _0207b9c4 ; =data_027e0d54 - mov r1, #1 - mov r2, #0 - bl func_ov09_02114810 -_0207b9ba: - pop {r4, pc} - .align 2, 0 - thumb_func_end func_ov00_0207b988 -_0207b9bc: .word data_027e0ce0 -_0207b9c0: .word data_027e0618 -_0207b9c4: .word data_027e0d54 - - .global func_ov00_0207b9c8 - thumb_func_start func_ov00_0207b9c8 -func_ov00_0207b9c8: ; 0x0207b9c8 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x24] - cmp r0, #0 - beq _0207b9da - blx _ZN9SysObjectdlEPv - mov r0, #0 - str r0, [r4, #0x24] -_0207b9da: - pop {r4, pc} - thumb_func_end func_ov00_0207b9c8 - - .global func_ov00_0207b9dc - arm_func_start func_ov00_0207b9dc -func_ov00_0207b9dc: ; 0x0207b9dc - stmdb sp!, {r4, r5, r6, lr} - ldr r1, _0207ba8c ; =0x027ffc3c - mov r6, r0 - ldr r5, [r1] - ldr r0, [r6, #0x20] - ldr r1, [r6, #0x1c] - sub r0, r5, r0 - add r0, r1, r0 - str r0, [r6, #0x1c] - cmp r0, #0x3c - blo _0207ba84 - mov r4, #0 -_0207ba0c: - ldr r0, [r6, #0x1c] - sub r0, r0, #0x3c - str r0, [r6, #0x1c] - ldr r0, [r6, #0x18] - add r0, r0, #1 - str r0, [r6, #0x18] - cmp r0, #0x3c - blo _0207ba78 - str r4, [r6, #0x18] - ldr r0, [r6, #0x14] - add r0, r0, #1 - str r0, [r6, #0x14] - cmp r0, #0x3c - blo _0207ba78 - str r4, [r6, #0x14] - ldr r0, [r6, #0x10] - add r0, r0, #1 - str r0, [r6, #0x10] - cmp r0, #0x18 - blo _0207ba78 - mov r0, r6 - str r4, [r6, #0x10] - blx func_02042b40 - mov r1, r0 - mov r0, r6 - add r1, r1, #1 - blx func_02042bfc -_0207ba78: - ldr r0, [r6, #0x1c] - cmp r0, #0x3c - bhs _0207ba0c -_0207ba84: - str r5, [r6, #0x20] - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_0207b9dc -_0207ba8c: .word 0x027ffc3c - - .global func_ov00_0207ba90 - thumb_func_start func_ov00_0207ba90 -func_ov00_0207ba90: ; 0x0207ba90 - ldr r0, [r0, #0x24] - bx lr - thumb_func_end func_ov00_0207ba90 - - .global func_ov00_0207ba94 - thumb_func_start func_ov00_0207ba94 -func_ov00_0207ba94: ; 0x0207ba94 - push {r3, lr} - add r2, r0, #0 - ldr r0, _0207baac ; =gOverlayManager - ldr r3, [r0, #4] - ldr r0, _0207bab0 ; =0x00000003 - cmp r3, r0 - bne _0207baa8 - ldr r0, [r2, #0x24] - bl func_ov03_020f3c28 -_0207baa8: - pop {r3, pc} - nop - thumb_func_end func_ov00_0207ba94 -_0207baac: .word gOverlayManager -_0207bab0: .word 0x00000003 - - .global func_ov00_0207bab4 - arm_func_start func_ov00_0207bab4 -func_ov00_0207bab4: ; 0x0207bab4 - stmdb sp!, {r4, lr} - mov r4, r0 - add r0, r4, #0x11c - ldr r3, _0207bb04 ; =func_ov00_0207bb18 - add r0, r0, #0xc00 - mov r1, #8 - mov r2, #0x30 - bl func_0204f754 - ldr r3, _0207bb08 ; =func_ov00_0207bb14 - add r0, r4, #0x2f8 - mov r1, #0xcf - mov r2, #0xc - bl func_0204f754 - ldr r3, _0207bb0c ; =func_ov00_0207bb10 - add r0, r4, #0xf8 - mov r1, #0x40 - mov r2, #8 - bl func_0204f754 - mov r0, r4 - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_0207bab4 -_0207bb04: .word func_ov00_0207bb18 -_0207bb08: .word func_ov00_0207bb14 -_0207bb0c: .word func_ov00_0207bb10 - - .global func_ov00_0207bb10 - arm_func_start func_ov00_0207bb10 -func_ov00_0207bb10: ; 0x0207bb10 - bx lr - arm_func_end func_ov00_0207bb10 - - .global func_ov00_0207bb14 - arm_func_start func_ov00_0207bb14 -func_ov00_0207bb14: ; 0x0207bb14 - bx lr - arm_func_end func_ov00_0207bb14 - - .global func_ov00_0207bb18 - arm_func_start func_ov00_0207bb18 -func_ov00_0207bb18: ; 0x0207bb18 - bx lr - arm_func_end func_ov00_0207bb18 - - .global func_ov00_0207bb1c - arm_func_start func_ov00_0207bb1c -func_ov00_0207bb1c: ; 0x0207bb1c - stmdb sp!, {r3, lr} - add lr, r0, r1, lsl #2 - ldr ip, _0207bb48 ; =data_ov00_020d8798 - str r2, [lr, #4] - str r3, [lr, #0x24] - ldrb r1, [ip, r1] - ldr r3, [r0] - mov r2, #1 - orr r1, r3, r2, lsl r1 - str r1, [r0] - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_0207bb1c -_0207bb48: .word data_ov00_020d8798 - - .global func_ov00_0207bb4c - arm_func_start func_ov00_0207bb4c -func_ov00_0207bb4c: ; 0x0207bb4c - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} - mov r10, r0 - ldr r0, [r10] - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - bl func_01ffa8d4 - ldr r5, _0207bc30 ; =0x04000440 - mov r7, #3 - str r7, [r5] - mov r0, #0 - ldr r8, _0207bc34 ; =data_ov00_020d8860 - str r0, [r5, #0x14] - mov r11, r0 - mov r4, #1 -_0207bb84: - ldr r0, [r10] - tst r0, r4, lsl r7 - beq _0207bc20 - mov r0, r8 - str r11, [r5] - bl func_02005628 - ldr r1, _0207bc38 ; =data_027e0384 - mov r0, r8 - mov r2, #0x40 - bl func_02007984 - ldr r1, _0207bc3c ; =data_027e037c - ldr r0, _0207bc40 ; =data_027e03c8 - ldr r2, [r1, #0xfc] - bic r2, r2, #0x50 - str r2, [r1, #0xfc] - mov r1, #2 - str r1, [r5] - mov r1, #0 - str r1, [r5, #0x14] - bl func_01ff892c - ldr r0, _0207bc3c ; =data_027e037c - ldr r9, _0207bc44 ; =data_ov00_020d8798 - ldr r1, [r0, #0xfc] - mov r6, #0 - bic r1, r1, #0xe8 - str r1, [r0, #0xfc] -_0207bbec: - ldrb r0, [r9] - cmp r0, r7 - bne _0207bc10 - add r0, r10, r6, lsl #2 - ldr r1, [r0, #4] - cmp r1, #0 - beq _0207bc10 - ldr r0, [r0, #0x24] - blx r1 -_0207bc10: - add r9, r9, #1 - add r6, r6, #1 - cmp r6, #8 - blt _0207bbec -_0207bc20: - sub r8, r8, #0x40 - subs r7, r7, #1 - bpl _0207bb84 - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_0207bb4c -_0207bc30: .word 0x04000440 -_0207bc34: .word data_ov00_020d8860 -_0207bc38: .word data_027e0384 -_0207bc3c: .word data_027e037c -_0207bc40: .word data_027e03c8 -_0207bc44: .word data_ov00_020d8798 - - .global func_ov00_0207bc48 - arm_func_start func_ov00_0207bc48 -func_ov00_0207bc48: ; 0x0207bc48 - ldr r1, [r0] - mov r0, #0 - cmp r1, #0 - ldrne r2, [r1, #0x40] - subne r1, r0, #1 - cmpne r2, r1 - movne r0, #1 - bx lr - arm_func_end func_ov00_0207bc48 - - .global func_ov00_0207bc68 - arm_func_start func_ov00_0207bc68 -func_ov00_0207bc68: ; 0x0207bc68 - ldr r0, [r0] - cmp r0, #0 - ldrne r0, [r0, #0x40] - mvneq r0, #0 - bx lr - arm_func_end func_ov00_0207bc68 - - .global func_ov00_0207bc7c - thumb_func_start func_ov00_0207bc7c -func_ov00_0207bc7c: ; 0x0207bc7c - push {r3, r4, r5, lr} - add r4, r0, #0 - ldr r5, [r4] - cmp r5, #0 - beq _0207bc98 - beq _0207bc94 - add r0, r5, #0 - blx func_ov18_0215cb28 - add r0, r5, #0 - blx _ZN9SysObjectdlEPv -_0207bc94: - mov r0, #0 - str r0, [r4] -_0207bc98: - pop {r3, r4, r5, pc} - .align 2, 0 - thumb_func_end func_ov00_0207bc7c - - .global func_ov00_0207bc9c - arm_func_start func_ov00_0207bc9c -func_ov00_0207bc9c: ; 0x0207bc9c - stmdb sp!, {r3, lr} - ldr r0, [r0] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl func_ov17_0215cef4 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207bc9c - - .global func_ov00_0207bcb4 - thumb_func_start func_ov00_0207bcb4 -func_ov00_0207bcb4: ; 0x0207bcb4 - mov r1, #0 - mvn r1, r1 - str r1, [r0] - str r1, [r0, #4] - mov r2, #0 - str r2, [r0, #8] - str r2, [r0, #0xc] - str r2, [r0, #0x10] - strh r2, [r0, #0x14] - mov r1, #2 - strb r2, [r0, #0x16] - lsl r1, r1, #0x12 - str r1, [r0, #0x20] - str r1, [r0, #0x18] - mov r1, #6 - lsl r1, r1, #0x10 - str r1, [r0, #0x24] - str r1, [r0, #0x1c] - str r2, [r0, #0x28] - bx lr - thumb_func_end func_ov00_0207bcb4 - - .global func_ov00_0207bcdc - thumb_func_start func_ov00_0207bcdc -func_ov00_0207bcdc: ; 0x0207bcdc - push {r4, r5, r6, lr} - add r4, r0, #0 - add r5, r1, #0 - add r6, r2, #0 - mov r1, #0 - ldr r2, [r4, #4] - mvn r1, r1 - cmp r2, r1 - beq _0207bcf2 - mov r0, #0 - pop {r4, r5, r6, pc} -_0207bcf2: - str r5, [r4, #4] - str r6, [r4, #8] - str r3, [r4, #0xc] - mov r1, #0 - strb r1, [r4, #0x16] - bl func_ov00_0207bdd4 - cmp r5, #3 - bhi _0207bd44 - add r0, r5, r5 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0207bd10: ; jump table - .short _0207bd18 - _0207bd10 - 2 ; case 0 - .short _0207bd18 - _0207bd10 - 2 ; case 1 - .short _0207bd2c - _0207bd10 - 2 ; case 2 - .short _0207bd2c - _0207bd10 - 2 ; case 3 -_0207bd18: - cmp r5, #1 - bne _0207bd20 - mov r1, #1 - b _0207bd22 -_0207bd20: - mov r1, #0 -_0207bd22: - ldr r0, _0207bd48 ; =data_027e0db0 - bl func_ov00_0207b2c4 - strh r0, [r4, #0x14] - b _0207bd44 -_0207bd2c: - mov r0, #0xa0 - str r0, [r4, #0x28] - cmp r5, #2 - bne _0207bd38 - mov r2, #1 - b _0207bd3a -_0207bd38: - mov r2, #0 -_0207bd3a: - add r4, #0x18 - add r0, r4, #0 - mov r1, #0 - bl func_ov00_0207c8e4 -_0207bd44: - mov r0, #1 - pop {r4, r5, r6, pc} - .align 2, 0 - thumb_func_end func_ov00_0207bcdc -_0207bd48: .word data_027e0db0 - - .global func_ov00_0207bd4c - thumb_func_start func_ov00_0207bd4c -func_ov00_0207bd4c: ; 0x0207bd4c - push {r3, r4, r5, r6, r7, lr} - add r7, r2, #0 - add r2, r3, #0 - ldr r3, [sp, #0x18] - add r5, r0, #0 - add r4, r1, #0 - bl func_ov00_0207bcdc - add r6, r0, #0 - beq _0207bd92 - mov r0, #0 - cmp r4, #3 - bhi _0207bd8a - add r1, r4, r4 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0207bd72: ; jump table - .short _0207bd7a - _0207bd72 - 2 ; case 0 - .short _0207bd7a - _0207bd72 - 2 ; case 1 - .short _0207bd84 - _0207bd72 - 2 ; case 2 - .short _0207bd88 - _0207bd72 - 2 ; case 3 -_0207bd7a: - ldr r0, _0207bd98 ; =data_027e0db0 - ldr r1, [r0, #8] - ldr r0, [r0, #4] - sub r0, r1, r0 - b _0207bd8a -_0207bd84: - mov r0, #0xa0 - b _0207bd8a -_0207bd88: - mov r0, #0x60 -_0207bd8a: - add r1, r7, #0 - blx func_01ff9b4c - str r0, [r5, #0x10] -_0207bd92: - add r0, r6, #0 - pop {r3, r4, r5, r6, r7, pc} - nop - thumb_func_end func_ov00_0207bd4c -_0207bd98: .word data_027e0db0 - - .global func_ov00_0207bd9c - thumb_func_start func_ov00_0207bd9c -func_ov00_0207bd9c: ; 0x0207bd9c - push {r3, r4, r5, lr} - add r4, r0, #0 - add r5, r1, #0 - bl func_ov00_0207bcdc - cmp r0, #0 - beq _0207bdd2 - cmp r5, #3 - bhi _0207bdd2 - add r1, r5, r5 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0207bdba: ; jump table - .short _0207bdc2 - _0207bdba - 2 ; case 0 - .short _0207bdc2 - _0207bdba - 2 ; case 1 - .short _0207bdc8 - _0207bdba - 2 ; case 2 - .short _0207bdce - _0207bdba - 2 ; case 3 -_0207bdc2: - mov r1, #0xa - str r1, [r4, #0x10] - pop {r3, r4, r5, pc} -_0207bdc8: - mov r1, #0xa - str r1, [r4, #0x10] - pop {r3, r4, r5, pc} -_0207bdce: - mov r1, #0xa - str r1, [r4, #0x10] -_0207bdd2: - pop {r3, r4, r5, pc} - thumb_func_end func_ov00_0207bd9c - - .global func_ov00_0207bdd4 - thumb_func_start func_ov00_0207bdd4 -func_ov00_0207bdd4: ; 0x0207bdd4 - push {r3, lr} - add r2, r1, #1 - cmp r2, #3 - bhi _0207bdf6 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0207bde8: ; jump table - .short _0207bdf0 - _0207bde8 - 2 ; case 0 - .short _0207bdf6 - _0207bde8 - 2 ; case 1 - .short _0207bdf6 - _0207bde8 - 2 ; case 2 - .short _0207bdf6 - _0207bde8 - 2 ; case 3 -_0207bdf0: - bl func_ov00_0207bcb4 - pop {r3, pc} -_0207bdf6: - str r1, [r0] - pop {r3, pc} - .align 2, 0 - thumb_func_end func_ov00_0207bdd4 - - .global func_ov00_0207bdfc - thumb_func_start func_ov00_0207bdfc -func_ov00_0207bdfc: ; 0x0207bdfc - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _0207be10 - cmp r0, #1 - beq _0207be28 - cmp r0, #2 - beq _0207be5a - pop {r4, pc} -_0207be10: - add r0, r4, #0 - ldr r2, [r4, #0x10] - add r0, #0x18 - blx func_ov00_0207c91c - cmp r0, #0 - beq _0207be80 - add r0, r4, #0 - mov r1, #1 - bl func_ov00_0207bdd4 - pop {r4, pc} -_0207be28: - ldr r2, [r4, #8] - cmp r2, #0 - beq _0207be34 - ldr r1, [r4, #0xc] - mov r0, #0 - blx r2 -_0207be34: - ldr r0, [r4] - cmp r0, #1 - bne _0207be80 - ldr r0, [r4, #4] - cmp r0, #2 - bne _0207be44 - mov r2, #1 - b _0207be46 -_0207be44: - mov r2, #0 -_0207be46: - add r0, r4, #0 - add r0, #0x18 - mov r1, #1 - bl func_ov00_0207c8e4 - add r0, r4, #0 - mov r1, #2 - bl func_ov00_0207bdd4 - pop {r4, pc} -_0207be5a: - add r0, r4, #0 - ldr r2, [r4, #0x10] - add r0, #0x18 - mov r1, #0xa0 - blx func_ov00_0207c91c - cmp r0, #0 - beq _0207be80 - ldr r2, [r4, #8] - cmp r2, #0 - beq _0207be76 - ldr r1, [r4, #0xc] - mov r0, #1 - blx r2 -_0207be76: - mov r1, #0 - add r0, r4, #0 - mvn r1, r1 - bl func_ov00_0207bdd4 -_0207be80: - pop {r4, pc} - .align 2, 0 - thumb_func_end func_ov00_0207bdfc - - .global func_ov00_0207be84 - arm_func_start func_ov00_0207be84 -func_ov00_0207be84: ; 0x0207be84 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - cmp r1, #0 - ldreqb r1, [r5, #0x16] - cmpeq r1, #0 - ldmneia sp!, {r3, r4, r5, pc} - ldr r2, [r5, #4] - mvn r1, #0 - cmp r2, r1 - ldmeqia sp!, {r3, r4, r5, pc} - ldr r1, [r5, #4] - cmp r1, #3 - addls pc, pc, r1, lsl #2 - ldmia sp!, {r3, r4, r5, pc} -_0207bebc: ; jump table - b _0207becc ; case 0 - b _0207becc ; case 1 - b _0207bfa4 ; case 2 - b _0207bfb0 ; case 3 -_0207becc: - ldr r1, [r5] - ldr r2, _0207bfbc ; =data_027e0db4 - cmp r1, #0 - ldr r4, _0207bfc0 ; =data_027e0db8 - beq _0207bef4 - cmp r1, #1 - beq _0207bf20 - cmp r1, #2 - beq _0207bf5c - ldmia sp!, {r3, r4, r5, pc} -_0207bef4: - ldr ip, [r2] - ldr r1, [r5, #0x10] - ldr r3, [r4] - add r1, ip, r1 - str r1, [r2] - cmp r1, r3 - ldmltia sp!, {r3, r4, r5, pc} - mov r1, #1 - str r3, [r2] - blx func_ov00_0207bdd4 - ldmia sp!, {r3, r4, r5, pc} -_0207bf20: - ldr r2, [r5, #8] - cmp r2, #0 - beq _0207bf38 - ldr r1, [r5, #0xc] - mov r0, #0 - blx r2 -_0207bf38: - ldr r0, [r5] - cmp r0, #1 - ldmneia sp!, {r3, r4, r5, pc} - ldrsh r2, [r5, #0x14] - mov r0, r5 - mov r1, #2 - str r2, [r4] - blx func_ov00_0207bdd4 - ldmia sp!, {r3, r4, r5, pc} -_0207bf5c: - ldr r3, [r2] - ldr r1, [r5, #0x10] - ldr r0, [r4] - sub r1, r3, r1 - str r1, [r2] - cmp r1, r0 - ldmgtia sp!, {r3, r4, r5, pc} - str r0, [r2] - ldr r2, [r5, #8] - cmp r2, #0 - beq _0207bf94 - ldr r1, [r5, #0xc] - mov r0, #1 - blx r2 -_0207bf94: - mov r0, r5 - mvn r1, #0 - blx func_ov00_0207bdd4 - ldmia sp!, {r3, r4, r5, pc} -_0207bfa4: - mov r1, #0 - blx func_ov00_0207bdfc - ldmia sp!, {r3, r4, r5, pc} -_0207bfb0: - mov r1, #0x40 - blx func_ov00_0207bdfc - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_0207be84 -_0207bfbc: .word data_027e0db4 -_0207bfc0: .word data_027e0db8 - - .global func_ov00_0207bfc4 - thumb_func_start func_ov00_0207bfc4 -func_ov00_0207bfc4: ; 0x0207bfc4 - push {r4, lr} - add r4, r0, #0 - bl func_0202ab78 - add r0, r4, #0 - mov r1, #1 - add r0, #0x24 - strb r1, [r0] - add r0, r4, #0 - mov r1, #0 - add r0, #0x25 - strb r1, [r0] - add r0, r4, #0 - add r0, #0x26 - strb r1, [r0] - add r0, r4, #0 - add r0, #0x27 - strb r1, [r0] - add r0, r4, #0 - add r0, #0x28 - strb r1, [r0] - add r0, r4, #0 - add r0, #0x29 - strb r1, [r0] - mov r0, #0x14 - strh r0, [r4, #0x2a] - mov r0, #0x28 - strh r0, [r4, #0x2c] - pop {r4, pc} - .align 2, 0 - thumb_func_end func_ov00_0207bfc4 - - .global func_ov00_0207c000 - thumb_func_start func_ov00_0207c000 -func_ov00_0207c000: ; 0x0207c000 - push {r3, lr} - add r1, r0, #0 - add r1, #0x25 - ldrb r1, [r1] - cmp r1, #0 - beq _0207c02a - add r1, r0, #0 - mov r2, #1 - add r1, #0x24 - strb r2, [r1] - add r1, r0, #0 - mov r2, #0 - add r1, #0x25 - strb r2, [r1] - mov r1, #0x14 - strh r1, [r0, #0x2a] - mov r1, #0x28 - strh r1, [r0, #0x2c] - ldr r0, _0207c02c ; =data_027e0e2c - bl func_ov00_0207bcb4 -_0207c02a: - pop {r3, pc} - .align 2, 0 - thumb_func_end func_ov00_0207c000 -_0207c02c: .word data_027e0e2c - - .global func_ov00_0207c030 - thumb_func_start func_ov00_0207c030 -func_ov00_0207c030: ; 0x0207c030 - add r2, r0, #0 - add r2, #0x25 - ldrb r2, [r2] - mov r1, #0 - cmp r2, #0 - beq _0207c04e - ldr r0, _0207c06c ; =data_027e077c - ldr r1, [r0] - ldr r0, _0207c070 ; =data_02056be4 - ldrb r0, [r0, r1] - mov r1, #1 - tst r0, r1 - beq _0207c066 - mov r1, #2 - b _0207c066 -_0207c04e: - add r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _0207c066 - ldr r0, _0207c06c ; =data_027e077c - ldr r1, [r0] - ldr r0, _0207c070 ; =data_02056be4 - ldrb r0, [r0, r1] - mov r1, #1 - tst r0, r1 - bne _0207c066 - mov r1, #2 -_0207c066: - add r0, r1, #0 - bx lr - nop - thumb_func_end func_ov00_0207c030 -_0207c06c: .word data_027e077c -_0207c070: .word data_02056be4 - - .global func_ov00_0207c074 - thumb_func_start func_ov00_0207c074 -func_ov00_0207c074: ; 0x0207c074 - push {r4, lr} - add r4, r0, #0 - add r1, r4, #0 - mov r2, #0 - add r1, #0x29 - strb r2, [r1] - add r1, r4, #0 - add r1, #0x24 - ldrb r1, [r1] - cmp r1, #0 - beq _0207c0a4 - bl func_ov00_0207c030 - add r2, r0, #0 - ldrh r1, [r4, #0x2a] - add r0, r4, #0 - bl func_0202abdc - cmp r0, #0 - beq _0207c0a4 - ldr r0, _0207c0a8 ; =data_027e071c - add r1, r4, #0 - blx func_0202d77c -_0207c0a4: - pop {r4, pc} - nop - thumb_func_end func_ov00_0207c074 -_0207c0a8: .word data_027e071c - - .global func_ov00_0207c0ac - thumb_func_start func_ov00_0207c0ac -func_ov00_0207c0ac: ; 0x0207c0ac - push {r4, lr} - mov r3, #0 - mvn r3, r3 - cmp r1, r3 - beq _0207c0c6 - ldr r3, _0207c0c8 ; =data_027e0cbc - ldr r4, [r3, #0x1c] - str r4, [r0] - cmp r4, r1 - beq _0207c0c6 - add r0, r3, #0 - blx func_ov03_020fa874 -_0207c0c6: - pop {r4, pc} - .align 2, 0 - thumb_func_end func_ov00_0207c0ac -_0207c0c8: .word data_027e0cbc - - .global func_ov00_0207c0cc - thumb_func_start func_ov00_0207c0cc -func_ov00_0207c0cc: ; 0x0207c0cc - push {r4, lr} - add r4, r0, #0 - add r2, r1, #0 - mov r0, #0 - ldr r1, [r4] - mvn r0, r0 - cmp r1, r0 - beq _0207c0e8 - ldr r0, _0207c0ec ; =data_027e0cbc - blx func_ov03_020fa874 - mov r0, #0 - mvn r0, r0 - str r0, [r4] -_0207c0e8: - pop {r4, pc} - nop - thumb_func_end func_ov00_0207c0cc -_0207c0ec: .word data_027e0cbc - - .global func_ov00_0207c0f0 - thumb_func_start func_ov00_0207c0f0 -func_ov00_0207c0f0: ; 0x0207c0f0 - push {r3, lr} - add r3, r0, #0 - mov r2, #0 - add r0, #0x3c - strb r2, [r0] - cmp r1, #2 - beq _0207c106 - cmp r1, #6 - beq _0207c106 - cmp r1, #7 - bne _0207c110 -_0207c106: - ldr r0, _0207c114 ; =data_ov00_020ec718 - add r1, r3, #0 - mov r2, #0x3c - blx func_020078d8 -_0207c110: - pop {r3, pc} - nop - thumb_func_end func_ov00_0207c0f0 -_0207c114: .word data_ov00_020ec718 - - .global func_ov00_0207c118 - thumb_func_start func_ov00_0207c118 -func_ov00_0207c118: ; 0x0207c118 - push {r4, r5, lr} - sub sp, #0x114 - add r4, r1, #0 - add r5, r0, #0 - add r1, sp, #0x14 - mov r2, #0x80 - blx func_02007ad8 - add r0, r5, #0 - add r1, sp, #0x94 - mov r2, #0x80 - blx func_02007ad8 - mov r3, #0 - str r3, [sp] - ldr r1, _0207c168 ; =0x0003f500 - add r5, r4, #0 - mul r5, r1 - ldr r1, _0207c16c ; =0x0003f200 - str r3, [sp, #4] - mov r0, #7 - str r0, [sp, #8] - mov r0, #0xa - str r0, [sp, #0xc] - mov r2, #2 - str r2, [sp, #0x10] - add r0, sp, #0x14 - add r1, r5, r1 - add r2, #0xfe - bl func_02040464 - cmp r0, #0 - beq _0207c160 - add sp, #0x114 - mov r0, #1 - pop {r4, r5, pc} -_0207c160: - mov r0, #0 - add sp, #0x114 - pop {r4, r5, pc} - nop - thumb_func_end func_ov00_0207c118 -_0207c168: .word 0x0003f500 -_0207c16c: .word 0x0003f200 - - .global func_ov00_0207c170 - thumb_func_start func_ov00_0207c170 -func_ov00_0207c170: ; 0x0207c170 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - add r5, r0, #0 - add r6, r4, #0 - mov r7, #0x14 -_0207c17a: - add r0, r6, #0 - add r1, r5, #0 - add r2, r7, #0 - blx func_020078c0 - add r4, r4, #1 - add r5, #0x14 - cmp r4, #3 - blt _0207c17a - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end func_ov00_0207c170 - - .global func_ov00_0207c190 - thumb_func_start func_ov00_0207c190 -func_ov00_0207c190: ; 0x0207c190 - mov r2, #0 - add r3, r2, #0 -_0207c194: - ldrb r1, [r0, #0x12] - cmp r1, #0 - beq _0207c1a2 - ldrh r1, [r0] - cmp r1, #0 - bne _0207c1a2 - add r2, r2, #1 -_0207c1a2: - add r3, r3, #1 - add r0, #0x14 - cmp r3, #3 - blt _0207c194 - add r0, r2, #0 - bx lr - .align 2, 0 - thumb_func_end func_ov00_0207c190 - - .global func_ov00_0207c1b0 - arm_func_start func_ov00_0207c1b0 -func_ov00_0207c1b0: ; 0x0207c1b0 - stmdb sp!, {r4, lr} - sub sp, sp, #8 - ldr lr, [sp, #0x10] - cmp r1, #0x1000 - movge r4, #1 - movlt r4, #0 - ldr ip, [sp, #0x14] - str lr, [sp] - cmp r1, #0x1000 - orrge r3, r3, #0x8000 - cmp r1, #0x1000 - str ip, [sp, #4] - add r0, r0, r4, lsl #2 - ldr r0, [r0, #0x10] - subge r1, r1, #0x1000 - bl func_ov00_0207c694 - add sp, sp, #8 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207c1b0 - - .global func_ov00_0207c1f8 - arm_func_start func_ov00_0207c1f8 -func_ov00_0207c1f8: ; 0x0207c1f8 - stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - mov r6, r2 - cmp r6, #0x1000 - movge r4, #1 - mov r7, r1 - mov r8, r0 - mov r0, r7 - mov r5, r3 - movlt r4, #0 - bl func_ov00_020b7e6c - cmp r6, #0x1000 - ldrge r0, [sp, #0x20] - mov r1, r7 - orrge r0, r0, #0x8000 - ldrlt r0, [sp, #0x20] - cmp r6, #0x1000 - str r0, [sp] - add r0, r8, r4, lsl #2 - subge r6, r6, #0x1000 - ldr r0, [r0, #0x10] - mov r2, r6 - mov r3, r5 - bl func_ov00_0207c6ec - add sp, sp, #4 - ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} - arm_func_end func_ov00_0207c1f8 - - .global func_ov00_0207c260 - arm_func_start func_ov00_0207c260 -func_ov00_0207c260: ; 0x0207c260 - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} - ldr r6, [sp, #0x28] - ldr r5, [sp, #0x2c] - mov r9, r1 - mov r8, r2 - mov r10, r0 - mov r7, r3 - cmp r9, r8 - ldmeqia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - orr r11, r5, #0x8000 -_0207c288: - ldr r0, [r7] - cmp r0, #0x1000 - movge r0, #1 - movlt r0, #0 - add r1, r10, r0, lsl #2 - mov r0, r9 - ldr r4, [r1, #0x10] - bl func_ov00_020b7e6c - ldr r2, [r7] - mov r0, r4 - cmp r2, #0x1000 - movge ip, r11 - movlt ip, r5 - cmp r2, #0x1000 - subge r2, r2, #0x1000 - mov r1, r9 - mov r3, r6 - str ip, [sp] - bl func_ov00_0207c6ec - add r9, r9, #4 - cmp r9, r8 - add r7, r7, #4 - bne _0207c288 - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - arm_func_end func_ov00_0207c260 - - .global func_ov00_0207c2e8 - arm_func_start func_ov00_0207c2e8 -func_ov00_0207c2e8: ; 0x0207c2e8 - stmdb sp!, {r3, lr} - sub sp, sp, #0x10 - ldr lr, [sp, #0x18] - str r2, [sp, #8] - str r3, [sp, #0xc] - ldr ip, [sp, #0x1c] - str lr, [sp] - add r3, sp, #8 - add r2, r1, #8 - str ip, [sp, #4] - bl func_ov00_0207c260 - add sp, sp, #0x10 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207c2e8 - - .global func_ov00_0207c31c - arm_func_start func_ov00_0207c31c -func_ov00_0207c31c: ; 0x0207c31c - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr ip, [sp, #0x18] - ldr lr, [sp, #0x1c] - str r2, [sp, #8] - str r3, [sp, #0xc] - str ip, [sp, #0x10] - ldr ip, [sp, #0x20] - str lr, [sp] - add r3, sp, #8 - add r2, r1, #0xc - str ip, [sp, #4] - bl func_ov00_0207c260 - add sp, sp, #0x14 - ldmia sp!, {pc} - arm_func_end func_ov00_0207c31c - - .global func_ov00_0207c358 - arm_func_start func_ov00_0207c358 -func_ov00_0207c358: ; 0x0207c358 - stmdb sp!, {r3, lr} - sub sp, sp, #0x18 - ldr lr, [sp, #0x20] - ldr ip, [sp, #0x24] - str r2, [sp, #8] - str r3, [sp, #0xc] - str ip, [sp, #0x14] - ldr r2, [sp, #0x28] - str lr, [sp, #0x10] - str r2, [sp] - ldr ip, [sp, #0x2c] - add r3, sp, #8 - add r2, r1, #0x10 - str ip, [sp, #4] - bl func_ov00_0207c260 - add sp, sp, #0x18 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207c358 - - .global func_ov00_0207c39c - arm_func_start func_ov00_0207c39c -func_ov00_0207c39c: ; 0x0207c39c - stmdb sp!, {r3, r4, lr} - sub sp, sp, #0x1c - ldr r4, [sp, #0x28] - ldr lr, [sp, #0x2c] - ldr ip, [sp, #0x30] - str r2, [sp, #8] - str r3, [sp, #0xc] - str ip, [sp, #0x18] - ldr r2, [sp, #0x34] - str r4, [sp, #0x10] - str lr, [sp, #0x14] - str r2, [sp] - ldr ip, [sp, #0x38] - add r3, sp, #8 - add r2, r1, #0x14 - str ip, [sp, #4] - bl func_ov00_0207c260 - add sp, sp, #0x1c - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_0207c39c - - .global func_ov00_0207c3e8 - arm_func_start func_ov00_0207c3e8 -func_ov00_0207c3e8: ; 0x0207c3e8 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #0x24 - ldr r6, [sp, #0x38] - ldr r5, [sp, #0x3c] - ldr r4, [sp, #0x40] - ldr lr, [sp, #0x44] - ldr ip, [sp, #0x48] - str r2, [sp, #8] - str r3, [sp, #0xc] - str ip, [sp, #0x20] - ldr r2, [sp, #0x4c] - str r6, [sp, #0x10] - str r5, [sp, #0x14] - str r4, [sp, #0x18] - str lr, [sp, #0x1c] - str r2, [sp] - ldr ip, [sp, #0x50] - add r3, sp, #8 - add r2, r1, #0x1c - str ip, [sp, #4] - bl func_ov00_0207c260 - add sp, sp, #0x24 - ldmia sp!, {r3, r4, r5, r6, pc} - arm_func_end func_ov00_0207c3e8 - - .global func_ov00_0207c444 - arm_func_start func_ov00_0207c444 -func_ov00_0207c444: ; 0x0207c444 - stmdb sp!, {r3, lr} - ldr r2, [r1] - cmp r2, #0 - ldmeqia sp!, {r3, pc} - ldr r2, [r2, #0x9c] - tst r2, #0x8000 - movne r2, #1 - moveq r2, #0 - add r0, r0, r2, lsl #2 - ldr r0, [r0, #0x10] - bl func_ov00_0207c748 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207c444 - - .global func_ov00_0207c474 - arm_func_start func_ov00_0207c474 -func_ov00_0207c474: ; 0x0207c474 - stmdb sp!, {r3, lr} - mov r3, r2 - ldr r2, [r1, #4] - ldr ip, [r1] - cmp r2, #0x1000 - movge lr, #1 - movlt lr, #0 - cmp ip, #0 - bne _0207c4c0 - ldr ip, [r1, #8] - cmp r2, #0x1000 - orrge ip, ip, #0x8000 - str ip, [sp] - add r0, r0, lr, lsl #2 - cmp r2, #0x1000 - ldr r0, [r0, #0x10] - subge r2, r2, #0x1000 - bl func_ov00_0207c6ec - ldmia sp!, {r3, pc} -_0207c4c0: - ldr r0, [r1] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - ldr r1, [r0, #0x20] - ldr r2, [r3] - ldr r1, [r1] - ldr r1, [r1, #4] - add r1, r2, r1 - str r1, [r0, #0x28] - ldr r1, [r0, #0x20] - ldr r2, [r3, #4] - ldr r1, [r1] - ldr r1, [r1, #8] - add r1, r2, r1 - str r1, [r0, #0x2c] - ldr r1, [r0, #0x20] - ldr r2, [r3, #8] - ldr r1, [r1] - ldr r1, [r1, #0xc] - add r1, r2, r1 - str r1, [r0, #0x30] - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207c474 - - .global func_ov00_0207c518 - arm_func_start func_ov00_0207c518 -func_ov00_0207c518: ; 0x0207c518 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r6, r1 - mov r5, r2 - ldr r2, [r6, #4] - mov r7, r0 - cmp r2, #0x1000 - movge r4, #1 - ldr r0, [r6] - movlt r4, #0 - cmp r0, #0 - bne _0207c588 - ldr r0, [r6, #8] - cmp r2, #0x1000 - orrge r0, r0, #0x8000 - orr r0, r0, #0x4000 - str r0, [sp] - add r0, r7, r4, lsl #2 - cmp r2, #0x1000 - ldr r0, [r0, #0x10] - subge r2, r2, #0x1000 - mov r1, r6 - mov r3, r5 - bl func_ov00_0207c6ec - ldr r1, [r6] - cmp r1, #0 - ldrne r0, [r1, #0x24] - orrne r0, r0, #2 - strne r0, [r1, #0x24] -_0207c588: - ldr r0, [r6] - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - add r0, r7, r4, lsl #2 - ldr r0, [r0, #0x10] - ldr r1, [r6] - ldr r0, [r0] - mov r2, r5 - bl func_02012934 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end func_ov00_0207c518 - - .global func_ov00_0207c5b0 - thumb_func_start func_ov00_0207c5b0 -func_ov00_0207c5b0: ; 0x0207c5b0 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - add r5, r0, #0 - add r6, r1, #0 - sub r7, r4, #1 -_0207c5ba: - ldr r0, [r5] - cmp r0, r7 - beq _0207c5c8 - ldr r0, [r5, #0x10] - add r1, r6, #0 - bl func_ov00_0207c770 -_0207c5c8: - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #2 - blt _0207c5ba - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end func_ov00_0207c5b0 - - .global func_ov00_0207c5d4 - arm_func_start func_ov00_0207c5d4 -func_ov00_0207c5d4: ; 0x0207c5d4 - stmdb sp!, {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, #0 - mvn r4, #0 -_0207c5ec: - ldr r0, [r8, r5, lsl #2] - cmp r0, r4 - beq _0207c60c - add r0, r8, r5, lsl #2 - ldr r0, [r0, #0x10] - mov r1, r7 - mov r2, r6 - bl func_ov00_0207c798 -_0207c60c: - add r5, r5, #1 - cmp r5, #2 - blt _0207c5ec - ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_end func_ov00_0207c5d4 - - .global func_ov00_0207c61c - arm_func_start func_ov00_0207c61c -func_ov00_0207c61c: ; 0x0207c61c - stmdb sp!, {r3, lr} - ldr r2, [r1] - str r2, [r0, #0x9c] - ldr r2, [r0, #0x20] - ldr r2, [r2] - ldr r2, [r2, #0x58] - mov r2, r2, lsl #0x18 - mov r2, r2, lsr #0x18 - and r2, r2, #0xff - tst r2, #0x80 - beq _0207c658 - ldr r2, _0207c670 ; =data_027e0e58 - ldr r2, [r2] - ldrh r2, [r2, #0x22] - strh r2, [r0, #0x76] -_0207c658: - ldr r2, [r1, #8] - cmp r2, #0 - ldmeqia sp!, {r3, pc} - ldr r1, [r1, #4] - blx r2 - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_0207c61c -_0207c670: .word data_027e0e58 - - .global func_ov00_0207c674 - arm_func_start func_ov00_0207c674 -func_ov00_0207c674: ; 0x0207c674 - stmdb sp!, {r3, lr} - ldr r1, _0207c690 ; =data_027e0618 - ldr r1, [r1] - cmp r1, #6 - ldmneia sp!, {r3, pc} - bl func_ov12_02133c40 - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_0207c674 -_0207c690: .word data_027e0618 - - .global func_ov00_0207c694 - arm_func_start func_ov00_0207c694 -func_ov00_0207c694: ; 0x0207c694 - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x10 - mov r6, r0 - mov r0, r1 - mov r5, r2 - mov r4, r3 - bl func_ov00_0207c674 - ldr r3, [sp, #0x20] - ldr r2, [sp, #0x24] - str r3, [sp, #8] - str r2, [sp, #0xc] - ldr r1, _0207c6e8 ; =func_ov00_0207c61c - str r4, [sp, #4] - str r1, [sp] - mov r1, r0 - ldr r0, [r6] - add r3, sp, #4 - mov r2, r5 - bl func_02012830 - add sp, sp, #0x10 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_0207c694 -_0207c6e8: .word func_ov00_0207c61c - - .global func_ov00_0207c6ec - arm_func_start func_ov00_0207c6ec -func_ov00_0207c6ec: ; 0x0207c6ec - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x10 - mov r6, r0 - mov r0, r2 - mov r5, r1 - mov r4, r3 - bl func_ov00_0207c674 - mov r2, #0 - ldr r3, [sp, #0x20] - ldr r1, _0207c744 ; =func_ov00_0207c61c - str r3, [sp, #4] - str r2, [sp, #8] - str r2, [sp, #0xc] - str r1, [sp] - mov r1, r0 - ldr r0, [r6] - add r3, sp, #4 - mov r2, r4 - bl func_02012830 - str r0, [r5] - add sp, sp, #0x10 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_0207c6ec -_0207c744: .word func_ov00_0207c61c - - .global func_ov00_0207c748 - arm_func_start func_ov00_0207c748 -func_ov00_0207c748: ; 0x0207c748 - stmdb sp!, {r4, lr} - mov r4, r1 - ldr r1, [r4] - cmp r1, #0 - ldmeqia sp!, {r4, pc} - ldr r0, [r0] - bl func_020128bc - mov r0, #0 - str r0, [r4] - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207c748 - - .global func_ov00_0207c770 - thumb_func_start func_ov00_0207c770 -func_ov00_0207c770: ; 0x0207c770 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r0, [r5] - add r6, r1, #0 - ldr r1, [r0, #4] - cmp r1, #0 - beq _0207c796 -_0207c77e: - add r0, r1, #0 - add r0, #0x9c - ldr r0, [r0] - ldr r4, [r1] - tst r0, r6 - beq _0207c790 - ldr r0, [r5] - blx func_020128bc -_0207c790: - add r1, r4, #0 - cmp r4, #0 - bne _0207c77e -_0207c796: - pop {r4, r5, r6, pc} - thumb_func_end func_ov00_0207c770 - - .global func_ov00_0207c798 - arm_func_start func_ov00_0207c798 -func_ov00_0207c798: ; 0x0207c798 - ldr r0, [r0] - ldr r3, [r0, #4] - cmp r3, #0 - bxeq lr - cmp r2, #0 - moveq r0, #1 - movne r0, #0 - mov r0, r0, lsl #0x1f -_0207c7b8: - ldr r2, [r3, #0x9c] - ldr ip, [r3] - tst r1, r2 - beq _0207c7d8 - ldr r2, [r3, #0x24] - bic r2, r2, #8 - orr r2, r2, r0, lsr #28 - str r2, [r3, #0x24] -_0207c7d8: - mov r3, ip - cmp ip, #0 - bne _0207c7b8 - bx lr - arm_func_end func_ov00_0207c798 - - .global func_ov00_0207c7e8 - arm_func_start func_ov00_0207c7e8 -func_ov00_0207c7e8: ; 0x0207c7e8 - ldr r3, _0207c800 ; =data_ov00_020d88cc - ldrh r2, [r0] - ldrb r1, [r3, r1] - cmp r2, r1 - strloh r1, [r0] - bx lr - .align 2, 0 - arm_func_end func_ov00_0207c7e8 -_0207c800: .word data_ov00_020d88cc - - .global func_ov00_0207c804 - thumb_func_start func_ov00_0207c804 -func_ov00_0207c804: ; 0x0207c804 - push {r3, r4, r5, r6, lr} - sub sp, #0x24 - ldr r3, _0207c8d0 ; =data_027e0f94 - add r6, r2, #0 - add r5, r0, #0 - add r4, r1, #0 - ldmia r3!, {r0, r1} - add r2, sp, #0x18 - stmia r2!, {r0, r1} - ldr r0, [r3] - str r0, [r2] - ldr r0, _0207c8d4 ; =data_027e0d38 - ldr r0, [r0] - blx func_ov00_02078b40 - cmp r0, #2 - bne _0207c830 - ldr r1, [sp, #0x1c] - ldr r0, _0207c8d8 ; =0x0000019a - add r0, r1, r0 - str r0, [sp, #0x1c] - b _0207c876 -_0207c830: - cmp r5, #0 - beq _0207c840 - mov r0, #3 - ldr r1, [sp, #0x1c] - lsl r0, r0, #0xa - add r0, r1, r0 - str r0, [sp, #0x1c] - b _0207c876 -_0207c840: - ldr r0, _0207c8dc ; =data_027e0fcc - ldr r2, [sp, #0x18] - ldr r1, [r0] - add r1, #0x40 - add r0, r1, #0 - add r1, #0x84 - ldr r1, [r1] - add r0, #0x84 - add r2, r2, r1 - lsr r1, r2, #0x1f - add r1, r2, r1 - asr r1, r1, #1 - str r1, [sp, #0x18] - ldr r2, [sp, #0x1c] - ldr r1, [r0, #4] - add r2, r2, r1 - lsr r1, r2, #0x1f - add r1, r2, r1 - asr r1, r1, #1 - str r1, [sp, #0x1c] - ldr r1, [sp, #0x20] - ldr r0, [r0, #8] - add r1, r1, r0 - lsr r0, r1, #0x1f - add r0, r1, r0 - asr r0, r0, #1 - str r0, [sp, #0x20] -_0207c876: - ldr r0, [sp, #0x18] - add r1, sp, #0xc - str r0, [sp, #0xc] - ldr r0, [sp, #0x1c] - add r2, sp, #8 - str r0, [sp, #0x10] - ldr r0, [sp, #0x20] - add r3, sp, #4 - str r0, [sp, #0x14] - mov r0, #1 - str r0, [sp] - ldr r0, _0207c8e0 ; =data_027e0f64 - ldr r0, [r0] - ldr r0, [r0, #4] - blx func_01ffe468 - cmp r0, #0 - beq _0207c8c8 - mov r1, #0x1f - ldr r2, [sp, #8] - mvn r1, r1 - cmp r2, r1 - blt _0207c8c8 - mov r0, #0x12 - lsl r0, r0, #4 - cmp r2, r0 - bge _0207c8c8 - ldr r0, [sp, #4] - add r1, #8 - cmp r0, r1 - blt _0207c8c8 - cmp r0, #0xd8 - bge _0207c8c8 - lsl r0, r2, #0xc - str r0, [r4] - ldr r0, [sp, #4] - add sp, #0x24 - lsl r0, r0, #0xc - str r0, [r6] - mov r0, #1 - pop {r3, r4, r5, r6, pc} -_0207c8c8: - mov r0, #0 - add sp, #0x24 - pop {r3, r4, r5, r6, pc} - nop - thumb_func_end func_ov00_0207c804 -_0207c8d0: .word data_027e0f94 -_0207c8d4: .word data_027e0d38 -_0207c8d8: .word 0x0000019a -_0207c8dc: .word data_027e0fcc -_0207c8e0: .word data_027e0f64 - - .global func_ov00_0207c8e4 - thumb_func_start func_ov00_0207c8e4 -func_ov00_0207c8e4: ; 0x0207c8e4 - push {r3, lr} - add r3, r0, #0 - mov r0, #2 - lsl r0, r0, #0x12 - str r0, [r3, #8] - str r0, [r3] - mov r0, #6 - lsl r0, r0, #0x10 - str r0, [r3, #0xc] - str r0, [r3, #4] - cmp r2, #0 - beq _0207c91a - cmp r1, #0 - bne _0207c910 - add r0, r1, #0 - add r1, r3, #0 - add r3, #0xc - add r1, #8 - add r2, r3, #0 - bl func_ov00_0207c804 - pop {r3, pc} -_0207c910: - add r0, r1, #0 - add r1, r3, #0 - add r2, r3, #4 - bl func_ov00_0207c804 -_0207c91a: - pop {r3, pc} - thumb_func_end func_ov00_0207c8e4 - - .global func_ov00_0207c91c - arm_func_start func_ov00_0207c91c -func_ov00_0207c91c: ; 0x0207c91c - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r7, r0 - ldr r0, [r7, #0x10] - mov r6, r1 - mov r5, r2 - cmp r0, r6 - beq _0207c9d8 - subs r0, r6, r0 - rsbmi r0, r0, #0 - mov r0, r0, lsl #0xc - mov r1, r5, lsl #0xc - bl Divide - mov r4, r0 - ldr r2, [r7, #8] - cmp r4, #0x1000 - strle r2, [r7] - ble _0207c97c - ldr r0, [r7] - mov r1, r4 - sub r0, r2, r0 - bl Divide - ldr r1, [r7] - add r0, r1, r0 - str r0, [r7] -_0207c97c: - ldr r2, [r7, #0xc] - cmp r4, #0x1000 - strle r2, [r7, #4] - ble _0207c9a8 - ldr r0, [r7, #4] - mov r1, r4 - sub r0, r2, r0 - bl Divide - ldr r1, [r7, #4] - add r0, r1, r0 - str r0, [r7, #4] -_0207c9a8: - ldr r0, [r7, #0x10] - cmp r0, r6 - bge _0207c9c8 - add r0, r0, r5 - cmp r0, r6 - movge r0, r6 - str r0, [r7, #0x10] - b _0207c9d8 -_0207c9c8: - sub r0, r0, r5 - cmp r0, r6 - movle r0, r6 - str r0, [r7, #0x10] -_0207c9d8: - ldr r0, [r7, #0x10] - cmp r0, r6 - movne r0, #0 - ldmneia sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, [r7, #8] - mov r0, #1 - str r1, [r7] - ldr r1, [r7, #0xc] - str r1, [r7, #4] - 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 - ldr r2, [r0, #0x268] - str r2, [r1] - ldr r2, [r0, #4] - cmp r2, #3 - bxeq lr - ldr r2, [r0, #0x260] - strb r2, [r1, #4] - ldrb r0, [r0, #0x25d] - strb r0, [r1, #5] - bx lr - arm_func_end func_ov00_0207ca00 - - .global func_ov00_0207ca28 - arm_func_start func_ov00_0207ca28 -func_ov00_0207ca28: ; 0x0207ca28 - stmdb sp!, {r3, lr} - ldr ip, [r0, #4] - add r0, r0, r1, lsl #2 - cmp ip, #3 - ldr r0, [r0, #0xcc] - bne _0207ca54 - mov r1, r2 - mov r2, r3 - mov r3, #1 - bl func_ov00_020972e4 - ldmia sp!, {r3, pc} -_0207ca54: - mov r1, r2 - mov r2, r3 - mov r3, #0 - bl func_ov00_020972e4 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207ca28 - - .global func_ov00_0207ca68 - arm_func_start func_ov00_0207ca68 -func_ov00_0207ca68: ; 0x0207ca68 - ldr ip, _0207ca74 ; =strcpy - add r0, r0, #0xc - bx ip - .align 2, 0 - arm_func_end func_ov00_0207ca68 -_0207ca74: .word strcpy - - .global func_ov00_0207ca78 - arm_func_start func_ov00_0207ca78 -func_ov00_0207ca78: ; 0x0207ca78 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r2 - bl func_ov00_0207d9cc - movs r1, r0 - ldmeqia sp!, {r3, r4, r5, pc} - strb r4, [r1] - ldr r0, [r5, #0xc8] - ldr r1, [r1, #8] - mov r2, #1 - bl func_ov00_020a3510 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207ca78 - - .global func_ov00_0207caa8 - arm_func_start func_ov00_0207caa8 -func_ov00_0207caa8: ; 0x0207caa8 - stmdb sp!, {r3, r4, r5, lr} - sub sp, sp, #0x10 - cmp r1, #0 - mov r5, r2 - mov r4, r3 - addeq sp, sp, #0x10 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} - mov r3, #0x47 - mov r2, #0 - strb r2, [sp, #0xc] - str r3, [sp] - ldr r0, [r0, #0xc8] - add r2, sp, #0 - bl func_ov00_020a3710 - cmp r0, #0 - addeq sp, sp, #0x10 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} - ldr r1, [sp] - mov r0, #1 - str r1, [r5] - ldrb r1, [sp, #4] - strb r1, [r4] - ldrb r1, [sp, #5] - strb r1, [r4, #1] - ldrh r1, [sp, #6] - strh r1, [r4, #2] - ldrh r1, [sp, #8] - strh r1, [r4, #4] - ldrh r1, [sp, #0xa] - strh r1, [r4, #6] - add sp, sp, #0x10 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207caa8 - - .global func_ov00_0207cb30 - arm_func_start func_ov00_0207cb30 -func_ov00_0207cb30: ; 0x0207cb30 - stmdb sp!, {r3, lr} - sub sp, sp, #0x10 - cmp r1, #0 - addeq sp, sp, #0x10 - ldreq r0, _0207cb78 ; =0x0000ffff - ldmeqia sp!, {r3, pc} - mov r3, #0x47 - mov r2, #0 - strb r2, [sp, #0xc] - str r3, [sp] - ldr r0, [r0, #0xc8] - add r2, sp, #0 - bl func_ov00_020a3710 - cmp r0, #0 - ldrneh r0, [sp, #0xa] - ldreq r0, _0207cb78 ; =0x0000ffff - add sp, sp, #0x10 - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_0207cb30 -_0207cb78: .word 0x0000ffff - - .global func_ov00_0207cb7c - arm_func_start func_ov00_0207cb7c -func_ov00_0207cb7c: ; 0x0207cb7c - stmdb sp!, {r3, r4, r5, lr} - mov lr, #0 - mov r5, r1 - mov ip, lr -_0207cb8c: - mov r4, ip -_0207cb90: - add r3, r5, r4 - ldrb r3, [r3, #0x20] - cmp r2, r3 - streqb lr, [r0] - streqb r4, [r0, #1] - ldmeqia sp!, {r3, r4, r5, pc} - add r4, r4, #1 - cmp r4, #0xa - blt _0207cb90 - add lr, lr, #1 - cmp lr, #0xa - add r5, r5, #0xa - blt _0207cb8c - ldrb r2, [r1, #0x1d] - ldrb r1, [r1, #0x1c] - strb r1, [r0] - strb r2, [r0, #1] - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207cb7c - - .global func_ov00_0207cbd8 - arm_func_start func_ov00_0207cbd8 -func_ov00_0207cbd8: ; 0x0207cbd8 - stmdb sp!, {r3, lr} - bl func_ov00_0207d9cc - add r0, r0, #0x14 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207cbd8 - - .global func_ov00_0207cbe8 - arm_func_start func_ov00_0207cbe8 -func_ov00_0207cbe8: ; 0x0207cbe8 - stmdb sp!, {r3, lr} - sub sp, sp, #0x10 - cmp r1, #0 - addeq sp, sp, #0x10 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - mov r3, #0x47 - mov r2, #0 - strb r2, [sp, #0xc] - str r3, [sp] - ldr r0, [r0, #0xc8] - add r2, sp, #0 - bl func_ov00_020a3710 - add sp, sp, #0x10 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207cbe8 - - .global func_ov00_0207cc24 - arm_func_start func_ov00_0207cc24 -func_ov00_0207cc24: ; 0x0207cc24 - stmdb sp!, {r3, lr} - sub sp, sp, #0x10 - cmp r1, #0 - addeq sp, sp, #0x10 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - mov r3, #0x47 - mov r2, #0 - strb r2, [sp, #0xc] - str r3, [sp] - ldr r0, [r0, #0xc8] - add r2, sp, #0 - bl func_ov00_020a3710 - cmp r0, #0 - ldrneb r0, [sp, #0xc] - moveq r0, #0 - add sp, sp, #0x10 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207cc24 - - .global func_ov00_0207cc6c - arm_func_start func_ov00_0207cc6c -func_ov00_0207cc6c: ; 0x0207cc6c - stmdb sp!, {r3, lr} - bl func_ov00_0207d9cc - cmp r0, #0 - moveq r0, #0 - ldrne r0, [r0, #8] - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207cc6c - - .global func_ov00_0207cc84 - arm_func_start func_ov00_0207cc84 -func_ov00_0207cc84: ; 0x0207cc84 - stmdb sp!, {r3, lr} - mov lr, r0 - mov ip, r2 - cmp r3, #3 - addls pc, pc, r3, lsl #2 - b _0207cd3c -_0207cc9c: ; jump table - b _0207cd3c ; case 0 - b _0207ccac ; case 1 - b _0207cce8 ; case 2 - b _0207cd24 ; case 3 -_0207ccac: - cmp ip, #0 - bne _0207cccc - ldr r2, _0207cd58 ; =data_ov00_020e2508 - mov r0, r1 - ldr r2, [r2] - ldr r1, _0207cd5c ; =data_ov00_020e2058 - bl func_0200c8d0 - ldmia sp!, {r3, pc} -_0207cccc: - ldr r2, _0207cd58 ; =data_ov00_020e2508 - mov r0, r1 - ldr r2, [r2] - ldr r1, _0207cd60 ; =data_ov00_020e2070 - mov r3, ip - bl func_0200c8d0 - ldmia sp!, {r3, pc} -_0207cce8: - cmp ip, #0 - bne _0207cd08 - ldr r2, _0207cd58 ; =data_ov00_020e2508 - mov r0, r1 - ldr r2, [r2] - ldr r1, _0207cd64 ; =data_ov00_020e208c - bl func_0200c8d0 - ldmia sp!, {r3, pc} -_0207cd08: - ldr r2, _0207cd58 ; =data_ov00_020e2508 - mov r0, r1 - ldr r2, [r2] - ldr r1, _0207cd68 ; =data_ov00_020e20a4 - mov r3, ip - bl func_0200c8d0 - ldmia sp!, {r3, pc} -_0207cd24: - ldr r2, _0207cd58 ; =data_ov00_020e2508 - mov r0, r1 - ldr r2, [r2] - ldr r1, _0207cd6c ; =data_ov00_020e20c0 - bl func_0200c8d0 - ldmia sp!, {r3, pc} -_0207cd3c: - ldr r2, _0207cd58 ; =data_ov00_020e2508 - mov r0, r1 - ldr r2, [r2] - ldr r1, _0207cd70 ; =data_ov00_020e20d8 - add r3, lr, #0xc - bl func_0200c8d0 - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_0207cc84 -_0207cd58: .word data_ov00_020e2508 -_0207cd5c: .word data_ov00_020e2058 -_0207cd60: .word data_ov00_020e2070 -_0207cd64: .word data_ov00_020e208c -_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 - stmdb sp!, {r4, lr} - mov r4, r2 - cmp r3, #3 - addls pc, pc, r3, lsl #2 - b _0207cde0 -_0207cd88: ; jump table - b _0207cde0 ; case 0 - b _0207cd98 ; case 1 - b _0207cdb0 ; case 2 - b _0207cdc8 ; case 3 -_0207cd98: - ldr r0, _0207ce08 ; =data_ov00_020e250c - ldr r1, _0207ce0c ; =data_ov00_020e20ec - ldr r2, [r0] - mov r0, r4 - bl func_0200c8d0 - ldmia sp!, {r4, pc} -_0207cdb0: - ldr r0, _0207ce08 ; =data_ov00_020e250c - ldr r1, _0207ce10 ; =data_ov00_020e2104 - ldr r2, [r0] - mov r0, r4 - bl func_0200c8d0 - ldmia sp!, {r4, pc} -_0207cdc8: - ldr r0, _0207ce08 ; =data_ov00_020e250c - ldr r1, _0207ce14 ; =data_ov00_020e211c - ldr r2, [r0] - mov r0, r4 - bl func_0200c8d0 - ldmia sp!, {r4, pc} -_0207cde0: - ldr r0, _0207ce18 ; =data_027e0f7c - ldr r0, [r0] - bl func_ov00_0209d71c - ldr r1, _0207ce08 ; =data_ov00_020e250c - mov r3, r0 - ldr r2, [r1] - ldr r1, _0207ce1c ; =data_ov00_020e2134 - mov r0, r4 - bl func_0200c8d0 - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_0207cd74 -_0207ce08: .word data_ov00_020e250c -_0207ce0c: .word data_ov00_020e20ec -_0207ce10: .word data_ov00_020e2104 -_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 - stmdb sp!, {r3, lr} - sub sp, sp, #8 - ldr ip, [sp, #0x10] - stmia sp, {r3, ip} - mov ip, r1 - mov r3, r2 - ldr r1, [r0] - mov r2, ip - bl func_ov00_0207ce4c - add sp, sp, #8 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207ce20 - - .global func_ov00_0207ce4c - arm_func_start func_ov00_0207ce4c -func_ov00_0207ce4c: ; 0x0207ce4c - stmdb sp!, {r4, r5, r6, r7, r8, lr} - sub sp, sp, #8 - ldr r4, _0207d3ac ; =data_027e0f7c - mov r8, r0 - ldr r0, [r4] - mov r7, r1 - mov r6, r2 - mov r5, r3 - ldr r4, [sp, #0x20] - bl func_ov00_0209d71c - ldr r1, [sp, #0x24] - mov r3, r0 - cmp r1, #7 - addls pc, pc, r1, lsl #2 - b _0207d364 -_0207ce88: ; jump table - b _0207d364 ; case 0 - b _0207cef0 ; case 1 - b _0207cea8 ; case 2 - b _0207cf38 ; case 3 - b _0207d07c ; case 4 - b _0207d294 ; case 5 - b _0207d2d8 ; case 6 - b _0207d31c ; case 7 -_0207cea8: - ldr r2, _0207d3b0 ; =0x66666667 - mov r1, r6, lsr #0x1f - smull r0, r5, r2, r6 - smull r0, r7, r2, r6 - add r7, r1, r7, asr #2 - add r5, r1, r5, asr #2 - mov r2, #0xa - smull r0, r1, r2, r5 - sub r5, r6, r0 - str r7, [sp] - ldr r0, _0207d3b4 ; =data_ov00_020e233c - str r5, [sp, #4] - ldr r2, [r0] - ldr r1, _0207d3b8 ; =data_ov00_020e2148 - mov r0, r4 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207cef0: - ldr r2, _0207d3b0 ; =0x66666667 - mov r1, r6, lsr #0x1f - smull r0, r5, r2, r6 - smull r0, r7, r2, r6 - add r7, r1, r7, asr #2 - add r5, r1, r5, asr #2 - mov r2, #0xa - smull r0, r1, r2, r5 - sub r5, r6, r0 - str r7, [sp] - ldr r0, _0207d3b4 ; =data_ov00_020e233c - str r5, [sp, #4] - ldr r2, [r0] - ldr r1, _0207d3bc ; =data_ov00_020e2160 - mov r0, r4 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207cf38: - ldr r1, [r8, #8] - mvn r0, #1 - cmp r1, r0 - bne _0207cf98 - ldr r0, _0207d3c0 ; =data_027e0d38 - ldr r0, [r0] - ldr r0, [r0, #0x28] - add r0, r0, #0x44 - bl func_ov00_020a5e9c - ldr r2, _0207d3c0 ; =data_027e0d38 - mov r1, r0 - ldr r0, [r2] - mov r3, r5 - ldr r0, [r0, #0x28] - ldrb r2, [r0, #0x56] - mov r0, r8 - cmp r2, #0xff - str r4, [sp] - mov r4, #4 - moveq r2, #0 - str r4, [sp, #4] - bl func_ov00_0207ce4c - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207cf98: - ldr r0, [r8, #4] - cmp r0, #2 - bne _0207cfc8 - mov r7, #4 - mov r0, r8 - mov r1, r6 - mov r2, r5 - mov r3, r4 - str r7, [sp] - bl func_ov00_0207ce20 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207cfc8: - cmp r6, #0xff - beq _0207cfdc - ldrb r0, [r8, #0x25c] - cmp r0, #0 - beq _0207d03c -_0207cfdc: - cmp r7, #0x1b - bne _0207cffc - ldr r1, _0207d3c4 ; =data_ov00_020e2174 - mov r0, r4 - mov r2, r3 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207cffc: - ldr r1, _0207d3b0 ; =0x66666667 - mov r2, r3 - smull r0, r8, r1, r6 - smull r0, r3, r1, r6 - mov r7, r6, lsr #0x1f - add r8, r7, r8, asr #2 - mov r5, #0xa - smull r0, r1, r5, r8 - sub r8, r6, r0 - ldr r1, _0207d3c8 ; =data_ov00_020e2188 - mov r0, r4 - add r3, r7, r3, asr #2 - str r8, [sp] - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d03c: - ldr r1, _0207d3b0 ; =0x66666667 - mov r2, r3 - smull r0, r8, r1, r6 - smull r0, r3, r1, r6 - mov r7, r6, lsr #0x1f - add r8, r7, r8, asr #2 - mov r5, #0xa - smull r0, r1, r5, r8 - sub r8, r6, r0 - ldr r1, _0207d3cc ; =data_ov00_020e219c - mov r0, r4 - add r3, r7, r3, asr #2 - str r8, [sp] - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d07c: - ldr r0, [r8] - cmp r0, #0x32 - bgt _0207d0b4 - bge _0207d19c - cmp r0, #3 - bgt _0207d1d4 - cmp r0, #1 - blt _0207d1d4 - beq _0207d0f4 - cmp r0, #2 - beq _0207d12c - cmp r0, #3 - beq _0207d164 - b _0207d1d4 -_0207d0b4: - cmp r0, #0x38 - bne _0207d1d4 - ldr r1, _0207d3b0 ; =0x66666667 - mov r5, r6, lsr #0x1f - smull r0, r3, r1, r6 - smull r0, r2, r1, r6 - add r3, r5, r3, asr #2 - mov r1, #0xa - smull r3, r0, r1, r3 - ldr r1, _0207d3d0 ; =data_ov00_020e21b4 - mov r0, r4 - add r2, r5, r2, asr #2 - sub r3, r6, r3 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d0f4: - ldr r1, _0207d3b0 ; =0x66666667 - mov r5, r6, lsr #0x1f - smull r0, r3, r1, r6 - smull r0, r2, r1, r6 - add r3, r5, r3, asr #2 - mov r1, #0xa - smull r3, r0, r1, r3 - ldr r1, _0207d3d4 ; =data_ov00_020e21d0 - mov r0, r4 - add r2, r5, r2, asr #2 - sub r3, r6, r3 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d12c: - ldr r1, _0207d3b0 ; =0x66666667 - mov r5, r6, lsr #0x1f - smull r0, r3, r1, r6 - smull r0, r2, r1, r6 - add r3, r5, r3, asr #2 - mov r1, #0xa - smull r3, r0, r1, r3 - ldr r1, _0207d3d8 ; =data_ov00_020e21f0 - mov r0, r4 - add r2, r5, r2, asr #2 - sub r3, r6, r3 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d164: - ldr r1, _0207d3b0 ; =0x66666667 - mov r5, r6, lsr #0x1f - smull r0, r3, r1, r6 - smull r0, r2, r1, r6 - add r3, r5, r3, asr #2 - mov r1, #0xa - smull r3, r0, r1, r3 - ldr r1, _0207d3dc ; =data_ov00_020e2210 - mov r0, r4 - add r2, r5, r2, asr #2 - sub r3, r6, r3 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d19c: - ldr r1, _0207d3b0 ; =0x66666667 - mov r5, r6, lsr #0x1f - smull r0, r3, r1, r6 - smull r0, r2, r1, r6 - add r3, r5, r3, asr #2 - mov r1, #0xa - smull r3, r0, r1, r3 - ldr r1, _0207d3e0 ; =data_ov00_020e2230 - mov r0, r4 - add r2, r5, r2, asr #2 - sub r3, r6, r3 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d1d4: - cmp r6, #3 - bne _0207d25c - ldr r0, _0207d3e4 ; =gAdventureFlags - mov r1, #0x32 - ldr r0, [r0] - bl _ZN14AdventureFlags3GetEj - cmp r0, #0 - ldr r1, _0207d3b0 ; =0x66666667 - mov r5, r6, lsr #0x1f - beq _0207d22c - smull r0, r3, r1, r6 - smull r0, r2, r1, r6 - add r3, r5, r3, asr #2 - mov r1, #0xa - smull r3, r0, r1, r3 - ldr r1, _0207d3e8 ; =data_ov00_020e2250 - mov r0, r4 - add r2, r5, r2, asr #2 - sub r3, r6, r3 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d22c: - smull r0, r3, r1, r6 - smull r0, r2, r1, r6 - add r3, r5, r3, asr #2 - mov r1, #0xa - smull r3, r0, r1, r3 - ldr r1, _0207d3ec ; =data_ov00_020e226c - mov r0, r4 - add r2, r5, r2, asr #2 - sub r3, r6, r3 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d25c: - ldr r1, _0207d3b0 ; =0x66666667 - mov r5, r6, lsr #0x1f - smull r0, r3, r1, r6 - smull r0, r2, r1, r6 - add r3, r5, r3, asr #2 - mov r1, #0xa - smull r3, r0, r1, r3 - ldr r1, _0207d3f0 ; =data_ov00_020e2284 - mov r0, r4 - add r2, r5, r2, asr #2 - sub r3, r6, r3 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d294: - ldr r8, _0207d3b0 ; =0x66666667 - mov r7, r6, lsr #0x1f - smull r0, r1, r8, r6 - add r1, r7, r1, asr #2 - mov r2, #0xa - smull r0, r1, r2, r1 - sub r1, r6, r0 - smull r0, r3, r8, r6 - stmia sp, {r1, r5} - ldr r0, _0207d3b4 ; =data_ov00_020e233c - ldr r1, _0207d3f4 ; =data_ov00_020e229c - ldr r2, [r0] - mov r0, r4 - add r3, r7, r3, asr #2 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d2d8: - ldr r8, _0207d3b0 ; =0x66666667 - mov r7, r6, lsr #0x1f - smull r0, r1, r8, r6 - add r1, r7, r1, asr #2 - mov r2, #0xa - smull r0, r1, r2, r1 - sub r1, r6, r0 - smull r0, r3, r8, r6 - stmia sp, {r1, r5} - ldr r0, _0207d3b4 ; =data_ov00_020e233c - ldr r1, _0207d3f8 ; =data_ov00_020e22b8 - ldr r2, [r0] - mov r0, r4 - add r3, r7, r3, asr #2 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d31c: - ldr r2, _0207d3b0 ; =0x66666667 - mov r1, r6, lsr #0x1f - smull r0, r5, r2, r6 - smull r0, r7, r2, r6 - add r7, r1, r7, asr #2 - add r5, r1, r5, asr #2 - mov r2, #0xa - smull r0, r1, r2, r5 - sub r5, r6, r0 - str r7, [sp] - ldr r0, _0207d3b4 ; =data_ov00_020e233c - str r5, [sp, #4] - ldr r2, [r0] - ldr r1, _0207d3fc ; =data_ov00_020e22d4 - mov r0, r4 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_0207d364: - ldr r2, _0207d3b0 ; =0x66666667 - mov r1, r6, lsr #0x1f - smull r0, r5, r2, r6 - smull r0, r7, r2, r6 - add r7, r1, r7, asr #2 - add r5, r1, r5, asr #2 - mov r2, #0xa - smull r0, r1, r2, r5 - str r7, [sp] - sub r5, r6, r0 - ldr r0, _0207d3b4 ; =data_ov00_020e233c - str r5, [sp, #4] - ldr r2, [r0] - ldr r1, _0207d400 ; =data_ov00_020e22e8 - mov r0, r4 - bl func_0200c8d0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, r7, r8, pc} - .align 2, 0 - arm_func_end func_ov00_0207ce4c -_0207d3ac: .word data_027e0f7c -_0207d3b0: .word 0x66666667 -_0207d3b4: .word data_ov00_020e233c -_0207d3b8: .word data_ov00_020e2148 -_0207d3bc: .word data_ov00_020e2160 -_0207d3c0: .word data_027e0d38 -_0207d3c4: .word data_ov00_020e2174 -_0207d3c8: .word data_ov00_020e2188 -_0207d3cc: .word data_ov00_020e219c -_0207d3d0: .word data_ov00_020e21b4 -_0207d3d4: .word data_ov00_020e21d0 -_0207d3d8: .word data_ov00_020e21f0 -_0207d3dc: .word data_ov00_020e2210 -_0207d3e0: .word data_ov00_020e2230 -_0207d3e4: .word gAdventureFlags -_0207d3e8: .word data_ov00_020e2250 -_0207d3ec: .word data_ov00_020e226c -_0207d3f0: .word data_ov00_020e2284 -_0207d3f4: .word data_ov00_020e229c -_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 - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x18 - mov r6, r0 - cmp r1, #0 - mov r5, r2 - mov r4, r3 - addeq sp, sp, #0x18 - mov r0, #0 - ldmeqia sp!, {r4, r5, r6, pc} - mov r2, #0x47 - str r2, [sp, #8] - strb r0, [sp, #0x14] - ldr r0, [r6, #0xc8] - add r2, sp, #8 - bl func_ov00_020a3710 - cmp r0, #0 - addeq sp, sp, #0x18 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, pc} - ldr r0, [sp, #0x28] - str r4, [sp] - str r0, [sp, #4] - ldrb r2, [sp, #0xc] - ldr r1, [sp, #8] - mov r0, r6 - mov r3, r5 - bl func_ov00_0207ce4c - mov r0, #1 - add sp, sp, #0x18 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_0207d404 - - .global func_ov00_0207d47c - arm_func_start func_ov00_0207d47c -func_ov00_0207d47c: ; 0x0207d47c - ldr ip, _0207d48c ; =func_ov00_0207d490 - ldrb r1, [r0, #0x1c] - ldrb r2, [r0, #0x1d] - bx ip - .align 2, 0 - arm_func_end func_ov00_0207d47c -_0207d48c: .word func_ov00_0207d490 - - .global func_ov00_0207d490 - arm_func_start func_ov00_0207d490 -func_ov00_0207d490: ; 0x0207d490 - ldrb r3, [r0, #0x25c] - cmp r3, #0 - moveq r0, #1 - bxeq lr - ldrb ip, [r0, #0x84] - cmp ip, r1 - bgt _0207d4dc - ldrb r3, [r0, #0x86] - add r3, ip, r3 - cmp r1, r3 - bge _0207d4dc - ldrb r1, [r0, #0x85] - cmp r1, r2 - bgt _0207d4dc - ldrb r0, [r0, #0x87] - add r0, r1, r0 - cmp r2, r0 - movlt r0, #1 - bxlt lr -_0207d4dc: - mov r0, #0 - bx lr - arm_func_end func_ov00_0207d490 - - .global func_ov00_0207d4e4 - arm_func_start func_ov00_0207d4e4 -func_ov00_0207d4e4: ; 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 - ldrb r1, [sp] - ldrb r2, [sp, #1] - mov r0, r4 - bl func_ov00_0207d490 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_0207d4e4 - - .global func_ov00_0207d518 - arm_func_start func_ov00_0207d518 -func_ov00_0207d518: ; 0x0207d518 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r4, r1 - mov r7, r0 - cmp r4, #0xff - mov r6, r2 - mov r5, r3 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - add r0, sp, #0 - mov r1, r7 - mov r2, r4 - bl func_ov00_0207cb7c - ldrb r1, [sp] - ldrb r2, [sp, #1] - mov r0, r7 - bl func_ov00_0207d490 - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - ldrb r4, [r7, #0x86] - ldrb r0, [r7, #0x87] - cmp r0, r4 - movhi r4, r0 - mov r1, r4 - mov r0, #0x100 - bl func_02002c14 - ldrb r3, [sp] - ldrb r2, [r7, #0x84] - ldr ip, [r7, #0x88] - mov r1, r4 - sub r2, r3, r2 - mla r2, r0, r2, ip - str r2, [r6] - mov r0, #0xc0 - bl func_02002c14 - ldrb r2, [sp, #1] - ldrb r1, [r7, #0x85] - ldr r3, [r7, #0x8c] - sub r1, r2, r1 - mla r1, r0, r1, r3 - str r1, [r5] - mov r0, #1 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end func_ov00_0207d518 - - .global func_ov00_0207d5c4 - arm_func_start func_ov00_0207d5c4 -func_ov00_0207d5c4: ; 0x0207d5c4 - stmdb sp!, {r3, lr} - ldrb r1, [r0, #0x86] - ldrb r0, [r0, #0x87] - cmp r0, r1 - movhi r1, r0 - mov r1, r1, lsl #0xc - mov r0, #0x100000 - bl Divide - mov r1, #0x40000 - bl Divide - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207d5c4 - - .global func_ov00_0207d5f0 - arm_func_start func_ov00_0207d5f0 -func_ov00_0207d5f0: ; 0x0207d5f0 - stmdb sp!, {r3, lr} - ldrb r1, [r0, #0x87] - ldrb r0, [r0, #0x86] - cmp r0, r1 - movhi r1, r0 - mov r1, r1, lsl #0xc - mov r0, #0xc0000 - bl Divide - mov r1, #0x30000 - bl Divide - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207d5f0 - - .global func_ov00_0207d61c - arm_func_start func_ov00_0207d61c -func_ov00_0207d61c: ; 0x0207d61c - ldr r0, [r0, #0xc8] - ldr r0, [r0] - bx lr - arm_func_end func_ov00_0207d61c - - .global func_ov00_0207d628 - arm_func_start func_ov00_0207d628 -func_ov00_0207d628: ; 0x0207d628 - ldr r0, [r0, #0xc8] - ldr r0, [r0, #4] - bx lr - arm_func_end func_ov00_0207d628 - - .global func_ov00_0207d634 - arm_func_start func_ov00_0207d634 -func_ov00_0207d634: ; 0x0207d634 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - ldrb r4, [r6, #0x1c] - ldrb r5, [r6, #0x1d] - cmp r1, #3 - addls pc, pc, r1, lsl #2 - b _0207d67c -_0207d650: ; jump table - b _0207d660 ; case 0 - b _0207d668 ; case 1 - b _0207d670 ; case 2 - b _0207d678 ; case 3 -_0207d660: - add r4, r4, #1 - b _0207d67c -_0207d668: - sub r4, r4, #1 - b _0207d67c -_0207d670: - add r5, r5, #1 - b _0207d67c -_0207d678: - sub r5, r5, #1 -_0207d67c: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl func_ov00_0207d490 - 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 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_0207d634 - - .global func_ov00_0207d6ac - arm_func_start func_ov00_0207d6ac -func_ov00_0207d6ac: ; 0x0207d6ac - cmp r1, #0 - cmpge r2, #0 - blt _0207d6c4 - cmp r1, #0xa - cmplt r2, #0xa - blt _0207d6cc -_0207d6c4: - mov r0, #0 - bx lr -_0207d6cc: - mov r3, #0xa - mla r0, r1, r3, r0 - add r0, r0, r2 - ldrb r0, [r0, #0x20] - cmp r0, #0xff - movne r0, #1 - moveq r0, #0 - bx lr - arm_func_end func_ov00_0207d6ac - - .global func_ov00_0207d6ec - arm_func_start func_ov00_0207d6ec -func_ov00_0207d6ec: ; 0x0207d6ec - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - bl func_ov00_0207d634 - cmp r0, #0 - moveq r0, #0xff - ldmeqia sp!, {r4, r5, r6, pc} - mov r0, r6 - mov r1, r5 - bl func_ov00_0207d758 - mov r4, r0 - mov r0, r6 - mov r1, r5 - bl func_ov00_0207d738 - 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 - - .global func_ov00_0207d738 - arm_func_start func_ov00_0207d738 -func_ov00_0207d738: ; 0x0207d738 - cmp r1, #0 - ldrb r0, [r0, #0x1c] - beq _0207d750 - cmp r1, #1 - subeq r0, r0, #1 - bx lr -_0207d750: - add r0, r0, #1 - bx lr - arm_func_end func_ov00_0207d738 - - .global func_ov00_0207d758 - arm_func_start func_ov00_0207d758 -func_ov00_0207d758: ; 0x0207d758 - cmp r1, #2 - ldrb r0, [r0, #0x1d] - beq _0207d770 - cmp r1, #3 - subeq r0, r0, #1 - bx lr -_0207d770: - add r0, r0, #1 - bx lr - arm_func_end func_ov00_0207d758 - - .global func_ov00_0207d778 - arm_func_start func_ov00_0207d778 -func_ov00_0207d778: ; 0x0207d778 - stmdb sp!, {r3, lr} - bl func_ov00_0207da14 - ldrh r0, [r0, #4] - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207d778 - - .global func_ov00_0207d788 - arm_func_start func_ov00_0207d788 -func_ov00_0207d788: ; 0x0207d788 - stmdb sp!, {r3, lr} - bl func_ov00_0207d9cc - cmp r0, #0 - ldreq r0, _0207d7a0 ; =0x0000ffff - ldrneh r0, [r0, #4] - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_0207d788 -_0207d7a0: .word 0x0000ffff - - .global func_ov00_0207d7a4 - arm_func_start func_ov00_0207d7a4 -func_ov00_0207d7a4: ; 0x0207d7a4 - stmdb sp!, {r3, lr} - bl func_ov00_0207d9cc - cmp r0, #0 - moveq r0, #0 - ldrne r0, [r0, #0xc] - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207d7a4 - - .global func_ov00_0207d7bc - arm_func_start func_ov00_0207d7bc -func_ov00_0207d7bc: ; 0x0207d7bc - stmdb sp!, {r3, lr} - bl func_ov00_0207da14 - 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 -_0207d7d8: .word data_027e103c - - .global func_ov00_0207d7dc - arm_func_start func_ov00_0207d7dc -func_ov00_0207d7dc: ; 0x0207d7dc - cmp r2, #0 - beq _0207d804 - add ip, r0, #0x264 - mov r3, r1, lsr #0x5 - and r0, r1, #0x1f - ldr r2, [ip, r3, lsl #2] - mov r1, #1 - orr r0, r2, r1, lsl r0 - str r0, [ip, r3, lsl #2] - bx lr -_0207d804: - add r3, r0, #0x264 - mov r2, r1, lsr #0x5 - and r0, r1, #0x1f - mov r1, #1 - mvn r0, r1, lsl r0 - ldr r1, [r3, r2, lsl #2] - and r0, r1, r0 - str r0, [r3, r2, lsl #2] - bx lr - arm_func_end func_ov00_0207d7dc - - .global func_ov00_0207d828 - arm_func_start func_ov00_0207d828 -func_ov00_0207d828: ; 0x0207d828 - mov r2, r1, lsr #0x5 - add r0, r0, r2, lsl #2 - ldr r2, [r0, #0x264] - and r1, r1, #0x1f - mov r0, #1 - tst r2, r0, lsl r1 - moveq r0, #0 - bx lr - arm_func_end func_ov00_0207d828 - - .global func_ov00_0207d848 - arm_func_start func_ov00_0207d848 -func_ov00_0207d848: ; 0x0207d848 - cmp r2, #0 - beq _0207d870 - add ip, r0, #0x268 - mov r3, r1, lsr #0x5 - and r0, r1, #0x1f - ldr r2, [ip, r3, lsl #2] - mov r1, #1 - orr r0, r2, r1, lsl r0 - str r0, [ip, r3, lsl #2] - bx lr -_0207d870: - add r3, r0, #0x268 - mov r2, r1, lsr #0x5 - and r0, r1, #0x1f - mov r1, #1 - mvn r0, r1, lsl r0 - ldr r1, [r3, r2, lsl #2] - and r0, r1, r0 - str r0, [r3, r2, lsl #2] - bx lr - arm_func_end func_ov00_0207d848 - - .global func_ov00_0207d894 - arm_func_start func_ov00_0207d894 -func_ov00_0207d894: ; 0x0207d894 - mov r2, r1, lsr #0x5 - add r0, r0, r2, lsl #2 - ldr r2, [r0, #0x268] - and r1, r1, #0x1f - mov r0, #1 - tst r2, r0, lsl r1 - moveq r0, #0 - bx lr - arm_func_end func_ov00_0207d894 - - .global func_ov00_0207d8b4 - arm_func_start func_ov00_0207d8b4 -func_ov00_0207d8b4: ; 0x0207d8b4 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r1 - mov r4, r2 - bl func_ov00_0207da14 - mov r1, r5 - mov r2, r4 - bl func_ov00_0209740c - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d8b4 - - .global func_ov00_0207d8d4 - arm_func_start func_ov00_0207d8d4 -func_ov00_0207d8d4: ; 0x0207d8d4 - stmdb sp!, {r4, lr} - mov r4, r1 - bl func_ov00_0207da14 - mov r1, r4 - bl func_ov00_02097458 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d8d4 - - .global func_ov00_0207d8ec - arm_func_start func_ov00_0207d8ec -func_ov00_0207d8ec: ; 0x0207d8ec - stmdb sp!, {r3, r4, r5, lr} - mov r5, r1 - mov r4, r2 - bl func_ov00_0207da14 - mov r1, r5 - mov r2, r4 - bl func_ov00_02097478 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d8ec - - .global func_ov00_0207d90c - arm_func_start func_ov00_0207d90c -func_ov00_0207d90c: ; 0x0207d90c - stmdb sp!, {r4, lr} - mov r4, r1 - bl func_ov00_0207da14 - mov r1, r4 - bl func_ov00_020974c4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d90c - - .global func_ov00_0207d924 - arm_func_start func_ov00_0207d924 -func_ov00_0207d924: ; 0x0207d924 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r1 - mov r4, r2 - bl func_ov00_0207da14 - mov r1, r5 - mov r2, r4 - bl func_ov00_020974e4 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d924 - - .global func_ov00_0207d944 - arm_func_start func_ov00_0207d944 -func_ov00_0207d944: ; 0x0207d944 - stmdb sp!, {r4, lr} - mov r4, r1 - bl func_ov00_0207da14 - mov r1, r4 - bl func_ov00_02097530 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d944 - - .global func_ov00_0207d95c - arm_func_start func_ov00_0207d95c -func_ov00_0207d95c: ; 0x0207d95c - stmdb sp!, {r3, r4, r5, lr} - mov r5, r1 - mov r4, r2 - bl func_ov00_0207da14 - mov r1, r5 - mov r2, r4 - bl func_ov00_02097550 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d95c - - .global func_ov00_0207d97c - arm_func_start func_ov00_0207d97c -func_ov00_0207d97c: ; 0x0207d97c - stmdb sp!, {r4, lr} - mov r4, r1 - bl func_ov00_0207da14 - mov r1, r4 - bl func_ov00_0209759c - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d97c - - .global func_ov00_0207d994 - arm_func_start func_ov00_0207d994 -func_ov00_0207d994: ; 0x0207d994 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r1 - mov r4, r2 - bl func_ov00_0207da14 - mov r1, r5 - mov r2, r4 - bl func_ov00_020975bc - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207d994 - - .global func_ov00_0207d9b4 - arm_func_start func_ov00_0207d9b4 -func_ov00_0207d9b4: ; 0x0207d9b4 - stmdb sp!, {r4, lr} - mov r4, r1 - bl func_ov00_0207da14 - mov r1, r4 - bl func_ov00_02097608 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207d9b4 - - .global func_ov00_0207d9cc - arm_func_start func_ov00_0207d9cc -func_ov00_0207d9cc: ; 0x0207d9cc - ldrb r2, [r0, #0xb0] - mov ip, #0 - cmp r2, #0 - ble _0207da0c -_0207d9dc: - add r2, r0, ip, lsl #2 - ldr r3, [r2, #0xcc] - cmp r3, #0 - beq _0207d9fc - ldrb r2, [r3, #1] - cmp r1, r2 - moveq r0, r3 - bxeq lr -_0207d9fc: - ldrb r2, [r0, #0xb0] - add ip, ip, #1 - cmp ip, r2 - blt _0207d9dc -_0207da0c: - mov r0, #0 - bx lr - arm_func_end func_ov00_0207d9cc - - .global func_ov00_0207da14 - arm_func_start func_ov00_0207da14 -func_ov00_0207da14: ; 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 - ldrb r1, [r1, #0x20] - bx ip - .align 2, 0 - arm_func_end func_ov00_0207da14 -_0207da34: .word func_ov00_0207d9cc - - .global func_ov00_0207da38 - arm_func_start func_ov00_0207da38 -func_ov00_0207da38: ; 0x0207da38 - stmdb sp!, {r3, r4, r5, lr} - ldr r1, _0207db0c ; =data_ov00_020e2348 - mov r4, r0 - str r1, [r4] - ldr r1, [r0] - ldr r1, [r1, #0x2c] - blx r1 - ldr r5, [r4, #0x144] - cmp r5, #0 - beq _0207da7c - beq _0207da74 - mov r0, r5 - blx func_ov04_0210dd90 - mov r0, r5 - bl _ZN9SysObjectdlEPv -_0207da74: - mov r0, #0 - str r0, [r4, #0x144] -_0207da7c: - ldr r0, _0207db10 ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dac0 - ldr r1, [r0] - ldr r1, [r1, #0xc] - blx r1 - ldr r0, _0207db10 ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dab4 - ldr r1, [r0] - ldr r1, [r1, #4] - blx r1 -_0207dab4: - ldr r0, _0207db10 ; =data_ov00_020ec81c - mov r1, #0 - str r1, [r0, #4] -_0207dac0: - mov r0, r4 - blx func_ov04_0210cb1c - ldr r3, _0207db14 ; =func_ov00_0207db18 - add r0, r4, #0x180 - mov r1, #2 - mov r2, #4 - bl func_0204f754 - add r0, r4, #0x130 - bl func_ov00_02080f20 - add r0, r4, #0x124 - bl func_ov00_020810e8 - add r0, r4, #0x118 - bl func_ov00_02081070 - add r0, r4, #0x10c - bl func_ov00_02080f20 - add r0, r4, #0x100 - bl func_ov00_02080ff8 - mov r0, r4 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_0207da38 -_0207db0c: .word data_ov00_020e2348 -_0207db10: .word data_ov00_020ec81c -_0207db14: .word func_ov00_0207db18 - - .global func_ov00_0207db18 - arm_func_start func_ov00_0207db18 -func_ov00_0207db18: ; 0x0207db18 - bx lr - arm_func_end func_ov00_0207db18 - - .global func_ov00_0207db1c - arm_func_start func_ov00_0207db1c -func_ov00_0207db1c: ; 0x0207db1c - stmdb sp!, {r3, r4, r5, lr} - ldr r1, _0207dbf8 ; =data_ov00_020e2348 - mov r4, r0 - str r1, [r4] - ldr r1, [r0] - ldr r1, [r1, #0x2c] - blx r1 - ldr r5, [r4, #0x144] - cmp r5, #0 - beq _0207db60 - beq _0207db58 - mov r0, r5 - blx func_ov04_0210dd90 - mov r0, r5 - bl _ZN9SysObjectdlEPv -_0207db58: - mov r0, #0 - str r0, [r4, #0x144] -_0207db60: - ldr r0, _0207dbfc ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dba4 - ldr r1, [r0] - ldr r1, [r1, #0xc] - blx r1 - ldr r0, _0207dbfc ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207db98 - ldr r1, [r0] - ldr r1, [r1, #4] - blx r1 -_0207db98: - ldr r0, _0207dbfc ; =data_ov00_020ec81c - mov r1, #0 - str r1, [r0, #4] -_0207dba4: - mov r0, r4 - blx func_ov04_0210cb1c - ldr r3, _0207dc00 ; =func_ov00_0207db18 - add r0, r4, #0x180 - mov r1, #2 - mov r2, #4 - bl func_0204f754 - add r0, r4, #0x130 - bl func_ov00_02080f20 - add r0, r4, #0x124 - bl func_ov00_020810e8 - add r0, r4, #0x118 - bl func_ov00_02081070 - add r0, r4, #0x10c - bl func_ov00_02080f20 - add r0, r4, #0x100 - bl func_ov00_02080ff8 - mov r0, r4 - bl _ZN9SysObjectdlEPv - mov r0, r4 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_0207db1c -_0207dbf8: .word data_ov00_020e2348 -_0207dbfc: .word data_ov00_020ec81c -_0207dc00: .word func_ov00_0207db18 - - .global func_ov00_0207dc04 - arm_func_start func_ov00_0207dc04 -func_ov00_0207dc04: ; 0x0207dc04 - stmdb sp!, {r3, r4, r5, lr} - ldr r1, _0207dcd8 ; =data_ov00_020e2348 - mov r4, r0 - str r1, [r4] - ldr r1, [r0] - ldr r1, [r1, #0x2c] - blx r1 - ldr r5, [r4, #0x144] - cmp r5, #0 - beq _0207dc48 - beq _0207dc40 - mov r0, r5 - blx func_ov04_0210dd90 - mov r0, r5 - bl _ZN9SysObjectdlEPv -_0207dc40: - mov r0, #0 - str r0, [r4, #0x144] -_0207dc48: - ldr r0, _0207dcdc ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dc8c - ldr r1, [r0] - ldr r1, [r1, #0xc] - blx r1 - ldr r0, _0207dcdc ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dc80 - ldr r1, [r0] - ldr r1, [r1, #4] - blx r1 -_0207dc80: - ldr r0, _0207dcdc ; =data_ov00_020ec81c - mov r1, #0 - str r1, [r0, #4] -_0207dc8c: - mov r0, r4 - blx func_ov04_0210cb1c - ldr r3, _0207dce0 ; =func_ov00_0207db18 - add r0, r4, #0x180 - mov r1, #2 - mov r2, #4 - bl func_0204f754 - add r0, r4, #0x130 - bl func_ov00_02080f20 - add r0, r4, #0x124 - bl func_ov00_020810e8 - add r0, r4, #0x118 - bl func_ov00_02081070 - add r0, r4, #0x10c - bl func_ov00_02080f20 - add r0, r4, #0x100 - bl func_ov00_02080ff8 - mov r0, r4 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_0207dc04 -_0207dcd8: .word data_ov00_020e2348 -_0207dcdc: .word data_ov00_020ec81c -_0207dce0: .word func_ov00_0207db18 - - .global func_ov00_0207dce4 - arm_func_start func_ov00_0207dce4 -func_ov00_0207dce4: ; 0x0207dce4 - stmdb sp!, {r4, r5, lr} - sub sp, sp, #0x2c - mov r4, r0 - ldrh r5, [r4, #0x28] - ldrh r3, [r4, #0x2a] - mov r0, r2 - mov r5, r5, lsl #0xc - mov r2, r3, lsl #0xc - str r5, [sp] - str r2, [sp, #4] - bl func_ov00_0207cbd8 - mov ip, r5 - add r5, sp, #0x20 - ldmia r0, {r0, r1, r2} - stmia r5, {r0, r1, r2} - ldr r1, [sp, #0x20] - ldr r3, [sp, #4] - ldr r2, [sp, #0x28] - ldr r0, [sp, #0x24] - sub r1, r1, ip, asr #1 - str r1, [r4, #0xdc] - str r0, [r4, #0xe0] - sub r1, r2, r3, asr #1 - str r1, [r4, #0xe4] - ldr r1, [sp, #0x20] - mov r5, r3, asr #0x1 - str r1, [r4, #0xd0] - ldr r1, [sp, #0x24] - add r3, r2, r3, asr #1 - str r1, [r4, #0xd4] - ldr r1, [sp, #0x28] - mov lr, ip, asr #0x1 - str r1, [r4, #0xd8] - ldr r2, [sp, #0x20] - rsb r1, lr, #0 - add r2, r2, ip, asr #1 - str r2, [r4, #0xe8] - str r0, [r4, #0xec] - str r3, [r4, #0xf0] - str r1, [r4, #0xf4] - mov r0, #0 - str r0, [r4, #0xf8] - rsb r0, r5, #0 - str r0, [r4, #0xfc] - add sp, sp, #0x2c - ldmia sp!, {r4, r5, pc} - arm_func_end func_ov00_0207dce4 - - .global func_ov00_0207dd9c - arm_func_start func_ov00_0207dd9c -func_ov00_0207dd9c: ; 0x0207dd9c - bx lr - arm_func_end func_ov00_0207dd9c - - .global func_ov00_0207dda0 - arm_func_start func_ov00_0207dda0 -func_ov00_0207dda0: ; 0x0207dda0 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #4 - ldr ip, _0207ddec ; =0x66666667 - mov r6, r1 - smull r0, r5, ip, r2 - mov r0, r3 - smull r1, r3, ip, r2 - mov r4, r2, lsr #0x1f - add r5, r4, r5, asr #2 - mov lr, #0xa - smull r1, ip, lr, r5 - sub r5, r2, r1 - ldr r1, _0207ddf0 ; =data_ov00_020e2410 - mov r2, r6 - add r3, r4, r3, asr #2 - str r5, [sp] - bl func_0200c8d0 - add sp, sp, #4 - ldmia sp!, {r3, r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_0207dda0 -_0207ddec: .word 0x66666667 -_0207ddf0: .word data_ov00_020e2410 - - .global func_ov00_0207ddf4 - arm_func_start func_ov00_0207ddf4 -func_ov00_0207ddf4: ; 0x0207ddf4 - bx lr - arm_func_end func_ov00_0207ddf4 - - .global func_ov00_0207ddf8 - arm_func_start func_ov00_0207ddf8 -func_ov00_0207ddf8: ; 0x0207ddf8 - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} - mov r7, #0 - mov r10, r0 - mov r9, r1 - add r8, r10, #0x180 - mvn r5, #0 - mov r6, r7 - mov r4, r7 - mov r11, #4 -_0207de1c: - cmp r9, #0 - beq _0207de44 - mov r2, r6 - add r1, r10, r7, lsl #2 -_0207de2c: - add r0, r1, r2, lsl #2 - add r2, r2, #1 - str r5, [r0, #0x180] - cmp r2, #1 - blo _0207de2c - b _0207de54 -_0207de44: - mov r0, r4 - mov r1, r8 - mov r2, r11 - bl func_020078f4 -_0207de54: - add r7, r7, #1 - cmp r7, #2 - add r8, r8, #4 - blt _0207de1c - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - arm_func_end func_ov00_0207ddf8 - - .global func_ov00_0207de68 - arm_func_start func_ov00_0207de68 -func_ov00_0207de68: ; 0x0207de68 - stmdb sp!, {r3, lr} - ldr r0, [r0, #0x144] - mov r2, r1 - cmp r0, #0 - ldmeqia sp!, {r3, pc} - mov r1, #0 - bl func_ov00_0209c08c - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207de68 - - .global func_ov00_0207de88 - arm_func_start func_ov00_0207de88 -func_ov00_0207de88: ; 0x0207de88 - stmdb sp!, {r3, lr} - ldr r0, [r0, #0x144] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl func_ov00_0209c61c - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207de88 - - .global func_ov00_0207dea0 - arm_func_start func_ov00_0207dea0 -func_ov00_0207dea0: ; 0x0207dea0 - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x10 - mov r5, r0 - ldr r2, _0207e044 ; =data_027e0f78 - ldr r0, [r5, #0x144] - mov r4, r1 - ldr r6, [r2] - bl func_ov00_0209c530 - ldrh r2, [r0, #4] - mov r0, r6 - mov r1, #0 - bl func_ov00_0209cc3c - ldr r1, _0207e044 ; =data_027e0f78 - ldr r0, [r5, #0x144] - ldr r6, [r1] - bl func_ov00_0209c530 - mov r1, r0 - ldrh r2, [r1, #6] - mov r0, r6 - mov r1, #1 - bl func_ov00_0209cc3c - ldr r1, _0207e044 ; =data_027e0f78 - ldr r0, [r5, #0x144] - ldr r6, [r1] - bl func_ov00_0209c530 - mov r1, r0 - ldrh r2, [r1, #8] - mov r0, r6 - mov r1, #2 - bl func_ov00_0209cc3c - ldr r1, _0207e044 ; =data_027e0f78 - ldr r0, [r5, #0x144] - ldr r6, [r1] - bl func_ov00_0209c530 - mov r1, r0 - ldrh r2, [r1, #0xa] - mov r0, r6 - mov r1, #3 - bl func_ov00_0209cc3c - ldr r0, _0207e044 ; =data_027e0f78 - ldr r0, [r0] - bl func_ov00_0209cc48 - ldr r1, _0207e048 ; =data_027e0f88 - ldr r0, [r5, #0x144] - ldr r6, [r1] - bl func_ov00_0209c530 - mov r1, r0 - ldrh r2, [r1, #0xc] - mov r0, r6 - mov r1, #0 - bl func_ov00_020a1a0c - cmp r4, #0 - beq _0207dff0 - ldr r0, [r5, #0x144] - ldr r1, _0207e04c ; =data_ov00_020ecde4 - ldr r2, [r0, #0xc] - mov r0, #0x68 - mla r0, r2, r0, r1 - add r0, r0, #0x54 - add r4, sp, #0 - ldmia r0, {r0, r1, r2, r3} - stmia r4, {r0, r1, r2, r3} - ldr r0, [sp] - cmp r0, #1 - blt _0207dfb4 - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - mov r1, #1 - bl func_ov00_0209cd80 - b _0207dfc0 -_0207dfb4: - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - mov r1, #0 - bl func_ov00_0209cd80 -_0207dfc0: - ldr r0, [r5, #0x144] - bl func_ov00_0209c530 - ldrh r1, [r0, #0xe] - ldr r2, [sp, #0xc] - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - bl func_ov00_0209cd9c - ldr r1, [sp, #4] - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - bl func_ov00_0209cddc - ldr r1, [sp, #8] - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - bl func_ov00_0209cdf8 -_0207dff0: - ldr r0, _0207e054 ; =data_027e0d38 - ldr r0, [r0] - bl func_ov00_02078b40 - cmp r0, #2 - bne _0207e01c - ldr r0, [r5, #0x144] - bl func_ov00_0209c530 - ldr r1, _0207e058 ; =data_027e0e58 - ldrh r2, [r0, #0x10] - ldr r0, [r1] - strh r2, [r0, #0x22] -_0207e01c: - ldr r0, [r5, #0x144] - bl func_ov00_0209c530 - mov r1, r0 - ldr r0, _0207e05c ; =data_027e0f8c - add r1, r1, #0x12 - bl func_ov00_020a3de0 - ldr r0, [r5, #0x144] - bl func_ov00_0209c788 - add sp, sp, #0x10 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_0207dea0 -_0207e044: .word data_027e0f78 -_0207e048: .word data_027e0f88 -_0207e04c: .word data_ov00_020ecde4 -_0207e050: .word data_ov00_020ee0a0 -_0207e054: .word data_027e0d38 -_0207e058: .word data_027e0e58 -_0207e05c: .word data_027e0f8c - - .global func_ov00_0207e060 - arm_func_start func_ov00_0207e060 -func_ov00_0207e060: ; 0x0207e060 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5, #0x13c] - mov r4, r2 - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} - bl func_020196fc - ldr r0, [r5, #0x13c] - mov r1, r4 - bl func_020196bc - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207e060 - - .global func_ov00_0207e08c - arm_func_start func_ov00_0207e08c -func_ov00_0207e08c: ; 0x0207e08c - stmdb sp!, {r3, lr} - ldr r3, [r0, #0x13c] - cmp r3, #0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldr r0, [r3, #8] - adds lr, r3, r0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldrh r0, [lr, #0xa] - add ip, lr, #4 - cmp lr, #0 - ldrh r3, [ip, r0] - add r0, ip, r0 - mla r0, r3, r2, r0 - ldr r0, [r0, #4] - add r3, lr, r0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldr r2, [r3, #0x14] - mov r0, #1 - str r2, [r1] - ldrh r2, [r3, #0x1c] - strh r2, [r1, #4] - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207e08c - - .global func_ov00_0207e0f0 - arm_func_start func_ov00_0207e0f0 -func_ov00_0207e0f0: ; 0x0207e0f0 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x14 - mov r10, r0 - ldr r2, [r10, #0x13c] - str r1, [sp] - cmp r2, #0 - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, [r2, #8] - adds r0, r2, r0 - str r0, [sp, #4] - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldrh r1, [r0] - adds r0, r0, r1 - str r0, [sp, #0xc] - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldrb r1, [r0, #1] - mov r0, #0 - str r0, [sp, #8] - cmp r1, #0 - bls _0207e280 - mov r7, r0 -_0207e15c: - ldr r0, [sp, #0xc] - ldr r1, [sp, #0xc] - ldrh r3, [r0, #6] - mov r0, r10 - ldr r2, [r0] - add r3, r1, r3 - ldrh r1, [r3, #2] - ldr r2, [r2, #0xb4] - add r4, r3, r1 - blx r2 - add r0, r0, #0x3c - add r1, r4, r7 - bl func_0201e24c - cmp r0, #0 - beq _0207e260 - ldr r0, [sp, #0xc] - mov r5, #0 - ldrh r2, [r0, #6] - ldrh r1, [r0, r2] - add r0, r0, r2 - add r2, r0, #4 - ldr r0, [sp, #8] - mul r0, r1, r0 - add r11, r2, r0 - ldrb r1, [r11, #2] - ldrh r0, [r2, r0] - cmp r1, #0 - str r0, [sp, #0x10] - ble _0207e260 -_0207e1d0: - ldr r1, [sp, #4] - ldr r0, [sp, #0x10] - ldrb r0, [r1, r0] - add r1, r0, r5 - ldr r0, [sp] - cmp r0, r1 - bne _0207e250 - mov r0, r10 - ldr r1, [r0] - ldr r1, [r1, #0xb4] - blx r1 - add r1, r0, #0x3c - ldrb r9, [r1, #1] - mov r6, #0 - cmp r9, #0 - ble _0207e250 - ldrh r0, [r1, #6] - add r8, r1, r0 -_0207e218: - ldrh r0, [r8, #2] - add r1, r4, r7 - add r0, r8, r0 - add r0, r0, r6, lsl #4 - bl strcmp - cmp r0, #0 - addeq sp, sp, #0x14 - moveq r0, r6 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - add r0, r6, #1 - mov r0, r0, lsl #0x10 - cmp r9, r0, lsr #16 - mov r6, r0, lsr #0x10 - bgt _0207e218 -_0207e250: - ldrb r0, [r11, #2] - add r5, r5, #1 - cmp r5, r0 - blt _0207e1d0 -_0207e260: - ldr r0, [sp, #0xc] - add r7, r7, #0x10 - ldrb r1, [r0, #1] - ldr r0, [sp, #8] - add r0, r0, #1 - str r0, [sp, #8] - cmp r0, r1 - blo _0207e15c -_0207e280: - mvn r0, #0 - add sp, sp, #0x14 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - arm_func_end func_ov00_0207e0f0 - - .global func_ov00_0207e28c - arm_func_start func_ov00_0207e28c -func_ov00_0207e28c: ; 0x0207e28c - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x14 - mov r10, r0 - ldr r2, [r10, #0x13c] - str r1, [sp] - cmp r2, #0 - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, [r2, #8] - adds r0, r2, r0 - str r0, [sp, #4] - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldrh r1, [r0, #2] - adds r0, r0, r1 - str r0, [sp, #0xc] - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldrb r1, [r0, #1] - mov r0, #0 - str r0, [sp, #8] - cmp r1, #0 - bls _0207e438 - mov r7, r0 -_0207e2f8: - ldr r0, [sp, #0xc] - ldr r1, [sp, #0xc] - ldrh r3, [r0, #6] - mov r0, r10 - ldr r2, [r0] - add r3, r1, r3 - ldrh r1, [r3, #2] - ldr r2, [r2, #0xb4] - add r4, r3, r1 - blx r2 - ldrh r2, [r0, #0x34] - add r1, r4, r7 - add r0, r0, r2 - bl func_0201e24c - cmp r0, #0 - beq _0207e418 - ldr r0, [sp, #0xc] - mov r5, #0 - ldrh r2, [r0, #6] - ldrh r1, [r0, r2] - add r0, r0, r2 - add r2, r0, #4 - ldr r0, [sp, #8] - mul r0, r1, r0 - add r11, r2, r0 - ldrb r1, [r11, #2] - ldrh r0, [r2, r0] - cmp r1, #0 - str r0, [sp, #0x10] - ble _0207e418 -_0207e370: - ldr r1, [sp, #4] - ldr r0, [sp, #0x10] - ldrb r0, [r1, r0] - add r1, r0, r5 - ldr r0, [sp] - cmp r0, r1 - bne _0207e408 - mov r0, r10 - ldr r1, [r0] - ldr r1, [r1, #0xb4] - blx r1 - mov r8, r0 - mov r0, r10 - ldr r1, [r0] - ldr r1, [r1, #0xb4] - blx r1 - ldrh r0, [r0, #0x34] - mov r6, #0 - add r1, r8, r0 - ldrb r9, [r1, #1] - cmp r9, #0 - ble _0207e408 - ldrh r0, [r1, #6] - add r8, r1, r0 -_0207e3d0: - ldrh r0, [r8, #2] - add r1, r4, r7 - add r0, r8, r0 - add r0, r0, r6, lsl #4 - bl strcmp - cmp r0, #0 - addeq sp, sp, #0x14 - moveq r0, r6 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - add r0, r6, #1 - mov r0, r0, lsl #0x10 - cmp r9, r0, lsr #16 - mov r6, r0, lsr #0x10 - bgt _0207e3d0 -_0207e408: - ldrb r0, [r11, #2] - add r5, r5, #1 - cmp r5, r0 - blt _0207e370 -_0207e418: - ldr r0, [sp, #0xc] - add r7, r7, #0x10 - ldrb r1, [r0, #1] - ldr r0, [sp, #8] - add r0, r0, #1 - str r0, [sp, #8] - cmp r0, r1 - blo _0207e2f8 -_0207e438: - mvn r0, #0 - add sp, sp, #0x14 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - arm_func_end func_ov00_0207e28c - - .global func_ov00_0207e444 - arm_func_start func_ov00_0207e444 -func_ov00_0207e444: ; 0x0207e444 - stmdb sp!, {r3, lr} - ldr r0, _0207e468 ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldr r0, [r0, #8] - bl func_0201e4cc - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_0207e444 -_0207e468: .word data_ov00_020ec81c - - .global func_ov00_0207e46c - arm_func_start func_ov00_0207e46c -func_ov00_0207e46c: ; 0x0207e46c - stmdb sp!, {r4, lr} - mov r4, r0 - bl func_ov00_0207fe3c - ldr r0, [r4, #0x144] - mov r1, #0 - bl func_ov00_0209c8e4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207e46c - - .global func_ov00_0207e488 - arm_func_start func_ov00_0207e488 -func_ov00_0207e488: ; 0x0207e488 - mov r0, #0 - bx lr - arm_func_end func_ov00_0207e488 - - .global func_ov00_0207e490 - arm_func_start func_ov00_0207e490 -func_ov00_0207e490: ; 0x0207e490 - mov r0, #0 - bx lr - arm_func_end func_ov00_0207e490 - - .global func_ov00_0207e498 - arm_func_start func_ov00_0207e498 -func_ov00_0207e498: ; 0x0207e498 - mov r0, #0 - bx lr - arm_func_end func_ov00_0207e498 - - .global func_ov00_0207e4a0 - arm_func_start func_ov00_0207e4a0 -func_ov00_0207e4a0: ; 0x0207e4a0 - mov r0, #0 - bx lr - arm_func_end func_ov00_0207e4a0 - - .global func_ov00_0207e4a8 - arm_func_start func_ov00_0207e4a8 -func_ov00_0207e4a8: ; 0x0207e4a8 - mov r0, #0 - bx lr - arm_func_end func_ov00_0207e4a8 - - .global func_ov00_0207e4b0 - arm_func_start func_ov00_0207e4b0 -func_ov00_0207e4b0: ; 0x0207e4b0 - mov r0, #0 - bx lr - arm_func_end func_ov00_0207e4b0 - - .global func_ov00_0207e4b8 - arm_func_start func_ov00_0207e4b8 -func_ov00_0207e4b8: ; 0x0207e4b8 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x7c - ldr r3, _0207e92c ; =data_027e0e60 - mov r9, r1 - ldr r1, [r3] - mov r8, r0 - mov r4, r2 - add r0, sp, #8 - mov r2, r9 - bl func_ov00_02083a1c - mov r0, r8 - ldr r2, [r0] - add r1, sp, #8 - ldr r2, [r2, #0x54] - blx r2 - cmp r0, #0x1e - bgt _0207e570 - bge _0207e724 - cmp r0, #0x17 - bgt _0207e554 - bge _0207e724 - cmp r0, #9 - bgt _0207e548 - cmp r0, #0 - addge pc, pc, r0, lsl #2 - b _0207e63c -_0207e520: ; jump table - b _0207e63c ; case 0 - b _0207e724 ; case 1 - b _0207e724 ; case 2 - b _0207e724 ; case 3 - b _0207e724 ; case 4 - b _0207e63c ; case 5 - b _0207e63c ; case 6 - b _0207e63c ; case 7 - b _0207e724 ; case 8 - b _0207e724 ; case 9 -_0207e548: - cmp r0, #0x16 - beq _0207e724 - b _0207e63c -_0207e554: - cmp r0, #0x19 - bgt _0207e564 - beq _0207e724 - b _0207e63c -_0207e564: - cmp r0, #0x1d - beq _0207e724 - b _0207e63c -_0207e570: - cmp r0, #0x35 - bgt _0207e5c8 - bge _0207e5e4 - cmp r0, #0x29 - bgt _0207e5bc - subs r1, r0, #0x1f - addpl pc, pc, r1, lsl #2 - b _0207e63c -_0207e590: ; jump table - b _0207e724 ; case 0 - b _0207e63c ; case 1 - b _0207e63c ; case 2 - b _0207e63c ; case 3 - b _0207e63c ; case 4 - b _0207e63c ; case 5 - b _0207e63c ; case 6 - b _0207e63c ; case 7 - b _0207e724 ; case 8 - b _0207e724 ; case 9 - b _0207e724 ; case 10 -_0207e5bc: - cmp r0, #0x30 - beq _0207e724 - b _0207e63c -_0207e5c8: - cmp r0, #0x40 - bgt _0207e5d8 - beq _0207e724 - b _0207e63c -_0207e5d8: - cmp r0, #0x50 - beq _0207e724 - b _0207e63c -_0207e5e4: - cmp r4, #0 - beq _0207e724 - add r2, sp, #0x14 - mov r0, r8 - mov r1, r9 - bl func_ov00_0207f104 - cmp r0, #0 - ldrne r0, [sp, #0x14] - addne sp, sp, #0x7c - ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - add r2, sp, #0x14 - mov r0, r8 - mov r1, r9 - bl func_ov00_0207f1f4 - cmp r0, #0 - beq _0207e724 - ldr r0, [sp, #0x14] - ldr r1, [r9, #4] - cmp r1, r0 - blt _0207e724 - add sp, sp, #0x7c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e63c: - ldrb r0, [r8, #0xe] - cmp r0, #0 - bne _0207e724 - cmp r4, #0 - bne _0207e694 - mov r0, r8 - ldr r3, [r0] - add r1, sp, #8 - ldr r3, [r3, #0x58] - mov r2, #5 - blx r3 - cmp r0, #0 - ldreqb r0, [r8, #8] - cmpeq r0, #0 - bne _0207e724 - mov r0, r8 - ldr r2, [r0] - add r1, sp, #8 - ldr r2, [r2, #0x60] - blx r2 - add sp, sp, #0x7c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e694: - add r2, sp, #0x10 - mov r0, r8 - mov r1, r9 - bl func_ov00_0207f104 - cmp r0, #0 - ldrne r0, [sp, #0x10] - addne sp, sp, #0x7c - ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - add r2, sp, #0x10 - mov r0, r8 - mov r1, r9 - bl func_ov00_0207f1f4 - cmp r0, #0 - beq _0207e6e0 - ldr r0, [sp, #0x10] - ldr r1, [r9, #4] - cmp r1, r0 - addge sp, sp, #0x7c - ldmgeia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e6e0: - mov r0, r8 - ldr r3, [r0] - add r1, sp, #8 - ldr r3, [r3, #0x58] - mov r2, #5 - blx r3 - cmp r0, #0 - ldreqb r0, [r8, #8] - cmpeq r0, #0 - bne _0207e724 - mov r0, r8 - ldr r2, [r0] - add r1, sp, #8 - ldr r2, [r2, #0x60] - blx r2 - add sp, sp, #0x7c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e724: - mov r0, #0x20 - str r0, [sp] - mov r1, #0 - str r1, [sp, #4] - ldr r0, _0207e930 ; =data_027e0f6c - ldr r3, _0207e934 ; =data_ov00_020ec824 - ldr r0, [r0] - mov r1, r9 - mov r2, #2 - bl func_01fff084 - ldr r4, _0207e938 ; =func_ov00_0207e968 - mov r5, r0 - ldr r3, _0207e93c ; =func_ov00_0207e96c - add r0, sp, #0x48 - mov r1, #3 - mov r2, #0x10 - str r4, [sp] - mov r6, #0x2000 - bl func_0204f614 - mov r7, #0 - sub r0, r7, #0x10000 - add r4, sp, #0x18 - str r7, [sp, #0x24] - str r7, [sp, #0x2c] - str r0, [sp, #0x28] - ldmia r9, {r0, r1, r2} - stmia r4, {r0, r1, r2} - cmp r5, #0 - ble _0207e8a0 - ldr r10, _0207e934 ; =data_ov00_020ec824 - ldr r9, _0207e930 ; =data_027e0f6c - mov r11, #0x4c -_0207e7a4: - mov r0, r7, lsl #0x1 - ldrh r1, [r10, r0] - ldr r2, [r9] - add r0, sp, #0x30 - ldr r3, [r2, #0x20] - mul r2, r1, r11 - add ip, r3, r2 - ldrh lr, [r3, r2] - ldrh r3, [ip, #2] - mov r1, r4 - add r2, sp, #0x24 - strh r3, [sp, #0x32] - strh lr, [sp, #0x30] - ldrh lr, [ip, #4] - add r3, sp, #0xc - strh lr, [sp, #0x34] - ldrh lr, [ip, #6] - strh lr, [sp, #0x36] - ldr lr, [ip, #8] - str lr, [sp, #0x38] - ldr lr, [ip, #0xc] - str lr, [sp, #0x3c] - ldr lr, [ip, #0x10] - str lr, [sp, #0x40] - ldr lr, [ip, #0x14] - str lr, [sp, #0x44] - ldr lr, [ip, #0x18] - str lr, [sp, #0x48] - ldr lr, [ip, #0x1c] - str lr, [sp, #0x4c] - ldr lr, [ip, #0x20] - str lr, [sp, #0x50] - ldr lr, [ip, #0x24] - str lr, [sp, #0x54] - ldr lr, [ip, #0x28] - str lr, [sp, #0x58] - ldr lr, [ip, #0x2c] - str lr, [sp, #0x5c] - ldr lr, [ip, #0x30] - str lr, [sp, #0x60] - ldr lr, [ip, #0x34] - str lr, [sp, #0x64] - ldr lr, [ip, #0x38] - str lr, [sp, #0x68] - ldr lr, [ip, #0x3c] - str lr, [sp, #0x6c] - ldr lr, [ip, #0x40] - str lr, [sp, #0x70] - ldr lr, [ip, #0x44] - str lr, [sp, #0x74] - ldr ip, [ip, #0x48] - str ip, [sp, #0x78] - bl func_01ffe904 - cmp r0, #0 - beq _0207e88c - ldr r0, [sp, #0xc] - cmp r0, r6 - movlt r6, r0 -_0207e88c: - add r0, r7, #1 - mov r0, r0, lsl #0x10 - cmp r5, r0, lsr #16 - mov r7, r0, lsr #0x10 - bgt _0207e7a4 -_0207e8a0: - cmp r6, #0x1000 - bgt _0207e8f4 - mvn r1, #0 - mov r0, r1, lsl #0x10 - umull r3, r2, r6, r0 - mla r2, r6, r1, r2 - mov r1, r6, asr #0x1f - mla r2, r1, r0, r2 - adds r3, r3, #0x800 - adc r1, r2, #0 - mov r4, r3, lsr #0xc - orr r4, r4, r1, lsl #20 - ldr r3, _0207e938 ; =func_ov00_0207e968 - ldr r5, [sp, #0x1c] - add r0, sp, #0x48 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - add sp, sp, #0x7c - add r0, r5, r4 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e8f4: - mov r0, r8 - ldr r2, [r0] - add r1, sp, #8 - ldr r2, [r2, #0x60] - blx r2 - mov r4, r0 - ldr r3, _0207e938 ; =func_ov00_0207e968 - add r0, sp, #0x48 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - mov r0, r4 - add sp, sp, #0x7c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_0207e4b8 -_0207e92c: .word data_027e0e60 -_0207e930: .word data_027e0f6c -_0207e934: .word data_ov00_020ec824 -_0207e938: .word func_ov00_0207e968 -_0207e93c: .word func_ov00_0207e96c - - .global func_ov00_0207e940 - arm_func_start func_ov00_0207e940 -func_ov00_0207e940: ; 0x0207e940 - stmdb sp!, {r4, lr} - mov r4, r0 - ldr r3, _0207e964 ; =func_ov00_0207e968 - add r0, r4, #0x18 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - mov r0, r4 - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_0207e940 -_0207e964: .word func_ov00_0207e968 - - .global func_ov00_0207e968 - arm_func_start func_ov00_0207e968 -func_ov00_0207e968: ; 0x0207e968 - bx lr - arm_func_end func_ov00_0207e968 - - .global func_ov00_0207e96c - arm_func_start func_ov00_0207e96c -func_ov00_0207e96c: ; 0x0207e96c - bx lr - arm_func_end func_ov00_0207e96c - - .global func_ov00_0207e970 - arm_func_start func_ov00_0207e970 -func_ov00_0207e970: ; 0x0207e970 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0xc4 - ldr r4, _0207ee00 ; =data_027e0e60 - mov r9, r1 - ldr r1, [r4] - mov r8, r0 - str r2, [sp, #8] - add r0, sp, #0xc - mov r2, r9 - mov r7, r3 - bl func_ov00_02083a1c - mov r0, r8 - ldr r2, [r0] - add r1, sp, #0xc - ldr r2, [r2, #0x54] - blx r2 - cmp r0, #0x1e - bgt _0207ea2c - bge _0207eb04 - cmp r0, #0x17 - bgt _0207ea10 - bge _0207eb04 - cmp r0, #9 - bgt _0207ea04 - cmp r0, #0 - addge pc, pc, r0, lsl #2 - b _0207ea9c -_0207e9dc: ; jump table - b _0207ea9c ; case 0 - b _0207eb04 ; case 1 - b _0207eb04 ; case 2 - b _0207eb04 ; case 3 - b _0207eb04 ; case 4 - b _0207ea9c ; case 5 - b _0207ea9c ; case 6 - b _0207ea9c ; case 7 - b _0207eb04 ; case 8 - b _0207eb04 ; case 9 -_0207ea04: - cmp r0, #0x16 - beq _0207eb04 - b _0207ea9c -_0207ea10: - cmp r0, #0x19 - bgt _0207ea20 - beq _0207eb04 - b _0207ea9c -_0207ea20: - cmp r0, #0x1d - beq _0207eb04 - b _0207ea9c -_0207ea2c: - cmp r0, #0x35 - bgt _0207ea84 - bge _0207eb04 - cmp r0, #0x29 - bgt _0207ea78 - subs r1, r0, #0x1f - addpl pc, pc, r1, lsl #2 - b _0207ea9c -_0207ea4c: ; jump table - b _0207eb04 ; case 0 - b _0207ea9c ; case 1 - b _0207ea9c ; case 2 - b _0207ea9c ; case 3 - b _0207ea9c ; case 4 - b _0207ea9c ; case 5 - b _0207ea9c ; case 6 - b _0207ea9c ; case 7 - b _0207eb04 ; case 8 - b _0207eb04 ; case 9 - b _0207eb04 ; case 10 -_0207ea78: - cmp r0, #0x30 - beq _0207eb04 - b _0207ea9c -_0207ea84: - cmp r0, #0x40 - bgt _0207ea94 - beq _0207eb04 - b _0207ea9c -_0207ea94: - cmp r0, #0x50 - beq _0207eb04 -_0207ea9c: - ldrb r0, [r8, #0xe] - cmp r0, #0 - bne _0207eb04 - mov r0, r8 - ldr r3, [r0] - add r1, sp, #0xc - ldr r3, [r3, #0x58] - mov r2, #5 - blx r3 - cmp r0, #0 - ldreqb r0, [r8, #8] - cmpeq r0, #0 - bne _0207eb04 - mov r0, r8 - ldr r2, [r0] - add r1, sp, #0xc - ldr r2, [r2, #0x60] - blx r2 - ldr r1, [sp, #8] - add sp, sp, #0xc4 - str r0, [r1] - mov r1, #0 - str r1, [r7] - mov r0, #0x1000 - stmib r7, {r0, r1} - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207eb04: - mov r0, #0x20 - str r0, [sp] - mov r1, #0 - str r1, [sp, #4] - ldr r0, _0207ee04 ; =data_027e0f6c - ldr r3, _0207ee08 ; =data_ov00_020ec864 - ldr r0, [r0] - mov r1, r9 - mov r2, #2 - bl func_01fff084 - ldr r5, _0207ee0c ; =func_ov00_0207e968 - mov r4, r0 - str r5, [sp] - ldr r3, _0207ee10 ; =func_ov00_0207e96c - add r0, sp, #0x90 - mov r1, #3 - mov r2, #0x10 - mov r5, #0x2000 - bl func_0204f614 - ldr r1, _0207ee0c ; =func_ov00_0207e968 - ldr r3, _0207ee10 ; =func_ov00_0207e96c - str r1, [sp] - add r0, sp, #0x44 - mov r1, #3 - mov r2, #0x10 - bl func_0204f614 - mov r6, #0 - sub r0, r6, #0x10000 - str r6, [sp, #0x20] - str r6, [sp, #0x28] - str r0, [sp, #0x24] - add r3, sp, #0x14 - ldmia r9, {r0, r1, r2} - cmp r4, #0 - stmia r3, {r0, r1, r2} - ble _0207ed48 - ldr r10, _0207ee08 ; =data_ov00_020ec864 - ldr r9, _0207ee04 ; =data_027e0f6c - mov r11, #0x4c -_0207eba0: - mov r0, r6, lsl #0x1 - ldrh r1, [r10, r0] - ldr r2, [r9] - add r0, sp, #0x78 - ldr r3, [r2, #0x20] - mul r2, r1, r11 - add ip, r3, r2 - ldrh lr, [r3, r2] - ldrh r3, [ip, #2] - add r1, sp, #0x14 - add r2, sp, #0x20 - strh r3, [sp, #0x7a] - strh lr, [sp, #0x78] - ldrh lr, [ip, #4] - add r3, sp, #0x10 - strh lr, [sp, #0x7c] - ldrh lr, [ip, #6] - strh lr, [sp, #0x7e] - ldr lr, [ip, #8] - str lr, [sp, #0x80] - ldr lr, [ip, #0xc] - str lr, [sp, #0x84] - ldr lr, [ip, #0x10] - str lr, [sp, #0x88] - ldr lr, [ip, #0x14] - str lr, [sp, #0x8c] - ldr lr, [ip, #0x18] - str lr, [sp, #0x90] - ldr lr, [ip, #0x1c] - str lr, [sp, #0x94] - ldr lr, [ip, #0x20] - str lr, [sp, #0x98] - ldr lr, [ip, #0x24] - str lr, [sp, #0x9c] - ldr lr, [ip, #0x28] - str lr, [sp, #0xa0] - ldr lr, [ip, #0x2c] - str lr, [sp, #0xa4] - ldr lr, [ip, #0x30] - str lr, [sp, #0xa8] - ldr lr, [ip, #0x34] - str lr, [sp, #0xac] - ldr lr, [ip, #0x38] - str lr, [sp, #0xb0] - ldr lr, [ip, #0x3c] - str lr, [sp, #0xb4] - ldr lr, [ip, #0x40] - str lr, [sp, #0xb8] - ldr lr, [ip, #0x44] - str lr, [sp, #0xbc] - ldr ip, [ip, #0x48] - str ip, [sp, #0xc0] - bl func_01ffe904 - cmp r0, #0 - beq _0207ed34 - ldr r1, [sp, #0x10] - cmp r1, r5 - bge _0207ed34 - ldrh r0, [sp, #0x78] - mov r5, r1 - ldrh r1, [sp, #0x7a] - strh r0, [sp, #0x2c] - ldrh r0, [sp, #0x7c] - strh r1, [sp, #0x2e] - ldrh r1, [sp, #0x7e] - strh r0, [sp, #0x30] - ldr r0, [sp, #0x80] - strh r1, [sp, #0x32] - str r0, [sp, #0x34] - ldr r1, [sp, #0x84] - ldr r0, [sp, #0x88] - str r1, [sp, #0x38] - str r0, [sp, #0x3c] - ldr r1, [sp, #0x8c] - ldr r0, [sp, #0x90] - str r1, [sp, #0x40] - str r0, [sp, #0x44] - ldr r1, [sp, #0x94] - ldr r0, [sp, #0x98] - str r1, [sp, #0x48] - str r0, [sp, #0x4c] - ldr r1, [sp, #0x9c] - ldr r0, [sp, #0xa0] - str r1, [sp, #0x50] - str r0, [sp, #0x54] - ldr r1, [sp, #0xa4] - ldr r0, [sp, #0xa8] - str r1, [sp, #0x58] - str r0, [sp, #0x5c] - ldr r1, [sp, #0xac] - ldr r0, [sp, #0xb0] - str r1, [sp, #0x60] - str r0, [sp, #0x64] - ldr r1, [sp, #0xb4] - ldr r0, [sp, #0xb8] - str r1, [sp, #0x68] - str r0, [sp, #0x6c] - ldr r1, [sp, #0xbc] - ldr r0, [sp, #0xc0] - str r1, [sp, #0x70] - str r0, [sp, #0x74] -_0207ed34: - add r0, r6, #1 - mov r0, r0, lsl #0x10 - cmp r4, r0, lsr #16 - mov r6, r0, lsr #0x10 - bgt _0207eba0 -_0207ed48: - cmp r5, #0x1000 - bgt _0207eda4 - mvn r1, #0 - mov r0, r1, lsl #0x10 - umull r3, r2, r5, r0 - mla r2, r5, r1, r2 - ldr r4, [sp, #0x34] - mov r1, r5, asr #0x1f - str r4, [r7] - ldr r4, [sp, #0x38] - mla r2, r1, r0, r2 - str r4, [r7, #4] - ldr r1, [sp, #0x3c] - adds r3, r3, #0x800 - str r1, [r7, #8] - adc r0, r2, #0 - mov r1, r3, lsr #0xc - orr r1, r1, r0, lsl #20 - ldr r2, [sp, #0x18] - ldr r0, [sp, #8] - add r1, r2, r1 - str r1, [r0] - b _0207edd0 -_0207eda4: - mov r0, r8 - ldr r2, [r0] - add r1, sp, #0xc - ldr r2, [r2, #0x60] - blx r2 - ldr r1, [sp, #8] - str r0, [r1] - mov r1, #0 - str r1, [r7] - mov r0, #0x1000 - stmib r7, {r0, r1} -_0207edd0: - ldr r3, _0207ee0c ; =func_ov00_0207e968 - add r0, sp, #0x44 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - ldr r3, _0207ee0c ; =func_ov00_0207e968 - add r0, sp, #0x90 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - add sp, sp, #0xc4 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_0207e970 -_0207ee00: .word data_027e0e60 -_0207ee04: .word data_027e0f6c -_0207ee08: .word data_ov00_020ec864 -_0207ee0c: .word func_ov00_0207e968 -_0207ee10: .word func_ov00_0207e96c - - .global func_ov00_0207ee14 - arm_func_start func_ov00_0207ee14 -func_ov00_0207ee14: ; 0x0207ee14 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x74 - ldr r0, _0207efdc ; =data_027e0e60 - mov r9, r1 - ldr r1, [r0] - add r0, sp, #8 - mov r2, r9 - bl func_ov00_02083a1c - mov r0, #0x20 - str r0, [sp] - mov r1, #0 - str r1, [sp, #4] - ldr r0, _0207efe0 ; =data_027e0f6c - ldr r3, _0207efe4 ; =data_ov00_020ec8a4 - ldr r0, [r0] - mov r1, r9 - mov r2, #2 - bl func_01fff084 - ldr r1, _0207efe8 ; =func_ov00_0207e968 - mov r5, r0 - str r1, [sp] - ldr r3, _0207efec ; =func_ov00_0207e96c - add r0, sp, #0x40 - mov r1, #3 - mov r2, #0x10 - mov r6, #0x2000 - ldr r7, _0207eff0 ; =0x0000ffff - bl func_0204f614 - mov r8, #0 - sub r0, r8, #0x10000 - str r8, [sp, #0x1c] - str r8, [sp, #0x24] - str r0, [sp, #0x20] - add r4, sp, #0x10 - ldmia r9, {r0, r1, r2} - cmp r5, #0 - stmia r4, {r0, r1, r2} - ble _0207efbc - ldr r10, _0207efe4 ; =data_ov00_020ec8a4 - ldr r9, _0207efe0 ; =data_027e0f6c - mov r11, #0x4c -_0207eeb8: - mov r0, r8, lsl #0x1 - ldrh r1, [r10, r0] - ldr r2, [r9] - add r0, sp, #0x28 - ldr r3, [r2, #0x20] - mul r2, r1, r11 - add ip, r3, r2 - ldrh lr, [r3, r2] - ldrh r3, [ip, #2] - mov r1, r4 - add r2, sp, #0x1c - strh r3, [sp, #0x2a] - strh lr, [sp, #0x28] - ldrh lr, [ip, #4] - add r3, sp, #0xc - strh lr, [sp, #0x2c] - ldrh lr, [ip, #6] - strh lr, [sp, #0x2e] - ldr lr, [ip, #8] - str lr, [sp, #0x30] - ldr lr, [ip, #0xc] - str lr, [sp, #0x34] - ldr lr, [ip, #0x10] - str lr, [sp, #0x38] - ldr lr, [ip, #0x14] - str lr, [sp, #0x3c] - ldr lr, [ip, #0x18] - str lr, [sp, #0x40] - ldr lr, [ip, #0x1c] - str lr, [sp, #0x44] - ldr lr, [ip, #0x20] - str lr, [sp, #0x48] - ldr lr, [ip, #0x24] - str lr, [sp, #0x4c] - ldr lr, [ip, #0x28] - str lr, [sp, #0x50] - ldr lr, [ip, #0x2c] - str lr, [sp, #0x54] - ldr lr, [ip, #0x30] - str lr, [sp, #0x58] - ldr lr, [ip, #0x34] - str lr, [sp, #0x5c] - ldr lr, [ip, #0x38] - str lr, [sp, #0x60] - ldr lr, [ip, #0x3c] - str lr, [sp, #0x64] - ldr lr, [ip, #0x40] - str lr, [sp, #0x68] - ldr lr, [ip, #0x44] - str lr, [sp, #0x6c] - ldr ip, [ip, #0x48] - str ip, [sp, #0x70] - bl func_01ffe904 - cmp r0, #0 - beq _0207efa8 - ldr r1, [sp, #0xc] - cmp r1, r6 - movlt r0, r8, lsl #0x1 - ldrlth r7, [r10, r0] - movlt r6, r1 -_0207efa8: - add r0, r8, #1 - mov r0, r0, lsl #0x10 - cmp r5, r0, lsr #16 - mov r8, r0, lsr #0x10 - bgt _0207eeb8 -_0207efbc: - ldr r3, _0207efe8 ; =func_ov00_0207e968 - add r0, sp, #0x40 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - mov r0, r7 - add sp, sp, #0x74 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_0207ee14 -_0207efdc: .word data_027e0e60 -_0207efe0: .word data_027e0f6c -_0207efe4: .word data_ov00_020ec8a4 -_0207efe8: .word func_ov00_0207e968 -_0207efec: .word func_ov00_0207e96c -_0207eff0: .word 0x0000ffff - - .global func_ov00_0207eff4 - arm_func_start func_ov00_0207eff4 -func_ov00_0207eff4: ; 0x0207eff4 - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - sub sp, sp, #0x24 - ldr r0, _0207f0f4 ; =data_027e0e60 - mov r8, r1 - ldr r1, [r0] - add r0, sp, #8 - mov r2, r8 - bl func_ov00_02083a1c - add r4, sp, #0xc - ldmia r8, {r0, r1, r2} - stmia r4, {r0, r1, r2} - add r3, sp, #0x18 - ldmia r8, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r4 - mov r1, #0x800 - bl func_ov00_0208ee00 - mov r0, #0x20 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _0207f0f8 ; =data_027e0f6c - ldr r3, _0207f0fc ; =data_ov00_020ec8e4 - ldr r0, [r0] - mov r1, r4 - mov r2, #8 - bl func_01fff264 - mov r5, r0 - cmp r5, #0 - mov r6, #0 - ble _0207f0e8 - ldr r4, _0207f0fc ; =data_ov00_020ec8e4 - ldr r9, _0207f0f8 ; =data_027e0f6c -_0207f078: - mov r0, r6, lsl #0x1 - ldr r1, [r9] - ldrh r0, [r4, r0] - ldr r1, [r1, #0x40] - ldr r7, [r1, r0, lsl #2] - cmp r7, #0 - ldrneb r0, [r7, #4] - cmpne r0, #0 - ldrneb r0, [r7, #5] - cmpne r0, #0 - beq _0207f0dc - ldr r0, [r7, #0xc] - ands r0, r0, #0x1f - cmpne r0, #1 - cmpne r0, #2 - beq _0207f0dc - mov r0, r7 - ldr r2, [r0] - mov r1, r8 - ldr r2, [r2, #0x48] - blx r2 - cmp r0, #0 - addne sp, sp, #0x24 - movne r0, r7 - ldmneia sp!, {r4, r5, r6, r7, r8, r9, pc} -_0207f0dc: - add r6, r6, #1 - cmp r6, r5 - blt _0207f078 -_0207f0e8: - mov r0, #0 - add sp, sp, #0x24 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} - .align 2, 0 - arm_func_end func_ov00_0207eff4 -_0207f0f4: .word data_027e0e60 -_0207f0f8: .word data_027e0f6c -_0207f0fc: .word data_ov00_020ec8e4 - - .global func_ov00_0207f100 - arm_func_start func_ov00_0207f100 -func_ov00_0207f100: ; 0x0207f100 - bx lr - arm_func_end func_ov00_0207f100 - - .global func_ov00_0207f104 - arm_func_start func_ov00_0207f104 -func_ov00_0207f104: ; 0x0207f104 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - ldr r3, _0207f1f0 ; =data_027e0e60 - mov r5, r1 - ldr r1, [r3] - mov r6, r0 - mov r4, r2 - add r0, sp, #0 - mov r2, r5 - bl func_ov00_02083a1c - mov r0, r6 - ldr r2, [r0] - add r1, sp, #0 - ldr r2, [r2, #0x78] - blx r2 - movs r7, r0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, [r0] - ldr r1, [r1, #0x58] - blx r1 - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - mov r0, r7 - ldr r1, [r0] - ldr r1, [r1, #0x54] - blx r1 - cmp r0, #0 - moveq r0, #0 - ldrneb r0, [r0, #5] - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - mov r0, r7 - mov r1, r5 - bl func_ov00_0208b79c - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - mov r0, r7 - ldr r1, [r0] - ldr r1, [r1, #0x54] - blx r1 - cmp r0, #0 - moveq r5, #0 - beq _0207f1cc - ldr r1, [r0] - ldr r1, [r1, #0x44] - blx r1 - mov r5, r0 -_0207f1cc: - mov r0, r6 - ldr r2, [r0] - add r1, sp, #0 - ldr r2, [r2, #0x60] - blx r2 - add r0, r0, r5 - str r0, [r4] - mov r0, #1 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - .align 2, 0 - arm_func_end func_ov00_0207f104 -_0207f1f0: .word data_027e0e60 - - .global func_ov00_0207f1f4 - arm_func_start func_ov00_0207f1f4 -func_ov00_0207f1f4: ; 0x0207f1f4 - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, lr} - sub sp, sp, #0x3c - ldr r0, _0207f318 ; =data_027e0e60 - mov r9, r1 - ldr r1, [r0] - mov r8, r2 - add r0, sp, #8 - mov r2, r9 - bl func_ov00_02083a1c - add r4, sp, #0x24 - ldmia r9, {r0, r1, r2} - stmia r4, {r0, r1, r2} - add r3, sp, #0x30 - ldmia r9, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r4 - mov r1, #0x800 - bl func_ov00_0208ee00 - mov r0, #0x20 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _0207f31c ; =data_027e0f6c - ldr r3, _0207f320 ; =data_ov00_020ec924 - ldr r0, [r0] - mov r1, r4 - mov r2, #8 - bl func_01fff264 - mov r5, r0 - cmp r5, #0 - mov r6, #0 - ble _0207f30c - ldr r4, _0207f320 ; =data_ov00_020ec924 - ldr r10, _0207f31c ; =data_027e0f6c -_0207f27c: - mov r0, r6, lsl #0x1 - ldr r1, [r10] - ldrh r0, [r4, r0] - ldr r1, [r1, #0x40] - ldr r7, [r1, r0, lsl #2] - cmp r7, #0 - ldrneb r0, [r7, #4] - cmpne r0, #0 - ldrneb r0, [r7, #5] - cmpne r0, #0 - beq _0207f300 - ldr r0, [r7, #0xc] - ands r0, r0, #0x1f - cmpne r0, #1 - cmpne r0, #2 - beq _0207f300 - mov r0, r7 - ldr r2, [r0] - mov r1, r9 - ldr r2, [r2, #0x48] - blx r2 - cmp r0, #0 - beq _0207f300 - mov r0, r7 - ldr r2, [r0] - add r1, sp, #0xc - ldr r2, [r2, #0x2c] - blx r2 - ldr r1, [sp, #0x1c] - add sp, sp, #0x3c - mov r0, #1 - str r1, [r8] - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} -_0207f300: - add r6, r6, #1 - cmp r6, r5 - blt _0207f27c -_0207f30c: - mov r0, #0 - add sp, sp, #0x3c - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} - .align 2, 0 - arm_func_end func_ov00_0207f1f4 -_0207f318: .word data_027e0e60 -_0207f31c: .word data_027e0f6c -_0207f320: .word data_ov00_020ec924 - - .global func_ov00_0207f324 - arm_func_start func_ov00_0207f324 -func_ov00_0207f324: ; 0x0207f324 - mov r0, #0 - bx lr - arm_func_end func_ov00_0207f324 - - .global func_ov00_0207f32c - arm_func_start func_ov00_0207f32c -func_ov00_0207f32c: ; 0x0207f32c - mov r0, #0 - bx lr - arm_func_end func_ov00_0207f32c - - .global func_ov00_0207f334 - arm_func_start func_ov00_0207f334 -func_ov00_0207f334: ; 0x0207f334 - bx lr - arm_func_end func_ov00_0207f334 - - .global func_ov00_0207f338 - arm_func_start func_ov00_0207f338 -func_ov00_0207f338: ; 0x0207f338 - bx lr - arm_func_end func_ov00_0207f338 - - .global func_ov00_0207f33c - arm_func_start func_ov00_0207f33c -func_ov00_0207f33c: ; 0x0207f33c - mov r0, #0 - bx lr - arm_func_end func_ov00_0207f33c - - .global func_ov00_0207f344 - arm_func_start func_ov00_0207f344 -func_ov00_0207f344: ; 0x0207f344 - bx lr - arm_func_end func_ov00_0207f344 - - .global func_ov00_0207f348 - arm_func_start func_ov00_0207f348 -func_ov00_0207f348: ; 0x0207f348 - bx lr - arm_func_end func_ov00_0207f348 - - .global func_ov00_0207f34c - arm_func_start func_ov00_0207f34c -func_ov00_0207f34c: ; 0x0207f34c - mov r0, #0 - bx lr - arm_func_end func_ov00_0207f34c - - .global func_ov00_0207f354 - arm_func_start func_ov00_0207f354 -func_ov00_0207f354: ; 0x0207f354 - mov r0, #1 - bx lr - arm_func_end func_ov00_0207f354 - - .global func_ov00_0207f35c - arm_func_start func_ov00_0207f35c -func_ov00_0207f35c: ; 0x0207f35c - mov r0, #1 - bx lr - arm_func_end func_ov00_0207f35c - - .global func_ov00_0207f364 - arm_func_start func_ov00_0207f364 -func_ov00_0207f364: ; 0x0207f364 - stmdb sp!, {r3, lr} - ldrb r3, [r1, #0x15] - ldrb r2, [r1, #0x14] - add r1, sp, #0 - strb r3, [sp, #1] - strb r2, [sp] - ldr r2, [r0] - ldr r2, [r2, #0x80] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207f364 - - .global func_ov00_0207f38c - arm_func_start func_ov00_0207f38c -func_ov00_0207f38c: ; 0x0207f38c - stmdb sp!, {r4, lr} - ldr r2, [r0] - mov r4, r1 - ldr r2, [r2, #0x84] - blx r2 - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r4, pc} - ldr r0, _0207f3c0 ; =data_027e0f68 - mov r1, r4 - ldr r0, [r0] - bl func_ov00_0208d820 - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_0207f38c -_0207f3c0: .word data_027e0f68 - - .global func_ov00_0207f3c4 - arm_func_start func_ov00_0207f3c4 -func_ov00_0207f3c4: ; 0x0207f3c4 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - ldr r3, [r0] - mov r6, r0 - ldr r3, [r3, #0x54] - mov r5, r1 - mov r4, r2 - blx r3 - mov r7, r0 - cmp r7, r4 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - mov r0, r6 - ldr r3, [r0] - mov r1, r5 - ldr r3, [r3, #0xbc] - mov r2, r4 - blx r3 - mov r0, r6 - ldr r2, [r0] - mov r1, r5 - ldr r2, [r2, #0x5c] - blx r2 - mov r1, r0 - cmp r4, #0x14 - bne _0207f448 - mov r0, r6 - ldr r3, [r0] - sub r1, r1, #3 - mov r2, r1, lsl #0x18 - ldr r3, [r3, #0xc0] - mov r1, r5 - mov r2, r2, asr #0x18 - blx r3 - b _0207f470 -_0207f448: - cmp r7, #0x14 - bne _0207f470 - mov r0, r6 - ldr r3, [r0] - add r1, r1, #3 - mov r2, r1, lsl #0x18 - ldr r3, [r3, #0xc0] - mov r1, r5 - mov r2, r2, asr #0x18 - blx r3 -_0207f470: - mov r0, r6 - ldr r2, [r0] - mov r1, r5 - ldr r2, [r2, #0x78] - blx r2 - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x44] - blx r2 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end func_ov00_0207f3c4 - - .global func_ov00_0207f4a0 - arm_func_start func_ov00_0207f4a0 -func_ov00_0207f4a0: ; 0x0207f4a0 - bx lr - arm_func_end func_ov00_0207f4a0 - - .global func_ov00_0207f4a4 - arm_func_start func_ov00_0207f4a4 -func_ov00_0207f4a4: ; 0x0207f4a4 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - ldrsh r3, [r1, #2] - ldrsh r4, [r1] - add r3, r3, r3, lsr #31 - add ip, r4, r4, lsr #31 - mov r4, r3, asr #0x1 - mov r3, ip, asr #0x1 - strb r3, [sp] - strb r4, [sp, #1] - ldrsh r4, [r1] - ldrsh ip, [r1, #2] - mov r3, r4, lsr #0x1f - mov lr, ip, lsr #0x1f - rsb r1, r3, r4, lsl #31 - rsb ip, lr, ip, lsl #31 - adds r1, r3, r1, ror #31 - add r3, lr, ip, ror #31 - cmpeq r3, #0 - moveq r2, #0 - beq _0207f524 - cmp r1, #1 - cmpeq r3, #0 - moveq r2, #1 - beq _0207f524 - cmp r1, #1 - cmpeq r3, #1 - moveq r2, #3 - beq _0207f524 - cmp r1, #0 - cmpeq r3, #1 - moveq r2, #2 -_0207f524: - ldr r3, [r0] - add r1, sp, #0 - ldr r3, [r3, #0x58] - blx r3 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_0207f4a4 - - .global func_ov00_0207f53c - arm_func_start func_ov00_0207f53c -func_ov00_0207f53c: ; 0x0207f53c - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r0, #0 - strh r0, [r5] - mov r4, r2 - strh r0, [r5, #2] - ldr r0, [r4] - mov r1, #0x800 - bl Divide - add r0, r0, #0x800 - mov r0, r0, asr #0xc - strh r0, [r5] - ldr r0, [r4, #8] - mov r1, #0x800 - bl Divide - add r0, r0, #0x800 - mov r0, r0, asr #0xc - strh r0, [r5, #2] - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207f53c - - .global func_ov00_0207f588 - arm_func_start func_ov00_0207f588 -func_ov00_0207f588: ; 0x0207f588 - mov r1, #0 - strh r1, [r0] - strh r1, [r0, #2] - cmp r3, #3 - addls pc, pc, r3, lsl #2 - bx lr -_0207f5a0: ; jump table - b _0207f5b0 ; case 0 - b _0207f5cc ; case 1 - b _0207f5ec ; case 2 - b _0207f60c ; case 3 -_0207f5b0: - ldrb r1, [r2] - mov r1, r1, lsl #0x1 - strh r1, [r0] - ldrb r1, [r2, #1] - mov r1, r1, lsl #0x1 - strh r1, [r0, #2] - bx lr -_0207f5cc: - ldrb r1, [r2] - mov r1, r1, lsl #0x1 - add r1, r1, #1 - strh r1, [r0] - ldrb r1, [r2, #1] - mov r1, r1, lsl #0x1 - strh r1, [r0, #2] - bx lr -_0207f5ec: - ldrb r1, [r2] - mov r1, r1, lsl #0x1 - strh r1, [r0] - ldrb r1, [r2, #1] - mov r1, r1, lsl #0x1 - add r1, r1, #1 - strh r1, [r0, #2] - bx lr -_0207f60c: - ldrb r1, [r2] - mov r1, r1, lsl #0x1 - add r1, r1, #1 - strh r1, [r0] - ldrb r1, [r2, #1] - mov r1, r1, lsl #0x1 - add r1, r1, #1 - strh r1, [r0, #2] - bx lr - arm_func_end func_ov00_0207f588 - - .global func_ov00_0207f630 - arm_func_start func_ov00_0207f630 -func_ov00_0207f630: ; 0x0207f630 - stmdb sp!, {r4, lr} - ldrsh r3, [r1, #2] - ldrsh r1, [r1] - mov r0, #0x800 - mov lr, r3, lsl #0xc - mov ip, lr, asr #0x1f - mov r3, r1, lsl #0xc - mov ip, ip, lsl #0xb - mov r1, r3, asr #0x1f - mov r1, r1, lsl #0xb - adds r4, r0, lr, lsl #11 - orr ip, ip, lr, lsr #21 - adc lr, ip, #0 - adds ip, r0, r3, lsl #11 - orr r1, r1, r3, lsr #21 - mov r3, r4, lsr #0xc - adc r0, r1, #0 - mov r1, ip, lsr #0xc - orr r1, r1, r0, lsl #20 - str r1, [r2] - mov r0, #0 - str r0, [r2, #4] - orr r3, r3, lr, lsl #20 - str r3, [r2, #8] - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0207f630 - - .global func_ov00_0207f694 - arm_func_start func_ov00_0207f694 -func_ov00_0207f694: ; 0x0207f694 - ldr r0, [r0, #0xf4] - add r0, r0, r1, lsl #12 - bx lr - arm_func_end func_ov00_0207f694 - - .global func_ov00_0207f6a0 - arm_func_start func_ov00_0207f6a0 -func_ov00_0207f6a0: ; 0x0207f6a0 - ldr r0, [r0, #0xfc] - add r0, r0, r1, lsl #12 - bx lr - arm_func_end func_ov00_0207f6a0 - - .global func_ov00_0207f6ac - arm_func_start func_ov00_0207f6ac -func_ov00_0207f6ac: ; 0x0207f6ac - stmdb sp!, {r3, lr} - bl func_ov00_0207f694 - add r0, r0, #0x1000 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207f6ac - - .global func_ov00_0207f6bc - arm_func_start func_ov00_0207f6bc -func_ov00_0207f6bc: ; 0x0207f6bc - stmdb sp!, {r3, lr} - bl func_ov00_0207f6a0 - add r0, r0, #0x1000 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207f6bc - - .global func_ov00_0207f6cc - arm_func_start func_ov00_0207f6cc -func_ov00_0207f6cc: ; 0x0207f6cc - stmdb sp!, {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x18 - mov r7, r1 - ldrb r1, [r7] - mov r6, r0 - mov r5, r2 - bl func_ov00_0207f694 - ldrb r1, [r7, #1] - mov r0, r6 - bl func_ov00_0207f6a0 - mov r4, r0 - ldrb r1, [r7] - mov r0, r6 - bl func_ov00_0207f694 - ldr r2, _0207f774 ; =0xffffeccd - str r0, [sp, #0xc] - ldrb r1, [r7, #1] - mov r0, r6 - str r2, [sp, #0x10] - str r4, [sp, #0x14] - bl func_ov00_0207f6bc - mov r4, r0 - mov r0, r6 - mov r1, r7 - ldr r2, [r0] - ldr r2, [r2, #0x60] - blx r2 - ldrb r1, [r7] - mov r7, r0 - mov r0, r6 - bl func_ov00_0207f6ac - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x10] - str r2, [r5] - str r1, [r5, #4] - ldr r1, [sp, #0x14] - str r1, [r5, #8] - str r0, [r5, #0xc] - str r7, [r5, #0x10] - str r4, [r5, #0x14] - add sp, sp, #0x18 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - .align 2, 0 - arm_func_end func_ov00_0207f6cc -_0207f774: .word 0xffffeccd - - .global func_ov00_0207f778 - arm_func_start func_ov00_0207f778 -func_ov00_0207f778: ; 0x0207f778 - ldr r2, [r0, #0xf4] - ldrh r0, [r0, #0x28] - sub r1, r1, r2 - movs r1, r1, asr #0xc - movmi r1, #0 - sub r0, r0, #1 - cmp r1, r0 - movge r1, r0 - mov r0, r1 - bx lr - arm_func_end func_ov00_0207f778 - - .global func_ov00_0207f7a0 - arm_func_start func_ov00_0207f7a0 -func_ov00_0207f7a0: ; 0x0207f7a0 - ldr r2, [r0, #0xfc] - ldrh r0, [r0, #0x2a] - sub r1, r1, r2 - movs r1, r1, asr #0xc - movmi r1, #0 - sub r0, r0, #1 - cmp r1, r0 - movge r1, r0 - mov r0, r1 - bx lr - arm_func_end func_ov00_0207f7a0 - - .global func_ov00_0207f7c8 - arm_func_start func_ov00_0207f7c8 -func_ov00_0207f7c8: ; 0x0207f7c8 - ldr r0, [r0, #0xf4] - sub r0, r1, r0 - mov r0, r0, asr #0xc - bx lr - arm_func_end func_ov00_0207f7c8 - - .global func_ov00_0207f7d8 - arm_func_start func_ov00_0207f7d8 -func_ov00_0207f7d8: ; 0x0207f7d8 - ldr r0, [r0, #0xfc] - sub r0, r1, r0 - mov r0, r0, asr #0xc - bx lr - arm_func_end func_ov00_0207f7d8 - - .global func_ov00_0207f7e8 - arm_func_start func_ov00_0207f7e8 -func_ov00_0207f7e8: ; 0x0207f7e8 - stmdb sp!, {r4, r5, r6, lr} - mov r5, r1 - ldr r1, [r5] - mov r6, r0 - bl func_ov00_0207f7c8 - mov r4, r0 - ldr r1, [r5, #8] - mov r0, r6 - bl func_ov00_0207f7d8 - cmp r4, #0 - blt _0207f834 - ldrh r1, [r6, #0x28] - cmp r4, r1 - bge _0207f834 - cmp r0, #0 - blt _0207f834 - ldrh r1, [r6, #0x2a] - cmp r0, r1 - blt _0207f83c -_0207f834: - mov r0, #0 - ldmia sp!, {r4, r5, r6, pc} -_0207f83c: - mov r0, #1 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_0207f7e8 - - .global func_ov00_0207f844 - arm_func_start func_ov00_0207f844 -func_ov00_0207f844: ; 0x0207f844 - stmdb sp!, {r3, lr} - mov lr, #0 - strb lr, [sp, #1] - ldr ip, [r0, #0x104] - ldr r2, [r0, #0x108] - mov r3, r1 - cmp ip, r2 - bhs _0207f8a0 - add r1, ip, #1 - str r1, [r0, #0x104] - ldr r2, [r0, #0x100] - sub r1, r1, #1 - mov r0, #0x14 - mla ip, r1, r0, r2 - ldmia r3, {r0, r1, r2} - stmia ip, {r0, r1, r2} - ldrsh r0, [r3, #0xc] - strh r0, [ip, #0xc] - ldrb r0, [r3, #0xe] - strb r0, [ip, #0xe] - ldr r0, [r3, #0x10] - str r0, [ip, #0x10] - ldmia sp!, {r3, pc} -_0207f8a0: - strb lr, [sp] - sub r3, sp, #4 - and r2, lr, #0xff - strb r2, [r3] - ldr r2, [r3] - add r0, r0, #0x100 - bl func_ov00_02081040 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207f844 - - .global func_ov00_0207f8c0 - arm_func_start func_ov00_0207f8c0 -func_ov00_0207f8c0: ; 0x0207f8c0 - sub sp, sp, #0x18 - ldr r3, [r0, #0x100] - ldr r2, [r0, #0x104] - mov r0, #0x14 - mla ip, r2, r0, r3 - str r1, [sp, #0xc] - str r1, [sp] - str ip, [sp, #0x10] - str ip, [sp, #4] - str r3, [sp, #0x14] - str r3, [sp, #8] - mov r2, r3 - b _0207f8fc -_0207f8f4: - add r2, r2, #0x14 - str r2, [sp, #8] -_0207f8fc: - cmp r2, ip - ldrneb r0, [r2, #0xe] - cmpne r1, r0 - bne _0207f8f4 - ldr r0, [sp, #8] - cmp r0, ip - moveq r0, r3 - ldrne r0, [sp, #8] - add sp, sp, #0x18 - bx lr - arm_func_end func_ov00_0207f8c0 - - .global func_ov00_0207f924 - arm_func_start func_ov00_0207f924 -func_ov00_0207f924: ; 0x0207f924 - add r1, r0, r1 - ldrb r0, [r1, #0x18] - strb r0, [r1, #0x16] - bx lr - arm_func_end func_ov00_0207f924 - - .global func_ov00_0207f934 - arm_func_start func_ov00_0207f934 -func_ov00_0207f934: ; 0x0207f934 - ldr r0, [r0, #0x140] - cmp r0, #0 - moveq r0, #0 - ldrne r0, [r0, #0x60] - bx lr - arm_func_end func_ov00_0207f934 - - .global func_ov00_0207f948 - arm_func_start func_ov00_0207f948 -func_ov00_0207f948: ; 0x0207f948 - ldr r0, [r0, #0x140] - cmp r0, #0 - strne r1, [r0, #0x60] - bx lr - arm_func_end func_ov00_0207f948 - - .global func_ov00_0207f958 - arm_func_start func_ov00_0207f958 -func_ov00_0207f958: ; 0x0207f958 - stmdb sp!, {r3, r4, r5, lr} - sub sp, sp, #8 - mov r2, #0 - str r2, [sp, #4] - mov r4, r1 - ldrb r1, [r4, #5] - mov r5, r0 - mov r2, #4 - cmp r1, #0 - beq _0207f9a8 - ldr r1, _0207faa4 ; =data_027e0ce0 - mov r0, #0x5c - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _0207f9a0 - mov r1, r4 - bl func_ov00_02095d58 -_0207f9a0: - str r0, [sp, #4] - b _0207fa34 -_0207f9a8: - ldrb r0, [r4, #9] - cmp r0, #1 - bne _0207f9dc - ldr r1, _0207faa4 ; =data_027e0ce0 - mov r0, #0xe0 - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _0207f9d4 - mov r1, r4 - bl func_ov00_0209581c -_0207f9d4: - str r0, [sp, #4] - b _0207fa34 -_0207f9dc: - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _0207fa10 - ldr r1, _0207faa4 ; =data_027e0ce0 - mov r0, #0x28 - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _0207fa08 - mov r1, r4 - bl func_ov00_0209564c -_0207fa08: - str r0, [sp, #4] - b _0207fa34 -_0207fa10: - ldr r1, _0207faa4 ; =data_027e0ce0 - mov r0, #0x2c - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _0207fa30 - mov r1, r4 - bl func_ov00_02095554 -_0207fa30: - str r0, [sp, #4] -_0207fa34: - ldr r0, [sp, #4] - ldr r1, [r0] - ldr r1, [r1, #8] - blx r1 - mov r2, #0 - strb r2, [sp, #1] - ldr r1, [r5, #0x110] - ldr r0, [r5, #0x114] - cmp r1, r0 - bhs _0207fa7c - add r0, r1, #1 - str r0, [r5, #0x110] - ldr r2, [sp, #4] - ldr r1, [r5, #0x10c] - sub r0, r0, #1 - str r2, [r1, r0, lsl #2] - add sp, sp, #8 - ldmia sp!, {r3, r4, r5, pc} -_0207fa7c: - strb r2, [sp] - sub r1, sp, #4 - and r0, r2, #0xff - strb r0, [r1] - ldr r2, [r1] - add r1, sp, #4 - add r0, r5, #0x10c - bl func_ov00_02080f64 - add sp, sp, #8 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_0207f958 -_0207faa4: .word data_027e0ce0 - - .global func_ov00_0207faa8 - arm_func_start func_ov00_0207faa8 -func_ov00_0207faa8: ; 0x0207faa8 - bx lr - arm_func_end func_ov00_0207faa8 - - .global func_ov00_0207faac - arm_func_start func_ov00_0207faac -func_ov00_0207faac: ; 0x0207faac - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - sub sp, sp, #0x18 - mov r9, r0 - ldr r6, [r9, #0x10c] - ldr r0, [r9, #0x110] - mov r8, r1 - add r0, r6, r0, lsl #2 - mov r7, r2 - cmp r6, r0 - mov r5, #0 - beq _0207fb50 - add r4, sp, #0 -_0207fadc: - ldr r0, [r6] - ldrb r1, [r0, #5] - cmp r8, r1 - bne _0207fb38 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x18] - blx r2 - cmp r0, #0 - beq _0207fb38 - ldr r0, [sp] - add r5, r5, #1 - str r0, [r7] - ldr r0, [sp, #4] - str r0, [r7, #4] - ldr r0, [sp, #8] - str r0, [r7, #8] - ldr r0, [sp, #0xc] - str r0, [r7, #0xc] - ldr r0, [sp, #0x10] - str r0, [r7, #0x10] - ldr r0, [sp, #0x14] - str r0, [r7, #0x14] -_0207fb38: - ldr r1, [r9, #0x10c] - ldr r0, [r9, #0x110] - add r6, r6, #4 - add r0, r1, r0, lsl #2 - cmp r6, r0 - bne _0207fadc -_0207fb50: - mov r0, r5 - add sp, sp, #0x18 - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - arm_func_end func_ov00_0207faac - - .global func_ov00_0207fb5c - arm_func_start func_ov00_0207fb5c -func_ov00_0207fb5c: ; 0x0207fb5c - mov r0, #0 - bx lr - arm_func_end func_ov00_0207fb5c - - .global func_ov00_0207fb64 - arm_func_start func_ov00_0207fb64 -func_ov00_0207fb64: ; 0x0207fb64 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - sub sp, sp, #0x18 - mov r10, r0 - ldr r6, [r10, #0x10c] - ldr r0, [r10, #0x110] - mov r9, r1 - add r0, r6, r0, lsl #2 - mov r8, r2 - mov r7, r3 - cmp r6, r0 - mov r5, #0 - beq _0207fc20 - add r4, sp, #0 -_0207fb98: - ldr r0, [r6] - ldrb r1, [r0, #5] - cmp r9, r1 - bne _0207fbf8 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x18] - blx r2 - cmp r0, #0 - beq _0207fbf8 - ldr r0, [sp] - add r5, r5, #1 - str r0, [r8] - ldr r0, [sp, #4] - str r0, [r8, #4] - ldr r0, [sp, #8] - str r0, [r8, #8] - ldr r0, [sp, #0xc] - str r0, [r8, #0xc] - ldr r0, [sp, #0x10] - str r0, [r8, #0x10] - ldr r0, [sp, #0x14] - str r0, [r8, #0x14] - add r8, r8, #0x18 -_0207fbf8: - cmp r5, r7 - addhs sp, sp, #0x18 - movhs r0, r5 - ldmhsia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - ldr r1, [r10, #0x10c] - ldr r0, [r10, #0x110] - add r6, r6, #4 - add r0, r1, r0, lsl #2 - cmp r6, r0 - bne _0207fb98 -_0207fc20: - mov r0, r5 - add sp, sp, #0x18 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - arm_func_end func_ov00_0207fb64 - - .global func_ov00_0207fc2c - arm_func_start func_ov00_0207fc2c -func_ov00_0207fc2c: ; 0x0207fc2c - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r6, r0 - ldr r4, [r6, #0x10c] - ldr r0, [r6, #0x110] - mov r5, r1 - add r0, r4, r0, lsl #2 - cmp r4, r0 - beq _0207fc88 -_0207fc4c: - ldr r7, [r4] - mov r1, r5 - mov r0, r7 - ldr r2, [r0] - ldr r2, [r2, #0x14] - blx r2 - cmp r0, #0 - ldrneb r0, [r7, #5] - ldmneia sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, [r6, #0x10c] - ldr r0, [r6, #0x110] - add r4, r4, #4 - add r0, r1, r0, lsl #2 - cmp r4, r0 - bne _0207fc4c -_0207fc88: - mov r0, #0 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end func_ov00_0207fc2c - - .global func_ov00_0207fc90 - arm_func_start func_ov00_0207fc90 -func_ov00_0207fc90: ; 0x0207fc90 - mov r0, #0 - bx lr - arm_func_end func_ov00_0207fc90 - - .global func_ov00_0207fc98 - arm_func_start func_ov00_0207fc98 -func_ov00_0207fc98: ; 0x0207fc98 - ldr ip, [r0, #0x10c] - ldr r2, [r0, #0x110] - add r2, ip, r2, lsl #2 - cmp ip, r2 - beq _0207fcd8 -_0207fcac: - ldr r3, [ip] - ldrb r2, [r3, #5] - cmp r1, r2 - moveq r0, r3 - bxeq lr - ldr r3, [r0, #0x10c] - ldr r2, [r0, #0x110] - add ip, ip, #4 - add r2, r3, r2, lsl #2 - cmp ip, r2 - bne _0207fcac -_0207fcd8: - mov r0, #0 - bx lr - arm_func_end func_ov00_0207fc98 - - .global func_ov00_0207fce0 - arm_func_start func_ov00_0207fce0 -func_ov00_0207fce0: ; 0x0207fce0 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - mov r10, r0 - ldr r6, [r10, #0x10c] - ldr r0, [r10, #0x110] - mov r9, r1 - add r0, r6, r0, lsl #2 - mov r8, r2 - mov r7, r3 - cmp r6, r0 - mov r4, #0 - beq _0207fd50 -_0207fd0c: - cmp r4, r7 - bhs _0207fd50 - ldr r5, [r6] - mov r1, r9 - mov r0, r5 - ldr r2, [r0] - ldr r2, [r2, #0x14] - blx r2 - cmp r0, #0 - strne r5, [r8, r4, lsl #2] - ldr r1, [r10, #0x10c] - ldr r0, [r10, #0x110] - add r6, r6, #4 - add r0, r1, r0, lsl #2 - addne r4, r4, #1 - cmp r6, r0 - bne _0207fd0c -_0207fd50: - mov r0, r4 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - arm_func_end func_ov00_0207fce0 - - .global func_ov00_0207fd58 - arm_func_start func_ov00_0207fd58 -func_ov00_0207fd58: ; 0x0207fd58 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - movs r6, r1 - mov r7, r0 - mov r5, r2 - moveq r0, #1 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - ldr r4, [r7, #0x10c] - ldr r0, [r7, #0x110] - add r0, r4, r0, lsl #2 - cmp r4, r0 - beq _0207fdc8 -_0207fd84: - ldr r0, [r4] - ldrb r1, [r0, #5] - cmp r6, r1 - bne _0207fdb0 - ldr r2, [r0] - mov r1, r5 - ldr r2, [r2, #0x14] - blx r2 - cmp r0, #0 - movne r0, #1 - ldmneia sp!, {r3, r4, r5, r6, r7, pc} -_0207fdb0: - ldr r1, [r7, #0x10c] - ldr r0, [r7, #0x110] - add r4, r4, #4 - add r0, r1, r0, lsl #2 - cmp r4, r0 - bne _0207fd84 -_0207fdc8: - mov r0, #0 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end func_ov00_0207fd58 - - .global func_ov00_0207fdd0 - arm_func_start func_ov00_0207fdd0 -func_ov00_0207fdd0: ; 0x0207fdd0 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r7, r0 - ldr r5, [r7, #0x10c] - ldr r0, [r7, #0x110] - mov r6, r1 - add r0, r5, r0, lsl #2 - cmp r5, r0 - beq _0207fe2c - mov r4, #1 -_0207fdf4: - ldr r0, [r5] - ldrb r1, [r0, #5] - cmp r6, r1 - bne _0207fe14 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0xc] - blx r2 -_0207fe14: - ldr r1, [r7, #0x10c] - ldr r0, [r7, #0x110] - add r5, r5, #4 - add r0, r1, r0, lsl #2 - cmp r5, r0 - bne _0207fdf4 -_0207fe2c: - mov r0, #1 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end func_ov00_0207fdd0 - - .global func_ov00_0207fe34 - arm_func_start func_ov00_0207fe34 -func_ov00_0207fe34: ; 0x0207fe34 - mov r0, #0 - bx lr - arm_func_end func_ov00_0207fe34 - - .global func_ov00_0207fe3c - arm_func_start func_ov00_0207fe3c -func_ov00_0207fe3c: ; 0x0207fe3c - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - ldr r4, [r5, #0x10c] - ldr r0, [r5, #0x110] - add r0, r4, r0, lsl #2 - cmp r4, r0 - ldmeqia sp!, {r3, r4, r5, pc} -_0207fe58: - ldr r0, [r4], #4 - ldr r1, [r0] - ldr r1, [r1, #8] - blx r1 - ldr r1, [r5, #0x10c] - ldr r0, [r5, #0x110] - add r0, r1, r0, lsl #2 - cmp r4, r0 - bne _0207fe58 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_0207fe3c - - .global func_ov00_0207fe80 - arm_func_start func_ov00_0207fe80 -func_ov00_0207fe80: ; 0x0207fe80 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr r1, [r0, #0x110] - cmp r1, #0x40 - addhs sp, sp, #0x14 - movhs r0, #0 - ldmhsia sp!, {lr} - addhs sp, sp, #0x10 - bxhs lr - ldr r2, [r0, #0x10c] - ldr r1, [r0, #0x110] - str r2, [sp, #0x10] - add ip, r2, r1, lsl #2 - str ip, [sp, #0xc] - str ip, [sp, #4] - str r2, [sp, #8] - ldr r3, [sp, #0x1c] - b _0207fed4 -_0207fecc: - add r2, r2, #4 - str r2, [sp, #8] -_0207fed4: - cmp r2, ip - ldrne r1, [r2] - cmpne r1, r3 - bne _0207fecc - ldr r1, [sp, #8] - cmp r1, ip - addne sp, sp, #0x14 - movne r0, #0 - ldmneia sp!, {lr} - addne sp, sp, #0x10 - bxne lr - ldr r1, [sp, #0x1c] - ldrb r1, [r1, #4] - cmp r1, #0 - addne sp, sp, #0x14 - movne r0, #0 - ldmneia sp!, {lr} - addne sp, sp, #0x10 - bxne lr - mov r3, #0 - strb r3, [sp, #1] - ldr r2, [r0, #0x110] - ldr r1, [r0, #0x114] - cmp r2, r1 - bhs _0207ff54 - add r3, r2, #1 - str r3, [r0, #0x110] - ldr r1, [r0, #0x10c] - ldr r2, [sp, #0x1c] - sub r0, r3, #1 - str r2, [r1, r0, lsl #2] - b _0207ff74 -_0207ff54: - strb r3, [sp] - sub r2, sp, #4 - and r1, r3, #0xff - strb r1, [r2] - ldr r2, [r2] - add r1, sp, #0x1c - add r0, r0, #0x10c - bl func_ov00_02080f64 -_0207ff74: - mov r0, #1 - add sp, sp, #0x14 - ldmia sp!, {lr} - add sp, sp, #0x10 - bx lr - arm_func_end func_ov00_0207fe80 - - .global func_ov00_0207ff88 - arm_func_start func_ov00_0207ff88 -func_ov00_0207ff88: ; 0x0207ff88 - stmdb sp!, {r3, lr} - sub sp, sp, #0x28 - ldrb r2, [r1, #4] - cmp r2, #0 - addne sp, sp, #0x28 - movne r0, #0 - ldmneia sp!, {r3, pc} - ldr ip, [r0, #0x10c] - ldr r2, [r0, #0x110] - str ip, [sp, #0x20] - add r3, ip, r2, lsl #2 - str r3, [sp, #0x1c] - str r3, [sp, #0xc] - str r3, [sp, #4] - str ip, [sp, #8] - b _0207ffd0 -_0207ffc8: - add ip, ip, #4 - str ip, [sp, #8] -_0207ffd0: - cmp ip, r3 - ldrne r2, [ip] - cmpne r2, r1 - bne _0207ffc8 - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - mov lr, r2 - cmp r2, r3 - addne ip, lr, #4 - cmpne ip, r3 - beq _02080014 -_0207fffc: - ldr r2, [ip] - add ip, ip, #4 - cmp r2, r1 - strne r2, [lr], #4 - cmp ip, r3 - bne _0207fffc -_02080014: - ldr r2, [r0, #0x10c] - ldr r1, [r0, #0x110] - mov r3, #0 - add r2, r2, r1, lsl #2 - strb r3, [sp] - sub r1, sp, #4 - strb r3, [r1] - ldr r3, [r1] - mov r1, lr - add r0, r0, #0x10c - str lr, [sp, #0x24] - str r2, [sp, #0x18] - str r2, [sp, #0x10] - str lr, [sp, #0x14] - bl func_ov00_02080f94 - mov r0, #1 - add sp, sp, #0x28 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0207ff88 - - .global func_ov00_0208005c - arm_func_start func_ov00_0208005c -func_ov00_0208005c: ; 0x0208005c - ldr ip, _02080068 ; =func_ov00_0209c1e4 - ldr r0, [r0, #0x144] - bx ip - .align 2, 0 - arm_func_end func_ov00_0208005c -_02080068: .word func_ov00_0209c1e4 - - .global func_ov00_0208006c - arm_func_start func_ov00_0208006c -func_ov00_0208006c: ; 0x0208006c - ldr ip, _02080078 ; =func_ov00_0209c2b4 - ldr r0, [r0, #0x144] - bx ip - .align 2, 0 - arm_func_end func_ov00_0208006c -_02080078: .word func_ov00_0209c2b4 - - .global func_ov00_0208007c - arm_func_start func_ov00_0208007c -func_ov00_0208007c: ; 0x0208007c - ldr ip, _02080088 ; =func_ov00_0209c2d0 - ldr r0, [r0, #0x144] - bx ip - .align 2, 0 - arm_func_end func_ov00_0208007c -_02080088: .word func_ov00_0209c2d0 - - .global func_ov00_0208008c - arm_func_start func_ov00_0208008c -func_ov00_0208008c: ; 0x0208008c - ldr ip, _02080098 ; =func_ov00_0209c8e4 - ldr r0, [r0, #0x144] - bx ip - .align 2, 0 - arm_func_end func_ov00_0208008c -_02080098: .word func_ov00_0209c8e4 - - .global func_ov00_0208009c - arm_func_start func_ov00_0208009c -func_ov00_0208009c: ; 0x0208009c - stmdb sp!, {r3, lr} - mov ip, #0 - strb ip, [sp, #1] - ldr r3, [r0, #0x11c] - ldr r2, [r0, #0x120] - cmp r3, r2 - bhs _02080120 - add ip, r3, #1 - sub r3, ip, #1 - mov r2, #0x18 - mul r2, r3, r2 - str ip, [r0, #0x11c] - ldr r3, [r0, #0x118] - ldr r0, [r1] - add ip, r3, r2 - str r0, [r3, r2] - ldr r0, [r1, #4] - str r0, [ip, #4] - ldr r0, [r1, #8] - str r0, [ip, #8] - ldr r0, [r1, #0xc] - str r0, [ip, #0xc] - ldrsh r0, [r1, #0x10] - strh r0, [ip, #0x10] - ldrb r0, [r1, #0x12] - strb r0, [ip, #0x12] - ldrb r0, [r1, #0x13] - strb r0, [ip, #0x13] - ldrb r0, [r1, #0x14] - strb r0, [ip, #0x14] - ldrb r0, [r1, #0x15] - strb r0, [ip, #0x15] - ldmia sp!, {r3, pc} -_02080120: - strb ip, [sp] - sub r3, sp, #4 - and r2, ip, #0xff - strb r2, [r3] - ldr r2, [r3] - add r0, r0, #0x118 - bl func_ov00_020810b8 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0208009c - - .global func_ov00_02080140 - arm_func_start func_ov00_02080140 -func_ov00_02080140: ; 0x02080140 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - sub sp, sp, #0x50 - ldr r9, [r1] - mov r4, r0 - str r9, [sp, #0x38] - ldr r8, [r1, #4] - mov r10, #0x18 - str r8, [sp, #0x3c] - ldr r7, [r1, #8] - add r0, sp, #0x1c - str r7, [sp, #0x40] - ldr r6, [r1, #0xc] - add r3, sp, #0x20 - str r6, [sp, #0x44] - ldrsh r5, [r1, #0x10] - strh r5, [sp, #0x48] - ldrb lr, [r1, #0x12] - strb lr, [sp, #0x4a] - ldrb ip, [r1, #0x13] - strb ip, [sp, #0x4b] - ldrb r2, [r1, #0x14] - strb r2, [sp, #0x4c] - ldrb r1, [r1, #0x15] - str r9, [sp, #0x20] - str r8, [sp, #0x24] - strb r1, [sp, #0x4d] - str r7, [sp, #0x28] - str r6, [sp, #0x2c] - strh r5, [sp, #0x30] - strb lr, [sp, #0x32] - strb ip, [sp, #0x33] - strb r2, [sp, #0x34] - strb r1, [sp, #0x35] - ldr r1, [r4, #0x118] - ldr r5, [r4, #0x11c] - str r1, [sp, #0x18] - mla r2, r5, r10, r1 - str r2, [sp, #0x14] - bl func_ov00_02080324 - ldr r0, [r4, #0x118] - ldr r2, [r4, #0x11c] - mov r1, r10 - mla r5, r2, r1, r0 - ldr r1, [sp, #0x1c] - cmp r1, r5 - bne _02080310 - mov r1, #0 - cmp r0, r5 - str r0, [sp, #8] - addne r3, r0, #0x18 - strne r3, [sp, #8] - str r5, [sp, #0xc] - str r0, [sp, #0x10] - strb r1, [sp, #2] - str r5, [sp, #4] - cmpne r3, r5 - beq _02080244 -_02080224: - ldrb r2, [r0, #0x14] - ldrb r1, [r3, #0x14] - cmp r2, r1 - movlo r0, r3 - add r3, r3, #0x18 - cmp r3, r5 - bne _02080224 - str r3, [sp, #8] -_02080244: - ldr r3, [r4, #0x118] - ldr r2, [r4, #0x11c] - mov r1, #0x18 - mla r1, r2, r1, r3 - cmp r0, r1 - moveq r0, #1 - streqb r0, [sp, #0x4c] - ldrneb r0, [r0, #0x14] - mov r2, #0 - addne r0, r0, #1 - strneb r0, [sp, #0x4c] - strb r2, [sp, #1] - ldr r1, [r4, #0x11c] - ldr r0, [r4, #0x120] - cmp r1, r0 - bhs _020802ec - add r3, r1, #1 - sub r1, r3, #1 - mov r0, #0x18 - mul r2, r1, r0 - str r3, [r4, #0x11c] - ldr r1, [r4, #0x118] - ldr r0, [sp, #0x38] - add r3, r1, r2 - str r0, [r1, r2] - ldr r0, [sp, #0x3c] - str r0, [r3, #4] - ldr r0, [sp, #0x40] - str r0, [r3, #8] - ldr r0, [sp, #0x44] - str r0, [r3, #0xc] - ldrsh r0, [sp, #0x48] - strh r0, [r3, #0x10] - ldrb r0, [sp, #0x4a] - strb r0, [r3, #0x12] - ldrb r0, [sp, #0x4b] - strb r0, [r3, #0x13] - ldrb r0, [sp, #0x4c] - strb r0, [r3, #0x14] - ldrb r0, [sp, #0x4d] - strb r0, [r3, #0x15] - b _02080318 -_020802ec: - strb r2, [sp] - sub r1, sp, #4 - and r0, r2, #0xff - strb r0, [r1] - ldr r2, [r1] - add r1, sp, #0x38 - add r0, r4, #0x118 - bl func_ov00_020810b8 - b _02080318 -_02080310: - ldrb r0, [r1, #0x14] - strb r0, [sp, #0x4c] -_02080318: - ldrb r0, [sp, #0x4c] - add sp, sp, #0x50 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - arm_func_end func_ov00_02080140 - - .global func_ov00_02080324 - arm_func_start func_ov00_02080324 -func_ov00_02080324: ; 0x02080324 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r4, r5, r6, r7, r8, lr} - mov r7, r0 - mov r6, r3 - ldr r5, [sp, #0x20] - ldr r4, [sp, #0x1c] - b _02080344 -_02080340: - add r4, r4, #0x18 -_02080344: - cmp r4, r5 - beq _0208038c - mov r0, r4 - bl func_ov00_020a5e9c - mov r8, r0 - mov r0, r6 - bl func_ov00_020a5e9c - cmp r8, r0 - ldreqb r1, [r4, #0x12] - ldreqb r0, [r6, #0x12] - cmpeq r1, r0 - ldreqb r1, [r4, #0x13] - ldreqb r0, [r6, #0x13] - cmpeq r1, r0 - ldreq r1, [r4, #8] - ldreq r0, [r6, #8] - cmpeq r1, r0 - bne _02080340 -_0208038c: - str r4, [r7] - ldmia sp!, {r4, r5, r6, r7, r8, lr} - add sp, sp, #0x10 - bx lr - arm_func_end func_ov00_02080324 - - .global func_ov00_0208039c - arm_func_start func_ov00_0208039c -func_ov00_0208039c: ; 0x0208039c - stmdb sp!, {lr} - sub sp, sp, #0x14 - cmp r1, #0 - addle sp, sp, #0x14 - movle r0, #0 - ldmleia sp!, {pc} - ldr ip, [r0, #0x118] - ldr r3, [r0, #0x11c] - mov r0, #0x18 - mla lr, r3, r0, ip - and r0, r1, #0xff - strb r1, [sp, #1] - strb r0, [sp] - str lr, [sp, #0xc] - str lr, [sp, #4] - str ip, [sp, #0x10] - str ip, [sp, #8] - and r1, r0, #0xff - b _020803f0 -_020803e8: - add ip, ip, #0x18 - str ip, [sp, #8] -_020803f0: - cmp ip, lr - ldrneb r0, [ip, #0x14] - cmpne r1, r0 - bne _020803e8 - ldr r0, [sp, #8] - cmp r0, lr - addeq sp, sp, #0x14 - moveq r0, #0 - ldmeqia sp!, {pc} - ldr r3, [sp, #8] - mov r0, #1 - ldr r1, [r3] - str r1, [r2] - ldr r1, [r3, #4] - str r1, [r2, #4] - ldr r1, [r3, #8] - str r1, [r2, #8] - ldr r1, [r3, #0xc] - str r1, [r2, #0xc] - ldrsh r1, [r3, #0x10] - strh r1, [r2, #0x10] - ldrb r1, [r3, #0x12] - strb r1, [r2, #0x12] - ldrb r1, [r3, #0x13] - strb r1, [r2, #0x13] - ldrb r1, [r3, #0x14] - strb r1, [r2, #0x14] - ldrb r1, [r3, #0x15] - strb r1, [r2, #0x15] - add sp, sp, #0x14 - ldmia sp!, {pc} - arm_func_end func_ov00_0208039c - - .global func_ov00_0208046c - arm_func_start func_ov00_0208046c -func_ov00_0208046c: ; 0x0208046c - stmdb sp!, {r3, lr} - mov ip, #0 - strb ip, [sp, #1] - ldr r3, [r0, #0x128] - ldr r2, [r0, #0x12c] - cmp r3, r2 - bhs _020804f0 - add ip, r3, #1 - sub r3, ip, #1 - mov r2, #0x1c - mul r2, r3, r2 - str ip, [r0, #0x128] - ldr r3, [r0, #0x124] - ldr r0, [r1] - add ip, r3, r2 - str r0, [r3, r2] - ldrb r0, [r1, #4] - strb r0, [ip, #4] - ldr r0, [r1, #8] - str r0, [ip, #8] - ldr r0, [r1, #0xc] - str r0, [ip, #0xc] - ldr r0, [r1, #0x10] - str r0, [ip, #0x10] - ldrsh r0, [r1, #0x14] - strh r0, [ip, #0x14] - ldrsh r0, [r1, #0x16] - strh r0, [ip, #0x16] - ldrh r2, [r1, #0x18] - ldrh r0, [r1, #0x1a] - strh r2, [ip, #0x18] - strh r0, [ip, #0x1a] - ldmia sp!, {r3, pc} -_020804f0: - strb ip, [sp] - sub r3, sp, #4 - and r2, ip, #0xff - strb r2, [r3] - ldr r2, [r3] - add r0, r0, #0x124 - bl func_ov00_02081130 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0208046c - - .global func_ov00_02080510 - arm_func_start func_ov00_02080510 -func_ov00_02080510: ; 0x02080510 - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr ip, [r0, #0x124] - ldr r3, [r0, #0x128] - mov r0, #0x1c - mla lr, r3, r0, ip - and r0, r1, #0xff - strb r1, [sp, #1] - strb r0, [sp] - str lr, [sp, #0xc] - str lr, [sp, #4] - str ip, [sp, #0x10] - str ip, [sp, #8] - and r1, r0, #0xff - b _02080554 -_0208054c: - add ip, ip, #0x1c - str ip, [sp, #8] -_02080554: - cmp ip, lr - ldrneb r0, [ip, #4] - cmpne r1, r0 - bne _0208054c - ldr r0, [sp, #8] - cmp r0, lr - addeq sp, sp, #0x14 - moveq r0, #0 - ldmeqia sp!, {pc} - ldr ip, [sp, #8] - mov r0, #1 - ldr r1, [ip] - str r1, [r2] - ldrb r1, [ip, #4] - strb r1, [r2, #4] - ldr r1, [ip, #8] - str r1, [r2, #8] - ldr r1, [ip, #0xc] - str r1, [r2, #0xc] - ldr r1, [ip, #0x10] - str r1, [r2, #0x10] - ldrsh r1, [ip, #0x14] - strh r1, [r2, #0x14] - ldrsh r1, [ip, #0x16] - strh r1, [r2, #0x16] - ldrh r3, [ip, #0x18] - ldrh r1, [ip, #0x1a] - strh r3, [r2, #0x18] - strh r1, [r2, #0x1a] - add sp, sp, #0x14 - ldmia sp!, {pc} - arm_func_end func_ov00_02080510 - - .global func_ov00_020805d0 - arm_func_start func_ov00_020805d0 -func_ov00_020805d0: ; 0x020805d0 - stmdb sp!, {r3, lr} - sub sp, sp, #0x18 - ldr ip, [r0, #0x124] - ldr r3, [r0, #0x128] - mov r0, #0x1c - mla lr, r3, r0, ip - str r1, [sp, #0xc] - str r1, [sp] - str lr, [sp, #0x10] - str lr, [sp, #4] - str ip, [sp, #0x14] - str ip, [sp, #8] - b _0208060c -_02080604: - add ip, ip, #0x1c - str ip, [sp, #8] -_0208060c: - cmp ip, lr - ldrne r0, [ip] - cmpne r1, r0 - bne _02080604 - ldr r0, [sp, #8] - cmp r0, lr - addeq sp, sp, #0x18 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldr ip, [sp, #8] - mov r0, #1 - ldr r1, [ip] - str r1, [r2] - ldrb r1, [ip, #4] - strb r1, [r2, #4] - ldr r1, [ip, #8] - str r1, [r2, #8] - ldr r1, [ip, #0xc] - str r1, [r2, #0xc] - ldr r1, [ip, #0x10] - str r1, [r2, #0x10] - ldrsh r1, [ip, #0x14] - strh r1, [r2, #0x14] - ldrsh r1, [ip, #0x16] - strh r1, [r2, #0x16] - ldrh r3, [ip, #0x18] - ldrh r1, [ip, #0x1a] - strh r3, [r2, #0x18] - strh r1, [r2, #0x1a] - add sp, sp, #0x18 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020805d0 - - .global func_ov00_02080688 - arm_func_start func_ov00_02080688 -func_ov00_02080688: ; 0x02080688 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #0x1c - mov r6, r0 - mov r4, r2 - add r2, r6, r4 - mov r5, r1 - ldrb r1, [r2, #0x16] - cmp r1, #0 - bne _020806c8 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0xb8] - blx r2 - add sp, sp, #0x1c - str r0, [r5] - ldmia sp!, {r3, r4, r5, r6, pc} -_020806c8: - mov ip, #0 - mov r0, #0xff - add r3, sp, #0 - str ip, [sp] - strb r0, [sp, #4] - strh ip, [sp, #0x14] - strh ip, [sp, #0x16] - mov r2, ip -_020806e8: - add r0, r3, ip, lsl #1 - add ip, ip, #1 - strh r2, [r0, #0x18] - cmp ip, #2 - blo _020806e8 - add r2, sp, #0 - mov r0, r6 - bl func_ov00_02080510 - cmp r0, #0 - bne _02080730 - mov r0, r6 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0xb8] - blx r2 - add sp, sp, #0x1c - str r0, [r5] - ldmia sp!, {r3, r4, r5, r6, pc} -_02080730: - ldr r0, [sp] - str r0, [r5] - ldrb r0, [sp, #4] - strb r0, [r5, #4] - ldr r0, [sp, #8] - str r0, [r5, #8] - ldr r0, [sp, #0xc] - str r0, [r5, #0xc] - ldr r0, [sp, #0x10] - str r0, [r5, #0x10] - ldrsh r0, [sp, #0x14] - strh r0, [r5, #0x14] - ldrsh r0, [sp, #0x16] - strh r0, [r5, #0x16] - ldrh r1, [sp, #0x18] - ldrh r0, [sp, #0x1a] - strh r1, [r5, #0x18] - strh r0, [r5, #0x1a] - add sp, sp, #0x1c - ldmia sp!, {r3, r4, r5, r6, pc} - arm_func_end func_ov00_02080688 - - .global func_ov00_02080780 - arm_func_start func_ov00_02080780 -func_ov00_02080780: ; 0x02080780 - stmdb sp!, {lr} - sub sp, sp, #0x1c - mov lr, #0 - mov r3, #0xff - strb r3, [sp, #4] - add ip, sp, #0 - mov r2, r1 - str lr, [sp] - strh lr, [sp, #0x14] - strh lr, [sp, #0x16] - mov r3, lr -_020807ac: - add r1, ip, lr, lsl #1 - add lr, lr, #1 - strh r3, [r1, #0x18] - cmp lr, #2 - blo _020807ac - add r1, sp, #0 - bl func_ov00_02080688 - ldr r0, [sp] - add sp, sp, #0x1c - ldmia sp!, {pc} - arm_func_end func_ov00_02080780 - - .global func_ov00_020807d4 - arm_func_start func_ov00_020807d4 -func_ov00_020807d4: ; 0x020807d4 - stmdb sp!, {r3, lr} - ldr r0, _02080820 ; =data_027e0618 - ldr r0, [r0] - cmp r0, #6 - bne _02080818 - bl func_ov00_02079e3c - cmp r0, #0 - beq _02080800 - cmp r0, #1 - beq _02080808 - b _02080810 -_02080800: - mov r0, #0 - ldmia sp!, {r3, pc} -_02080808: - mov r0, #0x1c - ldmia sp!, {r3, pc} -_02080810: - mov r0, #0x1c - ldmia sp!, {r3, pc} -_02080818: - mov r0, #0 - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_020807d4 -_02080820: .word data_027e0618 - - .global func_ov00_02080824 - arm_func_start func_ov00_02080824 -func_ov00_02080824: ; 0x02080824 - stmdb sp!, {r4, lr} - ldr r4, [r0, #0x14c] - cmp r4, #0 - moveq r0, #0 - ldmeqia sp!, {r4, pc} - ldrh r3, [r4, #4] - mov ip, #0 - cmp r3, #0 - ble _020808c8 - mov lr, r4 -_0208084c: - ldrb r0, [lr, #8] - cmp r1, r0 - bne _020808b8 - mov r0, #0x1c - mul r0, ip, r0 - add r3, r4, #8 - ldrb r1, [r3, r0] - add r3, r3, r0 - mov r0, #1 - strb r1, [r2] - ldrb r1, [r3, #1] - strb r1, [r2, #1] - ldrsh r1, [r3, #2] - strh r1, [r2, #2] - ldr r1, [r3, #4] - str r1, [r2, #4] - ldr r1, [r3, #8] - str r1, [r2, #8] - ldr r1, [r3, #0xc] - str r1, [r2, #0xc] - ldr r1, [r3, #0x10] - str r1, [r2, #0x10] - ldr r1, [r3, #0x14] - str r1, [r2, #0x14] - ldr r1, [r3, #0x18] - str r1, [r2, #0x18] - ldmia sp!, {r4, pc} -_020808b8: - add ip, ip, #1 - cmp ip, r3 - add lr, lr, #0x1c - blt _0208084c -_020808c8: - mov r0, #0 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02080824 - - .global func_ov00_020808d0 - arm_func_start func_ov00_020808d0 -func_ov00_020808d0: ; 0x020808d0 - stmdb sp!, {r0, r1, r2, r3} - arm_func_end func_ov00_020808d0 - - .global func_ov00_020808d4 - arm_func_start func_ov00_020808d4 -func_ov00_020808d4: ; 0x020808d4 - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr r1, [r0, #0x134] - cmp r1, #0x20 - addhs sp, sp, #0x14 - movhs r0, #0 - ldmhsia sp!, {lr} - addhs sp, sp, #0x10 - bxhs lr - ldr r2, [r0, #0x130] - ldr r1, [r0, #0x134] - str r2, [sp, #0x10] - add ip, r2, r1, lsl #2 - str ip, [sp, #0xc] - str ip, [sp, #4] - str r2, [sp, #8] - ldr r3, [sp, #0x1c] - b _02080924 -_0208091c: - add r2, r2, #4 - str r2, [sp, #8] -_02080924: - cmp r2, ip - ldrne r1, [r2] - cmpne r1, r3 - bne _0208091c - ldr r1, [sp, #8] - cmp r1, ip - addne sp, sp, #0x14 - movne r0, #0 - ldmneia sp!, {lr} - addne sp, sp, #0x10 - bxne lr - mov r3, #0 - strb r3, [sp, #1] - ldr r2, [r0, #0x134] - ldr r1, [r0, #0x138] - cmp r2, r1 - bhs _02080984 - add r3, r2, #1 - str r3, [r0, #0x134] - ldr r1, [r0, #0x130] - ldr r2, [sp, #0x1c] - sub r0, r3, #1 - str r2, [r1, r0, lsl #2] - b _020809a4 -_02080984: - strb r3, [sp] - sub r2, sp, #4 - and r1, r3, #0xff - strb r1, [r2] - ldr r2, [r2] - add r1, sp, #0x1c - add r0, r0, #0x130 - bl func_ov00_02080f64 -_020809a4: - mov r0, #1 - add sp, sp, #0x14 - ldmia sp!, {lr} - add sp, sp, #0x10 - bx lr - arm_func_end func_ov00_020808d4 - - .global func_ov00_020809b8 - arm_func_start func_ov00_020809b8 -func_ov00_020809b8: ; 0x020809b8 - stmdb sp!, {r3, lr} - sub sp, sp, #0x28 - ldr ip, [r0, #0x130] - ldr r2, [r0, #0x134] - str ip, [sp, #0x20] - add r3, ip, r2, lsl #2 - str r3, [sp, #0x1c] - str r3, [sp, #0xc] - str r3, [sp, #4] - str ip, [sp, #8] - b _020809ec -_020809e4: - add ip, ip, #4 - str ip, [sp, #8] -_020809ec: - cmp ip, r3 - ldrne r2, [ip] - cmpne r2, r1 - bne _020809e4 - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - mov lr, r2 - cmp r2, r3 - addne ip, lr, #4 - cmpne ip, r3 - beq _02080a30 -_02080a18: - ldr r2, [ip] - add ip, ip, #4 - cmp r2, r1 - strne r2, [lr], #4 - cmp ip, r3 - bne _02080a18 -_02080a30: - ldr r2, [r0, #0x130] - ldr r1, [r0, #0x134] - mov r3, #0 - add r2, r2, r1, lsl #2 - strb r3, [sp] - sub r1, sp, #4 - strb r3, [r1] - ldr r3, [r1] - mov r1, lr - add r0, r0, #0x130 - str lr, [sp, #0x24] - str r2, [sp, #0x18] - str r2, [sp, #0x10] - str lr, [sp, #0x14] - bl func_ov00_02080f94 - mov r0, #1 - add sp, sp, #0x28 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020809b8 - - .global func_ov00_02080a78 - arm_func_start func_ov00_02080a78 -func_ov00_02080a78: ; 0x02080a78 - stmdb sp!, {r4, lr} - sub sp, sp, #0x18 - mov r4, r0 - add r3, sp, #0xc - ldmia r1, {r0, r1, r2} - stmia r3, {r0, r1, r2} - ldr r1, [r4, #0x130] - ldr r2, [r4, #0x134] - add r0, sp, #8 - add r2, r1, r2, lsl #2 - str r2, [sp] - str r1, [sp, #4] - bl func_ov00_02080ad0 - ldr r1, [r4, #0x130] - ldr r0, [r4, #0x134] - ldr r2, [sp, #8] - add r0, r1, r0, lsl #2 - cmp r2, r0 - moveq r0, #0 - ldrne r0, [r2] - add sp, sp, #0x18 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02080a78 - - .global func_ov00_02080ad0 - arm_func_start func_ov00_02080ad0 -func_ov00_02080ad0: ; 0x02080ad0 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r3 - ldr r5, [sp, #0x20] - ldr r4, [sp, #0x1c] - b _02080af0 -_02080aec: - add r4, r4, #4 -_02080af0: - cmp r4, r5 - beq _02080b14 - ldr r0, [r4] - mov r1, r6 - ldr r2, [r0] - ldr r2, [r2] - blx r2 - cmp r0, #0 - beq _02080aec -_02080b14: - str r4, [r7] - ldmia sp!, {r3, r4, r5, r6, r7, lr} - add sp, sp, #0x10 - bx lr - arm_func_end func_ov00_02080ad0 - - .global func_ov00_02080b24 - arm_func_start func_ov00_02080b24 -func_ov00_02080b24: ; 0x02080b24 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x14 - ldr r3, [r0] - mov r2, #4 - ldr r3, [r3, #0x58] - str r0, [sp] - mov r10, r1 - blx r3 - cmp r0, #0 - addne sp, sp, #0x14 - ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, [sp] - ldrh r0, [r0, #0x30] - cmp r0, #0x60 - blo _02080cd0 - ldr r0, [sp] - mov r6, #0 - ldrh r0, [r0, #0x28] - mov r7, r6 - mov r8, r6 - str r0, [sp, #4] - cmp r0, #0 - ldr r0, [sp] - ldrh r11, [r0, #0x2a] - ble _02080c4c -_02080b88: - cmp r11, #0 - mov r9, #0 - ble _02080c3c - and r0, r8, #0xff - str r0, [sp, #8] -_02080b9c: - ldr r1, [sp, #8] - ldr r0, [sp] - strb r1, [sp, #0x10] - strb r9, [sp, #0x11] - ldr r2, [r0] - add r1, sp, #0x10 - ldr r2, [r2, #0x78] - blx r2 - movs r5, r0 - beq _02080c30 - ldr r1, [r0] - ldr r1, [r1, #0x1c] - blx r1 - cmp r0, #0x42 - bne _02080c30 - cmp r6, #0 - ldrb r0, [r10] - bne _02080c08 - sub r0, r8, r0 - mov r6, r5 - bl func_02042f68 - ldrb r1, [r10, #1] - mov r4, r0 - sub r0, r9, r1 - bl func_02042f68 - add r7, r4, r0 - b _02080c30 -_02080c08: - sub r0, r8, r0 - bl func_02042f68 - ldrb r1, [r10, #1] - mov r4, r0 - sub r0, r9, r1 - bl func_02042f68 - add r0, r4, r0 - cmp r0, r7 - movgt r6, r5 - movgt r7, r0 -_02080c30: - add r9, r9, #1 - cmp r9, r11 - blt _02080b9c -_02080c3c: - ldr r0, [sp, #4] - add r8, r8, #1 - cmp r8, r0 - blt _02080b88 -_02080c4c: - cmp r6, #0 - addeq sp, sp, #0x14 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r1, [r6, #4] - ldr r0, [sp] - bic r1, r1, #1 - str r1, [r6, #4] - ldrb r4, [r6, #0x15] - ldrb r3, [r6, #0x14] - add r1, sp, #0xe - mov r2, #4 - strb r3, [sp, #0xe] - strb r4, [sp, #0xf] - ldr r4, [r0] - mov r3, #0 - ldr r4, [r4, #0x98] - blx r4 - ldrb r3, [r6, #0x15] - ldrb r2, [r6, #0x14] - ldr r0, [sp] - add r1, sp, #0xc - strb r2, [sp, #0xc] - strb r3, [sp, #0xd] - ldr r4, [r0] - mov r2, #6 - ldr r4, [r4, #0x98] - mov r3, #1 - blx r4 - ldr r0, [sp] - ldrh r0, [r0, #0x30] - sub r1, r0, #1 - ldr r0, [sp] - strh r1, [r0, #0x30] -_02080cd0: - ldr r0, [sp] - mov r1, r10 - ldr r4, [r0] - mov r2, #4 - ldr r4, [r4, #0x98] - mov r3, #1 - blx r4 - ldr r0, [sp] - ldrh r0, [r0, #0x30] - add r1, r0, #1 - ldr r0, [sp] - strh r1, [r0, #0x30] - add sp, sp, #0x14 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - arm_func_end func_ov00_02080b24 - - .global func_ov00_02080d08 - arm_func_start func_ov00_02080d08 -func_ov00_02080d08: ; 0x02080d08 - stmdb sp!, {r3, r4, r5, lr} - ldr r3, [r0] - mov r2, #4 - ldr r3, [r3, #0x58] - mov r5, r0 - mov r4, r1 - blx r3 - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} - mov r0, r5 - ldr ip, [r0] - mov r1, r4 - ldr ip, [ip, #0x98] - mov r2, #4 - mov r3, #0 - blx ip - mov r0, r5 - ldr ip, [r0] - mov r1, r4 - ldr ip, [ip, #0x98] - mov r2, #6 - mov r3, #1 - blx ip - ldrh r0, [r5, #0x30] - sub r0, r0, #1 - strh r0, [r5, #0x30] - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_02080d08 - - .global func_ov00_02080d74 - arm_func_start func_ov00_02080d74 -func_ov00_02080d74: ; 0x02080d74 - bx lr - arm_func_end func_ov00_02080d74 - - .global func_ov00_02080d78 - arm_func_start func_ov00_02080d78 -func_ov00_02080d78: ; 0x02080d78 - bx lr - arm_func_end func_ov00_02080d78 - - .global func_ov00_02080d7c - arm_func_start func_ov00_02080d7c -func_ov00_02080d7c: ; 0x02080d7c - bx lr - arm_func_end func_ov00_02080d7c - - .global func_ov00_02080d80 - arm_func_start func_ov00_02080d80 -func_ov00_02080d80: ; 0x02080d80 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - ldr r4, [r6, #0x10c] - ldr r0, [r6, #0x110] - mov r5, r1 - add r0, r4, r0, lsl #2 - cmp r4, r0 - beq _02080dd4 -_02080da0: - ldr r0, [r4] - ldrb r1, [r0, #5] - cmp r5, r1 - bne _02080dbc - ldr r1, [r0] - ldr r1, [r1, #0x10] - blx r1 -_02080dbc: - ldr r1, [r6, #0x10c] - ldr r0, [r6, #0x110] - add r4, r4, #4 - add r0, r1, r0, lsl #2 - cmp r4, r0 - bne _02080da0 -_02080dd4: - mov r0, #1 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02080d80 - - .global func_ov00_02080ddc - arm_func_start func_ov00_02080ddc -func_ov00_02080ddc: ; 0x02080ddc - mov r0, #1 - bx lr - arm_func_end func_ov00_02080ddc - - .global func_ov00_02080de4 - arm_func_start func_ov00_02080de4 -func_ov00_02080de4: ; 0x02080de4 - bx lr - arm_func_end func_ov00_02080de4 - - .global func_ov00_02080de8 - arm_func_start func_ov00_02080de8 -func_ov00_02080de8: ; 0x02080de8 - stmdb sp!, {r4, r5, r6, lr} - ldr r2, _02080ed4 ; =data_027e0f64 - mov r5, r0 - ldr r0, [r2] - mov r4, #0 - add r0, r0, r1, lsl #2 - ldr r6, [r0, #4] - ldr r0, [r6, #0x15c] - cmp r0, #0x16 - bgt _02080e64 - bge _02080e84 - cmp r0, #0xb - bgt _02080e58 - cmp r0, #0 - addge pc, pc, r0, lsl #2 - b _02080e94 -_02080e28: ; jump table - b _02080e84 ; case 0 - b _02080e84 ; case 1 - b _02080e84 ; case 2 - b _02080e8c ; case 3 - b _02080e94 ; case 4 - b _02080e94 ; case 5 - b _02080e94 ; case 6 - b _02080e94 ; case 7 - b _02080e94 ; case 8 - b _02080e94 ; case 9 - b _02080e94 ; case 10 - b _02080e88 ; case 11 -_02080e58: - cmp r0, #0x15 - beq _02080e84 - b _02080e94 -_02080e64: - cmp r0, #0x5a - bgt _02080e7c - bge _02080e84 - cmp r0, #0x33 - beq _02080e84 - b _02080e94 -_02080e7c: - cmp r0, #0x5b - bne _02080e94 -_02080e84: - mov r4, #0 -_02080e88: - b _02080ec8 -_02080e8c: - mov r4, #0x1f - b _02080ec8 -_02080e94: - mov r0, r6 - bl func_ov00_02087dd8 - cmp r0, #0 - beq _02080ec8 - add r0, r6, #0x200 - ldrsh r1, [r0, #0x24] - ldr r0, _02080ed8 ; =0x00001c72 - cmp r1, r0 - ble _02080ec4 - rsb r0, r0, #0x4000 - cmp r1, r0 - blt _02080ec8 -_02080ec4: - mov r4, #0x1f -_02080ec8: - ldr r0, [r5, #0x140] - strb r4, [r0, #0x5c] - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_02080de8 -_02080ed4: .word data_027e0f64 -_02080ed8: .word 0x00001c72 - - .global func_ov00_02080edc - arm_func_start func_ov00_02080edc -func_ov00_02080edc: ; 0x02080edc - stmdb sp!, {r4, lr} - ldr r1, _02080f1c ; =data_027e0d38 - mov r4, r0 - ldr r0, [r1] - add r0, r0, #0xc - bl func_ov00_020a5e9c - cmp r0, #0x2a - cmpne r0, #0x2f - cmpne r0, #0x30 - bne _02080f10 - mov r0, #0 - strb r0, [r4, #5] - ldmia sp!, {r4, pc} -_02080f10: - mov r0, #1 - strb r0, [r4, #5] - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_02080edc -_02080f1c: .word data_027e0d38 - - .global func_ov00_02080f20 - arm_func_start func_ov00_02080f20 -func_ov00_02080f20: ; 0x02080f20 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - beq _02080f58 - ldr r1, [r4, #4] - mov r0, #0 - strb r0, [sp] - ldr r0, [r4, #4] - sub r0, r0, r1 - str r0, [r4, #4] - ldr r0, [r4] - bl _ZN9SysObjectdlEPv -_02080f58: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_02080f20 - - .global func_ov00_02080f64 - arm_func_start func_ov00_02080f64 -func_ov00_02080f64: ; 0x02080f64 - stmdb sp!, {r3, r4, r5, lr} - mov r4, r1 - mov r2, #0 - mov r5, r0 - mov r1, #1 - strb r2, [sp] - bl func_ov00_020812bc - mov r0, r5 - mov r2, r4 - mov r1, #1 - bl func_ov00_02081160 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_02080f64 - - .global func_ov00_02080f94 - arm_func_start func_ov00_02080f94 -func_ov00_02080f94: ; 0x02080f94 - stmdb sp!, {r4, r5, r6, lr} - mov r5, r1 - mov r4, r2 - mov r6, r0 - cmp r5, r4 - beq _02080ff0 - ldr r2, [r6] - ldr r1, [r6, #4] - mov r0, r5 - add r1, r2, r1, lsl #2 - sub r2, r1, r4 - mov r1, r2, asr #0x1 - add r1, r2, r1, lsr #30 - mov r2, r1, asr #0x2 - mov r1, r4 - mov r2, r2, lsl #0x2 - bl func_020435b4 - sub r1, r4, r5 - mov r0, r1, asr #0x1 - ldr r2, [r6, #4] - add r0, r1, r0, lsr #30 - sub r0, r2, r0, asr #2 - str r0, [r6, #4] -_02080ff0: - mov r0, r5 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02080f94 - - .global func_ov00_02080ff8 - arm_func_start func_ov00_02080ff8 -func_ov00_02080ff8: ; 0x02080ff8 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r1, [r4] - cmp r1, #0 - beq _02081034 - ldr r1, [r4, #4] - mov r3, #0 - strb r3, [sp] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - bl func_ov00_02081388 - ldr r0, [r4] - bl _ZN9SysObjectdlEPv -_02081034: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_02080ff8 - - .global func_ov00_02081040 - arm_func_start func_ov00_02081040 -func_ov00_02081040: ; 0x02081040 - stmdb sp!, {r3, r4, r5, lr} - mov r4, r1 - mov r2, #0 - mov r5, r0 - mov r1, #1 - strb r2, [sp] - bl func_ov00_02081524 - mov r0, r5 - mov r2, r4 - mov r1, #1 - bl func_ov00_02081398 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_02081040 - - .global func_ov00_02081070 - arm_func_start func_ov00_02081070 -func_ov00_02081070: ; 0x02081070 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r1, [r4] - cmp r1, #0 - beq _020810ac - ldr r1, [r4, #4] - mov r3, #0 - strb r3, [sp] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - bl func_ov00_020815f4 - ldr r0, [r4] - bl _ZN9SysObjectdlEPv -_020810ac: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_02081070 - - .global func_ov00_020810b8 - arm_func_start func_ov00_020810b8 -func_ov00_020810b8: ; 0x020810b8 - stmdb sp!, {r3, r4, r5, lr} - mov r4, r1 - mov r2, #0 - mov r5, r0 - mov r1, #1 - strb r2, [sp] - bl func_ov00_020817dc - mov r0, r5 - mov r2, r4 - mov r1, #1 - bl func_ov00_02081604 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_020810b8 - - .global func_ov00_020810e8 - arm_func_start func_ov00_020810e8 -func_ov00_020810e8: ; 0x020810e8 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r1, [r4] - cmp r1, #0 - beq _02081124 - ldr r1, [r4, #4] - mov r3, #0 - strb r3, [sp] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - bl func_ov00_020818ac - ldr r0, [r4] - bl _ZN9SysObjectdlEPv -_02081124: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_020810e8 - - .global func_ov00_02081130 - arm_func_start func_ov00_02081130 -func_ov00_02081130: ; 0x02081130 - stmdb sp!, {r3, r4, r5, lr} - mov r4, r1 - mov r2, #0 - mov r5, r0 - mov r1, #1 - strb r2, [sp] - bl func_ov00_02081a90 - mov r0, r5 - mov r2, r4 - mov r1, #1 - bl func_ov00_020818bc - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_02081130 - - .global func_ov00_02081160 - arm_func_start func_ov00_02081160 -func_ov00_02081160: ; 0x02081160 - stmdb sp!, {r4, r5, r6, r7, lr} - sub sp, sp, #0x1c - mov r6, r0 - mov r5, r1 - add r0, sp, #8 - add r1, r6, #8 - mov r4, r2 - bl func_ov00_02081e7c - mov r0, #0 - str r0, [sp, #0x18] - ldmib r6, {r0, r1} - add r2, r0, r5 - mov r0, r6 - sub r1, r2, r1 - bl func_ov00_020812bc - mov r3, #0 - mov r1, r0 - strb r3, [sp, #4] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - add r0, sp, #8 - strb r3, [sp] - bl func_ov00_02081e3c - ldr r1, [r6, #4] - ldr r0, [sp, #8] - str r1, [sp, #0x18] - add r1, r0, r1, lsl #2 - ldr r0, [sp, #0xc] - cmp r5, #0 - add r1, r1, r0, lsl #2 - mov r0, #0 - strb r0, [sp, #3] - mov r2, r5 - beq _020811fc -_020811ec: - ldr r0, [r4] - subs r2, r2, #1 - str r0, [r1], #4 - bne _020811ec -_020811fc: - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x18] - add r0, r0, r5 - str r0, [sp, #0xc] - ldr r4, [r6] - ldr r0, [r6, #4] - mov ip, #0 - add r0, r4, r0, lsl #2 - sub r2, r0, r4 - mov r0, r2, asr #0x1 - add r5, r2, r0, lsr #30 - sub r3, r1, r5, asr #2 - mov r2, r5, asr #0x2 - ldr r0, [sp, #8] - mov r7, r2, lsl #0x2 - mov r1, r4 - mov r2, r7 - add r0, r0, r3, lsl #2 - strb ip, [sp, #2] - str r3, [sp, #0x18] - bl func_02043594 - mov r0, r4 - mov r2, r7 - mov r1, #0 - bl func_02043600 - ldr r1, [sp, #0xc] - mov r0, #0 - add r1, r1, r5, asr #2 - str r1, [sp, #0xc] - strb r0, [sp, #1] - str r0, [r6, #4] - add r3, sp, #0x10 - ldr r2, [r6, #8] - ldr r1, [r3] - add r0, sp, #8 - str r1, [r6, #8] - str r2, [r3] - ldr r2, [r6] - ldr r1, [sp, #8] - str r1, [r6] - str r2, [sp, #8] - ldr r2, [r6, #4] - ldr r1, [sp, #0xc] - str r1, [r6, #4] - str r2, [sp, #0xc] - bl func_ov00_02081b60 - add sp, sp, #0x1c - ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_end func_ov00_02081160 - - .global func_ov00_020812bc - arm_func_start func_ov00_020812bc -func_ov00_020812bc: ; 0x020812bc - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r4, lr} - sub sp, sp, #8 - ldr r4, [r0, #8] - mvn r0, #0xc0000000 - ldr r1, [sp, #0x14] - sub r0, r0, r4 - cmp r1, r0 - bls _020812e4 - bl func_0204dd9c -_020812e4: - ldr r0, _02081380 ; =0x15555555 - cmp r4, r0 - bhs _02081330 - add r1, r4, #1 - ldr r0, _02081384 ; =0xcccccccd - add r1, r1, r1, lsl #1 - umull r0, r2, r1, r0 - mov r2, r2, lsr #0x2 - ldr r0, [sp, #0x14] - str r2, [sp, #4] - cmp r0, r2 - addhi r0, sp, #0x14 - addls r0, sp, #4 - ldr r0, [r0] - add sp, sp, #8 - add r0, r4, r0 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr -_02081330: - cmp r4, r0, lsl #1 - bhs _0208136c - ldr r0, [sp, #0x14] - add r1, r4, #1 - mov r2, r1, lsr #0x1 - cmp r0, r1, lsr #1 - addhi r0, sp, #0x14 - str r2, [sp] - addls r0, sp, #0 - ldr r0, [r0] - add sp, sp, #8 - add r0, r4, r0 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr -_0208136c: - mvn r0, #0xc0000000 - add sp, sp, #8 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 - arm_func_end func_ov00_020812bc -_02081380: .word 0x15555555 -_02081384: .word 0xcccccccd - - .global func_ov00_02081388 - arm_func_start func_ov00_02081388 -func_ov00_02081388: ; 0x02081388 - ldr r2, [r0, #4] - sub r1, r2, r1 - str r1, [r0, #4] - bx lr - arm_func_end func_ov00_02081388 - - .global func_ov00_02081398 - arm_func_start func_ov00_02081398 -func_ov00_02081398: ; 0x02081398 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #0x1c - mov r6, r0 - mov r5, r1 - add r0, sp, #8 - add r1, r6, #8 - mov r4, r2 - bl func_ov00_02081dd0 - mov r0, #0 - str r0, [sp, #0x18] - ldmib r6, {r0, r1} - add r2, r0, r5 - mov r0, r6 - sub r1, r2, r1 - bl func_ov00_02081524 - mov r3, #0 - mov r1, r0 - strb r3, [sp, #4] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - add r0, sp, #8 - strb r3, [sp] - bl func_ov00_02081d88 - ldr ip, [r6, #4] - mov r0, #0 - strb r0, [sp, #3] - ldr r1, [sp, #8] - mov r0, #0x14 - mla r2, ip, r0, r1 - ldr r1, [sp, #0xc] - str ip, [sp, #0x18] - mla ip, r1, r0, r2 - cmp r5, #0 - mov r3, r5 - beq _02081454 -_02081428: - ldmia r4, {r0, r1, r2} - stmia ip, {r0, r1, r2} - ldrsh r0, [r4, #0xc] - subs r3, r3, #1 - strh r0, [ip, #0xc] - ldrb r0, [r4, #0xe] - strb r0, [ip, #0xe] - ldr r0, [r4, #0x10] - str r0, [ip, #0x10] - add ip, ip, #0x14 - bne _02081428 -_02081454: - ldr r1, [sp, #0xc] - mov r0, #0x14 - add r1, r1, r5 - str r1, [sp, #0xc] - ldr lr, [r6] - ldr r1, [r6, #4] - mov r4, #0 - mla r3, r1, r0, lr - ldr r2, [sp, #8] - ldr r1, [sp, #0x18] - strb r4, [sp, #2] - mla ip, r1, r0, r2 - cmp r3, lr - bls _020814d8 -_0208148c: - sub r3, r3, #0x14 - subs ip, ip, #0x14 - beq _020814b8 - ldmia r3, {r0, r1, r2} - stmia ip, {r0, r1, r2} - ldrsh r0, [r3, #0xc] - strh r0, [ip, #0xc] - ldrb r0, [r3, #0xe] - strb r0, [ip, #0xe] - ldr r0, [r3, #0x10] - str r0, [ip, #0x10] -_020814b8: - ldr r1, [sp, #0x18] - ldr r0, [sp, #0xc] - sub r1, r1, #1 - add r0, r0, #1 - str r1, [sp, #0x18] - str r0, [sp, #0xc] - cmp r3, lr - bhi _0208148c -_020814d8: - mov r0, #0 - strb r0, [sp, #1] - add r3, sp, #0x10 - ldr r2, [r6, #8] - ldr r1, [r3] - add r0, sp, #8 - str r1, [r6, #8] - str r2, [r3] - ldr r2, [r6] - ldr r1, [sp, #8] - str r1, [r6] - str r2, [sp, #8] - ldr r2, [r6, #4] - ldr r1, [sp, #0xc] - str r1, [r6, #4] - str r2, [sp, #0xc] - bl func_ov00_02081b7c - add sp, sp, #0x1c - ldmia sp!, {r3, r4, r5, r6, pc} - arm_func_end func_ov00_02081398 - - .global func_ov00_02081524 - arm_func_start func_ov00_02081524 -func_ov00_02081524: ; 0x02081524 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r4, lr} - sub sp, sp, #8 - ldr r4, [r0, #8] - ldr r0, _020815e8 ; =0x0ccccccc - ldr r1, [sp, #0x14] - sub r0, r0, r4 - cmp r1, r0 - bls _0208154c - bl func_0204dd9c -_0208154c: - ldr r0, _020815ec ; =0x04444444 - cmp r4, r0 - bhs _02081598 - add r1, r4, #1 - ldr r0, _020815f0 ; =0xcccccccd - add r1, r1, r1, lsl #1 - umull r0, r2, r1, r0 - mov r2, r2, lsr #0x2 - ldr r0, [sp, #0x14] - str r2, [sp, #4] - cmp r0, r2 - addhi r0, sp, #0x14 - addls r0, sp, #4 - ldr r0, [r0] - add sp, sp, #8 - add r0, r4, r0 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr -_02081598: - cmp r4, r0, lsl #1 - bhs _020815d4 - ldr r0, [sp, #0x14] - add r1, r4, #1 - mov r2, r1, lsr #0x1 - cmp r0, r1, lsr #1 - addhi r0, sp, #0x14 - str r2, [sp] - addls r0, sp, #0 - ldr r0, [r0] - add sp, sp, #8 - add r0, r4, r0 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr -_020815d4: - ldr r0, _020815e8 ; =0x0ccccccc - add sp, sp, #8 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 - arm_func_end func_ov00_02081524 -_020815e8: .word 0x0ccccccc -_020815ec: .word 0x04444444 -_020815f0: .word 0xcccccccd - - .global func_ov00_020815f4 - arm_func_start func_ov00_020815f4 -func_ov00_020815f4: ; 0x020815f4 - ldr r2, [r0, #4] - sub r1, r2, r1 - str r1, [r0, #4] - bx lr - arm_func_end func_ov00_020815f4 - - .global func_ov00_02081604 - arm_func_start func_ov00_02081604 -func_ov00_02081604: ; 0x02081604 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #0x1c - mov r4, r0 - mov r6, r1 - add r0, sp, #8 - add r1, r4, #8 - mov r5, r2 - bl func_ov00_02081d18 - mov r0, #0 - str r0, [sp, #0x18] - ldmib r4, {r0, r1} - add r2, r0, r6 - mov r0, r4 - sub r1, r2, r1 - bl func_ov00_020817dc - mov r3, #0 - mov r1, r0 - strb r3, [sp, #4] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - add r0, sp, #8 - strb r3, [sp] - bl func_ov00_02081cd0 - ldr ip, [r4, #4] - mov r0, #0 - strb r0, [sp, #3] - ldr r2, [sp, #8] - mov r0, #0x18 - mla r3, ip, r0, r2 - ldr r2, [sp, #0xc] - str ip, [sp, #0x18] - mla r0, r2, r0, r3 - cmp r6, #0 - mov r1, r6 - beq _020816e8 -_02081694: - ldr r2, [r5] - subs r1, r1, #1 - str r2, [r0] - ldr r2, [r5, #4] - str r2, [r0, #4] - ldr r2, [r5, #8] - str r2, [r0, #8] - ldr r2, [r5, #0xc] - str r2, [r0, #0xc] - ldrsh r2, [r5, #0x10] - strh r2, [r0, #0x10] - ldrb r2, [r5, #0x12] - strb r2, [r0, #0x12] - ldrb r2, [r5, #0x13] - strb r2, [r0, #0x13] - ldrb r2, [r5, #0x14] - strb r2, [r0, #0x14] - ldrb r2, [r5, #0x15] - strb r2, [r0, #0x15] - add r0, r0, #0x18 - bne _02081694 -_020816e8: - ldr r0, [sp, #0xc] - mov r1, #0x18 - add r0, r0, r6 - str r0, [sp, #0xc] - ldmia r4, {r2, r3} - mla r0, r3, r1, r2 - mov r6, #0 - ldr r5, [sp, #8] - ldr r3, [sp, #0x18] - strb r6, [sp, #2] - mla r1, r3, r1, r5 - cmp r0, r2 - bls _02081790 -_0208171c: - sub r0, r0, #0x18 - subs r1, r1, #0x18 - beq _02081770 - ldr r3, [r0] - str r3, [r1] - ldr r3, [r0, #4] - str r3, [r1, #4] - ldr r3, [r0, #8] - str r3, [r1, #8] - ldr r3, [r0, #0xc] - str r3, [r1, #0xc] - ldrsh r3, [r0, #0x10] - strh r3, [r1, #0x10] - ldrb r3, [r0, #0x12] - strb r3, [r1, #0x12] - ldrb r3, [r0, #0x13] - strb r3, [r1, #0x13] - ldrb r3, [r0, #0x14] - strb r3, [r1, #0x14] - ldrb r3, [r0, #0x15] - strb r3, [r1, #0x15] -_02081770: - ldr r5, [sp, #0x18] - ldr r3, [sp, #0xc] - sub r5, r5, #1 - add r3, r3, #1 - str r5, [sp, #0x18] - str r3, [sp, #0xc] - cmp r0, r2 - bhi _0208171c -_02081790: - mov r0, #0 - strb r0, [sp, #1] - add r3, sp, #0x10 - ldr r2, [r4, #8] - ldr r1, [r3] - add r0, sp, #8 - str r1, [r4, #8] - str r2, [r3] - ldr r2, [r4] - ldr r1, [sp, #8] - str r1, [r4] - str r2, [sp, #8] - ldr r2, [r4, #4] - ldr r1, [sp, #0xc] - str r1, [r4, #4] - str r2, [sp, #0xc] - bl func_ov00_02081b98 - add sp, sp, #0x1c - ldmia sp!, {r3, r4, r5, r6, pc} - arm_func_end func_ov00_02081604 - - .global func_ov00_020817dc - arm_func_start func_ov00_020817dc -func_ov00_020817dc: ; 0x020817dc - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r4, lr} - sub sp, sp, #8 - ldr r4, [r0, #8] - ldr r0, _020818a0 ; =0x0aaaaaaa - ldr r1, [sp, #0x14] - sub r0, r0, r4 - cmp r1, r0 - bls _02081804 - bl func_0204dd9c -_02081804: - ldr r0, _020818a4 ; =0x038e38e3 - cmp r4, r0 - bhs _02081850 - add r1, r4, #1 - ldr r0, _020818a8 ; =0xcccccccd - add r1, r1, r1, lsl #1 - umull r0, r2, r1, r0 - mov r2, r2, lsr #0x2 - ldr r0, [sp, #0x14] - str r2, [sp, #4] - cmp r0, r2 - addhi r0, sp, #0x14 - addls r0, sp, #4 - ldr r0, [r0] - add sp, sp, #8 - add r0, r4, r0 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr -_02081850: - cmp r4, r0, lsl #1 - bhs _0208188c - ldr r0, [sp, #0x14] - add r1, r4, #1 - mov r2, r1, lsr #0x1 - cmp r0, r1, lsr #1 - addhi r0, sp, #0x14 - str r2, [sp] - addls r0, sp, #0 - ldr r0, [r0] - add sp, sp, #8 - add r0, r4, r0 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr -_0208188c: - ldr r0, _020818a0 ; =0x0aaaaaaa - add sp, sp, #8 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 - arm_func_end func_ov00_020817dc -_020818a0: .word 0x0aaaaaaa -_020818a4: .word 0x038e38e3 -_020818a8: .word 0xcccccccd - - .global func_ov00_020818ac - arm_func_start func_ov00_020818ac -func_ov00_020818ac: ; 0x020818ac - ldr r2, [r0, #4] - sub r1, r2, r1 - str r1, [r0, #4] - bx lr - arm_func_end func_ov00_020818ac - - .global func_ov00_020818bc - arm_func_start func_ov00_020818bc -func_ov00_020818bc: ; 0x020818bc - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #0x1c - mov r4, r0 - mov r6, r1 - add r0, sp, #8 - add r1, r4, #8 - mov r5, r2 - bl func_ov00_02081c60 - mov r0, #0 - str r0, [sp, #0x18] - ldmib r4, {r0, r1} - add r2, r0, r6 - mov r0, r4 - sub r1, r2, r1 - bl func_ov00_02081a90 - mov r3, #0 - mov r1, r0 - strb r3, [sp, #4] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - add r0, sp, #8 - strb r3, [sp] - bl func_ov00_02081c18 - ldr ip, [r4, #4] - mov r0, #0 - strb r0, [sp, #3] - ldr r2, [sp, #8] - mov r0, #0x1c - mla r3, ip, r0, r2 - ldr r2, [sp, #0xc] - str ip, [sp, #0x18] - mla r0, r2, r0, r3 - cmp r6, #0 - mov r1, r6 - beq _020819a0 -_0208194c: - ldr r2, [r5] - subs r1, r1, #1 - str r2, [r0] - ldrb r2, [r5, #4] - strb r2, [r0, #4] - ldr r2, [r5, #8] - str r2, [r0, #8] - ldr r2, [r5, #0xc] - str r2, [r0, #0xc] - ldr r2, [r5, #0x10] - str r2, [r0, #0x10] - ldrsh r2, [r5, #0x14] - strh r2, [r0, #0x14] - ldrsh r2, [r5, #0x16] - strh r2, [r0, #0x16] - ldrh r3, [r5, #0x18] - ldrh r2, [r5, #0x1a] - strh r3, [r0, #0x18] - strh r2, [r0, #0x1a] - add r0, r0, #0x1c - bne _0208194c -_020819a0: - ldr r1, [sp, #0xc] - mov r0, #0x1c - add r1, r1, r6 - str r1, [sp, #0xc] - ldr lr, [r4] - ldr r1, [r4, #4] - mov r5, #0 - mla r3, r1, r0, lr - ldr r2, [sp, #8] - ldr r1, [sp, #0x18] - strb r5, [sp, #2] - mla ip, r1, r0, r2 - cmp r3, lr - bls _02081a44 -_020819d8: - sub r3, r3, #0x1c - subs ip, ip, #0x1c - beq _02081a24 - ldr r1, [r3] - add r0, r3, #8 - str r1, [ip] - ldrb r1, [r3, #4] - add r5, ip, #8 - strb r1, [ip, #4] - ldmia r0, {r0, r1, r2} - stmia r5, {r0, r1, r2} - ldrsh r0, [r3, #0x14] - strh r0, [ip, #0x14] - ldrsh r0, [r3, #0x16] - strh r0, [ip, #0x16] - ldrh r1, [r3, #0x18] - ldrh r0, [r3, #0x1a] - strh r1, [ip, #0x18] - strh r0, [ip, #0x1a] -_02081a24: - ldr r1, [sp, #0x18] - ldr r0, [sp, #0xc] - sub r1, r1, #1 - add r0, r0, #1 - str r1, [sp, #0x18] - str r0, [sp, #0xc] - cmp r3, lr - bhi _020819d8 -_02081a44: - mov r0, #0 - strb r0, [sp, #1] - add r3, sp, #0x10 - ldr r2, [r4, #8] - ldr r1, [r3] - add r0, sp, #8 - str r1, [r4, #8] - str r2, [r3] - ldr r2, [r4] - ldr r1, [sp, #8] - str r1, [r4] - str r2, [sp, #8] - ldr r2, [r4, #4] - ldr r1, [sp, #0xc] - str r1, [r4, #4] - str r2, [sp, #0xc] - bl func_ov00_02081bb4 - add sp, sp, #0x1c - ldmia sp!, {r3, r4, r5, r6, pc} - arm_func_end func_ov00_020818bc - - .global func_ov00_02081a90 - arm_func_start func_ov00_02081a90 -func_ov00_02081a90: ; 0x02081a90 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r4, lr} - sub sp, sp, #8 - ldr r4, [r0, #8] - ldr r0, _02081b54 ; =0x09249249 - ldr r1, [sp, #0x14] - sub r0, r0, r4 - cmp r1, r0 - bls _02081ab8 - bl func_0204dd9c -_02081ab8: - ldr r0, _02081b58 ; =0x030c30c3 - cmp r4, r0 - bhs _02081b04 - add r1, r4, #1 - ldr r0, _02081b5c ; =0xcccccccd - add r1, r1, r1, lsl #1 - umull r0, r2, r1, r0 - mov r2, r2, lsr #0x2 - ldr r0, [sp, #0x14] - str r2, [sp, #4] - cmp r0, r2 - addhi r0, sp, #0x14 - addls r0, sp, #4 - ldr r0, [r0] - add sp, sp, #8 - add r0, r4, r0 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr -_02081b04: - cmp r4, r0, lsl #1 - bhs _02081b40 - ldr r0, [sp, #0x14] - add r1, r4, #1 - mov r2, r1, lsr #0x1 - cmp r0, r1, lsr #1 - addhi r0, sp, #0x14 - str r2, [sp] - addls r0, sp, #0 - ldr r0, [r0] - add sp, sp, #8 - add r0, r4, r0 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr -_02081b40: - ldr r0, _02081b54 ; =0x09249249 - add sp, sp, #8 - ldmia sp!, {r4, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 - arm_func_end func_ov00_02081a90 -_02081b54: .word 0x09249249 -_02081b58: .word 0x030c30c3 -_02081b5c: .word 0xcccccccd - - .global func_ov00_02081b60 - arm_func_start func_ov00_02081b60 -func_ov00_02081b60: ; 0x02081b60 - stmdb sp!, {r4, lr} - mov r4, r0 - mov r1, #0 - str r1, [r4, #4] - bl func_ov00_02081df8 - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081b60 - - .global func_ov00_02081b7c - arm_func_start func_ov00_02081b7c -func_ov00_02081b7c: ; 0x02081b7c - stmdb sp!, {r4, lr} - mov r4, r0 - mov r1, #0 - str r1, [r4, #4] - bl func_ov00_02081d40 - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081b7c - - .global func_ov00_02081b98 - arm_func_start func_ov00_02081b98 -func_ov00_02081b98: ; 0x02081b98 - stmdb sp!, {r4, lr} - mov r4, r0 - mov r1, #0 - str r1, [r4, #4] - bl func_ov00_02081c88 - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081b98 - - .global func_ov00_02081bb4 - arm_func_start func_ov00_02081bb4 -func_ov00_02081bb4: ; 0x02081bb4 - stmdb sp!, {r4, lr} - mov r4, r0 - mov r1, #0 - str r1, [r4, #4] - bl func_ov00_02081bd0 - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081bb4 - - .global func_ov00_02081bd0 - arm_func_start func_ov00_02081bd0 -func_ov00_02081bd0: ; 0x02081bd0 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r1, [r4] - cmp r1, #0 - beq _02081c0c - ldr r1, [r4, #4] - mov r3, #0 - strb r3, [sp] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - bl func_ov00_02081ec4 - ldr r0, [r4] - bl _ZN9SysObjectdlEPv -_02081c0c: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_02081bd0 - - .global func_ov00_02081c18 - arm_func_start func_ov00_02081c18 -func_ov00_02081c18: ; 0x02081c18 - stmdb sp!, {r3, r4, r5, lr} - ldr r2, _02081c58 ; =0x09249249 - mov r4, r1 - mov r5, r0 - cmp r4, r2 - bls _02081c34 - bl func_0204dd9c -_02081c34: - mov r0, #0x1c - mul r0, r4, r0 - ldr r1, _02081c5c ; =data_027e0ce0 - mov r2, #4 - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - str r0, [r5] - str r4, [r5, #8] - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_02081c18 -_02081c58: .word 0x09249249 -_02081c5c: .word data_027e0ce0 - - .global func_ov00_02081c60 - arm_func_start func_ov00_02081c60 -func_ov00_02081c60: ; 0x02081c60 - stmdb sp!, {r4, lr} - mov r4, r0 - mov r2, r1 - mov r1, #0 - str r1, [r4] - add r0, r4, #8 - str r1, [r4, #4] - bl func_ov00_02081ea4 - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081c60 - - .global func_ov00_02081c88 - arm_func_start func_ov00_02081c88 -func_ov00_02081c88: ; 0x02081c88 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r1, [r4] - cmp r1, #0 - beq _02081cc4 - ldr r1, [r4, #4] - mov r3, #0 - strb r3, [sp] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - bl func_ov00_02081ed4 - ldr r0, [r4] - bl _ZN9SysObjectdlEPv -_02081cc4: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_02081c88 - - .global func_ov00_02081cd0 - arm_func_start func_ov00_02081cd0 -func_ov00_02081cd0: ; 0x02081cd0 - stmdb sp!, {r3, r4, r5, lr} - ldr r2, _02081d10 ; =0x0aaaaaaa - mov r4, r1 - mov r5, r0 - cmp r4, r2 - bls _02081cec - bl func_0204dd9c -_02081cec: - mov r0, #0x18 - mul r0, r4, r0 - ldr r1, _02081d14 ; =data_027e0ce0 - mov r2, #4 - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - str r0, [r5] - str r4, [r5, #8] - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_02081cd0 -_02081d10: .word 0x0aaaaaaa -_02081d14: .word data_027e0ce0 - - .global func_ov00_02081d18 - arm_func_start func_ov00_02081d18 -func_ov00_02081d18: ; 0x02081d18 - stmdb sp!, {r4, lr} - mov r4, r0 - mov r2, r1 - mov r1, #0 - str r1, [r4] - add r0, r4, #8 - str r1, [r4, #4] - bl func_ov00_02081eac - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081d18 - - .global func_ov00_02081d40 - arm_func_start func_ov00_02081d40 -func_ov00_02081d40: ; 0x02081d40 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r1, [r4] - cmp r1, #0 - beq _02081d7c - ldr r1, [r4, #4] - mov r3, #0 - strb r3, [sp] - sub r2, sp, #4 - strb r3, [r2] - ldr r2, [r2] - bl func_ov00_02081ee4 - ldr r0, [r4] - bl _ZN9SysObjectdlEPv -_02081d7c: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_02081d40 - - .global func_ov00_02081d88 - arm_func_start func_ov00_02081d88 -func_ov00_02081d88: ; 0x02081d88 - stmdb sp!, {r3, r4, r5, lr} - ldr r2, _02081dc8 ; =0x0ccccccc - mov r4, r1 - mov r5, r0 - cmp r4, r2 - bls _02081da4 - bl func_0204dd9c -_02081da4: - mov r0, #0x14 - mul r0, r4, r0 - ldr r1, _02081dcc ; =data_027e0ce0 - mov r2, #4 - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - str r0, [r5] - str r4, [r5, #8] - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_02081d88 -_02081dc8: .word 0x0ccccccc -_02081dcc: .word data_027e0ce0 - - .global func_ov00_02081dd0 - arm_func_start func_ov00_02081dd0 -func_ov00_02081dd0: ; 0x02081dd0 - stmdb sp!, {r4, lr} - mov r4, r0 - mov r2, r1 - mov r1, #0 - str r1, [r4] - add r0, r4, #8 - str r1, [r4, #4] - bl func_ov00_02081eb4 - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081dd0 - - .global func_ov00_02081df8 - arm_func_start func_ov00_02081df8 -func_ov00_02081df8: ; 0x02081df8 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - beq _02081e30 - ldr r1, [r4, #4] - mov r0, #0 - strb r0, [sp] - ldr r0, [r4, #4] - sub r0, r0, r1 - str r0, [r4, #4] - ldr r0, [r4] - bl _ZN9SysObjectdlEPv -_02081e30: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_02081df8 - - .global func_ov00_02081e3c - arm_func_start func_ov00_02081e3c -func_ov00_02081e3c: ; 0x02081e3c - stmdb sp!, {r3, r4, r5, lr} - mov r4, r1 - mvn r1, #0xc0000000 - mov r5, r0 - cmp r4, r1 - bls _02081e58 - bl func_0204dd9c -_02081e58: - ldr r1, _02081e78 ; =data_027e0ce0 - mov r0, r4, lsl #0x2 - ldr r1, [r1, #4] - mov r2, #4 - bl _ZN9SysObjectnwEmPjj - str r0, [r5] - str r4, [r5, #8] - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_02081e3c -_02081e78: .word data_027e0ce0 - - .global func_ov00_02081e7c - arm_func_start func_ov00_02081e7c -func_ov00_02081e7c: ; 0x02081e7c - stmdb sp!, {r4, lr} - mov r4, r0 - mov r2, r1 - mov r1, #0 - str r1, [r4] - add r0, r4, #8 - str r1, [r4, #4] - bl func_ov00_02081ebc - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081e7c - - .global func_ov00_02081ea4 - arm_func_start func_ov00_02081ea4 -func_ov00_02081ea4: ; 0x02081ea4 - stmia r0, {r1, r2} - bx lr - arm_func_end func_ov00_02081ea4 - - .global func_ov00_02081eac - arm_func_start func_ov00_02081eac -func_ov00_02081eac: ; 0x02081eac - stmia r0, {r1, r2} - bx lr - arm_func_end func_ov00_02081eac - - .global func_ov00_02081eb4 - arm_func_start func_ov00_02081eb4 -func_ov00_02081eb4: ; 0x02081eb4 - stmia r0, {r1, r2} - bx lr - arm_func_end func_ov00_02081eb4 - - .global func_ov00_02081ebc - arm_func_start func_ov00_02081ebc -func_ov00_02081ebc: ; 0x02081ebc - stmia r0, {r1, r2} - bx lr - arm_func_end func_ov00_02081ebc - - .global func_ov00_02081ec4 - arm_func_start func_ov00_02081ec4 -func_ov00_02081ec4: ; 0x02081ec4 - ldr r2, [r0, #4] - sub r1, r2, r1 - str r1, [r0, #4] - bx lr - arm_func_end func_ov00_02081ec4 - - .global func_ov00_02081ed4 - arm_func_start func_ov00_02081ed4 -func_ov00_02081ed4: ; 0x02081ed4 - ldr r2, [r0, #4] - sub r1, r2, r1 - str r1, [r0, #4] - bx lr - arm_func_end func_ov00_02081ed4 - - .global func_ov00_02081ee4 - arm_func_start func_ov00_02081ee4 -func_ov00_02081ee4: ; 0x02081ee4 - ldr r2, [r0, #4] - sub r1, r2, r1 - str r1, [r0, #4] - bx lr - arm_func_end func_ov00_02081ee4 - - .global func_ov00_02081ef4 - arm_func_start func_ov00_02081ef4 -func_ov00_02081ef4: ; 0x02081ef4 - ldr r1, _02081f34 ; =0x0000ffff - mov r2, #0 - strh r1, [r0, #0x24] - strh r1, [r0, #0x26] - strh r1, [r0, #0x28] - strh r1, [r0, #0x2a] - strh r2, [r0, #0x2c] - sub r1, r2, #1 - str r1, [r0, #0x54] - strb r2, [r0, #0x58] - strb r2, [r0, #0x59] - strb r2, [r0, #0x5a] - strb r2, [r0, #0x5b] - strb r2, [r0, #0x5c] - strb r2, [r0, #0x5d] - bx lr - .align 2, 0 - arm_func_end func_ov00_02081ef4 -_02081f34: .word 0x0000ffff - - .global func_ov00_02081f38 - arm_func_start func_ov00_02081f38 -func_ov00_02081f38: ; 0x02081f38 - stmdb sp!, {r4, lr} - mov r4, r0 - bl _ZN9SysObjectdlEPv - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081f38 - - .global func_ov00_02081f4c - arm_func_start func_ov00_02081f4c -func_ov00_02081f4c: ; 0x02081f4c - bx lr - arm_func_end func_ov00_02081f4c - - .global func_ov00_02081f50 - arm_func_start func_ov00_02081f50 -func_ov00_02081f50: ; 0x02081f50 - mov r0, #1 - bx lr - arm_func_end func_ov00_02081f50 - - .global func_ov00_02081f58 - arm_func_start func_ov00_02081f58 -func_ov00_02081f58: ; 0x02081f58 - stmdb sp!, {r4, lr} - mov r4, r0 - bl _ZN9SysObjectdlEPv - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02081f58 - - .global func_ov00_02081f6c - arm_func_start func_ov00_02081f6c -func_ov00_02081f6c: ; 0x02081f6c - bx lr - arm_func_end func_ov00_02081f6c - - .global func_ov00_02081f70 - arm_func_start func_ov00_02081f70 -func_ov00_02081f70: ; 0x02081f70 - mov r0, #1 - bx lr - arm_func_end func_ov00_02081f70 - - .global func_ov00_02081f78 - arm_func_start func_ov00_02081f78 -func_ov00_02081f78: ; 0x02081f78 - mov r0, #1 - bx lr - arm_func_end func_ov00_02081f78 - - .global func_ov00_02081f80 - arm_func_start func_ov00_02081f80 -func_ov00_02081f80: ; 0x02081f80 - stmdb sp!, {r4, lr} - mov r4, r1 - mov r0, r4 - ldr r1, [r0] - ldr r1, [r1, #0x1c] - blx r1 - cmp r0, #0x10 - bgt _02081fcc - bge _02081fec - cmp r0, #3 - bgt _02081fc0 - cmp r0, #1 - blt _02081ffc - cmpne r0, #3 - beq _02081fec - b _02081ffc -_02081fc0: - cmp r0, #0xe - beq _02081fec - b _02081ffc -_02081fcc: - cmp r0, #0x1c - bgt _02081fe4 - bge _02081fec - cmp r0, #0x17 - beq _02081fec - b _02081ffc -_02081fe4: - cmp r0, #0x38 - bne _02081ffc - arm_func_end func_ov00_02081f80 -_02081fec: - mov r0, r4 - ldr r1, [r0] - ldr r1, [r1, #0x20] - blx r1 -_02081ffc: - mov r0, #1 - ldmia sp!, {r4, pc} - - .global func_ov00_02082004 - arm_func_start func_ov00_02082004 -func_ov00_02082004: ; 0x02082004 - mov r0, #1 - bx lr - arm_func_end func_ov00_02082004 - - .global func_ov00_0208200c - arm_func_start func_ov00_0208200c -func_ov00_0208200c: ; 0x0208200c - mov r0, #1 - bx lr - arm_func_end func_ov00_0208200c - - .global func_ov00_02082014 - arm_func_start func_ov00_02082014 -func_ov00_02082014: ; 0x02082014 - stmdb sp!, {r4, lr} - mov r4, r1 - mov r0, r4 - ldr r1, [r0] - ldr r1, [r1, #0x1c] - blx r1 - cmp r0, #0x10 - bgt _02082054 - cmp r0, #0xe - blt _02082048 - cmpne r0, #0x10 - beq _0208206c - b _0208207c -_02082048: - cmp r0, #3 - beq _0208206c - b _0208207c -_02082054: - cmp r0, #0x17 - bgt _02082064 - beq _0208206c - b _0208207c -_02082064: - cmp r0, #0x1c - bne _0208207c - arm_func_end func_ov00_02082014 -_0208206c: - mov r0, r4 - ldr r1, [r0] - ldr r1, [r1, #0x20] - blx r1 -_0208207c: - mov r0, #1 - ldmia sp!, {r4, pc} - - .global func_ov00_02082084 - arm_func_start func_ov00_02082084 -func_ov00_02082084: ; 0x02082084 - mov r0, #1 - bx lr - arm_func_end func_ov00_02082084 - - .global func_ov00_0208208c - arm_func_start func_ov00_0208208c -func_ov00_0208208c: ; 0x0208208c - stmdb sp!, {r4, lr} - mov r4, r0 - bl func_ov00_02081f4c - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0208208c - - .global func_ov00_020820a0 - arm_func_start func_ov00_020820a0 -func_ov00_020820a0: ; 0x020820a0 - stmdb sp!, {r4, lr} - mov r4, r0 - bl func_ov00_02081f4c - mov r0, r4 - bl _ZN9SysObjectdlEPv - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_020820a0 - - .global func_ov00_020820bc - arm_func_start func_ov00_020820bc -func_ov00_020820bc: ; 0x020820bc - stmdb sp!, {r4, lr} - mov r4, r0 - bl func_ov00_02081f4c - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_020820bc - - .global func_ov00_020820d0 - arm_func_start func_ov00_020820d0 -func_ov00_020820d0: ; 0x020820d0 - stmdb sp!, {r4, lr} - mov r4, r0 - bl func_ov00_02081f4c - mov r0, r4 - bl _ZN9SysObjectdlEPv - mov r0, r4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_020820d0 - - .global func_ov00_020820ec - arm_func_start func_ov00_020820ec -func_ov00_020820ec: ; 0x020820ec - ldr ip, _020820f8 ; =func_ov00_0207ca00 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_020820ec -_020820f8: .word func_ov00_0207ca00 - - .global func_ov00_020820fc - arm_func_start func_ov00_020820fc -func_ov00_020820fc: ; 0x020820fc - ldr ip, _02082108 ; =func_ov00_0207ca28 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_020820fc -_02082108: .word func_ov00_0207ca28 - - .global func_ov00_0208210c - arm_func_start func_ov00_0208210c -func_ov00_0208210c: ; 0x0208210c - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x30 - mov lr, #0 - sub ip, lr, #2 - mov r6, #0x47 - mov r3, #0xff - mov r5, r0 - mov r4, r2 - str r6, [sp, #0x18] - str lr, [sp, #0x1c] - str lr, [sp, #0x20] - str ip, [sp, #0x24] - strh lr, [sp, #0x28] - strb r3, [sp, #0x2a] - strb lr, [sp, #0x2b] - strb lr, [sp, #0x2c] - strb lr, [sp, #0x2d] - cmp r1, #0 - beq _02082170 - mov r0, #0xb - str r0, [r4] - mov r0, #2 - strb r0, [r4, #4] - mov r0, #4 - b _02082190 -_02082170: - add r1, sp, #0x18 - bl func_ov00_02082348 - add r0, sp, #0x18 - bl func_ov00_020a5e9c - str r0, [r4] - ldrb r0, [sp, #0x2a] - strb r0, [r4, #4] - ldrb r0, [sp, #0x2b] -_02082190: - strb r0, [r4, #5] - ldr r0, _02082300 ; =data_027e0d38 - ldr r0, [r0] - ldr r0, [r0, #0x28] - add r0, r0, #0x1c - bl func_ov00_020a5e9c - ldr r1, _02082300 ; =data_027e0d38 - str r0, [r4, #8] - ldr r0, [r1] - ldr r0, [r0, #0x28] - ldrb r0, [r0, #0x2e] - strb r0, [r4, #0x10] - ldr r0, [r1] - ldr r0, [r0, #0x28] - ldrsh r0, [r0, #0x36] - strh r0, [r4, #0x14] - ldr r0, [r1] - ldr r2, [r0, #0x28] - ldr r0, [r2, #0x38] - str r0, [r4, #0x18] - ldr r0, [r2, #0x3c] - str r0, [r4, #0x1c] - ldr r0, [r2, #0x40] - str r0, [r4, #0x20] - ldr r0, [r1] - ldr r0, [r0, #0x28] - add r0, r0, #0x44 - bl func_ov00_020a5e9c - str r0, [r4, #0xc] - ldr r1, _02082300 ; =data_027e0d38 - add r0, sp, #0 - ldr r2, [r1] - ldr r2, [r2, #0x28] - ldrb r2, [r2, #0x56] - strb r2, [r4, #0x11] - ldr r2, [r1] - ldr r3, [r2, #0x28] - ldr r2, [r3, #0x5c] - str r2, [r4, #0x24] - ldr r2, [r3, #0x60] - str r2, [r4, #0x28] - ldr r2, [r3, #0x64] - str r2, [r4, #0x2c] - ldr r2, [r1] - ldr r2, [r2, #0x28] - ldrsh r2, [r2, #0x68] - strh r2, [r4, #0x16] - ldr r1, [r1] - ldr r2, [r1, #0x28] - ldr r1, [r2, #0x70] - str r1, [sp] - ldr r1, [r2, #0x74] - str r1, [sp, #4] - ldr r1, [r2, #0x78] - str r1, [sp, #8] - ldr r1, [r2, #0x7c] - str r1, [sp, #0xc] - ldrsh r1, [r2, #0x80] - strh r1, [sp, #0x10] - ldrb r1, [r2, #0x82] - strb r1, [sp, #0x12] - ldrb r1, [r2, #0x83] - strb r1, [sp, #0x13] - ldrb r1, [r2, #0x84] - strb r1, [sp, #0x14] - ldrb r1, [r2, #0x85] - strb r1, [sp, #0x15] - bl func_ov00_020a5e9c - str r0, [r4, #0x1c0] - ldrb r2, [sp, #0x12] - ldr r0, _02082304 ; =data_027e0f70 - mov r1, r4 - strb r2, [r4, #0x1be] - ldrb r2, [sp, #0x13] - strb r2, [r4, #0x1bf] - ldr r0, [r0] - bl func_ov00_02096324 - ldr r0, _02082308 ; =data_027e0f7c - mov r1, r4 - ldr r0, [r0] - bl func_ov00_0209d6e8 - ldr r0, [r5] - ldr r0, [r0, #4] - cmp r0, #3 - addeq sp, sp, #0x30 - ldmeqia sp!, {r4, r5, r6, pc} - ldrb r0, [r5, #8] - strb r0, [r4, #7] - ldrb r0, [r5, #9] - strb r0, [r4, #0x1bc] - add sp, sp, #0x30 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_0208210c -_02082300: .word data_027e0d38 -_02082304: .word data_027e0f70 -_02082308: .word data_027e0f7c - - .global func_ov00_0208230c - arm_func_start func_ov00_0208230c -func_ov00_0208230c: ; 0x0208230c - stmdb sp!, {r3, lr} - ldr r3, [r0] - mov r2, #0xa - ldr r3, [r3] - str r3, [r1] - ldr lr, [r0] - ldrb ip, [lr, #0x1c] - ldrb r3, [lr, #0x1d] - mla r2, ip, r2, lr - add r2, r2, r3 - ldrb r2, [r2, #0x20] - strb r2, [r1, #0x12] - ldrb r0, [r0, #0xc] - strb r0, [r1, #0x13] - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0208230c - - .global func_ov00_02082348 - arm_func_start func_ov00_02082348 -func_ov00_02082348: ; 0x02082348 - stmdb sp!, {r4, lr} - sub sp, sp, #0x18 - mov ip, #0 - mov r4, r1 - sub r3, ip, #2 - mov lr, #0x47 - mov r2, #0xff - add r1, sp, #0 - str lr, [sp] - str ip, [sp, #4] - str ip, [sp, #8] - str r3, [sp, #0xc] - strh ip, [sp, #0x10] - strb r2, [sp, #0x12] - strb ip, [sp, #0x13] - strb ip, [sp, #0x14] - strb ip, [sp, #0x15] - bl func_ov00_0208230c - add r0, sp, #0 - mov r1, r4 - blx func_ov00_02078bf0 - add sp, sp, #0x18 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02082348 - - .global func_ov00_020823a4 - arm_func_start func_ov00_020823a4 -func_ov00_020823a4: ; 0x020823a4 - ldr ip, _020823b0 ; =func_ov00_0207de68 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020823a4 -_020823b0: .word func_ov00_0207de68 - - .global func_ov00_020823b4 - arm_func_start func_ov00_020823b4 -func_ov00_020823b4: ; 0x020823b4 - ldr ip, _020823c0 ; =func_ov00_0207de88 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020823b4 -_020823c0: .word func_ov00_0207de88 - - .global func_ov00_020823c4 - arm_func_start func_ov00_020823c4 -func_ov00_020823c4: ; 0x020823c4 - ldr ip, _020823d0 ; =func_ov00_0207e08c - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020823c4 -_020823d0: .word func_ov00_0207e08c - - .global func_ov00_020823d4 - arm_func_start func_ov00_020823d4 -func_ov00_020823d4: ; 0x020823d4 - ldr ip, _020823e0 ; =func_ov00_0207e0f0 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020823d4 -_020823e0: .word func_ov00_0207e0f0 - - .global func_ov00_020823e4 - arm_func_start func_ov00_020823e4 -func_ov00_020823e4: ; 0x020823e4 - ldr ip, _020823f0 ; =func_ov00_0207e28c - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020823e4 -_020823f0: .word func_ov00_0207e28c - - .global func_ov00_020823f4 - arm_func_start func_ov00_020823f4 -func_ov00_020823f4: ; 0x020823f4 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r1, [r0] - ldr r1, [r1, #0xb4] - blx r1 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020823f4 - - .global func_ov00_0208240c - arm_func_start func_ov00_0208240c -func_ov00_0208240c: ; 0x0208240c - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r1, [r0] - ldr r1, [r1, #0x9c] - blx r1 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0208240c - - .global func_ov00_02082424 - arm_func_start func_ov00_02082424 -func_ov00_02082424: ; 0x02082424 - stmdb sp!, {r4, lr} - mov r4, r0 - ldr r0, [r4, #4] - ldr r1, [r0] - ldr r1, [r1, #0x4c] - blx r1 - cmp r0, #2 - movne r0, #0 - ldmneia sp!, {r4, pc} - ldr r0, [r4, #4] - bl func_ov15_02129c14 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02082424 - - .global func_ov00_02082454 - arm_func_start func_ov00_02082454 -func_ov00_02082454: ; 0x02082454 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - ldr r0, [r6, #4] - mov r5, r1 - ldr r1, [r0] - mov r4, r2 - ldr r1, [r1, #0x4c] - blx r1 - cmp r0, #2 - movne r0, #0 - ldmneia sp!, {r4, r5, r6, pc} - ldr r0, [r6, #4] - mov r1, r5 - mov r2, r4 - bl func_ov15_02129c24 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02082454 - - .global func_ov00_02082494 - arm_func_start func_ov00_02082494 -func_ov00_02082494: ; 0x02082494 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5, #4] - mov r4, r1 - ldr r1, [r0] - ldr r1, [r1, #0x4c] - blx r1 - cmp r0, #2 - movne r0, #0 - ldmneia sp!, {r3, r4, r5, pc} - ldr r0, [r5, #4] - mov r1, r4 - bl func_ov15_02129c34 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_02082494 - - .global func_ov00_020824cc - arm_func_start func_ov00_020824cc -func_ov00_020824cc: ; 0x020824cc - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5, #4] - mov r4, r1 - ldr r1, [r0] - ldr r1, [r1, #0x4c] - blx r1 - cmp r0, #2 - movne r0, #0 - ldmneia sp!, {r3, r4, r5, pc} - ldr r0, [r5, #4] - mov r1, r4 - bl func_ov15_02129c44 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_020824cc - - .global func_ov00_02082504 - arm_func_start func_ov00_02082504 -func_ov00_02082504: ; 0x02082504 - stmdb sp!, {r4, lr} - mov r4, r0 - ldr r0, [r4, #4] - ldr r1, [r0] - ldr r1, [r1, #0x4c] - blx r1 - cmp r0, #2 - movne r0, #0 - ldmneia sp!, {r4, pc} - ldr r0, [r4, #4] - add r0, r0, #0x100 - ldrsh r0, [r0, #0xac] - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02082504 - - .global func_ov00_02082538 - arm_func_start func_ov00_02082538 -func_ov00_02082538: ; 0x02082538 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #0xc - mov r4, r0 - ldr r0, [r4, #4] - ldr r1, [r0] - ldr r1, [r1, #0x4c] - blx r1 - cmp r0, #2 - ldreq r0, [r4, #4] - addeq sp, sp, #0xc - addeq r0, r0, #0x1a0 - ldmeqia sp!, {r3, r4, pc} - ldr r1, _02082590 ; =data_027e0f94 - add r0, sp, #0 - ldr r3, [r1] - ldr r2, [r1, #4] - str r3, [sp] - str r2, [sp, #4] - ldr r1, [r1, #8] - str r1, [sp, #8] - add sp, sp, #0xc - ldmia sp!, {r3, r4, pc} - .align 2, 0 - arm_func_end func_ov00_02082538 -_02082590: .word data_027e0f94 - - .global func_ov00_02082594 - arm_func_start func_ov00_02082594 -func_ov00_02082594: ; 0x02082594 - ldr r0, _020825a4 ; =data_027e0f68 - ldr ip, _020825a8 ; =func_ov00_0208d620 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_02082594 -_020825a4: .word data_027e0f68 -_020825a8: .word func_ov00_0208d620 - - .global func_ov00_020825ac - arm_func_start func_ov00_020825ac -func_ov00_020825ac: ; 0x020825ac - ldr r0, _020825bc ; =data_027e0f68 - ldr ip, _020825c0 ; =func_ov00_0208d680 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_020825ac -_020825bc: .word data_027e0f68 -_020825c0: .word func_ov00_0208d680 - - .global func_ov00_020825c4 - arm_func_start func_ov00_020825c4 -func_ov00_020825c4: ; 0x020825c4 - ldr ip, _020825dc ; =func_0200c8d0 - mov r3, r1 - mov r0, r2 - ldr r1, _020825e0 ; =data_ov00_020e2528 - mov r2, r3 - bx ip - .align 2, 0 - arm_func_end func_ov00_020825c4 -_020825dc: .word func_0200c8d0 -_020825e0: .word data_ov00_020e2528 - - .global func_ov00_020825e4 - arm_func_start func_ov00_020825e4 -func_ov00_020825e4: ; 0x020825e4 - stmdb sp!, {r3, r4, r5, lr} - ldr r3, _02082610 ; =data_027e0f7c - mov r5, r0 - ldr r0, [r3] - mov r4, r2 - bl func_ov00_0209d71c - mov r1, r0 - mov r0, r5 - mov r2, r4 - bl func_ov00_020825c4 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_020825e4 -_02082610: .word data_027e0f7c - - .global func_ov00_02082614 - arm_func_start func_ov00_02082614 -func_ov00_02082614: ; 0x02082614 - stmdb sp!, {r3, lr} - mov r3, #4 - str r3, [sp] - ldr r0, [r0] - mov r3, r1 - mov r1, r2 - mov r2, #0 - bl func_ov00_0207ce20 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02082614 - - .global func_ov00_02082638 - arm_func_start func_ov00_02082638 -func_ov00_02082638: ; 0x02082638 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r3, [r0] - ldr r3, [r3, #0xb0] - blx r3 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02082638 - - .global func_ov00_02082650 - arm_func_start func_ov00_02082650 -func_ov00_02082650: ; 0x02082650 - ldr ip, _0208265c ; =func_ov00_0208005c - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02082650 -_0208265c: .word func_ov00_0208005c - - .global func_ov00_02082660 - arm_func_start func_ov00_02082660 -func_ov00_02082660: ; 0x02082660 - ldr ip, _0208266c ; =func_ov00_0208007c - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02082660 -_0208266c: .word func_ov00_0208007c - - .global func_ov00_02082670 - arm_func_start func_ov00_02082670 -func_ov00_02082670: ; 0x02082670 - ldr ip, _0208267c ; =func_ov00_0208006c - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02082670 -_0208267c: .word func_ov00_0208006c - - .global func_ov00_02082680 - arm_func_start func_ov00_02082680 -func_ov00_02082680: ; 0x02082680 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - mov r3, r2 - ldr ip, [r0] - mov r2, #5 - ldr ip, [ip, #0x98] - blx ip - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02082680 - - .global func_ov00_020826a0 - arm_func_start func_ov00_020826a0 -func_ov00_020826a0: ; 0x020826a0 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - mov r3, r2 - ldr ip, [r0] - mov r2, #7 - ldr ip, [ip, #0x98] - blx ip - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020826a0 - - .global func_ov00_020826c0 - arm_func_start func_ov00_020826c0 -func_ov00_020826c0: ; 0x020826c0 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - ldr r0, [r6, #4] - mov r5, r2 - mov r4, r3 - cmp r0, #0 - ldmneia sp!, {r4, r5, r6, pc} - cmp r1, #4 - addls pc, pc, r1, lsl #2 - b _0208278c -_020826e8: ; jump table - b _0208275c ; case 0 - b _0208278c ; case 1 - b _0208272c ; case 2 - b _0208278c ; case 3 - b _020826fc ; case 4 -_020826fc: - ldr r1, _020827bc ; =data_027e0ce0 - mov r0, #0x790 - ldr r1, [r1, #4] - mov r2, #4 - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _02082724 - mov r1, r5 - mov r2, r4 - bl func_ov12_0212b358 -_02082724: - str r0, [r6, #4] - ldmia sp!, {r4, r5, r6, pc} -_0208272c: - ldr r1, _020827bc ; =data_027e0ce0 - mov r0, #0x1b0 - ldr r1, [r1, #4] - mov r2, #4 - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _02082754 - mov r1, r5 - mov r2, r4 - bl func_ov15_02128dd8 -_02082754: - str r0, [r6, #4] - ldmia sp!, {r4, r5, r6, pc} -_0208275c: - ldr r1, _020827bc ; =data_027e0ce0 - mov r0, #0x1dc - ldr r1, [r1, #4] - mov r2, #4 - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _02082784 - mov r1, r5 - mov r2, r4 - bl func_ov18_0215b4a0 -_02082784: - str r0, [r6, #4] - ldmia sp!, {r4, r5, r6, pc} -_0208278c: - ldr r1, _020827bc ; =data_027e0ce0 - mov r0, #0x790 - ldr r1, [r1, #4] - mov r2, #4 - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _020827b4 - mov r1, r5 - mov r2, r4 - blx func_ov17_0215b4e8 -_020827b4: - str r0, [r6, #4] - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_020826c0 -_020827bc: .word data_027e0ce0 - - .global func_ov00_020827c0 - arm_func_start func_ov00_020827c0 -func_ov00_020827c0: ; 0x020827c0 - stmdb sp!, {r4, lr} - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #0 - ldmeqia sp!, {r4, pc} - beq _020827e4 - ldr r1, [r0] - ldr r1, [r1, #4] - blx r1 -_020827e4: - mov r0, #0 - str r0, [r4, #4] - ldmia sp!, {r4, pc} - arm_func_end func_ov00_020827c0 - - .global func_ov00_020827f0 - arm_func_start func_ov00_020827f0 -func_ov00_020827f0: ; 0x020827f0 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r1, [r0] - ldr r1, [r1, #0x44] - blx r1 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020827f0 - - .global func_ov00_02082808 - arm_func_start func_ov00_02082808 -func_ov00_02082808: ; 0x02082808 - stmdb sp!, {r3, r4, r5, lr} - ldr r2, _020828b4 ; =data_027e0d38 - mov r5, r1 - ldr r1, [r2] - ldr r1, [r1, #0x14] - cmp r1, #1 - ldmeqia sp!, {r3, r4, r5, pc} - bl func_ov00_02084740 - mov r4, r0 - cmp r5, #0 - beq _0208286c - ldr r0, _020828b4 ; =data_027e0d38 - ldr r0, [r0] - add r0, r0, #0xc - bl func_ov00_020a5e9c - cmp r0, #0 - bne _02082854 - ldr r0, _020828b8 ; =data_ov15_02190458 - bl func_ov15_021849a4 -_02082854: - ldr r0, _020828bc ; =data_ov00_020eec68 - mov r1, r4 - mov r2, #0 - mov r3, #0x7f - bl func_ov00_020d70a4 - b _02082890 -_0208286c: - ldr r0, _020828bc ; =data_ov00_020eec68 - bl func_ov00_020d7424 - cmp r4, r0 - ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _020828bc ; =data_ov00_020eec68 - mov r1, r4 - mov r2, #0 - mov r3, #0x7f - bl func_ov00_020d70a4 -_02082890: - ldr r0, _020828b4 ; =data_027e0d38 - ldr r0, [r0] - add r0, r0, #0xc - bl func_ov00_020a5e9c - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _020828bc ; =data_ov00_020eec68 - bl func_ov00_020d72b8 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_02082808 -_020828b4: .word data_027e0d38 -_020828b8: .word data_ov15_02190458 -_020828bc: .word data_ov00_020eec68 - - .global func_ov00_020828c0 - arm_func_start func_ov00_020828c0 -func_ov00_020828c0: ; 0x020828c0 - stmdb sp!, {r3, lr} - ldr ip, [sp, #8] - str ip, [sp] - ldr r0, [r0, #4] - ldr ip, [r0] - ldr ip, [ip, #0x7c] - blx ip - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020828c0 - - .global func_ov00_020828e0 - arm_func_start func_ov00_020828e0 -func_ov00_020828e0: ; 0x020828e0 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r2, [r0] - ldr r2, [r2, #0x84] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020828e0 - - .global func_ov00_020828f8 - arm_func_start func_ov00_020828f8 -func_ov00_020828f8: ; 0x020828f8 - ldr ip, _02082904 ; =func_ov00_0207f38c - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020828f8 -_02082904: .word func_ov00_0207f38c - - .global func_ov00_02082908 - arm_func_start func_ov00_02082908 -func_ov00_02082908: ; 0x02082908 - ldr r0, [r0] - ldrb r0, [r0, #0xb0] - bx lr - arm_func_end func_ov00_02082908 - - .global func_ov00_02082914 - arm_func_start func_ov00_02082914 -func_ov00_02082914: ; 0x02082914 - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - sub sp, sp, #0x34 - mov r8, r1 - sub r1, r8, #0xfa - mov r9, r0 - cmp r1, #4 - addls pc, pc, r1, lsl #2 - b _02082ac0 -_02082934: ; jump table - b _02082948 ; case 0 - b _02082990 ; case 1 - b _02082990 ; case 2 - b _02082990 ; case 3 - b _02082990 ; case 4 -_02082948: - ldr r0, _02082ac8 ; =data_027e0d38 - add r3, sp, #0x20 - ldr r0, [r0] - ldr r0, [r0, #0x28] - add r4, r0, #0x5c - ldmia r4, {r0, r1, r2} - stmia r3, {r0, r1, r2} - ldrsh r0, [r4, #0xc] - mov r1, r3 - strh r0, [sp, #0x2c] - ldrb r0, [r4, #0xe] - strb r0, [sp, #0x2e] - ldr r0, [r4, #0x10] - str r0, [sp, #0x30] - ldr r0, [r9, #4] - bl func_ov00_0207f844 - add sp, sp, #0x34 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} -_02082990: - ldr r0, _02082ac8 ; =data_027e0d38 - mov r1, #0xff - mov r4, #0 - ldr r0, [r0] - strb r1, [sp, #0x1a] - str r4, [sp, #0x1c] - ldr r1, [r0, #0x28] - ldr r0, [r9] - ldr r3, [r1, #0x38] - ldr r2, [r1, #0x3c] - ldr r1, [r1, #0x40] - ldr r0, [r0, #4] - mov r5, #0x2000 - mov r6, r5 - str r3, [sp] - str r2, [sp, #4] - str r1, [sp, #8] - cmp r0, #2 - mov r7, #0xfd - bne _02082a0c - ldr r0, [r9, #4] - ldr r1, [r0] - ldr r1, [r1, #0x88] - blx r1 - add r5, r0, #0xa000 - ldr r0, [r9, #4] - ldr r1, [r0] - ldr r1, [r1, #0x8c] - blx r1 - add r6, r0, #0xa000 - mov r7, #0xfe -_02082a0c: - sub r0, r8, #0xfb - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _02082a90 -_02082a1c: ; jump table - b _02082a2c ; case 0 - b _02082a48 ; case 1 - b _02082a60 ; case 2 - b _02082a7c ; case 3 -_02082a2c: - mov r0, r9 - bl func_ov00_020833e8 - sub r0, r0, r6 - mov r4, #0x8000 - str r0, [sp, #8] - rsb r4, r4, #0 - b _02082a90 -_02082a48: - mov r0, r9 - bl func_ov00_020833d0 - add r0, r6, r0 - str r0, [sp, #8] - mov r4, #0 - b _02082a90 -_02082a60: - mov r0, r9 - bl func_ov00_020833dc - sub r0, r0, r5 - mov r4, #0x4000 - str r0, [sp] - rsb r4, r4, #0 - b _02082a90 -_02082a7c: - mov r0, r9 - bl func_ov00_020833c4 - add r0, r5, r0 - str r0, [sp] - mov r4, #0x4000 -_02082a90: - ldr r2, [sp] - ldr r1, [sp, #4] - ldr r0, [sp, #8] - str r1, [sp, #0x10] - strb r8, [sp, #0x1a] - str r2, [sp, #0xc] - strh r4, [sp, #0x18] - str r7, [sp, #0x1c] - str r0, [sp, #0x14] - ldr r0, [r9, #4] - add r1, sp, #0xc - bl func_ov00_0207f844 -_02082ac0: - add sp, sp, #0x34 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} - .align 2, 0 - arm_func_end func_ov00_02082914 -_02082ac8: .word data_027e0d38 - - .global func_ov00_02082acc - arm_func_start func_ov00_02082acc -func_ov00_02082acc: ; 0x02082acc - ldr ip, _02082ad8 ; =func_ov00_0207d7bc - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_02082acc -_02082ad8: .word func_ov00_0207d7bc - - .global func_ov00_02082adc - arm_func_start func_ov00_02082adc -func_ov00_02082adc: ; 0x02082adc - ldr r0, _02082aec ; =data_027e0f70 - ldr ip, _02082af0 ; =func_ov00_02096418 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_02082adc -_02082aec: .word data_027e0f70 -_02082af0: .word func_ov00_02096418 - - .global func_ov00_02082af4 - arm_func_start func_ov00_02082af4 -func_ov00_02082af4: ; 0x02082af4 - stmdb sp!, {r4, lr} - ldr r1, _02082b38 ; =data_027e0f68 - mov r4, r0 - ldr r0, [r1] - bl func_ov00_0208cc88 - ldr r0, [r4, #4] - ldr r1, [r0] - ldr r1, [r1, #0x48] - blx r1 - mov r0, r4 - mov r1, #0 - bl func_ov00_02082808 - mov r0, #1 - strb r0, [r4, #0xa] - mov r0, #0 - strb r0, [r4, #0xb] - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_02082af4 -_02082b38: .word data_027e0f68 - - .global func_ov00_02082b3c - arm_func_start func_ov00_02082b3c -func_ov00_02082b3c: ; 0x02082b3c - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r5, r1 - mov r6, r0 - ldrb r2, [r5, #0x12] - ldr r1, [r6] - add r0, sp, #0 - bl func_ov00_0207cb7c - mov r0, r6 - bl func_ov00_02082d28 - ldrb r1, [sp] - cmp r1, r0 - bne _02082bac - mov r0, r6 - bl func_ov00_02082d34 - ldrb r1, [sp, #1] - cmp r1, r0 - bne _02082bac - ldr r0, [r5, #8] - cmp r0, #1 - bne _02082ba0 - ldr r0, _02082ce0 ; =data_027e0d38 - ldr r0, [r0] - ldr r0, [r0, #0x14] - cmp r0, #1 - beq _02082bac -_02082ba0: - ldrb r0, [r5, #0x15] - cmp r0, #0 - beq _02082c90 -_02082bac: - ldr r0, _02082ce4 ; =gAdventureFlags - ldr r0, [r0] - bl _ZN14AdventureFlags18func_ov00_020976c8Ev - ldr r0, _02082ce8 ; =data_027e0f64 - ldr r0, [r0] - bl func_ov00_0208b13c - ldr r1, _02082cec ; =data_027e0fe4 - mov r0, r6 - ldr r4, [r1] - bl func_ov00_02082d08 - mov r3, r0 - ldrb r1, [sp] - ldrb r2, [sp, #1] - mov r0, r4 - blx func_ov04_02105608 - ldr r0, [r6, #4] - ldr r1, [r0] - ldr r1, [r1, #0x2c] - blx r1 - ldr r0, _02082cf0 ; =data_027e0f68 - ldr r0, [r0] - blx func_ov04_02102b28 - ldr r0, _02082cf4 ; =data_027e0f6c - ldr r0, [r0] - blx func_ov04_02102770 - ldr r0, _02082cf8 ; =data_027e0f78 - ldr r0, [r0] - blx func_ov04_02102e3c - ldrb r7, [r5, #0x12] - ldr r0, [r6] - mov r4, #0 - bl func_ov00_0207d778 - mov r1, r7 - mov r7, r0 - ldr r0, [r6] - bl func_ov00_0207d788 - cmp r7, r0 - ldrb r2, [sp] - ldr r1, [r6] - movne r4, #1 - strb r2, [r1, #0x1c] - mov r0, r6 - ldrb ip, [sp, #1] - ldr r6, [r6] - mov r1, r5 - mov r2, r4 - mov r3, #0 - strb ip, [r6, #0x1d] - blx func_ov04_021024c4 - ldr r0, _02082cec ; =data_027e0fe4 - ldrb r1, [r5, #0x12] - ldr r0, [r0] - blx func_ov04_02105578 - ldr r0, _02082cfc ; =data_027e103c - ldr r0, [r0] - bl func_ov00_020cfcec - b _02082cd8 -_02082c90: - ldr r0, _02082ce4 ; =gAdventureFlags - ldr r0, [r0] - bl _ZN14AdventureFlags18func_ov00_020976c8Ev - ldrb r1, [r5, #0x13] - ldr r0, _02082d00 ; =data_027e0f90 - mov r2, #0 - strb r1, [r6, #0xc] - ldr r0, [r0] - ldrb r1, [r5, #0x13] - ldr r3, [r0] - ldr r3, [r3, #0x38] - blx r3 - ldr r0, _02082d04 ; =data_027e0c68 - blx func_ov04_02106db8 - ldr r0, [r6, #4] - ldr r1, [r0] - ldr r1, [r1, #0x18] - blx r1 -_02082cd8: - mov r0, #1 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - .align 2, 0 - arm_func_end func_ov00_02082b3c -_02082ce0: .word data_027e0d38 -_02082ce4: .word gAdventureFlags -_02082ce8: .word data_027e0f64 -_02082cec: .word data_027e0fe4 -_02082cf0: .word data_027e0f68 -_02082cf4: .word data_027e0f6c -_02082cf8: .word data_027e0f78 -_02082cfc: .word data_027e103c -_02082d00: .word data_027e0f90 -_02082d04: .word data_027e0c68 - - .global func_ov00_02082d08 - arm_func_start func_ov00_02082d08 -func_ov00_02082d08: ; 0x02082d08 - ldr r3, [r0] - mov r0, #0xa - ldrb r2, [r3, #0x1c] - ldrb r1, [r3, #0x1d] - mla r0, r2, r0, r3 - add r0, r0, r1 - ldrb r0, [r0, #0x20] - bx lr - arm_func_end func_ov00_02082d08 - - .global func_ov00_02082d28 - arm_func_start func_ov00_02082d28 -func_ov00_02082d28: ; 0x02082d28 - ldr r0, [r0] - ldrb r0, [r0, #0x1c] - bx lr - arm_func_end func_ov00_02082d28 - - .global func_ov00_02082d34 - arm_func_start func_ov00_02082d34 -func_ov00_02082d34: ; 0x02082d34 - ldr r0, [r0] - ldrb r0, [r0, #0x1d] - bx lr - arm_func_end func_ov00_02082d34 - - .global func_ov00_02082d40 - arm_func_start func_ov00_02082d40 -func_ov00_02082d40: ; 0x02082d40 - ldr r3, [r0] - ldr r0, [r3, #4] - cmp r0, #2 - bne _02082d6c - ldrb r2, [r3, #0x1c] - mov r0, #0xa - ldrb r1, [r3, #0x1d] - mla r0, r2, r0, r3 - add r0, r0, r1 - ldrb r0, [r0, #0x20] - bx lr -_02082d6c: - ldrb r0, [r3, #0xb1] - bx lr - arm_func_end func_ov00_02082d40 - - .global func_ov00_02082d74 - arm_func_start func_ov00_02082d74 -func_ov00_02082d74: ; 0x02082d74 - ldr ip, _02082d80 ; =func_ov00_02078bc4 - mov r0, r1 - bx ip - .align 2, 0 - arm_func_end func_ov00_02082d74 -_02082d80: .word func_ov00_02078bc4 - - .global func_ov00_02082d84 - arm_func_start func_ov00_02082d84 -func_ov00_02082d84: ; 0x02082d84 - stmdb sp!, {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, r3 - bl func_ov00_0208335c - mov r1, r0, lsl #0xc - mov r0, #0x100000 - bl Divide - mov r4, r0 - mov r0, r8 - bl func_ov00_02083368 - mov r1, r0, lsl #0xc - mov r0, #0xc0000 - bl Divide - ldrb r1, [r7] - mov r1, r1, lsl #0xc - smull r3, r2, r1, r4 - adds r3, r3, #0x800 - adc r1, r2, #0 - mov r2, r3, lsr #0xc - orr r2, r2, r1, lsl #20 - add r1, r2, r4, asr #1 - add r1, r1, #0x800 - mov r1, r1, asr #0xc - str r1, [r6] - ldrb r1, [r7, #1] - mov r1, r1, lsl #0xc - smull r3, r2, r1, r0 - adds r3, r3, #0x800 - adc r1, r2, #0 - mov r2, r3, lsr #0xc - orr r2, r2, r1, lsl #20 - add r0, r2, r0, asr #1 - add r0, r0, #0x800 - mov r0, r0, asr #0xc - str r0, [r5] - ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_end func_ov00_02082d84 - - .global func_ov00_02082e1c - arm_func_start func_ov00_02082e1c -func_ov00_02082e1c: ; 0x02082e1c - stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x34 - mov r8, r0 - ldr r0, [r8] - mov r7, r1 - ldrb r1, [r0, #0x25c] - mov r6, r2 - cmp r1, #0 - beq _02083050 - bl func_ov00_0207d47c - cmp r0, #0 - bne _02083038 - mvn r1, #0xff - ldr r0, _02083068 ; =data_027e0d38 - str r1, [sp, #0xc] - str r1, [sp, #8] - ldr r1, [r8, #4] - ldr r0, [r0] - ldrb r4, [r1, #0x1a] - bl func_ov00_02078b40 - cmp r0, #0 - bne _02082e88 - ldr r0, _02083068 ; =data_027e0d38 - ldr r0, [r0] - ldr r0, [r0, #0x28] - ldrb r5, [r0, #0x9a] - b _02082e98 -_02082e88: - ldr r0, _02083068 ; =data_027e0d38 - ldr r0, [r0] - ldr r0, [r0, #0x28] - ldrb r5, [r0, #0x2e] -_02082e98: - cmp r5, #0xff - bne _02082ebc - ldr r3, [r8] - mov r0, #0xa - ldrb r2, [r3, #0x1e] - ldrb r1, [r3, #0x1f] - mla r0, r2, r0, r3 - add r0, r0, r1 - ldrb r5, [r0, #0x20] -_02082ebc: - ldr r0, _02083068 ; =data_027e0d38 - ldr r0, [r0] - bl func_ov00_02078b40 - cmp r0, #0 - bne _02082ef8 - ldr r0, _02083068 ; =data_027e0d38 - ldr r0, [r0] - ldr r0, [r0, #0x28] - ldr r2, [r0, #0xa4] - ldr r1, [r0, #0xa8] - ldr r0, [r0, #0xa0] - str r0, [sp, #0x28] - str r2, [sp, #0x2c] - str r1, [sp, #0x30] - b _02082f1c -_02082ef8: - ldr r0, _02083068 ; =data_027e0d38 - ldr r0, [r0] - ldr r0, [r0, #0x28] - ldr r2, [r0, #0x3c] - ldr r1, [r0, #0x40] - ldr r0, [r0, #0x38] - str r0, [sp, #0x28] - str r2, [sp, #0x2c] - str r1, [sp, #0x30] -_02082f1c: - ldr r0, [r8] - add r2, sp, #0xc - add r3, sp, #8 - mov r1, r4 - bl func_ov00_0207d518 - cmp r0, #0 - ldr r0, [r8] - bne _02082fc0 - add r2, sp, #0xc - add r3, sp, #8 - mov r1, r5 - bl func_ov00_0207d518 - ldr r1, [r8] - add r0, sp, #6 - mov r2, r5 - bl func_ov00_0207cb7c - ldrb r1, [sp, #7] - add r0, sp, #4 - add r2, sp, #0x28 - str r1, [sp] - ldrb r3, [sp, #6] - mov r1, r8 - bl func_ov00_02083a54 - ldr r0, [r8] - bl func_ov00_0207d5c4 - ldrb r1, [sp, #4] - ldr r3, [sp, #0xc] - mov r1, r1, lsl #0xc - smull r2, r0, r1, r0 - adds r1, r2, #0x800 - adc r0, r0, #0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #20 - add r0, r1, #0x800 - add r0, r3, r0, asr #12 - str r0, [r7] - ldr r0, [r8] - bl func_ov00_0207d5f0 - ldrb r1, [sp, #5] - ldr r3, [sp, #8] - b _02083008 -_02082fc0: - bl func_ov00_0207d5c4 - ldr r2, [r8, #4] - ldr r1, [sp, #0xc] - ldrb r2, [r2, #0x1b] - mov r2, r2, lsl #0xc - smull r3, r0, r2, r0 - adds r2, r3, #0x800 - adc r0, r0, #0 - mov r2, r2, lsr #0xc - orr r2, r2, r0, lsl #20 - add r0, r2, #0x800 - add r0, r1, r0, asr #12 - str r0, [r7] - ldr r0, [r8] - bl func_ov00_0207d5f0 - ldr r1, [r8, #4] - ldr r3, [sp, #8] - ldrb r1, [r1, #0x1c] -_02083008: - mov r1, r1, lsl #0xc - smull r2, r0, r1, r0 - adds r1, r2, #0x800 - adc r0, r0, #0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #20 - add r0, r1, #0x800 - add r0, r3, r0, asr #12 - str r0, [r6] - add sp, sp, #0x34 - mov r0, #1 - ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} -_02083038: - mov r0, #0x80 - str r0, [r7] - str r0, [r6] - add sp, sp, #0x34 - mov r0, #0 - ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} -_02083050: - mov r0, #0xc0 - str r0, [r7] - str r0, [r6] - mov r0, #0 - add sp, sp, #0x34 - ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 - arm_func_end func_ov00_02082e1c -_02083068: .word data_027e0d38 - - .global func_ov00_0208306c - arm_func_start func_ov00_0208306c -func_ov00_0208306c: ; 0x0208306c - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x20 - mov r6, r0 - ldr lr, [r6] - mvn r3, #2 - ldr ip, [lr, #8] - mov r5, r1 - cmp ip, r3 - addne r0, r3, #1 - mov r4, r2 - cmpne ip, r0 - beq _020830f0 - add r0, r3, #2 - cmp ip, r0 - bne _02083138 - ldr r1, _02083154 ; =data_027e0f94 - add r0, sp, #4 - ldr r2, [r1, #4] - ldr r3, [r1] - str r2, [sp, #0x18] - str r3, [sp, #0x14] - ldr r3, [r1, #8] - add r2, sp, #0x14 - mov r1, r6 - str r3, [sp, #0x1c] - bl func_ov00_02083a1c - add r1, sp, #4 - mov r0, r6 - mov r2, r5 - mov r3, r4 - bl func_ov00_02082d84 - add sp, sp, #0x20 - ldmia sp!, {r4, r5, r6, pc} -_020830f0: - ldr r0, _02083158 ; =data_027e0d38 - add r2, sp, #8 - ldr ip, [r0] - mov r0, r6 - ldr r6, [ip, #0x28] - mov r3, r5 - ldr r1, [r6, #0x5c] - str r1, [sp, #8] - ldr r1, [r6, #0x60] - str r1, [sp, #0xc] - ldr r1, [r6, #0x64] - str r1, [sp, #0x10] - str r4, [sp] - ldr r1, [ip, #0x28] - ldrb r1, [r1, #0x56] - bl func_ov00_02083244 - add sp, sp, #0x20 - ldmia sp!, {r4, r5, r6, pc} -_02083138: - ldr r0, [lr, #0xb4] - str r0, [r5] - ldr r0, [r6] - ldr r0, [r0, #0xb8] - str r0, [r4] - add sp, sp, #0x20 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_0208306c -_02083154: .word data_027e0f94 -_02083158: .word data_027e0d38 - - .global func_ov00_0208315c - arm_func_start func_ov00_0208315c -func_ov00_0208315c: ; 0x0208315c - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #0x1c - mov r6, r0 - ldr lr, [r6] - mvn r3, #2 - ldr ip, [lr, #8] - mov r5, r1 - cmp ip, r3 - addne r1, r3, #1 - mov r4, r2 - cmpne ip, r1 - beq _020831d8 - add r1, r3, #2 - cmp ip, r1 - bne _02083220 - ldr r1, _0208323c ; =data_027e0f94 - ldr r3, [r1] - ldr r2, [r1, #4] - str r3, [sp, #0x10] - str r2, [sp, #0x14] - ldr r1, [r1, #8] - str r1, [sp, #0x18] - bl func_ov00_02082d08 - mov r1, r0 - add r2, sp, #0x10 - mov r0, r6 - mov r3, r5 - str r4, [sp] - bl func_ov00_02083298 - add sp, sp, #0x1c - ldmia sp!, {r3, r4, r5, r6, pc} -_020831d8: - ldr r0, _02083240 ; =data_027e0d38 - add r2, sp, #4 - ldr ip, [r0] - mov r0, r6 - ldr r6, [ip, #0x28] - mov r3, r5 - ldr r1, [r6, #0x5c] - str r1, [sp, #4] - ldr r1, [r6, #0x60] - str r1, [sp, #8] - ldr r1, [r6, #0x64] - str r1, [sp, #0xc] - str r4, [sp] - ldr r1, [ip, #0x28] - ldrb r1, [r1, #0x56] - bl func_ov00_02083298 - add sp, sp, #0x1c - ldmia sp!, {r3, r4, r5, r6, pc} -_02083220: - ldr r0, [lr, #0xbc] - str r0, [r5] - ldr r0, [r6] - ldr r0, [r0, #0xc0] - str r0, [r4] - add sp, sp, #0x1c - ldmia sp!, {r3, r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_0208315c -_0208323c: .word data_027e0f94 -_02083240: .word data_027e0d38 - - .global func_ov00_02083244 - arm_func_start func_ov00_02083244 -func_ov00_02083244: ; 0x02083244 - stmdb sp!, {r3, lr} - ldr r0, _02083290 ; =data_ov00_020e24e8 - cmp r1, #4 - movhs r1, #0 - ldr ip, [r0, r1, lsl #3] - ldr lr, [r2] - ldr r0, _02083294 ; =data_ov00_020e24ec - sub ip, lr, ip - add ip, ip, #0x800 - mov ip, ip, asr #0xc - str ip, [r3] - ldr r1, [r0, r1, lsl #3] - ldr r2, [r2, #8] - ldr r0, [sp, #8] - sub r1, r2, r1 - add r1, r1, #0x800 - mov r1, r1, asr #0xc - str r1, [r0] - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_02083244 -_02083290: .word data_ov00_020e24e8 -_02083294: .word data_ov00_020e24ec - - .global func_ov00_02083298 - arm_func_start func_ov00_02083298 -func_ov00_02083298: ; 0x02083298 - stmdb sp!, {r3, lr} - ldr r0, _020832fc ; =data_ov00_020e24e8 - cmp r1, #4 - movhs r1, #0 - ldr lr, _02083300 ; =data_ov00_020e24c8 - ldr ip, [r2] - ldr r0, [r0, r1, lsl #3] - ldr lr, [lr, r1, lsl #3] - sub r0, ip, r0 - mov r0, r0, asr #0x1 - add r0, r0, #0x800 - add r0, lr, r0, asr #12 - str r0, [r3] - ldr r0, _02083304 ; =data_ov00_020e24ec - ldr r3, _02083308 ; =data_ov00_020e24cc - ldr r2, [r2, #8] - ldr r0, [r0, r1, lsl #3] - ldr r3, [r3, r1, lsl #3] - sub r0, r2, r0 - mov r0, r0, asr #0x1 - add r1, r0, #0x800 - ldr r0, [sp, #8] - add r1, r3, r1, asr #12 - str r1, [r0] - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_02083298 -_020832fc: .word data_ov00_020e24e8 -_02083300: .word data_ov00_020e24c8 -_02083304: .word data_ov00_020e24ec -_02083308: .word data_ov00_020e24cc - - .global func_ov00_0208330c - arm_func_start func_ov00_0208330c -func_ov00_0208330c: ; 0x0208330c - ldr r0, [r0] - ldrb r0, [r0, #0x25c] - bx lr - arm_func_end func_ov00_0208330c - - .global func_ov00_02083318 - arm_func_start func_ov00_02083318 -func_ov00_02083318: ; 0x02083318 - ldr ip, _02083324 ; =func_ov00_0207d4e4 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083318 -_02083324: .word func_ov00_0207d4e4 - - .global func_ov00_02083328 - arm_func_start func_ov00_02083328 -func_ov00_02083328: ; 0x02083328 - stmdb sp!, {r4, lr} - mov r4, r0 - bl func_ov00_02082d08 - mov r1, r0 - ldr r0, [r4] - bl func_ov00_0207d4e4 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02083328 - - .global func_ov00_02083344 - arm_func_start func_ov00_02083344 -func_ov00_02083344: ; 0x02083344 - ldr r0, [r0] - ldrb r0, [r0, #0x86] - bx lr - arm_func_end func_ov00_02083344 - - .global func_ov00_02083350 - arm_func_start func_ov00_02083350 -func_ov00_02083350: ; 0x02083350 - ldr r0, [r0] - ldrb r0, [r0, #0x87] - bx lr - arm_func_end func_ov00_02083350 - - .global func_ov00_0208335c - arm_func_start func_ov00_0208335c -func_ov00_0208335c: ; 0x0208335c - ldr r0, [r0, #4] - ldrh r0, [r0, #0x28] - bx lr - arm_func_end func_ov00_0208335c - - .global func_ov00_02083368 - arm_func_start func_ov00_02083368 -func_ov00_02083368: ; 0x02083368 - ldr r0, [r0, #4] - ldrh r0, [r0, #0x2a] - bx lr - arm_func_end func_ov00_02083368 - - .global func_ov00_02083374 - arm_func_start func_ov00_02083374 -func_ov00_02083374: ; 0x02083374 - stmdb sp!, {r3, lr} - bl func_ov00_0208335c - mov r0, r0, lsl #0xc - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02083374 - - .global func_ov00_02083384 - arm_func_start func_ov00_02083384 -func_ov00_02083384: ; 0x02083384 - stmdb sp!, {r3, lr} - bl func_ov00_02083368 - mov r0, r0, lsl #0xc - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02083384 - - .global func_ov00_02083394 - arm_func_start func_ov00_02083394 -func_ov00_02083394: ; 0x02083394 - ldr r0, [r0] - ldr r0, [r0, #0x98] - bx lr - arm_func_end func_ov00_02083394 - - .global func_ov00_020833a0 - arm_func_start func_ov00_020833a0 -func_ov00_020833a0: ; 0x020833a0 - ldr r0, [r0] - ldr r0, [r0, #0xa0] - bx lr - arm_func_end func_ov00_020833a0 - - .global func_ov00_020833ac - arm_func_start func_ov00_020833ac -func_ov00_020833ac: ; 0x020833ac - ldr r0, [r0] - ldr r0, [r0, #0xa4] - bx lr - arm_func_end func_ov00_020833ac - - .global func_ov00_020833b8 - arm_func_start func_ov00_020833b8 -func_ov00_020833b8: ; 0x020833b8 - ldr r0, [r0] - ldr r0, [r0, #0xac] - bx lr - arm_func_end func_ov00_020833b8 - - .global func_ov00_020833c4 - arm_func_start func_ov00_020833c4 -func_ov00_020833c4: ; 0x020833c4 - ldr r0, [r0, #4] - ldr r0, [r0, #0xdc] - bx lr - arm_func_end func_ov00_020833c4 - - .global func_ov00_020833d0 - arm_func_start func_ov00_020833d0 -func_ov00_020833d0: ; 0x020833d0 - ldr r0, [r0, #4] - ldr r0, [r0, #0xe4] - bx lr - arm_func_end func_ov00_020833d0 - - .global func_ov00_020833dc - arm_func_start func_ov00_020833dc -func_ov00_020833dc: ; 0x020833dc - ldr r0, [r0, #4] - ldr r0, [r0, #0xe8] - bx lr - arm_func_end func_ov00_020833dc - - .global func_ov00_020833e8 - arm_func_start func_ov00_020833e8 -func_ov00_020833e8: ; 0x020833e8 - ldr r0, [r0, #4] - ldr r0, [r0, #0xf0] - bx lr - arm_func_end func_ov00_020833e8 - - .global func_ov00_020833f4 - arm_func_start func_ov00_020833f4 -func_ov00_020833f4: ; 0x020833f4 - ldr r0, [r0, #4] - ldr r0, [r0, #0xd0] - bx lr - arm_func_end func_ov00_020833f4 - - .global func_ov00_02083400 - arm_func_start func_ov00_02083400 -func_ov00_02083400: ; 0x02083400 - ldr r0, [r0, #4] - ldr r0, [r0, #0xd8] - bx lr - arm_func_end func_ov00_02083400 - - .global func_ov00_0208340c - arm_func_start func_ov00_0208340c -func_ov00_0208340c: ; 0x0208340c - ldr r2, [r0, #4] - ldr r0, [r2, #0xdc] - str r0, [r1] - ldr r0, [r2, #0xe0] - str r0, [r1, #4] - ldr r0, [r2, #0xe4] - str r0, [r1, #8] - bx lr - arm_func_end func_ov00_0208340c - - .global func_ov00_0208342c - arm_func_start func_ov00_0208342c -func_ov00_0208342c: ; 0x0208342c - ldr r2, [r0, #4] - ldr r0, [r2, #0xe8] - str r0, [r1] - ldr r0, [r2, #0xec] - str r0, [r1, #4] - ldr r0, [r2, #0xf0] - str r0, [r1, #8] - bx lr - arm_func_end func_ov00_0208342c - - .global func_ov00_0208344c - arm_func_start func_ov00_0208344c -func_ov00_0208344c: ; 0x0208344c - ldr r2, [r0, #4] - ldr r0, [r2, #0xd0] - str r0, [r1] - ldr r0, [r2, #0xd4] - str r0, [r1, #4] - ldr r0, [r2, #0xd8] - str r0, [r1, #8] - bx lr - arm_func_end func_ov00_0208344c - - .global func_ov00_0208346c - arm_func_start func_ov00_0208346c -func_ov00_0208346c: ; 0x0208346c - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl func_ov00_020833c4 - str r0, [r4] - mov r0, r5 - bl func_ov00_020833d0 - str r0, [r4, #8] - mov r0, r5 - bl func_ov00_020833dc - str r0, [r4, #0xc] - mov r0, r5 - bl func_ov00_020833e8 - ldr r1, _020834b8 ; =0x00001333 - str r0, [r4, #0x14] - str r1, [r4, #0x10] - mov r0, #0 - str r0, [r4, #4] - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_0208346c -_020834b8: .word 0x00001333 - - .global func_ov00_020834bc - arm_func_start func_ov00_020834bc -func_ov00_020834bc: ; 0x020834bc - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5] - mov r4, #0xa - mla r4, r2, r4, r0 - add r2, r4, r3 - mov r4, r1 - ldrb r1, [r2, #0x20] - bl func_ov00_0207cbd8 - ldr r1, [r0] - str r1, [r4] - ldr r1, [r0, #4] - str r1, [r4, #4] - ldr r1, [r0, #8] - mov r0, r5 - str r1, [r4, #8] - bl func_ov00_02083374 - ldr r1, [r4] - sub r1, r1, r0, asr #1 - mov r0, r5 - str r1, [r4] - bl func_ov00_02083384 - ldr r1, [r4, #8] - sub r0, r1, r0, asr #1 - str r0, [r4, #8] - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_020834bc - - .global func_ov00_02083524 - arm_func_start func_ov00_02083524 -func_ov00_02083524: ; 0x02083524 - stmdb sp!, {r4, lr} - ldr r0, [r0] - mov ip, #0xa - mla ip, r2, ip, r0 - add r2, ip, r3 - mov r4, r1 - ldrb r1, [r2, #0x20] - bl func_ov00_0207cbd8 - ldr r1, [r0] - str r1, [r4] - ldr r1, [r0, #4] - str r1, [r4, #4] - ldr r0, [r0, #8] - str r0, [r4, #8] - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02083524 - - .global func_ov00_02083560 - arm_func_start func_ov00_02083560 -func_ov00_02083560: ; 0x02083560 - ldr ip, _0208356c ; =func_ov00_0207cb7c - ldr r1, [r1] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083560 -_0208356c: .word func_ov00_0207cb7c - - .global func_ov00_02083570 - arm_func_start func_ov00_02083570 -func_ov00_02083570: ; 0x02083570 - ldr r3, [r0] - mov r0, #0xa - mla r0, r1, r0, r3 - add r0, r0, r2 - ldrb r0, [r0, #0x20] - bx lr - arm_func_end func_ov00_02083570 - - .global func_ov00_02083588 - arm_func_start func_ov00_02083588 -func_ov00_02083588: ; 0x02083588 - stmdb sp!, {r4, lr} - mov r4, r0 - bl func_ov00_02082d08 - mov r1, r0 - ldr r0, [r4] - bl func_ov00_0207cc6c - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02083588 - - .global func_ov00_020835a4 - arm_func_start func_ov00_020835a4 -func_ov00_020835a4: ; 0x020835a4 - ldr ip, _020835b0 ; =func_ov00_0207d61c - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_020835a4 -_020835b0: .word func_ov00_0207d61c - - .global func_ov00_020835b4 - arm_func_start func_ov00_020835b4 -func_ov00_020835b4: ; 0x020835b4 - ldr ip, _020835c0 ; =func_ov00_0207d628 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_020835b4 -_020835c0: .word func_ov00_0207d628 - - .global func_ov00_020835c4 - arm_func_start func_ov00_020835c4 -func_ov00_020835c4: ; 0x020835c4 - stmdb sp!, {r3, lr} - mov r3, #3 - str r3, [sp] - ldr r0, [r0] - mov r3, r2 - mov r2, #0 - bl func_ov00_0207d404 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020835c4 - - .global func_ov00_020835e4 - arm_func_start func_ov00_020835e4 -func_ov00_020835e4: ; 0x020835e4 - ldr ip, _020835f0 ; =func_ov00_0207caa8 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_020835e4 -_020835f0: .word func_ov00_0207caa8 - - .global func_ov00_020835f4 - arm_func_start func_ov00_020835f4 -func_ov00_020835f4: ; 0x020835f4 - ldr ip, _02083600 ; =func_ov00_0207cb30 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_020835f4 -_02083600: .word func_ov00_0207cb30 - - .global func_ov00_02083604 - arm_func_start func_ov00_02083604 -func_ov00_02083604: ; 0x02083604 - ldr ip, _02083610 ; =func_ov00_0207cbe8 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083604 -_02083610: .word func_ov00_0207cbe8 - - .global func_ov00_02083614 - arm_func_start func_ov00_02083614 -func_ov00_02083614: ; 0x02083614 - ldr ip, _02083620 ; =func_ov00_0207cc24 - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083614 -_02083620: .word func_ov00_0207cc24 - - .global func_ov00_02083624 - arm_func_start func_ov00_02083624 -func_ov00_02083624: ; 0x02083624 - stmdb sp!, {r4, lr} - ldr r0, [r0, #4] - mov r4, r1 - mov r1, r2 - bl func_ov00_0207f8c0 - mov r3, r0 - ldmia r3, {r0, r1, r2} - stmia r4, {r0, r1, r2} - ldrsh r1, [r3, #0xc] - mov r0, #1 - strh r1, [r4, #0xc] - ldrb r1, [r3, #0xe] - strb r1, [r4, #0xe] - ldr r1, [r3, #0x10] - str r1, [r4, #0x10] - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02083624 - - .global func_ov00_02083664 - arm_func_start func_ov00_02083664 -func_ov00_02083664: ; 0x02083664 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #0x14 - mov r4, r1 - mov ip, #0xff - mov r3, #0 - add r1, sp, #0 - strb ip, [sp, #0xe] - str r3, [sp, #0x10] - bl func_ov00_02083624 - cmp r0, #0 - addeq sp, sp, #0x14 - moveq r0, #0 - ldmeqia sp!, {r3, r4, pc} - ldr r1, [sp] - mov r0, #1 - str r1, [r4] - ldr r1, [sp, #4] - str r1, [r4, #4] - ldr r1, [sp, #8] - str r1, [r4, #8] - add sp, sp, #0x14 - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_02083664 - - .global func_ov00_020836bc - arm_func_start func_ov00_020836bc -func_ov00_020836bc: ; 0x020836bc - ldr ip, _020836c8 ; =func_ov00_0207faac - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020836bc -_020836c8: .word func_ov00_0207faac - - .global func_ov00_020836cc - arm_func_start func_ov00_020836cc -func_ov00_020836cc: ; 0x020836cc - ldr ip, _020836d8 ; =func_ov00_0207fb64 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020836cc -_020836d8: .word func_ov00_0207fb64 - - .global func_ov00_020836dc - arm_func_start func_ov00_020836dc -func_ov00_020836dc: ; 0x020836dc - stmdb sp!, {r4, r5, lr} - sub sp, sp, #0xc - cmp r2, #0 - mov r5, r0 - mov r4, r1 - cmpne r2, #1 - bne _02083718 - ldr r0, _02083768 ; =data_027e0f94 - ldr r2, [r0] - ldr r1, [r0, #4] - str r2, [sp] - str r1, [sp, #4] - ldr r0, [r0, #8] - str r0, [sp, #8] - b _02083750 -_02083718: - ldr r0, _0208376c ; =data_027e0fe4 - mov r1, r2 - ldr r0, [r0] - bl _ZN12ActorManager13FindActorByIdEj - cmp r0, #0 - addeq sp, sp, #0xc - moveq r0, #0 - ldmeqia sp!, {r4, r5, pc} - ldr r1, [r0, #0x48] - str r1, [sp] - ldr r1, [r0, #0x4c] - str r1, [sp, #4] - ldr r0, [r0, #0x50] - str r0, [sp, #8] -_02083750: - add r2, sp, #0 - mov r0, r5 - mov r1, r4 - bl func_ov00_02083770 - add sp, sp, #0xc - ldmia sp!, {r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_020836dc -_02083768: .word data_027e0f94 -_0208376c: .word data_027e0fe4 - - .global func_ov00_02083770 - arm_func_start func_ov00_02083770 -func_ov00_02083770: ; 0x02083770 - ldr ip, _0208377c ; =func_ov00_0207fd58 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083770 -_0208377c: .word func_ov00_0207fd58 - - .global func_ov00_02083780 - arm_func_start func_ov00_02083780 -func_ov00_02083780: ; 0x02083780 - ldr ip, _0208378c ; =func_ov00_0207fc2c - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083780 -_0208378c: .word func_ov00_0207fc2c - - .global func_ov00_02083790 - arm_func_start func_ov00_02083790 -func_ov00_02083790: ; 0x02083790 - stmdb sp!, {r3, r4, r5, lr} - sub sp, sp, #8 - movs r4, r1 - mov r5, r0 - addeq sp, sp, #8 - moveq r0, #1 - ldmeqia sp!, {r3, r4, r5, pc} - ldr r1, _02083830 ; =data_027e0f64 - ldr r0, _02083834 ; =data_027e0d38 - ldr r2, [r1] - ldr r2, [r2, #8] - str r4, [r2, #0x1b4] - ldr r1, [r1] - ldr r1, [r1, #4] - str r4, [r1, #0x1b4] - ldr r0, [r0] - bl func_ov00_02078b40 - cmp r0, #0 - beq _0208381c - add r1, sp, #4 - add r2, sp, #0 - mov r0, r5 - bl func_ov00_02082e1c - cmp r0, #0 - bne _0208381c - ldr r0, _02083838 ; =data_027e0d3c - mov r1, r4 - ldr r0, [r0] - mov r2, #0x10 - bl func_ov00_02079898 - ldr r0, _0208383c ; =data_027e0fe4 - mov r1, r4 - ldr r0, [r0] - mov r2, #1 - bl _ZN12ActorManager18func_ov00_020c3ce8Eii -_0208381c: - ldr r0, [r5, #4] - mov r1, r4 - bl func_ov00_0207fdd0 - add sp, sp, #8 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_02083790 -_02083830: .word data_027e0f64 -_02083834: .word data_027e0d38 -_02083838: .word data_027e0d3c -_0208383c: .word data_027e0fe4 - - .global func_ov00_02083840 - arm_func_start func_ov00_02083840 -func_ov00_02083840: ; 0x02083840 - stmdb sp!, {r3, r4, r5, lr} - movs r4, r1 - mov r5, r0 - moveq r0, #1 - ldmeqia sp!, {r3, r4, r5, pc} - ldr r1, _020838bc ; =data_027e0f64 - mvn r3, #0 - ldr r2, [r1] - ldr r0, _020838c0 ; =data_027e0d3c - ldr r2, [r2, #8] - str r3, [r2, #0x1b4] - ldr r1, [r1] - ldr r1, [r1, #4] - str r3, [r1, #0x1b4] - ldr r0, [r0] - bl func_ov00_02078fe8 - cmp r0, #0 - blt _020838ac - ldr r0, _020838c0 ; =data_027e0d3c - mov r1, #0x10 - ldr r0, [r0] - bl func_ov00_020798bc - ldr r0, _020838c4 ; =data_027e0fe4 - mov r1, r4 - ldr r0, [r0] - mov r2, #0 - bl _ZN12ActorManager18func_ov00_020c3ce8Eii -_020838ac: - ldr r0, [r5, #4] - mov r1, r4 - bl func_ov00_02080d80 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_02083840 -_020838bc: .word data_027e0f64 -_020838c0: .word data_027e0d3c -_020838c4: .word data_027e0fe4 - - .global func_ov00_020838c8 - arm_func_start func_ov00_020838c8 -func_ov00_020838c8: ; 0x020838c8 - ldr ip, _020838d4 ; =func_ov00_0207fe80 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020838c8 -_020838d4: .word func_ov00_0207fe80 - - .global func_ov00_020838d8 - arm_func_start func_ov00_020838d8 -func_ov00_020838d8: ; 0x020838d8 - ldr ip, _020838e4 ; =func_ov00_0207ff88 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020838d8 -_020838e4: .word func_ov00_0207ff88 - - .global func_ov00_020838e8 - arm_func_start func_ov00_020838e8 -func_ov00_020838e8: ; 0x020838e8 - ldr ip, _020838f4 ; =func_ov00_0208039c - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020838e8 -_020838f4: .word func_ov00_0208039c - - .global func_ov00_020838f8 - arm_func_start func_ov00_020838f8 -func_ov00_020838f8: ; 0x020838f8 - ldr ip, _02083904 ; =func_ov00_02080140 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020838f8 -_02083904: .word func_ov00_02080140 - - .global func_ov00_02083908 - arm_func_start func_ov00_02083908 -func_ov00_02083908: ; 0x02083908 - ldr ip, _02083914 ; =func_ov00_02080510 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083908 -_02083914: .word func_ov00_02080510 - - .global func_ov00_02083918 - arm_func_start func_ov00_02083918 -func_ov00_02083918: ; 0x02083918 - ldr ip, _02083924 ; =func_ov00_020805d0 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083918 -_02083924: .word func_ov00_020805d0 - - .global func_ov00_02083928 - arm_func_start func_ov00_02083928 -func_ov00_02083928: ; 0x02083928 - ldr ip, _02083934 ; =func_ov00_02080688 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083928 -_02083934: .word func_ov00_02080688 - - .global func_ov00_02083938 - arm_func_start func_ov00_02083938 -func_ov00_02083938: ; 0x02083938 - ldr ip, _02083944 ; =func_ov00_02080780 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083938 -_02083944: .word func_ov00_02080780 - - .global func_ov00_02083948 - arm_func_start func_ov00_02083948 -func_ov00_02083948: ; 0x02083948 - ldr r0, [r0, #4] - add r0, r0, r2 - strb r1, [r0, #0x16] - bx lr - arm_func_end func_ov00_02083948 - - .global func_ov00_02083958 - arm_func_start func_ov00_02083958 -func_ov00_02083958: ; 0x02083958 - ldr ip, _02083964 ; =func_ov00_0207f924 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083958 -_02083964: .word func_ov00_0207f924 - - .global func_ov00_02083968 - arm_func_start func_ov00_02083968 -func_ov00_02083968: ; 0x02083968 - ldr ip, _02083974 ; =func_ov00_02080824 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02083968 -_02083974: .word func_ov00_02080824 - - .global func_ov00_02083978 - arm_func_start func_ov00_02083978 -func_ov00_02083978: ; 0x02083978 - stmdb sp!, {r4, lr} - ldr r0, [r0, #4] - mov r4, r2 - bl func_ov00_02080a78 - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r4, pc} - ldr r1, [r0, #8] - str r1, [r4] - ldr r1, [r0, #0xc] - str r1, [r4, #4] - ldr r1, [r0, #0x10] - mov r0, #1 - str r1, [r4, #8] - ldmia sp!, {r4, pc} - arm_func_end func_ov00_02083978 - - .global func_ov00_020839b4 - arm_func_start func_ov00_020839b4 -func_ov00_020839b4: ; 0x020839b4 - ldr ip, _020839c0 ; =func_ov00_020808d0 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020839b4 -_020839c0: .word func_ov00_020808d0 - - .global func_ov00_020839c4 - arm_func_start func_ov00_020839c4 -func_ov00_020839c4: ; 0x020839c4 - ldr ip, _020839d0 ; =func_ov00_020809b8 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_020839c4 -_020839d0: .word func_ov00_020809b8 - - .global func_ov00_020839d4 - arm_func_start func_ov00_020839d4 -func_ov00_020839d4: ; 0x020839d4 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl func_ov00_020833f4 - mov r1, r0 - ldr r0, [r5, #4] - sub r1, r4, r1 - bl func_ov00_0207f778 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_020839d4 - - .global func_ov00_020839f8 - arm_func_start func_ov00_020839f8 -func_ov00_020839f8: ; 0x020839f8 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl func_ov00_02083400 - mov r1, r0 - ldr r0, [r5, #4] - sub r1, r4, r1 - bl func_ov00_0207f7a0 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_020839f8 - - .global func_ov00_02083a1c - arm_func_start func_ov00_02083a1c -func_ov00_02083a1c: ; 0x02083a1c - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r5, r2 - mov r6, r1 - mov r7, r0 - ldr r1, [r5, #8] - mov r0, r6 - bl func_ov00_020839f8 - mov r4, r0 - ldr r1, [r5] - mov r0, r6 - bl func_ov00_020839d4 - strb r0, [r7] - strb r4, [r7, #1] - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end func_ov00_02083a1c - - .global func_ov00_02083a54 - arm_func_start func_ov00_02083a54 -func_ov00_02083a54: ; 0x02083a54 - stmdb sp!, {r4, r5, r6, r7, lr} - sub sp, sp, #0x24 - mov r6, r1 - mov r7, r0 - mov r0, r6 - mov r5, r2 - mov r4, r3 - bl func_ov00_0208330c - cmp r0, #0 - beq _02083b58 - mvn r0, #0 - cmp r4, r0 - ldrne r2, [sp, #0x38] - cmpne r2, r0 - bne _02083aa0 - mov r0, r6 - bl func_ov00_02082d08 - mov r1, r0 - b _02083ab4 -_02083aa0: - ldr r1, [r6] - mov r0, #0xa - mla r0, r4, r0, r1 - add r0, r0, r2 - ldrb r1, [r0, #0x20] -_02083ab4: - mov r0, r6 - bl func_ov00_02083318 - cmp r0, #0 - beq _02083b2c - ldr r3, [sp, #0x38] - add r1, sp, #0x18 - mov r0, r6 - mov r2, r4 - bl func_ov00_02083524 - ldr r1, [r5] - add r0, sp, #0 - str r1, [sp] - ldr r2, [r5, #4] - add r1, sp, #0x18 - str r2, [sp, #4] - ldr r3, [r5, #8] - add r2, sp, #0xc - str r3, [sp, #8] - bl func_01ff9bf8 - ldr r0, [r6, #4] - ldr r1, [sp, #0x14] - bl func_ov00_0207f7a0 - mov r4, r0 - ldr r0, [r6, #4] - ldr r1, [sp, #0xc] - bl func_ov00_0207f778 - strb r0, [r7] - add sp, sp, #0x24 - strb r4, [r7, #1] - ldmia sp!, {r4, r5, r6, r7, pc} -_02083b2c: - ldr r1, [r5, #8] - mov r0, r6 - bl func_ov00_020839f8 - mov r4, r0 - ldr r1, [r5] - mov r0, r6 - bl func_ov00_020839d4 - strb r0, [r7] - add sp, sp, #0x24 - strb r4, [r7, #1] - ldmia sp!, {r4, r5, r6, r7, pc} -_02083b58: - ldr r1, [r5, #8] - mov r0, r6 - bl func_ov00_020839f8 - mov r4, r0 - ldr r1, [r5] - mov r0, r6 - bl func_ov00_020839d4 - strb r0, [r7] - strb r4, [r7, #1] - add sp, sp, #0x24 - ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_end func_ov00_02083a54 - - .global func_ov00_02083b84 - arm_func_start func_ov00_02083b84 -func_ov00_02083b84: ; 0x02083b84 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - bl func_ov00_020833f4 - mov r4, r0 - ldr r0, [r6, #4] - mov r1, r5 - bl func_ov00_0207f694 - add r0, r4, r0 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02083b84 - - .global func_ov00_02083bac - arm_func_start func_ov00_02083bac -func_ov00_02083bac: ; 0x02083bac - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - bl func_ov00_02083400 - mov r4, r0 - ldr r0, [r6, #4] - mov r1, r5 - bl func_ov00_0207f6a0 - add r0, r4, r0 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02083bac - - .global func_ov00_02083bd4 - arm_func_start func_ov00_02083bd4 -func_ov00_02083bd4: ; 0x02083bd4 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - bl func_ov00_020833f4 - mov r4, r0 - ldr r0, [r6, #4] - mov r1, r5 - bl func_ov00_0207f6ac - add r0, r4, r0 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02083bd4 - - .global func_ov00_02083bfc - arm_func_start func_ov00_02083bfc -func_ov00_02083bfc: ; 0x02083bfc - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - bl func_ov00_02083400 - mov r4, r0 - ldr r0, [r6, #4] - mov r1, r5 - bl func_ov00_0207f6bc - add r0, r4, r0 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02083bfc - - .global func_ov00_02083c24 - arm_func_start func_ov00_02083c24 -func_ov00_02083c24: ; 0x02083c24 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - bl func_ov00_020833f4 - mov r4, r0 - ldr r0, [r6, #4] - mov r1, r5 - bl func_ov00_0207f694 - add r0, r4, r0 - add r0, r0, #0x800 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02083c24 - - .global func_ov00_02083c50 - arm_func_start func_ov00_02083c50 -func_ov00_02083c50: ; 0x02083c50 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - bl func_ov00_02083400 - mov r4, r0 - ldr r0, [r6, #4] - mov r1, r5 - bl func_ov00_0207f6a0 - add r0, r4, r0 - add r0, r0, #0x800 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02083c50 - - .global func_ov00_02083c7c - arm_func_start func_ov00_02083c7c -func_ov00_02083c7c: ; 0x02083c7c - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r4, r5, lr} - sub sp, sp, #0xc - mov r4, r1 - ldrb r1, [sp, #0x20] - mov r5, r0 - bl func_ov00_02083c24 - str r0, [r4] - ldrb r1, [sp, #0x21] - mov r0, r5 - bl func_ov00_02083c50 - str r0, [r4, #8] - ldr r0, [r4] - add r1, sp, #0 - str r0, [sp] - ldr r2, [r4, #4] - mov r0, r5 - str r2, [sp, #4] - ldr r3, [r4, #8] - mov r2, #1 - str r3, [sp, #8] - bl func_ov00_02083ee0 - str r0, [r4, #4] - add sp, sp, #0xc - ldmia sp!, {r4, r5, lr} - add sp, sp, #0x10 - bx lr - arm_func_end func_ov00_02083c7c - - .global func_ov00_02083ce8 - arm_func_start func_ov00_02083ce8 -func_ov00_02083ce8: ; 0x02083ce8 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x18 - mov r6, r0 - mov r5, r1 - mov r4, r3 - bl func_ov00_0208330c - cmp r0, #0 - beq _02083dd0 - mvn r0, #0 - cmp r4, r0 - ldrne r2, [sp, #0x38] - cmpne r2, r0 - bne _02083d30 - mov r0, r6 - bl func_ov00_02082d08 - mov r1, r0 - b _02083d44 -_02083d30: - ldr r1, [r6] - mov r0, #0xa - mla r0, r4, r0, r1 - add r0, r0, r2 - ldrb r1, [r0, #0x20] -_02083d44: - mov r0, r6 - bl func_ov00_02083318 - cmp r0, #0 - beq _02083da4 - ldr r3, [sp, #0x38] - add r1, sp, #0xc - mov r0, r6 - mov r2, r4 - bl func_ov00_02083524 - ldrb r1, [sp, #0x30] - ldr r0, [r6, #4] - bl func_ov00_0207f694 - ldr r2, [sp, #0xc] - ldrb r1, [sp, #0x31] - add r0, r2, r0 - add r0, r0, #0x800 - str r0, [r5] - ldr r0, [r6, #4] - bl func_ov00_0207f6a0 - ldr r1, [sp, #0x14] - add r0, r1, r0 - add r0, r0, #0x800 - str r0, [r5, #8] - b _02083df8 -_02083da4: - ldrb r1, [sp, #0x30] - ldr r0, [r6, #4] - bl func_ov00_0207f694 - add r0, r0, #0x800 - str r0, [r5] - ldrb r1, [sp, #0x31] - ldr r0, [r6, #4] - bl func_ov00_0207f6a0 - add r0, r0, #0x800 - str r0, [r5, #8] - b _02083df8 -_02083dd0: - ldrb r1, [sp, #0x30] - ldr r0, [r6, #4] - bl func_ov00_0207f694 - add r0, r0, #0x800 - str r0, [r5] - ldrb r1, [sp, #0x31] - ldr r0, [r6, #4] - bl func_ov00_0207f6a0 - add r0, r0, #0x800 - str r0, [r5, #8] -_02083df8: - ldr r0, [r5] - add r1, sp, #0 - str r0, [sp] - ldr r2, [r5, #4] - mov r0, r6 - str r2, [sp, #4] - ldr r3, [r5, #8] - mov r2, #1 - str r3, [sp, #8] - bl func_ov00_02083ee0 - str r0, [r5, #4] - add sp, sp, #0x18 - ldmia sp!, {r4, r5, r6, lr} - add sp, sp, #0x10 - bx lr - arm_func_end func_ov00_02083ce8 - - .global func_ov00_02083e34 - arm_func_start func_ov00_02083e34 -func_ov00_02083e34: ; 0x02083e34 - stmdb sp!, {r3, lr} - strb r1, [sp] - strb r2, [sp, #1] - ldr r0, [r0, #4] - add r1, sp, #0 - ldr r2, [r0] - ldr r2, [r2, #0x60] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02083e34 - - .global func_ov00_02083e58 - arm_func_start func_ov00_02083e58 -func_ov00_02083e58: ; 0x02083e58 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r2, [r0] - ldr r2, [r2, #0x60] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02083e58 - - .global func_ov00_02083e70 - arm_func_start func_ov00_02083e70 -func_ov00_02083e70: ; 0x02083e70 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl func_ov00_02084088 - cmp r0, #0x2b - bgt _02083e98 - bge _02083eb0 - cmp r0, #0x1b - beq _02083eb0 - b _02083eb8 -_02083e98: - cmp r0, #0x4f - bgt _02083eb8 - cmp r0, #0x4e - blt _02083eb8 - cmpne r0, #0x4f - bne _02083eb8 -_02083eb0: - mov r0, #1 - ldmia sp!, {r3, r4, r5, pc} -_02083eb8: - mov r0, r5 - mov r1, r4 - bl func_ov00_02083e58 - mov r4, r0 - mov r0, r5 - bl func_ov00_02084114 - cmp r4, r0 - movge r0, #1 - movlt r0, #0 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_02083e70 - - .global func_ov00_02083ee0 - arm_func_start func_ov00_02083ee0 -func_ov00_02083ee0: ; 0x02083ee0 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r3, [r0] - ldr r3, [r3, #0x68] - blx r3 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02083ee0 - - .global func_ov00_02083ef8 - arm_func_start func_ov00_02083ef8 -func_ov00_02083ef8: ; 0x02083ef8 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #0xc - add ip, sp, #0 - mov r4, r0 - mov lr, r2 - ldmia r1, {r0, r1, r2} - stmia ip, {r0, r1, r2} - ldr r1, [lr, #4] - ldr r0, [sp, #4] - mov r2, r3 - cmp r1, r0 - strgt r1, [sp, #4] - ldr r0, [r4, #4] - add r1, sp, #0 - ldr ip, [r0] - ldr ip, [ip, #0x68] - blx ip - add sp, sp, #0xc - ldmia sp!, {r3, r4, pc} - arm_func_end func_ov00_02083ef8 - - .global func_ov00_02083f44 - arm_func_start func_ov00_02083f44 -func_ov00_02083f44: ; 0x02083f44 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #0xc - ldr ip, _02083f7c ; =data_ov00_020e24a4 - mov r3, r2 - ldr r4, [r1, #8] - ldr lr, [r1] - ldr ip, [ip, #0x20] - add r2, sp, #0 - str lr, [sp] - str ip, [sp, #4] - str r4, [sp, #8] - bl func_ov00_02083ef8 - add sp, sp, #0xc - ldmia sp!, {r3, r4, pc} - .align 2, 0 - arm_func_end func_ov00_02083f44 -_02083f7c: .word data_ov00_020e24a4 - - .global func_ov00_02083f80 - arm_func_start func_ov00_02083f80 -func_ov00_02083f80: ; 0x02083f80 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr ip, [r0] - ldr ip, [ip, #0x6c] - blx ip - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02083f80 - - .global func_ov00_02083f98 - arm_func_start func_ov00_02083f98 -func_ov00_02083f98: ; 0x02083f98 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r2, [r0] - ldr r2, [r2, #0x70] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02083f98 - - .global func_ov00_02083fb0 - arm_func_start func_ov00_02083fb0 -func_ov00_02083fb0: ; 0x02083fb0 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r1 - mov r4, r0 - ldr r0, [r6, #4] - mov r5, r2 - ldr r2, [r0] - mov r1, r5 - ldr r2, [r2, #0x74] - blx r2 - cmp r0, #0 - ldrne r0, [r0, #0xc] - strne r0, [r4] - ldmneia sp!, {r4, r5, r6, pc} - mov r0, r6 - mov r1, r5 - bl func_ov00_02083f98 - ldr r1, _0208401c ; =0x0000ffff - mov r2, r0 - cmp r2, r1 - moveq r0, #0 - streq r0, [r4] - ldmeqia sp!, {r4, r5, r6, pc} - ldr r1, _02084020 ; =data_027e0f6c - mov r0, r4 - ldr r1, [r1] - bl func_ov00_02093a1c - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_02083fb0 -_0208401c: .word 0x0000ffff -_02084020: .word data_027e0f6c - - .global func_ov00_02084024 - arm_func_start func_ov00_02084024 -func_ov00_02084024: ; 0x02084024 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #0xc - mov r6, r0 - ldr r0, [r6, #4] - mov r5, r2 - bl func_ov00_0207f6cc - mov r0, r6 - bl func_ov00_02083400 - mov r4, r0 - mov r0, r6 - bl func_ov00_020833f4 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - add r1, sp, #0 - mov r0, r5 - mov r2, r5 - str r4, [sp, #8] - bl func_01ff9bc4 - add r0, r5, #0xc - mov r2, r0 - add r1, sp, #0 - bl func_01ff9bc4 - add sp, sp, #0xc - ldmia sp!, {r3, r4, r5, r6, pc} - arm_func_end func_ov00_02084024 - - .global func_ov00_02084088 - arm_func_start func_ov00_02084088 -func_ov00_02084088: ; 0x02084088 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r2, [r0] - ldr r2, [r2, #0x54] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084088 - - .global func_ov00_020840a0 - arm_func_start func_ov00_020840a0 -func_ov00_020840a0: ; 0x020840a0 - stmdb sp!, {r3, lr} - strb r1, [sp] - strb r2, [sp, #1] - ldr r0, [r0, #4] - add r1, sp, #0 - ldr r2, [r0] - ldr r2, [r2, #0x54] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020840a0 - - .global func_ov00_020840c4 - arm_func_start func_ov00_020840c4 -func_ov00_020840c4: ; 0x020840c4 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r2, [r0] - ldr r2, [r2, #0x78] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020840c4 - - .global func_ov00_020840dc - arm_func_start func_ov00_020840dc -func_ov00_020840dc: ; 0x020840dc - stmdb sp!, {r3, lr} - bl func_ov00_020840c4 - cmp r0, #0 - mvneq r0, #0 - ldmeqia sp!, {r3, pc} - ldr r1, [r0] - ldr r1, [r1, #0x1c] - blx r1 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020840dc - - .global func_ov00_02084100 - arm_func_start func_ov00_02084100 -func_ov00_02084100: ; 0x02084100 - ldr r1, [r1, #4] - ldr r2, [r1, #0x40] - ldr r1, [r1, #0x44] - stmia r0, {r1, r2} - bx lr - arm_func_end func_ov00_02084100 - - .global func_ov00_02084114 - arm_func_start func_ov00_02084114 -func_ov00_02084114: ; 0x02084114 - ldr r0, [r0, #4] - ldr r0, [r0, #0x48] - bx lr - arm_func_end func_ov00_02084114 - - .global func_ov00_02084120 - arm_func_start func_ov00_02084120 -func_ov00_02084120: ; 0x02084120 - ldr r0, [r0, #4] - ldr r0, [r0, #0x4c] - bx lr - arm_func_end func_ov00_02084120 - - .global func_ov00_0208412c - arm_func_start func_ov00_0208412c -func_ov00_0208412c: ; 0x0208412c - ldr ip, _02084138 ; =func_ov00_0207f934 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_0208412c -_02084138: .word func_ov00_0207f934 - - .global func_ov00_0208413c - arm_func_start func_ov00_0208413c -func_ov00_0208413c: ; 0x0208413c - ldr ip, _02084148 ; =func_ov00_0207f948 - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_0208413c -_02084148: .word func_ov00_0207f948 - - .global func_ov00_0208414c - arm_func_start func_ov00_0208414c -func_ov00_0208414c: ; 0x0208414c - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r3, [r0] - ldr r3, [r3, #0x58] - blx r3 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_0208414c - - .global func_ov00_02084164 - arm_func_start func_ov00_02084164 -func_ov00_02084164: ; 0x02084164 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5, #4] - mov r2, #7 - ldr r3, [r0] - mov r4, r1 - ldr r3, [r3, #0x58] - blx r3 - cmp r0, #0 - movne r0, #0 - ldmneia sp!, {r3, r4, r5, pc} - mov r0, r5 - mov r1, r4 - bl func_ov00_02084088 - cmp r0, #0x54 - addls pc, pc, r0, lsl #2 - b _02084304 -_020841a8: ; jump table - b _020842fc ; case 0 - b _02084304 ; case 1 - b _02084304 ; case 2 - b _02084304 ; case 3 - b _02084304 ; case 4 - b _02084304 ; case 5 - b _02084304 ; case 6 - b _02084304 ; case 7 - b _020842fc ; case 8 - b _020842fc ; case 9 - b _02084304 ; case 10 - b _020842fc ; case 11 - b _020842fc ; case 12 - b _020842fc ; case 13 - b _020842fc ; case 14 - b _020842fc ; case 15 - b _020842fc ; case 16 - b _020842fc ; case 17 - b _020842fc ; case 18 - b _020842fc ; case 19 - b _02084304 ; case 20 - b _020842fc ; case 21 - b _020842fc ; case 22 - b _02084304 ; case 23 - b _020842fc ; case 24 - b _02084304 ; case 25 - b _020842fc ; case 26 - b _02084304 ; case 27 - b _02084304 ; case 28 - b _02084304 ; case 29 - b _02084304 ; case 30 - b _02084304 ; case 31 - b _020842fc ; case 32 - b _020842fc ; case 33 - b _020842fc ; case 34 - b _020842fc ; case 35 - b _02084304 ; case 36 - b _020842fc ; case 37 - b _020842fc ; case 38 - b _020842fc ; case 39 - b _020842fc ; case 40 - b _020842fc ; case 41 - b _020842fc ; case 42 - b _02084304 ; case 43 - b _020842fc ; case 44 - b _020842fc ; case 45 - b _020842fc ; case 46 - b _020842fc ; case 47 - b _02084304 ; case 48 - b _020842fc ; case 49 - b _020842fc ; case 50 - b _02084304 ; case 51 - b _02084304 ; case 52 - b _020842fc ; case 53 - b _020842fc ; case 54 - b _02084304 ; case 55 - b _020842fc ; case 56 - b _020842fc ; case 57 - b _020842fc ; case 58 - b _020842fc ; case 59 - b _020842fc ; case 60 - b _020842fc ; case 61 - b _020842fc ; case 62 - b _020842fc ; case 63 - b _02084304 ; case 64 - b _020842fc ; case 65 - b _020842fc ; case 66 - b _020842fc ; case 67 - b _020842fc ; case 68 - b _020842fc ; case 69 - b _02084304 ; case 70 - b _02084304 ; case 71 - b _02084304 ; case 72 - b _02084304 ; case 73 - b _02084304 ; case 74 - b _02084304 ; case 75 - b _02084304 ; case 76 - b _020842fc ; case 77 - b _02084304 ; case 78 - b _02084304 ; case 79 - b _02084304 ; case 80 - b _020842fc ; case 81 - b _020842fc ; case 82 - b _020842fc ; case 83 - b _020842fc ; case 84 -_020842fc: - mov r0, #1 - ldmia sp!, {r3, r4, r5, pc} -_02084304: - mov r0, #0 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_02084164 - - .global func_ov00_0208430c - arm_func_start func_ov00_0208430c -func_ov00_0208430c: ; 0x0208430c - ldr r0, [r0, #4] - ldrb r0, [r0, #0xa] - bx lr - arm_func_end func_ov00_0208430c - - .global func_ov00_02084318 - arm_func_start func_ov00_02084318 -func_ov00_02084318: ; 0x02084318 - ldr r0, [r0, #4] - ldrb r0, [r0, #0xb] - bx lr - arm_func_end func_ov00_02084318 - - .global func_ov00_02084324 - arm_func_start func_ov00_02084324 -func_ov00_02084324: ; 0x02084324 - stmdb sp!, {r3, lr} - ldr r0, [r0, #4] - ldr r2, [r0] - ldr r2, [r2, #0xa4] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084324 - - .global func_ov00_0208433c - arm_func_start func_ov00_0208433c -func_ov00_0208433c: ; 0x0208433c - stmdb sp!, {r4, r5, lr} - sub sp, sp, #0x1c - add r3, sp, #0x10 - mov r5, r0 - mov r4, r2 - ldmia r1, {r0, r1, r2} - stmia r3, {r0, r1, r2} - add r1, sp, #4 - mov r0, r5 - bl func_ov00_0208340c - add r0, sp, #0x10 - add r1, sp, #4 - mov r2, r0 - bl func_01ff9bf8 - ldr r1, [r5, #4] - add r0, sp, #0 - add r2, sp, #0x10 - bl func_ov00_0207f53c - ldrsh r0, [sp] - strh r0, [r4] - ldrsh r0, [sp, #2] - strh r0, [r4, #2] - add sp, sp, #0x1c - ldmia sp!, {r4, r5, pc} - arm_func_end func_ov00_0208433c - - .global func_ov00_0208439c - arm_func_start func_ov00_0208439c -func_ov00_0208439c: ; 0x0208439c - stmdb sp!, {r4, r5, lr} - sub sp, sp, #0xc - mov r5, r0 - ldr r0, [r5, #4] - mov r4, r2 - bl func_ov00_0207f630 - add r1, sp, #0 - mov r0, r5 - bl func_ov00_0208340c - add r1, sp, #0 - mov r0, r4 - mov r2, r4 - bl func_01ff9bc4 - mov r0, r5 - mov r1, r4 - mov r2, #1 - bl func_ov00_02083ee0 - str r0, [r4, #4] - add sp, sp, #0xc - ldmia sp!, {r4, r5, pc} - arm_func_end func_ov00_0208439c - - .global func_ov00_020843ec - arm_func_start func_ov00_020843ec -func_ov00_020843ec: ; 0x020843ec - stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x6c - mov r6, r1 - mov r5, r0 - mov r0, r6 - ldr r1, [r0] - mov r4, r2 - ldr r1, [r1, #8] - blx r1 - cmp r0, #0 - cmpne r0, #1 - beq _0208442c - cmp r0, #2 - beq _02084574 - add sp, sp, #0x6c - ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} -_0208442c: - mov r0, r6 - ldr r2, [r0] - add r1, sp, #0x60 - ldr r2, [r2, #0x3c] - blx r2 - mov r0, r6 - ldr r1, [r0] - ldr r1, [r1, #0x40] - blx r1 - ldr r6, [sp, #0x64] - ldr r2, [sp, #0x60] - ldr r3, [sp, #0x68] - sub r1, r2, r0 - str r1, [sp, #0x54] - sub r1, r3, r0 - str r1, [sp, #0x5c] - add r2, r2, r0 - add r1, r3, r0 - mov r0, r5 - str r2, [sp, #0x48] - str r6, [sp, #0x58] - str r6, [sp, #0x4c] - str r1, [sp, #0x50] - bl func_ov00_020833c4 - ldr r1, [sp, #0x54] - sub r0, r1, r0 - str r0, [sp, #0x54] - mov r0, r5 - bl func_ov00_020833d0 - ldr r1, [sp, #0x5c] - sub r0, r1, r0 - str r0, [sp, #0x5c] - mov r0, r5 - bl func_ov00_020833c4 - ldr r1, [sp, #0x48] - sub r0, r1, r0 - str r0, [sp, #0x48] - mov r0, r5 - bl func_ov00_020833d0 - ldr r1, [sp, #0x50] - add r2, sp, #0x54 - sub r0, r1, r0 - str r0, [sp, #0x50] - ldr r1, [r5, #4] - add r0, sp, #0x14 - bl func_ov00_0207f53c - ldr r1, [r5, #4] - add r0, sp, #0x10 - add r2, sp, #0x48 - bl func_ov00_0207f53c - ldrsh r7, [sp, #0x14] - ldrsh r0, [sp, #0x10] - cmp r7, r0 - addgt sp, sp, #0x6c - ldmgtia sp!, {r3, r4, r5, r6, r7, r8, pc} - add r6, sp, #4 -_0208450c: - ldrsh r8, [sp, #0x16] - ldrsh r0, [sp, #0x12] - cmp r8, r0 - bgt _02084554 -_0208451c: - strh r7, [sp, #4] - strh r8, [sp, #6] - ldr r0, [r5, #4] - mov r1, r6 - ldr r3, [r0] - mov r2, r4 - ldr r3, [r3, #0xac] - blx r3 - add r0, r8, #1 - mov r0, r0, lsl #0x10 - ldrsh r1, [sp, #0x12] - mov r8, r0, asr #0x10 - cmp r1, r0, asr #16 - bge _0208451c -_02084554: - ldrsh r1, [sp, #0x10] - add r0, r7, #1 - mov r0, r0, lsl #0x10 - cmp r1, r0, asr #16 - mov r7, r0, asr #0x10 - bge _0208450c - add sp, sp, #0x6c - ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} -_02084574: - mov r0, r6 - ldr r2, [r0] - add r1, sp, #0x30 - ldr r2, [r2, #0x2c] - blx r2 - add r0, sp, #0x30 - add r3, sp, #0x24 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - add r0, sp, #0x3c - add r3, sp, #0x18 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r5 - bl func_ov00_020833c4 - ldr r1, [sp, #0x24] - sub r0, r1, r0 - str r0, [sp, #0x24] - mov r0, r5 - bl func_ov00_020833d0 - ldr r1, [sp, #0x2c] - sub r0, r1, r0 - str r0, [sp, #0x2c] - mov r0, r5 - bl func_ov00_020833c4 - ldr r1, [sp, #0x18] - sub r0, r1, r0 - str r0, [sp, #0x18] - mov r0, r5 - bl func_ov00_020833d0 - ldr r1, [sp, #0x20] - add r2, sp, #0x24 - sub r0, r1, r0 - str r0, [sp, #0x20] - ldr r1, [r5, #4] - add r0, sp, #0xc - bl func_ov00_0207f53c - ldr r1, [r5, #4] - add r0, sp, #8 - add r2, sp, #0x18 - bl func_ov00_0207f53c - ldrsh r7, [sp, #0xc] - ldrsh r0, [sp, #8] - cmp r7, r0 - addgt sp, sp, #0x6c - ldmgtia sp!, {r3, r4, r5, r6, r7, r8, pc} - add r6, sp, #0 -_02084630: - ldrsh r8, [sp, #0xe] - ldrsh r0, [sp, #0xa] - cmp r8, r0 - bgt _02084678 -_02084640: - strh r7, [sp] - strh r8, [sp, #2] - ldr r0, [r5, #4] - mov r1, r6 - ldr r3, [r0] - mov r2, r4 - ldr r3, [r3, #0xac] - blx r3 - add r0, r8, #1 - mov r0, r0, lsl #0x10 - ldrsh r1, [sp, #0xa] - mov r8, r0, asr #0x10 - cmp r1, r0, asr #16 - bge _02084640 -_02084678: - ldrsh r1, [sp, #8] - add r0, r7, #1 - mov r0, r0, lsl #0x10 - cmp r1, r0, asr #16 - mov r7, r0, asr #0x10 - bge _02084630 - add sp, sp, #0x6c - ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} - arm_func_end func_ov00_020843ec - - .global func_ov00_02084698 - arm_func_start func_ov00_02084698 -func_ov00_02084698: ; 0x02084698 - ldr r0, [r0, #4] - ldr r0, [r0, #0x38] - bx lr - arm_func_end func_ov00_02084698 - - .global func_ov00_020846a4 - arm_func_start func_ov00_020846a4 -func_ov00_020846a4: ; 0x020846a4 - ldr r1, [r0, #4] - ldr r1, [r1, #0x144] - ldr r1, [r1, #4] - cmp r1, #0xff - bne _020846f8 - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _020846f0 -_020846cc: ; jump table - b _020846f0 ; case 0 - b _020846e0 ; case 1 - b _020846e8 ; case 2 - b _020846e0 ; case 3 - b _020846e0 ; case 4 -_020846e0: - mov r0, #1 - bx lr -_020846e8: - mov r0, #2 - bx lr -_020846f0: - mov r0, #0 - bx lr -_020846f8: - mov r0, r1 - bx lr - arm_func_end func_ov00_020846a4 - - .global func_ov00_02084700 - arm_func_start func_ov00_02084700 -func_ov00_02084700: ; 0x02084700 - ldr r2, [r0, #4] - mvn r1, #0 - ldr r2, [r2, #0x34] - cmp r2, r1 - ldreq r0, [r0] - ldreq r2, [r0, #0xc4] - cmp r2, #0x1b - bne _02084734 - ldr r0, _0208473c ; =data_027e0fe4 - ldr r0, [r0] - ldrb r0, [r0, #0x29] - cmp r0, #0 - movne r2, #0x1c -_02084734: - mov r0, r2 - bx lr - .align 2, 0 - arm_func_end func_ov00_02084700 -_0208473c: .word data_027e0fe4 - - .global func_ov00_02084740 - arm_func_start func_ov00_02084740 -func_ov00_02084740: ; 0x02084740 - stmdb sp!, {r4, r5, lr} - sub sp, sp, #0x1bc - mov r5, r0 - bl func_ov00_02084700 - ldr r1, _020847d4 ; =data_027e0d38 - mov r4, r0 - ldr r0, [r1] - bl func_ov00_02078b40 - cmp r0, #2 - beq _020847a8 - ldr r0, _020847d8 ; =data_027e0f94 - add r1, sp, #0 - ldr r3, [r0] - ldr r2, [r0, #4] - str r3, [sp] - str r2, [sp, #4] - ldr r2, [r0, #8] - mov r0, r5 - str r2, [sp, #8] - bl func_ov00_02083780 - mov r1, r0 - cmp r1, #0 - ble _020847a8 - mov r0, r5 - bl func_ov00_020847f0 - mov r4, r0 -_020847a8: - ldr r5, _020847dc ; =data_ov00_020d88f0 - add lr, sp, #0xc - mov ip, #0x1b -_020847b4: - ldmia r5!, {r0, r1, r2, r3} - stmia lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _020847b4 - add r0, sp, #0xc - ldr r0, [r0, r4, lsl #2] - add sp, sp, #0x1bc - ldmia sp!, {r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_02084740 -_020847d4: .word data_027e0d38 -_020847d8: .word data_027e0f94 -_020847dc: .word data_ov00_020d88f0 - - .global func_ov00_020847e0 - arm_func_start func_ov00_020847e0 -func_ov00_020847e0: ; 0x020847e0 - ldr r0, [r0, #4] - ldr r0, [r0, #0x144] - ldr r0, [r0, #0xc] - bx lr - arm_func_end func_ov00_020847e0 - - .global func_ov00_020847f0 - arm_func_start func_ov00_020847f0 -func_ov00_020847f0: ; 0x020847f0 - stmdb sp!, {r4, lr} - mov r4, r0 - ldr r0, [r4, #4] - bl func_ov00_0207fc98 - cmp r0, #0 - bne _02084814 - mov r0, r4 - bl func_ov00_02084700 - ldmia sp!, {r4, pc} -_02084814: - ldr r0, [r0, #0xc] - mvn r1, #0 - cmp r0, r1 - beq _0208482c - cmp r0, #0x6c - ldmltia sp!, {r4, pc} -_0208482c: - mov r0, r4 - bl func_ov00_02084700 - ldmia sp!, {r4, pc} - arm_func_end func_ov00_020847f0 - - .global func_ov00_02084838 - arm_func_start func_ov00_02084838 -func_ov00_02084838: ; 0x02084838 - stmdb sp!, {r3, lr} - bl func_ov00_02084698 - cmp r0, #0x16 - addls pc, pc, r0, lsl #2 - b _020848b0 -_0208484c: ; jump table - b _020848b0 ; case 0 - b _020848a8 ; case 1 - b _020848a8 ; case 2 - b _020848a8 ; case 3 - b _020848a8 ; case 4 - b _020848a8 ; case 5 - b _020848b0 ; case 6 - b _020848b0 ; case 7 - b _020848b0 ; case 8 - b _020848b0 ; case 9 - b _020848a8 ; case 10 - b _020848a8 ; case 11 - b _020848a8 ; case 12 - b _020848b0 ; case 13 - b _020848b0 ; case 14 - b _020848b0 ; case 15 - b _020848b0 ; case 16 - b _020848a8 ; case 17 - b _020848b0 ; case 18 - b _020848a8 ; case 19 - b _020848a8 ; case 20 - b _020848a8 ; case 21 - b _020848a8 ; case 22 -_020848a8: - mov r0, #1 - ldmia sp!, {r3, pc} -_020848b0: - mov r0, #0 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084838 - - .global func_ov00_020848b8 - arm_func_start func_ov00_020848b8 -func_ov00_020848b8: ; 0x020848b8 - stmdb sp!, {r3, lr} - bl func_ov00_020846a4 - cmp r0, #0x11 - addls pc, pc, r0, lsl #2 - b _0208491c -_020848cc: ; jump table - b _0208491c ; case 0 - b _0208491c ; case 1 - b _0208491c ; case 2 - b _0208491c ; case 3 - b _0208491c ; case 4 - b _0208491c ; case 5 - b _02084914 ; case 6 - b _0208491c ; case 7 - b _0208491c ; case 8 - b _0208491c ; case 9 - b _0208491c ; case 10 - b _0208491c ; case 11 - b _02084914 ; case 12 - b _02084914 ; case 13 - b _0208491c ; case 14 - b _02084914 ; case 15 - b _0208491c ; case 16 - b _02084914 ; case 17 -_02084914: - mov r0, #1 - ldmia sp!, {r3, pc} -_0208491c: - mov r0, #0 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_020848b8 - - .global func_ov00_02084924 - arm_func_start func_ov00_02084924 -func_ov00_02084924: ; 0x02084924 - ldr ip, _02084930 ; =func_ov00_0208008c - ldr r0, [r0, #4] - bx ip - .align 2, 0 - arm_func_end func_ov00_02084924 -_02084930: .word func_ov00_0208008c - - .global func_ov00_02084934 - arm_func_start func_ov00_02084934 -func_ov00_02084934: ; 0x02084934 - stmdb sp!, {r4, r5, r6, r7, lr} - sub sp, sp, #0xc - mov r6, r1 - mov r7, r0 - bl func_ov00_02083400 - ldr r1, [r6, #8] - ldr r4, [r6, #4] - sub r5, r1, r0 - mov r0, r7 - bl func_ov00_020833f4 - ldr r2, [r6] - add r1, sp, #0 - sub r0, r2, r0 - str r4, [sp, #4] - str r5, [sp, #8] - str r0, [sp] - ldr r0, [r7, #4] - bl func_ov00_0207f7e8 - add sp, sp, #0xc - ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_end func_ov00_02084934 - - .global func_ov00_02084984 - arm_func_start func_ov00_02084984 -func_ov00_02084984: ; 0x02084984 - ldr r0, [r0, #4] - ldrb r0, [r0, #6] - bx lr - arm_func_end func_ov00_02084984 - - .global func_ov00_02084990 - arm_func_start func_ov00_02084990 -func_ov00_02084990: ; 0x02084990 - ldr r0, [r0, #4] - ldrb r0, [r0, #7] - bx lr - arm_func_end func_ov00_02084990 - - .global func_ov00_0208499c - arm_func_start func_ov00_0208499c -func_ov00_0208499c: ; 0x0208499c - stmdb sp!, {r4, lr} - mov r4, r0 - bl func_ov00_020849c0 - cmp r0, #0 - movne r0, #0 - ldmneia sp!, {r4, pc} - ldr r0, [r4] - bl func_ov00_0207d47c - ldmia sp!, {r4, pc} - arm_func_end func_ov00_0208499c - - .global func_ov00_020849c0 - arm_func_start func_ov00_020849c0 -func_ov00_020849c0: ; 0x020849c0 - ldr r1, [r0] - mvn r0, #1 - ldr r1, [r1, #8] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - bx lr - arm_func_end func_ov00_020849c0 - - .global func_ov00_020849dc - arm_func_start func_ov00_020849dc -func_ov00_020849dc: ; 0x020849dc - ldr r1, [r0] - mvn r0, #2 - ldr r1, [r1, #8] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - bx lr - arm_func_end func_ov00_020849dc - - .global func_ov00_020849f8 - arm_func_start func_ov00_020849f8 -func_ov00_020849f8: ; 0x020849f8 - stmdb sp!, {r4, lr} - ldr r1, _02084a4c ; =data_027e0d38 - mov r4, r0 - ldr r0, [r1] - add r0, r0, #0xc - bl func_ov00_020a5e9c - cmp r0, #5 - bne _02084a20 - mov r0, #1 - ldmia sp!, {r4, pc} -_02084a20: - mov r0, r4 - bl func_ov00_02084984 - cmp r0, #0 - beq _02084a44 - mov r0, r4 - bl func_ov00_020849c0 - cmp r0, #0 - moveq r0, #1 - ldmeqia sp!, {r4, pc} -_02084a44: - mov r0, #0 - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_020849f8 -_02084a4c: .word data_027e0d38 - - .global func_ov00_02084a50 - arm_func_start func_ov00_02084a50 -func_ov00_02084a50: ; 0x02084a50 - ldr r0, [r0, #4] - ldrb r0, [r0, #0x11] - bx lr - arm_func_end func_ov00_02084a50 - - .global func_ov00_02084a5c - arm_func_start func_ov00_02084a5c -func_ov00_02084a5c: ; 0x02084a5c - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x30 - add r0, sp, #4 - mov r6, r1 - mov r5, r2 - mov r4, r3 - bl func_ov00_020c1500 - mvn r1, #0 - add r0, sp, #4 - str r1, [sp, #0x20] - str r1, [sp, #0x24] - bl func_ov00_020c3348 - str r5, [sp, #0x28] - str r4, [sp, #0x2c] - mov r1, #0 - str r1, [sp] - ldr r0, _02084abc ; =data_027e0fe8 - ldr r1, _02084ac0 ; =0x45564943 - ldr r0, [r0] - mov r2, r6 - add r3, sp, #4 - bl func_ov00_020c4048 - add sp, sp, #0x30 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_02084a5c -_02084abc: .word data_027e0fe8 -_02084ac0: .word 0x45564943 - - .global func_ov00_02084ac4 - arm_func_start func_ov00_02084ac4 -func_ov00_02084ac4: ; 0x02084ac4 - stmdb sp!, {r3, lr} - ldr r0, _02084b00 ; =data_027e0fe4 - ldr r0, [r0] - bl _ZN12ActorManager13FindActorByIdEj - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldr r2, [r0, #4] - ldr r1, _02084b04 ; =0x45564943 - cmp r2, r1 - movne r0, #0 - moveq r1, #0 - streqb r1, [r0, #0x118] - moveq r0, #1 - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_02084ac4 -_02084b00: .word data_027e0fe4 -_02084b04: .word 0x45564943 - - .global func_ov00_02084b08 - arm_func_start func_ov00_02084b08 -func_ov00_02084b08: ; 0x02084b08 - ldr r0, [r0] - str r1, [r0, #0x260] - bx lr - arm_func_end func_ov00_02084b08 - - .global func_ov00_02084b14 - arm_func_start func_ov00_02084b14 -func_ov00_02084b14: ; 0x02084b14 - ldr r0, [r0] - ldr r0, [r0, #0x260] - bx lr - arm_func_end func_ov00_02084b14 - - .global func_ov00_02084b20 - arm_func_start func_ov00_02084b20 -func_ov00_02084b20: ; 0x02084b20 - ldr r0, [r0] - strb r1, [r0, #0x25d] - bx lr - arm_func_end func_ov00_02084b20 - - .global func_ov00_02084b2c - arm_func_start func_ov00_02084b2c -func_ov00_02084b2c: ; 0x02084b2c - ldr r0, [r0] - ldrb r0, [r0, #0x25d] - bx lr - arm_func_end func_ov00_02084b2c - - .global func_ov00_02084b38 - arm_func_start func_ov00_02084b38 -func_ov00_02084b38: ; 0x02084b38 - stmdb sp!, {r3, lr} - cmp r1, #0 - ldmeqia sp!, {r3, pc} - cmp r2, #3 - addls pc, pc, r2, lsl #2 - ldmia sp!, {r3, pc} -_02084b50: ; jump table - b _02084b60 ; case 0 - b _02084bb0 ; case 1 - b _02084bc0 ; case 2 - b _02084bd0 ; case 3 -_02084b60: - cmp r3, #0 - ldr r0, [r0, #4] - beq _02084b8c - add ip, r0, #0x180 - mov r3, r1, lsr #0x5 - and r0, r1, #0x1f - ldr r2, [ip, r3, lsl #2] - mov r1, #1 - orr r0, r2, r1, lsl r0 - str r0, [ip, r3, lsl #2] - ldmia sp!, {r3, pc} -_02084b8c: - add r3, r0, #0x180 - mov r2, r1, lsr #0x5 - and r0, r1, #0x1f - mov r1, #1 - mvn r0, r1, lsl r0 - ldr r1, [r3, r2, lsl #2] - and r0, r1, r0 - str r0, [r3, r2, lsl #2] - ldmia sp!, {r3, pc} -_02084bb0: - ldr r0, [r0] - mov r2, r3 - bl func_ov00_0207d8b4 - ldmia sp!, {r3, pc} -_02084bc0: - ldr r0, [r0] - mov r2, r3 - bl func_ov00_0207d7dc - ldmia sp!, {r3, pc} -_02084bd0: - ldr r0, [r0] - mov r2, r3 - bl func_ov00_0207d848 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084b38 - - .global func_ov00_02084be0 - arm_func_start func_ov00_02084be0 -func_ov00_02084be0: ; 0x02084be0 - stmdb sp!, {r3, lr} - cmp r1, #0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - cmp r2, #3 - addls pc, pc, r2, lsl #2 - b _02084c54 -_02084bfc: ; jump table - b _02084c0c ; case 0 - b _02084c30 ; case 1 - b _02084c3c ; case 2 - b _02084c48 ; case 3 -_02084c0c: - ldr r2, [r0, #4] - mov r0, r1, lsr #0x5 - add r0, r2, r0, lsl #2 - ldr r2, [r0, #0x180] - and r1, r1, #0x1f - mov r0, #1 - tst r2, r0, lsl r1 - moveq r0, #0 - ldmia sp!, {r3, pc} -_02084c30: - ldr r0, [r0] - bl func_ov00_0207d8d4 - ldmia sp!, {r3, pc} -_02084c3c: - ldr r0, [r0] - bl func_ov00_0207d828 - ldmia sp!, {r3, pc} -_02084c48: - ldr r0, [r0] - bl func_ov00_0207d894 - ldmia sp!, {r3, pc} -_02084c54: - mov r0, #0 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084be0 - - .global func_ov00_02084c5c - arm_func_start func_ov00_02084c5c -func_ov00_02084c5c: ; 0x02084c5c - ldr ip, _02084c68 ; =func_ov00_0207d8ec - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_02084c5c -_02084c68: .word func_ov00_0207d8ec - - .global func_ov00_02084c6c - arm_func_start func_ov00_02084c6c -func_ov00_02084c6c: ; 0x02084c6c - ldr ip, _02084c78 ; =func_ov00_0207d90c - ldr r0, [r0] - bx ip - .align 2, 0 - arm_func_end func_ov00_02084c6c -_02084c78: .word func_ov00_0207d90c - - .global func_ov00_02084c7c - arm_func_start func_ov00_02084c7c -func_ov00_02084c7c: ; 0x02084c7c - stmdb sp!, {r3, lr} - cmp r1, #0 - ldmltia sp!, {r3, pc} - ldr r0, [r0] - bl func_ov00_0207d924 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084c7c - - .global func_ov00_02084c94 - arm_func_start func_ov00_02084c94 -func_ov00_02084c94: ; 0x02084c94 - stmdb sp!, {r3, lr} - cmp r1, #0 - movlt r0, #0 - ldmltia sp!, {r3, pc} - ldr r0, [r0] - bl func_ov00_0207d944 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084c94 - - .global func_ov00_02084cb0 - arm_func_start func_ov00_02084cb0 -func_ov00_02084cb0: ; 0x02084cb0 - stmdb sp!, {r3, lr} - cmp r1, #0 - ldmltia sp!, {r3, pc} - ldr r0, [r0] - bl func_ov00_0207d95c - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084cb0 - - .global func_ov00_02084cc8 - arm_func_start func_ov00_02084cc8 -func_ov00_02084cc8: ; 0x02084cc8 - stmdb sp!, {r3, lr} - cmp r1, #0 - movlt r0, #0 - ldmltia sp!, {r3, pc} - ldr r0, [r0] - bl func_ov00_0207d97c - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084cc8 - - .global func_ov00_02084ce4 - arm_func_start func_ov00_02084ce4 -func_ov00_02084ce4: ; 0x02084ce4 - stmdb sp!, {r3, lr} - cmp r1, #0 - ldmltia sp!, {r3, pc} - ldr r0, [r0] - bl func_ov00_0207d994 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084ce4 - - .global func_ov00_02084cfc - arm_func_start func_ov00_02084cfc -func_ov00_02084cfc: ; 0x02084cfc - stmdb sp!, {r3, lr} - cmp r1, #0 - movlt r0, #0 - ldmltia sp!, {r3, pc} - ldr r0, [r0] - bl func_ov00_0207d9b4 - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084cfc - - .global func_ov00_02084d18 - arm_func_start func_ov00_02084d18 -func_ov00_02084d18: ; 0x02084d18 - ldr r0, [r0, #4] - ldrb r0, [r0, #9] - bx lr - arm_func_end func_ov00_02084d18 - - .global func_ov00_02084d24 - arm_func_start func_ov00_02084d24 -func_ov00_02084d24: ; 0x02084d24 - stmdb sp!, {r3, lr} - strb r1, [sp] - strb r2, [sp, #1] - ldr r0, [r0, #4] - add r1, sp, #0 - ldr ip, [r0] - mov r2, r3 - ldr ip, [ip, #0x90] - blx ip - ldmia sp!, {r3, pc} - arm_func_end func_ov00_02084d24 - - .global func_ov00_02084d4c - arm_func_start func_ov00_02084d4c -func_ov00_02084d4c: ; 0x02084d4c - stmdb sp!, {r4, lr} - sub sp, sp, #0x38 - add r4, sp, #0x20 - str r4, [sp] - ldr r0, _02084ea0 ; =data_027e0f64 - mov r4, r3 - ldr r0, [r0] - add r3, sp, #0x2c - ldr r0, [r0, #4] - bl func_ov00_0208df78 - mvn r1, #0 - cmp r0, r1 - addeq sp, sp, #0x38 - moveq r0, r1 - ldmeqia sp!, {r4, pc} - ldr r0, _02084ea4 ; =data_ov00_020ec964 - ldr r0, [r0, #0x60] - tst r0, #1 - bne _02084de4 - mov lr, #0 - mov r1, #0x1000 - ldr ip, _02084ea8 ; =data_ov00_020e2510 - add r0, sp, #8 - str lr, [sp, #8] - str lr, [sp, #0x10] - str r1, [sp, #0xc] - ldmia r0, {r0, r1, r2} - stmia ip, {r0, r1, r2} - ldr r3, _02084eac ; =data_ov00_020e24a4 - ldr r1, _02084eb0 ; =func_ov00_0207e968 - ldr r2, _02084eb4 ; =data_ov00_020ec9c8 - mov r0, ip - str lr, [r3, #0x78] - bl __register_global_object - ldr r0, _02084ea4 ; =data_ov00_020ec964 - ldr r1, [r0, #0x60] - orr r1, r1, #1 - str r1, [r0, #0x60] -_02084de4: - add r0, sp, #0x20 - add r3, sp, #0x14 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - add r1, sp, #0x2c - mov r0, r3 - mov r2, r3 - bl func_01ff9bf8 - ldr r0, _02084ea8 ; =data_ov00_020e2510 - add r1, sp, #0x2c - add r2, sp, #0x14 - add r3, sp, #4 - bl func_01ffe61c - cmp r0, #0 - addeq sp, sp, #0x38 - mvneq r0, #0 - ldmeqia sp!, {r4, pc} - ldr r0, [sp, #0x2c] - add r1, sp, #0x14 - str r0, [r4] - ldr r0, [sp, #0x30] - mov r2, r4 - str r0, [r4, #4] - ldr r0, [sp, #0x34] - mov r3, r4 - str r0, [r4, #8] - ldr r0, [sp, #4] - bl func_01ff9e64 - ldr r0, [sp, #4] - cmp r0, #0 - addge sp, sp, #0x38 - movge r0, #0 - ldmgeia sp!, {r4, pc} - ldr r1, [sp, #0x2c] - ldr r0, _02084eb8 ; =0x0000019a - str r1, [r4] - ldr r2, [sp, #0x30] - add r1, sp, #0x14 - str r2, [r4, #4] - ldr ip, [sp, #0x34] - mov r2, r4 - mov r3, r4 - str ip, [r4, #8] - bl func_01ff9e64 - mov r0, #1 - add sp, sp, #0x38 - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end func_ov00_02084d4c -_02084ea0: .word data_027e0f64 -_02084ea4: .word data_ov00_020ec964 -_02084ea8: .word data_ov00_020e2510 -_02084eac: .word data_ov00_020e24a4 -_02084eb0: .word func_ov00_0207e968 -_02084eb4: .word data_ov00_020ec9c8 -_02084eb8: .word 0x0000019a - - .global func_ov00_02084ebc - arm_func_start func_ov00_02084ebc -func_ov00_02084ebc: ; 0x02084ebc - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #8 - mov r6, r0 - mov r5, r1 - add r0, sp, #0 - mov r1, r6 - mov r2, r5 - bl func_ov00_02083a1c - add r1, sp, #0 - mov r0, r6 - bl func_ov00_020840c4 - movs r4, r0 - beq _02084f50 - ldr r1, [r0] - ldr r1, [r1, #0x1c] - blx r1 - cmp r0, #0x38 - bgt _02084f14 - bge _02084f50 - cmp r0, #1 - beq _02084f50 - b _02084f44 -_02084f14: - cmp r0, #0x59 - bgt _02084f24 - beq _02084f50 - b _02084f44 -_02084f24: - cmp r0, #0x61 - bne _02084f44 - ldr r0, [r4, #8] - cmp r0, #2 - bne _02084f50 - add sp, sp, #8 - mov r0, #0 - ldmia sp!, {r4, r5, r6, pc} -_02084f44: - add sp, sp, #8 - mov r0, #0 - ldmia sp!, {r4, r5, r6, pc} -_02084f50: - add r1, sp, #0 - mov r0, r6 - bl func_ov00_02083e70 - cmp r0, #0 - addne sp, sp, #8 - movne r0, #0 - ldmneia sp!, {r4, r5, r6, pc} - add r1, sp, #0 - mov r0, r6 - bl func_ov00_02084088 - cmp r0, #0x46 - bgt _0208504c - bge _0208506c - cmp r0, #0x29 - bgt _02085040 - cmp r0, #0 - addge pc, pc, r0, lsl #2 - b _02085078 -_02084f98: ; jump table - b _02085078 ; case 0 - b _0208506c ; case 1 - b _0208506c ; case 2 - b _0208506c ; case 3 - b _0208506c ; case 4 - b _0208506c ; case 5 - b _0208506c ; case 6 - b _02085078 ; case 7 - b _0208506c ; case 8 - b _0208506c ; case 9 - b _02085078 ; case 10 - b _02085078 ; case 11 - b _02085078 ; case 12 - b _02085078 ; case 13 - b _02085078 ; case 14 - b _02085078 ; case 15 - b _02085078 ; case 16 - b _02085078 ; case 17 - b _02085078 ; case 18 - b _02085078 ; case 19 - b _0208506c ; case 20 - b _02085078 ; case 21 - b _0208506c ; case 22 - b _0208506c ; case 23 - b _02085078 ; case 24 - b _0208506c ; case 25 - b _02085078 ; case 26 - b _02085078 ; case 27 - b _02085078 ; case 28 - b _0208506c ; case 29 - b _0208506c ; case 30 - b _0208506c ; case 31 - b _02085078 ; case 32 - b _02085078 ; case 33 - b _02085078 ; case 34 - b _02085078 ; case 35 - b _02085078 ; case 36 - b _02085078 ; case 37 - b _02085078 ; case 38 - b _0208506c ; case 39 - b _0208506c ; case 40 - b _0208506c ; case 41 -_02085040: - cmp r0, #0x37 - beq _0208506c - b _02085078 -_0208504c: - cmp r0, #0x48 - bgt _02085064 - bge _0208506c - cmp r0, #0x47 - beq _0208506c - b _02085078 -_02085064: - cmp r0, #0x50 - bne _02085078 -_0208506c: - add sp, sp, #8 - mov r0, #0 - ldmia sp!, {r4, r5, r6, pc} -_02085078: - ldr r0, [r6, #4] - add r1, sp, #0 - ldr r3, [r0] - mov r2, #5 - ldr r3, [r3, #0x58] - blx r3 - cmp r0, #0 - addne sp, sp, #8 - movne r0, #0 - ldmneia sp!, {r4, r5, r6, pc} - mov r0, r6 - mov r1, r5 - bl func_ov00_02083f98 - ldr r1, _02085100 ; =0x0000ffff - mov r2, r0 - cmp r2, r1 - addeq sp, sp, #8 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, pc} - ldr r1, _02085104 ; =data_027e0f6c - add r0, sp, #4 - ldr r1, [r1] - bl func_ov00_02093a1c - ldr r0, [sp, #4] - mov r0, r0, lsr #0x5 - and r0, r0, #3 - cmp r0, #1 - bne _020850f4 - add sp, sp, #8 - mov r0, #1 - ldmia sp!, {r4, r5, r6, pc} -_020850f4: - mov r0, #0 - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end func_ov00_02084ebc -_02085100: .word 0x0000ffff -_02085104: .word data_027e0f6c - - .global func_ov00_02085108 - arm_func_start func_ov00_02085108 -func_ov00_02085108: ; 0x02085108 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x2c - ldr r0, _02085274 ; =data_027e0f64 - str r1, [sp] - ldr r0, [r0] - bl func_ov00_0208b180 - mov r1, r0 - add r0, sp, #0x18 - bl func_ov00_02088130 - mov r1, #0 - ldr r0, _02085274 ; =data_027e0f64 - strb r1, [sp, #0x13] - strb r1, [sp, #0x12] - ldrb r1, [sp, #0x18] - ldr r0, [r0] - str r1, [sp, #0xc] - ldrb r1, [sp, #0x19] - str r1, [sp, #8] - bl func_ov00_0208b180 - mov r1, r0 - add r0, sp, #0x16 - bl func_ov00_02088144 - mov r0, #0 - strb r0, [sp, #0x11] - strb r0, [sp, #0x10] - ldr r1, [sp, #0xc] - ldr r0, [sp, #8] - ldrb r7, [sp, #0x16] - cmp r1, r0 - ldrb r0, [sp, #0x17] - str r0, [sp, #4] - bgt _02085268 -_02085188: - ldr r6, [sp, #4] - mov r0, r6 - cmp r0, r7 - blt _02085250 - ldr r0, [sp, #0xc] - ldr r11, _02085278 ; =data_027e0e60 - and r5, r0, #0xff -_020851a4: - ldr r0, [r11] - add r1, sp, #0x14 - strb r5, [sp, #0x14] - strb r6, [sp, #0x15] - bl func_ov00_020840c4 - movs r4, r0 - beq _02085244 - ldr r1, [r4, #4] - tst r1, #4 - beq _02085244 - ldr r1, [r0] - ldr r9, [r4, #0x1c] - ldr r1, [r1, #0x60] - ldr r8, [r4, #0x18] - ldr r10, [r4, #0x20] - blx r1 - add r9, r9, r0 - mov r0, r4 - ldr r1, [r0] - ldr r1, [r1, #0x5c] - blx r1 - str r0, [sp, #0x28] - add r0, sp, #0x1c - mov r1, #2 - str r8, [sp, #0x1c] - str r9, [sp, #0x20] - str r10, [sp, #0x24] - bl func_0202b8e4 - cmp r0, #0 - beq _02085244 - ldr r0, [sp] - ldr r1, [r4, #0x18] - add sp, sp, #0x2c - str r1, [r0] - ldr r1, [r4, #0x1c] - str r1, [r0, #4] - ldr r1, [r4, #0x20] - str r1, [r0, #8] - ldrsb r0, [r4, #0x12] - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_02085244: - sub r6, r6, #1 - cmp r6, r7 - bge _020851a4 -_02085250: - ldr r0, [sp, #0xc] - add r1, r0, #1 - ldr r0, [sp, #8] - str r1, [sp, #0xc] - cmp r1, r0 - ble _02085188 -_02085268: - mov r0, #0 - add sp, sp, #0x2c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_02085108 -_02085274: .word data_027e0f64 -_02085278: .word data_027e0e60 - - .global func_ov00_0208527c - arm_func_start func_ov00_0208527c -func_ov00_0208527c: ; 0x0208527c - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x2c - ldr r3, _020853f4 ; =data_027e0f64 - mov r4, r0 - ldr r0, [r3] - mov r10, r1 - str r2, [sp] - bl func_ov00_0208b180 - mov r1, r0 - add r0, sp, #0x14 - bl func_ov00_02088130 - mov r1, #0 - ldr r0, _020853f4 ; =data_027e0f64 - strb r1, [sp, #0xf] - strb r1, [sp, #0xe] - ldrb r1, [sp, #0x15] - ldr r0, [r0] - ldrb r11, [sp, #0x14] - str r1, [sp, #8] - bl func_ov00_0208b180 - mov r1, r0 - add r0, sp, #0x12 - bl func_ov00_02088144 - mov r0, #0 - strb r0, [sp, #0xd] - strb r0, [sp, #0xc] - ldrb r0, [sp, #0x12] - ldrb r9, [sp, #0x13] - str r0, [sp, #4] - mov r0, r4 - bl func_ov00_0208335c - mov r5, r0 - mov r0, r4 - bl func_ov00_02083368 - cmp r11, #0 - ldr r1, [sp, #8] - movle r11, #0 - cmp r1, r5 - ldr r1, [sp, #4] - subge r11, r5, #1 - cmp r1, #0 - movle r1, #0 - strle r1, [sp, #4] - cmp r9, r0 - subge r9, r0, #1 - mov r0, #0 - str r0, [sp, #0x24] - str r0, [sp, #0x18] - str r0, [sp, #0x1c] - str r0, [sp, #0x20] - ldr r0, [sp, #8] - cmp r11, r0 - bgt _020853e8 - ldr r4, _020853f8 ; =data_027e0e60 - add r6, sp, #0x10 -_02085358: - ldr r8, [sp, #4] - mov r0, r8 - cmp r0, r9 - bgt _020853d8 - and r7, r11, #0xff -_0208536c: - ldr r0, [r4] - mov r1, r6 - strb r7, [sp, #0x10] - strb r8, [sp, #0x11] - bl func_ov00_020840c4 - movs r5, r0 - beq _020853cc - ldr r1, [r5, #4] - tst r1, #4 - beq _020853cc - mov r1, r10 - bl func_ov00_0208b73c - cmp r0, #0 - beq _020853cc - ldr r0, [sp] - ldr r1, [r5, #0x18] - add sp, sp, #0x2c - str r1, [r0] - ldr r1, [r5, #0x1c] - str r1, [r0, #4] - ldr r1, [r5, #0x20] - str r1, [r0, #8] - ldrsb r0, [r5, #0x12] - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_020853cc: - add r8, r8, #1 - cmp r8, r9 - ble _0208536c -_020853d8: - ldr r0, [sp, #8] - add r11, r11, #1 - cmp r11, r0 - ble _02085358 -_020853e8: - mov r0, #0 - add sp, sp, #0x2c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_0208527c -_020853f4: .word data_027e0f64 -_020853f8: .word data_027e0e60 - - .global func_ov00_020853fc - arm_func_start func_ov00_020853fc -func_ov00_020853fc: ; 0x020853fc - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x2c - ldr r3, _0208558c ; =data_027e0f64 - mov r5, r0 - ldr r0, [r3] - mov r10, r1 - mov r9, r2 - bl func_ov00_0208b180 - mov r1, r0 - add r0, sp, #0x14 - bl func_ov00_02088130 - mov r1, #0 - ldr r0, _0208558c ; =data_027e0f64 - strb r1, [sp, #0xf] - strb r1, [sp, #0xe] - ldrb r1, [sp, #0x14] - ldr r0, [r0] - str r1, [sp, #8] - ldrb r1, [sp, #0x15] - str r1, [sp, #4] - bl func_ov00_0208b180 - mov r1, r0 - add r0, sp, #0x12 - bl func_ov00_02088144 - mov r0, #0 - strb r0, [sp, #0xd] - strb r0, [sp, #0xc] - ldrb r0, [sp, #0x12] - ldrb r8, [sp, #0x13] - str r0, [sp] - mov r0, r5 - bl func_ov00_0208335c - mov r4, r0 - mov r0, r5 - bl func_ov00_02083368 - mov r11, #0 - ldr r1, [sp, #8] - str r11, [sp, #0x24] - cmp r1, #0 - movle r1, #0 - strle r1, [sp, #8] - ldr r1, [sp, #4] - str r11, [sp, #0x18] - cmp r1, r4 - subge r1, r4, #1 - strge r1, [sp, #8] - ldr r1, [sp] - str r11, [sp, #0x1c] - cmp r1, #0 - movle r1, #0 - strle r1, [sp] - cmp r8, r0 - subge r8, r0, #1 - ldr r1, [sp, #8] - ldr r0, [sp, #4] - str r11, [sp, #0x20] - cmp r1, r0 - bgt _02085580 -_020854e4: - ldr r7, [sp] - mov r0, r7 - cmp r0, r8 - bgt _02085568 - ldr r0, [sp, #8] - and r6, r0, #0xff -_020854fc: - ldr r0, _02085590 ; =data_027e0e60 - add r1, sp, #0x10 - ldr r0, [r0] - strb r6, [sp, #0x10] - strb r7, [sp, #0x11] - bl func_ov00_020840c4 - movs r5, r0 - beq _0208555c - ldr r0, [r5, #4] - tst r0, #4 - beq _0208555c - mov r1, r10 - add r0, r5, #0x18 - bl func_01ff9ec0 - ldr r1, [r9] - mov r4, r0 - cmp r4, r1 - bge _0208555c - mov r0, r5 - mov r1, r10 - bl func_ov00_0208b7d0 - cmp r0, #0 - movne r11, r5 - strne r4, [r9] -_0208555c: - add r7, r7, #1 - cmp r7, r8 - ble _020854fc -_02085568: - ldr r0, [sp, #8] - add r1, r0, #1 - ldr r0, [sp, #4] - str r1, [sp, #8] - cmp r1, r0 - ble _020854e4 -_02085580: - mov r0, r11 - add sp, sp, #0x2c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_020853fc -_0208558c: .word data_027e0f64 -_02085590: .word data_027e0e60 - - .global func_ov00_02085594 - arm_func_start func_ov00_02085594 -func_ov00_02085594: ; 0x02085594 - stmdb sp!, {r4, r5, r6, r7, lr} - sub sp, sp, #0x14 - mov r7, r0 - mov r6, r1 - add r0, sp, #0 - mov r1, r7 - mov r2, r6 - bl func_ov00_02083a1c - add r1, sp, #0 - mov r0, r7 - bl func_ov00_020840c4 - movs r4, r0 - mov r5, #1 - beq _02085670 - ldr r1, [r4, #0x18] - str r1, [r6] - ldr r1, [r4, #0x1c] - str r1, [r6, #4] - ldr r1, [r4, #0x20] - str r1, [r6, #8] - ldr r1, [r0] - ldr r1, [r1, #0x1c] - blx r1 - cmp r0, #0x42 - bgt _02085618 - bge _02085658 - cmp r0, #1 - bgt _0208560c - beq _02085670 - b _02085664 -_0208560c: - cmp r0, #0x38 - beq _02085670 - b _02085664 -_02085618: - cmp r0, #0x59 - bgt _02085628 - beq _02085648 - b _02085664 -_02085628: - cmp r0, #0x61 - bne _02085664 - ldr r0, [r4, #8] - cmp r0, #2 - bne _02085670 - add sp, sp, #0x14 - mov r0, #0 - ldmia sp!, {r4, r5, r6, r7, pc} -_02085648: - ldr r0, [r4, #8] - cmp r0, #4 - movne r5, #0 - b _02085670 -_02085658: - add sp, sp, #0x14 - mov r0, #2 - ldmia sp!, {r4, r5, r6, r7, pc} -_02085664: - add sp, sp, #0x14 - mov r0, #0 - ldmia sp!, {r4, r5, r6, r7, pc} -_02085670: - ldrb r1, [sp] - ldrb r2, [sp, #1] - mov r0, r7 - bl func_ov00_020840a0 - cmp r0, #0x46 - bgt _02085754 - bge _02085774 - cmp r0, #0x29 - bgt _02085748 - cmp r0, #0 - addge pc, pc, r0, lsl #2 - b _02085780 -_020856a0: ; jump table - b _02085780 ; case 0 - b _02085774 ; case 1 - b _02085774 ; case 2 - b _02085774 ; case 3 - b _02085774 ; case 4 - b _02085774 ; case 5 - b _02085774 ; case 6 - b _02085780 ; case 7 - b _02085774 ; case 8 - b _02085774 ; case 9 - b _02085780 ; case 10 - b _02085780 ; case 11 - b _02085780 ; case 12 - b _02085780 ; case 13 - b _02085780 ; case 14 - b _02085780 ; case 15 - b _02085780 ; case 16 - b _02085780 ; case 17 - b _02085780 ; case 18 - b _02085780 ; case 19 - b _02085774 ; case 20 - b _02085780 ; case 21 - b _02085774 ; case 22 - b _02085774 ; case 23 - b _02085780 ; case 24 - b _02085774 ; case 25 - b _02085780 ; case 26 - b _02085780 ; case 27 - b _02085780 ; case 28 - b _02085774 ; case 29 - b _02085774 ; case 30 - b _02085774 ; case 31 - b _02085780 ; case 32 - b _02085780 ; case 33 - b _02085780 ; case 34 - b _02085780 ; case 35 - b _02085780 ; case 36 - b _02085780 ; case 37 - b _02085780 ; case 38 - b _02085774 ; case 39 - b _02085774 ; case 40 - b _02085774 ; case 41 -_02085748: - cmp r0, #0x37 - beq _02085774 - b _02085780 -_02085754: - cmp r0, #0x48 - bgt _0208576c - bge _02085774 - cmp r0, #0x47 - beq _02085774 - b _02085780 -_0208576c: - cmp r0, #0x50 - bne _02085780 -_02085774: - add sp, sp, #0x14 - mov r0, #0 - ldmia sp!, {r4, r5, r6, r7, pc} -_02085780: - ldr r0, [r7, #4] - add r1, sp, #0 - ldr r3, [r0] - mov r2, #5 - ldr r3, [r3, #0x58] - blx r3 - cmp r0, #0 - addne sp, sp, #0x14 - movne r0, #0 - ldmneia sp!, {r4, r5, r6, r7, pc} - ldrb r2, [sp] - ldrb r0, [sp, #1] - sub r3, sp, #4 - add r1, sp, #8 - strb r2, [r3] - strb r0, [r3, #1] - ldr r2, [r3] - mov r0, r7 - bl func_ov00_02083c7c - add r1, sp, #8 - mov r0, r7 - bl func_ov00_02083f98 - ldr r1, _02085834 ; =0x0000ffff - mov r2, r0 - cmp r2, r1 - addeq sp, sp, #0x14 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, pc} - ldr r1, _02085838 ; =data_027e0f6c - add r0, sp, #4 - ldr r1, [r1] - bl func_ov00_02093a1c - ldr r0, [sp, #4] - mov r0, r0, lsr #0x5 - and r0, r0, #3 - cmp r0, #1 - bne _02085828 - cmp r5, #0 - movne r0, #1 - add sp, sp, #0x14 - moveq r0, #2 - ldmia sp!, {r4, r5, r6, r7, pc} -_02085828: - mov r0, #0 - add sp, sp, #0x14 - ldmia sp!, {r4, r5, r6, r7, pc} - .align 2, 0 - arm_func_end func_ov00_02085594 -_02085834: .word 0x0000ffff -_02085838: .word data_027e0f6c - - .global func_ov00_0208583c - arm_func_start func_ov00_0208583c -func_ov00_0208583c: ; 0x0208583c - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r3, r1 - mov r4, r2 - add r0, sp, #0 - mov r1, r5 - mov r2, r3 - bl func_ov00_02083a1c - add r1, sp, #0 - mov r0, r5 - bl func_ov00_020840c4 - cmp r0, #0 - mvneq r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} - ldr r1, _020858ac ; =data_027e077c - ldr r2, [r1] - cmp r2, #1 - mvnne r0, #0 - ldmneia sp!, {r3, r4, r5, pc} - ldr r1, [r1, #4] - cmp r2, r1 - mvnne r0, #0 - ldmneia sp!, {r3, r4, r5, pc} - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x30] - blx r2 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end func_ov00_0208583c -_020858ac: .word data_027e077c - - .global func_ov00_020858b0 - arm_func_start func_ov00_020858b0 -func_ov00_020858b0: ; 0x020858b0 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x1c - mov r9, r2 - mov r10, r0 - mov r11, r1 - cmp r9, #1 - bne _020858e4 - ldr r0, _02085a2c ; =data_027e0f64 - mov r1, #7 - ldr r0, [r0] - ldr r0, [r0, #4] - bl func_ov00_02088000 - b _020858f8 -_020858e4: - ldr r0, _02085a2c ; =data_027e0f64 - mov r1, #6 - ldr r0, [r0] - ldr r0, [r0, #4] - bl func_ov00_02088000 -_020858f8: - mov r0, r10 - bl func_ov00_0208335c - str r0, [sp, #0x10] - mov r0, r10 - bl func_ov00_02083368 - str r0, [sp, #0xc] - mvn r3, #0 - add r0, sp, #0x18 - mov r1, r10 - mov r2, r11 - str r3, [sp, #8] - bl func_ov00_02083a1c - ldrb r3, [sp, #0x18] - ldrb r2, [sp, #0x19] - ldr r1, _02085a30 ; =data_027e0f94 - add r0, r3, #1 - sub r7, r3, #1 - str r0, [sp, #4] - cmp r7, r0 - sub r0, r2, #1 - ldr r5, [r1, #4] - str r0, [sp] - add r6, r2, #1 - bgt _02085a20 -_02085958: - cmp r7, #0 - blt _02085a10 - ldr r0, [sp, #0x10] - cmp r7, r0 - bge _02085a10 - ldr r8, [sp] - mov r0, r8 - cmp r0, r6 - bgt _02085a10 - and r4, r7, #0xff -_02085980: - cmp r8, #0 - blt _02085a04 - ldr r0, [sp, #0xc] - cmp r8, r0 - bge _02085a04 - mov r0, r10 - add r1, sp, #0x16 - strb r4, [sp, #0x16] - strb r8, [sp, #0x17] - bl func_ov00_02083e58 - subs r0, r0, r5 - rsbmi r0, r0, #0 - cmp r0, #0xcd - bgt _02085a04 - mov r0, r10 - add r1, sp, #0x14 - strb r4, [sp, #0x14] - strb r8, [sp, #0x15] - bl func_ov00_020840c4 - cmp r0, #0 - beq _02085a04 - ldrb r1, [sp, #0x18] - ldr ip, [r0] - mov r3, r11 - cmp r7, r1 - ldreqb r1, [sp, #0x19] - ldr ip, [ip, #0x38] - cmpeq r8, r1 - moveq r2, #0 - movne r2, #1 - mov r1, r9 - blx ip - str r0, [sp, #8] -_02085a04: - add r8, r8, #1 - cmp r8, r6 - ble _02085980 -_02085a10: - ldr r0, [sp, #4] - add r7, r7, #1 - cmp r7, r0 - ble _02085958 -_02085a20: - ldr r0, [sp, #8] - add sp, sp, #0x1c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_020858b0 -_02085a2c: .word data_027e0f64 -_02085a30: .word data_027e0f94 - - .global func_ov00_02085a34 - arm_func_start func_ov00_02085a34 -func_ov00_02085a34: ; 0x02085a34 - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x20 - mov r4, r2 - mov r5, r0 - mov r6, r1 - cmp r4, #1 - beq _02085a60 - cmp r4, #2 - cmpne r4, #3 - beq _02085bdc - b _02085c54 -_02085a60: - add r0, sp, #8 - mov r1, r5 - mov r2, r6 - bl func_ov00_02083a1c - mov r0, r5 - mov r1, r6 - bl func_ov00_02084ebc - cmp r0, #0 - addeq sp, sp, #0x20 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, pc} - add r1, sp, #8 - mov r0, r5 - bl func_ov00_020840c4 - movs r6, r0 - beq _02085b24 - ldr r1, [r0] - ldr r1, [r1, #0x1c] - blx r1 - cmp r0, #0x38 - bgt _02085ac4 - bge _02085ae0 - cmp r0, #1 - beq _02085ae0 - b _02085b18 -_02085ac4: - cmp r0, #0x59 - bgt _02085ad4 - beq _02085afc - b _02085b18 -_02085ad4: - cmp r0, #0x61 - beq _02085afc - b _02085b18 -_02085ae0: - ldr r1, [r6, #4] - mov r0, r5 - bic r2, r1, #1 - mov r1, r6 - str r2, [r6, #4] - bl func_ov00_020828f8 - b _02085b24 -_02085afc: - mov r0, r6 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x3c] - blx r2 - add sp, sp, #0x20 - ldmia sp!, {r4, r5, r6, pc} -_02085b18: - add sp, sp, #0x20 - mvn r0, #0 - ldmia sp!, {r4, r5, r6, pc} -_02085b24: - ldr r0, [r5, #4] - add r1, sp, #8 - bl func_ov00_02080b24 - mov r2, #0 - sub r1, r2, #1 - mov r0, #1 - strh r1, [sp, #0x1c] - str r2, [sp, #0x18] - strb r0, [sp, #0x1e] - mov r4, r2 - add r1, sp, #0xc -_02085b50: - mov r0, r2, lsl #0x1 - add r2, r2, #1 - strh r4, [r1, r0] - cmp r2, #4 - blo _02085b50 - mov r3, #0 -_02085b68: - strb r3, [r1, #8] - add r4, r4, #1 - strb r3, [r1, #0xa] - cmp r4, #2 - add r1, r1, #1 - blo _02085b68 - add r4, sp, #0xc - add r2, sp, #8 - mov r0, r5 - mov r1, #0x42 - str r4, [sp] - bl func_ov00_020828c0 - cmp r0, #0 - addeq sp, sp, #0x20 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, pc} - add r1, sp, #8 - mov r0, r5 - bl func_ov00_020840c4 - cmp r0, #0 - beq _02085bd0 - ldrsh r0, [r0, #0xe] - cmp r0, #0 - addgt sp, sp, #0x20 - movgt r0, #1 - ldmgtia sp!, {r4, r5, r6, pc} -_02085bd0: - add sp, sp, #0x20 - mov r0, #0 - ldmia sp!, {r4, r5, r6, pc} -_02085bdc: - add r0, sp, #6 - mov r1, r5 - mov r2, r6 - bl func_ov00_02083a1c - add r1, sp, #6 - mov r0, r5 - bl func_ov00_020840c4 - movs r6, r0 - addeq sp, sp, #0x20 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, pc} - ldr r1, [r0] - ldr r1, [r1, #0x1c] - blx r1 - cmp r0, #0x42 - bne _02085c38 - ldrb r2, [r6, #0x15] - ldrb r0, [r6, #0x14] - add r1, sp, #4 - strb r2, [sp, #5] - strb r0, [sp, #4] - ldr r0, [r5, #4] - bl func_ov00_02080d08 -_02085c38: - mov r0, r6 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x3c] - blx r2 - add sp, sp, #0x20 - ldmia sp!, {r4, r5, r6, pc} -_02085c54: - mvn r0, #0 - add sp, sp, #0x20 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end func_ov00_02085a34 - - .global func_ov00_02085c60 - arm_func_start func_ov00_02085c60 -func_ov00_02085c60: ; 0x02085c60 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0xfc - ldr r11, [sp, #0x120] - ldr r8, [sp, #0x124] - ldr r7, [sp, #0x128] - ldr r6, [sp, #0x12c] - cmp r11, #0 - mov r10, r0 - mov r9, r1 - mov r5, r2 - mov r4, r3 - addeq sp, sp, #0xfc - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - add r1, sp, #0x88 - str r1, [sp] - ldr r0, _0208603c ; =data_027e0d3c - ldmia r5, {r2, r3} - ldr r0, [r0] - mov r1, #0 - bl func_ov00_020792a0 - add r1, sp, #0x7c - str r1, [sp] - ldr r0, _0208603c ; =data_027e0d3c - ldmia r4, {r2, r3} - ldr r0, [r0] - mov r1, #0 - bl func_ov00_020792a0 - add r0, sp, #0x88 - add r5, sp, #0x70 - ldmia r0, {r0, r1, r2} - stmia r5, {r0, r1, r2} - add r0, sp, #0x7c - add r4, sp, #0x64 - ldmia r0, {r0, r1, r2} - stmia r4, {r0, r1, r2} - add r3, sp, #0x58 - ldmia r5, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r1, r4 - mov r0, r3 - mov r2, r3 - bl func_01ff9bf8 - mov r1, #0xc000 - mov r2, #0 - umull r5, r3, r11, r1 - mla r3, r11, r2, r3 - mov r4, r11, asr #0x1f - adds r2, r5, #0x800 - mla r3, r4, r1, r3 - adc r1, r3, #0 - mov r5, r2, lsr #0xc - add r0, sp, #0x58 - orr r5, r5, r1, lsl #20 - bl func_01ff9cec - cmp r0, r5 - ble _02085d9c - add r0, sp, #0x58 - mov r1, r0 - bl func_01ff9d4c - add r0, sp, #0x58 - mov r1, r5 - bl func_01fffbec - ldr r1, [sp, #0x7c] - ldr r0, [sp, #0x80] - str r1, [sp, #0x88] - ldr r1, [sp, #0x84] - str r0, [sp, #0x8c] - add r0, sp, #0x88 - str r1, [sp, #0x90] - add r1, sp, #0x58 - mov r2, r0 - bl func_01ff9bc4 - ldr r0, [sp, #0x8c] - ldr r1, [sp, #0x88] - str r0, [sp, #0x74] - ldr r0, [sp, #0x90] - str r1, [sp, #0x70] - str r0, [sp, #0x78] -_02085d9c: - add r0, sp, #0x58 - ldr ip, [sp, #0x88] - ldr r5, [sp, #0x8c] - ldr r3, [sp, #0x90] - add r1, sp, #0x7c - mov r2, r0 - str ip, [sp, #0x58] - str r5, [sp, #0x5c] - str r3, [sp, #0x60] - bl func_01ff9bf8 - mov r1, r4, lsl #0xb - mov r0, #0x800 - adds r2, r0, r11, lsl #11 - orr r1, r1, r11, lsr #21 - add r0, sp, #0x58 - adc r1, r1, #0 - mov r5, r2, lsr #0xc - orr r5, r5, r1, lsl #20 - bl func_01ff9cec - cmp r0, r11 - blt _02085e30 - add r0, sp, #0x58 - mov r1, r0 - bl func_01ff9d4c - add r0, sp, #0x58 - mov r1, r5 - bl func_01fffbec - ldr r2, [sp, #0x64] - ldr r1, [sp, #0x68] - str r2, [sp, #0x70] - ldr r2, [sp, #0x6c] - str r1, [sp, #0x74] - add r0, sp, #0x70 - str r2, [sp, #0x78] - add r1, sp, #0x58 - mov r2, r0 - bl func_01ff9bc4 -_02085e30: - mov r4, #0 - mov r0, r11, lsl #0x1 - str r4, [sp, #0x48] - str r0, [sp, #0x4c] - str r4, [sp, #0x50] - str r11, [sp, #0x54] -_02085e48: - add r0, sp, #0x48 - stmia sp, {r0, r8} - str r7, [sp, #8] - str r6, [sp, #0xc] - mov r0, #0 - str r0, [sp, #0x10] - mov r0, r10 - mov r1, r9 - add r2, sp, #0x70 - add r3, sp, #0x64 - bl func_01ffbe78 - cmp r0, #0 - beq _02085fb8 - ldr r1, [r9] - add r0, sp, #0x30 - str r1, [sp, #0x3c] - ldr r2, [r9, #4] - mov r1, r0 - str r2, [sp, #0x40] - ldr r2, [r9, #8] - str r2, [sp, #0x44] - ldr r2, [r9, #0xc] - str r2, [sp, #0x30] - ldr r2, [r9, #0x10] - str r2, [sp, #0x34] - ldr r2, [r9, #0x14] - str r2, [sp, #0x38] - bl func_01ff9d4c - add r0, sp, #0x30 - mov r1, r11 - bl func_01fffbec - add r0, sp, #0x3c - add r1, sp, #0x30 - mov r2, r0 - bl func_01ff9bc4 - ldr r1, [sp, #0x3c] - ldr r2, _02086040 ; =0x0000ffff - str r1, [r9] - ldr r1, [sp, #0x40] - mov r3, #0 - str r1, [r9, #4] - ldr r4, [sp, #0x44] - sub r1, r3, #1 - str r4, [r9, #8] - strh r2, [sp, #0xb8] - strh r2, [sp, #0xba] - strh r2, [sp, #0xbc] - strh r2, [sp, #0xbe] - strh r3, [sp, #0xc0] - strb r3, [sp, #0xe2] - strb r3, [sp, #0xe3] - strb r3, [sp, #0xe4] - strb r3, [sp, #0xe5] - strb r3, [sp, #0xec] - strb r3, [sp, #0xed] - strb r3, [sp, #0xee] - strb r3, [sp, #0xef] - strb r3, [sp, #0xf0] - strb r3, [sp, #0xf1] - str r1, [sp, #0xf4] - str r1, [sp, #0xf8] - add r2, sp, #0x48 - stmia sp, {r2, r8} - str r7, [sp, #8] - str r6, [sp, #0xc] - add r2, sp, #0x3c - str r3, [sp, #0x10] - mov r0, r10 - add r1, sp, #0x94 - mov r3, r2 - bl func_01ffbe78 - cmp r0, #0 - beq _02085f84 - ldr r2, [sp, #0x94] - ldr r1, [sp, #0x98] - ldr r0, [sp, #0x9c] - str r2, [sp, #0x3c] - str r1, [sp, #0x40] - str r0, [sp, #0x44] -_02085f84: - ldr r0, _0208603c ; =data_027e0d3c - add r1, sp, #0x3c - ldr r0, [r0] - add r2, sp, #0x1c - mov r3, #0 - bl func_ov00_0207920c - ldr r1, [sp, #0x1c] - mov r0, #1 - str r1, [r9, #0x60] - ldr r1, [sp, #0x20] - add sp, sp, #0xfc - str r1, [r9, #0x64] - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_02085fb8: - ldr r1, [sp, #0x70] - ldr r0, [sp, #0x74] - str r1, [sp, #0x64] - ldr r1, [sp, #0x78] - str r0, [sp, #0x68] - str r1, [sp, #0x6c] - add r0, sp, #0x70 - add r1, sp, #0x88 - mov r2, r5 - bl func_0202b2e8 - cmp r0, #0 - movne r4, #1 - cmp r4, #0 - beq _02085e48 - ldr r1, [sp, #0x88] - ldr r0, _0208603c ; =data_027e0d3c - str r1, [r9] - ldr r2, [sp, #0x8c] - add r1, sp, #0x88 - str r2, [r9, #4] - ldr r3, [sp, #0x90] - add r2, sp, #0x14 - str r3, [r9, #8] - ldr r0, [r0] - mov r3, #0 - bl func_ov00_0207920c - ldr r1, [sp, #0x14] - mov r0, #0 - str r1, [r9, #0x60] - ldr r1, [sp, #0x18] - str r1, [r9, #0x64] - add sp, sp, #0xfc - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_02085c60 -_0208603c: .word data_027e0d3c -_02086040: .word 0x0000ffff - - .global func_ov00_02086044 - arm_func_start func_ov00_02086044 -func_ov00_02086044: ; 0x02086044 - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0xb0 - add r5, sp, #0x98 - mov r9, r2 - mov r10, r0 - str r1, [sp] - ldmia r9, {r0, r1, r2} - stmia r5, {r0, r1, r2} - mov r8, r3 - ldmia r9, {r0, r1, r2} - add r4, sp, #0xa4 - stmia r4, {r0, r1, r2} - ldr r0, [sp] - add r3, sp, #0x50 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r5 - mov r1, r3 - bl func_ov00_0208ed74 - mov r0, r5 - mov r1, r8 - bl func_ov00_0208ee00 - ldr r1, [sp, #0x98] - mov r0, r10 - bl func_ov00_020839d4 - mov r6, r0 - ldr r1, [sp, #0xa0] - mov r0, r10 - bl func_ov00_020839f8 - str r0, [sp, #0xc] - ldr r1, [sp, #0xa4] - mov r0, r10 - bl func_ov00_020839d4 - str r0, [sp, #8] - ldr r1, [sp, #0xac] - mov r0, r10 - bl func_ov00_020839f8 - mov r11, r0 - add r5, sp, #0x8c - ldmia r9, {r0, r1, r2} - stmia r5, {r0, r1, r2} - ldr r0, [sp] - add r4, sp, #0x44 - ldmia r0, {r0, r1, r2} - stmia r4, {r0, r1, r2} - add r3, sp, #0x38 - ldmia r9, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r4 - mov r1, r3 - add r2, sp, #0x80 - bl func_01ff9bf8 - ldr r1, [r9] - mov r0, r10 - bl func_ov00_020839d4 - mov r4, r0 - ldr r1, [r9, #8] - mov r0, r10 - bl func_ov00_020839f8 - mov r2, r0 - mov r1, r4 - mov r0, r10 - bl func_ov00_02083e34 - str r0, [sp, #4] - ldr r0, [sp, #8] - cmp r6, r0 - bgt _02086274 -_02086150: - ldr r7, [sp, #0xc] - mov r0, r7 - cmp r0, r11 - bgt _02086264 - and r5, r6, #0xff -_02086164: - mov r0, r10 - mov r1, r6 - mov r2, r7 - bl func_ov00_02083e34 - ldr r1, [sp, #4] - cmp r0, r1 - ble _020861ec - ldr r0, _02086280 ; =data_027e0e60 - add r1, sp, #0x12 - ldr r0, [r0] - add r2, sp, #0x68 - strb r5, [sp, #0x12] - strb r7, [sp, #0x13] - bl func_ov00_02084024 - ldr r0, [sp] - mov r1, r9 - add r2, sp, #0x5c - bl func_01ff9bf8 - ldr r1, [r9] - add r0, sp, #0x68 - str r1, [sp, #0x28] - ldr r2, [r9, #4] - add r1, sp, #0x28 - str r2, [sp, #0x2c] - ldr r3, [r9, #8] - add r2, sp, #0x5c - str r3, [sp, #0x30] - add r3, sp, #0x14 - str r8, [sp, #0x34] - bl func_ov00_0208e87c - cmp r0, #0 - addne sp, sp, #0xb0 - movne r0, #1 - ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} -_020861ec: - mov r0, r10 - add r1, sp, #0x10 - strb r5, [sp, #0x10] - strb r7, [sp, #0x11] - bl func_ov00_020840c4 - movs r4, r0 - beq _02086258 - ldr r1, [r0] - ldr r1, [r1, #0x58] - blx r1 - cmp r0, #0 - beq _02086258 - ldr r2, [r9] - mov r0, r4 - str r2, [sp, #0x18] - ldr r3, [r9, #4] - add r1, sp, #0x18 - str r3, [sp, #0x1c] - ldr r3, [r9, #8] - add r2, sp, #0x80 - str r3, [sp, #0x20] - str r8, [sp, #0x24] - bl func_ov00_0208b804 - cmp r0, #0 - addne sp, sp, #0xb0 - movne r0, #1 - ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} -_02086258: - add r7, r7, #1 - cmp r7, r11 - ble _02086164 -_02086264: - ldr r0, [sp, #8] - add r6, r6, #1 - cmp r6, r0 - ble _02086150 -_02086274: - mov r0, #0 - add sp, sp, #0xb0 - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end func_ov00_02086044 -_02086280: .word data_027e0e60 - - .global func_ov00_02086284 - arm_func_start func_ov00_02086284 -func_ov00_02086284: ; 0x02086284 - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - sub sp, sp, #0x15c - mov r9, r1 - mov r0, r9 - ldr r1, [r0] - mov r8, r2 - ldr r1, [r1, #8] - mov r7, r3 - ldr r6, [sp, #0x178] - ldr r5, [sp, #0x180] - ldr r4, [sp, #0x184] - blx r1 - cmp r0, #0 - beq _020862d0 - cmp r0, #1 - beq _020863a8 - cmp r0, #2 - beq _02086520 - b _02086a78 -_020862d0: - mov r0, r9 - ldr r2, [r0] - add r1, sp, #0x14c - ldr r2, [r2, #0x24] - blx r2 - add r0, sp, #0x14c - add r3, sp, #0x140 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r8 - mov r1, r3 - bl func_01ff9ec0 - ldr r2, [sp, #0x158] - add r1, sp, #0x140 - add r2, r2, r6 - sub r6, r2, r0 - mov r0, r8 - mov r2, r1 - bl func_01ff9bf8 - add r0, sp, #0x140 - bl func_01fffb4c - cmp r0, #0 - bne _02086340 - mov r1, #0 - mov r0, #0x1000 - str r1, [sp, #0x140] - str r1, [sp, #0x144] - str r0, [sp, #0x148] -_02086340: - add r0, sp, #0x140 - mov r1, r6 - bl func_01fffbec - add r1, sp, #0x140 - mov r0, r8 - mov r2, r5 - bl func_01ff9bc4 - add r0, sp, #0x14c - add r3, sp, #0x128 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - add r2, sp, #0x134 - mov r0, r7 - mov r1, r3 - bl func_01ff9bf8 - add r0, sp, #0x134 - bl func_01fffb4c - ldr r1, [sp, #0x134] - mov r0, #0 - str r1, [r4] - ldr r1, [sp, #0x138] - str r1, [r4, #4] - ldr r1, [sp, #0x13c] - add sp, sp, #0x15c - str r1, [r4, #8] - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} -_020863a8: - mov r1, #0 - mov r0, r9 - str r1, [sp, #0x120] - str r1, [sp, #0x114] - str r1, [sp, #0x118] - str r1, [sp, #0x11c] - ldr r2, [r0] - add r1, sp, #0x114 - ldr r2, [r2, #0x28] - blx r2 - ldr r2, [r8, #4] - ldr r1, [sp, #0x114] - ldr r0, [sp, #0x11c] - str r1, [sp, #0x108] - str r2, [sp, #0x10c] - str r0, [sp, #0x110] - ldrb r0, [r9, #5] - cmp r0, #0 - beq _02086464 - add r0, sp, #0x168 - ldrh r0, [r0, #0x14] - tst r0, #0x80 - beq _02086464 - add r0, sp, #0x108 - mov r1, r8 - bl func_01ff9ec0 - ldr r1, [sp, #0x120] - cmp r0, r1 - bgt _02086464 - ldr r2, [sp, #0x118] - ldr r1, [sp, #0x124] - ldr r0, [r7, #4] - add r1, r2, r1 - cmp r0, r1 - blt _02086464 - ldr r0, [r8, #4] - add r1, r6, r1 - cmp r0, r1 - bgt _02086464 - str r1, [r5, #4] - mov r1, #0 - str r1, [r4] - mov r0, #0x1000 - stmib r4, {r0, r1} - add sp, sp, #0x15c - mov r0, #1 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} -_02086464: - add r1, sp, #0x108 - mov r0, r8 - bl func_01ff9ec0 - ldr r2, [sp, #0x120] - add r1, sp, #0x108 - add r2, r2, r6 - sub r6, r2, r0 - mov r0, r8 - mov r2, r1 - bl func_01ff9bf8 - add r0, sp, #0x108 - bl func_01fffb4c - cmp r0, #0 - bne _020864b0 - mov r1, #0 - mov r0, #0x1000 - str r1, [sp, #0x108] - str r1, [sp, #0x10c] - str r0, [sp, #0x110] -_020864b0: - add r0, sp, #0x108 - mov r1, r6 - bl func_01fffbec - add r1, sp, #0x108 - mov r0, r8 - mov r2, r5 - bl func_01ff9bc4 - add r0, sp, #0x114 - add r3, sp, #0xf0 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - ldr r0, [r7, #4] - add r2, sp, #0xfc - str r0, [sp, #0xf4] - mov r0, r7 - mov r1, r3 - bl func_01ff9bf8 - add r0, sp, #0xfc - bl func_01fffb4c - ldr r1, [sp, #0xfc] - mov r0, #0 - str r1, [r4] - ldr r1, [sp, #0x100] - str r1, [r4, #4] - ldr r1, [sp, #0x104] - add sp, sp, #0x15c - str r1, [r4, #8] - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} -_02086520: - mov r0, r9 - ldr r2, [r0] - add r1, sp, #0xd8 - ldr r2, [r2, #0x2c] - blx r2 - add r0, sp, #0xd8 - add r1, sp, #0xcc - bl func_ov00_0208e6b0 - ldr r2, [r8, #4] - ldr r0, [sp, #0xcc] - str r2, [sp, #0xc4] - ldr r2, [sp, #0xd4] - str r0, [sp, #0xc0] - add r1, sp, #0xc0 - str r2, [sp, #0xc8] - mov r0, r8 - mov r2, r1 - bl func_01ff9bf8 - add r0, sp, #0xc0 - add r3, sp, #0xb4 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r3 - bl func_01fffb4c - cmp r0, #0 - bne _0208659c - mov r1, #0 - mov r0, #0x1000 - str r1, [sp, #0xb4] - str r1, [sp, #0xb8] - str r0, [sp, #0xbc] -_0208659c: - ldrb r0, [r9, #5] - cmp r0, #0 - beq _0208662c - add r0, sp, #0x168 - ldrh r0, [r0, #0x14] - tst r0, #0x80 - beq _0208662c - ldr r1, [r8] - ldr r0, [sp, #0xe4] - cmp r1, r0 - bge _020865f0 - ldr r0, [sp, #0xd8] - cmp r1, r0 - blt _020865f0 - ldr r1, [r8, #8] - ldr r0, [sp, #0xec] - cmp r1, r0 - bge _020865f0 - ldr r0, [sp, #0xe0] - cmp r1, r0 - bge _02086604 -_020865f0: - ldr r0, [sp, #0xe8] - ldr r1, [r7, #4] - add r0, r0, r6 - cmp r1, r0 - blt _0208662c -_02086604: - ldr r0, [sp, #0xe8] - mov r1, #0 - add r0, r0, r6 - str r0, [r5, #4] - str r1, [r4] - mov r0, #0x1000 - stmib r4, {r0, r1} - add sp, sp, #0x15c - mov r0, #1 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} -_0208662c: - add r0, sp, #0xd8 - add r1, sp, #0xa8 - bl func_ov00_0208e6b0 - ldr r3, [sp, #0xec] - ldr r2, [r8, #8] - cmp r2, r3 - bge _020867f8 - ldr r0, [sp, #0xe0] - cmp r2, r0 - blt _020867f8 - ldr r1, [r8] - ldr r0, [sp, #0xe4] - cmp r1, r0 - bge _020867f8 - ldr r0, [sp, #0xd8] - cmp r1, r0 - blt _020867f8 - add r0, sp, #0xd8 - bl func_ov00_0208e6f0 - mov r7, r0 - add r0, sp, #0xd8 - bl func_ov00_0208e704 - cmp r7, r0 - bne _020866bc - ldr r1, [sp, #0xb0] - ldr r0, [r8, #8] - subs r2, r1, r0 - ldr r1, [sp, #0xa8] - ldr r0, [r8] - rsbmi r2, r2, #0 - subs r0, r1, r0 - rsbmi r0, r0, #0 - cmp r0, r2 - movgt r0, #1 - movle r0, #0 - b _020866dc -_020866bc: - add r0, sp, #0xd8 - bl func_ov00_0208e6f0 - mov r7, r0 - add r0, sp, #0xd8 - bl func_ov00_0208e704 - cmp r7, r0 - movlt r0, #1 - movge r0, #0 -_020866dc: - cmp r0, #0 - beq _02086770 - ldr r0, [sp, #0xb4] - cmp r0, #0 - add r0, sp, #0xd8 - blt _02086730 - ldr r7, [sp, #0xc0] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e6f0 - add r0, r6, r0, asr #1 - ldr r1, [r5] - sub r0, r0, r7 - add r0, r1, r0 - str r0, [r5] - mov r0, #0x1000 - str r0, [r4] - mov r0, #0 - str r0, [r4, #4] - str r0, [r4, #8] - b _02086a6c -_02086730: - ldr r7, [sp, #0xc0] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e6f0 - add r1, r6, r0, asr #1 - mov r0, #0x1000 - ldr r2, [r5] - sub r1, r1, r7 - sub r1, r2, r1 - str r1, [r5] - rsb r0, r0, #0 - str r0, [r4] - mov r0, #0 - str r0, [r4, #4] - str r0, [r4, #8] - b _02086a6c -_02086770: - ldr r0, [sp, #0xbc] - cmp r0, #0 - add r0, sp, #0xd8 - blt _020867bc - ldr r7, [sp, #0xc8] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e704 - add r0, r6, r0, asr #1 - ldr r1, [r5, #8] - sub r0, r0, r7 - add r0, r1, r0 - str r0, [r5, #8] - mov r0, #0 - str r0, [r4] - str r0, [r4, #4] - mov r0, #0x1000 - str r0, [r4, #8] - b _02086a6c -_020867bc: - ldr r7, [sp, #0xc8] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e704 - add r1, r6, r0, asr #1 - ldr r2, [r5, #8] - sub r1, r1, r7 - sub r1, r2, r1 - mov r0, #0 - str r1, [r5, #8] - str r0, [r4] - str r0, [r4, #4] - sub r0, r0, #0x1000 - str r0, [r4, #8] - b _02086a6c -_020867f8: - ldr r1, [r8] - ldr r0, [sp, #0xe4] - cmp r1, r0 - bge _0208689c - ldr r0, [sp, #0xd8] - cmp r1, r0 - blt _0208689c - ldr r0, [sp, #0xbc] - cmp r0, #0 - add r0, sp, #0xd8 - blt _02086860 - ldr r7, [sp, #0xc8] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e704 - add r0, r6, r0, asr #1 - ldr r1, [r5, #8] - sub r0, r0, r7 - add r0, r1, r0 - str r0, [r5, #8] - mov r0, #0 - str r0, [r4] - str r0, [r4, #4] - mov r0, #0x1000 - str r0, [r4, #8] - b _02086a6c -_02086860: - ldr r7, [sp, #0xc8] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e704 - add r1, r6, r0, asr #1 - ldr r2, [r5, #8] - sub r1, r1, r7 - sub r1, r2, r1 - mov r0, #0 - str r1, [r5, #8] - str r0, [r4] - str r0, [r4, #4] - sub r0, r0, #0x1000 - str r0, [r4, #8] - b _02086a6c -_0208689c: - cmp r2, r3 - bge _0208693c - ldr r0, [sp, #0xe0] - cmp r2, r0 - blt _0208693c - ldr r0, [sp, #0xb4] - cmp r0, #0 - add r0, sp, #0xd8 - blt _020868fc - ldr r7, [sp, #0xc0] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e6f0 - add r0, r6, r0, asr #1 - ldr r1, [r5] - sub r0, r0, r7 - add r0, r1, r0 - str r0, [r5] - mov r0, #0x1000 - str r0, [r4] - mov r0, #0 - str r0, [r4, #4] - str r0, [r4, #8] - b _02086a6c -_020868fc: - ldr r7, [sp, #0xc0] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e6f0 - add r1, r6, r0, asr #1 - mov r0, #0x1000 - ldr r2, [r5] - sub r1, r1, r7 - sub r1, r2, r1 - str r1, [r5] - rsb r0, r0, #0 - str r0, [r4] - mov r0, #0 - str r0, [r4, #4] - str r0, [r4, #8] - b _02086a6c -_0208693c: - ldr r0, [sp, #0xb0] - subs r2, r0, r2 - ldr r0, [sp, #0xa8] - rsbmi r2, r2, #0 - subs r0, r0, r1 - rsbmi r0, r0, #0 - cmp r0, r2 - ble _020869e8 - ldr r0, [sp, #0xb4] - cmp r0, #0 - add r0, sp, #0xd8 - blt _020869a8 - ldr r7, [sp, #0xc0] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e6f0 - add r0, r6, r0, asr #1 - ldr r1, [r5] - sub r0, r0, r7 - add r0, r1, r0 - str r0, [r5] - mov r0, #0x1000 - str r0, [r4] - mov r0, #0 - str r0, [r4, #4] - str r0, [r4, #8] - b _02086a6c -_020869a8: - ldr r7, [sp, #0xc0] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e6f0 - add r1, r6, r0, asr #1 - mov r0, #0x1000 - ldr r2, [r5] - sub r1, r1, r7 - sub r1, r2, r1 - str r1, [r5] - rsb r0, r0, #0 - str r0, [r4] - mov r0, #0 - str r0, [r4, #4] - str r0, [r4, #8] - b _02086a6c -_020869e8: - ldr r0, [sp, #0xbc] - cmp r0, #0 - add r0, sp, #0xd8 - blt _02086a34 - ldr r7, [sp, #0xc8] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e704 - add r0, r6, r0, asr #1 - ldr r1, [r5, #8] - sub r0, r0, r7 - add r0, r1, r0 - str r0, [r5, #8] - mov r0, #0 - str r0, [r4] - str r0, [r4, #4] - mov r0, #0x1000 - str r0, [r4, #8] - b _02086a6c -_02086a34: - ldr r7, [sp, #0xc8] - cmp r7, #0 - rsblt r7, r7, #0 - bl func_ov00_0208e704 - add r1, r6, r0, asr #1 - ldr r2, [r5, #8] - sub r1, r1, r7 - sub r1, r2, r1 - mov r0, #0 - str r1, [r5, #8] - str r0, [r4] - str r0, [r4, #4] - sub r0, r0, #0x1000 - str r0, [r4, #8] -_02086a6c: - add sp, sp, #0x15c - mov r0, #0 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} -_02086a78: - mov r0, #0 - add sp, sp, #0x15c - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} - arm_func_end func_ov00_02086284 - - .global func_ov00_02086a84 - arm_func_start func_ov00_02086a84 -func_ov00_02086a84: ; 0x02086a84 - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - sub sp, sp, #0x84 - mov r8, r2 - mov r7, r3 - mov r9, r1 - add r2, sp, #0x78 - mov r0, r8 - mov r1, r7 - ldr r6, [sp, #0xa4] - ldr r5, [sp, #0xac] - ldr r4, [sp, #0xb0] - bl func_01ff9bf8 - mov r0, r9 - ldr r1, [r0] - ldr r1, [r1, #8] - blx r1 - cmp r0, #0 - beq _02086ae0 - cmp r0, #1 - beq _02086be4 - cmp r0, #2 - beq _02086c64 - b _02086cc4 -_02086ae0: - mov r0, r9 - ldr r2, [r0] - add r1, sp, #0x68 - ldr r2, [r2, #0x24] - blx r2 - cmp r6, #0 - bne _02086b7c - add r0, sp, #0x68 - add r3, sp, #0x5c - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r8 - mov r1, r3 - bl func_01ff9ec0 - ldr r3, [sp, #0x74] - ldr r2, [sp, #0xa0] - add r1, sp, #0x68 - add r2, r3, r2 - sub r6, r2, r0 - add r2, sp, #0x5c - mov r0, r8 - bl func_01ff9bf8 - add r0, sp, #0x5c - bl func_01fffb4c - cmp r0, #0 - bne _02086b5c - mov r1, #0 - mov r0, #0x1000 - str r1, [sp, #0x5c] - str r1, [sp, #0x60] - str r0, [sp, #0x64] -_02086b5c: - add r0, sp, #0x5c - mov r1, r6 - bl func_01fffbec - add r1, sp, #0x5c - mov r0, r8 - mov r2, r5 - bl func_01ff9bc4 - b _02086b98 -_02086b7c: - add r0, sp, #0x78 - mov r1, r6 - bl func_01fffbec - add r1, sp, #0x78 - mov r0, r7 - mov r2, r5 - bl func_01ff9bc4 -_02086b98: - add r0, sp, #0x68 - add r3, sp, #0x44 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - add r2, sp, #0x50 - mov r0, r7 - mov r1, r3 - bl func_01ff9bf8 - add r0, sp, #0x50 - bl func_01fffb4c - ldr r1, [sp, #0x50] - mov r0, #0 - str r1, [r4] - ldr r1, [sp, #0x54] - str r1, [r4, #4] - ldr r1, [sp, #0x58] - add sp, sp, #0x84 - str r1, [r4, #8] - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} -_02086be4: - mov r1, #0 - mov r0, r9 - str r1, [sp, #0x3c] - str r1, [sp, #0x30] - str r1, [sp, #0x34] - str r1, [sp, #0x38] - ldr r2, [r0] - add r1, sp, #0x30 - ldr r2, [r2, #0x28] - blx r2 - add r0, sp, #0x78 - mov r1, r6 - bl func_01fffbec - add r1, sp, #0x78 - mov r0, r7 - mov r2, r5 - bl func_01ff9bc4 - add r0, sp, #0x30 - add r3, sp, #0x24 - ldmia r0, {r0, r1, r2} - stmia r3, {r0, r1, r2} - ldr r2, [r7, #4] - mov r1, r3 - str r2, [sp, #0x28] - mov r0, r7 - mov r2, r4 - bl func_01ff9bf8 - mov r0, r4 - bl func_01fffb4c - add sp, sp, #0x84 - mov r0, #0 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} -_02086c64: - mov r0, r9 - ldr r2, [r0] - add r1, sp, #0xc - ldr r2, [r2, #0x2c] - blx r2 - add r0, sp, #0xc - add r1, sp, #0 - bl func_ov00_0208e6b0 - add r0, sp, #0x78 - mov r1, r6 - bl func_01fffbec - add r1, sp, #0x78 - mov r2, r5 - mov r0, r7 - bl func_01ff9bc4 - mov r0, r7 - add r1, sp, #0 - mov r2, r4 - bl func_01ff9bf8 - mov r0, r4 - bl func_01fffb4c - add sp, sp, #0x84 - mov r0, #0 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} -_02086cc4: - mov r0, #0 - add sp, sp, #0x84 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} - arm_func_end func_ov00_02086a84 + .text .global func_ov00_02086cd0 arm_func_start func_ov00_02086cd0 @@ -16273,7 +253,7 @@ _02086fd0: str r0, [sp, #0xc] mov r1, #1 str r1, [sp, #0x10] - ldr r0, _02087088 ; =data_027e0e60 + ldr r0, _02087088 ; =gMapManager add r1, sp, #0x30 ldr r0, [r0] add r2, sp, #0x24 @@ -16299,7 +279,7 @@ _02087068: _0208707c: .word data_ov00_020e2fb4 _02087080: .word data_027e0d38 _02087084: .word data_027e071c -_02087088: .word data_027e0e60 +_02087088: .word gMapManager .global func_ov00_0208708c arm_func_start func_ov00_0208708c @@ -16465,11 +445,11 @@ _0208729c: strh r1, [r0, #0x18] cmp ip, #2 blo _0208729c - ldr r0, _020872e4 ; =data_027e0e60 + ldr r0, _020872e4 ; =gMapManager ldrb r2, [r5, #0x1b8] ldr r0, [r0] add r1, sp, #0 - bl func_ov00_02083928 + bl _ZN10MapManager18func_ov00_02083928EPci mov r3, #0 add r1, sp, #0 mov r0, r5 @@ -16480,7 +460,7 @@ _0208729c: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov00_0208726c -_020872e4: .word data_027e0e60 +_020872e4: .word gMapManager .global func_ov00_020872e8 arm_func_start func_ov00_020872e8 @@ -16802,11 +782,11 @@ _02087724: strh r1, [r0, #0x18] cmp r3, #2 blo _02087724 - ldr r0, _0208784c ; =data_027e0e60 + ldr r0, _0208784c ; =gMapManager ldrb r2, [r7, #0x1b8] ldr r0, [r0] add r1, sp, #0x6c - bl func_ov00_02083928 + bl _ZN10MapManager18func_ov00_02083928EPci ldr r3, [r7, #0x260] ldr r0, [r7, #0x264] ldr r2, [r7, #0x268] @@ -16875,7 +855,7 @@ _02087830: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov00_020876bc -_0208784c: .word data_027e0e60 +_0208784c: .word gMapManager .global func_ov00_02087850 arm_func_start func_ov00_02087850 @@ -16912,11 +892,11 @@ _020878b8: strh r1, [r0, #0x18] cmp r3, #2 blo _020878b8 - ldr r0, _020879e0 ; =data_027e0e60 + ldr r0, _020879e0 ; =gMapManager ldrb r2, [r7, #0x1b8] ldr r0, [r0] add r1, sp, #0x6c - bl func_ov00_02083928 + bl _ZN10MapManager18func_ov00_02083928EPci ldr r3, [r7, #0x260] ldr r0, [r7, #0x264] ldr r2, [r7, #0x268] @@ -16985,7 +965,7 @@ _020879c4: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov00_02087850 -_020879e0: .word data_027e0e60 +_020879e0: .word gMapManager .global func_ov00_020879e4 arm_func_start func_ov00_020879e4 @@ -17349,10 +1329,10 @@ func_ov00_02087e14: ; 0x02087e14 arm_func_start func_ov00_02087e8c func_ov00_02087e8c: ; 0x02087e8c stmdb sp!, {r3, lr} - ldr r0, _02087eec ; =data_027e0e60 + ldr r0, _02087eec ; =gMapManager mov r1, #0 ldr r0, [r0] - bl func_ov00_02083938 + bl _ZN10MapManager18func_ov00_02083938Ei sub r0, r0, #0x11 cmp r0, #0xa addls pc, pc, r0, lsl #2 @@ -17377,7 +1357,7 @@ _02087ee4: ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov00_02087e8c -_02087eec: .word data_027e0e60 +_02087eec: .word gMapManager .global func_ov00_02087ef0 arm_func_start func_ov00_02087ef0 @@ -17495,11 +1475,11 @@ _0208800c: .word func_ov00_020a1888 func_ov00_02088010: ; 0x02088010 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc - ldr r2, _02088070 ; =data_027e0e60 + ldr r2, _02088070 ; =gMapManager mov r5, r0 ldr r0, [r2] mov r4, r1 - bl func_ov00_02084934 + bl _ZN10MapManager18func_ov00_02084934Ev cmp r0, #0 addeq sp, sp, #0xc moveq r0, #0 @@ -17519,7 +1499,7 @@ func_ov00_02088010: ; 0x02088010 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov00_02088010 -_02088070: .word data_027e0e60 +_02088070: .word gMapManager .global func_ov00_02088074 arm_func_start func_ov00_02088074 @@ -18684,12 +2664,12 @@ func_ov00_0208901c: ; 0x0208901c func_ov00_02089068: ; 0x02089068 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x4c - ldr r3, _02089164 ; =data_027e0e60 + ldr r3, _02089164 ; =gMapManager mov r5, r0 ldr r0, [r3] mov r4, r2 add r2, sp, #0x30 - bl func_ov00_02083968 + bl _ZN10MapManager18func_ov00_02083968EjPc cmp r0, #0 addeq sp, sp, #0x4c moveq r0, #0 @@ -18717,10 +2697,10 @@ _020890b8: str r0, [sp, #0x20] b _0208912c _020890ec: - ldr r0, _02089164 ; =data_027e0e60 + ldr r0, _02089164 ; =gMapManager add r1, sp, #0xc ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p add r0, sp, #0x34 add r1, sp, #0xc add r2, sp, #0x24 @@ -18751,7 +2731,7 @@ _0208912c: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov00_02089068 -_02089164: .word data_027e0e60 +_02089164: .word gMapManager .global func_ov00_02089168 arm_func_start func_ov00_02089168 @@ -19310,11 +3290,11 @@ _02089910: strh r1, [r0, #0x18] cmp r3, #2 blo _02089910 - ldr r0, _02089a28 ; =data_027e0e60 + ldr r0, _02089a28 ; =gMapManager ldrb r2, [r9, #0x1b8] ldr r0, [r0] add r1, sp, #0x20 - bl func_ov00_02083928 + bl _ZN10MapManager18func_ov00_02083928EPci ldr r0, [sp, #0x20] bl func_ov00_02087d84 add r8, sp, #0x60 @@ -19380,7 +3360,7 @@ _020899b4: .align 2, 0 arm_func_end func_ov00_0208967c _02089a24: .word gAdventureFlags -_02089a28: .word data_027e0e60 +_02089a28: .word gMapManager .global func_ov00_02089a2c arm_func_start func_ov00_02089a2c @@ -20153,10 +4133,10 @@ func_ov00_0208a464: ; 0x0208a464 bl func_ov00_0208edd8 b _0208a77c _0208a4d0: - ldr r1, _0208a844 ; =data_027e0e60 + ldr r1, _0208a844 ; =gMapManager add r0, sp, #0x18 ldr r1, [r1] - bl func_ov00_02084100 + bl _ZN10MapManager18func_ov00_02084100EiPS_ ldrsh r2, [r6, #4] add r1, r6, #0x260 mov r0, #0 @@ -20325,28 +4305,28 @@ _0208a4d0: add r1, sp, #0x20 bl func_ov00_0208ed74 _0208a77c: - ldr r0, _0208a844 ; =data_027e0e60 + ldr r0, _0208a844 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208335c - ldr r1, _0208a844 ; =data_027e0e60 + bl _ZN10MapManager17Get_MapData_Unk28Ev + ldr r1, _0208a844 ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_02083368 - ldr r1, _0208a844 ; =data_027e0e60 + bl _ZN10MapManager17Get_MapData_Unk2aEv + ldr r1, _0208a844 ; =gMapManager mov r5, r0 ldr r0, [r1] ldr r1, [r6, #0x308] - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev strb r0, [r6, #0x320] - ldr r0, _0208a844 ; =data_027e0e60 + ldr r0, _0208a844 ; =gMapManager ldr r1, [r6, #0x310] ldr r0, [r0] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev strb r0, [r6, #0x321] - ldr r0, _0208a844 ; =data_027e0e60 + ldr r0, _0208a844 ; =gMapManager ldr r1, [r6, #0x314] ldr r0, [r0] - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev and r1, r0, #0xff add r0, r1, #2 strb r0, [r6, #0x322] @@ -20358,10 +4338,10 @@ _0208a77c: cmp r0, r4 subge r0, r4, #1 strgeb r0, [r6, #0x322] - ldr r0, _0208a844 ; =data_027e0e60 + ldr r0, _0208a844 ; =gMapManager ldr r1, [r6, #0x31c] ldr r0, [r0] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev and r1, r0, #0xff add r0, r1, #1 strb r0, [r6, #0x323] @@ -20377,7 +4357,7 @@ _0208a77c: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_0208a464 -_0208a844: .word data_027e0e60 +_0208a844: .word gMapManager _0208a848: .word data_027e0f94 .global func_ov00_0208a84c @@ -20927,10 +4907,10 @@ _0208af04: strh r2, [r0, #0x18] cmp r5, #2 blo _0208af04 - ldr r0, _0208b114 ; =data_027e0e60 + ldr r0, _0208b114 ; =gMapManager add r1, sp, #0x18 ldr r0, [r0] - bl func_ov00_02083928 + bl _ZN10MapManager18func_ov00_02083928EPci ldr r0, [sp, #0x18] cmp r0, #0x31 bne _0208b0dc @@ -21057,7 +5037,7 @@ _0208b0dc: ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov00_0208aed8 -_0208b114: .word data_027e0e60 +_0208b114: .word gMapManager _0208b118: .word data_027e0f64 .global func_ov00_0208b11c @@ -21871,32 +5851,32 @@ _0208b9e0: .word func_ov00_0208ba58 arm_func_start func_ov00_0208b9e4 func_ov00_0208b9e4: ; 0x0208b9e4 add r2, r0, r1 - ldr r0, _0208ba00 ; =data_027e0e60 + ldr r0, _0208ba00 ; =gMapManager ldrb r1, [r2, #0x2e] - ldr ip, _0208ba04 ; =func_ov00_02084be0 + ldr ip, _0208ba04 ; =_ZN10MapManager18func_ov00_02084be0Eii ldrb r2, [r2, #0x2c] ldr r0, [r0] bx ip .align 2, 0 arm_func_end func_ov00_0208b9e4 -_0208ba00: .word data_027e0e60 -_0208ba04: .word func_ov00_02084be0 +_0208ba00: .word gMapManager +_0208ba04: .word _ZN10MapManager18func_ov00_02084be0Eii .global func_ov00_0208ba08 arm_func_start func_ov00_0208ba08 func_ov00_0208ba08: ; 0x0208ba08 stmdb sp!, {r3, lr} add ip, r0, r1 - ldr r0, _0208ba2c ; =data_027e0e60 + ldr r0, _0208ba2c ; =gMapManager mov r3, r2 ldrb r1, [ip, #0x2e] ldrb r2, [ip, #0x2c] ldr r0, [r0] - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov00_0208ba08 -_0208ba2c: .word data_027e0e60 +_0208ba2c: .word gMapManager .global func_ov00_0208ba30 arm_func_start func_ov00_0208ba30 @@ -23407,19 +7387,19 @@ func_ov00_0208cd48: ; 0x0208cd48 add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} _0208cd78: - ldr r4, _0208ce78 ; =func_ov00_0207f100 + ldr r4, _0208ce78 ; =_ZN7MapBase18func_ov00_0207f100Ev ldr r3, _0208ce7c ; =func_ov00_0208d018 add r0, sp, #0x24 mov r1, #0x40 mov r2, #0x18 str r4, [sp] bl func_0204f614 - ldr r0, _0208ce80 ; =data_027e0e60 + ldr r0, _0208ce80 ; =gMapManager add r2, sp, #0x24 ldr r0, [r0] mov r1, r5 mov r3, #0x40 - bl func_ov00_020836cc + bl _ZN10MapManager18func_ov00_020836ccEjP4AABBj mov r6, r0 cmp r6, #0 bgt _0208cddc @@ -23451,7 +7431,7 @@ _0208cdf4: bl func_ov00_0208cf28 movs r4, r0 beq _0208ce44 - ldr r3, _0208ce78 ; =func_ov00_0207f100 + ldr r3, _0208ce78 ; =_ZN7MapBase18func_ov00_0207f100Ev add r0, sp, #0x24 mov r1, #0x40 mov r2, #0x18 @@ -23466,7 +7446,7 @@ _0208ce44: add r8, r8, #0x18 blt _0208cdf4 _0208ce54: - ldr r3, _0208ce78 ; =func_ov00_0207f100 + ldr r3, _0208ce78 ; =_ZN7MapBase18func_ov00_0207f100Ev add r0, sp, #0x24 mov r1, #0x40 mov r2, #0x18 @@ -23477,9 +7457,9 @@ _0208ce54: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov00_0208cd48 -_0208ce78: .word func_ov00_0207f100 +_0208ce78: .word _ZN7MapBase18func_ov00_0207f100Ev _0208ce7c: .word func_ov00_0208d018 -_0208ce80: .word data_027e0e60 +_0208ce80: .word gMapManager .global func_ov00_0208ce84 arm_func_start func_ov00_0208ce84 @@ -23632,23 +7612,23 @@ func_ov00_0208d01c: ; 0x0208d01c add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} _0208d064: - ldr r4, _0208d1ec ; =func_ov00_0207f100 + ldr r4, _0208d1ec ; =_ZN7MapBase18func_ov00_0207f100Ev ldr r3, _0208d1f0 ; =func_ov00_0208d018 add r0, sp, #0x44 mov r1, #0x40 mov r2, #0x18 str r4, [sp] bl func_0204f614 - ldr r0, _0208d1f4 ; =data_027e0e60 + ldr r0, _0208d1f4 ; =gMapManager add r2, sp, #0x44 ldr r0, [r0] mov r1, r5 mov r3, #0x40 - bl func_ov00_020836cc + bl _ZN10MapManager18func_ov00_020836ccEjP4AABBj mov r4, r0 cmp r4, #0 bgt _0208d0c8 - ldr r3, _0208d1ec ; =func_ov00_0207f100 + ldr r3, _0208d1ec ; =_ZN7MapBase18func_ov00_0207f100Ev add r0, sp, #0x44 mov r1, #0x40 mov r2, #0x18 @@ -23677,7 +7657,7 @@ _0208d0c8: str r4, [sp] bl func_ov00_0208d310 mov r4, r0 - ldr r3, _0208d1ec ; =func_ov00_0207f100 + ldr r3, _0208d1ec ; =_ZN7MapBase18func_ov00_0207f100Ev add r0, sp, #0x44 mov r1, #0x40 mov r2, #0x18 @@ -23711,7 +7691,7 @@ _0208d154: add r5, r5, r0 cmp r5, r8 blo _0208d1b8 - ldr r3, _0208d1ec ; =func_ov00_0207f100 + ldr r3, _0208d1ec ; =_ZN7MapBase18func_ov00_0207f100Ev add r0, sp, #0x44 mov r1, #0x40 mov r2, #0x18 @@ -23726,7 +7706,7 @@ _0208d1b8: add r7, r7, #0x18 blt _0208d154 _0208d1c8: - ldr r3, _0208d1ec ; =func_ov00_0207f100 + ldr r3, _0208d1ec ; =_ZN7MapBase18func_ov00_0207f100Ev add r0, sp, #0x44 mov r1, #0x40 mov r2, #0x18 @@ -23737,9 +7717,9 @@ _0208d1c8: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov00_0208d01c -_0208d1ec: .word func_ov00_0207f100 +_0208d1ec: .word _ZN7MapBase18func_ov00_0207f100Ev _0208d1f0: .word func_ov00_0208d018 -_0208d1f4: .word data_027e0e60 +_0208d1f4: .word gMapManager .global func_ov00_0208d1f8 arm_func_start func_ov00_0208d1f8 @@ -24678,9 +8658,9 @@ func_ov00_0208de04: ; 0x0208de04 str r0, [r4, #0x10] ldr r0, [sp, #0x18] str r1, [r4, #0x14] - ldr ip, _0208de68 ; =func_ov00_0207e968 + ldr ip, _0208de68 ; =_ZN7MapBase18func_ov00_0207e968Ev str r0, [r4, #0x18] - ldr r3, _0208de6c ; =func_ov00_0207e96c + ldr r3, _0208de6c ; =_ZN7MapBase18func_ov00_0207e96cEv add r0, r4, #0x10c mov r1, #4 mov r2, #0x10 @@ -24692,15 +8672,15 @@ func_ov00_0208de04: ; 0x0208de04 .align 2, 0 arm_func_end func_ov00_0208de04 _0208de64: .word data_ov00_020e2870 -_0208de68: .word func_ov00_0207e968 -_0208de6c: .word func_ov00_0207e96c +_0208de68: .word _ZN7MapBase18func_ov00_0207e968Ev +_0208de6c: .word _ZN7MapBase18func_ov00_0207e96cEv .global func_ov00_0208de70 arm_func_start func_ov00_0208de70 func_ov00_0208de70: ; 0x0208de70 stmdb sp!, {r4, lr} mov r4, r0 - ldr r3, _0208de94 ; =func_ov00_0207e968 + ldr r3, _0208de94 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, r4, #0x10c mov r1, #4 mov r2, #0x10 @@ -24709,14 +8689,14 @@ func_ov00_0208de70: ; 0x0208de70 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_0208de70 -_0208de94: .word func_ov00_0207e968 +_0208de94: .word _ZN7MapBase18func_ov00_0207e968Ev .global func_ov00_0208de98 arm_func_start func_ov00_0208de98 func_ov00_0208de98: ; 0x0208de98 stmdb sp!, {r4, lr} mov r4, r0 - ldr r3, _0208dec4 ; =func_ov00_0207e968 + ldr r3, _0208dec4 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, r4, #0x10c mov r1, #4 mov r2, #0x10 @@ -24727,14 +8707,14 @@ func_ov00_0208de98: ; 0x0208de98 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_0208de98 -_0208dec4: .word func_ov00_0207e968 +_0208dec4: .word _ZN7MapBase18func_ov00_0207e968Ev .global func_ov00_0208dec8 arm_func_start func_ov00_0208dec8 func_ov00_0208dec8: ; 0x0208dec8 stmdb sp!, {r4, lr} mov r4, r0 - ldr r3, _0208deec ; =func_ov00_0207e968 + ldr r3, _0208deec ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, r4, #0x10c mov r1, #4 mov r2, #0x10 @@ -24743,7 +8723,7 @@ func_ov00_0208dec8: ; 0x0208dec8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_0208dec8 -_0208deec: .word func_ov00_0207e968 +_0208deec: .word _ZN7MapBase18func_ov00_0207e968Ev .global func_ov00_0208def0 arm_func_start func_ov00_0208def0 @@ -26582,7 +10562,7 @@ func_ov00_0208f794: ; 0x0208f794 bl func_020078f4 ldr r6, _0208f9dc ; =data_ov00_020db010 ldr r11, _0208f9e0 ; =data_ov00_020db030 - ldr r4, _0208f9e4 ; =data_027e0e60 + ldr r4, _0208f9e4 ; =gMapManager mov r9, #0 add r5, sp, #4 _0208f7d4: @@ -26596,18 +10576,18 @@ _0208f7d4: cmp r8, #0 blt _0208f868 ldr r0, [r4] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev cmp r7, r0 bge _0208f868 ldr r0, [r4] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv cmp r8, r0 bge _0208f868 ldr r0, [r4] add r1, sp, #0 strb r7, [sp] strb r8, [sp, #1] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev add r1, sp, #8 str r0, [r1, r9, lsl #2] cmp r0, #0 @@ -26730,7 +10710,7 @@ _0208f9ac: arm_func_end func_ov00_0208f794 _0208f9dc: .word data_ov00_020db010 _0208f9e0: .word data_ov00_020db030 -_0208f9e4: .word data_027e0e60 +_0208f9e4: .word gMapManager _0208f9e8: .word data_027e0f68 .global func_ov00_0208f9ec @@ -27000,12 +10980,12 @@ _0208fcd4: cmp r1, r0 cmplt r6, r1 bge _0208fd30 - ldr r4, _0208fef4 ; =data_027e0e60 + ldr r4, _0208fef4 ; =gMapManager _0208fcf8: ldr r0, [r4] ldr r2, [r5, #0x16c] mov r1, r6 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 bne _0208fd20 ldr r1, [r5, #0x164] @@ -27018,10 +10998,10 @@ _0208fd20: cmp r6, r1 blt _0208fcf8 _0208fd30: - ldr r0, _0208fef4 ; =data_027e0e60 + ldr r0, _0208fef4 ; =gMapManager ldr r2, [r5, #0x16c] ldr r0, [r0] - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 beq _0208fda8 ldr r0, [r5, #0x160] @@ -27029,12 +11009,12 @@ _0208fd30: add r6, r0, #1 cmp r6, r1 bge _0208fd98 - ldr r4, _0208fef4 ; =data_027e0e60 + ldr r4, _0208fef4 ; =gMapManager _0208fd60: ldr r0, [r4] ldr r2, [r5, #0x16c] mov r1, r6 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 beq _0208fd88 ldr r1, [r5, #0x164] @@ -27059,11 +11039,11 @@ _0208fda8: movne r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _0208fdc0: - ldr r0, _0208fef4 ; =data_027e0e60 + ldr r0, _0208fef4 ; =gMapManager ldr r1, [r5, #0x160] ldr r0, [r0] ldr r2, [r5, #0x16c] - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 beq _0208fe3c ldr r1, [r5, #0x160] @@ -27072,13 +11052,13 @@ _0208fdc0: cmp r4, r0 mov r8, #0 bge _0208fe2c - ldr r6, _0208fef4 ; =data_027e0e60 + ldr r6, _0208fef4 ; =gMapManager mov r7, #1 _0208fdfc: ldr r0, [r6] ldr r2, [r5, #0x16c] mov r1, r4 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 ldrne r0, [r5, #0x164] add r4, r4, #1 @@ -27098,12 +11078,12 @@ _0208fe3c: mov r6, #1 cmp r7, r0 bge _0208fe80 - ldr r4, _0208fef4 ; =data_027e0e60 + ldr r4, _0208fef4 ; =gMapManager _0208fe54: ldr r0, [r4] ldr r2, [r5, #0x16c] mov r1, r7 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 moveq r6, #0 beq _0208fe80 @@ -27128,13 +11108,13 @@ _0208fea8: mov r6, #0 cmp r0, #0 ble _0208feec - ldr r4, _0208fef4 ; =data_027e0e60 + ldr r4, _0208fef4 ; =gMapManager _0208febc: ldr r1, [r5, #0x164] ldr r0, [r4] ldr r2, [r5, #0x16c] add r1, r1, r6 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} @@ -27147,7 +11127,7 @@ _0208feec: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov00_0208fcb4 -_0208fef4: .word data_027e0e60 +_0208fef4: .word gMapManager .global func_ov00_0208fef8 arm_func_start func_ov00_0208fef8 @@ -27288,20 +11268,20 @@ _02090004: bl func_01ff9bc4 cmp r5, #0xa bge _020902d4 - ldr r1, _02090320 ; =data_027e0e60 + ldr r1, _02090320 ; =gMapManager add r0, sp, #0x18 ldr r1, [r1] add r2, sp, #0x5c - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r0, sp, #0x74 add r1, sp, #0x5c bl func_01ff9ec0 cmp r0, #0x2000 blt _02090144 - ldr r0, _02090320 ; =data_027e0e60 + ldr r0, _02090320 ; =gMapManager add r1, sp, #0x18 ldr r0, [r0] - bl func_ov00_02083e70 + bl _ZN10MapManager18func_ov00_02083e70Ev cmp r0, #0 beq _02090150 _02090144: @@ -27309,24 +11289,24 @@ _02090144: add r5, r5, #1 b _020902f8 _02090150: - ldr r0, _02090320 ; =data_027e0e60 + ldr r0, _02090320 ; =gMapManager add r1, sp, #0x18 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 bne _020902f8 - ldr r0, _02090320 ; =data_027e0e60 + ldr r0, _02090320 ; =gMapManager add r1, sp, #0x18 ldr r0, [r0] - bl func_ov00_02084164 + bl _ZN10MapManager18func_ov00_02084164Ev cmp r0, #0 subeq r6, r6, #1 addeq r5, r5, #1 beq _020902f8 - ldr r0, _02090320 ; =data_027e0e60 + ldr r0, _02090320 ; =gMapManager add r1, sp, #0x18 ldr r0, [r0] - bl func_ov00_02084088 + bl _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #0x37 bgt _02090210 bge _02090250 @@ -27438,7 +11418,7 @@ _02090310: .word data_027e0f94 _02090314: .word data_027e0fe4 _02090318: .word 0x534e414b _0209031c: .word data_027e0764 -_02090320: .word data_027e0e60 +_02090320: .word gMapManager _02090324: .word 0x5053424c _02090328: .word data_027e0fe8 @@ -27451,14 +11431,14 @@ func_ov00_0209032c: ; 0x0209032c ldr r0, [r7, #0x168] cmp r6, r0 ldmgeia sp!, {r3, r4, r5, r6, r7, pc} - ldr r4, _02090374 ; =data_027e0e60 + ldr r4, _02090374 ; =gMapManager mov r5, #0 _0209034c: ldr r0, [r4] ldr r2, [r7, #0x16c] mov r1, r6 mov r3, r5 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldr r0, [r7, #0x168] add r6, r6, #1 cmp r6, r0 @@ -27466,7 +11446,7 @@ _0209034c: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov00_0209032c -_02090374: .word data_027e0e60 +_02090374: .word gMapManager .global func_ov00_02090378 arm_func_start func_ov00_02090378 @@ -29304,10 +13284,10 @@ func_ov00_020915e8: ; 0x020915e8 _0209167c: cmp r1, #0 bne _0209173c - ldr r0, _020917ac ; =data_027e0e60 + ldr r0, _020917ac ; =gMapManager ldr r6, _020917b0 ; =0x000004cd ldr r0, [r0] - bl func_ov00_020848b8 + bl _ZN10MapManager18func_ov00_020848b8Ev mov r1, #0 cmp r0, #0 ldr r0, _020917b4 ; =0x0000ffff @@ -29334,7 +13314,7 @@ _0209167c: str r0, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] - ldr r0, _020917ac ; =data_027e0e60 + ldr r0, _020917ac ; =gMapManager add r1, sp, #0x34 ldr r0, [r0] mov r3, r2 @@ -29381,7 +13361,7 @@ _0209173c: arm_func_end func_ov00_020915e8 _020917a4: .word data_027e0d38 _020917a8: .word data_027e10a4 -_020917ac: .word data_027e0e60 +_020917ac: .word gMapManager _020917b0: .word 0x000004cd _020917b4: .word 0x0000ffff @@ -29691,10 +13671,10 @@ _02091bd4: ldrb r0, [r5, #0x18] cmp r0, #0 beq _02091ce0 - ldr r0, _02091d4c ; =data_027e0e60 + ldr r0, _02091d4c ; =gMapManager ldr r4, _02091d50 ; =0x000004cd ldr r0, [r0] - bl func_ov00_020848b8 + bl _ZN10MapManager18func_ov00_020848b8Ev mov r1, #0 cmp r0, #0 ldr r0, _02091d54 ; =0x0000ffff @@ -29721,7 +13701,7 @@ _02091bd4: str r0, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] - ldr r0, _02091d4c ; =data_027e0e60 + ldr r0, _02091d4c ; =gMapManager add r1, sp, #0x5c ldr r0, [r0] mov r3, r2 @@ -29771,7 +13751,7 @@ _02091d3c: .word data_027e0f94 _02091d40: .word data_027e0fac _02091d44: .word data_027e10a4 _02091d48: .word data_027e0d38 -_02091d4c: .word data_027e0e60 +_02091d4c: .word gMapManager _02091d50: .word 0x000004cd _02091d54: .word 0x0000ffff @@ -31118,9 +15098,9 @@ _0209309c: strle r0, [sp, #0x104] b _020930d4 _020930b4: - ldr r0, _02093208 ; =data_027e0e60 + ldr r0, _02093208 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082538 + bl _ZN10MapManager18func_ov00_02082538Ev add r3, sp, #0x28 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} @@ -31208,7 +15188,7 @@ _020931f8: .word data_027e0f94 _020931fc: .word 0x00001ccd _02093200: .word 0xffffe333 _02093204: .word 0x000004cd -_02093208: .word data_027e0e60 +_02093208: .word gMapManager .global func_ov00_0209320c arm_func_start func_ov00_0209320c @@ -31411,9 +15391,9 @@ _0209349c: strgt r0, [r4, #8] ldmia sp!, {r3, r4, pc} _020934c8: - ldr r0, _02093504 ; =data_027e0e60 + ldr r0, _02093504 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082538 + bl _ZN10MapManager18func_ov00_02082538Ev add r3, sp, #0 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} @@ -31428,7 +15408,7 @@ _020934c8: .align 2, 0 arm_func_end func_ov00_020933d4 _02093500: .word data_027e0f94 -_02093504: .word data_027e0e60 +_02093504: .word gMapManager .global func_ov00_02093508 arm_func_start func_ov00_02093508 @@ -31812,7 +15792,7 @@ func_ov00_02093968: ; 0x02093968 cmp r0, #0 beq _020939bc ldr r1, _020939d8 ; =func_ov00_020939e0 - ldr ip, _020939dc ; =func_ov00_0207e940 + ldr ip, _020939dc ; =_ZN7MapBase18func_ov00_0207e940EPc str r1, [sp] mov r1, r4 mov r2, #0x4c @@ -31830,7 +15810,7 @@ _020939bc: arm_func_end func_ov00_02093968 _020939d4: .word data_027e0ce0 _020939d8: .word func_ov00_020939e0 -_020939dc: .word func_ov00_0207e940 +_020939dc: .word _ZN7MapBase18func_ov00_0207e940EPc .global func_ov00_020939e0 arm_func_start func_ov00_020939e0 @@ -31838,8 +15818,8 @@ func_ov00_020939e0: ; 0x020939e0 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 mov r4, r0 - ldr ip, _02093a14 ; =func_ov00_0207e968 - ldr r3, _02093a18 ; =func_ov00_0207e96c + ldr ip, _02093a14 ; =_ZN7MapBase18func_ov00_0207e968Ev + ldr r3, _02093a18 ; =_ZN7MapBase18func_ov00_0207e96cEv add r0, r4, #0x18 mov r1, #3 mov r2, #0x10 @@ -31850,8 +15830,8 @@ func_ov00_020939e0: ; 0x020939e0 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov00_020939e0 -_02093a14: .word func_ov00_0207e968 -_02093a18: .word func_ov00_0207e96c +_02093a14: .word _ZN7MapBase18func_ov00_0207e968Ev +_02093a18: .word _ZN7MapBase18func_ov00_0207e96cEv .global func_ov00_02093a1c arm_func_start func_ov00_02093a1c @@ -31970,11 +15950,11 @@ func_ov00_02093b58: ; 0x02093b58 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x50 mov r6, r3 - ldr ip, _02093c94 ; =func_ov00_0207e968 + ldr ip, _02093c94 ; =_ZN7MapBase18func_ov00_0207e968Ev mov r4, r0 mov r8, r1 mov r7, r2 - ldr r3, _02093c98 ; =func_ov00_0207e96c + ldr r3, _02093c98 ; =_ZN7MapBase18func_ov00_0207e96cEv add r0, sp, #0x1c mov r1, #3 mov r2, #0x10 @@ -31995,7 +15975,7 @@ func_ov00_02093b58: ; 0x02093b58 ldrh r1, [sp, #6] mul r0, r3, r0 ldr ip, [r4, #0x20] - ldr r3, _02093c94 ; =func_ov00_0207e968 + ldr r3, _02093c94 ; =_ZN7MapBase18func_ov00_0207e968Ev strh r2, [ip, r0] add ip, ip, r0 strh r1, [ip, #2] @@ -32048,8 +16028,8 @@ func_ov00_02093b58: ; 0x02093b58 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov00_02093b58 -_02093c94: .word func_ov00_0207e968 -_02093c98: .word func_ov00_0207e96c +_02093c94: .word _ZN7MapBase18func_ov00_0207e968Ev +_02093c98: .word _ZN7MapBase18func_ov00_0207e96cEv .global func_ov00_02093c9c arm_func_start func_ov00_02093c9c @@ -32175,7 +16155,7 @@ func_ov00_02093e00: ; 0x02093e00 sub sp, sp, #0x70 mov r10, r0 ldr r1, [r10, #4] - ldr r0, _020940cc ; =data_027e0e60 + ldr r0, _020940cc ; =gMapManager orr r1, r1, #0x800 str r1, [r10, #4] ldr r2, [r10, #0x18] @@ -32187,7 +16167,7 @@ func_ov00_02093e00: ; 0x02093e00 ldr r0, [r0] strb r2, [sp, #8] strb r3, [sp, #9] - bl func_ov00_02083e58 + bl _ZN10MapManager16MapData_vfunc_60Ev str r0, [r10, #0x1c] ldr r0, [r10, #0x20] add r0, r0, #0x800 @@ -32260,10 +16240,10 @@ _02093e70: strb r5, [sp, #0x54] strb r5, [sp, #0x55] bl _ZN14AdventureFlags15Get_FlagsUnk_00EiP9FlagsUnk2 - ldr r0, _020940cc ; =data_027e0e60 + ldr r0, _020940cc ; =gMapManager add r1, sp, #0x40 ldr r0, [r0] - bl func_ov00_020838f8 + bl _ZN10MapManager18func_ov00_020838f8EPi ldr r1, [sp, #0xc] bic r1, r1, #0x3f0000 orr r0, r1, r0, lsl #16 @@ -32292,7 +16272,7 @@ _02093f80: add r0, r8, #2 cmp r8, r0 bge _0209406c - ldr r4, _020940cc ; =data_027e0e60 + ldr r4, _020940cc ; =gMapManager add r6, sp, #6 mov r5, #1 add r11, sp, #4 @@ -32308,18 +16288,18 @@ _02094000: mov r2, r5 strb r7, [sp, #6] strb r9, [sp, #7] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r11 mov r2, #1 strb r7, [sp, #4] strb r9, [sp, #5] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldr r0, [r4] mov r1, r8 mov r2, r9 mov r3, #9 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci ldrb r0, [r10, #0x15] add r9, r9, #1 add r0, r0, #2 @@ -32360,7 +16340,7 @@ _020940ac: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov00_02093e00 -_020940cc: .word data_027e0e60 +_020940cc: .word gMapManager _020940d0: .word 0x00000e66 _020940d4: .word gAdventureFlags @@ -33671,18 +17651,18 @@ func_ov00_02094e6c: ; 0x02094e6c strb r0, [r10] mov r5, r2 strh r6, [r10, #2] - ldr r0, _02094f84 ; =data_027e0e60 + ldr r0, _02094f84 ; =gMapManager strh r5, [r10, #4] ldr r0, [r0] mov r9, r3 - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev ldrh r1, [r10, #2] bl func_02002c14 mov r1, r0, lsl #0xc - ldr r0, _02094f84 ; =data_027e0e60 + ldr r0, _02094f84 ; =gMapManager str r1, [r10, #0xc] ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv ldrh r1, [r10, #4] bl func_02002c14 mov r0, r0, lsl #0xc @@ -33738,7 +17718,7 @@ _02094f40: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov00_02094e6c -_02094f84: .word data_027e0e60 +_02094f84: .word gMapManager _02094f88: .word data_027e0ce0 _02094f8c: .word func_ov00_02094fa8 _02094f90: .word func_ov00_02094f94 @@ -33782,16 +17762,16 @@ func_ov00_02094fbc: ; 0x02094fbc cmpne r0, #0 addeq sp, sp, #8 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} - ldr r0, _02095124 ; =data_027e0e60 + ldr r0, _02095124 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev ldrh r1, [r4, #2] bl func_02002c14 mov r1, r0, lsl #0xc - ldr r0, _02095124 ; =data_027e0e60 + ldr r0, _02095124 ; =gMapManager str r1, [r4, #0xc] ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv ldrh r1, [r4, #4] bl func_02002c14 mov r0, r0, lsl #0xc @@ -33862,7 +17842,7 @@ _0209510c: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov00_02094fbc -_02095124: .word data_027e0e60 +_02095124: .word gMapManager _02095128: .word data_027e0ce0 _0209512c: .word func_ov00_02094fa8 _02095130: .word func_ov00_02094f94 @@ -33978,7 +17958,7 @@ func_ov00_02095258: ; 0x02095258 func_ov00_02095278: ; 0x02095278 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x18 - ldr r3, _0209530c ; =data_027e0e60 + ldr r3, _0209530c ; =gMapManager add ip, sp, #0xc mov r4, r0 mov r6, r1 @@ -33986,7 +17966,7 @@ func_ov00_02095278: ; 0x02095278 stmia ip, {r0, r1, r2} ldr r0, [r3] add r1, sp, #0 - bl func_ov00_0208340c + bl _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p add r0, sp, #0xc add r1, sp, #0 mov r2, r0 @@ -34015,7 +17995,7 @@ func_ov00_02095278: ; 0x02095278 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_02095278 -_0209530c: .word data_027e0e60 +_0209530c: .word gMapManager .global func_ov00_02095310 arm_func_start func_ov00_02095310 @@ -34191,30 +18171,30 @@ func_ov00_020954a0: ; 0x020954a0 mov r5, r1 bl func_ov00_020953fc ldr r1, _0209554c ; =data_ov00_020e3040 - ldr r0, _02095550 ; =data_027e0e60 + ldr r0, _02095550 ; =gMapManager str r1, [r6] ldrb r1, [r5, #1] ldr r0, [r0] - bl func_ov00_02083bac - ldr r2, _02095550 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083bacEv + ldr r2, _02095550 ; =gMapManager mov r4, r0 ldrb r1, [r5, #2] ldr r0, [r2] - bl func_ov00_02083b84 + bl _ZN10MapManager18func_ov00_02083b84Ev mov r3, #0x5000 rsb r3, r3, #0 - ldr r2, _02095550 ; =data_027e0e60 + ldr r2, _02095550 ; =gMapManager str r0, [sp, #0xc] ldrb r1, [r5, #3] ldr r0, [r2] str r3, [sp, #0x10] str r4, [sp, #0x14] - bl func_ov00_02083bfc - ldr r2, _02095550 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083bfcEv + ldr r2, _02095550 ; =gMapManager mov r4, r0 ldrb r1, [r5, #4] ldr r0, [r2] - bl func_ov00_02083bd4 + bl _ZN10MapManager18func_ov00_02083bd4Ev ldr r1, [sp, #0xc] ldr r2, [sp, #0x10] str r1, [r6, #0x14] @@ -34231,7 +18211,7 @@ func_ov00_020954a0: ; 0x020954a0 .align 2, 0 arm_func_end func_ov00_020954a0 _0209554c: .word data_ov00_020e3040 -_02095550: .word data_027e0e60 +_02095550: .word gMapManager .global func_ov00_02095554 arm_func_start func_ov00_02095554 @@ -34242,30 +18222,30 @@ func_ov00_02095554: ; 0x02095554 mov r5, r1 bl func_ov00_020953fc ldr r1, _02095600 ; =data_ov00_020e3040 - ldr r0, _02095604 ; =data_027e0e60 + ldr r0, _02095604 ; =gMapManager str r1, [r6] ldrb r1, [r5, #1] ldr r0, [r0] - bl func_ov00_02083bac - ldr r2, _02095604 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083bacEv + ldr r2, _02095604 ; =gMapManager mov r4, r0 ldrb r1, [r5, #2] ldr r0, [r2] - bl func_ov00_02083b84 + bl _ZN10MapManager18func_ov00_02083b84Ev mov r3, #0x5000 rsb r3, r3, #0 - ldr r2, _02095604 ; =data_027e0e60 + ldr r2, _02095604 ; =gMapManager str r0, [sp, #0xc] ldrb r1, [r5, #3] ldr r0, [r2] str r3, [sp, #0x10] str r4, [sp, #0x14] - bl func_ov00_02083bfc - ldr r2, _02095604 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083bfcEv + ldr r2, _02095604 ; =gMapManager mov r4, r0 ldrb r1, [r5, #4] ldr r0, [r2] - bl func_ov00_02083bd4 + bl _ZN10MapManager18func_ov00_02083bd4Ev ldr r1, [sp, #0xc] ldr r2, [sp, #0x10] str r1, [r6, #0x14] @@ -34282,7 +18262,7 @@ func_ov00_02095554: ; 0x02095554 .align 2, 0 arm_func_end func_ov00_02095554 _02095600: .word data_ov00_020e3040 -_02095604: .word data_027e0e60 +_02095604: .word gMapManager .global func_ov00_02095608 arm_func_start func_ov00_02095608 @@ -34331,15 +18311,15 @@ func_ov00_0209564c: ; 0x0209564c str r0, [r6, #0x14] str r0, [r6, #0x18] str r0, [r6, #0x1c] - ldr r0, _0209571c ; =data_027e0e60 + ldr r0, _0209571c ; =gMapManager ldrb r1, [r5, #1] ldr r0, [r0] - bl func_ov00_02083bac - ldr r2, _0209571c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083bacEv + ldr r2, _0209571c ; =gMapManager mov r4, r0 ldrb r1, [r5, #2] ldr r0, [r2] - bl func_ov00_02083b84 + bl _ZN10MapManager18func_ov00_02083b84Ev mov ip, #0x5000 str r0, [sp] rsb ip, ip, #0 @@ -34373,7 +18353,7 @@ func_ov00_0209564c: ; 0x0209564c .align 2, 0 arm_func_end func_ov00_0209564c _02095718: .word data_ov00_020e301c -_0209571c: .word data_027e0e60 +_0209571c: .word gMapManager .global func_ov00_02095720 arm_func_start func_ov00_02095720 @@ -35087,13 +19067,13 @@ func_ov00_02095fe0: ; 0x02095fe0 addeq sp, sp, #0x34 ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} ldr r0, _0209614c ; =data_027e0d3c - ldr r1, _02096150 ; =data_027e0e60 + ldr r1, _02096150 ; =gMapManager ldr r2, [r0] ldr r0, [r1] ldr r1, [r2, #0x44] add r2, sp, #0xc add r3, sp, #2 - bl func_ov00_020835e4 + bl _ZN10MapManager18func_ov00_020835e4EiPiS0_ cmp r0, #0 addeq sp, sp, #0x34 ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -35104,7 +19084,7 @@ func_ov00_02095fe0: ; 0x02095fe0 cmp r8, r0 addeq sp, sp, #0x34 ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r4, _02096150 ; =data_027e0e60 + ldr r4, _02096150 ; =gMapManager add r6, sp, #0x1c add r5, sp, #0x28 add r11, sp, #0x10 @@ -35139,19 +19119,19 @@ _020960b0: str r3, [sp, #0x2c] ldr r3, [r8, #0x18] str r3, [sp, #0x30] - bl func_ov00_02083560 + bl _ZN10MapManager18func_ov00_02083560EiPS_j ldrb r2, [sp] ldrb r3, [sp, #1] ldr r0, [r4] mov r1, r6 - bl func_ov00_020834bc + bl _ZN10MapManager18func_ov00_020834bcEP5Vec3pii mov r0, r5 mov r1, r6 mov r2, r5 bl func_01ff9bf8 ldr r0, [r4] mov r1, r11 - bl func_ov00_0208340c + bl _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p mov r0, r5 mov r1, r11 mov r2, r5 @@ -35174,7 +19154,7 @@ _02096128: .align 2, 0 arm_func_end func_ov00_02095fe0 _0209614c: .word data_027e0d3c -_02096150: .word data_027e0e60 +_02096150: .word gMapManager _02096154: .word 0x43525953 _02096158: .word 0x464f5243 _0209615c: .word data_ov00_020db050 @@ -36780,660 +20760,7 @@ func_ov00_02097608: ; 0x02097608 arm_func_end func_ov00_02097608 .rodata - .global data_ov00_020d8798 -data_ov00_020d8798: ; 0x020d8798 - .byte 0x03 - .global data_ov00_020d8799 -data_ov00_020d8799: ; 0x020d8799 - .byte 0x03 - .global data_ov00_020d879a -data_ov00_020d879a: ; 0x020d879a - .byte 0x02 - .global data_ov00_020d879b -data_ov00_020d879b: ; 0x020d879b - .byte 0x02 - .global data_ov00_020d879c -data_ov00_020d879c: ; 0x020d879c - .byte 0x02 - .global data_ov00_020d879d -data_ov00_020d879d: ; 0x020d879d - .byte 0x01 - .global data_ov00_020d879e -data_ov00_020d879e: ; 0x020d879e - .byte 0x01 - .global data_ov00_020d879f -data_ov00_020d879f: ; 0x020d879f - .byte 0x00 - .global data_ov00_020d87a0 -data_ov00_020d87a0: ; 0x020d87a0 - .byte 0x80, 0x00, 0x00, 0x00 - .global data_ov00_020d87a4 -data_ov00_020d87a4: ; 0x020d87a4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87a8 -data_ov00_020d87a8: ; 0x020d87a8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87ac -data_ov00_020d87ac: ; 0x020d87ac - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87b0 -data_ov00_020d87b0: ; 0x020d87b0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87b4 -data_ov00_020d87b4: ; 0x020d87b4 - .byte 0x80, 0x00, 0x00, 0x00 - .global data_ov00_020d87b8 -data_ov00_020d87b8: ; 0x020d87b8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87bc -data_ov00_020d87bc: ; 0x020d87bc - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87c0 -data_ov00_020d87c0: ; 0x020d87c0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87c4 -data_ov00_020d87c4: ; 0x020d87c4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87c8 -data_ov00_020d87c8: ; 0x020d87c8 - .byte 0x80, 0xff, 0xff, 0xff - .global data_ov00_020d87cc -data_ov00_020d87cc: ; 0x020d87cc - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87d0 -data_ov00_020d87d0: ; 0x020d87d0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87d4 -data_ov00_020d87d4: ; 0x020d87d4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87d8 -data_ov00_020d87d8: ; 0x020d87d8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87dc -data_ov00_020d87dc: ; 0x020d87dc - .byte 0x80, 0x00, 0x00, 0x00 - .global data_ov00_020d87e0 -data_ov00_020d87e0: ; 0x020d87e0 - .byte 0x00, 0x01, 0x00, 0x00 - .global data_ov00_020d87e4 -data_ov00_020d87e4: ; 0x020d87e4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87e8 -data_ov00_020d87e8: ; 0x020d87e8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87ec -data_ov00_020d87ec: ; 0x020d87ec - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87f0 -data_ov00_020d87f0: ; 0x020d87f0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87f4 -data_ov00_020d87f4: ; 0x020d87f4 - .byte 0x00, 0x01, 0x00, 0x00 - .global data_ov00_020d87f8 -data_ov00_020d87f8: ; 0x020d87f8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d87fc -data_ov00_020d87fc: ; 0x020d87fc - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8800 -data_ov00_020d8800: ; 0x020d8800 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8804 -data_ov00_020d8804: ; 0x020d8804 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8808 -data_ov00_020d8808: ; 0x020d8808 - .byte 0x00, 0xff, 0xff, 0xff - .global data_ov00_020d880c -data_ov00_020d880c: ; 0x020d880c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8810 -data_ov00_020d8810: ; 0x020d8810 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8814 -data_ov00_020d8814: ; 0x020d8814 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8818 -data_ov00_020d8818: ; 0x020d8818 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d881c -data_ov00_020d881c: ; 0x020d881c - .byte 0x00, 0x01, 0x00, 0x00 - .global data_ov00_020d8820 -data_ov00_020d8820: ; 0x020d8820 - .byte 0x80, 0x01, 0x00, 0x00 - .global data_ov00_020d8824 -data_ov00_020d8824: ; 0x020d8824 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8828 -data_ov00_020d8828: ; 0x020d8828 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d882c -data_ov00_020d882c: ; 0x020d882c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8830 -data_ov00_020d8830: ; 0x020d8830 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8834 -data_ov00_020d8834: ; 0x020d8834 - .byte 0x80, 0x01, 0x00, 0x00 - .global data_ov00_020d8838 -data_ov00_020d8838: ; 0x020d8838 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d883c -data_ov00_020d883c: ; 0x020d883c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8840 -data_ov00_020d8840: ; 0x020d8840 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8844 -data_ov00_020d8844: ; 0x020d8844 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8848 -data_ov00_020d8848: ; 0x020d8848 - .byte 0x80, 0xfe, 0xff, 0xff - .global data_ov00_020d884c -data_ov00_020d884c: ; 0x020d884c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8850 -data_ov00_020d8850: ; 0x020d8850 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8854 -data_ov00_020d8854: ; 0x020d8854 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8858 -data_ov00_020d8858: ; 0x020d8858 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d885c -data_ov00_020d885c: ; 0x020d885c - .byte 0x80, 0x01, 0x00, 0x00 - .global data_ov00_020d8860 -data_ov00_020d8860: ; 0x020d8860 - .byte 0x00, 0x02, 0x00, 0x00 - .global data_ov00_020d8864 -data_ov00_020d8864: ; 0x020d8864 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8868 -data_ov00_020d8868: ; 0x020d8868 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d886c -data_ov00_020d886c: ; 0x020d886c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8870 -data_ov00_020d8870: ; 0x020d8870 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8874 -data_ov00_020d8874: ; 0x020d8874 - .byte 0x00, 0x02, 0x00, 0x00 - .global data_ov00_020d8878 -data_ov00_020d8878: ; 0x020d8878 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d887c -data_ov00_020d887c: ; 0x020d887c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8880 -data_ov00_020d8880: ; 0x020d8880 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8884 -data_ov00_020d8884: ; 0x020d8884 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8888 -data_ov00_020d8888: ; 0x020d8888 - .byte 0x00, 0xfe, 0xff, 0xff - .global data_ov00_020d888c -data_ov00_020d888c: ; 0x020d888c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8890 -data_ov00_020d8890: ; 0x020d8890 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8894 -data_ov00_020d8894: ; 0x020d8894 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8898 -data_ov00_020d8898: ; 0x020d8898 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d889c -data_ov00_020d889c: ; 0x020d889c - .byte 0x00, 0x02, 0x00, 0x00 - .global data_ov00_020d88a0 -data_ov00_020d88a0: ; 0x020d88a0 - .byte 0x00, 0x00 - .global data_ov00_020d88a2 -data_ov00_020d88a2: ; 0x020d88a2 - .byte 0x06, 0x00 - .global data_ov00_020d88a4 -data_ov00_020d88a4: ; 0x020d88a4 - .byte 0x28, 0x00 - .global data_ov00_020d88a6 -data_ov00_020d88a6: ; 0x020d88a6 - .byte 0x20, 0x00 - .global data_ov00_020d88a8 -data_ov00_020d88a8: ; 0x020d88a8 - .byte 0x20, 0x00 - .global data_ov00_020d88aa -data_ov00_020d88aa: ; 0x020d88aa - .byte 0x20, 0x00 - .global data_ov00_020d88ac -data_ov00_020d88ac: ; 0x020d88ac - .byte 0x08, 0x00 - .global data_ov00_020d88ae -data_ov00_020d88ae: ; 0x020d88ae - .byte 0x14, 0x00 - .global data_ov00_020d88b0 -data_ov00_020d88b0: ; 0x020d88b0 - .byte 0x32, 0x00 - .global data_ov00_020d88b2 -data_ov00_020d88b2: ; 0x020d88b2 - .byte 0x00, 0x00 - .global data_ov00_020d88b4 -data_ov00_020d88b4: ; 0x020d88b4 - .ascii " !*+,-6789:" - .byte 0x00 - .global data_ov00_020d88c0 -data_ov00_020d88c0: ; 0x020d88c0 - .byte 0x00 - .global data_ov00_020d88c1 -data_ov00_020d88c1: ; 0x020d88c1 - .byte 0x00 - .global data_ov00_020d88c2 -data_ov00_020d88c2: ; 0x020d88c2 - .byte 0x00 - .global data_ov00_020d88c3 -data_ov00_020d88c3: ; 0x020d88c3 - .byte 0x00 - .global data_ov00_020d88c4 -data_ov00_020d88c4: ; 0x020d88c4 - .byte 0x00 - .global data_ov00_020d88c5 -data_ov00_020d88c5: ; 0x020d88c5 - .byte 0x00 - .global data_ov00_020d88c6 -data_ov00_020d88c6: ; 0x020d88c6 - .byte 0x00 - .global data_ov00_020d88c7 -data_ov00_020d88c7: ; 0x020d88c7 - .byte 0x00 - .global data_ov00_020d88c8 -data_ov00_020d88c8: ; 0x020d88c8 - .byte 0x00 - .global data_ov00_020d88c9 -data_ov00_020d88c9: ; 0x020d88c9 - .byte 0x3b - .global data_ov00_020d88ca -data_ov00_020d88ca: ; 0x020d88ca - .byte 0x3f - .global data_ov00_020d88cb -data_ov00_020d88cb: ; 0x020d88cb - .byte 0x00 - .global data_ov00_020d88cc -data_ov00_020d88cc: ; 0x020d88cc - .byte 0x06 - .global data_ov00_020d88cd -data_ov00_020d88cd: ; 0x020d88cd - .byte 0x0c - .global data_ov00_020d88ce -data_ov00_020d88ce: ; 0x020d88ce - .byte 0x12 - .global data_ov00_020d88cf -data_ov00_020d88cf: ; 0x020d88cf - .byte 0x00 - .global data_ov00_020d88d0 -data_ov00_020d88d0: ; 0x020d88d0 - .ascii "sea" - .byte 0x00 - .global data_ov00_020d88d4 -data_ov00_020d88d4: ; 0x020d88d4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d88d8 -data_ov00_020d88d8: ; 0x020d88d8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d88dc -data_ov00_020d88dc: ; 0x020d88dc - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d88e0 -data_ov00_020d88e0: ; 0x020d88e0 - .ascii "sea" - .byte 0x00 - .global data_ov00_020d88e4 -data_ov00_020d88e4: ; 0x020d88e4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d88e8 -data_ov00_020d88e8: ; 0x020d88e8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d88ec -data_ov00_020d88ec: ; 0x020d88ec - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d88f0 -data_ov00_020d88f0: ; 0x020d88f0 - .byte 0x51, 0x00, 0x00, 0x00 - .global data_ov00_020d88f4 -data_ov00_020d88f4: ; 0x020d88f4 - .byte 0x6e, 0x00, 0x00, 0x00 - .global data_ov00_020d88f8 -data_ov00_020d88f8: ; 0x020d88f8 - .byte 0x65, 0x00, 0x00, 0x00 - .global data_ov00_020d88fc -data_ov00_020d88fc: ; 0x020d88fc - .byte 0x50, 0x00, 0x00, 0x00 - .global data_ov00_020d8900 -data_ov00_020d8900: ; 0x020d8900 - .byte 0x30, 0x00, 0x00, 0x00 - .global data_ov00_020d8904 -data_ov00_020d8904: ; 0x020d8904 - .byte 0x74, 0x00, 0x00, 0x00 - .global data_ov00_020d8908 -data_ov00_020d8908: ; 0x020d8908 - .byte 0x49, 0x00, 0x00, 0x00 - .global data_ov00_020d890c -data_ov00_020d890c: ; 0x020d890c - .byte 0x50, 0x00, 0x00, 0x00 - .global data_ov00_020d8910 -data_ov00_020d8910: ; 0x020d8910 - .byte 0x51, 0x00, 0x00, 0x00 - .global data_ov00_020d8914 -data_ov00_020d8914: ; 0x020d8914 - .byte 0x54, 0x00, 0x00, 0x00 - .global data_ov00_020d8918 -data_ov00_020d8918: ; 0x020d8918 - .byte 0x52, 0x00, 0x00, 0x00 - .global data_ov00_020d891c -data_ov00_020d891c: ; 0x020d891c - .byte 0x53, 0x00, 0x00, 0x00 - .global data_ov00_020d8920 -data_ov00_020d8920: ; 0x020d8920 - .byte 0x55, 0x00, 0x00, 0x00 - .global data_ov00_020d8924 -data_ov00_020d8924: ; 0x020d8924 - .byte 0x56, 0x00, 0x00, 0x00 - .global data_ov00_020d8928 -data_ov00_020d8928: ; 0x020d8928 - .byte 0x57, 0x00, 0x00, 0x00 - .global data_ov00_020d892c -data_ov00_020d892c: ; 0x020d892c - .byte 0x58, 0x00, 0x00, 0x00 - .global data_ov00_020d8930 -data_ov00_020d8930: ; 0x020d8930 - .byte 0x59, 0x00, 0x00, 0x00 - .global data_ov00_020d8934 -data_ov00_020d8934: ; 0x020d8934 - .byte 0x5a, 0x00, 0x00, 0x00 - .global data_ov00_020d8938 -data_ov00_020d8938: ; 0x020d8938 - .byte 0x5f, 0x00, 0x00, 0x00 - .global data_ov00_020d893c -data_ov00_020d893c: ; 0x020d893c - .byte 0x60, 0x00, 0x00, 0x00 - .global data_ov00_020d8940 -data_ov00_020d8940: ; 0x020d8940 - .byte 0x61, 0x00, 0x00, 0x00 - .global data_ov00_020d8944 -data_ov00_020d8944: ; 0x020d8944 - .byte 0x5c, 0x00, 0x00, 0x00 - .global data_ov00_020d8948 -data_ov00_020d8948: ; 0x020d8948 - .byte 0x5b, 0x00, 0x00, 0x00 - .global data_ov00_020d894c -data_ov00_020d894c: ; 0x020d894c - .byte 0x5e, 0x00, 0x00, 0x00 - .global data_ov00_020d8950 -data_ov00_020d8950: ; 0x020d8950 - .byte 0x62, 0x00, 0x00, 0x00 - .global data_ov00_020d8954 -data_ov00_020d8954: ; 0x020d8954 - .byte 0x63, 0x00, 0x00, 0x00 - .global data_ov00_020d8958 -data_ov00_020d8958: ; 0x020d8958 - .byte 0x64, 0x00, 0x00, 0x00 - .global data_ov00_020d895c -data_ov00_020d895c: ; 0x020d895c - .byte 0x3f, 0x00, 0x00, 0x00 - .global data_ov00_020d8960 -data_ov00_020d8960: ; 0x020d8960 - .byte 0x40, 0x00, 0x00, 0x00 - .global data_ov00_020d8964 -data_ov00_020d8964: ; 0x020d8964 - .byte 0x41, 0x00, 0x00, 0x00 - .global data_ov00_020d8968 -data_ov00_020d8968: ; 0x020d8968 - .byte 0x42, 0x00, 0x00, 0x00 - .global data_ov00_020d896c -data_ov00_020d896c: ; 0x020d896c - .byte 0x43, 0x00, 0x00, 0x00 - .global data_ov00_020d8970 -data_ov00_020d8970: ; 0x020d8970 - .byte 0x44, 0x00, 0x00, 0x00 - .global data_ov00_020d8974 -data_ov00_020d8974: ; 0x020d8974 - .byte 0x45, 0x00, 0x00, 0x00 - .global data_ov00_020d8978 -data_ov00_020d8978: ; 0x020d8978 - .byte 0x46, 0x00, 0x00, 0x00 - .global data_ov00_020d897c -data_ov00_020d897c: ; 0x020d897c - .byte 0x5d, 0x00, 0x00, 0x00 - .global data_ov00_020d8980 -data_ov00_020d8980: ; 0x020d8980 - .byte 0x31, 0x00, 0x00, 0x00 - .global data_ov00_020d8984 -data_ov00_020d8984: ; 0x020d8984 - .byte 0x39, 0x00, 0x00, 0x00 - .global data_ov00_020d8988 -data_ov00_020d8988: ; 0x020d8988 - .byte 0x3a, 0x00, 0x00, 0x00 - .global data_ov00_020d898c -data_ov00_020d898c: ; 0x020d898c - .byte 0x3b, 0x00, 0x00, 0x00 - .global data_ov00_020d8990 -data_ov00_020d8990: ; 0x020d8990 - .byte 0x3c, 0x00, 0x00, 0x00 - .global data_ov00_020d8994 -data_ov00_020d8994: ; 0x020d8994 - .byte 0x32, 0x00, 0x00, 0x00 - .global data_ov00_020d8998 -data_ov00_020d8998: ; 0x020d8998 - .byte 0x33, 0x00, 0x00, 0x00 - .global data_ov00_020d899c -data_ov00_020d899c: ; 0x020d899c - .byte 0x34, 0x00, 0x00, 0x00 - .global data_ov00_020d89a0 -data_ov00_020d89a0: ; 0x020d89a0 - .byte 0x35, 0x00, 0x00, 0x00 - .global data_ov00_020d89a4 -data_ov00_020d89a4: ; 0x020d89a4 - .byte 0x38, 0x00, 0x00, 0x00 - .global data_ov00_020d89a8 -data_ov00_020d89a8: ; 0x020d89a8 - .byte 0x3d, 0x00, 0x00, 0x00 - .global data_ov00_020d89ac -data_ov00_020d89ac: ; 0x020d89ac - .byte 0xd9, 0x00, 0x00, 0x00 - .global data_ov00_020d89b0 -data_ov00_020d89b0: ; 0x020d89b0 - .byte 0xdc, 0x00, 0x00, 0x00 - .global data_ov00_020d89b4 -data_ov00_020d89b4: ; 0x020d89b4 - .byte 0xa1, 0x00, 0x00, 0x00 - .global data_ov00_020d89b8 -data_ov00_020d89b8: ; 0x020d89b8 - .byte 0xa2, 0x00, 0x00, 0x00 - .global data_ov00_020d89bc -data_ov00_020d89bc: ; 0x020d89bc - .byte 0xa3, 0x00, 0x00, 0x00 - .global data_ov00_020d89c0 -data_ov00_020d89c0: ; 0x020d89c0 - .byte 0xa4, 0x00, 0x00, 0x00 - .global data_ov00_020d89c4 -data_ov00_020d89c4: ; 0x020d89c4 - .byte 0xa5, 0x00, 0x00, 0x00 - .global data_ov00_020d89c8 -data_ov00_020d89c8: ; 0x020d89c8 - .byte 0xa6, 0x00, 0x00, 0x00 - .global data_ov00_020d89cc -data_ov00_020d89cc: ; 0x020d89cc - .byte 0x6f, 0x00, 0x00, 0x00 - .global data_ov00_020d89d0 -data_ov00_020d89d0: ; 0x020d89d0 - .byte 0x72, 0x00, 0x00, 0x00 - .global data_ov00_020d89d4 -data_ov00_020d89d4: ; 0x020d89d4 - .byte 0x75, 0x00, 0x00, 0x00 - .global data_ov00_020d89d8 -data_ov00_020d89d8: ; 0x020d89d8 - .byte 0x78, 0x00, 0x00, 0x00 - .global data_ov00_020d89dc -data_ov00_020d89dc: ; 0x020d89dc - .byte 0x79, 0x00, 0x00, 0x00 - .global data_ov00_020d89e0 -data_ov00_020d89e0: ; 0x020d89e0 - .byte 0x7a, 0x00, 0x00, 0x00 - .global data_ov00_020d89e4 -data_ov00_020d89e4: ; 0x020d89e4 - .byte 0x7b, 0x00, 0x00, 0x00 - .global data_ov00_020d89e8 -data_ov00_020d89e8: ; 0x020d89e8 - .byte 0x7f, 0x00, 0x00, 0x00 - .global data_ov00_020d89ec -data_ov00_020d89ec: ; 0x020d89ec - .byte 0x83, 0x00, 0x00, 0x00 - .global data_ov00_020d89f0 -data_ov00_020d89f0: ; 0x020d89f0 - .byte 0x87, 0x00, 0x00, 0x00 - .global data_ov00_020d89f4 -data_ov00_020d89f4: ; 0x020d89f4 - .byte 0x7c, 0x00, 0x00, 0x00 - .global data_ov00_020d89f8 -data_ov00_020d89f8: ; 0x020d89f8 - .byte 0x80, 0x00, 0x00, 0x00 - .global data_ov00_020d89fc -data_ov00_020d89fc: ; 0x020d89fc - .byte 0x84, 0x00, 0x00, 0x00 - .global data_ov00_020d8a00 -data_ov00_020d8a00: ; 0x020d8a00 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020d8a04 -data_ov00_020d8a04: ; 0x020d8a04 - .byte 0x88, 0x00, 0x00, 0x00 - .global data_ov00_020d8a08 -data_ov00_020d8a08: ; 0x020d8a08 - .byte 0x89, 0x00, 0x00, 0x00 - .global data_ov00_020d8a0c -data_ov00_020d8a0c: ; 0x020d8a0c - .byte 0x8a, 0x00, 0x00, 0x00 - .global data_ov00_020d8a10 -data_ov00_020d8a10: ; 0x020d8a10 - .byte 0x8b, 0x00, 0x00, 0x00 - .global data_ov00_020d8a14 -data_ov00_020d8a14: ; 0x020d8a14 - .byte 0x8c, 0x00, 0x00, 0x00 - .global data_ov00_020d8a18 -data_ov00_020d8a18: ; 0x020d8a18 - .byte 0x8d, 0x00, 0x00, 0x00 - .global data_ov00_020d8a1c -data_ov00_020d8a1c: ; 0x020d8a1c - .byte 0x8e, 0x00, 0x00, 0x00 - .global data_ov00_020d8a20 -data_ov00_020d8a20: ; 0x020d8a20 - .byte 0x8f, 0x00, 0x00, 0x00 - .global data_ov00_020d8a24 -data_ov00_020d8a24: ; 0x020d8a24 - .byte 0x90, 0x00, 0x00, 0x00 - .global data_ov00_020d8a28 -data_ov00_020d8a28: ; 0x020d8a28 - .byte 0x91, 0x00, 0x00, 0x00 - .global data_ov00_020d8a2c -data_ov00_020d8a2c: ; 0x020d8a2c - .byte 0x92, 0x00, 0x00, 0x00 - .global data_ov00_020d8a30 -data_ov00_020d8a30: ; 0x020d8a30 - .byte 0x93, 0x00, 0x00, 0x00 - .global data_ov00_020d8a34 -data_ov00_020d8a34: ; 0x020d8a34 - .byte 0x94, 0x00, 0x00, 0x00 - .global data_ov00_020d8a38 -data_ov00_020d8a38: ; 0x020d8a38 - .byte 0x95, 0x00, 0x00, 0x00 - .global data_ov00_020d8a3c -data_ov00_020d8a3c: ; 0x020d8a3c - .byte 0x96, 0x00, 0x00, 0x00 - .global data_ov00_020d8a40 -data_ov00_020d8a40: ; 0x020d8a40 - .byte 0x97, 0x00, 0x00, 0x00 - .global data_ov00_020d8a44 -data_ov00_020d8a44: ; 0x020d8a44 - .byte 0x98, 0x00, 0x00, 0x00 - .global data_ov00_020d8a48 -data_ov00_020d8a48: ; 0x020d8a48 - .byte 0x99, 0x00, 0x00, 0x00 - .global data_ov00_020d8a4c -data_ov00_020d8a4c: ; 0x020d8a4c - .byte 0x9a, 0x00, 0x00, 0x00 - .global data_ov00_020d8a50 -data_ov00_020d8a50: ; 0x020d8a50 - .byte 0x9b, 0x00, 0x00, 0x00 - .global data_ov00_020d8a54 -data_ov00_020d8a54: ; 0x020d8a54 - .byte 0x9d, 0x00, 0x00, 0x00 - .global data_ov00_020d8a58 -data_ov00_020d8a58: ; 0x020d8a58 - .byte 0x9e, 0x00, 0x00, 0x00 - .global data_ov00_020d8a5c -data_ov00_020d8a5c: ; 0x020d8a5c - .byte 0x9f, 0x00, 0x00, 0x00 - .global data_ov00_020d8a60 -data_ov00_020d8a60: ; 0x020d8a60 - .byte 0xa0, 0x00, 0x00, 0x00 - .global data_ov00_020d8a64 -data_ov00_020d8a64: ; 0x020d8a64 - .byte 0x70, 0x00, 0x00, 0x00 - .global data_ov00_020d8a68 -data_ov00_020d8a68: ; 0x020d8a68 - .byte 0x71, 0x00, 0x00, 0x00 - .global data_ov00_020d8a6c -data_ov00_020d8a6c: ; 0x020d8a6c - .byte 0x73, 0x00, 0x00, 0x00 - .global data_ov00_020d8a70 -data_ov00_020d8a70: ; 0x020d8a70 - .byte 0x76, 0x00, 0x00, 0x00 - .global data_ov00_020d8a74 -data_ov00_020d8a74: ; 0x020d8a74 - .byte 0x77, 0x00, 0x00, 0x00 - .global data_ov00_020d8a78 -data_ov00_020d8a78: ; 0x020d8a78 - .byte 0x7d, 0x00, 0x00, 0x00 - .global data_ov00_020d8a7c -data_ov00_020d8a7c: ; 0x020d8a7c - .byte 0x7e, 0x00, 0x00, 0x00 - .global data_ov00_020d8a80 -data_ov00_020d8a80: ; 0x020d8a80 - .byte 0x81, 0x00, 0x00, 0x00 - .global data_ov00_020d8a84 -data_ov00_020d8a84: ; 0x020d8a84 - .byte 0x82, 0x00, 0x00, 0x00 - .global data_ov00_020d8a88 -data_ov00_020d8a88: ; 0x020d8a88 - .byte 0x86, 0x00, 0x00, 0x00 - .global data_ov00_020d8a8c -data_ov00_020d8a8c: ; 0x020d8a8c - .byte 0x9c, 0x00, 0x00, 0x00 - .global data_ov00_020d8a90 -data_ov00_020d8a90: ; 0x020d8a90 - .byte 0x36, 0x00, 0x00, 0x00 - .global data_ov00_020d8a94 -data_ov00_020d8a94: ; 0x020d8a94 - .byte 0x37, 0x00, 0x00, 0x00 - .global data_ov00_020d8a98 -data_ov00_020d8a98: ; 0x020d8a98 - .byte 0xd0, 0x00, 0x00, 0x00 - .global data_ov00_020d8a9c -data_ov00_020d8a9c: ; 0x020d8a9c - .byte 0xd1, 0x00, 0x00, 0x00 - .global data_ov00_020d8aa0 -data_ov00_020d8aa0: ; 0x020d8aa0 - .byte 0xcd, 0x00, 0x00, 0x00 - .global data_ov00_020d8aa4 -data_ov00_020d8aa4: ; 0x020d8aa4 - .byte 0x9a, 0x01, 0x00, 0x00 + .global data_ov00_020d8aa8 data_ov00_020d8aa8: ; 0x020d8aa8 .byte 0x44, 0x46, 0x4d, 0x43, 0x00, 0x00, 0x00, 0x00 @@ -38331,257 +21658,7 @@ data_ov00_020db054: ; 0x020db054 data_ov00_020db056: ; 0x020db056 .byte 0x00, 0x00 - .section .init, 4, 1, 4 - .global func_ov00_020df378 - arm_func_start func_ov00_020df378 -func_ov00_020df378: ; 0x020df378 - ldr ip, _020df384 ; =func_ov08_02113a0c - ldr r0, _020df388 ; =data_ov00_020e9370 - bx ip - .align 2, 0 - arm_func_end func_ov00_020df378 -_020df384: .word func_ov08_02113a0c -_020df388: .word data_ov00_020e9370 - - .global func_ov00_020df38c - arm_func_start func_ov00_020df38c -func_ov00_020df38c: ; 0x020df38c - stmdb sp!, {r3, lr} - ldr r0, _020df3ac ; =data_027e0d78 - bl func_ov08_02113080 - ldr r0, _020df3ac ; =data_027e0d78 - ldr r1, _020df3b0 ; =func_ov00_0207af9c - ldr r2, _020df3b4 ; =data_027e0d6c - bl __register_global_object - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_020df38c -_020df3ac: .word data_027e0d78 -_020df3b0: .word func_ov00_0207af9c -_020df3b4: .word data_027e0d6c - - .global func_ov00_020df3b8 - arm_func_start func_ov00_020df3b8 -func_ov00_020df3b8: ; 0x020df3b8 - ldr ip, _020df3c4 ; =func_ov00_0207b278 - ldr r0, _020df3c8 ; =data_027e0db0 - bx ip - .align 2, 0 - arm_func_end func_ov00_020df3b8 -_020df3c4: .word func_ov00_0207b278 + 1 -_020df3c8: .word data_027e0db0 - - .global func_ov00_020df3cc - arm_func_start func_ov00_020df3cc -func_ov00_020df3cc: ; 0x020df3cc - ldr r0, _020df3dc ; =data_ov00_020e9c88 - mov r1, #0 - str r1, [r0, #0x180] - bx lr - .align 2, 0 - arm_func_end func_ov00_020df3cc -_020df3dc: .word data_ov00_020e9c88 - - .global func_ov00_020df3e0 - arm_func_start func_ov00_020df3e0 -func_ov00_020df3e0: ; 0x020df3e0 - ldr ip, _020df3ec ; =func_ov08_021136fc - ldr r0, _020df3f0 ; =data_027e0dbc - bx ip - .align 2, 0 - arm_func_end func_ov00_020df3e0 -_020df3ec: .word func_ov08_021136fc -_020df3f0: .word data_027e0dbc - - .global func_ov00_020df3f4 - arm_func_start func_ov00_020df3f4 -func_ov00_020df3f4: ; 0x020df3f4 - stmdb sp!, {r3, lr} - ldr r0, _020df414 ; =data_ov00_020e9e18 - bl func_ov08_02113730 - ldr r0, _020df414 ; =data_ov00_020e9e18 - ldr r1, _020df418 ; =func_ov00_0207bab4 - ldr r2, _020df41c ; =data_ov00_020e9e0c - bl __register_global_object - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_020df3f4 -_020df414: .word data_ov00_020e9e18 -_020df418: .word func_ov00_0207bab4 -_020df41c: .word data_ov00_020e9e0c - - .global func_ov00_020df420 - arm_func_start func_ov00_020df420 -func_ov00_020df420: ; 0x020df420 - stmdb sp!, {r3, lr} - ldr r3, _020df450 ; =data_027e0de4 - mov r0, #0 - ldr r1, _020df454 ; =data_027e0de8 - mov r2, #0x20 - str r0, [r3] - bl func_02007938 - ldr r1, _020df458 ; =data_027e0e08 - mov r0, #0 - mov r2, #0x20 - bl func_02007938 - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_020df420 -_020df450: .word data_027e0de4 -_020df454: .word data_027e0de8 -_020df458: .word data_027e0e08 - - .global func_ov00_020df45c - arm_func_start func_ov00_020df45c -func_ov00_020df45c: ; 0x020df45c - ldr r0, _020df46c ; =data_027e0e28 - mov r1, #0 - str r1, [r0] - bx lr - .align 2, 0 - arm_func_end func_ov00_020df45c -_020df46c: .word data_027e0e28 - - .global func_ov00_020df470 - arm_func_start func_ov00_020df470 -func_ov00_020df470: ; 0x020df470 - ldr r0, _020df49c ; =data_027e0e2c - mov r1, #0x80000 - str r1, [r0, #0x20] - str r1, [r0, #0x18] - mov r1, #0x60000 - str r1, [r0, #0x24] - str r1, [r0, #0x1c] - mov r1, #0 - ldr ip, _020df4a0 ; =func_ov00_0207bcb4 - str r1, [r0, #0x28] - bx ip - .align 2, 0 - arm_func_end func_ov00_020df470 -_020df49c: .word data_027e0e2c -_020df4a0: .word func_ov00_0207bcb4 + 1 - - .global func_ov00_020df4a4 - arm_func_start func_ov00_020df4a4 -func_ov00_020df4a4: ; 0x020df4a4 - ldr ip, _020df4b0 ; =func_ov08_02113aa8 - ldr r0, _020df4b4 ; =data_ov00_020ec7dc - bx ip - .align 2, 0 - arm_func_end func_ov00_020df4a4 -_020df4b0: .word func_ov08_02113aa8 -_020df4b4: .word data_ov00_020ec7dc - - .global func_ov00_020df4b8 - arm_func_start func_ov00_020df4b8 -func_ov00_020df4b8: ; 0x020df4b8 - ldr r0, _020df4c8 ; =data_027e0e5c - mov r1, #0 - strh r1, [r0] - bx lr - .align 2, 0 - arm_func_end func_ov00_020df4b8 -_020df4c8: .word data_027e0e5c - - .global func_ov00_020df4cc - arm_func_start func_ov00_020df4cc -func_ov00_020df4cc: ; 0x020df4cc - stmdb sp!, {r3, lr} - ldr r0, _020df5f0 ; =0x00005fff - ldr r3, _020df5f4 ; =data_ov00_020e24a4 - mov ip, #0 - str r0, [r3, #0x20] - ldr r0, _020df5f8 ; =data_ov00_020e24c8 - ldr r1, _020df5fc ; =func_ov00_02086cd0 - ldr r2, _020df600 ; =data_ov00_020ec964 - str ip, [r3, #0x24] - mov ip, #0x60 - str ip, [r3, #0x28] - bl __register_global_object - ldr r0, _020df604 ; =data_ov00_020e24d0 - mov r3, #0 - ldr r1, _020df5fc ; =func_ov00_02086cd0 - ldr r2, _020df608 ; =data_ov00_020ec970 - str r3, [r0] - str r3, [r0, #4] - bl __register_global_object - ldr r0, _020df60c ; =data_ov00_020e24d8 - mov ip, #0x80 - mov r3, #0x60 - ldr r1, _020df5fc ; =func_ov00_02086cd0 - ldr r2, _020df610 ; =data_ov00_020ec97c - str ip, [r0] - str r3, [r0, #4] - bl __register_global_object - ldr r0, _020df614 ; =data_ov00_020e24e0 - mov ip, #0x80 - mov r3, #0 - ldr r1, _020df5fc ; =func_ov00_02086cd0 - ldr r2, _020df618 ; =data_ov00_020ec988 - str ip, [r0] - str r3, [r0, #4] - bl __register_global_object - mov r2, #0x80000 - rsb r2, r2, #0 - ldr r0, _020df5f4 ; =data_ov00_020e24a4 - add r1, r2, #0x20000 - str r2, [r0, #0x44] - str r1, [r0, #0x48] - ldr r0, _020df61c ; =data_ov00_020e24e8 - ldr r1, _020df620 ; =func_ov00_0207dd9c - ldr r2, _020df624 ; =data_ov00_020ec994 - bl __register_global_object - ldr r0, _020df628 ; =data_ov00_020e24f0 - mov r1, #0x80000 - rsb r1, r1, #0 - str r1, [r0] - add r1, r1, #0x20000 - str r1, [r0, #4] - ldr r1, _020df620 ; =func_ov00_0207dd9c - ldr r2, _020df62c ; =data_ov00_020ec9a0 - bl __register_global_object - ldr r0, _020df630 ; =data_ov00_020e24f8 - mov r1, #0x80000 - rsb r1, r1, #0 - str r1, [r0] - add r1, r1, #0x20000 - str r1, [r0, #4] - ldr r1, _020df620 ; =func_ov00_0207dd9c - ldr r2, _020df634 ; =data_ov00_020ec9ac - bl __register_global_object - ldr r0, _020df638 ; =data_ov00_020e2500 - mov r1, #0x80000 - rsb r1, r1, #0 - str r1, [r0] - add r1, r1, #0x20000 - str r1, [r0, #4] - ldr r1, _020df620 ; =func_ov00_0207dd9c - ldr r2, _020df63c ; =data_ov00_020ec9b8 - bl __register_global_object - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end func_ov00_020df4cc -_020df5f0: .word 0x00005fff -_020df5f4: .word data_ov00_020e24a4 -_020df5f8: .word data_ov00_020e24c8 -_020df5fc: .word func_ov00_02086cd0 -_020df600: .word data_ov00_020ec964 -_020df604: .word data_ov00_020e24d0 -_020df608: .word data_ov00_020ec970 -_020df60c: .word data_ov00_020e24d8 -_020df610: .word data_ov00_020ec97c -_020df614: .word data_ov00_020e24e0 -_020df618: .word data_ov00_020ec988 -_020df61c: .word data_ov00_020e24e8 -_020df620: .word func_ov00_0207dd9c -_020df624: .word data_ov00_020ec994 -_020df628: .word data_ov00_020e24f0 -_020df62c: .word data_ov00_020ec9a0 -_020df630: .word data_ov00_020e24f8 -_020df634: .word data_ov00_020ec9ac -_020df638: .word data_ov00_020e2500 -_020df63c: .word data_ov00_020ec9b8 - + .section .init, 4, 1, 4 .global func_ov00_020df640 arm_func_start func_ov00_020df640 func_ov00_020df640: ; 0x020df640 @@ -40309,43 +23386,7 @@ _020e1050: .word data_ov00_020ee0a0 _020e1054: .word func_ov08_021135b8 _020e1058: .word data_ov00_020ee094 - .section .ctor, 4, 1, 4 - .global data_ov00_020e1e90 -data_ov00_020e1e90: ; 0x020e1e90 - .word func_ov00_020df378 - .global data_ov00_020e1e94 -data_ov00_020e1e94: ; 0x020e1e94 - .word func_ov00_020df38c - .global data_ov00_020e1e98 -data_ov00_020e1e98: ; 0x020e1e98 - .word func_ov00_020df3b8 - .global data_ov00_020e1e9c -data_ov00_020e1e9c: ; 0x020e1e9c - .word func_ov00_020df3cc - .global data_ov00_020e1ea0 -data_ov00_020e1ea0: ; 0x020e1ea0 - .word func_ov00_020df3e0 - .global data_ov00_020e1ea4 -data_ov00_020e1ea4: ; 0x020e1ea4 - .word func_ov00_020df3f4 - .global data_ov00_020e1ea8 -data_ov00_020e1ea8: ; 0x020e1ea8 - .word func_ov00_020df420 - .global data_ov00_020e1eac -data_ov00_020e1eac: ; 0x020e1eac - .word func_ov00_020df45c - .global data_ov00_020e1eb0 -data_ov00_020e1eb0: ; 0x020e1eb0 - .word func_ov00_020df470 - .global data_ov00_020e1eb4 -data_ov00_020e1eb4: ; 0x020e1eb4 - .word func_ov00_020df4a4 - .global data_ov00_020e1eb8 -data_ov00_020e1eb8: ; 0x020e1eb8 - .word func_ov00_020df4b8 - .global data_ov00_020e1ebc -data_ov00_020e1ebc: ; 0x020e1ebc - .word func_ov00_020df4cc + .section .ctor, 4, 1, 4 .global data_ov00_020e1ec0 data_ov00_020e1ec0: ; 0x020e1ec0 .word func_ov00_020df640 @@ -40375,547 +23416,7 @@ data_ov00_020e1ee0: ; 0x020e1ee0 .word func_ov00_020e1030 .data - .global data_ov00_020e2044 -data_ov00_020e2044: ; 0x020e2044 - .ascii "Menu/Bg/Color0.NCLR" - .byte 0x00 - .global data_ov00_020e2058 -data_ov00_020e2058: ; 0x020e2058 - .ascii "%s:objlist/motype.zob" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e2070 -data_ov00_020e2070: ; 0x020e2070 - .ascii "%s:objlist/motype_%d.zob" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e208c -data_ov00_020e208c: ; 0x020e208c - .ascii "%s:objlist/npctype.zob" - .byte 0x00, 0x00 - .global data_ov00_020e20a4 -data_ov00_020e20a4: ; 0x020e20a4 - .ascii "%s:objlist/npctype_%d.zob" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e20c0 -data_ov00_020e20c0: ; 0x020e20c0 - .ascii "%s:tex/mapModel.nsbtx" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e20d8 -data_ov00_020e20d8: ; 0x020e20d8 - .ascii "%s:arrange/%s.zab" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e20ec -data_ov00_020e20ec: ; 0x020e20ec - .ascii "%s:objlist/motype.zob" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e2104 -data_ov00_020e2104: ; 0x020e2104 - .ascii "%s:objlist/npctype.zob" - .byte 0x00, 0x00 - .global data_ov00_020e211c -data_ov00_020e211c: ; 0x020e211c - .ascii "%s:tex/mapModel.nsbtx" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e2134 -data_ov00_020e2134: ; 0x020e2134 - .ascii "%s:arrange/%s.zab" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e2148 -data_ov00_020e2148: ; 0x020e2148 - .ascii "%s:nsbmd/%s_%d%d.nsbmd" - .byte 0x00, 0x00 - .global data_ov00_020e2160 -data_ov00_020e2160: ; 0x020e2160 - .ascii "%s:zcb/%s_%d%d.zcb" - .byte 0x00, 0x00 - .global data_ov00_020e2174 -data_ov00_020e2174: ; 0x020e2174 - .ascii "Map2D/%s/map00.bin" - .byte 0x00, 0x00 - .global data_ov00_020e2188 -data_ov00_020e2188: ; 0x020e2188 - .ascii "Map2D/%s/mapwd.bin" - .byte 0x00, 0x00 - .global data_ov00_020e219c -data_ov00_020e219c: ; 0x020e219c - .ascii "Map2D/%s/map%d%d.bin" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e21b4 -data_ov00_020e21b4: ; 0x020e21b4 - .ascii "Map2D/seatest/map%d%d.bin" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e21d0 -data_ov00_020e21d0: ; 0x020e21d0 - .ascii "Map2D/sea_minigame/map%d%d.bin" - .byte 0x00, 0x00 - .global data_ov00_020e21f0 -data_ov00_020e21f0: ; 0x020e21f0 - .ascii "Map2D/sea_fishing/map%d%d.bin" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e2210 -data_ov00_020e2210: ; 0x020e2210 - .ascii "Map2D/sea_salvage/map%d%d.bin" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e2230 -data_ov00_020e2230: ; 0x020e2230 - .ascii "Map2D/boss_last2/map%d%d.bin" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2250 -data_ov00_020e2250: ; 0x020e2250 - .ascii "Map2D/sea/map%d%d_02.bin" - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e226c -data_ov00_020e226c: ; 0x020e226c - .ascii "Map2D/sea/map%d%d.bin" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e2284 -data_ov00_020e2284: ; 0x020e2284 - .ascii "Map2D/sea/map%d%d.bin" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e229c -data_ov00_020e229c: ; 0x020e229c - .ascii "%s:zob/motype_%d%d_%d.zob" - .byte 0x00, 0x00, 0x00 - .global data_ov00_020e22b8 -data_ov00_020e22b8: ; 0x020e22b8 - .ascii "%s:zob/npctype_%d%d_%d.zob" - .byte 0x00, 0x00 - .global data_ov00_020e22d4 -data_ov00_020e22d4: ; 0x020e22d4 - .ascii "%s:mcb/%s_%d%d.mcb" - .byte 0x00, 0x00 - .global data_ov00_020e22e8 -data_ov00_020e22e8: ; 0x020e22e8 - .ascii "%s:zmb/%s_%d%d.zmb" - .byte 0x00, 0x00 - .global data_ov00_020e22fc -data_ov00_020e22fc: ; 0x020e22fc - .ascii "fnl" - .byte 0x00 - .global data_ov00_020e2300 -data_ov00_020e2300: ; 0x020e2300 - .ascii "bow" - .byte 0x00 - .global data_ov00_020e2304 -data_ov00_020e2304: ; 0x020e2304 - .ascii "dco" - .byte 0x00 - .global data_ov00_020e2308 -data_ov00_020e2308: ; 0x020e2308 - .ascii "can" - .byte 0x00 - .global data_ov00_020e230c -data_ov00_020e230c: ; 0x020e230c - .ascii "hul" - .byte 0x00 - .global data_ov00_020e2310 -data_ov00_020e2310: ; 0x020e2310 - .ascii "pdl" - .byte 0x00 - .global data_ov00_020e2314 -data_ov00_020e2314: ; 0x020e2314 - .ascii "anc" - .byte 0x00 - .global data_ov00_020e2318 -data_ov00_020e2318: ; 0x020e2318 - .ascii "brg" - .byte 0x00 - .global data_ov00_020e231c -data_ov00_020e231c: ; 0x020e231c - .word data_ov00_020e2314 - .global data_ov00_020e2320 -data_ov00_020e2320: ; 0x020e2320 - .word data_ov00_020e2300 - .global data_ov00_020e2324 -data_ov00_020e2324: ; 0x020e2324 - .word data_ov00_020e230c - .global data_ov00_020e2328 -data_ov00_020e2328: ; 0x020e2328 - .word data_ov00_020e2308 - .global data_ov00_020e232c -data_ov00_020e232c: ; 0x020e232c - .word data_ov00_020e2304 - .global data_ov00_020e2330 -data_ov00_020e2330: ; 0x020e2330 - .word data_ov00_020e2310 - .global data_ov00_020e2334 -data_ov00_020e2334: ; 0x020e2334 - .word data_ov00_020e22fc - .global data_ov00_020e2338 -data_ov00_020e2338: ; 0x020e2338 - .word data_ov00_020e2318 - .global data_ov00_020e233c -data_ov00_020e233c: ; 0x020e233c - .word data_ov00_020e240c - .global data_ov00_020e2340 -data_ov00_020e2340: ; 0x020e2340 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2344 -data_ov00_020e2344: ; 0x020e2344 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2348 -data_ov00_020e2348: ; 0x020e2348 - .word func_ov00_0207dc04 - .global data_ov00_020e234c -data_ov00_020e234c: ; 0x020e234c - .word func_ov00_0207db1c - .global data_ov00_020e2350 -data_ov00_020e2350: ; 0x020e2350 - .word func_ov04_0210c1f8 ; data_ov07_0210c1f8 - .global data_ov00_020e2354 -data_ov00_020e2354: ; 0x020e2354 - .word func_ov04_0210c3fc ; data_ov07_0210c3fc - .global data_ov00_020e2358 -data_ov00_020e2358: ; 0x020e2358 - .word func_ov04_0210c52c ; data_ov07_0210c52c - .global data_ov00_020e235c -data_ov00_020e235c: ; 0x020e235c - .word func_ov04_0210bfa8 ; data_ov07_0210bfa8 - .global data_ov00_020e2360 -data_ov00_020e2360: ; 0x020e2360 - .word func_ov00_0207ddf4 - .global data_ov00_020e2364 -data_ov00_020e2364: ; 0x020e2364 - .word func_ov05_02111bc0 - .global data_ov00_020e2368 -data_ov00_020e2368: ; 0x020e2368 - .word func_ov05_02111c00 - .global data_ov00_020e236c -data_ov00_020e236c: ; 0x020e236c - .word func_ov05_02111c6c - .global data_ov00_020e2370 -data_ov00_020e2370: ; 0x020e2370 - .word func_ov05_02111c70 - .global data_ov00_020e2374 -data_ov00_020e2374: ; 0x020e2374 - .word func_ov04_0210c5cc ; data_ov07_0210c5cc - .global data_ov00_020e2378 -data_ov00_020e2378: ; 0x020e2378 - .word func_ov04_0210c764 ; data_ov07_0210c764 - .global data_ov00_020e237c -data_ov00_020e237c: ; 0x020e237c - .word func_ov04_0210c800 ; data_ov07_0210c800 - .global data_ov00_020e2380 -data_ov00_020e2380: ; 0x020e2380 - .word func_ov04_0210c88c ; data_ov07_0210c88c - .global data_ov00_020e2384 -data_ov00_020e2384: ; 0x020e2384 - .word func_ov04_0210c8d4 ; data_ov07_0210c8d4 - .global data_ov00_020e2388 -data_ov00_020e2388: ; 0x020e2388 - .word func_ov04_0210ca84 ; data_ov07_0210ca84 - .global data_ov00_020e238c -data_ov00_020e238c: ; 0x020e238c - .word func_ov04_0210cb00 ; data_ov07_0210cb00 - .global data_ov00_020e2390 -data_ov00_020e2390: ; 0x020e2390 - .word func_ov00_0207e46c - .global data_ov00_020e2394 -data_ov00_020e2394: ; 0x020e2394 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2398 -data_ov00_020e2398: ; 0x020e2398 - .word func_ov00_0207e488 - .global data_ov00_020e239c -data_ov00_020e239c: ; 0x020e239c - .word func_ov00_0207e490 - .global data_ov00_020e23a0 -data_ov00_020e23a0: ; 0x020e23a0 - .word func_ov00_0207e498 - .global data_ov00_020e23a4 -data_ov00_020e23a4: ; 0x020e23a4 - .word func_ov00_0207e4a0 - .global data_ov00_020e23a8 -data_ov00_020e23a8: ; 0x020e23a8 - .word func_ov00_0207e4a8 - .global data_ov00_020e23ac -data_ov00_020e23ac: ; 0x020e23ac - .word func_ov00_0207e4b0 - .global data_ov00_020e23b0 -data_ov00_020e23b0: ; 0x020e23b0 - .word func_ov00_0207e4b8 - .global data_ov00_020e23b4 -data_ov00_020e23b4: ; 0x020e23b4 - .word func_ov00_0207e970 - .global data_ov00_020e23b8 -data_ov00_020e23b8: ; 0x020e23b8 - .word func_ov00_0207ee14 - .global data_ov00_020e23bc -data_ov00_020e23bc: ; 0x020e23bc - .word func_ov00_0207eff4 - .global data_ov00_020e23c0 -data_ov00_020e23c0: ; 0x020e23c0 - .word func_ov00_0207f34c - .global data_ov00_020e23c4 -data_ov00_020e23c4: ; 0x020e23c4 - .word func_ov00_0207f354 - .global data_ov00_020e23c8 -data_ov00_020e23c8: ; 0x020e23c8 - .word func_ov00_0207f35c - .global data_ov00_020e23cc -data_ov00_020e23cc: ; 0x020e23cc - .word func_ov00_0207f364 - .global data_ov00_020e23d0 -data_ov00_020e23d0: ; 0x020e23d0 - .word func_ov00_0207f324 - .global data_ov00_020e23d4 -data_ov00_020e23d4: ; 0x020e23d4 - .word func_ov00_0207f32c - .global data_ov00_020e23d8 -data_ov00_020e23d8: ; 0x020e23d8 - .word func_ov00_0207f3c4 - .global data_ov00_020e23dc -data_ov00_020e23dc: ; 0x020e23dc - .word func_ov00_0207f4a0 - .global data_ov00_020e23e0 -data_ov00_020e23e0: ; 0x020e23e0 - .word func_ov00_02080d78 - .global data_ov00_020e23e4 -data_ov00_020e23e4: ; 0x020e23e4 - .word func_ov00_0207f334 - .global data_ov00_020e23e8 -data_ov00_020e23e8: ; 0x020e23e8 - .word func_ov00_0207f338 - .global data_ov00_020e23ec -data_ov00_020e23ec: ; 0x020e23ec - .word func_ov00_0207f33c - .global data_ov00_020e23f0 -data_ov00_020e23f0: ; 0x020e23f0 - .word func_ov00_0207f344 - .global data_ov00_020e23f4 -data_ov00_020e23f4: ; 0x020e23f4 - .word func_ov00_0207f348 - .global data_ov00_020e23f8 -data_ov00_020e23f8: ; 0x020e23f8 - .word func_ov00_0207e060 - .global data_ov00_020e23fc -data_ov00_020e23fc: ; 0x020e23fc - .word func_ov00_0207e444 - .global data_ov00_020e2400 -data_ov00_020e2400: ; 0x020e2400 - .word func_ov00_020807d4 - .global data_ov00_020e2404 -data_ov00_020e2404: ; 0x020e2404 - .word func_ov00_02080d74 - .global data_ov00_020e2408 -data_ov00_020e2408: ; 0x020e2408 - .word func_ov00_02080d7c - .global data_ov00_020e240c -data_ov00_020e240c: ; 0x020e240c - .ascii "M00" - .byte 0x00 - .global data_ov00_020e2410 -data_ov00_020e2410: ; 0x020e2410 - .ascii "Map/%s/map%d%d.bin" - .byte 0x00, 0x00 - .global data_ov00_020e2424 -data_ov00_020e2424: ; 0x020e2424 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2428 -data_ov00_020e2428: ; 0x020e2428 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e242c -data_ov00_020e242c: ; 0x020e242c - .word func_ov00_020820bc - .global data_ov00_020e2430 -data_ov00_020e2430: ; 0x020e2430 - .word func_ov00_020820d0 - .global data_ov00_020e2434 -data_ov00_020e2434: ; 0x020e2434 - .word func_ov00_02082004 - .global data_ov00_020e2438 -data_ov00_020e2438: ; 0x020e2438 - .word func_ov00_0208200c - .global data_ov00_020e243c -data_ov00_020e243c: ; 0x020e243c - .word func_ov00_02082014 - .global data_ov00_020e2440 -data_ov00_020e2440: ; 0x020e2440 - .word func_ov00_02082084 - .global data_ov00_020e2444 -data_ov00_020e2444: ; 0x020e2444 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2448 -data_ov00_020e2448: ; 0x020e2448 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e244c -data_ov00_020e244c: ; 0x020e244c - .word func_ov00_0208208c - .global data_ov00_020e2450 -data_ov00_020e2450: ; 0x020e2450 - .word func_ov00_020820a0 - .global data_ov00_020e2454 -data_ov00_020e2454: ; 0x020e2454 - .word func_ov00_02081f70 - .global data_ov00_020e2458 -data_ov00_020e2458: ; 0x020e2458 - .word func_ov00_02081f78 - .global data_ov00_020e245c -data_ov00_020e245c: ; 0x020e245c - .word func_ov00_02081f80 - .global data_ov00_020e2460 -data_ov00_020e2460: ; 0x020e2460 - .word func_ov00_02081f50 - .global data_ov00_020e2464 -data_ov00_020e2464: ; 0x020e2464 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2468 -data_ov00_020e2468: ; 0x020e2468 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e246c -data_ov00_020e246c: ; 0x020e246c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2470 -data_ov00_020e2470: ; 0x020e2470 - .word func_ov00_02081f38 - .global data_ov00_020e2474 -data_ov00_020e2474: ; 0x020e2474 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2478 -data_ov00_020e2478: ; 0x020e2478 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e247c -data_ov00_020e247c: ; 0x020e247c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2480 -data_ov00_020e2480: ; 0x020e2480 - .word func_ov00_02081f50 - .global data_ov00_020e2484 -data_ov00_020e2484: ; 0x020e2484 - .ascii "brg" - .byte 0x00 - .global data_ov00_020e2488 -data_ov00_020e2488: ; 0x020e2488 - .ascii "fnl" - .byte 0x00 - .global data_ov00_020e248c -data_ov00_020e248c: ; 0x020e248c - .ascii "pdl" - .byte 0x00 - .global data_ov00_020e2490 -data_ov00_020e2490: ; 0x020e2490 - .ascii "dco" - .byte 0x00 - .global data_ov00_020e2494 -data_ov00_020e2494: ; 0x020e2494 - .ascii "can" - .byte 0x00 - .global data_ov00_020e2498 -data_ov00_020e2498: ; 0x020e2498 - .ascii "hul" - .byte 0x00 - .global data_ov00_020e249c -data_ov00_020e249c: ; 0x020e249c - .ascii "bow" - .byte 0x00 - .global data_ov00_020e24a0 -data_ov00_020e24a0: ; 0x020e24a0 - .ascii "anc" - .byte 0x00 - .global data_ov00_020e24a4 -data_ov00_020e24a4: ; 0x020e24a4 - .word data_ov00_020e24a0 - .global data_ov00_020e24a8 -data_ov00_020e24a8: ; 0x020e24a8 - .word data_ov00_020e249c - .global data_ov00_020e24ac -data_ov00_020e24ac: ; 0x020e24ac - .word data_ov00_020e2498 - .global data_ov00_020e24b0 -data_ov00_020e24b0: ; 0x020e24b0 - .word data_ov00_020e2494 - .global data_ov00_020e24b4 -data_ov00_020e24b4: ; 0x020e24b4 - .word data_ov00_020e2490 - .global data_ov00_020e24b8 -data_ov00_020e24b8: ; 0x020e24b8 - .word data_ov00_020e248c - .global data_ov00_020e24bc -data_ov00_020e24bc: ; 0x020e24bc - .word data_ov00_020e2488 - .global data_ov00_020e24c0 -data_ov00_020e24c0: ; 0x020e24c0 - .word data_ov00_020e2484 - .global data_ov00_020e24c4 -data_ov00_020e24c4: ; 0x020e24c4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24c8 -data_ov00_020e24c8: ; 0x020e24c8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24cc -data_ov00_020e24cc: ; 0x020e24cc - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24d0 -data_ov00_020e24d0: ; 0x020e24d0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24d4 -data_ov00_020e24d4: ; 0x020e24d4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24d8 -data_ov00_020e24d8: ; 0x020e24d8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24dc -data_ov00_020e24dc: ; 0x020e24dc - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24e0 -data_ov00_020e24e0: ; 0x020e24e0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24e4 -data_ov00_020e24e4: ; 0x020e24e4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24e8 -data_ov00_020e24e8: ; 0x020e24e8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24ec -data_ov00_020e24ec: ; 0x020e24ec - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24f0 -data_ov00_020e24f0: ; 0x020e24f0 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24f4 -data_ov00_020e24f4: ; 0x020e24f4 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24f8 -data_ov00_020e24f8: ; 0x020e24f8 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e24fc -data_ov00_020e24fc: ; 0x020e24fc - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2500 -data_ov00_020e2500: ; 0x020e2500 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2504 -data_ov00_020e2504: ; 0x020e2504 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2508 -data_ov00_020e2508: ; 0x020e2508 - .word data_ov00_020e2520 - .global data_ov00_020e250c -data_ov00_020e250c: ; 0x020e250c - .word data_ov00_020e2524 - .global data_ov00_020e2510 -data_ov00_020e2510: ; 0x020e2510 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2514 -data_ov00_020e2514: ; 0x020e2514 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2518 -data_ov00_020e2518: ; 0x020e2518 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e251c -data_ov00_020e251c: ; 0x020e251c - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2520 -data_ov00_020e2520: ; 0x020e2520 - .ascii "MCS" - .byte 0x00 - .global data_ov00_020e2524 -data_ov00_020e2524: ; 0x020e2524 - .ascii "MRC" - .byte 0x00 - .global data_ov00_020e2528 -data_ov00_020e2528: ; 0x020e2528 - .ascii "Map/%s/course.bin" - .byte 0x00, 0x00, 0x00 + .global data_ov00_020e253c data_ov00_020e253c: ; 0x020e253c .byte 0x00, 0x00, 0x00, 0x00 @@ -43055,10 +25556,10 @@ data_ov00_020e2fdc: ; 0x020e2fdc .word func_ov00_02095e40 .global data_ov00_020e2fe0 data_ov00_020e2fe0: ; 0x020e2fe0 - .word func_ov00_0207fe34 + .word _ZN11TriggerBase8vfunc_0cEv .global data_ov00_020e2fe4 data_ov00_020e2fe4: ; 0x020e2fe4 - .word func_ov00_02080ddc + .word _ZN11TriggerBase8vfunc_10Ev .global data_ov00_020e2fe8 data_ov00_020e2fe8: ; 0x020e2fe8 .word func_ov00_02095ec4 @@ -43106,13 +25607,13 @@ data_ov00_020e3020: ; 0x020e3020 .word func_ov00_02095778 .global data_ov00_020e3024 data_ov00_020e3024: ; 0x020e3024 - .word func_ov00_0207faa8 + .word _ZN11TriggerBase8vfunc_08Ev .global data_ov00_020e3028 data_ov00_020e3028: ; 0x020e3028 - .word func_ov00_0207fe34 + .word _ZN11TriggerBase8vfunc_0cEv .global data_ov00_020e302c data_ov00_020e302c: ; 0x020e302c - .word func_ov00_02080ddc + .word _ZN11TriggerBase8vfunc_10Ev .global data_ov00_020e3030 data_ov00_020e3030: ; 0x020e3030 .word func_ov00_02095eb4 @@ -43133,13 +25634,13 @@ data_ov00_020e3044: ; 0x020e3044 .word func_ov00_0209561c .global data_ov00_020e3048 data_ov00_020e3048: ; 0x020e3048 - .word func_ov00_0207faa8 + .word _ZN11TriggerBase8vfunc_08Ev .global data_ov00_020e304c data_ov00_020e304c: ; 0x020e304c - .word func_ov00_0207fe34 + .word _ZN11TriggerBase8vfunc_0cEv .global data_ov00_020e3050 data_ov00_020e3050: ; 0x020e3050 - .word func_ov00_02080ddc + .word _ZN11TriggerBase8vfunc_10Ev .global data_ov00_020e3054 data_ov00_020e3054: ; 0x020e3054 .word func_ov00_02095ec4 @@ -43160,19 +25661,19 @@ data_ov00_020e3068: ; 0x020e3068 .word func_ov00_02095488 .global data_ov00_020e306c data_ov00_020e306c: ; 0x020e306c - .word func_ov00_0207faa8 + .word _ZN11TriggerBase8vfunc_08Ev .global data_ov00_020e3070 data_ov00_020e3070: ; 0x020e3070 - .word func_ov00_0207fe34 + .word _ZN11TriggerBase8vfunc_0cEv .global data_ov00_020e3074 data_ov00_020e3074: ; 0x020e3074 - .word func_ov00_02080ddc + .word _ZN11TriggerBase8vfunc_10Ev .global data_ov00_020e3078 data_ov00_020e3078: ; 0x020e3078 - .word func_ov00_0207fc90 + .word _ZN11TriggerBase8OverlapsEv .global data_ov00_020e307c data_ov00_020e307c: ; 0x020e307c - .word func_ov00_0207fb5c + .word _ZN11TriggerBase14GetBoundingBoxEv .global data_ov00_020e3080 data_ov00_020e3080: ; 0x020e3080 .ascii "brg" @@ -43295,4848 +25796,7 @@ data_ov00_020e3104: ; 0x020e3104 data_ov00_020e3108: ; 0x020e3108 .word data_ov00_020e30cc - .bss - .global data_ov00_020e9368 -data_ov00_020e9368: - .space 0x4 - .global data_ov00_020e936c -data_ov00_020e936c: - .space 0x4 - .global data_ov00_020e9370 -data_ov00_020e9370: - .space 0x4 - .global data_ov00_020e9374 -data_ov00_020e9374: - .space 0x4 - .global data_ov00_020e9378 -data_ov00_020e9378: - .space 0x4 - .global data_ov00_020e937c -data_ov00_020e937c: - .space 0x4 - .global data_ov00_020e9380 -data_ov00_020e9380: - .space 0x4 - .global data_ov00_020e9384 -data_ov00_020e9384: - .space 0x4 - .global data_ov00_020e9388 -data_ov00_020e9388: - .space 0x4 - .global data_ov00_020e938c -data_ov00_020e938c: - .space 0x4 - .global data_ov00_020e9390 -data_ov00_020e9390: - .space 0x4 - .global data_ov00_020e9394 -data_ov00_020e9394: - .space 0x4 - .global data_ov00_020e9398 -data_ov00_020e9398: - .space 0x4 - .global data_ov00_020e939c -data_ov00_020e939c: - .space 0x4 - .global data_ov00_020e93a0 -data_ov00_020e93a0: - .space 0x4 - .global data_ov00_020e93a4 -data_ov00_020e93a4: - .space 0x4 - .global data_ov00_020e93a8 -data_ov00_020e93a8: - .space 0x4 - .global data_ov00_020e93ac -data_ov00_020e93ac: - .space 0x4 - .global data_ov00_020e93b0 -data_ov00_020e93b0: - .space 0x4 - .global data_ov00_020e93b4 -data_ov00_020e93b4: - .space 0x4 - .global data_ov00_020e93b8 -data_ov00_020e93b8: - .space 0x4 - .global data_ov00_020e93bc -data_ov00_020e93bc: - .space 0x4 - .global data_ov00_020e93c0 -data_ov00_020e93c0: - .space 0x4 - .global data_ov00_020e93c4 -data_ov00_020e93c4: - .space 0x4 - .global data_ov00_020e93c8 -data_ov00_020e93c8: - .space 0x4 - .global data_ov00_020e93cc -data_ov00_020e93cc: - .space 0x4 - .global data_ov00_020e93d0 -data_ov00_020e93d0: - .space 0x4 - .global data_ov00_020e93d4 -data_ov00_020e93d4: - .space 0x4 - .global data_ov00_020e93d8 -data_ov00_020e93d8: - .space 0x4 - .global data_ov00_020e93dc -data_ov00_020e93dc: - .space 0x4 - .global data_ov00_020e93e0 -data_ov00_020e93e0: - .space 0x4 - .global data_ov00_020e93e4 -data_ov00_020e93e4: - .space 0x4 - .global data_ov00_020e93e8 -data_ov00_020e93e8: - .space 0x4 - .global data_ov00_020e93ec -data_ov00_020e93ec: - .space 0x4 - .global data_ov00_020e93f0 -data_ov00_020e93f0: - .space 0x4 - .global data_ov00_020e93f4 -data_ov00_020e93f4: - .space 0x4 - .global data_ov00_020e93f8 -data_ov00_020e93f8: - .space 0x4 - .global data_ov00_020e93fc -data_ov00_020e93fc: - .space 0x4 - .global data_ov00_020e9400 -data_ov00_020e9400: - .space 0x4 - .global data_ov00_020e9404 -data_ov00_020e9404: - .space 0x4 - .global data_ov00_020e9408 -data_ov00_020e9408: - .space 0x4 - .global data_ov00_020e940c -data_ov00_020e940c: - .space 0x4 - .global data_ov00_020e9410 -data_ov00_020e9410: - .space 0x4 - .global data_ov00_020e9414 -data_ov00_020e9414: - .space 0x4 - .global data_ov00_020e9418 -data_ov00_020e9418: - .space 0x4 - .global data_ov00_020e941c -data_ov00_020e941c: - .space 0x4 - .global data_ov00_020e9420 -data_ov00_020e9420: - .space 0x4 - .global data_ov00_020e9424 -data_ov00_020e9424: - .space 0x4 - .global data_ov00_020e9428 -data_ov00_020e9428: - .space 0x4 - .global data_ov00_020e942c -data_ov00_020e942c: - .space 0x4 - .global data_ov00_020e9430 -data_ov00_020e9430: - .space 0x4 - .global data_ov00_020e9434 -data_ov00_020e9434: - .space 0x4 - .global data_ov00_020e9438 -data_ov00_020e9438: - .space 0x4 - .global data_ov00_020e943c -data_ov00_020e943c: - .space 0x4 - .global data_ov00_020e9440 -data_ov00_020e9440: - .space 0x4 - .global data_ov00_020e9444 -data_ov00_020e9444: - .space 0x4 - .global data_ov00_020e9448 -data_ov00_020e9448: - .space 0x4 - .global data_ov00_020e944c -data_ov00_020e944c: - .space 0x4 - .global data_ov00_020e9450 -data_ov00_020e9450: - .space 0x4 - .global data_ov00_020e9454 -data_ov00_020e9454: - .space 0x4 - .global data_ov00_020e9458 -data_ov00_020e9458: - .space 0x4 - .global data_ov00_020e945c -data_ov00_020e945c: - .space 0x4 - .global data_ov00_020e9460 -data_ov00_020e9460: - .space 0x4 - .global data_ov00_020e9464 -data_ov00_020e9464: - .space 0x4 - .global data_ov00_020e9468 -data_ov00_020e9468: - .space 0x4 - .global data_ov00_020e946c -data_ov00_020e946c: - .space 0x4 - .global data_ov00_020e9470 -data_ov00_020e9470: - .space 0x4 - .global data_ov00_020e9474 -data_ov00_020e9474: - .space 0x4 - .global data_ov00_020e9478 -data_ov00_020e9478: - .space 0x4 - .global data_ov00_020e947c -data_ov00_020e947c: - .space 0x4 - .global data_ov00_020e9480 -data_ov00_020e9480: - .space 0x4 - .global data_ov00_020e9484 -data_ov00_020e9484: - .space 0x4 - .global data_ov00_020e9488 -data_ov00_020e9488: - .space 0x4 - .global data_ov00_020e948c -data_ov00_020e948c: - .space 0x4 - .global data_ov00_020e9490 -data_ov00_020e9490: - .space 0x4 - .global data_ov00_020e9494 -data_ov00_020e9494: - .space 0x4 - .global data_ov00_020e9498 -data_ov00_020e9498: - .space 0x4 - .global data_ov00_020e949c -data_ov00_020e949c: - .space 0x4 - .global data_ov00_020e94a0 -data_ov00_020e94a0: - .space 0x4 - .global data_ov00_020e94a4 -data_ov00_020e94a4: - .space 0x4 - .global data_ov00_020e94a8 -data_ov00_020e94a8: - .space 0x4 - .global data_ov00_020e94ac -data_ov00_020e94ac: - .space 0x4 - .global data_ov00_020e94b0 -data_ov00_020e94b0: - .space 0x4 - .global data_ov00_020e94b4 -data_ov00_020e94b4: - .space 0x4 - .global data_ov00_020e94b8 -data_ov00_020e94b8: - .space 0x4 - .global data_ov00_020e94bc -data_ov00_020e94bc: - .space 0x4 - .global data_ov00_020e94c0 -data_ov00_020e94c0: - .space 0x4 - .global data_ov00_020e94c4 -data_ov00_020e94c4: - .space 0x4 - .global data_ov00_020e94c8 -data_ov00_020e94c8: - .space 0x4 - .global data_ov00_020e94cc -data_ov00_020e94cc: - .space 0x4 - .global data_ov00_020e94d0 -data_ov00_020e94d0: - .space 0x4 - .global data_ov00_020e94d4 -data_ov00_020e94d4: - .space 0x4 - .global data_ov00_020e94d8 -data_ov00_020e94d8: - .space 0x4 - .global data_ov00_020e94dc -data_ov00_020e94dc: - .space 0x4 - .global data_ov00_020e94e0 -data_ov00_020e94e0: - .space 0x4 - .global data_ov00_020e94e4 -data_ov00_020e94e4: - .space 0x4 - .global data_ov00_020e94e8 -data_ov00_020e94e8: - .space 0x4 - .global data_ov00_020e94ec -data_ov00_020e94ec: - .space 0x4 - .global data_ov00_020e94f0 -data_ov00_020e94f0: - .space 0x4 - .global data_ov00_020e94f4 -data_ov00_020e94f4: - .space 0x4 - .global data_ov00_020e94f8 -data_ov00_020e94f8: - .space 0x4 - .global data_ov00_020e94fc -data_ov00_020e94fc: - .space 0x4 - .global data_ov00_020e9500 -data_ov00_020e9500: - .space 0x4 - .global data_ov00_020e9504 -data_ov00_020e9504: - .space 0x4 - .global data_ov00_020e9508 -data_ov00_020e9508: - .space 0x4 - .global data_ov00_020e950c -data_ov00_020e950c: - .space 0x4 - .global data_ov00_020e9510 -data_ov00_020e9510: - .space 0x4 - .global data_ov00_020e9514 -data_ov00_020e9514: - .space 0x4 - .global data_ov00_020e9518 -data_ov00_020e9518: - .space 0x4 - .global data_ov00_020e951c -data_ov00_020e951c: - .space 0x4 - .global data_ov00_020e9520 -data_ov00_020e9520: - .space 0x4 - .global data_ov00_020e9524 -data_ov00_020e9524: - .space 0x4 - .global data_ov00_020e9528 -data_ov00_020e9528: - .space 0x4 - .global data_ov00_020e952c -data_ov00_020e952c: - .space 0x4 - .global data_ov00_020e9530 -data_ov00_020e9530: - .space 0x4 - .global data_ov00_020e9534 -data_ov00_020e9534: - .space 0x4 - .global data_ov00_020e9538 -data_ov00_020e9538: - .space 0x4 - .global data_ov00_020e953c -data_ov00_020e953c: - .space 0x4 - .global data_ov00_020e9540 -data_ov00_020e9540: - .space 0x4 - .global data_ov00_020e9544 -data_ov00_020e9544: - .space 0x4 - .global data_ov00_020e9548 -data_ov00_020e9548: - .space 0x4 - .global data_ov00_020e954c -data_ov00_020e954c: - .space 0x4 - .global data_ov00_020e9550 -data_ov00_020e9550: - .space 0x4 - .global data_ov00_020e9554 -data_ov00_020e9554: - .space 0x4 - .global data_ov00_020e9558 -data_ov00_020e9558: - .space 0x4 - .global data_ov00_020e955c -data_ov00_020e955c: - .space 0x4 - .global data_ov00_020e9560 -data_ov00_020e9560: - .space 0x4 - .global data_ov00_020e9564 -data_ov00_020e9564: - .space 0x4 - .global data_ov00_020e9568 -data_ov00_020e9568: - .space 0x4 - .global data_ov00_020e956c -data_ov00_020e956c: - .space 0x4 - .global data_ov00_020e9570 -data_ov00_020e9570: - .space 0x4 - .global data_ov00_020e9574 -data_ov00_020e9574: - .space 0x4 - .global data_ov00_020e9578 -data_ov00_020e9578: - .space 0x4 - .global data_ov00_020e957c -data_ov00_020e957c: - .space 0x4 - .global data_ov00_020e9580 -data_ov00_020e9580: - .space 0x4 - .global data_ov00_020e9584 -data_ov00_020e9584: - .space 0x4 - .global data_ov00_020e9588 -data_ov00_020e9588: - .space 0x4 - .global data_ov00_020e958c -data_ov00_020e958c: - .space 0x4 - .global data_ov00_020e9590 -data_ov00_020e9590: - .space 0x4 - .global data_ov00_020e9594 -data_ov00_020e9594: - .space 0x4 - .global data_ov00_020e9598 -data_ov00_020e9598: - .space 0x4 - .global data_ov00_020e959c -data_ov00_020e959c: - .space 0x4 - .global data_ov00_020e95a0 -data_ov00_020e95a0: - .space 0x4 - .global data_ov00_020e95a4 -data_ov00_020e95a4: - .space 0x4 - .global data_ov00_020e95a8 -data_ov00_020e95a8: - .space 0x4 - .global data_ov00_020e95ac -data_ov00_020e95ac: - .space 0x4 - .global data_ov00_020e95b0 -data_ov00_020e95b0: - .space 0x4 - .global data_ov00_020e95b4 -data_ov00_020e95b4: - .space 0x4 - .global data_ov00_020e95b8 -data_ov00_020e95b8: - .space 0x4 - .global data_ov00_020e95bc -data_ov00_020e95bc: - .space 0x4 - .global data_ov00_020e95c0 -data_ov00_020e95c0: - .space 0x4 - .global data_ov00_020e95c4 -data_ov00_020e95c4: - .space 0x4 - .global data_ov00_020e95c8 -data_ov00_020e95c8: - .space 0x4 - .global data_ov00_020e95cc -data_ov00_020e95cc: - .space 0x4 - .global data_ov00_020e95d0 -data_ov00_020e95d0: - .space 0x4 - .global data_ov00_020e95d4 -data_ov00_020e95d4: - .space 0x4 - .global data_ov00_020e95d8 -data_ov00_020e95d8: - .space 0x4 - .global data_ov00_020e95dc -data_ov00_020e95dc: - .space 0x4 - .global data_ov00_020e95e0 -data_ov00_020e95e0: - .space 0x4 - .global data_ov00_020e95e4 -data_ov00_020e95e4: - .space 0x4 - .global data_ov00_020e95e8 -data_ov00_020e95e8: - .space 0x4 - .global data_ov00_020e95ec -data_ov00_020e95ec: - .space 0x4 - .global data_ov00_020e95f0 -data_ov00_020e95f0: - .space 0x4 - .global data_ov00_020e95f4 -data_ov00_020e95f4: - .space 0x4 - .global data_ov00_020e95f8 -data_ov00_020e95f8: - .space 0x4 - .global data_ov00_020e95fc -data_ov00_020e95fc: - .space 0x4 - .global data_ov00_020e9600 -data_ov00_020e9600: - .space 0x4 - .global data_ov00_020e9604 -data_ov00_020e9604: - .space 0x4 - .global data_ov00_020e9608 -data_ov00_020e9608: - .space 0x4 - .global data_ov00_020e960c -data_ov00_020e960c: - .space 0x4 - .global data_ov00_020e9610 -data_ov00_020e9610: - .space 0x4 - .global data_ov00_020e9614 -data_ov00_020e9614: - .space 0x4 - .global data_ov00_020e9618 -data_ov00_020e9618: - .space 0x4 - .global data_ov00_020e961c -data_ov00_020e961c: - .space 0x4 - .global data_ov00_020e9620 -data_ov00_020e9620: - .space 0x4 - .global data_ov00_020e9624 -data_ov00_020e9624: - .space 0x4 - .global data_ov00_020e9628 -data_ov00_020e9628: - .space 0x4 - .global data_ov00_020e962c -data_ov00_020e962c: - .space 0x4 - .global data_ov00_020e9630 -data_ov00_020e9630: - .space 0x4 - .global data_ov00_020e9634 -data_ov00_020e9634: - .space 0x4 - .global data_ov00_020e9638 -data_ov00_020e9638: - .space 0x4 - .global data_ov00_020e963c -data_ov00_020e963c: - .space 0x4 - .global data_ov00_020e9640 -data_ov00_020e9640: - .space 0x4 - .global data_ov00_020e9644 -data_ov00_020e9644: - .space 0x4 - .global data_ov00_020e9648 -data_ov00_020e9648: - .space 0x4 - .global data_ov00_020e964c -data_ov00_020e964c: - .space 0x4 - .global data_ov00_020e9650 -data_ov00_020e9650: - .space 0x4 - .global data_ov00_020e9654 -data_ov00_020e9654: - .space 0x4 - .global data_ov00_020e9658 -data_ov00_020e9658: - .space 0x4 - .global data_ov00_020e965c -data_ov00_020e965c: - .space 0x4 - .global data_ov00_020e9660 -data_ov00_020e9660: - .space 0x4 - .global data_ov00_020e9664 -data_ov00_020e9664: - .space 0x4 - .global data_ov00_020e9668 -data_ov00_020e9668: - .space 0x4 - .global data_ov00_020e966c -data_ov00_020e966c: - .space 0x4 - .global data_ov00_020e9670 -data_ov00_020e9670: - .space 0x4 - .global data_ov00_020e9674 -data_ov00_020e9674: - .space 0x4 - .global data_ov00_020e9678 -data_ov00_020e9678: - .space 0x4 - .global data_ov00_020e967c -data_ov00_020e967c: - .space 0x4 - .global data_ov00_020e9680 -data_ov00_020e9680: - .space 0x4 - .global data_ov00_020e9684 -data_ov00_020e9684: - .space 0x4 - .global data_ov00_020e9688 -data_ov00_020e9688: - .space 0x4 - .global data_ov00_020e968c -data_ov00_020e968c: - .space 0x4 - .global data_ov00_020e9690 -data_ov00_020e9690: - .space 0x4 - .global data_ov00_020e9694 -data_ov00_020e9694: - .space 0x4 - .global data_ov00_020e9698 -data_ov00_020e9698: - .space 0x4 - .global data_ov00_020e969c -data_ov00_020e969c: - .space 0x4 - .global data_ov00_020e96a0 -data_ov00_020e96a0: - .space 0x4 - .global data_ov00_020e96a4 -data_ov00_020e96a4: - .space 0x4 - .global data_ov00_020e96a8 -data_ov00_020e96a8: - .space 0x4 - .global data_ov00_020e96ac -data_ov00_020e96ac: - .space 0x4 - .global data_ov00_020e96b0 -data_ov00_020e96b0: - .space 0x4 - .global data_ov00_020e96b4 -data_ov00_020e96b4: - .space 0x4 - .global data_ov00_020e96b8 -data_ov00_020e96b8: - .space 0x4 - .global data_ov00_020e96bc -data_ov00_020e96bc: - .space 0x4 - .global data_ov00_020e96c0 -data_ov00_020e96c0: - .space 0x4 - .global data_ov00_020e96c4 -data_ov00_020e96c4: - .space 0x4 - .global data_ov00_020e96c8 -data_ov00_020e96c8: - .space 0x4 - .global data_ov00_020e96cc -data_ov00_020e96cc: - .space 0x4 - .global data_ov00_020e96d0 -data_ov00_020e96d0: - .space 0x4 - .global data_ov00_020e96d4 -data_ov00_020e96d4: - .space 0x4 - .global data_ov00_020e96d8 -data_ov00_020e96d8: - .space 0x4 - .global data_ov00_020e96dc -data_ov00_020e96dc: - .space 0x4 - .global data_ov00_020e96e0 -data_ov00_020e96e0: - .space 0x4 - .global data_ov00_020e96e4 -data_ov00_020e96e4: - .space 0x4 - .global data_ov00_020e96e8 -data_ov00_020e96e8: - .space 0x4 - .global data_ov00_020e96ec -data_ov00_020e96ec: - .space 0x4 - .global data_ov00_020e96f0 -data_ov00_020e96f0: - .space 0x4 - .global data_ov00_020e96f4 -data_ov00_020e96f4: - .space 0x4 - .global data_ov00_020e96f8 -data_ov00_020e96f8: - .space 0x4 - .global data_ov00_020e96fc -data_ov00_020e96fc: - .space 0x4 - .global data_ov00_020e9700 -data_ov00_020e9700: - .space 0x4 - .global data_ov00_020e9704 -data_ov00_020e9704: - .space 0x4 - .global data_ov00_020e9708 -data_ov00_020e9708: - .space 0x4 - .global data_ov00_020e970c -data_ov00_020e970c: - .space 0x4 - .global data_ov00_020e9710 -data_ov00_020e9710: - .space 0x4 - .global data_ov00_020e9714 -data_ov00_020e9714: - .space 0x4 - .global data_ov00_020e9718 -data_ov00_020e9718: - .space 0x4 - .global data_ov00_020e971c -data_ov00_020e971c: - .space 0x4 - .global data_ov00_020e9720 -data_ov00_020e9720: - .space 0x4 - .global data_ov00_020e9724 -data_ov00_020e9724: - .space 0x4 - .global data_ov00_020e9728 -data_ov00_020e9728: - .space 0x4 - .global data_ov00_020e972c -data_ov00_020e972c: - .space 0x4 - .global data_ov00_020e9730 -data_ov00_020e9730: - .space 0x4 - .global data_ov00_020e9734 -data_ov00_020e9734: - .space 0x4 - .global data_ov00_020e9738 -data_ov00_020e9738: - .space 0x4 - .global data_ov00_020e973c -data_ov00_020e973c: - .space 0x4 - .global data_ov00_020e9740 -data_ov00_020e9740: - .space 0x4 - .global data_ov00_020e9744 -data_ov00_020e9744: - .space 0x4 - .global data_ov00_020e9748 -data_ov00_020e9748: - .space 0x4 - .global data_ov00_020e974c -data_ov00_020e974c: - .space 0x4 - .global data_ov00_020e9750 -data_ov00_020e9750: - .space 0x4 - .global data_ov00_020e9754 -data_ov00_020e9754: - .space 0x4 - .global data_ov00_020e9758 -data_ov00_020e9758: - .space 0x4 - .global data_ov00_020e975c -data_ov00_020e975c: - .space 0x4 - .global data_ov00_020e9760 -data_ov00_020e9760: - .space 0x4 - .global data_ov00_020e9764 -data_ov00_020e9764: - .space 0x4 - .global data_ov00_020e9768 -data_ov00_020e9768: - .space 0x4 - .global data_ov00_020e976c -data_ov00_020e976c: - .space 0x4 - .global data_ov00_020e9770 -data_ov00_020e9770: - .space 0x4 - .global data_ov00_020e9774 -data_ov00_020e9774: - .space 0x4 - .global data_ov00_020e9778 -data_ov00_020e9778: - .space 0x4 - .global data_ov00_020e977c -data_ov00_020e977c: - .space 0x4 - .global data_ov00_020e9780 -data_ov00_020e9780: - .space 0x4 - .global data_ov00_020e9784 -data_ov00_020e9784: - .space 0x4 - .global data_ov00_020e9788 -data_ov00_020e9788: - .space 0x4 - .global data_ov00_020e978c -data_ov00_020e978c: - .space 0x4 - .global data_ov00_020e9790 -data_ov00_020e9790: - .space 0x4 - .global data_ov00_020e9794 -data_ov00_020e9794: - .space 0x4 - .global data_ov00_020e9798 -data_ov00_020e9798: - .space 0x4 - .global data_ov00_020e979c -data_ov00_020e979c: - .space 0x4 - .global data_ov00_020e97a0 -data_ov00_020e97a0: - .space 0x4 - .global data_ov00_020e97a4 -data_ov00_020e97a4: - .space 0x4 - .global data_ov00_020e97a8 -data_ov00_020e97a8: - .space 0x4 - .global data_ov00_020e97ac -data_ov00_020e97ac: - .space 0x4 - .global data_ov00_020e97b0 -data_ov00_020e97b0: - .space 0x4 - .global data_ov00_020e97b4 -data_ov00_020e97b4: - .space 0x4 - .global data_ov00_020e97b8 -data_ov00_020e97b8: - .space 0x4 - .global data_ov00_020e97bc -data_ov00_020e97bc: - .space 0x4 - .global data_ov00_020e97c0 -data_ov00_020e97c0: - .space 0x4 - .global data_ov00_020e97c4 -data_ov00_020e97c4: - .space 0x4 - .global data_ov00_020e97c8 -data_ov00_020e97c8: - .space 0x4 - .global data_ov00_020e97cc -data_ov00_020e97cc: - .space 0x4 - .global data_ov00_020e97d0 -data_ov00_020e97d0: - .space 0x4 - .global data_ov00_020e97d4 -data_ov00_020e97d4: - .space 0x4 - .global data_ov00_020e97d8 -data_ov00_020e97d8: - .space 0x4 - .global data_ov00_020e97dc -data_ov00_020e97dc: - .space 0x4 - .global data_ov00_020e97e0 -data_ov00_020e97e0: - .space 0x4 - .global data_ov00_020e97e4 -data_ov00_020e97e4: - .space 0x4 - .global data_ov00_020e97e8 -data_ov00_020e97e8: - .space 0x4 - .global data_ov00_020e97ec -data_ov00_020e97ec: - .space 0x4 - .global data_ov00_020e97f0 -data_ov00_020e97f0: - .space 0x4 - .global data_ov00_020e97f4 -data_ov00_020e97f4: - .space 0x4 - .global data_ov00_020e97f8 -data_ov00_020e97f8: - .space 0x4 - .global data_ov00_020e97fc -data_ov00_020e97fc: - .space 0x4 - .global data_ov00_020e9800 -data_ov00_020e9800: - .space 0x4 - .global data_ov00_020e9804 -data_ov00_020e9804: - .space 0x4 - .global data_ov00_020e9808 -data_ov00_020e9808: - .space 0x4 - .global data_ov00_020e980c -data_ov00_020e980c: - .space 0x4 - .global data_ov00_020e9810 -data_ov00_020e9810: - .space 0x4 - .global data_ov00_020e9814 -data_ov00_020e9814: - .space 0x4 - .global data_ov00_020e9818 -data_ov00_020e9818: - .space 0x4 - .global data_ov00_020e981c -data_ov00_020e981c: - .space 0x4 - .global data_ov00_020e9820 -data_ov00_020e9820: - .space 0x4 - .global data_ov00_020e9824 -data_ov00_020e9824: - .space 0x4 - .global data_ov00_020e9828 -data_ov00_020e9828: - .space 0x4 - .global data_ov00_020e982c -data_ov00_020e982c: - .space 0x4 - .global data_ov00_020e9830 -data_ov00_020e9830: - .space 0x4 - .global data_ov00_020e9834 -data_ov00_020e9834: - .space 0x4 - .global data_ov00_020e9838 -data_ov00_020e9838: - .space 0x4 - .global data_ov00_020e983c -data_ov00_020e983c: - .space 0x4 - .global data_ov00_020e9840 -data_ov00_020e9840: - .space 0x4 - .global data_ov00_020e9844 -data_ov00_020e9844: - .space 0x4 - .global data_ov00_020e9848 -data_ov00_020e9848: - .space 0x4 - .global data_ov00_020e984c -data_ov00_020e984c: - .space 0x4 - .global data_ov00_020e9850 -data_ov00_020e9850: - .space 0x4 - .global data_ov00_020e9854 -data_ov00_020e9854: - .space 0x4 - .global data_ov00_020e9858 -data_ov00_020e9858: - .space 0x4 - .global data_ov00_020e985c -data_ov00_020e985c: - .space 0x4 - .global data_ov00_020e9860 -data_ov00_020e9860: - .space 0x4 - .global data_ov00_020e9864 -data_ov00_020e9864: - .space 0x4 - .global data_ov00_020e9868 -data_ov00_020e9868: - .space 0x4 - .global data_ov00_020e986c -data_ov00_020e986c: - .space 0x4 - .global data_ov00_020e9870 -data_ov00_020e9870: - .space 0x4 - .global data_ov00_020e9874 -data_ov00_020e9874: - .space 0x4 - .global data_ov00_020e9878 -data_ov00_020e9878: - .space 0x4 - .global data_ov00_020e987c -data_ov00_020e987c: - .space 0x4 - .global data_ov00_020e9880 -data_ov00_020e9880: - .space 0x4 - .global data_ov00_020e9884 -data_ov00_020e9884: - .space 0x4 - .global data_ov00_020e9888 -data_ov00_020e9888: - .space 0x4 - .global data_ov00_020e988c -data_ov00_020e988c: - .space 0x4 - .global data_ov00_020e9890 -data_ov00_020e9890: - .space 0x4 - .global data_ov00_020e9894 -data_ov00_020e9894: - .space 0x4 - .global data_ov00_020e9898 -data_ov00_020e9898: - .space 0x4 - .global data_ov00_020e989c -data_ov00_020e989c: - .space 0x4 - .global data_ov00_020e98a0 -data_ov00_020e98a0: - .space 0x4 - .global data_ov00_020e98a4 -data_ov00_020e98a4: - .space 0x4 - .global data_ov00_020e98a8 -data_ov00_020e98a8: - .space 0x4 - .global data_ov00_020e98ac -data_ov00_020e98ac: - .space 0x4 - .global data_ov00_020e98b0 -data_ov00_020e98b0: - .space 0x4 - .global data_ov00_020e98b4 -data_ov00_020e98b4: - .space 0x4 - .global data_ov00_020e98b8 -data_ov00_020e98b8: - .space 0x4 - .global data_ov00_020e98bc -data_ov00_020e98bc: - .space 0x4 - .global data_ov00_020e98c0 -data_ov00_020e98c0: - .space 0x4 - .global data_ov00_020e98c4 -data_ov00_020e98c4: - .space 0x4 - .global data_ov00_020e98c8 -data_ov00_020e98c8: - .space 0x4 - .global data_ov00_020e98cc -data_ov00_020e98cc: - .space 0x4 - .global data_ov00_020e98d0 -data_ov00_020e98d0: - .space 0x4 - .global data_ov00_020e98d4 -data_ov00_020e98d4: - .space 0x4 - .global data_ov00_020e98d8 -data_ov00_020e98d8: - .space 0x4 - .global data_ov00_020e98dc -data_ov00_020e98dc: - .space 0x4 - .global data_ov00_020e98e0 -data_ov00_020e98e0: - .space 0x4 - .global data_ov00_020e98e4 -data_ov00_020e98e4: - .space 0x4 - .global data_ov00_020e98e8 -data_ov00_020e98e8: - .space 0x4 - .global data_ov00_020e98ec -data_ov00_020e98ec: - .space 0x4 - .global data_ov00_020e98f0 -data_ov00_020e98f0: - .space 0x4 - .global data_ov00_020e98f4 -data_ov00_020e98f4: - .space 0x4 - .global data_ov00_020e98f8 -data_ov00_020e98f8: - .space 0x4 - .global data_ov00_020e98fc -data_ov00_020e98fc: - .space 0x4 - .global data_ov00_020e9900 -data_ov00_020e9900: - .space 0x4 - .global data_ov00_020e9904 -data_ov00_020e9904: - .space 0x4 - .global data_ov00_020e9908 -data_ov00_020e9908: - .space 0x4 - .global data_ov00_020e990c -data_ov00_020e990c: - .space 0x4 - .global data_ov00_020e9910 -data_ov00_020e9910: - .space 0x4 - .global data_ov00_020e9914 -data_ov00_020e9914: - .space 0x4 - .global data_ov00_020e9918 -data_ov00_020e9918: - .space 0x4 - .global data_ov00_020e991c -data_ov00_020e991c: - .space 0x4 - .global data_ov00_020e9920 -data_ov00_020e9920: - .space 0x4 - .global data_ov00_020e9924 -data_ov00_020e9924: - .space 0x4 - .global data_ov00_020e9928 -data_ov00_020e9928: - .space 0x4 - .global data_ov00_020e992c -data_ov00_020e992c: - .space 0x4 - .global data_ov00_020e9930 -data_ov00_020e9930: - .space 0x4 - .global data_ov00_020e9934 -data_ov00_020e9934: - .space 0x4 - .global data_ov00_020e9938 -data_ov00_020e9938: - .space 0x4 - .global data_ov00_020e993c -data_ov00_020e993c: - .space 0x4 - .global data_ov00_020e9940 -data_ov00_020e9940: - .space 0x4 - .global data_ov00_020e9944 -data_ov00_020e9944: - .space 0x4 - .global data_ov00_020e9948 -data_ov00_020e9948: - .space 0x4 - .global data_ov00_020e994c -data_ov00_020e994c: - .space 0x4 - .global data_ov00_020e9950 -data_ov00_020e9950: - .space 0x4 - .global data_ov00_020e9954 -data_ov00_020e9954: - .space 0x4 - .global data_ov00_020e9958 -data_ov00_020e9958: - .space 0x4 - .global data_ov00_020e995c -data_ov00_020e995c: - .space 0x4 - .global data_ov00_020e9960 -data_ov00_020e9960: - .space 0x4 - .global data_ov00_020e9964 -data_ov00_020e9964: - .space 0x4 - .global data_ov00_020e9968 -data_ov00_020e9968: - .space 0x4 - .global data_ov00_020e996c -data_ov00_020e996c: - .space 0x4 - .global data_ov00_020e9970 -data_ov00_020e9970: - .space 0x4 - .global data_ov00_020e9974 -data_ov00_020e9974: - .space 0x4 - .global data_ov00_020e9978 -data_ov00_020e9978: - .space 0x4 - .global data_ov00_020e997c -data_ov00_020e997c: - .space 0x4 - .global data_ov00_020e9980 -data_ov00_020e9980: - .space 0x4 - .global data_ov00_020e9984 -data_ov00_020e9984: - .space 0x4 - .global data_ov00_020e9988 -data_ov00_020e9988: - .space 0x4 - .global data_ov00_020e998c -data_ov00_020e998c: - .space 0x4 - .global data_ov00_020e9990 -data_ov00_020e9990: - .space 0x4 - .global data_ov00_020e9994 -data_ov00_020e9994: - .space 0x4 - .global data_ov00_020e9998 -data_ov00_020e9998: - .space 0x4 - .global data_ov00_020e999c -data_ov00_020e999c: - .space 0x4 - .global data_ov00_020e99a0 -data_ov00_020e99a0: - .space 0x4 - .global data_ov00_020e99a4 -data_ov00_020e99a4: - .space 0x4 - .global data_ov00_020e99a8 -data_ov00_020e99a8: - .space 0x4 - .global data_ov00_020e99ac -data_ov00_020e99ac: - .space 0x4 - .global data_ov00_020e99b0 -data_ov00_020e99b0: - .space 0x4 - .global data_ov00_020e99b4 -data_ov00_020e99b4: - .space 0x4 - .global data_ov00_020e99b8 -data_ov00_020e99b8: - .space 0x4 - .global data_ov00_020e99bc -data_ov00_020e99bc: - .space 0x4 - .global data_ov00_020e99c0 -data_ov00_020e99c0: - .space 0x4 - .global data_ov00_020e99c4 -data_ov00_020e99c4: - .space 0x4 - .global data_ov00_020e99c8 -data_ov00_020e99c8: - .space 0x4 - .global data_ov00_020e99cc -data_ov00_020e99cc: - .space 0x4 - .global data_ov00_020e99d0 -data_ov00_020e99d0: - .space 0x4 - .global data_ov00_020e99d4 -data_ov00_020e99d4: - .space 0x4 - .global data_ov00_020e99d8 -data_ov00_020e99d8: - .space 0x4 - .global data_ov00_020e99dc -data_ov00_020e99dc: - .space 0x4 - .global data_ov00_020e99e0 -data_ov00_020e99e0: - .space 0x4 - .global data_ov00_020e99e4 -data_ov00_020e99e4: - .space 0x4 - .global data_ov00_020e99e8 -data_ov00_020e99e8: - .space 0x4 - .global data_ov00_020e99ec -data_ov00_020e99ec: - .space 0x4 - .global data_ov00_020e99f0 -data_ov00_020e99f0: - .space 0x4 - .global data_ov00_020e99f4 -data_ov00_020e99f4: - .space 0x4 - .global data_ov00_020e99f8 -data_ov00_020e99f8: - .space 0x4 - .global data_ov00_020e99fc -data_ov00_020e99fc: - .space 0x4 - .global data_ov00_020e9a00 -data_ov00_020e9a00: - .space 0x4 - .global data_ov00_020e9a04 -data_ov00_020e9a04: - .space 0x4 - .global data_ov00_020e9a08 -data_ov00_020e9a08: - .space 0x4 - .global data_ov00_020e9a0c -data_ov00_020e9a0c: - .space 0x4 - .global data_ov00_020e9a10 -data_ov00_020e9a10: - .space 0x4 - .global data_ov00_020e9a14 -data_ov00_020e9a14: - .space 0x4 - .global data_ov00_020e9a18 -data_ov00_020e9a18: - .space 0x4 - .global data_ov00_020e9a1c -data_ov00_020e9a1c: - .space 0x4 - .global data_ov00_020e9a20 -data_ov00_020e9a20: - .space 0x4 - .global data_ov00_020e9a24 -data_ov00_020e9a24: - .space 0x4 - .global data_ov00_020e9a28 -data_ov00_020e9a28: - .space 0x4 - .global data_ov00_020e9a2c -data_ov00_020e9a2c: - .space 0x4 - .global data_ov00_020e9a30 -data_ov00_020e9a30: - .space 0x4 - .global data_ov00_020e9a34 -data_ov00_020e9a34: - .space 0x4 - .global data_ov00_020e9a38 -data_ov00_020e9a38: - .space 0x4 - .global data_ov00_020e9a3c -data_ov00_020e9a3c: - .space 0x4 - .global data_ov00_020e9a40 -data_ov00_020e9a40: - .space 0x4 - .global data_ov00_020e9a44 -data_ov00_020e9a44: - .space 0x4 - .global data_ov00_020e9a48 -data_ov00_020e9a48: - .space 0x4 - .global data_ov00_020e9a4c -data_ov00_020e9a4c: - .space 0x4 - .global data_ov00_020e9a50 -data_ov00_020e9a50: - .space 0x4 - .global data_ov00_020e9a54 -data_ov00_020e9a54: - .space 0x4 - .global data_ov00_020e9a58 -data_ov00_020e9a58: - .space 0x4 - .global data_ov00_020e9a5c -data_ov00_020e9a5c: - .space 0x4 - .global data_ov00_020e9a60 -data_ov00_020e9a60: - .space 0x4 - .global data_ov00_020e9a64 -data_ov00_020e9a64: - .space 0x4 - .global data_ov00_020e9a68 -data_ov00_020e9a68: - .space 0x4 - .global data_ov00_020e9a6c -data_ov00_020e9a6c: - .space 0x4 - .global data_ov00_020e9a70 -data_ov00_020e9a70: - .space 0x4 - .global data_ov00_020e9a74 -data_ov00_020e9a74: - .space 0x4 - .global data_ov00_020e9a78 -data_ov00_020e9a78: - .space 0x4 - .global data_ov00_020e9a7c -data_ov00_020e9a7c: - .space 0x4 - .global data_ov00_020e9a80 -data_ov00_020e9a80: - .space 0x4 - .global data_ov00_020e9a84 -data_ov00_020e9a84: - .space 0x4 - .global data_ov00_020e9a88 -data_ov00_020e9a88: - .space 0x4 - .global data_ov00_020e9a8c -data_ov00_020e9a8c: - .space 0x4 - .global data_ov00_020e9a90 -data_ov00_020e9a90: - .space 0x4 - .global data_ov00_020e9a94 -data_ov00_020e9a94: - .space 0x4 - .global data_ov00_020e9a98 -data_ov00_020e9a98: - .space 0x4 - .global data_ov00_020e9a9c -data_ov00_020e9a9c: - .space 0x4 - .global data_ov00_020e9aa0 -data_ov00_020e9aa0: - .space 0x4 - .global data_ov00_020e9aa4 -data_ov00_020e9aa4: - .space 0x4 - .global data_ov00_020e9aa8 -data_ov00_020e9aa8: - .space 0x4 - .global data_ov00_020e9aac -data_ov00_020e9aac: - .space 0x4 - .global data_ov00_020e9ab0 -data_ov00_020e9ab0: - .space 0x4 - .global data_ov00_020e9ab4 -data_ov00_020e9ab4: - .space 0x4 - .global data_ov00_020e9ab8 -data_ov00_020e9ab8: - .space 0x4 - .global data_ov00_020e9abc -data_ov00_020e9abc: - .space 0x4 - .global data_ov00_020e9ac0 -data_ov00_020e9ac0: - .space 0x4 - .global data_ov00_020e9ac4 -data_ov00_020e9ac4: - .space 0x4 - .global data_ov00_020e9ac8 -data_ov00_020e9ac8: - .space 0x4 - .global data_ov00_020e9acc -data_ov00_020e9acc: - .space 0x4 - .global data_ov00_020e9ad0 -data_ov00_020e9ad0: - .space 0x4 - .global data_ov00_020e9ad4 -data_ov00_020e9ad4: - .space 0x4 - .global data_ov00_020e9ad8 -data_ov00_020e9ad8: - .space 0x4 - .global data_ov00_020e9adc -data_ov00_020e9adc: - .space 0x4 - .global data_ov00_020e9ae0 -data_ov00_020e9ae0: - .space 0x4 - .global data_ov00_020e9ae4 -data_ov00_020e9ae4: - .space 0x4 - .global data_ov00_020e9ae8 -data_ov00_020e9ae8: - .space 0x4 - .global data_ov00_020e9aec -data_ov00_020e9aec: - .space 0x4 - .global data_ov00_020e9af0 -data_ov00_020e9af0: - .space 0x4 - .global data_ov00_020e9af4 -data_ov00_020e9af4: - .space 0x4 - .global data_ov00_020e9af8 -data_ov00_020e9af8: - .space 0x4 - .global data_ov00_020e9afc -data_ov00_020e9afc: - .space 0x4 - .global data_ov00_020e9b00 -data_ov00_020e9b00: - .space 0x4 - .global data_ov00_020e9b04 -data_ov00_020e9b04: - .space 0x4 - .global data_ov00_020e9b08 -data_ov00_020e9b08: - .space 0x4 - .global data_ov00_020e9b0c -data_ov00_020e9b0c: - .space 0x4 - .global data_ov00_020e9b10 -data_ov00_020e9b10: - .space 0x4 - .global data_ov00_020e9b14 -data_ov00_020e9b14: - .space 0x4 - .global data_ov00_020e9b18 -data_ov00_020e9b18: - .space 0x4 - .global data_ov00_020e9b1c -data_ov00_020e9b1c: - .space 0x4 - .global data_ov00_020e9b20 -data_ov00_020e9b20: - .space 0x4 - .global data_ov00_020e9b24 -data_ov00_020e9b24: - .space 0x4 - .global data_ov00_020e9b28 -data_ov00_020e9b28: - .space 0x4 - .global data_ov00_020e9b2c -data_ov00_020e9b2c: - .space 0x4 - .global data_ov00_020e9b30 -data_ov00_020e9b30: - .space 0x4 - .global data_ov00_020e9b34 -data_ov00_020e9b34: - .space 0x4 - .global data_ov00_020e9b38 -data_ov00_020e9b38: - .space 0x4 - .global data_ov00_020e9b3c -data_ov00_020e9b3c: - .space 0x4 - .global data_ov00_020e9b40 -data_ov00_020e9b40: - .space 0x4 - .global data_ov00_020e9b44 -data_ov00_020e9b44: - .space 0x4 - .global data_ov00_020e9b48 -data_ov00_020e9b48: - .space 0x4 - .global data_ov00_020e9b4c -data_ov00_020e9b4c: - .space 0x4 - .global data_ov00_020e9b50 -data_ov00_020e9b50: - .space 0x4 - .global data_ov00_020e9b54 -data_ov00_020e9b54: - .space 0x4 - .global data_ov00_020e9b58 -data_ov00_020e9b58: - .space 0x4 - .global data_ov00_020e9b5c -data_ov00_020e9b5c: - .space 0x4 - .global data_ov00_020e9b60 -data_ov00_020e9b60: - .space 0x4 - .global data_ov00_020e9b64 -data_ov00_020e9b64: - .space 0x4 - .global data_ov00_020e9b68 -data_ov00_020e9b68: - .space 0x4 - .global data_ov00_020e9b6c -data_ov00_020e9b6c: - .space 0x4 - .global data_ov00_020e9b70 -data_ov00_020e9b70: - .space 0x4 - .global data_ov00_020e9b74 -data_ov00_020e9b74: - .space 0x4 - .global data_ov00_020e9b78 -data_ov00_020e9b78: - .space 0x4 - .global data_ov00_020e9b7c -data_ov00_020e9b7c: - .space 0x4 - .global data_ov00_020e9b80 -data_ov00_020e9b80: - .space 0x4 - .global data_ov00_020e9b84 -data_ov00_020e9b84: - .space 0x4 - .global data_ov00_020e9b88 -data_ov00_020e9b88: - .space 0x4 - .global data_ov00_020e9b8c -data_ov00_020e9b8c: - .space 0x4 - .global data_ov00_020e9b90 -data_ov00_020e9b90: - .space 0x4 - .global data_ov00_020e9b94 -data_ov00_020e9b94: - .space 0x4 - .global data_ov00_020e9b98 -data_ov00_020e9b98: - .space 0x4 - .global data_ov00_020e9b9c -data_ov00_020e9b9c: - .space 0x4 - .global data_ov00_020e9ba0 -data_ov00_020e9ba0: - .space 0x4 - .global data_ov00_020e9ba4 -data_ov00_020e9ba4: - .space 0x4 - .global data_ov00_020e9ba8 -data_ov00_020e9ba8: - .space 0x4 - .global data_ov00_020e9bac -data_ov00_020e9bac: - .space 0x4 - .global data_ov00_020e9bb0 -data_ov00_020e9bb0: - .space 0x4 - .global data_ov00_020e9bb4 -data_ov00_020e9bb4: - .space 0x4 - .global data_ov00_020e9bb8 -data_ov00_020e9bb8: - .space 0x4 - .global data_ov00_020e9bbc -data_ov00_020e9bbc: - .space 0x4 - .global data_ov00_020e9bc0 -data_ov00_020e9bc0: - .space 0x4 - .global data_ov00_020e9bc4 -data_ov00_020e9bc4: - .space 0x4 - .global data_ov00_020e9bc8 -data_ov00_020e9bc8: - .space 0x4 - .global data_ov00_020e9bcc -data_ov00_020e9bcc: - .space 0x4 - .global data_ov00_020e9bd0 -data_ov00_020e9bd0: - .space 0x4 - .global data_ov00_020e9bd4 -data_ov00_020e9bd4: - .space 0x4 - .global data_ov00_020e9bd8 -data_ov00_020e9bd8: - .space 0x4 - .global data_ov00_020e9bdc -data_ov00_020e9bdc: - .space 0x4 - .global data_ov00_020e9be0 -data_ov00_020e9be0: - .space 0x4 - .global data_ov00_020e9be4 -data_ov00_020e9be4: - .space 0x4 - .global data_ov00_020e9be8 -data_ov00_020e9be8: - .space 0x4 - .global data_ov00_020e9bec -data_ov00_020e9bec: - .space 0x4 - .global data_ov00_020e9bf0 -data_ov00_020e9bf0: - .space 0x4 - .global data_ov00_020e9bf4 -data_ov00_020e9bf4: - .space 0x4 - .global data_ov00_020e9bf8 -data_ov00_020e9bf8: - .space 0x4 - .global data_ov00_020e9bfc -data_ov00_020e9bfc: - .space 0x4 - .global data_ov00_020e9c00 -data_ov00_020e9c00: - .space 0x4 - .global data_ov00_020e9c04 -data_ov00_020e9c04: - .space 0x4 - .global data_ov00_020e9c08 -data_ov00_020e9c08: - .space 0x4 - .global data_ov00_020e9c0c -data_ov00_020e9c0c: - .space 0x4 - .global data_ov00_020e9c10 -data_ov00_020e9c10: - .space 0x4 - .global data_ov00_020e9c14 -data_ov00_020e9c14: - .space 0x4 - .global data_ov00_020e9c18 -data_ov00_020e9c18: - .space 0x4 - .global data_ov00_020e9c1c -data_ov00_020e9c1c: - .space 0x4 - .global data_ov00_020e9c20 -data_ov00_020e9c20: - .space 0x4 - .global data_ov00_020e9c24 -data_ov00_020e9c24: - .space 0x4 - .global data_ov00_020e9c28 -data_ov00_020e9c28: - .space 0x4 - .global data_ov00_020e9c2c -data_ov00_020e9c2c: - .space 0x4 - .global data_ov00_020e9c30 -data_ov00_020e9c30: - .space 0x4 - .global data_ov00_020e9c34 -data_ov00_020e9c34: - .space 0x4 - .global data_ov00_020e9c38 -data_ov00_020e9c38: - .space 0x4 - .global data_ov00_020e9c3c -data_ov00_020e9c3c: - .space 0x4 - .global data_ov00_020e9c40 -data_ov00_020e9c40: - .space 0x4 - .global data_ov00_020e9c44 -data_ov00_020e9c44: - .space 0x4 - .global data_ov00_020e9c48 -data_ov00_020e9c48: - .space 0x4 - .global data_ov00_020e9c4c -data_ov00_020e9c4c: - .space 0x4 - .global data_ov00_020e9c50 -data_ov00_020e9c50: - .space 0x4 - .global data_ov00_020e9c54 -data_ov00_020e9c54: - .space 0x4 - .global data_ov00_020e9c58 -data_ov00_020e9c58: - .space 0x4 - .global data_ov00_020e9c5c -data_ov00_020e9c5c: - .space 0x4 - .global data_ov00_020e9c60 -data_ov00_020e9c60: - .space 0x4 - .global data_ov00_020e9c64 -data_ov00_020e9c64: - .space 0x4 - .global data_ov00_020e9c68 -data_ov00_020e9c68: - .space 0x4 - .global data_ov00_020e9c6c -data_ov00_020e9c6c: - .space 0x4 - .global data_ov00_020e9c70 -data_ov00_020e9c70: - .space 0x4 - .global data_ov00_020e9c74 -data_ov00_020e9c74: - .space 0x4 - .global data_ov00_020e9c78 -data_ov00_020e9c78: - .space 0x4 - .global data_ov00_020e9c7c -data_ov00_020e9c7c: - .space 0x4 - .global data_ov00_020e9c80 -data_ov00_020e9c80: - .space 0x4 - .global data_ov00_020e9c84 -data_ov00_020e9c84: - .space 0x4 - .global data_ov00_020e9c88 -data_ov00_020e9c88: - .space 0x4 - .global data_ov00_020e9c8c -data_ov00_020e9c8c: - .space 0x4 - .global data_ov00_020e9c90 -data_ov00_020e9c90: - .space 0x4 - .global data_ov00_020e9c94 -data_ov00_020e9c94: - .space 0x4 - .global data_ov00_020e9c98 -data_ov00_020e9c98: - .space 0x4 - .global data_ov00_020e9c9c -data_ov00_020e9c9c: - .space 0x4 - .global data_ov00_020e9ca0 -data_ov00_020e9ca0: - .space 0x4 - .global data_ov00_020e9ca4 -data_ov00_020e9ca4: - .space 0x4 - .global data_ov00_020e9ca8 -data_ov00_020e9ca8: - .space 0x4 - .global data_ov00_020e9cac -data_ov00_020e9cac: - .space 0x4 - .global data_ov00_020e9cb0 -data_ov00_020e9cb0: - .space 0x4 - .global data_ov00_020e9cb4 -data_ov00_020e9cb4: - .space 0x4 - .global data_ov00_020e9cb8 -data_ov00_020e9cb8: - .space 0x4 - .global data_ov00_020e9cbc -data_ov00_020e9cbc: - .space 0x4 - .global data_ov00_020e9cc0 -data_ov00_020e9cc0: - .space 0x4 - .global data_ov00_020e9cc4 -data_ov00_020e9cc4: - .space 0x4 - .global data_ov00_020e9cc8 -data_ov00_020e9cc8: - .space 0x4 - .global data_ov00_020e9ccc -data_ov00_020e9ccc: - .space 0x4 - .global data_ov00_020e9cd0 -data_ov00_020e9cd0: - .space 0x4 - .global data_ov00_020e9cd4 -data_ov00_020e9cd4: - .space 0x4 - .global data_ov00_020e9cd8 -data_ov00_020e9cd8: - .space 0x4 - .global data_ov00_020e9cdc -data_ov00_020e9cdc: - .space 0x4 - .global data_ov00_020e9ce0 -data_ov00_020e9ce0: - .space 0x4 - .global data_ov00_020e9ce4 -data_ov00_020e9ce4: - .space 0x4 - .global data_ov00_020e9ce8 -data_ov00_020e9ce8: - .space 0x4 - .global data_ov00_020e9cec -data_ov00_020e9cec: - .space 0x4 - .global data_ov00_020e9cf0 -data_ov00_020e9cf0: - .space 0x4 - .global data_ov00_020e9cf4 -data_ov00_020e9cf4: - .space 0x4 - .global data_ov00_020e9cf8 -data_ov00_020e9cf8: - .space 0x4 - .global data_ov00_020e9cfc -data_ov00_020e9cfc: - .space 0x4 - .global data_ov00_020e9d00 -data_ov00_020e9d00: - .space 0x4 - .global data_ov00_020e9d04 -data_ov00_020e9d04: - .space 0x4 - .global data_ov00_020e9d08 -data_ov00_020e9d08: - .space 0x4 - .global data_ov00_020e9d0c -data_ov00_020e9d0c: - .space 0x4 - .global data_ov00_020e9d10 -data_ov00_020e9d10: - .space 0x4 - .global data_ov00_020e9d14 -data_ov00_020e9d14: - .space 0x4 - .global data_ov00_020e9d18 -data_ov00_020e9d18: - .space 0x4 - .global data_ov00_020e9d1c -data_ov00_020e9d1c: - .space 0x4 - .global data_ov00_020e9d20 -data_ov00_020e9d20: - .space 0x4 - .global data_ov00_020e9d24 -data_ov00_020e9d24: - .space 0x4 - .global data_ov00_020e9d28 -data_ov00_020e9d28: - .space 0x4 - .global data_ov00_020e9d2c -data_ov00_020e9d2c: - .space 0x4 - .global data_ov00_020e9d30 -data_ov00_020e9d30: - .space 0x4 - .global data_ov00_020e9d34 -data_ov00_020e9d34: - .space 0x4 - .global data_ov00_020e9d38 -data_ov00_020e9d38: - .space 0x4 - .global data_ov00_020e9d3c -data_ov00_020e9d3c: - .space 0x4 - .global data_ov00_020e9d40 -data_ov00_020e9d40: - .space 0x4 - .global data_ov00_020e9d44 -data_ov00_020e9d44: - .space 0x4 - .global data_ov00_020e9d48 -data_ov00_020e9d48: - .space 0x4 - .global data_ov00_020e9d4c -data_ov00_020e9d4c: - .space 0x4 - .global data_ov00_020e9d50 -data_ov00_020e9d50: - .space 0x4 - .global data_ov00_020e9d54 -data_ov00_020e9d54: - .space 0x4 - .global data_ov00_020e9d58 -data_ov00_020e9d58: - .space 0x4 - .global data_ov00_020e9d5c -data_ov00_020e9d5c: - .space 0x4 - .global data_ov00_020e9d60 -data_ov00_020e9d60: - .space 0x4 - .global data_ov00_020e9d64 -data_ov00_020e9d64: - .space 0x4 - .global data_ov00_020e9d68 -data_ov00_020e9d68: - .space 0x4 - .global data_ov00_020e9d6c -data_ov00_020e9d6c: - .space 0x4 - .global data_ov00_020e9d70 -data_ov00_020e9d70: - .space 0x4 - .global data_ov00_020e9d74 -data_ov00_020e9d74: - .space 0x4 - .global data_ov00_020e9d78 -data_ov00_020e9d78: - .space 0x4 - .global data_ov00_020e9d7c -data_ov00_020e9d7c: - .space 0x4 - .global data_ov00_020e9d80 -data_ov00_020e9d80: - .space 0x4 - .global data_ov00_020e9d84 -data_ov00_020e9d84: - .space 0x4 - .global data_ov00_020e9d88 -data_ov00_020e9d88: - .space 0x4 - .global data_ov00_020e9d8c -data_ov00_020e9d8c: - .space 0x4 - .global data_ov00_020e9d90 -data_ov00_020e9d90: - .space 0x4 - .global data_ov00_020e9d94 -data_ov00_020e9d94: - .space 0x4 - .global data_ov00_020e9d98 -data_ov00_020e9d98: - .space 0x4 - .global data_ov00_020e9d9c -data_ov00_020e9d9c: - .space 0x4 - .global data_ov00_020e9da0 -data_ov00_020e9da0: - .space 0x4 - .global data_ov00_020e9da4 -data_ov00_020e9da4: - .space 0x4 - .global data_ov00_020e9da8 -data_ov00_020e9da8: - .space 0x4 - .global data_ov00_020e9dac -data_ov00_020e9dac: - .space 0x4 - .global data_ov00_020e9db0 -data_ov00_020e9db0: - .space 0x4 - .global data_ov00_020e9db4 -data_ov00_020e9db4: - .space 0x4 - .global data_ov00_020e9db8 -data_ov00_020e9db8: - .space 0x4 - .global data_ov00_020e9dbc -data_ov00_020e9dbc: - .space 0x4 - .global data_ov00_020e9dc0 -data_ov00_020e9dc0: - .space 0x4 - .global data_ov00_020e9dc4 -data_ov00_020e9dc4: - .space 0x4 - .global data_ov00_020e9dc8 -data_ov00_020e9dc8: - .space 0x4 - .global data_ov00_020e9dcc -data_ov00_020e9dcc: - .space 0x4 - .global data_ov00_020e9dd0 -data_ov00_020e9dd0: - .space 0x4 - .global data_ov00_020e9dd4 -data_ov00_020e9dd4: - .space 0x4 - .global data_ov00_020e9dd8 -data_ov00_020e9dd8: - .space 0x4 - .global data_ov00_020e9ddc -data_ov00_020e9ddc: - .space 0x4 - .global data_ov00_020e9de0 -data_ov00_020e9de0: - .space 0x4 - .global data_ov00_020e9de4 -data_ov00_020e9de4: - .space 0x4 - .global data_ov00_020e9de8 -data_ov00_020e9de8: - .space 0x4 - .global data_ov00_020e9dec -data_ov00_020e9dec: - .space 0x4 - .global data_ov00_020e9df0 -data_ov00_020e9df0: - .space 0x4 - .global data_ov00_020e9df4 -data_ov00_020e9df4: - .space 0x4 - .global data_ov00_020e9df8 -data_ov00_020e9df8: - .space 0x4 - .global data_ov00_020e9dfc -data_ov00_020e9dfc: - .space 0x4 - .global data_ov00_020e9e00 -data_ov00_020e9e00: - .space 0x4 - .global data_ov00_020e9e04 -data_ov00_020e9e04: - .space 0x4 - .global data_ov00_020e9e08 -data_ov00_020e9e08: - .space 0x4 - .global data_ov00_020e9e0c -data_ov00_020e9e0c: - .space 0x4 - .global data_ov00_020e9e10 -data_ov00_020e9e10: - .space 0x4 - .global data_ov00_020e9e14 -data_ov00_020e9e14: - .space 0x4 - .global data_ov00_020e9e18 -data_ov00_020e9e18: - .space 0x4 - .global data_ov00_020e9e1c -data_ov00_020e9e1c: - .space 0x4 - .global data_ov00_020e9e20 -data_ov00_020e9e20: - .space 0x4 - .global data_ov00_020e9e24 -data_ov00_020e9e24: - .space 0x4 - .global data_ov00_020e9e28 -data_ov00_020e9e28: - .space 0x4 - .global data_ov00_020e9e2c -data_ov00_020e9e2c: - .space 0x4 - .global data_ov00_020e9e30 -data_ov00_020e9e30: - .space 0x4 - .global data_ov00_020e9e34 -data_ov00_020e9e34: - .space 0x4 - .global data_ov00_020e9e38 -data_ov00_020e9e38: - .space 0x4 - .global data_ov00_020e9e3c -data_ov00_020e9e3c: - .space 0x4 - .global data_ov00_020e9e40 -data_ov00_020e9e40: - .space 0x4 - .global data_ov00_020e9e44 -data_ov00_020e9e44: - .space 0x4 - .global data_ov00_020e9e48 -data_ov00_020e9e48: - .space 0x4 - .global data_ov00_020e9e4c -data_ov00_020e9e4c: - .space 0x4 - .global data_ov00_020e9e50 -data_ov00_020e9e50: - .space 0x4 - .global data_ov00_020e9e54 -data_ov00_020e9e54: - .space 0x4 - .global data_ov00_020e9e58 -data_ov00_020e9e58: - .space 0x4 - .global data_ov00_020e9e5c -data_ov00_020e9e5c: - .space 0x4 - .global data_ov00_020e9e60 -data_ov00_020e9e60: - .space 0x4 - .global data_ov00_020e9e64 -data_ov00_020e9e64: - .space 0x4 - .global data_ov00_020e9e68 -data_ov00_020e9e68: - .space 0x4 - .global data_ov00_020e9e6c -data_ov00_020e9e6c: - .space 0x4 - .global data_ov00_020e9e70 -data_ov00_020e9e70: - .space 0x4 - .global data_ov00_020e9e74 -data_ov00_020e9e74: - .space 0x4 - .global data_ov00_020e9e78 -data_ov00_020e9e78: - .space 0x4 - .global data_ov00_020e9e7c -data_ov00_020e9e7c: - .space 0x4 - .global data_ov00_020e9e80 -data_ov00_020e9e80: - .space 0x4 - .global data_ov00_020e9e84 -data_ov00_020e9e84: - .space 0x4 - .global data_ov00_020e9e88 -data_ov00_020e9e88: - .space 0x4 - .global data_ov00_020e9e8c -data_ov00_020e9e8c: - .space 0x4 - .global data_ov00_020e9e90 -data_ov00_020e9e90: - .space 0x4 - .global data_ov00_020e9e94 -data_ov00_020e9e94: - .space 0x4 - .global data_ov00_020e9e98 -data_ov00_020e9e98: - .space 0x4 - .global data_ov00_020e9e9c -data_ov00_020e9e9c: - .space 0x4 - .global data_ov00_020e9ea0 -data_ov00_020e9ea0: - .space 0x4 - .global data_ov00_020e9ea4 -data_ov00_020e9ea4: - .space 0x4 - .global data_ov00_020e9ea8 -data_ov00_020e9ea8: - .space 0x4 - .global data_ov00_020e9eac -data_ov00_020e9eac: - .space 0x4 - .global data_ov00_020e9eb0 -data_ov00_020e9eb0: - .space 0x4 - .global data_ov00_020e9eb4 -data_ov00_020e9eb4: - .space 0x4 - .global data_ov00_020e9eb8 -data_ov00_020e9eb8: - .space 0x4 - .global data_ov00_020e9ebc -data_ov00_020e9ebc: - .space 0x4 - .global data_ov00_020e9ec0 -data_ov00_020e9ec0: - .space 0x4 - .global data_ov00_020e9ec4 -data_ov00_020e9ec4: - .space 0x4 - .global data_ov00_020e9ec8 -data_ov00_020e9ec8: - .space 0x4 - .global data_ov00_020e9ecc -data_ov00_020e9ecc: - .space 0x4 - .global data_ov00_020e9ed0 -data_ov00_020e9ed0: - .space 0x4 - .global data_ov00_020e9ed4 -data_ov00_020e9ed4: - .space 0x4 - .global data_ov00_020e9ed8 -data_ov00_020e9ed8: - .space 0x4 - .global data_ov00_020e9edc -data_ov00_020e9edc: - .space 0x4 - .global data_ov00_020e9ee0 -data_ov00_020e9ee0: - .space 0x4 - .global data_ov00_020e9ee4 -data_ov00_020e9ee4: - .space 0x4 - .global data_ov00_020e9ee8 -data_ov00_020e9ee8: - .space 0x4 - .global data_ov00_020e9eec -data_ov00_020e9eec: - .space 0x4 - .global data_ov00_020e9ef0 -data_ov00_020e9ef0: - .space 0x4 - .global data_ov00_020e9ef4 -data_ov00_020e9ef4: - .space 0x4 - .global data_ov00_020e9ef8 -data_ov00_020e9ef8: - .space 0x4 - .global data_ov00_020e9efc -data_ov00_020e9efc: - .space 0x4 - .global data_ov00_020e9f00 -data_ov00_020e9f00: - .space 0x4 - .global data_ov00_020e9f04 -data_ov00_020e9f04: - .space 0x4 - .global data_ov00_020e9f08 -data_ov00_020e9f08: - .space 0x4 - .global data_ov00_020e9f0c -data_ov00_020e9f0c: - .space 0x4 - .global data_ov00_020e9f10 -data_ov00_020e9f10: - .space 0x4 - .global data_ov00_020e9f14 -data_ov00_020e9f14: - .space 0x4 - .global data_ov00_020e9f18 -data_ov00_020e9f18: - .space 0x4 - .global data_ov00_020e9f1c -data_ov00_020e9f1c: - .space 0x4 - .global data_ov00_020e9f20 -data_ov00_020e9f20: - .space 0x4 - .global data_ov00_020e9f24 -data_ov00_020e9f24: - .space 0x4 - .global data_ov00_020e9f28 -data_ov00_020e9f28: - .space 0x4 - .global data_ov00_020e9f2c -data_ov00_020e9f2c: - .space 0x4 - .global data_ov00_020e9f30 -data_ov00_020e9f30: - .space 0x4 - .global data_ov00_020e9f34 -data_ov00_020e9f34: - .space 0x4 - .global data_ov00_020e9f38 -data_ov00_020e9f38: - .space 0x4 - .global data_ov00_020e9f3c -data_ov00_020e9f3c: - .space 0x4 - .global data_ov00_020e9f40 -data_ov00_020e9f40: - .space 0x4 - .global data_ov00_020e9f44 -data_ov00_020e9f44: - .space 0x4 - .global data_ov00_020e9f48 -data_ov00_020e9f48: - .space 0x4 - .global data_ov00_020e9f4c -data_ov00_020e9f4c: - .space 0x4 - .global data_ov00_020e9f50 -data_ov00_020e9f50: - .space 0x4 - .global data_ov00_020e9f54 -data_ov00_020e9f54: - .space 0x4 - .global data_ov00_020e9f58 -data_ov00_020e9f58: - .space 0x4 - .global data_ov00_020e9f5c -data_ov00_020e9f5c: - .space 0x4 - .global data_ov00_020e9f60 -data_ov00_020e9f60: - .space 0x4 - .global data_ov00_020e9f64 -data_ov00_020e9f64: - .space 0x4 - .global data_ov00_020e9f68 -data_ov00_020e9f68: - .space 0x4 - .global data_ov00_020e9f6c -data_ov00_020e9f6c: - .space 0x4 - .global data_ov00_020e9f70 -data_ov00_020e9f70: - .space 0x4 - .global data_ov00_020e9f74 -data_ov00_020e9f74: - .space 0x4 - .global data_ov00_020e9f78 -data_ov00_020e9f78: - .space 0x4 - .global data_ov00_020e9f7c -data_ov00_020e9f7c: - .space 0x4 - .global data_ov00_020e9f80 -data_ov00_020e9f80: - .space 0x4 - .global data_ov00_020e9f84 -data_ov00_020e9f84: - .space 0x4 - .global data_ov00_020e9f88 -data_ov00_020e9f88: - .space 0x4 - .global data_ov00_020e9f8c -data_ov00_020e9f8c: - .space 0x4 - .global data_ov00_020e9f90 -data_ov00_020e9f90: - .space 0x4 - .global data_ov00_020e9f94 -data_ov00_020e9f94: - .space 0x4 - .global data_ov00_020e9f98 -data_ov00_020e9f98: - .space 0x4 - .global data_ov00_020e9f9c -data_ov00_020e9f9c: - .space 0x4 - .global data_ov00_020e9fa0 -data_ov00_020e9fa0: - .space 0x4 - .global data_ov00_020e9fa4 -data_ov00_020e9fa4: - .space 0x4 - .global data_ov00_020e9fa8 -data_ov00_020e9fa8: - .space 0x4 - .global data_ov00_020e9fac -data_ov00_020e9fac: - .space 0x4 - .global data_ov00_020e9fb0 -data_ov00_020e9fb0: - .space 0x4 - .global data_ov00_020e9fb4 -data_ov00_020e9fb4: - .space 0x4 - .global data_ov00_020e9fb8 -data_ov00_020e9fb8: - .space 0x4 - .global data_ov00_020e9fbc -data_ov00_020e9fbc: - .space 0x4 - .global data_ov00_020e9fc0 -data_ov00_020e9fc0: - .space 0x4 - .global data_ov00_020e9fc4 -data_ov00_020e9fc4: - .space 0x4 - .global data_ov00_020e9fc8 -data_ov00_020e9fc8: - .space 0x4 - .global data_ov00_020e9fcc -data_ov00_020e9fcc: - .space 0x4 - .global data_ov00_020e9fd0 -data_ov00_020e9fd0: - .space 0x4 - .global data_ov00_020e9fd4 -data_ov00_020e9fd4: - .space 0x4 - .global data_ov00_020e9fd8 -data_ov00_020e9fd8: - .space 0x4 - .global data_ov00_020e9fdc -data_ov00_020e9fdc: - .space 0x4 - .global data_ov00_020e9fe0 -data_ov00_020e9fe0: - .space 0x4 - .global data_ov00_020e9fe4 -data_ov00_020e9fe4: - .space 0x4 - .global data_ov00_020e9fe8 -data_ov00_020e9fe8: - .space 0x4 - .global data_ov00_020e9fec -data_ov00_020e9fec: - .space 0x4 - .global data_ov00_020e9ff0 -data_ov00_020e9ff0: - .space 0x4 - .global data_ov00_020e9ff4 -data_ov00_020e9ff4: - .space 0x4 - .global data_ov00_020e9ff8 -data_ov00_020e9ff8: - .space 0x4 - .global data_ov00_020e9ffc -data_ov00_020e9ffc: - .space 0x4 - .global data_ov00_020ea000 -data_ov00_020ea000: - .space 0x4 - .global data_ov00_020ea004 -data_ov00_020ea004: - .space 0x4 - .global data_ov00_020ea008 -data_ov00_020ea008: - .space 0x4 - .global data_ov00_020ea00c -data_ov00_020ea00c: - .space 0x4 - .global data_ov00_020ea010 -data_ov00_020ea010: - .space 0x4 - .global data_ov00_020ea014 -data_ov00_020ea014: - .space 0x4 - .global data_ov00_020ea018 -data_ov00_020ea018: - .space 0x4 - .global data_ov00_020ea01c -data_ov00_020ea01c: - .space 0x4 - .global data_ov00_020ea020 -data_ov00_020ea020: - .space 0x4 - .global data_ov00_020ea024 -data_ov00_020ea024: - .space 0x4 - .global data_ov00_020ea028 -data_ov00_020ea028: - .space 0x4 - .global data_ov00_020ea02c -data_ov00_020ea02c: - .space 0x4 - .global data_ov00_020ea030 -data_ov00_020ea030: - .space 0x4 - .global data_ov00_020ea034 -data_ov00_020ea034: - .space 0x4 - .global data_ov00_020ea038 -data_ov00_020ea038: - .space 0x4 - .global data_ov00_020ea03c -data_ov00_020ea03c: - .space 0x4 - .global data_ov00_020ea040 -data_ov00_020ea040: - .space 0x4 - .global data_ov00_020ea044 -data_ov00_020ea044: - .space 0x4 - .global data_ov00_020ea048 -data_ov00_020ea048: - .space 0x4 - .global data_ov00_020ea04c -data_ov00_020ea04c: - .space 0x4 - .global data_ov00_020ea050 -data_ov00_020ea050: - .space 0x4 - .global data_ov00_020ea054 -data_ov00_020ea054: - .space 0x4 - .global data_ov00_020ea058 -data_ov00_020ea058: - .space 0x4 - .global data_ov00_020ea05c -data_ov00_020ea05c: - .space 0x4 - .global data_ov00_020ea060 -data_ov00_020ea060: - .space 0x4 - .global data_ov00_020ea064 -data_ov00_020ea064: - .space 0x4 - .global data_ov00_020ea068 -data_ov00_020ea068: - .space 0x4 - .global data_ov00_020ea06c -data_ov00_020ea06c: - .space 0x4 - .global data_ov00_020ea070 -data_ov00_020ea070: - .space 0x4 - .global data_ov00_020ea074 -data_ov00_020ea074: - .space 0x4 - .global data_ov00_020ea078 -data_ov00_020ea078: - .space 0x4 - .global data_ov00_020ea07c -data_ov00_020ea07c: - .space 0x4 - .global data_ov00_020ea080 -data_ov00_020ea080: - .space 0x4 - .global data_ov00_020ea084 -data_ov00_020ea084: - .space 0x4 - .global data_ov00_020ea088 -data_ov00_020ea088: - .space 0x4 - .global data_ov00_020ea08c -data_ov00_020ea08c: - .space 0x4 - .global data_ov00_020ea090 -data_ov00_020ea090: - .space 0x4 - .global data_ov00_020ea094 -data_ov00_020ea094: - .space 0x4 - .global data_ov00_020ea098 -data_ov00_020ea098: - .space 0x4 - .global data_ov00_020ea09c -data_ov00_020ea09c: - .space 0x4 - .global data_ov00_020ea0a0 -data_ov00_020ea0a0: - .space 0x4 - .global data_ov00_020ea0a4 -data_ov00_020ea0a4: - .space 0x4 - .global data_ov00_020ea0a8 -data_ov00_020ea0a8: - .space 0x4 - .global data_ov00_020ea0ac -data_ov00_020ea0ac: - .space 0x4 - .global data_ov00_020ea0b0 -data_ov00_020ea0b0: - .space 0x4 - .global data_ov00_020ea0b4 -data_ov00_020ea0b4: - .space 0x4 - .global data_ov00_020ea0b8 -data_ov00_020ea0b8: - .space 0x4 - .global data_ov00_020ea0bc -data_ov00_020ea0bc: - .space 0x4 - .global data_ov00_020ea0c0 -data_ov00_020ea0c0: - .space 0x4 - .global data_ov00_020ea0c4 -data_ov00_020ea0c4: - .space 0x4 - .global data_ov00_020ea0c8 -data_ov00_020ea0c8: - .space 0x4 - .global data_ov00_020ea0cc -data_ov00_020ea0cc: - .space 0x4 - .global data_ov00_020ea0d0 -data_ov00_020ea0d0: - .space 0x4 - .global data_ov00_020ea0d4 -data_ov00_020ea0d4: - .space 0x4 - .global data_ov00_020ea0d8 -data_ov00_020ea0d8: - .space 0x4 - .global data_ov00_020ea0dc -data_ov00_020ea0dc: - .space 0x4 - .global data_ov00_020ea0e0 -data_ov00_020ea0e0: - .space 0x4 - .global data_ov00_020ea0e4 -data_ov00_020ea0e4: - .space 0x4 - .global data_ov00_020ea0e8 -data_ov00_020ea0e8: - .space 0x4 - .global data_ov00_020ea0ec -data_ov00_020ea0ec: - .space 0x4 - .global data_ov00_020ea0f0 -data_ov00_020ea0f0: - .space 0x4 - .global data_ov00_020ea0f4 -data_ov00_020ea0f4: - .space 0x4 - .global data_ov00_020ea0f8 -data_ov00_020ea0f8: - .space 0x4 - .global data_ov00_020ea0fc -data_ov00_020ea0fc: - .space 0x4 - .global data_ov00_020ea100 -data_ov00_020ea100: - .space 0x4 - .global data_ov00_020ea104 -data_ov00_020ea104: - .space 0x4 - .global data_ov00_020ea108 -data_ov00_020ea108: - .space 0x4 - .global data_ov00_020ea10c -data_ov00_020ea10c: - .space 0x4 - .global data_ov00_020ea110 -data_ov00_020ea110: - .space 0x4 - .global data_ov00_020ea114 -data_ov00_020ea114: - .space 0x4 - .global data_ov00_020ea118 -data_ov00_020ea118: - .space 0x4 - .global data_ov00_020ea11c -data_ov00_020ea11c: - .space 0x4 - .global data_ov00_020ea120 -data_ov00_020ea120: - .space 0x4 - .global data_ov00_020ea124 -data_ov00_020ea124: - .space 0x4 - .global data_ov00_020ea128 -data_ov00_020ea128: - .space 0x4 - .global data_ov00_020ea12c -data_ov00_020ea12c: - .space 0x4 - .global data_ov00_020ea130 -data_ov00_020ea130: - .space 0x4 - .global data_ov00_020ea134 -data_ov00_020ea134: - .space 0x4 - .global data_ov00_020ea138 -data_ov00_020ea138: - .space 0x4 - .global data_ov00_020ea13c -data_ov00_020ea13c: - .space 0x4 - .global data_ov00_020ea140 -data_ov00_020ea140: - .space 0x4 - .global data_ov00_020ea144 -data_ov00_020ea144: - .space 0x4 - .global data_ov00_020ea148 -data_ov00_020ea148: - .space 0x4 - .global data_ov00_020ea14c -data_ov00_020ea14c: - .space 0x4 - .global data_ov00_020ea150 -data_ov00_020ea150: - .space 0x4 - .global data_ov00_020ea154 -data_ov00_020ea154: - .space 0x4 - .global data_ov00_020ea158 -data_ov00_020ea158: - .space 0x4 - .global data_ov00_020ea15c -data_ov00_020ea15c: - .space 0x4 - .global data_ov00_020ea160 -data_ov00_020ea160: - .space 0x4 - .global data_ov00_020ea164 -data_ov00_020ea164: - .space 0x4 - .global data_ov00_020ea168 -data_ov00_020ea168: - .space 0x4 - .global data_ov00_020ea16c -data_ov00_020ea16c: - .space 0x4 - .global data_ov00_020ea170 -data_ov00_020ea170: - .space 0x4 - .global data_ov00_020ea174 -data_ov00_020ea174: - .space 0x4 - .global data_ov00_020ea178 -data_ov00_020ea178: - .space 0x4 - .global data_ov00_020ea17c -data_ov00_020ea17c: - .space 0x4 - .global data_ov00_020ea180 -data_ov00_020ea180: - .space 0x4 - .global data_ov00_020ea184 -data_ov00_020ea184: - .space 0x4 - .global data_ov00_020ea188 -data_ov00_020ea188: - .space 0x4 - .global data_ov00_020ea18c -data_ov00_020ea18c: - .space 0x4 - .global data_ov00_020ea190 -data_ov00_020ea190: - .space 0x4 - .global data_ov00_020ea194 -data_ov00_020ea194: - .space 0x4 - .global data_ov00_020ea198 -data_ov00_020ea198: - .space 0x4 - .global data_ov00_020ea19c -data_ov00_020ea19c: - .space 0x4 - .global data_ov00_020ea1a0 -data_ov00_020ea1a0: - .space 0x4 - .global data_ov00_020ea1a4 -data_ov00_020ea1a4: - .space 0x4 - .global data_ov00_020ea1a8 -data_ov00_020ea1a8: - .space 0x4 - .global data_ov00_020ea1ac -data_ov00_020ea1ac: - .space 0x4 - .global data_ov00_020ea1b0 -data_ov00_020ea1b0: - .space 0x4 - .global data_ov00_020ea1b4 -data_ov00_020ea1b4: - .space 0x4 - .global data_ov00_020ea1b8 -data_ov00_020ea1b8: - .space 0x4 - .global data_ov00_020ea1bc -data_ov00_020ea1bc: - .space 0x4 - .global data_ov00_020ea1c0 -data_ov00_020ea1c0: - .space 0x4 - .global data_ov00_020ea1c4 -data_ov00_020ea1c4: - .space 0x4 - .global data_ov00_020ea1c8 -data_ov00_020ea1c8: - .space 0x4 - .global data_ov00_020ea1cc -data_ov00_020ea1cc: - .space 0x4 - .global data_ov00_020ea1d0 -data_ov00_020ea1d0: - .space 0x4 - .global data_ov00_020ea1d4 -data_ov00_020ea1d4: - .space 0x4 - .global data_ov00_020ea1d8 -data_ov00_020ea1d8: - .space 0x4 - .global data_ov00_020ea1dc -data_ov00_020ea1dc: - .space 0x4 - .global data_ov00_020ea1e0 -data_ov00_020ea1e0: - .space 0x4 - .global data_ov00_020ea1e4 -data_ov00_020ea1e4: - .space 0x4 - .global data_ov00_020ea1e8 -data_ov00_020ea1e8: - .space 0x4 - .global data_ov00_020ea1ec -data_ov00_020ea1ec: - .space 0x4 - .global data_ov00_020ea1f0 -data_ov00_020ea1f0: - .space 0x4 - .global data_ov00_020ea1f4 -data_ov00_020ea1f4: - .space 0x4 - .global data_ov00_020ea1f8 -data_ov00_020ea1f8: - .space 0x4 - .global data_ov00_020ea1fc -data_ov00_020ea1fc: - .space 0x4 - .global data_ov00_020ea200 -data_ov00_020ea200: - .space 0x4 - .global data_ov00_020ea204 -data_ov00_020ea204: - .space 0x4 - .global data_ov00_020ea208 -data_ov00_020ea208: - .space 0x4 - .global data_ov00_020ea20c -data_ov00_020ea20c: - .space 0x4 - .global data_ov00_020ea210 -data_ov00_020ea210: - .space 0x4 - .global data_ov00_020ea214 -data_ov00_020ea214: - .space 0x4 - .global data_ov00_020ea218 -data_ov00_020ea218: - .space 0x4 - .global data_ov00_020ea21c -data_ov00_020ea21c: - .space 0x4 - .global data_ov00_020ea220 -data_ov00_020ea220: - .space 0x4 - .global data_ov00_020ea224 -data_ov00_020ea224: - .space 0x4 - .global data_ov00_020ea228 -data_ov00_020ea228: - .space 0x4 - .global data_ov00_020ea22c -data_ov00_020ea22c: - .space 0x4 - .global data_ov00_020ea230 -data_ov00_020ea230: - .space 0x4 - .global data_ov00_020ea234 -data_ov00_020ea234: - .space 0x4 - .global data_ov00_020ea238 -data_ov00_020ea238: - .space 0x4 - .global data_ov00_020ea23c -data_ov00_020ea23c: - .space 0x4 - .global data_ov00_020ea240 -data_ov00_020ea240: - .space 0x4 - .global data_ov00_020ea244 -data_ov00_020ea244: - .space 0x4 - .global data_ov00_020ea248 -data_ov00_020ea248: - .space 0x4 - .global data_ov00_020ea24c -data_ov00_020ea24c: - .space 0x4 - .global data_ov00_020ea250 -data_ov00_020ea250: - .space 0x4 - .global data_ov00_020ea254 -data_ov00_020ea254: - .space 0x4 - .global data_ov00_020ea258 -data_ov00_020ea258: - .space 0x4 - .global data_ov00_020ea25c -data_ov00_020ea25c: - .space 0x4 - .global data_ov00_020ea260 -data_ov00_020ea260: - .space 0x4 - .global data_ov00_020ea264 -data_ov00_020ea264: - .space 0x4 - .global data_ov00_020ea268 -data_ov00_020ea268: - .space 0x4 - .global data_ov00_020ea26c -data_ov00_020ea26c: - .space 0x4 - .global data_ov00_020ea270 -data_ov00_020ea270: - .space 0x4 - .global data_ov00_020ea274 -data_ov00_020ea274: - .space 0x4 - .global data_ov00_020ea278 -data_ov00_020ea278: - .space 0x4 - .global data_ov00_020ea27c -data_ov00_020ea27c: - .space 0x4 - .global data_ov00_020ea280 -data_ov00_020ea280: - .space 0x4 - .global data_ov00_020ea284 -data_ov00_020ea284: - .space 0x4 - .global data_ov00_020ea288 -data_ov00_020ea288: - .space 0x4 - .global data_ov00_020ea28c -data_ov00_020ea28c: - .space 0x4 - .global data_ov00_020ea290 -data_ov00_020ea290: - .space 0x4 - .global data_ov00_020ea294 -data_ov00_020ea294: - .space 0x4 - .global data_ov00_020ea298 -data_ov00_020ea298: - .space 0x4 - .global data_ov00_020ea29c -data_ov00_020ea29c: - .space 0x4 - .global data_ov00_020ea2a0 -data_ov00_020ea2a0: - .space 0x4 - .global data_ov00_020ea2a4 -data_ov00_020ea2a4: - .space 0x4 - .global data_ov00_020ea2a8 -data_ov00_020ea2a8: - .space 0x4 - .global data_ov00_020ea2ac -data_ov00_020ea2ac: - .space 0x4 - .global data_ov00_020ea2b0 -data_ov00_020ea2b0: - .space 0x4 - .global data_ov00_020ea2b4 -data_ov00_020ea2b4: - .space 0x4 - .global data_ov00_020ea2b8 -data_ov00_020ea2b8: - .space 0x4 - .global data_ov00_020ea2bc -data_ov00_020ea2bc: - .space 0x4 - .global data_ov00_020ea2c0 -data_ov00_020ea2c0: - .space 0x4 - .global data_ov00_020ea2c4 -data_ov00_020ea2c4: - .space 0x4 - .global data_ov00_020ea2c8 -data_ov00_020ea2c8: - .space 0x4 - .global data_ov00_020ea2cc -data_ov00_020ea2cc: - .space 0x4 - .global data_ov00_020ea2d0 -data_ov00_020ea2d0: - .space 0x4 - .global data_ov00_020ea2d4 -data_ov00_020ea2d4: - .space 0x4 - .global data_ov00_020ea2d8 -data_ov00_020ea2d8: - .space 0x4 - .global data_ov00_020ea2dc -data_ov00_020ea2dc: - .space 0x4 - .global data_ov00_020ea2e0 -data_ov00_020ea2e0: - .space 0x4 - .global data_ov00_020ea2e4 -data_ov00_020ea2e4: - .space 0x4 - .global data_ov00_020ea2e8 -data_ov00_020ea2e8: - .space 0x4 - .global data_ov00_020ea2ec -data_ov00_020ea2ec: - .space 0x4 - .global data_ov00_020ea2f0 -data_ov00_020ea2f0: - .space 0x4 - .global data_ov00_020ea2f4 -data_ov00_020ea2f4: - .space 0x4 - .global data_ov00_020ea2f8 -data_ov00_020ea2f8: - .space 0x4 - .global data_ov00_020ea2fc -data_ov00_020ea2fc: - .space 0x4 - .global data_ov00_020ea300 -data_ov00_020ea300: - .space 0x4 - .global data_ov00_020ea304 -data_ov00_020ea304: - .space 0x4 - .global data_ov00_020ea308 -data_ov00_020ea308: - .space 0x4 - .global data_ov00_020ea30c -data_ov00_020ea30c: - .space 0x4 - .global data_ov00_020ea310 -data_ov00_020ea310: - .space 0x4 - .global data_ov00_020ea314 -data_ov00_020ea314: - .space 0x4 - .global data_ov00_020ea318 -data_ov00_020ea318: - .space 0x4 - .global data_ov00_020ea31c -data_ov00_020ea31c: - .space 0x4 - .global data_ov00_020ea320 -data_ov00_020ea320: - .space 0x4 - .global data_ov00_020ea324 -data_ov00_020ea324: - .space 0x4 - .global data_ov00_020ea328 -data_ov00_020ea328: - .space 0x4 - .global data_ov00_020ea32c -data_ov00_020ea32c: - .space 0x4 - .global data_ov00_020ea330 -data_ov00_020ea330: - .space 0x4 - .global data_ov00_020ea334 -data_ov00_020ea334: - .space 0x4 - .global data_ov00_020ea338 -data_ov00_020ea338: - .space 0x4 - .global data_ov00_020ea33c -data_ov00_020ea33c: - .space 0x4 - .global data_ov00_020ea340 -data_ov00_020ea340: - .space 0x4 - .global data_ov00_020ea344 -data_ov00_020ea344: - .space 0x4 - .global data_ov00_020ea348 -data_ov00_020ea348: - .space 0x4 - .global data_ov00_020ea34c -data_ov00_020ea34c: - .space 0x4 - .global data_ov00_020ea350 -data_ov00_020ea350: - .space 0x4 - .global data_ov00_020ea354 -data_ov00_020ea354: - .space 0x4 - .global data_ov00_020ea358 -data_ov00_020ea358: - .space 0x4 - .global data_ov00_020ea35c -data_ov00_020ea35c: - .space 0x4 - .global data_ov00_020ea360 -data_ov00_020ea360: - .space 0x4 - .global data_ov00_020ea364 -data_ov00_020ea364: - .space 0x4 - .global data_ov00_020ea368 -data_ov00_020ea368: - .space 0x4 - .global data_ov00_020ea36c -data_ov00_020ea36c: - .space 0x4 - .global data_ov00_020ea370 -data_ov00_020ea370: - .space 0x4 - .global data_ov00_020ea374 -data_ov00_020ea374: - .space 0x4 - .global data_ov00_020ea378 -data_ov00_020ea378: - .space 0x4 - .global data_ov00_020ea37c -data_ov00_020ea37c: - .space 0x4 - .global data_ov00_020ea380 -data_ov00_020ea380: - .space 0x4 - .global data_ov00_020ea384 -data_ov00_020ea384: - .space 0x4 - .global data_ov00_020ea388 -data_ov00_020ea388: - .space 0x4 - .global data_ov00_020ea38c -data_ov00_020ea38c: - .space 0x4 - .global data_ov00_020ea390 -data_ov00_020ea390: - .space 0x4 - .global data_ov00_020ea394 -data_ov00_020ea394: - .space 0x4 - .global data_ov00_020ea398 -data_ov00_020ea398: - .space 0x4 - .global data_ov00_020ea39c -data_ov00_020ea39c: - .space 0x4 - .global data_ov00_020ea3a0 -data_ov00_020ea3a0: - .space 0x4 - .global data_ov00_020ea3a4 -data_ov00_020ea3a4: - .space 0x4 - .global data_ov00_020ea3a8 -data_ov00_020ea3a8: - .space 0x4 - .global data_ov00_020ea3ac -data_ov00_020ea3ac: - .space 0x4 - .global data_ov00_020ea3b0 -data_ov00_020ea3b0: - .space 0x4 - .global data_ov00_020ea3b4 -data_ov00_020ea3b4: - .space 0x4 - .global data_ov00_020ea3b8 -data_ov00_020ea3b8: - .space 0x4 - .global data_ov00_020ea3bc -data_ov00_020ea3bc: - .space 0x4 - .global data_ov00_020ea3c0 -data_ov00_020ea3c0: - .space 0x4 - .global data_ov00_020ea3c4 -data_ov00_020ea3c4: - .space 0x4 - .global data_ov00_020ea3c8 -data_ov00_020ea3c8: - .space 0x4 - .global data_ov00_020ea3cc -data_ov00_020ea3cc: - .space 0x4 - .global data_ov00_020ea3d0 -data_ov00_020ea3d0: - .space 0x4 - .global data_ov00_020ea3d4 -data_ov00_020ea3d4: - .space 0x4 - .global data_ov00_020ea3d8 -data_ov00_020ea3d8: - .space 0x4 - .global data_ov00_020ea3dc -data_ov00_020ea3dc: - .space 0x4 - .global data_ov00_020ea3e0 -data_ov00_020ea3e0: - .space 0x4 - .global data_ov00_020ea3e4 -data_ov00_020ea3e4: - .space 0x4 - .global data_ov00_020ea3e8 -data_ov00_020ea3e8: - .space 0x4 - .global data_ov00_020ea3ec -data_ov00_020ea3ec: - .space 0x4 - .global data_ov00_020ea3f0 -data_ov00_020ea3f0: - .space 0x4 - .global data_ov00_020ea3f4 -data_ov00_020ea3f4: - .space 0x4 - .global data_ov00_020ea3f8 -data_ov00_020ea3f8: - .space 0x4 - .global data_ov00_020ea3fc -data_ov00_020ea3fc: - .space 0x4 - .global data_ov00_020ea400 -data_ov00_020ea400: - .space 0x4 - .global data_ov00_020ea404 -data_ov00_020ea404: - .space 0x4 - .global data_ov00_020ea408 -data_ov00_020ea408: - .space 0x4 - .global data_ov00_020ea40c -data_ov00_020ea40c: - .space 0x4 - .global data_ov00_020ea410 -data_ov00_020ea410: - .space 0x4 - .global data_ov00_020ea414 -data_ov00_020ea414: - .space 0x4 - .global data_ov00_020ea418 -data_ov00_020ea418: - .space 0x4 - .global data_ov00_020ea41c -data_ov00_020ea41c: - .space 0x4 - .global data_ov00_020ea420 -data_ov00_020ea420: - .space 0x4 - .global data_ov00_020ea424 -data_ov00_020ea424: - .space 0x4 - .global data_ov00_020ea428 -data_ov00_020ea428: - .space 0x4 - .global data_ov00_020ea42c -data_ov00_020ea42c: - .space 0x4 - .global data_ov00_020ea430 -data_ov00_020ea430: - .space 0x4 - .global data_ov00_020ea434 -data_ov00_020ea434: - .space 0x4 - .global data_ov00_020ea438 -data_ov00_020ea438: - .space 0x4 - .global data_ov00_020ea43c -data_ov00_020ea43c: - .space 0x4 - .global data_ov00_020ea440 -data_ov00_020ea440: - .space 0x4 - .global data_ov00_020ea444 -data_ov00_020ea444: - .space 0x4 - .global data_ov00_020ea448 -data_ov00_020ea448: - .space 0x4 - .global data_ov00_020ea44c -data_ov00_020ea44c: - .space 0x4 - .global data_ov00_020ea450 -data_ov00_020ea450: - .space 0x4 - .global data_ov00_020ea454 -data_ov00_020ea454: - .space 0x4 - .global data_ov00_020ea458 -data_ov00_020ea458: - .space 0x4 - .global data_ov00_020ea45c -data_ov00_020ea45c: - .space 0x4 - .global data_ov00_020ea460 -data_ov00_020ea460: - .space 0x4 - .global data_ov00_020ea464 -data_ov00_020ea464: - .space 0x4 - .global data_ov00_020ea468 -data_ov00_020ea468: - .space 0x4 - .global data_ov00_020ea46c -data_ov00_020ea46c: - .space 0x4 - .global data_ov00_020ea470 -data_ov00_020ea470: - .space 0x4 - .global data_ov00_020ea474 -data_ov00_020ea474: - .space 0x4 - .global data_ov00_020ea478 -data_ov00_020ea478: - .space 0x4 - .global data_ov00_020ea47c -data_ov00_020ea47c: - .space 0x4 - .global data_ov00_020ea480 -data_ov00_020ea480: - .space 0x4 - .global data_ov00_020ea484 -data_ov00_020ea484: - .space 0x4 - .global data_ov00_020ea488 -data_ov00_020ea488: - .space 0x4 - .global data_ov00_020ea48c -data_ov00_020ea48c: - .space 0x4 - .global data_ov00_020ea490 -data_ov00_020ea490: - .space 0x4 - .global data_ov00_020ea494 -data_ov00_020ea494: - .space 0x4 - .global data_ov00_020ea498 -data_ov00_020ea498: - .space 0x4 - .global data_ov00_020ea49c -data_ov00_020ea49c: - .space 0x4 - .global data_ov00_020ea4a0 -data_ov00_020ea4a0: - .space 0x4 - .global data_ov00_020ea4a4 -data_ov00_020ea4a4: - .space 0x4 - .global data_ov00_020ea4a8 -data_ov00_020ea4a8: - .space 0x4 - .global data_ov00_020ea4ac -data_ov00_020ea4ac: - .space 0x4 - .global data_ov00_020ea4b0 -data_ov00_020ea4b0: - .space 0x4 - .global data_ov00_020ea4b4 -data_ov00_020ea4b4: - .space 0x4 - .global data_ov00_020ea4b8 -data_ov00_020ea4b8: - .space 0x4 - .global data_ov00_020ea4bc -data_ov00_020ea4bc: - .space 0x4 - .global data_ov00_020ea4c0 -data_ov00_020ea4c0: - .space 0x4 - .global data_ov00_020ea4c4 -data_ov00_020ea4c4: - .space 0x4 - .global data_ov00_020ea4c8 -data_ov00_020ea4c8: - .space 0x4 - .global data_ov00_020ea4cc -data_ov00_020ea4cc: - .space 0x4 - .global data_ov00_020ea4d0 -data_ov00_020ea4d0: - .space 0x4 - .global data_ov00_020ea4d4 -data_ov00_020ea4d4: - .space 0x4 - .global data_ov00_020ea4d8 -data_ov00_020ea4d8: - .space 0x4 - .global data_ov00_020ea4dc -data_ov00_020ea4dc: - .space 0x4 - .global data_ov00_020ea4e0 -data_ov00_020ea4e0: - .space 0x4 - .global data_ov00_020ea4e4 -data_ov00_020ea4e4: - .space 0x4 - .global data_ov00_020ea4e8 -data_ov00_020ea4e8: - .space 0x4 - .global data_ov00_020ea4ec -data_ov00_020ea4ec: - .space 0x4 - .global data_ov00_020ea4f0 -data_ov00_020ea4f0: - .space 0x4 - .global data_ov00_020ea4f4 -data_ov00_020ea4f4: - .space 0x4 - .global data_ov00_020ea4f8 -data_ov00_020ea4f8: - .space 0x4 - .global data_ov00_020ea4fc -data_ov00_020ea4fc: - .space 0x4 - .global data_ov00_020ea500 -data_ov00_020ea500: - .space 0x4 - .global data_ov00_020ea504 -data_ov00_020ea504: - .space 0x4 - .global data_ov00_020ea508 -data_ov00_020ea508: - .space 0x4 - .global data_ov00_020ea50c -data_ov00_020ea50c: - .space 0x4 - .global data_ov00_020ea510 -data_ov00_020ea510: - .space 0x4 - .global data_ov00_020ea514 -data_ov00_020ea514: - .space 0x4 - .global data_ov00_020ea518 -data_ov00_020ea518: - .space 0x4 - .global data_ov00_020ea51c -data_ov00_020ea51c: - .space 0x4 - .global data_ov00_020ea520 -data_ov00_020ea520: - .space 0x4 - .global data_ov00_020ea524 -data_ov00_020ea524: - .space 0x4 - .global data_ov00_020ea528 -data_ov00_020ea528: - .space 0x4 - .global data_ov00_020ea52c -data_ov00_020ea52c: - .space 0x4 - .global data_ov00_020ea530 -data_ov00_020ea530: - .space 0x4 - .global data_ov00_020ea534 -data_ov00_020ea534: - .space 0x4 - .global data_ov00_020ea538 -data_ov00_020ea538: - .space 0x4 - .global data_ov00_020ea53c -data_ov00_020ea53c: - .space 0x4 - .global data_ov00_020ea540 -data_ov00_020ea540: - .space 0x4 - .global data_ov00_020ea544 -data_ov00_020ea544: - .space 0x4 - .global data_ov00_020ea548 -data_ov00_020ea548: - .space 0x4 - .global data_ov00_020ea54c -data_ov00_020ea54c: - .space 0x4 - .global data_ov00_020ea550 -data_ov00_020ea550: - .space 0x4 - .global data_ov00_020ea554 -data_ov00_020ea554: - .space 0x4 - .global data_ov00_020ea558 -data_ov00_020ea558: - .space 0x4 - .global data_ov00_020ea55c -data_ov00_020ea55c: - .space 0x4 - .global data_ov00_020ea560 -data_ov00_020ea560: - .space 0x4 - .global data_ov00_020ea564 -data_ov00_020ea564: - .space 0x4 - .global data_ov00_020ea568 -data_ov00_020ea568: - .space 0x4 - .global data_ov00_020ea56c -data_ov00_020ea56c: - .space 0x4 - .global data_ov00_020ea570 -data_ov00_020ea570: - .space 0x4 - .global data_ov00_020ea574 -data_ov00_020ea574: - .space 0x4 - .global data_ov00_020ea578 -data_ov00_020ea578: - .space 0x4 - .global data_ov00_020ea57c -data_ov00_020ea57c: - .space 0x4 - .global data_ov00_020ea580 -data_ov00_020ea580: - .space 0x4 - .global data_ov00_020ea584 -data_ov00_020ea584: - .space 0x4 - .global data_ov00_020ea588 -data_ov00_020ea588: - .space 0x4 - .global data_ov00_020ea58c -data_ov00_020ea58c: - .space 0x4 - .global data_ov00_020ea590 -data_ov00_020ea590: - .space 0x4 - .global data_ov00_020ea594 -data_ov00_020ea594: - .space 0x4 - .global data_ov00_020ea598 -data_ov00_020ea598: - .space 0x4 - .global data_ov00_020ea59c -data_ov00_020ea59c: - .space 0x4 - .global data_ov00_020ea5a0 -data_ov00_020ea5a0: - .space 0x4 - .global data_ov00_020ea5a4 -data_ov00_020ea5a4: - .space 0x4 - .global data_ov00_020ea5a8 -data_ov00_020ea5a8: - .space 0x4 - .global data_ov00_020ea5ac -data_ov00_020ea5ac: - .space 0x4 - .global data_ov00_020ea5b0 -data_ov00_020ea5b0: - .space 0x4 - .global data_ov00_020ea5b4 -data_ov00_020ea5b4: - .space 0x4 - .global data_ov00_020ea5b8 -data_ov00_020ea5b8: - .space 0x4 - .global data_ov00_020ea5bc -data_ov00_020ea5bc: - .space 0x4 - .global data_ov00_020ea5c0 -data_ov00_020ea5c0: - .space 0x4 - .global data_ov00_020ea5c4 -data_ov00_020ea5c4: - .space 0x4 - .global data_ov00_020ea5c8 -data_ov00_020ea5c8: - .space 0x4 - .global data_ov00_020ea5cc -data_ov00_020ea5cc: - .space 0x4 - .global data_ov00_020ea5d0 -data_ov00_020ea5d0: - .space 0x4 - .global data_ov00_020ea5d4 -data_ov00_020ea5d4: - .space 0x4 - .global data_ov00_020ea5d8 -data_ov00_020ea5d8: - .space 0x4 - .global data_ov00_020ea5dc -data_ov00_020ea5dc: - .space 0x4 - .global data_ov00_020ea5e0 -data_ov00_020ea5e0: - .space 0x4 - .global data_ov00_020ea5e4 -data_ov00_020ea5e4: - .space 0x4 - .global data_ov00_020ea5e8 -data_ov00_020ea5e8: - .space 0x4 - .global data_ov00_020ea5ec -data_ov00_020ea5ec: - .space 0x4 - .global data_ov00_020ea5f0 -data_ov00_020ea5f0: - .space 0x4 - .global data_ov00_020ea5f4 -data_ov00_020ea5f4: - .space 0x4 - .global data_ov00_020ea5f8 -data_ov00_020ea5f8: - .space 0x4 - .global data_ov00_020ea5fc -data_ov00_020ea5fc: - .space 0x4 - .global data_ov00_020ea600 -data_ov00_020ea600: - .space 0x4 - .global data_ov00_020ea604 -data_ov00_020ea604: - .space 0x4 - .global data_ov00_020ea608 -data_ov00_020ea608: - .space 0x4 - .global data_ov00_020ea60c -data_ov00_020ea60c: - .space 0x4 - .global data_ov00_020ea610 -data_ov00_020ea610: - .space 0x4 - .global data_ov00_020ea614 -data_ov00_020ea614: - .space 0x4 - .global data_ov00_020ea618 -data_ov00_020ea618: - .space 0x4 - .global data_ov00_020ea61c -data_ov00_020ea61c: - .space 0x4 - .global data_ov00_020ea620 -data_ov00_020ea620: - .space 0x4 - .global data_ov00_020ea624 -data_ov00_020ea624: - .space 0x4 - .global data_ov00_020ea628 -data_ov00_020ea628: - .space 0x4 - .global data_ov00_020ea62c -data_ov00_020ea62c: - .space 0x4 - .global data_ov00_020ea630 -data_ov00_020ea630: - .space 0x4 - .global data_ov00_020ea634 -data_ov00_020ea634: - .space 0x4 - .global data_ov00_020ea638 -data_ov00_020ea638: - .space 0x4 - .global data_ov00_020ea63c -data_ov00_020ea63c: - .space 0x4 - .global data_ov00_020ea640 -data_ov00_020ea640: - .space 0x4 - .global data_ov00_020ea644 -data_ov00_020ea644: - .space 0x4 - .global data_ov00_020ea648 -data_ov00_020ea648: - .space 0x4 - .global data_ov00_020ea64c -data_ov00_020ea64c: - .space 0x4 - .global data_ov00_020ea650 -data_ov00_020ea650: - .space 0x4 - .global data_ov00_020ea654 -data_ov00_020ea654: - .space 0x4 - .global data_ov00_020ea658 -data_ov00_020ea658: - .space 0x4 - .global data_ov00_020ea65c -data_ov00_020ea65c: - .space 0x4 - .global data_ov00_020ea660 -data_ov00_020ea660: - .space 0x4 - .global data_ov00_020ea664 -data_ov00_020ea664: - .space 0x4 - .global data_ov00_020ea668 -data_ov00_020ea668: - .space 0x4 - .global data_ov00_020ea66c -data_ov00_020ea66c: - .space 0x4 - .global data_ov00_020ea670 -data_ov00_020ea670: - .space 0x4 - .global data_ov00_020ea674 -data_ov00_020ea674: - .space 0x4 - .global data_ov00_020ea678 -data_ov00_020ea678: - .space 0x4 - .global data_ov00_020ea67c -data_ov00_020ea67c: - .space 0x4 - .global data_ov00_020ea680 -data_ov00_020ea680: - .space 0x4 - .global data_ov00_020ea684 -data_ov00_020ea684: - .space 0x4 - .global data_ov00_020ea688 -data_ov00_020ea688: - .space 0x4 - .global data_ov00_020ea68c -data_ov00_020ea68c: - .space 0x4 - .global data_ov00_020ea690 -data_ov00_020ea690: - .space 0x4 - .global data_ov00_020ea694 -data_ov00_020ea694: - .space 0x4 - .global data_ov00_020ea698 -data_ov00_020ea698: - .space 0x4 - .global data_ov00_020ea69c -data_ov00_020ea69c: - .space 0x4 - .global data_ov00_020ea6a0 -data_ov00_020ea6a0: - .space 0x4 - .global data_ov00_020ea6a4 -data_ov00_020ea6a4: - .space 0x4 - .global data_ov00_020ea6a8 -data_ov00_020ea6a8: - .space 0x4 - .global data_ov00_020ea6ac -data_ov00_020ea6ac: - .space 0x4 - .global data_ov00_020ea6b0 -data_ov00_020ea6b0: - .space 0x4 - .global data_ov00_020ea6b4 -data_ov00_020ea6b4: - .space 0x4 - .global data_ov00_020ea6b8 -data_ov00_020ea6b8: - .space 0x4 - .global data_ov00_020ea6bc -data_ov00_020ea6bc: - .space 0x4 - .global data_ov00_020ea6c0 -data_ov00_020ea6c0: - .space 0x4 - .global data_ov00_020ea6c4 -data_ov00_020ea6c4: - .space 0x4 - .global data_ov00_020ea6c8 -data_ov00_020ea6c8: - .space 0x4 - .global data_ov00_020ea6cc -data_ov00_020ea6cc: - .space 0x4 - .global data_ov00_020ea6d0 -data_ov00_020ea6d0: - .space 0x4 - .global data_ov00_020ea6d4 -data_ov00_020ea6d4: - .space 0x4 - .global data_ov00_020ea6d8 -data_ov00_020ea6d8: - .space 0x4 - .global data_ov00_020ea6dc -data_ov00_020ea6dc: - .space 0x4 - .global data_ov00_020ea6e0 -data_ov00_020ea6e0: - .space 0x4 - .global data_ov00_020ea6e4 -data_ov00_020ea6e4: - .space 0x4 - .global data_ov00_020ea6e8 -data_ov00_020ea6e8: - .space 0x4 - .global data_ov00_020ea6ec -data_ov00_020ea6ec: - .space 0x4 - .global data_ov00_020ea6f0 -data_ov00_020ea6f0: - .space 0x4 - .global data_ov00_020ea6f4 -data_ov00_020ea6f4: - .space 0x4 - .global data_ov00_020ea6f8 -data_ov00_020ea6f8: - .space 0x4 - .global data_ov00_020ea6fc -data_ov00_020ea6fc: - .space 0x4 - .global data_ov00_020ea700 -data_ov00_020ea700: - .space 0x4 - .global data_ov00_020ea704 -data_ov00_020ea704: - .space 0x4 - .global data_ov00_020ea708 -data_ov00_020ea708: - .space 0x4 - .global data_ov00_020ea70c -data_ov00_020ea70c: - .space 0x4 - .global data_ov00_020ea710 -data_ov00_020ea710: - .space 0x4 - .global data_ov00_020ea714 -data_ov00_020ea714: - .space 0x4 - .global data_ov00_020ea718 -data_ov00_020ea718: - .space 0x4 - .global data_ov00_020ea71c -data_ov00_020ea71c: - .space 0x4 - .global data_ov00_020ea720 -data_ov00_020ea720: - .space 0x4 - .global data_ov00_020ea724 -data_ov00_020ea724: - .space 0x4 - .global data_ov00_020ea728 -data_ov00_020ea728: - .space 0x4 - .global data_ov00_020ea72c -data_ov00_020ea72c: - .space 0x4 - .global data_ov00_020ea730 -data_ov00_020ea730: - .space 0x4 - .global data_ov00_020ea734 -data_ov00_020ea734: - .space 0x4 - .global data_ov00_020ea738 -data_ov00_020ea738: - .space 0x4 - .global data_ov00_020ea73c -data_ov00_020ea73c: - .space 0x4 - .global data_ov00_020ea740 -data_ov00_020ea740: - .space 0x4 - .global data_ov00_020ea744 -data_ov00_020ea744: - .space 0x4 - .global data_ov00_020ea748 -data_ov00_020ea748: - .space 0x4 - .global data_ov00_020ea74c -data_ov00_020ea74c: - .space 0x4 - .global data_ov00_020ea750 -data_ov00_020ea750: - .space 0x4 - .global data_ov00_020ea754 -data_ov00_020ea754: - .space 0x4 - .global data_ov00_020ea758 -data_ov00_020ea758: - .space 0x4 - .global data_ov00_020ea75c -data_ov00_020ea75c: - .space 0x4 - .global data_ov00_020ea760 -data_ov00_020ea760: - .space 0x4 - .global data_ov00_020ea764 -data_ov00_020ea764: - .space 0x4 - .global data_ov00_020ea768 -data_ov00_020ea768: - .space 0x4 - .global data_ov00_020ea76c -data_ov00_020ea76c: - .space 0x4 - .global data_ov00_020ea770 -data_ov00_020ea770: - .space 0x4 - .global data_ov00_020ea774 -data_ov00_020ea774: - .space 0x4 - .global data_ov00_020ea778 -data_ov00_020ea778: - .space 0x4 - .global data_ov00_020ea77c -data_ov00_020ea77c: - .space 0x4 - .global data_ov00_020ea780 -data_ov00_020ea780: - .space 0x4 - .global data_ov00_020ea784 -data_ov00_020ea784: - .space 0x4 - .global data_ov00_020ea788 -data_ov00_020ea788: - .space 0x4 - .global data_ov00_020ea78c -data_ov00_020ea78c: - .space 0x4 - .global data_ov00_020ea790 -data_ov00_020ea790: - .space 0x4 - .global data_ov00_020ea794 -data_ov00_020ea794: - .space 0x4 - .global data_ov00_020ea798 -data_ov00_020ea798: - .space 0x4 - .global data_ov00_020ea79c -data_ov00_020ea79c: - .space 0x4 - .global data_ov00_020ea7a0 -data_ov00_020ea7a0: - .space 0x4 - .global data_ov00_020ea7a4 -data_ov00_020ea7a4: - .space 0x4 - .global data_ov00_020ea7a8 -data_ov00_020ea7a8: - .space 0x4 - .global data_ov00_020ea7ac -data_ov00_020ea7ac: - .space 0x4 - .global data_ov00_020ea7b0 -data_ov00_020ea7b0: - .space 0x4 - .global data_ov00_020ea7b4 -data_ov00_020ea7b4: - .space 0x4 - .global data_ov00_020ea7b8 -data_ov00_020ea7b8: - .space 0x4 - .global data_ov00_020ea7bc -data_ov00_020ea7bc: - .space 0x4 - .global data_ov00_020ea7c0 -data_ov00_020ea7c0: - .space 0x4 - .global data_ov00_020ea7c4 -data_ov00_020ea7c4: - .space 0x4 - .global data_ov00_020ea7c8 -data_ov00_020ea7c8: - .space 0x4 - .global data_ov00_020ea7cc -data_ov00_020ea7cc: - .space 0x4 - .global data_ov00_020ea7d0 -data_ov00_020ea7d0: - .space 0x4 - .global data_ov00_020ea7d4 -data_ov00_020ea7d4: - .space 0x4 - .global data_ov00_020ea7d8 -data_ov00_020ea7d8: - .space 0x4 - .global data_ov00_020ea7dc -data_ov00_020ea7dc: - .space 0x4 - .global data_ov00_020ea7e0 -data_ov00_020ea7e0: - .space 0x4 - .global data_ov00_020ea7e4 -data_ov00_020ea7e4: - .space 0x4 - .global data_ov00_020ea7e8 -data_ov00_020ea7e8: - .space 0x4 - .global data_ov00_020ea7ec -data_ov00_020ea7ec: - .space 0x4 - .global data_ov00_020ea7f0 -data_ov00_020ea7f0: - .space 0x4 - .global data_ov00_020ea7f4 -data_ov00_020ea7f4: - .space 0x4 - .global data_ov00_020ea7f8 -data_ov00_020ea7f8: - .space 0x4 - .global data_ov00_020ea7fc -data_ov00_020ea7fc: - .space 0x4 - .global data_ov00_020ea800 -data_ov00_020ea800: - .space 0x4 - .global data_ov00_020ea804 -data_ov00_020ea804: - .space 0x4 - .global data_ov00_020ea808 -data_ov00_020ea808: - .space 0x4 - .global data_ov00_020ea80c -data_ov00_020ea80c: - .space 0x4 - .global data_ov00_020ea810 -data_ov00_020ea810: - .space 0x4 - .global data_ov00_020ea814 -data_ov00_020ea814: - .space 0x4 - .global data_ov00_020ea818 -data_ov00_020ea818: - .space 0x4 - .global data_ov00_020ea81c -data_ov00_020ea81c: - .space 0x4 - .global data_ov00_020ea820 -data_ov00_020ea820: - .space 0x4 - .global data_ov00_020ea824 -data_ov00_020ea824: - .space 0x4 - .global data_ov00_020ea828 -data_ov00_020ea828: - .space 0x4 - .global data_ov00_020ea82c -data_ov00_020ea82c: - .space 0x4 - .global data_ov00_020ea830 -data_ov00_020ea830: - .space 0x4 - .global data_ov00_020ea834 -data_ov00_020ea834: - .space 0x4 - .global data_ov00_020ea838 -data_ov00_020ea838: - .space 0x4 - .global data_ov00_020ea83c -data_ov00_020ea83c: - .space 0x4 - .global data_ov00_020ea840 -data_ov00_020ea840: - .space 0x4 - .global data_ov00_020ea844 -data_ov00_020ea844: - .space 0x4 - .global data_ov00_020ea848 -data_ov00_020ea848: - .space 0x4 - .global data_ov00_020ea84c -data_ov00_020ea84c: - .space 0x4 - .global data_ov00_020ea850 -data_ov00_020ea850: - .space 0x4 - .global data_ov00_020ea854 -data_ov00_020ea854: - .space 0x4 - .global data_ov00_020ea858 -data_ov00_020ea858: - .space 0x4 - .global data_ov00_020ea85c -data_ov00_020ea85c: - .space 0x4 - .global data_ov00_020ea860 -data_ov00_020ea860: - .space 0x4 - .global data_ov00_020ea864 -data_ov00_020ea864: - .space 0x4 - .global data_ov00_020ea868 -data_ov00_020ea868: - .space 0x4 - .global data_ov00_020ea86c -data_ov00_020ea86c: - .space 0x4 - .global data_ov00_020ea870 -data_ov00_020ea870: - .space 0x4 - .global data_ov00_020ea874 -data_ov00_020ea874: - .space 0x4 - .global data_ov00_020ea878 -data_ov00_020ea878: - .space 0x4 - .global data_ov00_020ea87c -data_ov00_020ea87c: - .space 0x4 - .global data_ov00_020ea880 -data_ov00_020ea880: - .space 0x4 - .global data_ov00_020ea884 -data_ov00_020ea884: - .space 0x4 - .global data_ov00_020ea888 -data_ov00_020ea888: - .space 0x4 - .global data_ov00_020ea88c -data_ov00_020ea88c: - .space 0x4 - .global data_ov00_020ea890 -data_ov00_020ea890: - .space 0x4 - .global data_ov00_020ea894 -data_ov00_020ea894: - .space 0x4 - .global data_ov00_020ea898 -data_ov00_020ea898: - .space 0x4 - .global data_ov00_020ea89c -data_ov00_020ea89c: - .space 0x4 - .global data_ov00_020ea8a0 -data_ov00_020ea8a0: - .space 0x4 - .global data_ov00_020ea8a4 -data_ov00_020ea8a4: - .space 0x4 - .global data_ov00_020ea8a8 -data_ov00_020ea8a8: - .space 0x4 - .global data_ov00_020ea8ac -data_ov00_020ea8ac: - .space 0x4 - .global data_ov00_020ea8b0 -data_ov00_020ea8b0: - .space 0x4 - .global data_ov00_020ea8b4 -data_ov00_020ea8b4: - .space 0x4 - .global data_ov00_020ea8b8 -data_ov00_020ea8b8: - .space 0x4 - .global data_ov00_020ea8bc -data_ov00_020ea8bc: - .space 0x4 - .global data_ov00_020ea8c0 -data_ov00_020ea8c0: - .space 0x4 - .global data_ov00_020ea8c4 -data_ov00_020ea8c4: - .space 0x4 - .global data_ov00_020ea8c8 -data_ov00_020ea8c8: - .space 0x4 - .global data_ov00_020ea8cc -data_ov00_020ea8cc: - .space 0x4 - .global data_ov00_020ea8d0 -data_ov00_020ea8d0: - .space 0x4 - .global data_ov00_020ea8d4 -data_ov00_020ea8d4: - .space 0x4 - .global data_ov00_020ea8d8 -data_ov00_020ea8d8: - .space 0x4 - .global data_ov00_020ea8dc -data_ov00_020ea8dc: - .space 0x4 - .global data_ov00_020ea8e0 -data_ov00_020ea8e0: - .space 0x4 - .global data_ov00_020ea8e4 -data_ov00_020ea8e4: - .space 0x4 - .global data_ov00_020ea8e8 -data_ov00_020ea8e8: - .space 0x4 - .global data_ov00_020ea8ec -data_ov00_020ea8ec: - .space 0x4 - .global data_ov00_020ea8f0 -data_ov00_020ea8f0: - .space 0x4 - .global data_ov00_020ea8f4 -data_ov00_020ea8f4: - .space 0x4 - .global data_ov00_020ea8f8 -data_ov00_020ea8f8: - .space 0x4 - .global data_ov00_020ea8fc -data_ov00_020ea8fc: - .space 0x4 - .global data_ov00_020ea900 -data_ov00_020ea900: - .space 0x4 - .global data_ov00_020ea904 -data_ov00_020ea904: - .space 0x4 - .global data_ov00_020ea908 -data_ov00_020ea908: - .space 0x4 - .global data_ov00_020ea90c -data_ov00_020ea90c: - .space 0x4 - .global data_ov00_020ea910 -data_ov00_020ea910: - .space 0x4 - .global data_ov00_020ea914 -data_ov00_020ea914: - .space 0x4 - .global data_ov00_020ea918 -data_ov00_020ea918: - .space 0x4 - .global data_ov00_020ea91c -data_ov00_020ea91c: - .space 0x4 - .global data_ov00_020ea920 -data_ov00_020ea920: - .space 0x4 - .global data_ov00_020ea924 -data_ov00_020ea924: - .space 0x4 - .global data_ov00_020ea928 -data_ov00_020ea928: - .space 0x4 - .global data_ov00_020ea92c -data_ov00_020ea92c: - .space 0x4 - .global data_ov00_020ea930 -data_ov00_020ea930: - .space 0x4 - .global data_ov00_020ea934 -data_ov00_020ea934: - .space 0x4 - .global data_ov00_020ea938 -data_ov00_020ea938: - .space 0x4 - .global data_ov00_020ea93c -data_ov00_020ea93c: - .space 0x4 - .global data_ov00_020ea940 -data_ov00_020ea940: - .space 0x4 - .global data_ov00_020ea944 -data_ov00_020ea944: - .space 0x4 - .global data_ov00_020ea948 -data_ov00_020ea948: - .space 0x4 - .global data_ov00_020ea94c -data_ov00_020ea94c: - .space 0x4 - .global data_ov00_020ea950 -data_ov00_020ea950: - .space 0x4 - .global data_ov00_020ea954 -data_ov00_020ea954: - .space 0x4 - .global data_ov00_020ea958 -data_ov00_020ea958: - .space 0x4 - .global data_ov00_020ea95c -data_ov00_020ea95c: - .space 0x4 - .global data_ov00_020ea960 -data_ov00_020ea960: - .space 0x4 - .global data_ov00_020ea964 -data_ov00_020ea964: - .space 0x4 - .global data_ov00_020ea968 -data_ov00_020ea968: - .space 0x4 - .global data_ov00_020ea96c -data_ov00_020ea96c: - .space 0x4 - .global data_ov00_020ea970 -data_ov00_020ea970: - .space 0x4 - .global data_ov00_020ea974 -data_ov00_020ea974: - .space 0x4 - .global data_ov00_020ea978 -data_ov00_020ea978: - .space 0x4 - .global data_ov00_020ea97c -data_ov00_020ea97c: - .space 0x4 - .global data_ov00_020ea980 -data_ov00_020ea980: - .space 0x4 - .global data_ov00_020ea984 -data_ov00_020ea984: - .space 0x4 - .global data_ov00_020ea988 -data_ov00_020ea988: - .space 0x4 - .global data_ov00_020ea98c -data_ov00_020ea98c: - .space 0x4 - .global data_ov00_020ea990 -data_ov00_020ea990: - .space 0x4 - .global data_ov00_020ea994 -data_ov00_020ea994: - .space 0x4 - .global data_ov00_020ea998 -data_ov00_020ea998: - .space 0x4 - .global data_ov00_020ea99c -data_ov00_020ea99c: - .space 0x4 - .global data_ov00_020ea9a0 -data_ov00_020ea9a0: - .space 0x4 - .global data_ov00_020ea9a4 -data_ov00_020ea9a4: - .space 0x4 - .global data_ov00_020ea9a8 -data_ov00_020ea9a8: - .space 0x4 - .global data_ov00_020ea9ac -data_ov00_020ea9ac: - .space 0x4 - .global data_ov00_020ea9b0 -data_ov00_020ea9b0: - .space 0x4 - .global data_ov00_020ea9b4 -data_ov00_020ea9b4: - .space 0x4 - .global data_ov00_020ea9b8 -data_ov00_020ea9b8: - .space 0x4 - .global data_ov00_020ea9bc -data_ov00_020ea9bc: - .space 0x4 - .global data_ov00_020ea9c0 -data_ov00_020ea9c0: - .space 0x4 - .global data_ov00_020ea9c4 -data_ov00_020ea9c4: - .space 0x4 - .global data_ov00_020ea9c8 -data_ov00_020ea9c8: - .space 0x4 - .global data_ov00_020ea9cc -data_ov00_020ea9cc: - .space 0x4 - .global data_ov00_020ea9d0 -data_ov00_020ea9d0: - .space 0x4 - .global data_ov00_020ea9d4 -data_ov00_020ea9d4: - .space 0x4 - .global data_ov00_020ea9d8 -data_ov00_020ea9d8: - .space 0x4 - .global data_ov00_020ea9dc -data_ov00_020ea9dc: - .space 0x4 - .global data_ov00_020ea9e0 -data_ov00_020ea9e0: - .space 0x4 - .global data_ov00_020ea9e4 -data_ov00_020ea9e4: - .space 0x4 - .global data_ov00_020ea9e8 -data_ov00_020ea9e8: - .space 0x4 - .global data_ov00_020ea9ec -data_ov00_020ea9ec: - .space 0x4 - .global data_ov00_020ea9f0 -data_ov00_020ea9f0: - .space 0x4 - .global data_ov00_020ea9f4 -data_ov00_020ea9f4: - .space 0x4 - .global data_ov00_020ea9f8 -data_ov00_020ea9f8: - .space 0x4 - .global data_ov00_020ea9fc -data_ov00_020ea9fc: - .space 0x4 - .global data_ov00_020eaa00 -data_ov00_020eaa00: - .space 0x4 - .global data_ov00_020eaa04 -data_ov00_020eaa04: - .space 0x4 - .global data_ov00_020eaa08 -data_ov00_020eaa08: - .space 0x4 - .global data_ov00_020eaa0c -data_ov00_020eaa0c: - .space 0x4 - .global data_ov00_020eaa10 -data_ov00_020eaa10: - .space 0x4 - .global data_ov00_020eaa14 -data_ov00_020eaa14: - .space 0x4 - .global data_ov00_020eaa18 -data_ov00_020eaa18: - .space 0x4 - .global data_ov00_020eaa1c -data_ov00_020eaa1c: - .space 0x4 - .global data_ov00_020eaa20 -data_ov00_020eaa20: - .space 0x4 - .global data_ov00_020eaa24 -data_ov00_020eaa24: - .space 0x4 - .global data_ov00_020eaa28 -data_ov00_020eaa28: - .space 0x4 - .global data_ov00_020eaa2c -data_ov00_020eaa2c: - .space 0x4 - .global data_ov00_020eaa30 -data_ov00_020eaa30: - .space 0x4 - .global data_ov00_020eaa34 -data_ov00_020eaa34: - .space 0x4 - .global data_ov00_020eaa38 -data_ov00_020eaa38: - .space 0x4 - .global data_ov00_020eaa3c -data_ov00_020eaa3c: - .space 0x4 - .global data_ov00_020eaa40 -data_ov00_020eaa40: - .space 0x4 - .global data_ov00_020eaa44 -data_ov00_020eaa44: - .space 0x4 - .global data_ov00_020eaa48 -data_ov00_020eaa48: - .space 0x4 - .global data_ov00_020eaa4c -data_ov00_020eaa4c: - .space 0x4 - .global data_ov00_020eaa50 -data_ov00_020eaa50: - .space 0x4 - .global data_ov00_020eaa54 -data_ov00_020eaa54: - .space 0x4 - .global data_ov00_020eaa58 -data_ov00_020eaa58: - .space 0x4 - .global data_ov00_020eaa5c -data_ov00_020eaa5c: - .space 0x4 - .global data_ov00_020eaa60 -data_ov00_020eaa60: - .space 0x4 - .global data_ov00_020eaa64 -data_ov00_020eaa64: - .space 0x4 - .global data_ov00_020eaa68 -data_ov00_020eaa68: - .space 0x4 - .global data_ov00_020eaa6c -data_ov00_020eaa6c: - .space 0x4 - .global data_ov00_020eaa70 -data_ov00_020eaa70: - .space 0x4 - .global data_ov00_020eaa74 -data_ov00_020eaa74: - .space 0x4 - .global data_ov00_020eaa78 -data_ov00_020eaa78: - .space 0x4 - .global data_ov00_020eaa7c -data_ov00_020eaa7c: - .space 0x4 - .global data_ov00_020eaa80 -data_ov00_020eaa80: - .space 0x4 - .global data_ov00_020eaa84 -data_ov00_020eaa84: - .space 0x4 - .global data_ov00_020eaa88 -data_ov00_020eaa88: - .space 0x4 - .global data_ov00_020eaa8c -data_ov00_020eaa8c: - .space 0x4 - .global data_ov00_020eaa90 -data_ov00_020eaa90: - .space 0x4 - .global data_ov00_020eaa94 -data_ov00_020eaa94: - .space 0x4 - .global data_ov00_020eaa98 -data_ov00_020eaa98: - .space 0x4 - .global data_ov00_020eaa9c -data_ov00_020eaa9c: - .space 0x4 - .global data_ov00_020eaaa0 -data_ov00_020eaaa0: - .space 0x4 - .global data_ov00_020eaaa4 -data_ov00_020eaaa4: - .space 0x4 - .global data_ov00_020eaaa8 -data_ov00_020eaaa8: - .space 0x4 - .global data_ov00_020eaaac -data_ov00_020eaaac: - .space 0x4 - .global data_ov00_020eaab0 -data_ov00_020eaab0: - .space 0x4 - .global data_ov00_020eaab4 -data_ov00_020eaab4: - .space 0x4 - .global data_ov00_020eaab8 -data_ov00_020eaab8: - .space 0x4 - .global data_ov00_020eaabc -data_ov00_020eaabc: - .space 0x4 - .global data_ov00_020eaac0 -data_ov00_020eaac0: - .space 0x4 - .sbss - .global data_ov00_020ec718 -data_ov00_020ec718: - .space 0x3c - .global data_ov00_020ec754 -data_ov00_020ec754: - .space 0x4 - .global data_ov00_020ec758 -data_ov00_020ec758: - .space 0x40 - .global data_ov00_020ec798 -data_ov00_020ec798: - .space 0x44 - .global data_ov00_020ec7dc -data_ov00_020ec7dc: - .space 0x12 - .global data_ov00_020ec7ee -data_ov00_020ec7ee: - .space 0x1 - .global data_ov00_020ec7ef -data_ov00_020ec7ef: - .space 0x1 - .global data_ov00_020ec7f0 -data_ov00_020ec7f0: - .space 0x2c - .global data_ov00_020ec81c -data_ov00_020ec81c: - .space 0x4 - .global data_ov00_020ec820 -data_ov00_020ec820: - .space 0x4 - .global data_ov00_020ec824 -data_ov00_020ec824: - .space 0x4 - .global data_ov00_020ec828 -data_ov00_020ec828: - .space 0x4 - .global data_ov00_020ec82c -data_ov00_020ec82c: - .space 0x4 - .global data_ov00_020ec830 -data_ov00_020ec830: - .space 0x4 - .global data_ov00_020ec834 -data_ov00_020ec834: - .space 0x4 - .global data_ov00_020ec838 -data_ov00_020ec838: - .space 0x4 - .global data_ov00_020ec83c -data_ov00_020ec83c: - .space 0x4 - .global data_ov00_020ec840 -data_ov00_020ec840: - .space 0x4 - .global data_ov00_020ec844 -data_ov00_020ec844: - .space 0x4 - .global data_ov00_020ec848 -data_ov00_020ec848: - .space 0x4 - .global data_ov00_020ec84c -data_ov00_020ec84c: - .space 0x4 - .global data_ov00_020ec850 -data_ov00_020ec850: - .space 0x4 - .global data_ov00_020ec854 -data_ov00_020ec854: - .space 0x4 - .global data_ov00_020ec858 -data_ov00_020ec858: - .space 0x4 - .global data_ov00_020ec85c -data_ov00_020ec85c: - .space 0x4 - .global data_ov00_020ec860 -data_ov00_020ec860: - .space 0x4 - .global data_ov00_020ec864 -data_ov00_020ec864: - .space 0x4 - .global data_ov00_020ec868 -data_ov00_020ec868: - .space 0x4 - .global data_ov00_020ec86c -data_ov00_020ec86c: - .space 0x4 - .global data_ov00_020ec870 -data_ov00_020ec870: - .space 0x4 - .global data_ov00_020ec874 -data_ov00_020ec874: - .space 0x4 - .global data_ov00_020ec878 -data_ov00_020ec878: - .space 0x4 - .global data_ov00_020ec87c -data_ov00_020ec87c: - .space 0x4 - .global data_ov00_020ec880 -data_ov00_020ec880: - .space 0x4 - .global data_ov00_020ec884 -data_ov00_020ec884: - .space 0x4 - .global data_ov00_020ec888 -data_ov00_020ec888: - .space 0x4 - .global data_ov00_020ec88c -data_ov00_020ec88c: - .space 0x4 - .global data_ov00_020ec890 -data_ov00_020ec890: - .space 0x4 - .global data_ov00_020ec894 -data_ov00_020ec894: - .space 0x4 - .global data_ov00_020ec898 -data_ov00_020ec898: - .space 0x4 - .global data_ov00_020ec89c -data_ov00_020ec89c: - .space 0x4 - .global data_ov00_020ec8a0 -data_ov00_020ec8a0: - .space 0x4 - .global data_ov00_020ec8a4 -data_ov00_020ec8a4: - .space 0x4 - .global data_ov00_020ec8a8 -data_ov00_020ec8a8: - .space 0x4 - .global data_ov00_020ec8ac -data_ov00_020ec8ac: - .space 0x4 - .global data_ov00_020ec8b0 -data_ov00_020ec8b0: - .space 0x4 - .global data_ov00_020ec8b4 -data_ov00_020ec8b4: - .space 0x4 - .global data_ov00_020ec8b8 -data_ov00_020ec8b8: - .space 0x4 - .global data_ov00_020ec8bc -data_ov00_020ec8bc: - .space 0x4 - .global data_ov00_020ec8c0 -data_ov00_020ec8c0: - .space 0x4 - .global data_ov00_020ec8c4 -data_ov00_020ec8c4: - .space 0x4 - .global data_ov00_020ec8c8 -data_ov00_020ec8c8: - .space 0x4 - .global data_ov00_020ec8cc -data_ov00_020ec8cc: - .space 0x4 - .global data_ov00_020ec8d0 -data_ov00_020ec8d0: - .space 0x4 - .global data_ov00_020ec8d4 -data_ov00_020ec8d4: - .space 0x4 - .global data_ov00_020ec8d8 -data_ov00_020ec8d8: - .space 0x4 - .global data_ov00_020ec8dc -data_ov00_020ec8dc: - .space 0x4 - .global data_ov00_020ec8e0 -data_ov00_020ec8e0: - .space 0x4 - .global data_ov00_020ec8e4 -data_ov00_020ec8e4: - .space 0x4 - .global data_ov00_020ec8e8 -data_ov00_020ec8e8: - .space 0x4 - .global data_ov00_020ec8ec -data_ov00_020ec8ec: - .space 0x4 - .global data_ov00_020ec8f0 -data_ov00_020ec8f0: - .space 0x4 - .global data_ov00_020ec8f4 -data_ov00_020ec8f4: - .space 0x4 - .global data_ov00_020ec8f8 -data_ov00_020ec8f8: - .space 0x4 - .global data_ov00_020ec8fc -data_ov00_020ec8fc: - .space 0x4 - .global data_ov00_020ec900 -data_ov00_020ec900: - .space 0x4 - .global data_ov00_020ec904 -data_ov00_020ec904: - .space 0x4 - .global data_ov00_020ec908 -data_ov00_020ec908: - .space 0x4 - .global data_ov00_020ec90c -data_ov00_020ec90c: - .space 0x4 - .global data_ov00_020ec910 -data_ov00_020ec910: - .space 0x4 - .global data_ov00_020ec914 -data_ov00_020ec914: - .space 0x4 - .global data_ov00_020ec918 -data_ov00_020ec918: - .space 0x4 - .global data_ov00_020ec91c -data_ov00_020ec91c: - .space 0x4 - .global data_ov00_020ec920 -data_ov00_020ec920: - .space 0x4 - .global data_ov00_020ec924 -data_ov00_020ec924: - .space 0x4 - .global data_ov00_020ec928 -data_ov00_020ec928: - .space 0x4 - .global data_ov00_020ec92c -data_ov00_020ec92c: - .space 0x4 - .global data_ov00_020ec930 -data_ov00_020ec930: - .space 0x4 - .global data_ov00_020ec934 -data_ov00_020ec934: - .space 0x4 - .global data_ov00_020ec938 -data_ov00_020ec938: - .space 0x4 - .global data_ov00_020ec93c -data_ov00_020ec93c: - .space 0x4 - .global data_ov00_020ec940 -data_ov00_020ec940: - .space 0x4 - .global data_ov00_020ec944 -data_ov00_020ec944: - .space 0x4 - .global data_ov00_020ec948 -data_ov00_020ec948: - .space 0x4 - .global data_ov00_020ec94c -data_ov00_020ec94c: - .space 0x4 - .global data_ov00_020ec950 -data_ov00_020ec950: - .space 0x4 - .global data_ov00_020ec954 -data_ov00_020ec954: - .space 0x4 - .global data_ov00_020ec958 -data_ov00_020ec958: - .space 0x4 - .global data_ov00_020ec95c -data_ov00_020ec95c: - .space 0x4 - .global data_ov00_020ec960 -data_ov00_020ec960: - .space 0x4 - .global data_ov00_020ec964 -data_ov00_020ec964: - .space 0x4 - .global data_ov00_020ec968 -data_ov00_020ec968: - .space 0x4 - .global data_ov00_020ec96c -data_ov00_020ec96c: - .space 0x4 - .global data_ov00_020ec970 -data_ov00_020ec970: - .space 0x4 - .global data_ov00_020ec974 -data_ov00_020ec974: - .space 0x4 - .global data_ov00_020ec978 -data_ov00_020ec978: - .space 0x4 - .global data_ov00_020ec97c -data_ov00_020ec97c: - .space 0x4 - .global data_ov00_020ec980 -data_ov00_020ec980: - .space 0x4 - .global data_ov00_020ec984 -data_ov00_020ec984: - .space 0x4 - .global data_ov00_020ec988 -data_ov00_020ec988: - .space 0x4 - .global data_ov00_020ec98c -data_ov00_020ec98c: - .space 0x4 - .global data_ov00_020ec990 -data_ov00_020ec990: - .space 0x4 - .global data_ov00_020ec994 -data_ov00_020ec994: - .space 0x4 - .global data_ov00_020ec998 -data_ov00_020ec998: - .space 0x4 - .global data_ov00_020ec99c -data_ov00_020ec99c: - .space 0x4 - .global data_ov00_020ec9a0 -data_ov00_020ec9a0: - .space 0x4 - .global data_ov00_020ec9a4 -data_ov00_020ec9a4: - .space 0x4 - .global data_ov00_020ec9a8 -data_ov00_020ec9a8: - .space 0x4 - .global data_ov00_020ec9ac -data_ov00_020ec9ac: - .space 0x4 - .global data_ov00_020ec9b0 -data_ov00_020ec9b0: - .space 0x4 - .global data_ov00_020ec9b4 -data_ov00_020ec9b4: - .space 0x4 - .global data_ov00_020ec9b8 -data_ov00_020ec9b8: - .space 0x4 - .global data_ov00_020ec9bc -data_ov00_020ec9bc: - .space 0x4 - .global data_ov00_020ec9c0 -data_ov00_020ec9c0: - .space 0x4 - .global data_ov00_020ec9c4 -data_ov00_020ec9c4: - .space 0x4 - .global data_ov00_020ec9c8 -data_ov00_020ec9c8: - .space 0x4 - .global data_ov00_020ec9cc -data_ov00_020ec9cc: - .space 0x4 - .global data_ov00_020ec9d0 -data_ov00_020ec9d0: - .space 0x4 .global data_ov00_020ec9d4 data_ov00_020ec9d4: .space 0x2 diff --git a/asm/ov00/ov00_020980f4.inc b/asm/ov00/ov00_020980f4.inc index 66c4c9ee..04091b0a 100644 --- a/asm/ov00/ov00_020980f4.inc +++ b/asm/ov00/ov00_020980f4.inc @@ -2,6 +2,23 @@ .extern Approach_thunk .extern Divide .extern FastDivide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_b0Ev +.extern _ZN10MapManager17GetMapData_Unk_06Ev +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager18Get_MapData_Unk_d0Ev +.extern _ZN10MapManager18Get_MapData_Unk_d8Ev +.extern _ZN10MapManager18Set_MapData_Unk_16Eci +.extern _ZN10MapManager18func_ov00_02082424Ev +.extern _ZN10MapManager18func_ov00_02082538Ev +.extern _ZN10MapManager18func_ov00_02082d08Ev +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_02083908EcPi +.extern _ZN10MapManager18func_ov00_02083928EPci +.extern _ZN10MapManager18func_ov00_02083938Ei +.extern _ZN10MapManager18func_ov00_02083978EiP5Vec3p +.extern _ZN10MapManager18func_ov00_02084b38Eiii .extern _ZN10PlayerBase10SetVisibleEb .extern _ZN10PlayerBase12SetUpdatePosEb .extern _ZN11ItemManager21LoadDungeonItemModelsEv @@ -78,7 +95,6 @@ .extern data_027e0d38 .extern data_027e0db0 .extern data_027e0de4 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f78 @@ -189,23 +205,6 @@ .extern func_ov00_02080f20 .extern func_ov00_02080f64 .extern func_ov00_02080f94 -.extern func_ov00_02082424 -.extern func_ov00_02082538 -.extern func_ov00_02082638 -.extern func_ov00_02082d08 -.extern func_ov00_020833f4 -.extern func_ov00_02083400 -.extern func_ov00_0208344c -.extern func_ov00_020836dc -.extern func_ov00_020838e8 -.extern func_ov00_02083908 -.extern func_ov00_02083928 -.extern func_ov00_02083938 -.extern func_ov00_02083948 -.extern func_ov00_02083978 -.extern func_ov00_02083ee0 -.extern func_ov00_02084984 -.extern func_ov00_02084b38 .extern func_ov00_02086cd0 .extern func_ov00_02086ed4 .extern func_ov00_0208726c @@ -360,6 +359,7 @@ .extern func_ov40_021833c4 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern strcat .extern strcmp diff --git a/asm/ov00/ov00_020980f4.s b/asm/ov00/ov00_020980f4.s index 8449e284..bc9cb609 100644 --- a/asm/ov00/ov00_020980f4.s +++ b/asm/ov00/ov00_020980f4.s @@ -301,7 +301,7 @@ _0209848c: sub r2, r3, #2 mov ip, #0x47 mov r1, #0xff - ldr r0, _020985b8 ; =data_027e0e60 + ldr r0, _020985b8 ; =gMapManager str r2, [sp, #0x18] str ip, [sp, #0xc] str r3, [sp, #0x10] @@ -314,7 +314,7 @@ _0209848c: ldrb r1, [r4, #0xe] ldr r0, [r0] add r2, sp, #0xc - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _020985bc ; =data_027e0d38 mov r2, #1 ldr r0, [r0] @@ -354,7 +354,7 @@ _020985a8: .word data_027e0f64 _020985ac: .word data_027e0f90 _020985b0: .word data_027e0c54 _020985b4: .word data_027e0db0 -_020985b8: .word data_027e0e60 +_020985b8: .word gMapManager _020985bc: .word data_027e0d38 .global func_ov00_020985c0 @@ -1469,7 +1469,7 @@ _020993b4: sub r2, r3, #2 mov r4, #0x47 mov r1, #0xff - ldr r0, _020994cc ; =data_027e0e60 + ldr r0, _020994cc ; =gMapManager str r2, [sp, #0x14] str r4, [sp, #8] str r3, [sp, #0xc] @@ -1482,7 +1482,7 @@ _020993b4: ldrb r1, [r6, #0x2b] ldr r0, [r0] add r2, sp, #8 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, pc} @@ -1535,7 +1535,7 @@ _020994bc: .word data_027e0f68 _020994c0: .word data_027e0f64 _020994c4: .word data_027e0c68 _020994c8: .word data_027e0db0 -_020994cc: .word data_027e0e60 +_020994cc: .word gMapManager _020994d0: .word data_027e0d38 _020994d4: .word 0x414e4353 @@ -5632,15 +5632,15 @@ func_ov00_0209c8f4: ; 0x0209c8f4 str r1, [r4, #0xfc] ldmia sp!, {r4, pc} _0209c93c: - ldr r0, _0209c954 ; =data_027e0e60 + ldr r0, _0209c954 ; =gMapManager add r1, r4, #0xf8 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_0209c8f4 _0209c950: .word data_027e0f94 -_0209c954: .word data_027e0e60 +_0209c954: .word gMapManager .global func_ov00_0209c958 arm_func_start func_ov00_0209c958 @@ -5743,14 +5743,14 @@ func_ov00_0209ca80: ; 0x0209ca80 bl func_01ffa8d4 ldr r1, _0209cbbc ; =0x04000444 mov r2, #0 - ldr r0, _0209cbc0 ; =data_027e0e60 + ldr r0, _0209cbc0 ; =gMapManager str r2, [r1] ldr r0, [r0] - bl func_ov00_02083400 - ldr r1, _0209cbc0 ; =data_027e0e60 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev + ldr r1, _0209cbc0 ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_020833f4 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev ldr ip, _0209cbc4 ; =0x04000470 mov r1, #0 str r0, [ip] @@ -5820,7 +5820,7 @@ func_ov00_0209ca80: ; 0x0209ca80 .align 2, 0 arm_func_end func_ov00_0209ca80 _0209cbbc: .word 0x04000444 -_0209cbc0: .word data_027e0e60 +_0209cbc0: .word gMapManager _0209cbc4: .word 0x04000470 _0209cbc8: .word 0x4210ffff _0209cbcc: .word 0x001f0080 @@ -5830,11 +5830,11 @@ _0209cbd0: .word 0x04000504 arm_func_start func_ov00_0209cbd4 func_ov00_0209cbd4: ; 0x0209cbd4 stmdb sp!, {r3, r4, r5, lr} - ldr r3, _0209cc2c ; =data_027e0e60 + ldr r3, _0209cc2c ; =gMapManager mov r5, r0 ldr r0, [r3] mov r4, r2 - bl func_ov00_02083978 + bl _ZN10MapManager18func_ov00_02083978EiP5Vec3p cmp r0, #0 movne r0, #1 ldmneia sp!, {r3, r4, r5, pc} @@ -5853,7 +5853,7 @@ func_ov00_0209cbd4: ; 0x0209cbd4 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov00_0209cbd4 -_0209cc2c: .word data_027e0e60 +_0209cc2c: .word gMapManager .global func_ov00_0209cc30 arm_func_start func_ov00_0209cc30 @@ -5888,11 +5888,11 @@ func_ov00_0209cc48: ; 0x0209cc48 ldrh r1, [r4, #0x1a] ldr r0, [r0] bl func_ov00_020c4648 - ldr r0, _0209cce0 ; =data_027e0e60 + ldr r0, _0209cce0 ; =gMapManager ldrh r1, [r4, #0x1c] ldrh r2, [r4, #0x1e] ldr r0, [r0] - bl func_ov00_02082638 + bl _ZN10MapManager16MapData_vfunc_b0Ev ldr r0, _0209cce4 ; =data_027e0f68 ldrh r1, [r4, #0x1c] ldr r0, [r0] @@ -5915,7 +5915,7 @@ func_ov00_0209cc48: ; 0x0209cc48 arm_func_end func_ov00_0209cc48 _0209ccd8: .word gItemManager _0209ccdc: .word data_027e0fec -_0209cce0: .word data_027e0e60 +_0209cce0: .word gMapManager _0209cce4: .word data_027e0f68 .global func_ov00_0209cce8 @@ -6642,7 +6642,7 @@ func_ov00_0209d564: ; 0x0209d564 mov r2, #2 str r0, [sp, #0x28] ldr r1, [lr, #0x288] - ldr r0, _0209d6cc ; =data_027e0e60 + ldr r0, _0209d6cc ; =gMapManager str r1, [sp, #0x2c] ldr lr, [lr, #0x28c] add r1, sp, #0x40 @@ -6698,7 +6698,7 @@ _0209d694: arm_func_end func_ov00_0209d564 _0209d6c4: .word 0x0000ffff _0209d6c8: .word 0x00000333 -_0209d6cc: .word data_027e0e60 +_0209d6cc: .word gMapManager .global func_ov00_0209d6d0 arm_func_start func_ov00_0209d6d0 @@ -8276,10 +8276,10 @@ _0209e9c0: strh r2, [r0, #0x18] cmp ip, #2 blo _0209e9c0 - ldr r0, _0209eafc ; =data_027e0e60 + ldr r0, _0209eafc ; =gMapManager add r1, sp, #0xc ldr r0, [r0] - bl func_ov00_02083928 + bl _ZN10MapManager18func_ov00_02083928EPci ldrb r0, [sp, #0x10] add r2, r4, #0x168 strb r0, [r4, #0x162] @@ -8290,10 +8290,10 @@ _0209e9c0: moveq r0, #1 movne r0, #0 strb r0, [r4, #0x165] - ldr r0, _0209eafc ; =data_027e0e60 + ldr r0, _0209eafc ; =gMapManager ldrb r1, [r4, #0x163] ldr r0, [r0] - bl func_ov00_02083908 + bl _ZN10MapManager18func_ov00_02083908EcPi ldrh r0, [r4, #0x22] cmp r0, #0 beq _0209ea30 @@ -8357,7 +8357,7 @@ _0209eae4: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_0209e994 -_0209eafc: .word data_027e0e60 +_0209eafc: .word gMapManager .global func_ov00_0209eb00 arm_func_start func_ov00_0209eb00 @@ -8448,11 +8448,11 @@ _0209ec14: cmp r2, #0 movne r0, #1 ldmneia sp!, {r4, pc} - ldr r0, _0209ecd0 ; =data_027e0e60 + ldr r0, _0209ecd0 ; =gMapManager ldrb r1, [r4, #0x162] ldr r0, [r0] mov r2, r3 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci ldr r0, _0209ecd4 ; =data_027e0f64 ldrb r1, [r4, #0x165] ldr r0, [r0] @@ -8479,11 +8479,11 @@ _0209ec80: mov r3, #0 bl func_ov00_02087400 _0209ec9c: - ldr r0, _0209ecd0 ; =data_027e0e60 + ldr r0, _0209ecd0 ; =gMapManager ldrb r1, [r4, #0x16c] ldr r0, [r0] mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci b _0209ecc8 _0209ecb4: ldr r0, _0209ecd4 ; =data_027e0f64 @@ -8496,7 +8496,7 @@ _0209ecc8: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_0209ebec -_0209ecd0: .word data_027e0e60 +_0209ecd0: .word gMapManager _0209ecd4: .word data_027e0f64 .global func_ov00_0209ecd8 @@ -8509,11 +8509,11 @@ func_ov00_0209ecd8: ; 0x0209ecd8 cmp r1, #1 b _0209ed08 _0209ecf0: - ldr r2, _0209ed14 ; =data_027e0e60 + ldr r2, _0209ed14 ; =gMapManager ldrb r1, [r0, #0x164] ldr r0, [r2] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii ldmia sp!, {r3, pc} _0209ed08: mov r1, #1 @@ -8521,7 +8521,7 @@ _0209ed08: ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov00_0209ecd8 -_0209ed14: .word data_027e0e60 +_0209ed14: .word gMapManager .global func_ov00_0209ed18 arm_func_start func_ov00_0209ed18 @@ -12501,21 +12501,21 @@ func_ov00_020a1dc8: ; 0x020a1dc8 _020a1de8: cmp r2, #0 bne _020a1e4c - ldr r0, _020a1e54 ; =data_027e0e60 + ldr r0, _020a1e54 ; =gMapManager ldrb r1, [r4, #0x15c] ldrb r2, [r4, #0x29] ldr r0, [r0] mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii b _020a1e4c _020a1e0c: bl func_ov00_020a1e58 - ldr r0, _020a1e54 ; =data_027e0e60 + ldr r0, _020a1e54 ; =gMapManager ldrb r1, [r4, #0x15c] ldrb r2, [r4, #0x29] ldr r0, [r0] mov r3, #1 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldr r0, [r4, #0x158] cmp r0, #0 bne _020a1e4c @@ -12530,7 +12530,7 @@ _020a1e4c: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_020a1dc8 -_020a1e54: .word data_027e0e60 +_020a1e54: .word gMapManager .global func_ov00_020a1e58 arm_func_start func_ov00_020a1e58 @@ -12611,18 +12611,18 @@ func_ov00_020a1f24: ; 0x020a1f24 ldr r0, [r0, #0x15c] cmp r0, #0x24 bne _020a1f90 - ldr r0, _020a1fc8 ; =data_027e0e60 + ldr r0, _020a1fc8 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082538 + bl _ZN10MapManager18func_ov00_02082538Ev ldr r2, [r0] - ldr r1, _020a1fc8 ; =data_027e0e60 + ldr r1, _020a1fc8 ; =gMapManager str r2, [r4, #0x18] ldr r2, [r0, #4] str r2, [r4, #0x1c] ldr r0, [r0, #8] str r0, [r4, #0x20] ldr r0, [r1] - bl func_ov00_02082538 + bl _ZN10MapManager18func_ov00_02082538Ev ldr r1, [r0] str r1, [r4, #0x24] ldr r1, [r0, #4] @@ -12647,7 +12647,7 @@ _020a1f90: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_020a1f24 -_020a1fc8: .word data_027e0e60 +_020a1fc8: .word gMapManager _020a1fcc: .word data_027e0f94 .global func_ov00_020a1fd0 @@ -12736,16 +12736,16 @@ func_ov00_020a1fd0: ; 0x020a1fd0 add r5, r0, r2 b _020a21d0 _020a2118: - ldr r0, _020a2224 ; =data_027e0e60 + ldr r0, _020a2224 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev rsb r0, r0, #0 sub r0, r0, #0x4000 cmp r4, r0 blt _020a21d0 - ldr r0, _020a2224 ; =data_027e0e60 + ldr r0, _020a2224 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev add r0, r4, r0 add r0, r0, #0x4000 mov r1, #0x4000 @@ -12806,7 +12806,7 @@ _020a21d0: .align 2, 0 arm_func_end func_ov00_020a1fd0 _020a2220: .word data_027e0fac -_020a2224: .word data_027e0e60 +_020a2224: .word gMapManager .global func_ov00_020a2228 arm_func_start func_ov00_020a2228 @@ -12833,19 +12833,19 @@ func_ov00_020a222c: ; 0x020a222c ldr r0, [r4, #0x28] sub r1, r1, #0x1000 cmp r0, r1 - ldr r0, _020a22b4 ; =data_027e0e60 + ldr r0, _020a22b4 ; =gMapManager strgt r1, [r4, #0x28] ldr r0, [r0] - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev ldr r1, [r4, #0x1c] ldr r2, [r4, #0x28] add r1, r1, #0x1000 add r0, r1, r0 cmp r2, r0 ldmgeia sp!, {r4, pc} - ldr r0, _020a22b4 ; =data_027e0e60 + ldr r0, _020a22b4 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev ldr r1, [r4, #0x1c] add r1, r1, #0x1000 add r0, r1, r0 @@ -12853,7 +12853,7 @@ func_ov00_020a222c: ; 0x020a222c ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_020a222c -_020a22b4: .word data_027e0e60 +_020a22b4: .word gMapManager .global func_ov00_020a22b8 arm_func_start func_ov00_020a22b8 @@ -13107,15 +13107,15 @@ _020a2614: mov r0, r0, lsl #0x10 mov r4, r0, asr #0x10 beq _020a2680 - ldr r0, _020a26e0 ; =data_027e0e60 + ldr r0, _020a26e0 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084984 + bl _ZN10MapManager17GetMapData_Unk_06Ev cmp r0, #0 bne _020a2680 - ldr r0, _020a26e0 ; =data_027e0e60 + ldr r0, _020a26e0 ; =gMapManager mov r1, #0 ldr r0, [r0] - bl func_ov00_02083938 + bl _ZN10MapManager18func_ov00_02083938Ei bl func_ov00_02087d84 add r5, sp, #0x4c mov r6, r0 @@ -13157,7 +13157,7 @@ _020a2680: .align 2, 0 arm_func_end func_ov00_020a23a4 _020a26dc: .word data_027e0d38 -_020a26e0: .word data_027e0e60 +_020a26e0: .word gMapManager .global func_ov00_020a26e4 arm_func_start func_ov00_020a26e4 @@ -13180,7 +13180,7 @@ func_ov00_020a26e4: ; 0x020a26e4 stmia sp, {r0, r3} mov r1, #0 str r1, [sp, #8] - ldr r0, _020a2758 ; =data_027e0e60 + ldr r0, _020a2758 ; =gMapManager add r1, sp, #0xc ldr r0, [r0] add r2, sp, #0x18 @@ -13193,7 +13193,7 @@ func_ov00_020a26e4: ; 0x020a26e4 ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov00_020a26e4 -_020a2758: .word data_027e0e60 +_020a2758: .word gMapManager .global func_ov00_020a275c arm_func_start func_ov00_020a275c @@ -13216,7 +13216,7 @@ func_ov00_020a275c: ; 0x020a275c stmia sp, {r0, r3} mov r1, #0 str r1, [sp, #8] - ldr r0, _020a27d0 ; =data_027e0e60 + ldr r0, _020a27d0 ; =gMapManager add r1, sp, #0xc ldr r0, [r0] add r2, sp, #0x18 @@ -13229,7 +13229,7 @@ func_ov00_020a275c: ; 0x020a275c ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov00_020a275c -_020a27d0: .word data_027e0e60 +_020a27d0: .word gMapManager .global func_ov00_020a27d4 arm_func_start func_ov00_020a27d4 @@ -13252,7 +13252,7 @@ func_ov00_020a27d4: ; 0x020a27d4 stmia sp, {r0, r3} mov r1, #0 str r1, [sp, #8] - ldr r0, _020a2848 ; =data_027e0e60 + ldr r0, _020a2848 ; =gMapManager add r1, sp, #0xc ldr r0, [r0] add r2, sp, #0x18 @@ -13265,7 +13265,7 @@ func_ov00_020a27d4: ; 0x020a27d4 ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov00_020a27d4 -_020a2848: .word data_027e0e60 +_020a2848: .word gMapManager .global func_ov00_020a284c arm_func_start func_ov00_020a284c @@ -13472,11 +13472,11 @@ _020a2b28: add r3, sp, #4 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _020a2c04 ; =data_027e0e60 + ldr r0, _020a2c04 ; =gMapManager mov r1, r3 ldr r0, [r0] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r4, #4] ldr r1, [sp, #8] ldr r2, [r2, #0x240] @@ -13522,7 +13522,7 @@ _020a2ba8: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_020a2adc -_020a2c04: .word data_027e0e60 +_020a2c04: .word gMapManager .global func_ov00_020a2c08 arm_func_start func_ov00_020a2c08 @@ -13770,11 +13770,11 @@ _020a2f18: cmp r5, #2 blo _020a2f18 ldr r1, [r4, #4] - ldr r0, _020a2ff0 ; =data_027e0e60 + ldr r0, _020a2ff0 ; =gMapManager ldrb r2, [r1, #0x1b8] ldr r0, [r0] add r1, sp, #0x10 - bl func_ov00_02083928 + bl _ZN10MapManager18func_ov00_02083928EPci ldr r0, [sp, #0x10] bl func_ov00_02087d84 add lr, sp, #0x38 @@ -13822,7 +13822,7 @@ _020a2fac: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov00_020a2e8c -_020a2ff0: .word data_027e0e60 +_020a2ff0: .word gMapManager .global func_ov00_020a2ff4 arm_func_start func_ov00_020a2ff4 @@ -13867,11 +13867,11 @@ _020a3074: cmp r5, #2 blo _020a3074 ldr r1, [r4, #4] - ldr r0, _020a3140 ; =data_027e0e60 + ldr r0, _020a3140 ; =gMapManager ldrb r2, [r1, #0x1b8] ldr r0, [r0] add r1, sp, #0x10 - bl func_ov00_02083928 + bl _ZN10MapManager18func_ov00_02083928EPci ldr r0, [sp, #0x10] bl func_ov00_02087d84 add lr, sp, #0x38 @@ -13916,7 +13916,7 @@ _020a3108: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov00_020a2ff4 -_020a3140: .word data_027e0e60 +_020a3140: .word gMapManager .global func_ov00_020a3144 arm_func_start func_ov00_020a3144 @@ -15289,10 +15289,10 @@ func_ov00_020a41e4: ; 0x020a41e4 mov r5, r2 mov r4, r3 bl func_ov00_020a5e9c - ldr r1, _020a42c8 ; =data_027e0e60 + ldr r1, _020a42c8 ; =gMapManager str r0, [r6] ldr r0, [r1] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev strb r0, [r6, #7] str r7, [r6, #0xc] ldr r0, [r5] @@ -15335,7 +15335,7 @@ func_ov00_020a41e4: ; 0x020a41e4 .align 2, 0 arm_func_end func_ov00_020a41e4 _020a42c4: .word data_027e0d38 -_020a42c8: .word data_027e0e60 +_020a42c8: .word gMapManager .global func_ov00_020a42cc arm_func_start func_ov00_020a42cc @@ -15351,10 +15351,10 @@ func_ov00_020a42cc: ; 0x020a42cc mov r5, r2 mov r4, r3 bl func_ov00_020a5e9c - ldr r1, _020a4344 ; =data_027e0e60 + ldr r1, _020a4344 ; =gMapManager str r0, [r6] ldr r0, [r1] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev strb r0, [r6, #7] str r7, [r6, #0xc] ldr r0, [r5] @@ -15372,7 +15372,7 @@ func_ov00_020a42cc: ; 0x020a42cc .align 2, 0 arm_func_end func_ov00_020a42cc _020a4340: .word data_027e0d38 -_020a4344: .word data_027e0e60 +_020a4344: .word gMapManager .global func_ov00_020a4348 arm_func_start func_ov00_020a4348 @@ -16228,14 +16228,14 @@ func_ov00_020a4dd0: ; 0x020a4dd0 strb r3, [r4, #0x37] str r3, [r4, #0x38] bl func_ov00_020a5508 - ldr r0, _020a4e08 ; =data_027e0e60 + ldr r0, _020a4e08 ; =gMapManager add r1, r4, #0x28 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov00_020a4dd0 -_020a4e08: .word data_027e0e60 +_020a4e08: .word gMapManager .global func_ov00_020a4e0c arm_func_start func_ov00_020a4e0c diff --git a/asm/ov00/ov00_020b1498.inc b/asm/ov00/ov00_020b1498.inc index 242ba27c..a9e87b3c 100644 --- a/asm/ov00/ov00_020b1498.inc +++ b/asm/ov00/ov00_020b1498.inc @@ -1,5 +1,30 @@ #pragma once .extern Divide +.extern _ZN10MapManager16MapData_vfunc_54Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager17Get_MapData_Unk28Ev +.extern _ZN10MapManager17Get_MapData_Unk2aEv +.extern _ZN10MapManager18func_ov00_020833c4Ev +.extern _ZN10MapManager18func_ov00_020833d0Ev +.extern _ZN10MapManager18func_ov00_020833dcEv +.extern _ZN10MapManager18func_ov00_020833e8Ev +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_020839d4Ev +.extern _ZN10MapManager18func_ov00_020839f8Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +.extern _ZN10MapManager18func_ov00_02083e34Ecci +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager18func_ov00_020840a0Ecci +.extern _ZN10MapManager18func_ov00_0208412cEv +.extern _ZN10MapManager18func_ov00_02084164Ev +.extern _ZN10MapManager18func_ov00_020853fcEv .extern _ZN10PlayerBase10SetVisibleEb .extern _ZN10PlayerBase13GetEquipSwordEv .extern _ZN10PlayerBase14GetEquipShieldEv @@ -8,7 +33,7 @@ .extern _ZN10PlayerBase8TeleportEP5Vec3psibb .extern _ZN10PlayerBase8vfunc_04Ev .extern _ZN10PlayerBase9AddHealthEs -.extern _ZN11ItemManager10GiveRupeesEjj +.extern _ZN11ItemManager10GiveRupeesEsb .extern _ZN11ItemManager12GetEquipItemEi .extern _ZN11ItemManager12GetItemModelEj .extern _ZN11ItemManager13UnequipPotionEv @@ -121,6 +146,8 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN7MapBase18func_ov00_0207e968Ev +.extern _ZN7MapBase18func_ov00_0207e96cEv .extern _ZN9ActorTypeC1EjPFP5ActorvEPv .extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv @@ -158,7 +185,6 @@ .extern data_027e0d84 .extern data_027e0e58 .extern data_027e0e5c -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f78 @@ -167,7 +193,7 @@ .extern data_027e0fa0 .extern data_027e0fac .extern data_027e0fb8 -.extern data_027e0fbc +.extern gHealthManager .extern data_027e0fc4 .extern data_027e0fc8 .extern data_027e0fcc @@ -297,35 +323,8 @@ .extern func_ov00_0207c1f8 .extern func_ov00_0207c444 .extern func_ov00_0207c474 -.extern func_ov00_0207e968 -.extern func_ov00_0207e96c .extern func_ov00_02081f4c .extern func_ov00_02081f50 -.extern func_ov00_0208335c -.extern func_ov00_02083368 -.extern func_ov00_020833c4 -.extern func_ov00_020833d0 -.extern func_ov00_020833dc -.extern func_ov00_020833e8 -.extern func_ov00_020836dc -.extern func_ov00_02083770 -.extern func_ov00_020838e8 -.extern func_ov00_020839d4 -.extern func_ov00_020839f8 -.extern func_ov00_02083a1c -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083c7c -.extern func_ov00_02083e34 -.extern func_ov00_02083ee0 -.extern func_ov00_02083f44 -.extern func_ov00_02083fb0 -.extern func_ov00_02084088 -.extern func_ov00_020840a0 -.extern func_ov00_020840c4 -.extern func_ov00_0208412c -.extern func_ov00_02084164 -.extern func_ov00_020853fc .extern func_ov00_020872e8 .extern func_ov00_02087e8c .extern func_ov00_0208b180 @@ -460,5 +459,6 @@ .extern func_ov59_0219b020 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern strcat diff --git a/asm/ov00/ov00_020b1498.s b/asm/ov00/ov00_020b1498.s index 6170dbc0..07ecf977 100644 --- a/asm/ov00/ov00_020b1498.s +++ b/asm/ov00/ov00_020b1498.s @@ -280,18 +280,18 @@ _020b1788: .word data_027e0f6c func_ov00_020b178c: ; 0x020b178c stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, lr} - ldr r3, _020b17e8 ; =data_027e0e60 + ldr r3, _020b17e8 ; =gMapManager ldrb r1, [sp, #0xc] mov r4, r0 ldrb r2, [sp, #0xd] ldr r0, [r3] - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci cmp r0, r4 bgt _020b17d8 - ldr r0, _020b17e8 ; =data_027e0e60 + ldr r0, _020b17e8 ; =gMapManager add r1, sp, #0xc ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 moveq r0, #1 ldmeqia sp!, {r4, lr} @@ -304,7 +304,7 @@ _020b17d8: bx lr .align 2, 0 arm_func_end func_ov00_020b178c -_020b17e8: .word data_027e0e60 +_020b17e8: .word gMapManager .global func_ov00_020b17ec arm_func_start func_ov00_020b17ec @@ -444,16 +444,16 @@ func_ov00_020b199c: ; 0x020b199c mov r5, r1 mov r4, r2 bmi _020b19e4 - ldr r0, _020b1a48 ; =data_027e0e60 + ldr r0, _020b1a48 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev cmp r0, r6 ble _020b19e4 cmp r5, #0 blt _020b19e4 - ldr r0, _020b1a48 ; =data_027e0e60 + ldr r0, _020b1a48 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv cmp r0, r5 bgt _020b19f0 _020b19e4: @@ -461,12 +461,12 @@ _020b19e4: mov r0, #0 ldmia sp!, {r3, r4, r5, r6, pc} _020b19f0: - ldr r0, _020b1a48 ; =data_027e0e60 + ldr r0, _020b1a48 ; =gMapManager add r1, sp, #0 ldr r0, [r0] strb r6, [sp] strb r5, [sp, #1] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _020b1a30 ldr r1, [r0] @@ -478,32 +478,32 @@ _020b19f0: moveq r0, #0 ldmeqia sp!, {r3, r4, r5, r6, pc} _020b1a30: - ldr r0, _020b1a48 ; =data_027e0e60 + ldr r0, _020b1a48 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02084164 + bl _ZN10MapManager18func_ov00_02084164Ev add sp, sp, #4 ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020b199c -_020b1a48: .word data_027e0e60 +_020b1a48: .word gMapManager .global func_ov00_020b1a4c arm_func_start func_ov00_020b1a4c func_ov00_020b1a4c: ; 0x020b1a4c stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} sub sp, sp, #0xc0 - ldr r2, _020b1b48 ; =data_027e0e60 + ldr r2, _020b1b48 ; =gMapManager mov r8, r1 mov r9, r0 ldr r0, [r2] ldr r1, [r8] - bl func_ov00_020839d4 - ldr r1, _020b1b48 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020839d4Ev + ldr r1, _020b1b48 ; =gMapManager mov r5, r0 ldr r0, [r1] ldr r1, [r8, #8] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev mov r6, r0 ldr r0, [r8] ldr r2, _020b1b4c ; =func_ov00_020b1940 @@ -559,7 +559,7 @@ _020b1b34: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov00_020b1a4c -_020b1b48: .word data_027e0e60 +_020b1b48: .word gMapManager _020b1b4c: .word func_ov00_020b1940 _020b1b50: .word data_ov00_020dc704 @@ -568,11 +568,11 @@ _020b1b50: .word data_ov00_020dc704 func_ov00_020b1b54: ; 0x020b1b54 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r3, lr} - ldr r0, _020b1ba0 ; =data_027e0e60 + ldr r0, _020b1ba0 ; =gMapManager ldrb r1, [sp, #8] ldrb r2, [sp, #9] ldr r0, [r0] - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci cmp r0, #0x18 cmpne r0, #0x2c cmpne r0, #0x2d @@ -588,7 +588,7 @@ _020b1b90: bx lr .align 2, 0 arm_func_end func_ov00_020b1b54 -_020b1ba0: .word data_027e0e60 +_020b1ba0: .word gMapManager .global func_ov00_020b1ba4 arm_func_start func_ov00_020b1ba4 @@ -596,7 +596,7 @@ func_ov00_020b1ba4: ; 0x020b1ba4 stmdb sp!, {r3, lr} sub sp, sp, #0x10 ldr r2, [r0] - ldr r1, _020b1bf8 ; =data_027e0e60 + ldr r1, _020b1bf8 ; =gMapManager str r2, [sp, #4] ldr r2, [r0, #4] ldr r1, [r1] @@ -605,7 +605,7 @@ func_ov00_020b1ba4: ; 0x020b1ba4 add r0, sp, #0 add r2, sp, #4 str r3, [sp, #0xc] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp] mov r0, r0, lsr #0x9 and r0, r0, #3 @@ -616,7 +616,7 @@ func_ov00_020b1ba4: ; 0x020b1ba4 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov00_020b1ba4 -_020b1bf8: .word data_027e0e60 +_020b1bf8: .word gMapManager .global func_ov00_020b1bfc arm_func_start func_ov00_020b1bfc @@ -625,12 +625,12 @@ func_ov00_020b1bfc: ; 0x020b1bfc stmdb sp!, {r3, r4, r5, r6, r7, lr} ldrb r5, [sp, #0x1d] ldrb r6, [sp, #0x1c] - ldr r1, _020b1d38 ; =data_027e0e60 + ldr r1, _020b1d38 ; =gMapManager mov r7, r0 ldr r0, [r1] mov r1, r6 mov r2, r5 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci ldrb r2, [sp, #0x1c] add r1, r5, #1 sub r3, sp, #4 @@ -702,7 +702,7 @@ func_ov00_020b1bfc: ; 0x020b1bfc bx lr .align 2, 0 arm_func_end func_ov00_020b1bfc -_020b1d38: .word data_027e0e60 +_020b1d38: .word gMapManager .global func_ov00_020b1d3c arm_func_start func_ov00_020b1d3c @@ -1435,7 +1435,7 @@ func_ov00_020b2598: ; 0x020b2598 mov r3, #0 sub r2, r3, #2 mov r5, #0x47 - ldr r0, _020b2b90 ; =data_027e0e60 + ldr r0, _020b2b90 ; =gMapManager mov r1, #0xff str r2, [sp, #0xc] str r5, [sp] @@ -1449,7 +1449,7 @@ func_ov00_020b2598: ; 0x020b2598 ldr r0, [r0] ldr r1, [r4, #0x5c] add r2, sp, #0 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 beq _020b26b8 ldr r0, _020b2b94 ; =data_027e0d38 @@ -1830,7 +1830,7 @@ _020b2b88: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov00_020b2598 -_020b2b90: .word data_027e0e60 +_020b2b90: .word gMapManager _020b2b94: .word data_027e0d38 _020b2b98: .word data_02052f54 _020b2b9c: .word data_02051f54 @@ -2300,10 +2300,10 @@ func_ov00_020b30e4: ; 0x020b30e4 ldr r0, [r0, #4] cmp r2, r0 bne _020b325c - ldr r0, _020b3270 ; =data_027e0e60 + ldr r0, _020b3270 ; =gMapManager add r2, sp, #0 ldr r0, [r0] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 beq _020b325c str r6, [r7, #0x5c] @@ -2375,7 +2375,7 @@ _020b325c: arm_func_end func_ov00_020b30e4 _020b3268: .word data_027e0d38 _020b326c: .word data_027e077c -_020b3270: .word data_027e0e60 +_020b3270: .word gMapManager _020b3274: .word gAdventureFlags .global func_ov00_020b3278 @@ -3112,12 +3112,12 @@ _020b3ce4: mov r0, r4 str r1, [sp, #8] bl _ZN13LinkStateBase12GetPlayerPosEv - ldr r1, _020b3d68 ; =data_027e0e60 + ldr r1, _020b3d68 ; =gMapManager ldr r5, [r0, #4] ldr r0, [r1] add r1, sp, #0 mov r2, #1 - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p mov r6, r0 cmp r6, r5 mov r0, r4 @@ -3137,7 +3137,7 @@ _020b3d58: .word data_027e0618 _020b3d5c: .word data_ov00_020eec9c _020b3d60: .word 0xffffe4cd _020b3d64: .word data_ov00_020e6194 -_020b3d68: .word data_027e0e60 +_020b3d68: .word gMapManager .global func_ov00_020b3d6c arm_func_start func_ov00_020b3d6c @@ -4606,13 +4606,13 @@ _020b4cfc: .word 0xffffb000 func_ov00_020b4d00: ; 0x020b4d00 push {r3, r4, lr} sub sp, #4 - ldr r1, _020b4d24 ; =data_027e0e60 + ldr r1, _020b4d24 ; =gMapManager add r4, r0, #0 add r2, r4, #0 ldr r1, [r1] add r0, sp, #0 add r2, #0x20 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r0, sp, #0 ldrb r1, [r0] strb r1, [r4, #0x1c] @@ -4622,7 +4622,7 @@ func_ov00_020b4d00: ; 0x020b4d00 pop {r3, r4, pc} nop thumb_func_end func_ov00_020b4d00 -_020b4d24: .word data_027e0e60 +_020b4d24: .word gMapManager .global func_ov00_020b4d28 arm_func_start func_ov00_020b4d28 @@ -4645,36 +4645,36 @@ func_ov00_020b4d28: ; 0x020b4d28 rsblt r1, r4, #0 cmp r1, r0 ble _020b4ec8 - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r2, [r7, #0x20] ldr r1, [r7, #0x2c] ldr r0, [r0] add r1, r2, r1 sub r1, r1, #0x1000 - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev ldr r3, [r7, #0x20] ldr r2, [r7, #0x2c] - ldr r1, _020b502c ; =data_027e0e60 + ldr r1, _020b502c ; =gMapManager mov r8, r0 sub r2, r3, r2 ldr r0, [r1] add r1, r2, #0x1000 - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev ldr r2, [r9] mov r1, r0 cmp r2, #0 ble _020b4dd0 - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r0, [r0] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei mov r8, r0 b _020b4e60 _020b4dd0: bge _020b4dec - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager mov r1, r8 ldr r0, [r0] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei mov r8, r0 b _020b4e60 _020b4dec: @@ -4697,26 +4697,26 @@ _020b4dec: str ip, [r3, #4] adds r0, r2, r0, ror #31 bne _020b4e4c - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r0, [r0] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei mov r8, r0 b _020b4e60 _020b4e4c: - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager mov r1, r8 ldr r0, [r0] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei mov r8, r0 _020b4e60: - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r0, [r0] - bl func_ov00_020833c4 + bl _ZN10MapManager18func_ov00_020833c4Ev cmp r8, r0 ble _020b4e88 - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r0, [r0] - bl func_ov00_020833dc + bl _ZN10MapManager18func_ov00_020833dcEv cmp r8, r0 blt _020b4e90 _020b4e88: @@ -4738,36 +4738,36 @@ _020b4e90: str r0, [r6] b _020b501c _020b4ec8: - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r2, [r7, #0x28] ldr r1, [r7, #0x2c] ldr r0, [r0] add r1, r2, r1 sub r1, r1, #0x1000 - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev ldr r3, [r7, #0x28] ldr r2, [r7, #0x2c] - ldr r1, _020b502c ; =data_027e0e60 + ldr r1, _020b502c ; =gMapManager mov r8, r0 sub r2, r3, r2 ldr r0, [r1] add r1, r2, #0x1000 - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev ldr r2, [r9, #8] mov r1, r0 cmp r2, #0 ble _020b4f28 - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r0, [r0] - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei mov r8, r0 b _020b4fb8 _020b4f28: bge _020b4f44 - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager mov r1, r8 ldr r0, [r0] - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei mov r8, r0 b _020b4fb8 _020b4f44: @@ -4790,26 +4790,26 @@ _020b4f44: str ip, [r3, #4] adds r0, r2, r0, ror #31 bne _020b4fa4 - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r0, [r0] - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei mov r8, r0 b _020b4fb8 _020b4fa4: - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager mov r1, r8 ldr r0, [r0] - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei mov r8, r0 _020b4fb8: - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r0, [r0] - bl func_ov00_020833d0 + bl _ZN10MapManager18func_ov00_020833d0Ev cmp r8, r0 ble _020b4fe0 - ldr r0, _020b502c ; =data_027e0e60 + ldr r0, _020b502c ; =gMapManager ldr r0, [r0] - bl func_ov00_020833e8 + bl _ZN10MapManager18func_ov00_020833e8Ev cmp r8, r0 blt _020b4fe8 _020b4fe0: @@ -4836,7 +4836,7 @@ _020b501c: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov00_020b4d28 -_020b502c: .word data_027e0e60 +_020b502c: .word gMapManager _020b5030: .word data_027e0764 .global func_ov00_020b5034 @@ -4849,7 +4849,7 @@ func_ov00_020b5034: ; 0x020b5034 ldr r4, [r5, #4] cmp r0, #0 blt _020b50cc - ldr r0, _020b50d4 ; =data_027e0e60 + ldr r0, _020b50d4 ; =gMapManager ldrb r3, [r6, #0x1c] ldrb r2, [r6, #0x1d] ldr r0, [r0] @@ -4857,7 +4857,7 @@ func_ov00_020b5034: ; 0x020b5034 strb r3, [ip] strb r2, [ip, #1] ldr r2, [ip] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi ldr r7, [r5, #4] mov r0, r6 mov r1, r5 @@ -4885,7 +4885,7 @@ _020b50cc: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov00_020b5034 -_020b50d4: .word data_027e0e60 +_020b50d4: .word gMapManager _020b50d8: .word 0xfffff333 _020b50dc: .word func_ov00_020b1940 @@ -5024,7 +5024,7 @@ func_ov00_020b5268: ; 0x020b5268 mov r5, r1 str r2, [sp, #0x28] ldr r2, [r4, #4] - ldr r1, _020b5340 ; =data_027e0e60 + ldr r1, _020b5340 ; =gMapManager str r2, [sp, #0x2c] ldr r2, [r4, #8] mov r6, r0 @@ -5032,7 +5032,7 @@ func_ov00_020b5268: ; 0x020b5268 str r2, [sp, #0x30] add r1, sp, #0x28 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r4, #4] ldr r1, _020b5344 ; =0xfffff667 add r1, r2, r1 @@ -5055,7 +5055,7 @@ _020b52d0: add r1, sp, #0x14 str r0, [sp, #0x20] ldr r2, [r4, #8] - ldr r0, _020b5340 ; =data_027e0e60 + ldr r0, _020b5340 ; =gMapManager str r2, [sp, #0x24] ldr r4, [r6, #0x2c] add r2, sp, #0x1c @@ -5075,7 +5075,7 @@ _020b52d0: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020b5268 -_020b5340: .word data_027e0e60 +_020b5340: .word gMapManager _020b5344: .word 0xfffff667 _020b5348: .word data_ov00_020e64a8 @@ -5520,7 +5520,7 @@ _020b5884: add r2, r1, r0, lsl #1 ldrb r4, [r1, r0, lsl #1] ldrb r3, [r2, #1] - ldr r0, _020b5c98 ; =data_027e0e60 + ldr r0, _020b5c98 ; =gMapManager sub r2, sp, #4 ldr r0, [r0] add r1, sp, #0x28 @@ -5529,7 +5529,7 @@ _020b5884: ldr r2, [r2] strb r4, [sp] strb r3, [sp, #1] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi ldr r0, [sp, #0x2c] ldr r1, [sp, #0x28] str r0, [sp, #8] @@ -5742,7 +5742,7 @@ _020b5c88: .word data_02050f54 _020b5c8c: .word gAdventureFlags _020b5c90: .word 0x00000ccd _020b5c94: .word data_027e0fc8 -_020b5c98: .word data_027e0e60 +_020b5c98: .word gMapManager _020b5c9c: .word data_027e0f78 _020b5ca0: .word gItemManager _020b5ca4: .word 0x0000019a @@ -5882,7 +5882,7 @@ _020b5e88: str r1, [sp] str r0, [sp, #4] ldrh r2, [r7, #0xa4] - ldr r0, _020b6ac8 ; =data_027e0e60 + ldr r0, _020b6ac8 ; =gMapManager add r1, sp, #0x1e4 str r2, [sp, #8] str r7, [sp, #0xc] @@ -5964,7 +5964,7 @@ _020b5f34: str ip, [sp, #0xec] ldrh r11, [r7, #0xa4] add r0, sp, #0x28 - ldr lr, _020b6ac8 ; =data_027e0e60 + ldr lr, _020b6ac8 ; =gMapManager bic r11, r11, #2 mov r11, r11, lsl #0x10 str r9, [sp, #0xf4] @@ -6102,22 +6102,22 @@ _020b61d4: strh r0, [r7, #0x60] _020b61e0: ldr r0, [r7, #0x20] - ldr r1, _020b6ac8 ; =data_027e0e60 + ldr r1, _020b6ac8 ; =gMapManager stmia r10, {r0, r8} ldr r2, [r7, #0x28] add r0, sp, #0x14 str r2, [r10, #8] ldr r1, [r1] add r2, r7, #0x20 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r2, [sp, #0x14] - ldr r0, _020b6ac8 ; =data_027e0e60 + ldr r0, _020b6ac8 ; =gMapManager add r1, r7, #0x1c strb r2, [r7, #0x1c] ldrb r2, [sp, #0x15] strb r2, [r7, #0x1d] ldr r0, [r0] - bl func_ov00_02084088 + bl _ZN10MapManager16MapData_vfunc_54Ev ldrb r0, [r7, #0xbc] cmp r0, #0 beq _020b62ec @@ -6214,7 +6214,7 @@ _020b632c: ldmia r8, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [sp, #0xb4] - ldr r0, _020b6ac8 ; =data_027e0e60 + ldr r0, _020b6ac8 ; =gMapManager sub r1, r1, #0x1000 str r1, [sp, #0xb4] ldr r2, [r10] @@ -6226,7 +6226,7 @@ _020b632c: ldr r3, [r10, #8] mov r2, #1 str r3, [sp, #0x7c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xcc add r0, r0, #0x1c00 ldr r2, _020b6ac4 ; =0x0000ffff @@ -6265,7 +6265,7 @@ _020b632c: stmib sp, {r0, r1} str r0, [sp, #0xc] str r0, [sp, #0x10] - ldr r0, _020b6ac8 ; =data_027e0e60 + ldr r0, _020b6ac8 ; =gMapManager add r1, sp, #0x124 ldr r0, [r0] add r2, sp, #0x68 @@ -6284,14 +6284,14 @@ _020b6494: str r1, [r6, #8] strb r0, [r7, #0x55] _020b64a4: - ldr r0, _020b6ac8 ; =data_027e0e60 + ldr r0, _020b6ac8 ; =gMapManager ldr r1, [r10] ldr r8, [r0] mov r0, r8 - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev mov r1, r0 mov r0, r8 - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei ldr r2, [r10] mov r1, #0 sub r2, r0, r2 @@ -6330,10 +6330,10 @@ _020b6538: subne r0, r8, #1 cmpne r1, r0 beq _020b65c0 - ldr r0, _020b6ac8 ; =data_027e0e60 + ldr r0, _020b6ac8 ; =gMapManager add r1, r7, #0xc4 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev ldr r1, [r0] mov r9, r0 ldr r1, [r1, #0x54] @@ -6536,7 +6536,7 @@ _020b6830: cmp r1, r0 blt _020b68c0 ldr r1, [r10] - ldr r0, _020b6ac8 ; =data_027e0e60 + ldr r0, _020b6ac8 ; =gMapManager str r1, [sp, #0x50] ldr r2, [r10, #4] ldr r1, [r0] @@ -6545,7 +6545,7 @@ _020b6830: add r0, sp, #0x1c add r2, sp, #0x50 str r3, [sp, #0x58] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #0x1c] mov r1, r0 mov r0, r0, lsr #0x5 @@ -6705,7 +6705,7 @@ _020b6aa0: arm_func_end func_ov00_020b5cb4 _020b6ac0: .word data_027e0ff8 _020b6ac4: .word 0x0000ffff -_020b6ac8: .word data_027e0e60 +_020b6ac8: .word gMapManager _020b6acc: .word data_027e0d0c _020b6ad0: .word data_ov00_020e64a8 _020b6ad4: .word data_027e0d38 @@ -6721,13 +6721,13 @@ _020b6aec: .word data_ov00_020e647c func_ov00_020b6af0: ; 0x020b6af0 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x14 - ldr r0, _020b6b94 ; =data_027e0e60 + ldr r0, _020b6b94 ; =gMapManager mov r5, r1 ldr r0, [r0] ldrb r1, [r0, #9] cmp r1, #0 beq _020b6b84 - bl func_ov00_0208412c + bl _ZN10MapManager18func_ov00_0208412cEv ldr r1, _020b6b98 ; =data_027e0fe4 mov r4, r0 ldr r1, [r1] @@ -6743,7 +6743,7 @@ func_ov00_020b6af0: ; 0x020b6af0 beq _020b6b84 ldrh r1, [r0, #0x20] ldr r2, [r5] - ldr r0, _020b6b94 ; =data_027e0e60 + ldr r0, _020b6b94 ; =gMapManager str r2, [sp, #8] ldr r2, [r5, #4] ldr r0, [r0] @@ -6751,7 +6751,7 @@ func_ov00_020b6af0: ; 0x020b6af0 ldr r3, [r5, #8] add r2, sp, #8 str r3, [sp, #0x10] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 addne sp, sp, #0x14 addne r0, r4, r6 @@ -6763,7 +6763,7 @@ _020b6b84: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020b6af0 -_020b6b94: .word data_027e0e60 +_020b6b94: .word gMapManager _020b6b98: .word data_027e0fe4 _020b6b9c: .word 0x574c4354 _020b6ba0: .word 0xfffff666 @@ -6881,7 +6881,7 @@ _020b6c3c: strb r0, [sp, #0xb9] str r1, [sp, #0x1c] ldr r1, [r6, #0x2c] - ldr r4, _020b6e6c ; =data_027e0e60 + ldr r4, _020b6e6c ; =gMapManager str r1, [sp] str r0, [sp, #4] ldrh r3, [r6, #0xa4] @@ -6956,7 +6956,7 @@ _020b6e28: .align 2, 0 arm_func_end func_ov00_020b6ba4 _020b6e68: .word 0x0000ffff -_020b6e6c: .word data_027e0e60 +_020b6e6c: .word gMapManager .global func_ov00_020b6e70 arm_func_start func_ov00_020b6e70 @@ -7002,8 +7002,8 @@ func_ov00_020b6ea0: ; 0x020b6ea0 cmp r5, #1 moveq r0, #1 streqb r0, [r4, #0xce] - ldr r1, _020b7328 ; =func_ov00_0207e968 - ldr r3, _020b732c ; =func_ov00_0207e96c + ldr r1, _020b7328 ; =_ZN7MapBase18func_ov00_0207e968Ev + ldr r3, _020b732c ; =_ZN7MapBase18func_ov00_0207e96cEv str r1, [sp] add r0, sp, #0x90 mov r1, #3 @@ -7106,7 +7106,7 @@ _020b7000: str ip, [sp, #0x20] str lr, [sp, #0x28] bl func_01ff9e64 - ldr r0, _020b7334 ; =data_027e0e60 + ldr r0, _020b7334 ; =gMapManager ldr r6, [sp, #0x14] ldr r3, [sp, #0x18] ldr r2, [sp, #0x1c] @@ -7116,7 +7116,7 @@ _020b7000: str r6, [sp, #8] str r3, [sp, #0xc] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r4, #0x24] ldr r1, [r4, #0x2c] sub r1, r2, r1 @@ -7125,7 +7125,7 @@ _020b7000: movlt r0, #0 cmp r0, #0 beq _020b70fc - ldr r3, _020b7328 ; =func_ov00_0207e968 + ldr r3, _020b7328 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, sp, #0x90 mov r1, #3 mov r2, #0x10 @@ -7152,7 +7152,7 @@ _020b70fc: _020b7138: cmp r2, #0 bge _020b7160 - ldr r3, _020b7328 ; =func_ov00_0207e968 + ldr r3, _020b7328 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, sp, #0x90 mov r1, #3 mov r2, #0x10 @@ -7164,7 +7164,7 @@ _020b7160: cmp r5, #2 mov r1, #3 bne _020b7188 - ldr r3, _020b7328 ; =func_ov00_0207e968 + ldr r3, _020b7328 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, sp, #0x90 mov r2, #0x10 bl func_0204f754 @@ -7177,13 +7177,13 @@ _020b7188: add r0, sp, #0x90 mov r2, #0x10 blt _020b71d8 - ldr r3, _020b7328 ; =func_ov00_0207e968 + ldr r3, _020b7328 ; =_ZN7MapBase18func_ov00_0207e968Ev bl func_0204f754 add sp, sp, #0xc4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _020b71b0: - ldr r3, _020b7328 ; =func_ov00_0207e968 + ldr r3, _020b7328 ; =_ZN7MapBase18func_ov00_0207e968Ev mov r5, #1 add r0, sp, #0x90 mov r1, #3 @@ -7194,7 +7194,7 @@ _020b71b0: mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _020b71d8: - ldr r3, _020b7328 ; =func_ov00_0207e968 + ldr r3, _020b7328 ; =_ZN7MapBase18func_ov00_0207e968Ev bl func_0204f754 b _020b7318 _020b71e4: @@ -7207,8 +7207,8 @@ _020b71f0: ldrsh r0, [r4, #0x5a] cmp r0, #4 bne _020b7318 - ldr r1, _020b7328 ; =func_ov00_0207e968 - ldr r3, _020b732c ; =func_ov00_0207e96c + ldr r1, _020b7328 ; =_ZN7MapBase18func_ov00_0207e968Ev + ldr r3, _020b732c ; =_ZN7MapBase18func_ov00_0207e96cEv str r1, [sp] add r0, sp, #0x44 mov r1, #3 @@ -7270,7 +7270,7 @@ _020b71f0: rsb r6, r0, #0 cmp r6, r5 movle r6, r5 - ldr r3, _020b7328 ; =func_ov00_0207e968 + ldr r3, _020b7328 ; =_ZN7MapBase18func_ov00_0207e968Ev add r0, sp, #0x44 mov r1, #3 mov r2, #0x10 @@ -7283,10 +7283,10 @@ _020b7318: .align 2, 0 arm_func_end func_ov00_020b6ea0 _020b7324: .word data_027e0f6c -_020b7328: .word func_ov00_0207e968 -_020b732c: .word func_ov00_0207e96c +_020b7328: .word _ZN7MapBase18func_ov00_0207e968Ev +_020b732c: .word _ZN7MapBase18func_ov00_0207e96cEv _020b7330: .word data_02050f54 -_020b7334: .word data_027e0e60 +_020b7334: .word gMapManager _020b7338: .word 0x00000e66 .global func_ov00_020b733c @@ -7495,7 +7495,7 @@ _020b75b0: str r1, [sp, #4] tst r0, #0x3f bne _020b7714 - ldr r0, _020b7750 ; =data_027e0e60 + ldr r0, _020b7750 ; =gMapManager ldrb r4, [r5, #0x14] ldrb r3, [r5, #0x15] ldr r0, [r0] @@ -7506,12 +7506,12 @@ _020b75b0: add r1, sp, #0x14 strb r4, [sp] strb r3, [sp, #1] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi add r0, sp, #0x14 add r1, r6, #0x20 mov r2, r0 bl func_01ff9bf8 - ldr r0, _020b7750 ; =data_027e0e60 + ldr r0, _020b7750 ; =gMapManager ldrb r2, [r6, #0xc4] ldrb r1, [r6, #0xc5] ldr r0, [r0] @@ -7520,7 +7520,7 @@ _020b75b0: strb r1, [r3, #1] ldr r2, [r3] add r1, sp, #8 - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi add r0, sp, #8 add r1, r6, #0x20 mov r2, r0 @@ -7581,7 +7581,7 @@ _020b7714: .align 2, 0 arm_func_end func_ov00_020b73b0 _020b774c: .word data_027e0fa0 -_020b7750: .word data_027e0e60 +_020b7750: .word gMapManager .global func_ov00_020b7754 arm_func_start func_ov00_020b7754 @@ -9927,12 +9927,12 @@ _020b9260: _020b9278: mvn r1, #0 str r1, [r9, #0x280] - ldr r0, _020b92d4 ; =data_027e0e60 + ldr r0, _020b92d4 ; =gMapManager str r1, [r9, #0x284] ldr r1, [r0] add r0, sp, #4 add r2, r9, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r0, [sp, #4] strb r0, [r9, #0x288] ldrb r0, [sp, #5] @@ -9952,7 +9952,7 @@ _020b92b8: arm_func_end func_ov00_020b917c _020b92cc: .word data_ov00_020dc81c _020b92d0: .word data_027e0e58 -_020b92d4: .word data_027e0e60 +_020b92d4: .word gMapManager .global func_ov00_020b92d8 arm_func_start func_ov00_020b92d8 @@ -10135,7 +10135,7 @@ _020b94e8: add r0, r1, r0 str r0, [r7, #0x15c] _020b956c: - ldr r0, _020b9758 ; =data_027e0e60 + ldr r0, _020b9758 ; =gMapManager ldr r3, [sp] ldr r0, [r0] add r1, sp, #8 @@ -10144,7 +10144,7 @@ _020b956c: str r5, [sp, #0xc] str r6, [sp, #0x10] str r3, [sp, #0x14] - bl func_ov00_020853fc + bl _ZN10MapManager18func_ov00_020853fcEv cmp r0, #0 ldrnesb r1, [r0, #0x12] cmpne r1, #1 @@ -10268,7 +10268,7 @@ _020b9748: .word data_027e0fc8 _020b974c: .word data_027e0f94 _020b9750: .word data_027e0fe4 _020b9754: .word data_ov00_020e67d8 -_020b9758: .word data_027e0e60 +_020b9758: .word gMapManager .global func_ov00_020b975c arm_func_start func_ov00_020b975c @@ -11105,7 +11105,7 @@ func_ov00_020ba204: ; 0x020ba204 add r0, sp, #0x2c str r0, [sp, #0xc] str r3, [sp, #0x10] - ldr r0, _020ba34c ; =data_027e0e60 + ldr r0, _020ba34c ; =gMapManager add r1, sp, #0x4c ldr r0, [r0] add r2, sp, #0x20 @@ -11133,7 +11133,7 @@ _020ba32c: _020ba340: .word data_ov00_020e67b8 _020ba344: .word 0x0000ffff _020ba348: .word 0x00000333 -_020ba34c: .word data_027e0e60 +_020ba34c: .word gMapManager .global func_ov00_020ba350 arm_func_start func_ov00_020ba350 @@ -11624,7 +11624,7 @@ _020ba958: cmp r0, #0x31 bne _020baab8 ldr r1, _020bac68 ; =data_027e0f64 - ldr r0, _020bac6c ; =data_027e0e60 + ldr r0, _020bac6c ; =gMapManager ldr r1, [r1] ldr r2, _020bac70 ; =data_02050f54 ldr r1, [r1, #4] @@ -11670,7 +11670,7 @@ _020ba958: str ip, [sp, #0xc] str r3, [sp, #0x10] str r7, [sp, #0x14] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x1c] cmp r1, r0 movlt r0, #1 @@ -11727,7 +11727,7 @@ _020baab8: ldr r7, [sp, #0x18] orr r4, r4, ip, lsl #20 add r7, r7, r4 - ldr r1, _020bac6c ; =data_027e0e60 + ldr r1, _020bac6c ; =gMapManager orr r2, r2, r0, lsl #20 ldr r4, [sp, #0x20] ldr r0, [r1] @@ -11739,7 +11739,7 @@ _020baab8: str r7, [sp] str r3, [sp, #4] str r4, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x1c] cmp r1, r0 movlt r0, #1 @@ -11810,7 +11810,7 @@ _020bac5c: .word data_ov00_020eec9c _020bac60: .word data_027e0f94 _020bac64: .word data_027e0d38 _020bac68: .word data_027e0f64 -_020bac6c: .word data_027e0e60 +_020bac6c: .word gMapManager _020bac70: .word data_02050f54 .global func_ov00_020bac74 @@ -11940,7 +11940,7 @@ _020badf0: mov r0, #0x24 smlabb r3, r1, r0, r2 ldr r1, [r3, #4] - ldr r0, _020baf60 ; =data_027e0e60 + ldr r0, _020baf60 ; =gMapManager str r1, [r6, #0x158] ldr r2, [r3, #8] add r1, sp, #0xc @@ -11955,7 +11955,7 @@ _020badf0: str r3, [sp, #0x10] ldr r3, [r6, #0x160] str r3, [sp, #0x14] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r1, r0, #0x1000 str r1, [r6, #0x15c] mov r0, r6 @@ -12008,7 +12008,7 @@ _020baef0: mov r0, #0x24 smlabb r3, r1, r0, r2 ldr r1, [r3, #4] - ldr r0, _020baf60 ; =data_027e0e60 + ldr r0, _020baf60 ; =gMapManager str r1, [r6, #0x158] ldr r2, [r3, #8] add r1, sp, #0 @@ -12023,7 +12023,7 @@ _020baef0: str r3, [sp, #4] ldr r3, [r6, #0x160] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x1000 str r0, [r6, #0x15c] _020baf50: @@ -12033,7 +12033,7 @@ _020baf50: .align 2, 0 arm_func_end func_ov00_020bad44 _020baf5c: .word data_ov00_020e8b08 -_020baf60: .word data_027e0e60 +_020baf60: .word gMapManager _020baf64: .word 0x00000333 .global func_ov00_020baf68 @@ -12093,7 +12093,7 @@ _020baff8: _020bb020: str r0, [r5, #0x160] ldr r1, [r5, #0x158] - ldr r0, _020bb0a8 ; =data_027e0e60 + ldr r0, _020bb0a8 ; =gMapManager str r1, [sp] ldr r1, [r5, #0x15c] ldr r0, [r0] @@ -12102,7 +12102,7 @@ _020bb020: add r1, sp, #0 mov r2, #1 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x1000 str r0, [r5, #0x15c] ldr r1, [r5, #0x158] @@ -12127,7 +12127,7 @@ _020bb020: .align 2, 0 arm_func_end func_ov00_020baf68 _020bb0a4: .word data_ov00_020e8b08 -_020bb0a8: .word data_027e0e60 +_020bb0a8: .word gMapManager .global func_ov00_020bb0ac arm_func_start func_ov00_020bb0ac @@ -12594,13 +12594,13 @@ func_ov00_020bb44c: ; 0x020bb44c ldrb r0, [r0, #0x12] cmp r0, #0 movne r0, #0xc - ldreq r0, _020bb468 ; =data_027e0fbc + ldreq r0, _020bb468 ; =gHealthManager ldreq r0, [r0] ldreqsh r0, [r0] bx lr .align 2, 0 arm_func_end func_ov00_020bb44c -_020bb468: .word data_027e0fbc +_020bb468: .word gHealthManager .global func_ov00_020bb46c arm_func_start func_ov00_020bb46c @@ -13909,7 +13909,7 @@ _020bc3e0: ldr r0, [r2, #0xc] str r0, [sp, #0x14] _020bc40c: - ldr r0, _020bc464 ; =data_027e0e60 + ldr r0, _020bc464 ; =gMapManager ldr lr, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] @@ -13919,7 +13919,7 @@ _020bc40c: str lr, [sp] str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p ldr r1, _020bc468 ; =data_027e0fac ldr r3, [sp, #0x10] ldrsh r2, [r1] @@ -13933,7 +13933,7 @@ _020bc40c: .align 2, 0 arm_func_end func_ov00_020bc398 _020bc460: .word data_027e0f94 -_020bc464: .word data_027e0e60 +_020bc464: .word gMapManager _020bc468: .word data_027e0fac .global func_ov00_020bc46c @@ -14298,14 +14298,14 @@ _020bc8b4: .word data_027e0fd0 func_ov00_020bc8b8: ; 0x020bc8b8 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #4 - ldr r3, _020bc908 ; =data_027e0e60 + ldr r3, _020bc908 ; =gMapManager mov r5, r1 ldr r1, [r3] mov r6, r0 mov r4, r2 add r0, sp, #0 mov r2, r5 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r1, [sp] add r2, r6, r4, lsl #1 add r0, r6, r4, lsl #2 @@ -14318,7 +14318,7 @@ func_ov00_020bc8b8: ; 0x020bc8b8 ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020bc8b8 -_020bc908: .word data_027e0e60 +_020bc908: .word gMapManager .global func_ov00_020bc90c arm_func_start func_ov00_020bc90c @@ -14326,26 +14326,26 @@ func_ov00_020bc90c: ; 0x020bc90c stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r2 - ldr r0, _020bc95c ; =data_027e0e60 + ldr r0, _020bc95c ; =gMapManager add r2, r6, r5, lsl #1 mov r4, r1 ldrb r1, [r2, #0x2c] ldr r0, [r0] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [r4] add r0, r6, r5, lsl #2 ldr r0, [r0, #0x30] add r1, r6, r5, lsl #1 str r0, [r4, #4] - ldr r0, _020bc95c ; =data_027e0e60 + ldr r0, _020bc95c ; =gMapManager ldrb r1, [r1, #0x2d] ldr r0, [r0] - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei str r0, [r4, #8] ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020bc90c -_020bc95c: .word data_027e0e60 +_020bc95c: .word gMapManager .global func_ov00_020bc960 arm_func_start func_ov00_020bc960 @@ -15332,7 +15332,7 @@ func_ov00_020bd510: ; 0x020bd510 ldmltia sp!, {r3, r4, r5, pc} rsb r1, r2, #0 mov r2, #0 - bl _ZN11ItemManager10GiveRupeesEjj + bl _ZN11ItemManager10GiveRupeesEsb mvn lr, #0 mov r3, #0 str r3, [sp, #0xc] @@ -16474,11 +16474,11 @@ _020be334: _020be338: cmp r0, #0 ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _020be404 ; =data_027e0e60 + ldr r0, _020be404 ; =gMapManager ldrh r1, [r5, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmeqia sp!, {r3, r4, r5, pc} ldrb r0, [r5, #0x2a] @@ -16528,7 +16528,7 @@ _020be3e4: .align 2, 0 arm_func_end func_ov00_020be294 _020be400: .word data_027e0fc8 -_020be404: .word data_027e0e60 +_020be404: .word gMapManager _020be408: .word gAdventureFlags .global func_ov00_020be40c @@ -18103,7 +18103,7 @@ _020bf70c: str r0, [sp, #0xc] mov r1, #0 str r1, [sp, #0x10] - ldr r0, _020bff3c ; =data_027e0e60 + ldr r0, _020bff3c ; =gMapManager add r1, sp, #0x154 ldr r0, [r0] add r2, sp, #0xe4 @@ -18238,7 +18238,7 @@ _020bf794: add r0, sp, #0x14 str r0, [sp, #0xc] str r3, [sp, #0x10] - ldr r0, _020bff3c ; =data_027e0e60 + ldr r0, _020bff3c ; =gMapManager add r1, sp, #0xf4 ldr r0, [r0] add r2, sp, #0x30 @@ -18637,7 +18637,7 @@ _020bff2c: .word data_ov00_020e6f90 _020bff30: .word data_ov00_020dd294 _020bff34: .word data_ov00_020eec9c _020bff38: .word gItemManager -_020bff3c: .word data_027e0e60 +_020bff3c: .word gMapManager _020bff40: .word 0x0000099a _020bff44: .word data_ov00_020dd268 _020bff48: .word data_027e0fe4 diff --git a/asm/ov00/ov00_020c3e54.inc b/asm/ov00/ov00_020c3e54.inc index 50984c89..840dc10a 100644 --- a/asm/ov00/ov00_020c3e54.inc +++ b/asm/ov00/ov00_020c3e54.inc @@ -1,6 +1,26 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager17GetMapData_Unk_48Ev +.extern _ZN10MapManager17GetMapData_Unk_4cEv +.extern _ZN10MapManager17Get_MapData_Unk28Ev +.extern _ZN10MapManager18func_ov00_02083588Ev +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_020839d4Ev +.extern _ZN10MapManager18func_ov00_020839f8Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager18func_ov00_020840dcEv +.extern _ZN10MapManager18func_ov00_02084164Ev +.extern _ZN10MapManager18func_ov00_02084838Ev +.extern _ZN10MapManager18func_ov00_020849c0Ev +.extern _ZN10MapManager20GetCourseData_Unk_1cEv +.extern _ZN10MapManager20GetCourseData_Unk_1dEv .extern _ZN10PlayerBase13GetEquipSwordEv .extern _ZN10PlayerBase14GetEquipShieldEv .extern _ZN11ItemManager15SetEquippedItemEi @@ -119,7 +139,6 @@ .extern data_027e0e28 .extern data_027e0e58 .extern data_027e0e5c -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f70 @@ -129,7 +148,6 @@ .extern data_027e0f94 .extern data_027e0fac .extern data_027e0fb8 -.extern data_027e0fbc .extern data_027e0fc8 .extern data_027e0fd4 .extern data_027e0fe0 @@ -500,26 +518,6 @@ .extern func_ov00_02081ef4 .extern func_ov00_02081f4c .extern func_ov00_02081f50 -.extern func_ov00_02082d28 -.extern func_ov00_02082d34 -.extern func_ov00_0208335c -.extern func_ov00_02083588 -.extern func_ov00_020836dc -.extern func_ov00_020839d4 -.extern func_ov00_020839f8 -.extern func_ov00_02083a1c -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083ee0 -.extern func_ov00_02083f44 -.extern func_ov00_02083fb0 -.extern func_ov00_020840c4 -.extern func_ov00_020840dc -.extern func_ov00_02084114 -.extern func_ov00_02084120 -.extern func_ov00_02084164 -.extern func_ov00_02084838 -.extern func_ov00_020849c0 .extern func_ov00_02087338 .extern func_ov00_0208766c .extern func_ov00_020876bc @@ -669,7 +667,9 @@ .extern func_ov26_021767ec .extern func_ov29_0216d918 .extern gAdventureFlags +.extern gHealthManager .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern strcat .extern strcpy diff --git a/asm/ov00/ov00_020c3e54.s b/asm/ov00/ov00_020c3e54.s index 3c6b2f89..7236a01d 100644 --- a/asm/ov00/ov00_020c3e54.s +++ b/asm/ov00/ov00_020c3e54.s @@ -296,7 +296,7 @@ _020c40b4: strlt r2, [r0, #0x3c] ldr r2, [r6] ldr r1, [r9, #0x1c] - ldr r0, _020c42d4 ; =data_027e0e60 + ldr r0, _020c42d4 ; =gMapManager str r1, [r2, #0x34] ldr r1, [r9, #0x20] str r1, [r2, #0x38] @@ -320,12 +320,12 @@ _020c40b4: ldr r1, [r10, #8] str r1, [r2, #0x5c] ldr r0, [r0] - bl func_ov00_02082d28 + bl _ZN10MapManager20GetCourseData_Unk_1cEv ldr r2, [r6] - ldr r1, _020c42d4 ; =data_027e0e60 + ldr r1, _020c42d4 ; =gMapManager strb r0, [r2, #0x10] ldr r0, [r1] - bl func_ov00_02082d34 + bl _ZN10MapManager20GetCourseData_Unk_1dEv ldr r2, [r6] add r1, r5, #1 strb r0, [r2, #0x11] @@ -378,7 +378,7 @@ _020c42c4: arm_func_end func_ov00_020c4048 _020c42cc: .word data_027e0fe4 _020c42d0: .word 0x0000ffff -_020c42d4: .word data_027e0e60 +_020c42d4: .word gMapManager .global func_ov00_020c42d8 arm_func_start func_ov00_020c42d8 @@ -923,7 +923,7 @@ _020c498c: ldrb r0, [r6, #6] cmp r0, #0 beq _020c49fc - ldr r0, _020c4ae0 ; =data_027e0e60 + ldr r0, _020c4ae0 ; =gMapManager ldr lr, [sp, #0x20] ldr ip, [sp, #0x24] ldr r3, [sp, #0x28] @@ -933,7 +933,7 @@ _020c498c: str lr, [sp, #8] str ip, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #4] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -1003,7 +1003,7 @@ _020c4ad4: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020c4924 -_020c4ae0: .word data_027e0e60 +_020c4ae0: .word gMapManager _020c4ae4: .word data_027e0ff0 .global func_ov00_020c4ae8 @@ -1605,37 +1605,37 @@ func_ov00_020c51d0: ; 0x020c51d0 arm_func_start func_ov00_020c522c func_ov00_020c522c: ; 0x020c522c stmdb sp!, {r4, r5, r6, lr} - ldr r2, _020c5284 ; =data_027e0e60 + ldr r2, _020c5284 ; =gMapManager mov r6, r0 ldr r4, [r2] mov r5, r1 ldr r1, [r6] mov r0, r4 - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev mov r1, r0 mov r0, r4 - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [r5] ldr r1, [r6, #4] mov r0, r4 str r1, [r5, #4] ldr r1, [r6, #8] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev mov r1, r0 mov r0, r4 - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei str r0, [r5, #8] ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020c522c -_020c5284: .word data_027e0e60 +_020c5284: .word gMapManager .global func_ov00_020c5288 arm_func_start func_ov00_020c5288 func_ov00_020c5288: ; 0x020c5288 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x14 - ldr r1, _020c532c ; =data_027e0e60 + ldr r1, _020c532c ; =gMapManager mov r2, #0 mov r5, r0 ldr r4, [r1] @@ -1643,15 +1643,15 @@ func_ov00_020c5288: ; 0x020c5288 strb r2, [sp, #1] ldr r1, [r5] mov r0, r4 - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev strb r0, [sp] ldr r1, [r5, #8] mov r0, r4 - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev strb r0, [sp, #1] add r1, sp, #0 mov r0, r4 - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x1e addeq sp, sp, #0x14 moveq r0, #1 @@ -1665,7 +1665,7 @@ func_ov00_020c5288: ; 0x020c5288 ldr r3, [r5, #8] mov r1, r4 str r3, [sp, #0x10] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #4] mov r0, r0, lsr #0x9 and r0, r0, #3 @@ -1676,42 +1676,42 @@ func_ov00_020c5288: ; 0x020c5288 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov00_020c5288 -_020c532c: .word data_027e0e60 +_020c532c: .word gMapManager .global func_ov00_020c5330 arm_func_start func_ov00_020c5330 func_ov00_020c5330: ; 0x020c5330 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 - ldr r0, _020c5370 ; =data_027e0e60 + ldr r0, _020c5370 ; =gMapManager mov r5, r1 ldrb r1, [r6, #1] ldr r0, [r0] - bl func_ov00_02083c50 - ldr r2, _020c5370 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083c50Ei + ldr r2, _020c5370 ; =gMapManager mov r4, r0 ldrb r1, [r6] ldr r0, [r2] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [r5] mov r0, #0 stmib r5, {r0, r4} ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020c5330 -_020c5370: .word data_027e0e60 +_020c5370: .word gMapManager .global func_ov00_020c5374 arm_func_start func_ov00_020c5374 func_ov00_020c5374: ; 0x020c5374 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 - ldr r3, _020c53ac ; =data_027e0e60 + ldr r3, _020c53ac ; =gMapManager mov r4, r1 ldr r1, [r3] mov r2, r0 add r0, sp, #0 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r0, [sp] strb r0, [r4] ldrb r0, [sp, #1] @@ -1720,7 +1720,7 @@ func_ov00_020c5374: ; 0x020c5374 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov00_020c5374 -_020c53ac: .word data_027e0e60 +_020c53ac: .word gMapManager .global func_ov00_020c53b0 arm_func_start func_ov00_020c53b0 @@ -1902,7 +1902,7 @@ func_ov00_020c558c: ; 0x020c558c str r0, [sp, #4] add r1, sp, #0xc str r1, [sp, #8] - ldr r0, _020c5654 ; =data_027e0e60 + ldr r0, _020c5654 ; =gMapManager add r1, sp, #0x1c ldr r0, [r0] add r2, sp, #0x10 @@ -1923,7 +1923,7 @@ _020c5640: .align 2, 0 arm_func_end func_ov00_020c558c _020c5650: .word data_ov00_020e892c -_020c5654: .word data_027e0e60 +_020c5654: .word gMapManager .global func_ov00_020c5658 arm_func_start func_ov00_020c5658 @@ -4549,7 +4549,7 @@ func_ov00_020c7764: ; 0x020c7764 rsb r0, r0, #0 cmp r1, r0 strlt r0, [sp, #0x18] - ldr r0, _020c7e9c ; =data_027e0e60 + ldr r0, _020c7e9c ; =gMapManager ldr ip, [sp, #0x14] ldr r4, [r0] ldr r8, [sp, #0x18] @@ -4560,10 +4560,10 @@ func_ov00_020c7764: ; 0x020c7764 str ip, [sp, #8] str r8, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r8, r0 mov r0, r4 - bl func_ov00_02084120 + bl _ZN10MapManager17GetMapData_Unk_4cEv add r0, r8, r0 str r0, [sp, #0x18] _020c77e0: @@ -4723,9 +4723,9 @@ _020c79b0: add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, pc} _020c7a38: - ldr r0, _020c7e9c ; =data_027e0e60 + ldr r0, _020c7e9c ; =gMapManager ldr r0, [r0] - bl func_ov00_02084838 + bl _ZN10MapManager18func_ov00_02084838Ev cmp r0, #0 beq _020c7c8c cmp r7, #3 @@ -5018,7 +5018,7 @@ _020c7e94: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov00_020c7764 -_020c7e9c: .word data_027e0e60 +_020c7e9c: .word gMapManager _020c7ea0: .word data_027e0d38 _020c7ea4: .word data_027e0e58 _020c7ea8: .word 0x000001ee @@ -5100,7 +5100,7 @@ func_ov00_020c7f98: ; 0x020c7f98 movs r5, r3 stmia r4, {r0, r1, r2} beq _020c7ffc - ldr r0, _020c8048 ; =data_027e0e60 + ldr r0, _020c8048 ; =gMapManager ldr ip, [sp, #0x10] ldr r4, [r0] ldr r7, [sp, #0x14] @@ -5111,10 +5111,10 @@ func_ov00_020c7f98: ; 0x020c7f98 str ip, [sp, #4] str r7, [sp, #8] str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r7, r0 mov r0, r4 - bl func_ov00_02084120 + bl _ZN10MapManager17GetMapData_Unk_4cEv add r0, r7, r0 str r0, [sp, #0x14] _020c7ffc: @@ -5142,7 +5142,7 @@ _020c8040: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov00_020c7f98 -_020c8048: .word data_027e0e60 +_020c8048: .word gMapManager _020c804c: .word 0x00000ccd .global func_ov00_020c8050 @@ -7684,7 +7684,7 @@ func_ov00_020ca094: ; 0x020ca094 cmp r0, #0 beq _020ca108 ldr r1, [r5, #0x48] - ldr r0, _020ca144 ; =data_027e0e60 + ldr r0, _020ca144 ; =gMapManager str r1, [sp] ldr r1, [r5, #0x4c] ldr r7, [r0] @@ -7694,10 +7694,10 @@ func_ov00_020ca094: ; 0x020ca094 mov r0, r7 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r6, r0 mov r0, r7 - bl func_ov00_02084120 + bl _ZN10MapManager17GetMapData_Unk_4cEv add r0, r6, r0 str r0, [r5, #0x4c] _020ca108: @@ -7719,7 +7719,7 @@ _020ca12c: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov00_020ca094 -_020ca144: .word data_027e0e60 +_020ca144: .word gMapManager .global func_ov00_020ca148 arm_func_start func_ov00_020ca148 @@ -8582,10 +8582,10 @@ _020cab14: strb r2, [sp, #4] strb r2, [sp, #5] bl func_ov00_020c5374 - ldr r0, _020cace8 ; =data_027e0e60 + ldr r0, _020cace8 ; =gMapManager add r1, sp, #4 ldr r0, [r0] - bl func_ov00_02084164 + bl _ZN10MapManager18func_ov00_02084164Ev cmp r0, #0 beq _020cab8c ldrb r0, [sp, #4] @@ -8692,7 +8692,7 @@ _020cacd8: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020caa90 -_020cace8: .word data_027e0e60 +_020cace8: .word gMapManager _020cacec: .word data_027e0ffc _020cacf0: .word data_027e0f64 @@ -10366,7 +10366,7 @@ func_ov00_020cc180: ; 0x020cc180 sub sp, sp, #0xc mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _020cc1f4 ; =data_027e0e60 + ldr r0, _020cc1f4 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -10375,7 +10375,7 @@ func_ov00_020cc180: ; 0x020cc180 add r1, sp, #0 str r2, [sp, #8] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x4c] cmp r1, r0 movge r0, #1 @@ -10394,7 +10394,7 @@ _020cc1d8: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov00_020cc180 -_020cc1f4: .word data_027e0e60 +_020cc1f4: .word gMapManager .global func_ov00_020cc1f8 arm_func_start func_ov00_020cc1f8 @@ -10456,7 +10456,7 @@ func_ov00_020cc27c: ; 0x020cc27c stmdb sp!, {r3, lr} sub sp, sp, #0x10 ldr r2, [r0, #0x48] - ldr r1, _020cc2d0 ; =data_027e0e60 + ldr r1, _020cc2d0 ; =gMapManager str r2, [sp, #4] ldr r2, [r0, #0x4c] ldr r1, [r1] @@ -10465,7 +10465,7 @@ func_ov00_020cc27c: ; 0x020cc27c add r0, sp, #0 add r2, sp, #4 str r3, [sp, #0xc] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -10476,7 +10476,7 @@ func_ov00_020cc27c: ; 0x020cc27c ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov00_020cc27c -_020cc2d0: .word data_027e0e60 +_020cc2d0: .word gMapManager .global func_ov00_020cc2d4 arm_func_start func_ov00_020cc2d4 @@ -10535,7 +10535,7 @@ func_ov00_020cc308: ; 0x020cc308 add lr, sp, #0x14 str r1, [sp, #0x30] ldr r1, [r4, #0x54] - ldr ip, _020cc3e4 ; =data_027e0e60 + ldr ip, _020cc3e4 ; =gMapManager str r1, [sp, #0x1c] ldr r2, [r4, #0x58] add r1, sp, #0x34 @@ -10557,7 +10557,7 @@ func_ov00_020cc308: ; 0x020cc308 .align 2, 0 arm_func_end func_ov00_020cc308 _020cc3e0: .word 0x0000ffff -_020cc3e4: .word data_027e0e60 +_020cc3e4: .word gMapManager .global func_ov00_020cc3e8 arm_func_start func_ov00_020cc3e8 @@ -11129,7 +11129,7 @@ func_ov00_020cca68: ; 0x020cca68 str ip, [sp, #0x1c] ldrh r0, [r4, #0x9c] ldr r1, [sp, #0x20] - ldr r2, _020ccb00 ; =data_027e0e60 + ldr r2, _020ccb00 ; =gMapManager bic r0, r0, #2 mov r0, r0, lsl #0x10 str r3, [sp, #0xc] @@ -11150,7 +11150,7 @@ func_ov00_020cca68: ; 0x020cca68 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov00_020cca68 -_020ccb00: .word data_027e0e60 +_020ccb00: .word gMapManager .global func_ov00_020ccb04 arm_func_start func_ov00_020ccb04 @@ -12720,7 +12720,7 @@ _020cdec8: str r0, [sp] mov r2, r3 ldrh r3, [r4, #0x9c] - ldr r0, _020cdfc8 ; =data_027e0e60 + ldr r0, _020cdfc8 ; =gMapManager add r1, sp, #0x18 str r3, [sp, #4] ldr r3, [r4, #0xa0] @@ -12742,7 +12742,7 @@ _020cdec8: .align 2, 0 arm_func_end func_ov00_020cde0c _020cdfc4: .word data_02050f54 -_020cdfc8: .word data_027e0e60 +_020cdfc8: .word gMapManager .global func_ov00_020cdfcc arm_func_start func_ov00_020cdfcc @@ -13787,13 +13787,13 @@ _020cecd4: .word 0x000002fd func_ov00_020cecd8: ; 0x020cecd8 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 - ldr r4, _020ced5c ; =data_027e0e60 + ldr r4, _020ced5c ; =gMapManager mov r6, r0 ldr r0, [r4] mov r5, r1 mov r4, r2 mov r7, r3 - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev ldr r2, [sp, #0x20] mov r1, r4 mla r3, r2, r0, r7 @@ -13820,7 +13820,7 @@ func_ov00_020cecd8: ; 0x020cecd8 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov00_020cecd8 -_020ced5c: .word data_027e0e60 +_020ced5c: .word gMapManager _020ced60: .word data_ov00_020eec9c .global func_ov00_020ced64 @@ -13839,12 +13839,12 @@ _020ced78: .word data_ov00_020eec9c arm_func_start func_ov00_020ced7c func_ov00_020ced7c: ; 0x020ced7c stmdb sp!, {r4, r5, r6, lr} - ldr r0, _020cedb4 ; =data_027e0e60 + ldr r0, _020cedb4 ; =gMapManager mov r5, r2 ldr r0, [r0] mov r4, r3 mov r6, r1 - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev mla r2, r4, r0, r5 ldr r3, [sp, #0x10] ldr r0, _020cedb8 ; =data_ov00_020eec9c @@ -13854,7 +13854,7 @@ func_ov00_020ced7c: ; 0x020ced7c ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020ced7c -_020cedb4: .word data_027e0e60 +_020cedb4: .word gMapManager _020cedb8: .word data_ov00_020eec9c .global func_ov00_020cedbc @@ -14210,9 +14210,9 @@ func_ov00_020cf13c: ; 0x020cf13c blx func_ov00_02078e00 b _020cf184 _020cf168: - ldr r0, _020cf1b0 ; =data_027e0e60 + ldr r0, _020cf1b0 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083588 + bl _ZN10MapManager18func_ov00_02083588Ev mov r2, r0 mov r0, r4 mov r1, r5 @@ -14231,7 +14231,7 @@ _020cf184: .align 2, 0 arm_func_end func_ov00_020cf13c _020cf1ac: .word data_027e0d3c -_020cf1b0: .word data_027e0e60 +_020cf1b0: .word gMapManager _020cf1b4: .word data_027e0c54 .global func_ov00_020cf1b8 @@ -15359,9 +15359,9 @@ _020cfd50: ldreqb r0, [r0, #4] cmpeq r0, #0 bne _020cfdb8 - ldr r0, _020cfde0 ; =data_027e0e60 + ldr r0, _020cfde0 ; =gMapManager ldr r0, [r0] - bl func_ov00_020849c0 + bl _ZN10MapManager18func_ov00_020849c0Ev cmp r0, #0 moveq r0, #1 ldmeqia sp!, {r3, pc} @@ -15378,7 +15378,7 @@ _020cfdd0: .word data_027e0c68 _020cfdd4: .word data_027e0e28 _020cfdd8: .word data_ov09_0211f5b4 _020cfddc: .word data_027e0d04 -_020cfde0: .word data_027e0e60 +_020cfde0: .word gMapManager .global func_ov00_020cfde4 arm_func_start func_ov00_020cfde4 @@ -18659,7 +18659,7 @@ _020d274c: mov r1, #0x3c bl func_01ff9b4c sub r0, r4, r0 - ldr r2, _020d27e8 ; =data_027e0fbc + ldr r2, _020d27e8 ; =gHealthManager ldr r1, _020d27ec ; =0x00007fff mov r0, r0, lsl #0x10 and r1, r1, r0, lsr #16 @@ -18688,7 +18688,7 @@ _020d27d8: .word gItemManager _020d27dc: .word data_027e0f64 _020d27e0: .word data_ov00_020df294 _020d27e4: .word data_027e103c -_020d27e8: .word data_027e0fbc +_020d27e8: .word gHealthManager _020d27ec: .word 0x00007fff .global func_ov00_020d27f0 @@ -19103,12 +19103,12 @@ _020d2d34: .word data_ov00_020e8b64 arm_func_start func_ov00_020d2d38 func_ov00_020d2d38: ; 0x020d2d38 stmdb sp!, {r3, r4, r5, lr} - ldr r2, _020d2da8 ; =data_027e0e60 + ldr r2, _020d2da8 ; =gMapManager mov r5, r0 ldr r0, [r2] mov r4, r1 add r1, r5, #0x20 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev ldr r1, [r0] ldr r1, [r1, #0x78] blx r1 @@ -19133,7 +19133,7 @@ _020d2d84: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov00_020d2d38 -_020d2da8: .word data_027e0e60 +_020d2da8: .word gMapManager _020d2dac: .word data_027e0f64 _020d2db0: .word data_027e0c68 @@ -19161,12 +19161,12 @@ _020d2de0: func_ov00_020d2de8: ; 0x020d2de8 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x18 - ldr r2, _020d2f00 ; =data_027e0e60 + ldr r2, _020d2f00 ; =gMapManager mov r6, r0 ldr r0, [r2] mov r5, r1 add r1, r6, #0x20 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev mov r4, r0 add r0, sp, #0 bl func_02037628 @@ -19234,7 +19234,7 @@ _020d2e8c: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020d2de8 -_020d2f00: .word data_027e0e60 +_020d2f00: .word gMapManager _020d2f04: .word data_027e0c68 .global func_ov00_020d2f08 @@ -20208,12 +20208,12 @@ _020d3a00: .word data_027e0d0c func_ov00_020d3a04: ; 0x020d3a04 stmdb sp!, {r3, r4, r5, lr} mov r4, r0 - ldr r0, _020d3b04 ; =data_027e0e60 + ldr r0, _020d3b04 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 ldrh r5, [r4, #0x24] - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _020d3afc ldrb r0, [r4, #0x2a] @@ -20276,7 +20276,7 @@ _020d3afc: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov00_020d3a04 -_020d3b04: .word data_027e0e60 +_020d3b04: .word gMapManager _020d3b08: .word gAdventureFlags _020d3b0c: .word data_027e0f90 _020d3b10: .word data_027e077c @@ -21200,7 +21200,7 @@ func_ov00_020d454c: ; 0x020d454c mov r1, r0 bl func_ov00_020b1a4c ldr r1, [r6, #0x158] - ldr r0, _020d4604 ; =data_027e0e60 + ldr r0, _020d4604 ; =gMapManager str r1, [sp] ldr r1, [r6, #0x15c] ldr r0, [r0] @@ -21209,7 +21209,7 @@ func_ov00_020d454c: ; 0x020d454c add r1, sp, #0 str r2, [sp, #8] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r6, #0x15c] ldr r1, [r6, #0x48] mov r0, r5, lsl #0xc @@ -21232,7 +21232,7 @@ func_ov00_020d454c: ; 0x020d454c ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov00_020d454c -_020d4604: .word data_027e0e60 +_020d4604: .word gMapManager .global func_ov00_020d4608 arm_func_start func_ov00_020d4608 @@ -21268,7 +21268,7 @@ _020d4648: str r0, [sp, #0x6c] _020d4660: ldr r1, [sp, #0x68] - ldr r0, _020d484c ; =data_027e0e60 + ldr r0, _020d484c ; =gMapManager add r3, r1, #0x40 ldr r6, [sp, #0x64] ldr r4, [sp, #0x6c] @@ -21278,8 +21278,8 @@ _020d4660: str r6, [sp, #0x58] str r4, [sp, #0x60] str r3, [sp, #0x5c] - bl func_ov00_02083a1c - ldr r0, _020d484c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _020d484c ; =gMapManager ldr r6, [sp, #0x58] ldr r4, [sp, #0x5c] ldr r3, [sp, #0x60] @@ -21289,19 +21289,19 @@ _020d4660: str r6, [sp, #0x2c] str r4, [sp, #0x30] str r3, [sp, #0x34] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [sp, #0x58] ldr r4, [sp, #0x5c] ldr r3, [sp, #0x60] str r2, [sp, #0x20] - ldr r1, _020d484c ; =data_027e0e60 + ldr r1, _020d484c ; =gMapManager mov r8, r0 ldr r0, [r1] add r1, sp, #0x20 mov r2, #0 str r4, [sp, #0x24] str r3, [sp, #0x28] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p mov r4, r0 ldrb r0, [sp, #0x10] ldrb r1, [sp, #0x11] @@ -21359,7 +21359,7 @@ _020d4790: add r0, r1, r4, lsl #12 str r0, [sp] ldr r2, [sp] - ldr r0, _020d484c ; =data_027e0e60 + ldr r0, _020d484c ; =gMapManager str r2, [sp, #0x1c] ldrb r2, [sp, #0x11] ldr r0, [r0] @@ -21367,7 +21367,7 @@ _020d4790: str r2, [sp, #0xc] mov r2, #0 str r8, [sp, #0x18] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p ldr r1, [sp, #0xc] subs r9, r0, r8 str r0, [sp, #4] @@ -21397,7 +21397,7 @@ _020d4834: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov00_020d4624 -_020d484c: .word data_027e0e60 +_020d484c: .word gMapManager _020d4850: .word func_ov00_020d4608 _020d4854: .word data_ov00_020df2f8 _020d4858: .word func_ov00_020b1940 @@ -21752,7 +21752,7 @@ _020d4d08: cmp r1, r0 blt _020d4da8 ldr r1, [r10, #0x48] - ldr r0, _020d4de0 ; =data_027e0e60 + ldr r0, _020d4de0 ; =gMapManager str r1, [sp, #0x10] ldr r1, [r10, #0x4c] ldr r0, [r0] @@ -21761,7 +21761,7 @@ _020d4d08: add r1, sp, #0x10 mov r2, #0 str r3, [sp, #0x18] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r4, r0 cmp r7, #0 beq _020d4d68 @@ -21771,10 +21771,10 @@ _020d4d08: bl func_ov00_020b18d8 b _020d4db8 _020d4d68: - ldr r0, _020d4de0 ; =data_027e0e60 + ldr r0, _020d4de0 ; =gMapManager ldr r5, [r10, #0x4c] ldr r0, [r0] - bl func_ov00_02084114 + bl _ZN10MapManager17GetMapData_Unk_48Ev cmp r0, r5 addlt r0, r4, #0x33 addlt r0, r0, #0x1300 @@ -21805,7 +21805,7 @@ _020d4db8: .align 2, 0 arm_func_end func_ov00_020d4b54 _020d4ddc: .word data_ov00_020ee670 -_020d4de0: .word data_027e0e60 +_020d4de0: .word gMapManager _020d4de4: .word 0x00000333 .global func_ov00_020d4de8 @@ -22568,7 +22568,7 @@ func_ov00_020d573c: ; 0x020d573c cmp r0, #0 beq _020d57b0 ldr r1, [r10, #0x48] - ldr r0, _020d58a8 ; =data_027e0e60 + ldr r0, _020d58a8 ; =gMapManager str r1, [sp, #4] ldr r1, [r10, #0x4c] ldr r5, [r0] @@ -22578,10 +22578,10 @@ func_ov00_020d573c: ; 0x020d573c mov r0, r5 mov r2, #0 str r3, [sp, #0xc] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p mov r4, r0 mov r0, r5 - bl func_ov00_02084120 + bl _ZN10MapManager17GetMapData_Unk_4cEv add r0, r4, r0 str r0, [r10, #0x4c] _020d57b0: @@ -22654,7 +22654,7 @@ _020d5888: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov00_020d573c -_020d58a8: .word data_027e0e60 +_020d58a8: .word gMapManager .global func_ov00_020d58ac arm_func_start func_ov00_020d58ac @@ -24429,9 +24429,9 @@ _020d73b0: ldmia sp!, {r4, pc} arm_func_end func_ov00_020d7394 - .global func_ov00_020d73bc - arm_func_start func_ov00_020d73bc -func_ov00_020d73bc: ; 0x020d73bc + .global PlaySoundEffect + arm_func_start PlaySoundEffect +PlaySoundEffect: ; 0x020d73bc stmdb sp!, {r3, r4, r5, lr} mov r4, r1 mov r5, r0 @@ -24445,7 +24445,7 @@ func_ov00_020d73bc: ; 0x020d73bc str ip, [sp] bl func_ov00_020d6d30 ldmia sp!, {r3, r4, r5, pc} - arm_func_end func_ov00_020d73bc + arm_func_end PlaySoundEffect .global func_ov00_020d73f0 arm_func_start func_ov00_020d73f0 diff --git a/asm/ov02.inc b/asm/ov02.inc index cc4b577f..afd888d4 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 @@ -11,8 +12,8 @@ .extern _ZNK11ItemManager13GetFairyLevelEi .extern _ZNK11ItemManager16GetShipPartCountEjj .extern _ZNK11ItemManager18GetUnk_09e_DividedEj -.extern _ZNK11ItemManager18IsTreasureSalvagedEjj .extern _ZNK11ItemManager19GetEquippedShipPartEj +.extern _ZNK11ItemManager21HasShipPartPriceShownEjj .extern _ZNK11ItemManager21HasTreasurePriceShownEj .extern _ZNK11ItemManager7HasItemEi .extern __register_global_object @@ -31,10 +32,8 @@ .extern data_027e0d0c .extern data_027e0d44 .extern data_027e0d78 -.extern data_027e0e60 .extern data_027e0f88 .extern data_027e0f8c -.extern data_027e0fbc .extern data_027e1044 .extern data_027e1050 .extern data_027e1058 @@ -115,7 +114,6 @@ .extern func_0204f614 .extern func_0204f754 .extern func_ov00_0207b1fc -.extern func_ov00_020847e0 .extern func_ov00_0208de04 .extern func_ov00_0208dec8 .extern func_ov00_0208def0 @@ -259,4 +257,6 @@ .extern func_ov45_0218a284 .extern func_ov45_0218db94 .extern gAdventureFlags +.extern gHealthManager .extern gItemManager +.extern gMapManager diff --git a/asm/ov02.s b/asm/ov02.s index 780e6a34..ff23da1d 100644 --- a/asm/ov02.s +++ b/asm/ov02.s @@ -1497,7 +1497,7 @@ _020f01e4: mov r1, #9 str r6, [sp] bl func_0203493c - ldr r0, _020f0730 ; =data_027e0fbc + ldr r0, _020f0730 ; =gHealthManager ldr r0, [r0] ldrb r0, [r0, #0xe] cmp r0, #0 @@ -1508,7 +1508,7 @@ _020f01e4: mov r1, #0xa str r6, [sp] bl func_0203493c - ldr r0, _020f0730 ; =data_027e0fbc + ldr r0, _020f0730 ; =gHealthManager mov r1, #0x3c ldr r0, [r0] ldrh r6, [r0, #0xc] @@ -1842,7 +1842,7 @@ _020f0720: .word gItemManager _020f0724: .word gAdventureFlags _020f0728: .word 0x91a2b3c5 _020f072c: .word 0x88888889 -_020f0730: .word data_027e0fbc +_020f0730: .word gHealthManager .global func_ov02_020f0734 arm_func_start func_ov02_020f0734 @@ -2883,7 +2883,7 @@ _020f1424: mov r1, r0 ldr r2, [r5, #0x1c] mov r0, r6 - blx _ZNK11ItemManager18IsTreasureSalvagedEjj + blx _ZNK11ItemManager21HasShipPartPriceShownEjj cmp r0, #0 beq _020f14f4 add ip, sp, #0x28 @@ -5052,10 +5052,10 @@ func_ov02_020f2e84: ; 0x020f2e84 bl func_ov00_020d77e4 mov r0, #1 blx func_ov09_0211bf3c - ldr r0, _020f2f18 ; =data_027e0fbc + ldr r0, _020f2f18 ; =gHealthManager ldr r0, [r0] blx func_ov00_020b8060 - ldr r0, _020f2f18 ; =data_027e0fbc + ldr r0, _020f2f18 ; =gHealthManager ldr r1, [r0] ldrsh r0, [r1, #4] strh r0, [r1, #6] @@ -5065,7 +5065,7 @@ func_ov02_020f2e84: ; 0x020f2e84 _020f2f0c: .word gItemManager _020f2f10: .word data_ov02_020f6c80 _020f2f14: .word data_ov00_020eec9c -_020f2f18: .word data_027e0fbc +_020f2f18: .word gHealthManager .global func_ov02_020f2f1c arm_func_start func_ov02_020f2f1c @@ -6629,9 +6629,9 @@ _020f430c: ldr r0, _020f4ce4 ; =data_027e0f88 ldr r0, [r0] bl func_ov00_020a1abc - ldr r0, _020f4ce8 ; =data_027e0e60 + ldr r0, _020f4ce8 ; =gMapManager ldr r0, [r0] - bl func_ov00_020847e0 + bl _ZN10MapManager18func_ov00_020847e0Ev str r0, [r7, #0x2c] ldr r0, _020f4cec ; =data_027e0f8c ldr r1, _020f4cf0 ; =0x020ecdf6 @@ -7282,7 +7282,7 @@ _020f4cd8: .word data_ov09_0211ee20 _020f4cdc: .word data_ov09_0211ee24 _020f4ce0: .word data_ov09_0211ee28 _020f4ce4: .word data_027e0f88 -_020f4ce8: .word data_027e0e60 +_020f4ce8: .word gMapManager _020f4cec: .word data_027e0f8c _020f4cf0: .word data_ov00_020ecdf6 _020f4cf4: .word data_ov00_020ee0a0 diff --git a/asm/ov03.inc b/asm/ov03.inc index 78b9c3a9..826e9d78 100644 --- a/asm/ov03.inc +++ b/asm/ov03.inc @@ -56,7 +56,7 @@ .extern _ZN9SysObjectnwEmPjj .extern _ZNK11ItemManager15GetEquippedItemEv .extern _ZNK11ItemManager16GetEquippedFairyEv -.extern _ZNK11ItemManager18func_ov00_020ae350Ev +.extern _ZNK11ItemManager10GetNumKeysEv .extern _ZNK11ItemManager7HasItemEi .extern __register_global_object .extern data_02050f54 @@ -93,7 +93,7 @@ .extern data_027e0e28 .extern data_027e0e2c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f7c .extern data_027e0f84 @@ -266,24 +266,24 @@ .extern func_ov00_0207c0ac .extern func_ov00_0207c0cc .extern func_ov00_0207c5b0 -.extern func_ov00_02082614 -.extern func_ov00_02082acc -.extern func_ov00_02082d08 -.extern func_ov00_02082d40 -.extern func_ov00_02082d74 -.extern func_ov00_0208306c -.extern func_ov00_0208315c -.extern func_ov00_02083394 -.extern func_ov00_020833a0 -.extern func_ov00_020833ac -.extern func_ov00_020833b8 -.extern func_ov00_02083588 -.extern func_ov00_020835a4 -.extern func_ov00_020835b4 -.extern func_ov00_020835c4 -.extern func_ov00_020835f4 -.extern func_ov00_020836cc -.extern func_ov00_020849c0 +.extern _ZN10MapManager18func_ov00_02082614Eii +.extern _ZN10MapManager18func_ov00_02082accEv +.extern _ZN10MapManager18func_ov00_02082d08Ev +.extern _ZN10MapManager18func_ov00_02082d40Ev +.extern _ZN10MapManager18func_ov00_02082d74Ei +.extern _ZN10MapManager18func_ov00_0208306cEv +.extern _ZN10MapManager18func_ov00_0208315cEPiS0_ +.extern _ZN10MapManager13GetCourseMinXEv +.extern _ZN10MapManager13GetCourseMinZEv +.extern _ZN10MapManager13GetCourseMaxXEv +.extern _ZN10MapManager13GetCourseMaxZEv +.extern _ZN10MapManager18func_ov00_02083588Ev +.extern _ZN10MapManager18func_ov00_020835a4Ev +.extern _ZN10MapManager18func_ov00_020835b4Ev +.extern _ZN10MapManager18func_ov00_020835c4Eii +.extern _ZN10MapManager18func_ov00_020835f4Ei +.extern _ZN10MapManager18func_ov00_020836ccEjP4AABBj +.extern _ZN10MapManager18func_ov00_020849c0Ev .extern func_ov00_0208b180 .extern func_ov00_0208b694 .extern func_ov00_0208b698 diff --git a/asm/ov03.s b/asm/ov03.s index 6a5f744a..86db22ed 100644 --- a/asm/ov03.s +++ b/asm/ov03.s @@ -3622,21 +3622,21 @@ _020f0884: bl func_0202ed14 add r7, r7, r0, lsl #12 _020f08a4: - ldr r0, _020f0aa4 ; =data_027e0e60 + ldr r0, _020f0aa4 ; =gMapManager ldr r5, [r0] mov r0, r5 - bl func_ov00_02083394 + bl _ZN10MapManager13GetCourseMinXEv mov r11, r0 mov r0, r5 - bl func_ov00_020833a0 + bl _ZN10MapManager13GetCourseMinZEv str r0, [sp] mov r0, r5 - bl func_ov00_020833ac + bl _ZN10MapManager13GetCourseMaxXEv sub r0, r0, r11 add r4, r0, r0, lsr #31 mov r0, r5 mov r5, r4, asr #0x1 - bl func_ov00_020833b8 + bl _ZN10MapManager13GetCourseMaxZEv ldr r1, [sp] sub r0, r0, r1 mov r1, r5, asr #0x6 @@ -3755,7 +3755,7 @@ _020f0a30: arm_func_end func_ov03_020f0844 _020f0a9c: .word data_027e0c38 _020f0aa0: .word data_027e080c -_020f0aa4: .word data_027e0e60 +_020f0aa4: .word gMapManager .global func_ov03_020f0aa8 arm_func_start func_ov03_020f0aa8 @@ -3780,23 +3780,23 @@ func_ov03_020f0aa8: ; 0x020f0aa8 ldrb r0, [r1, #0x95] cmp r0, #0 beq _020f0b18 - ldr r0, _020f0b84 ; =data_027e0e60 + ldr r0, _020f0b84 ; =gMapManager mov r1, r5 ldr r0, [r0] mov r2, r4 - bl func_ov00_0208315c + bl _ZN10MapManager18func_ov00_0208315cEPiS0_ add sp, sp, #0x40 mov r0, #1 ldmia sp!, {r3, r4, r5, pc} _020f0b18: - ldr r0, _020f0b84 ; =data_027e0e60 + ldr r0, _020f0b84 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d40 - ldr r1, _020f0b84 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02082d40Ev + ldr r1, _020f0b84 ; =gMapManager mov r2, r0 ldr r0, [r1] add r1, sp, #0 - bl func_ov00_02082614 + bl _ZN10MapManager18func_ov00_02082614Eii ldr r0, _020f0b88 ; =data_027e0d3c add r1, sp, #0 ldr r0, [r0] @@ -3804,11 +3804,11 @@ _020f0b18: bl strcmp cmp r0, #0 bne _020f0b74 - ldr r0, _020f0b84 ; =data_027e0e60 + ldr r0, _020f0b84 ; =gMapManager mov r1, r5 ldr r0, [r0] mov r2, r4 - bl func_ov00_0208306c + bl _ZN10MapManager18func_ov00_0208306cEv add sp, sp, #0x40 mov r0, #1 ldmia sp!, {r3, r4, r5, pc} @@ -3819,7 +3819,7 @@ _020f0b74: .align 2, 0 arm_func_end func_ov03_020f0aa8 _020f0b80: .word data_027e1054 -_020f0b84: .word data_027e0e60 +_020f0b84: .word gMapManager _020f0b88: .word data_027e0d3c .global func_ov03_020f0b8c @@ -3896,11 +3896,11 @@ _020f0c7c: mov r4, r0 cmp r1, #0 blt _020f0ca4 - ldr r0, _020f0e3c ; =data_027e0e60 + ldr r0, _020f0e3c ; =gMapManager add r2, sp, #0x24 ldr r0, [r0] mov r3, #8 - bl func_ov00_020836cc + bl _ZN10MapManager18func_ov00_020836ccEjP4AABBj _020f0ca4: cmp r0, #0 ble _020f0d74 @@ -4011,7 +4011,7 @@ _020f0e2c: .word data_027e0c54 _020f0e30: .word data_027e0d3c _020f0e34: .word data_027e0f94 _020f0e38: .word 0x00001ccd -_020f0e3c: .word data_027e0e60 +_020f0e3c: .word gMapManager _020f0e40: .word 0x00002ccd _020f0e44: .word data_ov03_020fc45c _020f0e48: .word data_ov03_020fc460 @@ -9792,12 +9792,12 @@ func_ov03_020f4778: ; 0x020f4778 sub sp, #0x44 add r6, r0, #0 add r5, r1, #0 - ldr r0, _020f47d8 ; =data_027e0e60 + ldr r0, _020f47d8 ; =gMapManager lsl r2, r5, #0x18 ldr r0, [r0] add r1, sp, #4 lsr r2, r2, #0x18 - blx func_ov00_02082614 + blx _ZN10MapManager18func_ov00_02082614Eii ldr r0, _020f47dc ; =data_027e0d38 mov r4, #4 ldr r0, [r0] @@ -9818,11 +9818,11 @@ func_ov03_020f4778: ; 0x020f4778 _020f47b4: mov r4, #7 _020f47b6: - ldr r0, _020f47d8 ; =data_027e0e60 + ldr r0, _020f47d8 ; =gMapManager lsl r1, r5, #0x18 ldr r0, [r0] lsr r1, r1, #0x18 - blx func_ov00_02082d74 + blx _ZN10MapManager18func_ov00_02082d74Ei add r2, r0, #0 lsl r0, r5, #0x18 asr r0, r0, #0x18 @@ -9835,7 +9835,7 @@ _020f47b6: pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_end func_ov03_020f4778 -_020f47d8: .word data_027e0e60 +_020f47d8: .word gMapManager _020f47dc: .word data_027e0d38 _020f47e0: .word data_027e103c @@ -10419,16 +10419,16 @@ _020f4ce4: mov r0, #7 str r0, [r5, #0xc] _020f4ce8: - ldr r0, _020f4d18 ; =data_027e0e60 + ldr r0, _020f4d18 ; =gMapManager add r1, r5, #0 ldr r0, [r0] add r1, #0x50 add r2, r4, #0 - blx func_ov00_02082614 - ldr r0, _020f4d18 ; =data_027e0e60 + blx _ZN10MapManager18func_ov00_02082614Eii + ldr r0, _020f4d18 ; =gMapManager add r1, r4, #0 ldr r0, [r0] - blx func_ov00_02082d74 + blx _ZN10MapManager18func_ov00_02082d74Ei add r5, #0x90 strh r0, [r5] ldr r0, _020f4d1c ; =data_027e077c @@ -10439,7 +10439,7 @@ _020f4ce8: thumb_func_end func_ov03_020f4c94 _020f4d10: .word data_027e0d38 _020f4d14: .word data_027e103c -_020f4d18: .word data_027e0e60 +_020f4d18: .word gMapManager _020f4d1c: .word data_027e077c .global func_ov03_020f4d20 @@ -10552,9 +10552,9 @@ func_ov03_020f4de0: ; 0x020f4de0 add r4, r0, #0 ldr r0, _020f4e48 ; =data_027e0d3c ldr r5, [r0] - ldr r0, _020f4e4c ; =data_027e0e60 + ldr r0, _020f4e4c ; =gMapManager ldr r0, [r0] - blx func_ov00_02083588 + blx _ZN10MapManager18func_ov00_02083588Ev ldr r1, _020f4e50 ; =data_ov00_020d878c add r2, r0, #0 ldr r1, [r1] @@ -10601,7 +10601,7 @@ _020f4e40: .align 2, 0 thumb_func_end func_ov03_020f4de0 _020f4e48: .word data_027e0d3c -_020f4e4c: .word data_027e0e60 +_020f4e4c: .word gMapManager _020f4e50: .word data_ov00_020d878c _020f4e54: .word data_027e0d38 _020f4e58: .word data_027e103c @@ -10613,17 +10613,17 @@ func_ov03_020f4e5c: ; 0x020f4e5c add r4, r0, #0 ldr r0, _020f4f30 ; =data_027e0d3c ldr r5, [r0] - ldr r0, _020f4f34 ; =data_027e0e60 + ldr r0, _020f4f34 ; =gMapManager ldr r0, [r0] - blx func_ov00_02083588 + blx _ZN10MapManager18func_ov00_02083588Ev add r1, r4, #0 add r2, r0, #0 add r0, r5, #0 add r1, #0x10 bl func_ov00_02078e00 - ldr r0, _020f4f34 ; =data_027e0e60 + ldr r0, _020f4f34 ; =gMapManager ldr r0, [r0] - blx func_ov00_02082acc + blx _ZN10MapManager18func_ov00_02082accEv add r0, r4, #0 add r0, #0x99 ldrb r0, [r0] @@ -10715,7 +10715,7 @@ _020f4f20: nop thumb_func_end func_ov03_020f4e5c _020f4f30: .word data_027e0d3c -_020f4f34: .word data_027e0e60 +_020f4f34: .word gMapManager _020f4f38: .word data_027e103c _020f4f3c: .word data_027e0cbc _020f4f40: .word 0x0400100c @@ -10729,9 +10729,9 @@ func_ov03_020f4f4c: ; 0x020f4f4c add r5, r0, #0 ldr r0, _020f4fa8 ; =data_027e0d3c ldr r4, [r0] - ldr r0, _020f4fac ; =data_027e0e60 + ldr r0, _020f4fac ; =gMapManager ldr r0, [r0] - blx func_ov00_02083588 + blx _ZN10MapManager18func_ov00_02083588Ev add r1, r5, #0 add r2, r0, #0 add r0, r4, #0 @@ -10770,7 +10770,7 @@ _020f4f9e: nop thumb_func_end func_ov03_020f4f4c _020f4fa8: .word data_027e0d3c -_020f4fac: .word data_027e0e60 +_020f4fac: .word gMapManager _020f4fb0: .word data_027e103c _020f4fb4: .word data_027e0cbc @@ -10780,12 +10780,12 @@ func_ov03_020f4fb8: ; 0x020f4fb8 push {r3, r4, r5, lr} sub sp, #0x40 add r5, r0, #0 - ldr r0, _020f4ffc ; =data_027e0e60 + ldr r0, _020f4ffc ; =gMapManager mov r1, #0x93 ldrsb r1, [r5, r1] ldr r0, [r0] add r2, sp, #0 - blx func_ov00_020835c4 + blx _ZN10MapManager18func_ov00_020835c4Eii ldr r0, _020f5000 ; =data_027e0d3c mov r2, #0x93 ldrsb r2, [r5, r2] @@ -10795,10 +10795,10 @@ func_ov03_020f4fb8: ; 0x020f4fb8 ldr r0, _020f5004 ; =data_027e103c mov r1, #0x93 ldr r4, [r0] - ldr r0, _020f4ffc ; =data_027e0e60 + ldr r0, _020f4ffc ; =gMapManager ldrsb r1, [r5, r1] ldr r0, [r0] - blx func_ov00_020835f4 + blx _ZN10MapManager18func_ov00_020835f4Ei add r1, r0, #0 add r0, r4, #0 blx func_ov00_020cf414 @@ -10809,7 +10809,7 @@ func_ov03_020f4fb8: ; 0x020f4fb8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end func_ov03_020f4fb8 -_020f4ffc: .word data_027e0e60 +_020f4ffc: .word gMapManager _020f5000: .word data_027e0d3c _020f5004: .word data_027e103c @@ -12689,7 +12689,7 @@ func_ov03_020f63d4: ; 0x020f63d4 bl func_ov03_020f5d48 ldr r0, _020f6414 ; =gItemManager ldr r0, [r0] - blx _ZNK11ItemManager18func_ov00_020ae350Ev + blx _ZNK11ItemManager10GetNumKeysEv mov r1, #0x79 lsl r1, r1, #2 str r0, [r4, r1] @@ -12830,9 +12830,9 @@ _020f6578: ldrb r0, [r0, #0x98] cmp r0, #0 bne _020f6600 - ldr r0, _020f670c ; =data_027e0e60 + ldr r0, _020f670c ; =gMapManager ldr r0, [r0] - bl func_ov00_02083588 + bl _ZN10MapManager18func_ov00_02083588Ev cmp r0, #0 subgt r0, r0, #1 mov r4, #0 @@ -12913,7 +12913,7 @@ _020f66fc: .word 0x000004cc _020f6700: .word data_027e077c _020f6704: .word data_02056be4 _020f6708: .word data_027e1054 -_020f670c: .word data_027e0e60 +_020f670c: .word gMapManager _020f6710: .word 0x0000ffff .global func_ov03_020f6714 @@ -13183,7 +13183,7 @@ func_ov03_020f6a88: ; 0x020f6a88 ldmeqia sp!, {r3, r4, r5, pc} ldr r0, _020f6b10 ; =gItemManager ldr r0, [r0] - bl _ZNK11ItemManager18func_ov00_020ae350Ev + bl _ZNK11ItemManager10GetNumKeysEv ldr r1, [r5, #0x1e4] mov r4, r0 subs r0, r4, r1 @@ -14232,9 +14232,9 @@ _020f7760: bl func_ov03_020f4b7c cmp r0, #0 bne _020f7794 - ldr r0, _020f7bb4 ; =data_027e0e60 + ldr r0, _020f7bb4 ; =gMapManager ldr r0, [r0] - bl func_ov00_020849c0 + bl _ZN10MapManager18func_ov00_020849c0Ev cmp r0, #0 beq _020f79e0 _020f7794: @@ -14523,7 +14523,7 @@ _020f7ba4: arm_func_end func_ov03_020f7730 _020f7bac: .word data_027e1054 _020f7bb0: .word data_027e0d3c -_020f7bb4: .word data_027e0e60 +_020f7bb4: .word gMapManager _020f7bb8: .word data_027e0f7c _020f7bbc: .word gAdventureFlags _020f7bc0: .word data_027e0618 @@ -14862,18 +14862,18 @@ func_ov03_020f7f6c: ; 0x020f7f6c bl func_ov03_020f74b8 cmp r0, #0 beq _020f7fbc - ldr r0, _020f7fe4 ; =data_027e0e60 + ldr r0, _020f7fe4 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083588 + bl _ZN10MapManager18func_ov00_02083588Ev cmp r0, #0 beq _020f7fbc - ldr r0, _020f7fe4 ; =data_027e0e60 + ldr r0, _020f7fe4 ; =gMapManager ldr r7, [r0] mov r0, r7 - bl func_ov00_020835a4 + bl _ZN10MapManager18func_ov00_020835a4Ev mov r5, r0 mov r0, r7 - bl func_ov00_020835b4 + bl _ZN10MapManager18func_ov00_020835b4Ev cmp r5, r0 movne r6, #1 _020f7fbc: @@ -14890,7 +14890,7 @@ _020f7fdc: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov03_020f7f6c -_020f7fe4: .word data_027e0e60 +_020f7fe4: .word gMapManager _020f7fe8: .word data_027e1054 .global func_ov03_020f7fec @@ -14909,40 +14909,40 @@ func_ov03_020f7fec: ; 0x020f7fec arm_func_start func_ov03_020f8008 func_ov03_020f8008: ; 0x020f8008 stmdb sp!, {r3, lr} - ldr r0, _020f8020 ; =data_027e0e60 + ldr r0, _020f8020 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083588 + bl _ZN10MapManager18func_ov00_02083588Ev bl func_ov03_020f805c ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov03_020f8008 -_020f8020: .word data_027e0e60 +_020f8020: .word gMapManager .global func_ov03_020f8024 arm_func_start func_ov03_020f8024 func_ov03_020f8024: ; 0x020f8024 stmdb sp!, {r3, lr} - ldr r0, _020f803c ; =data_027e0e60 + ldr r0, _020f803c ; =gMapManager ldr r0, [r0] - bl func_ov00_020835a4 + bl _ZN10MapManager18func_ov00_020835a4Ev bl func_ov03_020f805c ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov03_020f8024 -_020f803c: .word data_027e0e60 +_020f803c: .word gMapManager .global func_ov03_020f8040 arm_func_start func_ov03_020f8040 func_ov03_020f8040: ; 0x020f8040 stmdb sp!, {r3, lr} - ldr r0, _020f8058 ; =data_027e0e60 + ldr r0, _020f8058 ; =gMapManager ldr r0, [r0] - bl func_ov00_020835b4 + bl _ZN10MapManager18func_ov00_020835b4Ev bl func_ov03_020f805c ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov03_020f8040 -_020f8058: .word data_027e0e60 +_020f8058: .word gMapManager .global func_ov03_020f805c arm_func_start func_ov03_020f805c @@ -18001,9 +18001,9 @@ func_ov03_020fa528: ; 0x020fa528 bl func_ov00_020a5e9c movs r1, r0 bne _020fa568 - ldr r0, _020fa5c8 ; =data_027e0e60 + ldr r0, _020fa5c8 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev add r0, r0, #0xab mov r1, #1 strb r1, [r4, #0x14] @@ -18037,7 +18037,7 @@ _020fa590: .align 2, 0 arm_func_end func_ov03_020fa528 _020fa5c4: .word data_027e0d38 -_020fa5c8: .word data_027e0e60 +_020fa5c8: .word gMapManager _020fa5cc: .word data_027e0f7c _020fa5d0: .word data_ov03_020ff648 _020fa5d4: .word data_027e0c68 @@ -43632,279 +43632,348 @@ data_ov03_02100260: ; 0x02100260 .byte 0x00, 0x00, 0x00 .global data_ov03_02100264 data_ov03_02100264: ; 0x02100264 - .ascii "‚Ύ" + ; string "だ" + .byte 0x82, 0xbe .byte 0x00, 0x00 .global data_ov03_02100268 data_ov03_02100268: ; 0x02100268 - .ascii "‚έ" + ; string "み" + .byte 0x82, 0xdd .byte 0x00, 0x00 .global data_ov03_0210026c data_ov03_0210026c: ; 0x0210026c - .ascii "‚ΐ" + ; string "げ" + .byte 0x82, 0xc0 .byte 0x00, 0x00 .global data_ov03_02100270 data_ov03_02100270: ; 0x02100270 - .ascii "‚Γ" + ; string "γ₯" + .byte 0x82, 0xc3 .byte 0x00, 0x00 .global data_ov03_02100274 data_ov03_02100274: ; 0x02100274 - .ascii "‚ΰ" + ; string "γ‚‚" + .byte 0x82, 0xe0 .byte 0x00, 0x00 .global data_ov03_02100278 data_ov03_02100278: ; 0x02100278 - .ascii "‚β" + ; string "γ‚„" + .byte 0x82, 0xe2 .byte 0x00, 0x00 .global data_ov03_0210027c data_ov03_0210027c: ; 0x0210027c - .ascii "‚Ε" + ; string "で" + .byte 0x82, 0xc5 .byte 0x00, 0x00 .global data_ov03_02100280 data_ov03_02100280: ; 0x02100280 - .ascii "‚δ" + ; string "ゆ" + .byte 0x82, 0xe4 .byte 0x00, 0x00 .global data_ov03_02100284 data_ov03_02100284: ; 0x02100284 - .ascii "‚Η" + ; string "ど" + .byte 0x82, 0xc7 .byte 0x00, 0x00 .global data_ov03_02100288 data_ov03_02100288: ; 0x02100288 - .ascii "‚ο" + ; string "γ‚‘" + .byte 0x82, 0xef .byte 0x00, 0x00 .global data_ov03_0210028c data_ov03_0210028c: ; 0x0210028c - .ascii "‚ζ" + ; string "γ‚ˆ" + .byte 0x82, 0xe6 .byte 0x00, 0x00 .global data_ov03_02100290 data_ov03_02100290: ; 0x02100290 - .ascii "‚ξ" + ; string "ゐ" + .byte 0x82, 0xee .byte 0x00, 0x00 .global data_ov03_02100294 data_ov03_02100294: ; 0x02100294 - .ascii "‚Ξ" + ; string "ば" + .byte 0x82, 0xce .byte 0x00, 0x00 .global data_ov03_02100298 data_ov03_02100298: ; 0x02100298 - .ascii "‚η" + ; string "ら" + .byte 0x82, 0xe7 .byte 0x00, 0x00 .global data_ov03_0210029c data_ov03_0210029c: ; 0x0210029c - .ascii "‚ί" + ; string "め" + .byte 0x82, 0xdf .byte 0x00, 0x00 .global data_ov03_021002a0 data_ov03_021002a0: ; 0x021002a0 - .ascii "‚ή" + ; string "γ‚€" + .byte 0x82, 0xde .byte 0x00, 0x00 .global data_ov03_021002a4 data_ov03_021002a4: ; 0x021002a4 - .ascii "‚θ" + ; string "γ‚Š" + .byte 0x82, 0xe8 .byte 0x00, 0x00 .global data_ov03_021002a8 data_ov03_021002a8: ; 0x021002a8 - .ascii "‚ά" + ; string "ま" + .byte 0x82, 0xdc .byte 0x00, 0x00 .global data_ov03_021002ac data_ov03_021002ac: ; 0x021002ac - .ascii "‚Ω" + ; string "ほ" + .byte 0x82, 0xd9 .byte 0x00, 0x00 .global data_ov03_021002b0 data_ov03_021002b0: ; 0x021002b0 - .ascii "‚Φ" + ; string "へ" + .byte 0x82, 0xd6 .byte 0x00, 0x00 .global data_ov03_021002b4 data_ov03_021002b4: ; 0x021002b4 - .ascii "‚Ρ" + ; string "び" + .byte 0x82, 0xd1 .byte 0x00, 0x00 .global data_ov03_021002b8 data_ov03_021002b8: ; 0x021002b8 - .ascii "‚ι" + ; string "γ‚‹" + .byte 0x82, 0xe9 .byte 0x00, 0x00 .global data_ov03_021002bc data_ov03_021002bc: ; 0x021002bc - .ascii "‚κ" + ; string "γ‚Œ" + .byte 0x82, 0xea .byte 0x00, 0x00 .global data_ov03_021002c0 data_ov03_021002c0: ; 0x021002c0 - .ascii "‚Τ" + ; string "ぢ" + .byte 0x82, 0xd4 .byte 0x00, 0x00 .global data_ov03_021002c4 data_ov03_021002c4: ; 0x021002c4 - .ascii "‚λ" + ; string "ろ" + .byte 0x82, 0xeb .byte 0x00, 0x00 .global data_ov03_021002c8 data_ov03_021002c8: ; 0x021002c8 - .ascii "‚ν" + ; string "わ" + .byte 0x82, 0xed .byte 0x00, 0x00 .global data_ov03_021002cc data_ov03_021002cc: ; 0x021002cc - .ascii "‚Χ" + ; string "べ" + .byte 0x82, 0xd7 .byte 0x00, 0x00 .global data_ov03_021002d0 data_ov03_021002d0: ; 0x021002d0 - .ascii "‚π" + ; string "γ‚’" + .byte 0x82, 0xf0 .byte 0x00, 0x00 .global data_ov03_021002d4 data_ov03_021002d4: ; 0x021002d4 - .ascii "‚¦" + ; string "え" + .byte 0x82, 0xa6 .byte 0x00, 0x00 .global data_ov03_021002d8 data_ov03_021002d8: ; 0x021002d8 - .ascii "‚ρ" + ; string "γ‚“" + .byte 0x82, 0xf1 .byte 0x00, 0x00 .global data_ov03_021002dc data_ov03_021002dc: ; 0x021002dc - .ascii "‚Ϊ" + ; string "ぼ" + .byte 0x82, 0xda .byte 0x00, 0x00 .global data_ov03_021002e0 data_ov03_021002e0: ; 0x021002e0 - .ascii "™" + ; string "β˜†" + .byte 0x81, 0x99 .byte 0x00, 0x00 .global data_ov03_021002e4 data_ov03_021002e4: ; 0x021002e4 - .ascii "‡" + ; string "∞" + .byte 0x81, 0x87 .byte 0x00, 0x00 .global data_ov03_021002e8 data_ov03_021002e8: ; 0x021002e8 - .ascii "‚Ο" + ; string "ぱ" + .byte 0x82, 0xcf .byte 0x00, 0x00 .global data_ov03_021002ec data_ov03_021002ec: ; 0x021002ec - .ascii "‚±" + ; string "こ" + .byte 0x82, 0xb1 .byte 0x00, 0x00 .global data_ov03_021002f0 data_ov03_021002f0: ; 0x021002f0 - .ascii "‚ͺ" + ; string "が" + .byte 0x82, 0xaa .byte 0x00, 0x00 .global data_ov03_021002f4 data_ov03_021002f4: ; 0x021002f4 - .ascii "‚³" + ; string "さ" + .byte 0x82, 0xb3 .byte 0x00, 0x00 .global data_ov03_021002f8 data_ov03_021002f8: ; 0x021002f8 - .ascii "‚΅" + ; string "し" + .byte 0x82, 0xb5 .byte 0x00, 0x00 .global data_ov03_021002fc data_ov03_021002fc: ; 0x021002fc - .ascii "‚¬" + ; string "ぎ" + .byte 0x82, 0xac .byte 0x00, 0x00 .global data_ov03_02100300 data_ov03_02100300: ; 0x02100300 - .ascii "‚―" + ; string "け" + .byte 0x82, 0xaf .byte 0x00, 0x00 .global data_ov03_02100304 data_ov03_02100304: ; 0x02100304 - .ascii "‚­" + ; string "く" + .byte 0x82, 0xad .byte 0x00, 0x00 .global data_ov03_02100308 data_ov03_02100308: ; 0x02100308 - .ascii "‚«" + ; string "き" + .byte 0x82, 0xab .byte 0x00, 0x00 .global data_ov03_0210030c data_ov03_0210030c: ; 0x0210030c - .ascii "‚©" + ; string "か" + .byte 0x82, 0xa9 .byte 0x00, 0x00 .global data_ov03_02100310 data_ov03_02100310: ; 0x02100310 - .ascii "‚¨" + ; string "お" + .byte 0x82, 0xa8 .byte 0x00, 0x00 .global data_ov03_02100314 data_ov03_02100314: ; 0x02100314 - .ascii "‚" + ; string "ぴ" + .byte 0x82, 0xd2 .byte 0x00, 0x00 .global data_ov03_02100318 data_ov03_02100318: ; 0x02100318 - .ascii "‚€" + ; string "う" + .byte 0x82, 0xa4 .byte 0x00, 0x00 .global data_ov03_0210031c data_ov03_0210031c: ; 0x0210031c - .ascii "‚’" + ; string "い" + .byte 0x82, 0xa2 .byte 0x00, 0x00 .global data_ov03_02100320 data_ov03_02100320: ; 0x02100320 - .ascii "‚ " + ; string "あ" + .byte 0x82, 0xa0 .byte 0x00, 0x00 .global data_ov03_02100324 data_ov03_02100324: ; 0x02100324 - .ascii "‚·" + ; string "す" + .byte 0x82, 0xb7 .byte 0x00, 0x00 .global data_ov03_02100328 data_ov03_02100328: ; 0x02100328 - .ascii "‚Ή" + ; string "せ" + .byte 0x82, 0xb9 .byte 0x00, 0x00 .global data_ov03_0210032c data_ov03_0210032c: ; 0x0210032c - .ascii "‚" + ; string "ぐ" + .byte 0x82, 0xae .byte 0x00, 0x00 .global data_ov03_02100330 data_ov03_02100330: ; 0x02100330 - .ascii "‚»" + ; string "そ" + .byte 0x82, 0xbb .byte 0x00, 0x00 .global data_ov03_02100334 data_ov03_02100334: ; 0x02100334 - .ascii "‚½" + ; string "た" + .byte 0x82, 0xbd .byte 0x00, 0x00 .global data_ov03_02100338 data_ov03_02100338: ; 0x02100338 - .ascii "‚°" + ; string "げ" + .byte 0x82, 0xb0 .byte 0x00, 0x00 .global data_ov03_0210033c data_ov03_0210033c: ; 0x0210033c - .ascii "‚Υ" + ; string "ぷ" + .byte 0x82, 0xd5 .byte 0x00, 0x00 .global data_ov03_02100340 data_ov03_02100340: ; 0x02100340 - .ascii "‚Ώ" + ; string "け" + .byte 0x82, 0xbf .byte 0x00, 0x00 .global data_ov03_02100344 data_ov03_02100344: ; 0x02100344 - .ascii "‚Β" + ; string "぀" + .byte 0x82, 0xc2 .byte 0x00, 0x00 .global data_ov03_02100348 data_ov03_02100348: ; 0x02100348 - .ascii "‚²" + ; string "ご" + .byte 0x82, 0xb2 .byte 0x00, 0x00 .global data_ov03_0210034c data_ov03_0210034c: ; 0x0210034c - .ascii "‚Δ" + ; string "て" + .byte 0x82, 0xc4 .byte 0x00, 0x00 .global data_ov03_02100350 data_ov03_02100350: ; 0x02100350 - .ascii "‚Ζ" + ; string "と" + .byte 0x82, 0xc6 .byte 0x00, 0x00 .global data_ov03_02100354 data_ov03_02100354: ; 0x02100354 - .ascii "‚΄" + ; string "ざ" + .byte 0x82, 0xb4 .byte 0x00, 0x00 .global data_ov03_02100358 data_ov03_02100358: ; 0x02100358 - .ascii "‚Ψ" + ; string "ぺ" + .byte 0x82, 0xd8 .byte 0x00, 0x00 .global data_ov03_0210035c data_ov03_0210035c: ; 0x0210035c - .ascii "‚Θ" + ; string "γͺ" + .byte 0x82, 0xc8 .byte 0x00, 0x00 .global data_ov03_02100360 data_ov03_02100360: ; 0x02100360 - .ascii "‚Ι" + ; string "に" + .byte 0x82, 0xc9 .byte 0x00, 0x00 .global data_ov03_02100364 data_ov03_02100364: ; 0x02100364 - .ascii "‚Ά" + ; string "じ" + .byte 0x82, 0xb6 .byte 0x00, 0x00 .global data_ov03_02100368 data_ov03_02100368: ; 0x02100368 - .ascii "‚Κ" + ; string "ぬ" + .byte 0x82, 0xca .byte 0x00, 0x00 .global data_ov03_0210036c data_ov03_0210036c: ; 0x0210036c - .ascii "‚Έ" + ; string "ず" + .byte 0x82, 0xb8 .byte 0x00, 0x00 .global data_ov03_02100370 data_ov03_02100370: ; 0x02100370 - .ascii "‚Ϋ" + ; string "ぽ" + .byte 0x82, 0xdb .byte 0x00, 0x00 .global data_ov03_02100374 data_ov03_02100374: ; 0x02100374 - .ascii "‚Ί" + ; string "ぜ" + .byte 0x82, 0xba .byte 0x00, 0x00 .global data_ov03_02100378 data_ov03_02100378: ; 0x02100378 @@ -43912,27 +43981,33 @@ data_ov03_02100378: ; 0x02100378 .byte 0x00, 0x00 .global data_ov03_0210037c data_ov03_0210037c: ; 0x0210037c - .ascii "‚Ν" + ; string "は" + .byte 0x82, 0xcd .byte 0x00, 0x00 .global data_ov03_02100380 data_ov03_02100380: ; 0x02100380 - .ascii "‚Λ" + ; string "ね" + .byte 0x82, 0xcb .byte 0x00, 0x00 .global data_ov03_02100384 data_ov03_02100384: ; 0x02100384 - .ascii "‚Π" + ; string "ひ" + .byte 0x82, 0xd0 .byte 0x00, 0x00 .global data_ov03_02100388 data_ov03_02100388: ; 0x02100388 - .ascii "‚Σ" + ; string "ち" + .byte 0x82, 0xd3 .byte 0x00, 0x00 .global data_ov03_0210038c data_ov03_0210038c: ; 0x0210038c - .ascii "‚Ό" + ; string "ぞ" + .byte 0x82, 0xbc .byte 0x00, 0x00 .global data_ov03_02100390 data_ov03_02100390: ; 0x02100390 - .ascii "‚Μ" + ; string "γ" + .byte 0x82, 0xcc .byte 0x00, 0x00 .global data_ov03_02100394 data_ov03_02100394: ; 0x02100394 diff --git a/asm/ov04.inc b/asm/ov04.inc index 26b00966..4b0d0081 100644 --- a/asm/ov04.inc +++ b/asm/ov04.inc @@ -1,4 +1,27 @@ #pragma once +.extern _ZN10MapManager10DestroyMapEv +.extern _ZN10MapManager14GetEntrancePosEP5Vec3pi +.extern _ZN10MapManager16MapData_vfunc_44Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_9cEv +.extern _ZN10MapManager17GetCourseFilePathEPcS0_ +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager17Get_MapData_Unk28Ev +.extern _ZN10MapManager17Get_MapData_Unk2aEv +.extern _ZN10MapManager18func_ov00_020825e4Eii +.extern _ZN10MapManager18func_ov00_02082808Ev +.extern _ZN10MapManager18func_ov00_02082914Ei +.extern _ZN10MapManager18func_ov00_02082b3cEi +.extern _ZN10MapManager18func_ov00_02083588Ev +.extern _ZN10MapManager18func_ov00_020838f8EPi +.extern _ZN10MapManager18func_ov00_02083b84Ev +.extern _ZN10MapManager18func_ov00_02083bacEv +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_02083e34Ecci +.extern _ZN10MapManager18func_ov00_02084838Ev +.extern _ZN10MapManager18func_ov00_02084c6cEi +.extern _ZN10MapManager9CreateMapEiii .extern _ZN11ItemManager12GetItemModelEj .extern _ZN11ItemManager13UnequipPotionEv .extern _ZN11ItemManager21ClearPrevEquippedItemEv @@ -34,6 +57,26 @@ .extern _ZN14OverlayManager6UnloadEj .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN6Course11FindMapDataEj +.extern _ZN6Course13SetCourseNameEPc +.extern _ZN6Course14FindMapGridPosEP5Vec2bPS_j +.extern _ZN6Course14GetMCSFilePathEiii +.extern _ZN6Course14GetMRCFilePathEiii +.extern _ZN6Course15IsMapInMainGridEj +.extern _ZN6Course18FindMapData_Unk_0cEi +.extern _ZN6Course18func_ov00_0207ca78Eici +.extern _ZN6Course18func_ov00_0207ce20EiiPci +.extern _ZN6Course18func_ov00_0207d7bcEv +.extern _ZN7MapBase10AddTriggerEP13TriggerParams +.extern _ZN7MapBase11AddEntranceEP8Entrance +.extern _ZN7MapBase14GetMapFilePathEPcii +.extern _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint +.extern _ZN7MapBase18func_ov00_0207ddf8Eb +.extern _ZN7MapBase18func_ov00_0207dea0Eb +.extern _ZN7MapBase18func_ov00_02080de4Ev +.extern _ZN7MapBase18func_ov00_02080edcEv +.extern _ZN7MapBase7AddExitEP4Exit +.extern _ZN7MapBase9SetBoundsEii .extern _ZN9ActorType13func_0203e7c8Ev .extern _ZN9ActorType4FindEj .extern _ZN9SysObjectdlEPv @@ -84,7 +127,6 @@ .extern data_027e0e28 .extern data_027e0e58 .extern data_027e0e5c -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -95,7 +137,7 @@ .extern data_027e0f94 .extern data_027e0fac .extern data_027e0fb8 -.extern data_027e0fbc +.extern gHealthManager .extern data_027e0fc0 .extern data_027e0fc4 .extern data_027e0fc8 @@ -135,7 +177,7 @@ .extern data_ov00_020dc7cc .extern data_ov00_020dc7d0 .extern data_ov00_020e233c -.extern data_ov00_020e2348 +.extern _ZTV7MapBase .extern data_ov00_020e2508 .extern data_ov00_020e250c .extern data_ov00_020e2544 @@ -405,49 +447,6 @@ .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 func_ov00_0207dce4 -.extern func_ov00_0207dda0 -.extern func_ov00_0207ddf8 -.extern func_ov00_0207dea0 -.extern func_ov00_0207f844 -.extern func_ov00_0207f958 -.extern func_ov00_0208009c -.extern func_ov00_0208046c -.extern func_ov00_02080de4 -.extern func_ov00_02080edc -.extern func_ov00_0208240c -.extern func_ov00_020825c4 -.extern func_ov00_020825e4 -.extern func_ov00_020826c0 -.extern func_ov00_020827c0 -.extern func_ov00_020827f0 -.extern func_ov00_02082808 -.extern func_ov00_02082914 -.extern func_ov00_02082b3c -.extern func_ov00_0208335c -.extern func_ov00_02083368 -.extern func_ov00_0208344c -.extern func_ov00_02083588 -.extern func_ov00_02083624 -.extern func_ov00_020838f8 -.extern func_ov00_02083b84 -.extern func_ov00_02083bac -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083e34 -.extern func_ov00_02083ee0 -.extern func_ov00_02084838 -.extern func_ov00_02084c6c .extern func_ov00_02086ea0 .extern func_ov00_020872e8 .extern func_ov00_02087d84 @@ -713,6 +712,7 @@ .extern func_ov40_02187ba0 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern gPlayerAnimHandler .extern strcat diff --git a/asm/ov04.s b/asm/ov04.s index f5ef184e..efeb9f7d 100644 --- a/asm/ov04.s +++ b/asm/ov04.s @@ -921,9 +921,9 @@ _0210122a: str r0, [sp] mov r0, #1 str r0, [sp, #4] - ldr r0, _02101388 ; =data_027e0e60 + ldr r0, _02101388 ; =gMapManager ldr r0, [r0] - blx func_ov00_02083588 + blx _ZN10MapManager18func_ov00_02083588Ev str r0, [sp, #8] ldr r0, _02101378 ; =data_027e0d38 ldr r0, [r0] @@ -971,10 +971,10 @@ _02101292: ldr r0, _02101398 ; =data_027e0e58 ldr r0, [r0] bl func_ov04_02107e34 - ldr r0, _02101388 ; =data_027e0e60 + ldr r0, _02101388 ; =gMapManager add r1, r5, #4 ldr r0, [r0] - blx func_ov00_02082b3c + blx _ZN10MapManager18func_ov00_02082b3cEi cmp r6, #0 beq _021012f2 cmp r7, #1 @@ -982,9 +982,9 @@ _02101292: cmp r7, #3 bne _021012d0 _021012b0: - ldr r0, _02101388 ; =data_027e0e60 + ldr r0, _02101388 ; =gMapManager ldr r0, [r0] - blx func_ov00_02083588 + blx _ZN10MapManager18func_ov00_02083588Ev add r1, r0, #0 ldr r0, [sp, #8] cmp r1, r0 @@ -1088,7 +1088,7 @@ _02101378: .word data_027e0d38 _0210137c: .word data_027e0fac _02101380: .word data_027e0f94 _02101384: .word data_027e0618 -_02101388: .word data_027e0e60 +_02101388: .word gMapManager _0210138c: .word data_027e077c _02101390: .word 0x04000304 _02101394: .word 0xffff7fff @@ -2204,10 +2204,10 @@ _02101bce: add r5, #0xc add r7, sp, #4 _02101bda: - ldr r0, _02101c0c ; =data_027e0e60 + ldr r0, _02101c0c ; =gMapManager add r1, r7, #0 ldr r0, [r0] - blx func_ov00_0208344c + blx _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p add r0, r5, #0 add r1, r7, #0 add r2, r5, #0 @@ -2229,7 +2229,7 @@ _02101bf6: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end func_ov04_02101bbc -_02101c0c: .word data_027e0e60 +_02101c0c: .word gMapManager _02101c10: .word data_027e0f6c .global func_ov04_02101c14 @@ -2743,7 +2743,7 @@ func_ov04_02101f90: ; 0x02101f90 add r4, r0, #0 blx func_ov00_02095fa4 add r0, r4, #0 - blx func_ov00_020827c0 + blx _ZN10MapManager10DestroyMapEv ldr r5, [r4] cmp r5, #0 beq _02101fb6 @@ -2765,7 +2765,7 @@ _02101fb6: thumb_func_start func_ov04_02101fbc func_ov04_02101fbc: ; 0x02101fbc push {r3, lr} - ldr r0, _02101fe0 ; =data_027e0e60 + ldr r0, _02101fe0 ; =gMapManager ldr r0, [r0] cmp r0, #0 bne _02101fde @@ -2778,20 +2778,20 @@ func_ov04_02101fbc: ; 0x02101fbc beq _02101fda bl func_ov04_02101f54 _02101fda: - ldr r1, _02101fe0 ; =data_027e0e60 + ldr r1, _02101fe0 ; =gMapManager str r0, [r1] _02101fde: pop {r3, pc} .align 2, 0 thumb_func_end func_ov04_02101fbc -_02101fe0: .word data_027e0e60 +_02101fe0: .word gMapManager _02101fe4: .word data_027e0ce0 .global func_ov04_02101fe8 thumb_func_start func_ov04_02101fe8 func_ov04_02101fe8: ; 0x02101fe8 push {r4, lr} - ldr r0, _02102008 ; =data_027e0e60 + ldr r0, _02102008 ; =gMapManager ldr r4, [r0] cmp r4, #0 beq _02102006 @@ -2801,14 +2801,14 @@ func_ov04_02101fe8: ; 0x02101fe8 add r0, r4, #0 blx _ZN9SysObjectdlEPv _02102000: - ldr r0, _02102008 ; =data_027e0e60 + ldr r0, _02102008 ; =gMapManager mov r1, #0 str r1, [r0] _02102006: pop {r4, pc} .align 2, 0 thumb_func_end func_ov04_02101fe8 -_02102008: .word data_027e0e60 +_02102008: .word gMapManager .global func_ov04_0210200c thumb_func_start func_ov04_0210200c @@ -3108,13 +3108,13 @@ func_ov04_02102264: ; 0x02102264 ldrh r2, [r7, #0x24] ldrh r3, [r7, #0x26] ldr r1, [r7, #0x20] - blx func_ov00_020826c0 + blx _ZN10MapManager9CreateMapEiii add r0, r5, #0 - blx func_ov00_020827f0 + blx _ZN10MapManager16MapData_vfunc_44Ev add r0, r5, #0 add r1, r7, #0 add r2, sp, #0x98 - blx func_ov00_020825c4 + blx _ZN10MapManager17GetCourseFilePathEPcS0_ mov r0, #0xf mvn r0, r0 str r0, [sp] @@ -3141,7 +3141,7 @@ func_ov04_02102264: ; 0x02102264 beq _021022fc ldr r1, [r5] add r0, sp, #0x18 - blx func_ov00_0207cb7c + blx _ZN6Course14FindMapGridPosEP5Vec2bPS_j add r0, sp, #0x18 ldrb r2, [r0] ldr r1, [r5] @@ -3190,7 +3190,7 @@ _02102330: str r0, [sp, #8] ldr r1, [sp, #8] add r0, r5, #0 - blx func_ov00_020825e4 + blx _ZN10MapManager18func_ov00_020825e4Eii mov r0, #0xf mvn r0, r0 str r0, [sp] @@ -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] @@ -3308,7 +3308,7 @@ _02102382: cmp r0, #3 bne _02102478 add r0, r5, #0 - blx func_ov00_0208240c + blx _ZN10MapManager16MapData_vfunc_9cEv ldr r0, _021024bc ; =data_027e0f64 mov r2, #0 ldr r0, [r0] @@ -3377,7 +3377,7 @@ func_ov04_021024c4: ; 0x021024c4 blx r7 ldrb r1, [r4, #0x13] add r0, r5, #0 - blx func_ov00_02082914 + blx _ZN10MapManager18func_ov00_02082914Ei ldr r0, _021025b8 ; =data_027e0f6c mov r1, #0 ldr r0, [r0] @@ -3390,7 +3390,7 @@ func_ov04_021024c4: ; 0x021024c4 ldrb r2, [r4, #0x13] add r0, r5, #0 add r1, sp, #0x10 - blx func_ov00_02083624 + blx _ZN10MapManager14GetEntrancePosEP5Vec3pi ldr r0, _021025bc ; =data_027e0f90 ldrb r1, [r4, #0x13] ldr r0, [r0] @@ -3424,7 +3424,7 @@ func_ov04_021024c4: ; 0x021024c4 blx r1 add r0, r5, #0 add r1, r6, #0 - blx func_ov00_02082808 + blx _ZN10MapManager18func_ov00_02082808Ev ldr r0, [r4, #8] cmp r0, #1 bne _02102578 @@ -7455,10 +7455,10 @@ _021045bc: mov r1, #0 strb r1, [r0, #0xa] strb r1, [r0, #0xb] - ldr r0, _021046bc ; =data_027e0e60 + ldr r0, _021046bc ; =gMapManager add r1, sp, #0x30 ldr r0, [r0] - blx func_ov00_0208344c + blx _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p mov r1, #0 ldr r0, [sp, #0x30] str r1, [sp, #0x1c] @@ -7525,10 +7525,10 @@ _021045bc: ldrb r0, [r0, #0x15] strb r0, [r1, #0x15] _02104682: - ldr r0, _021046bc ; =data_027e0e60 + ldr r0, _021046bc ; =gMapManager add r1, sp, #0x18 ldr r0, [r0] - blx func_ov00_020838f8 + blx _ZN10MapManager18func_ov00_020838f8EPi add r2, sp, #0x54 strb r0, [r2, #0xf] ldr r0, [r6, #0x40] @@ -7554,7 +7554,7 @@ _021046b6: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end func_ov04_0210455c -_021046bc: .word data_027e0e60 +_021046bc: .word gMapManager _021046c0: .word data_ov00_020eab04 _021046c4: .word gAdventureFlags @@ -7771,7 +7771,7 @@ _0210482c: _02104840: bl func_ov04_02105a64 bl func_ov04_021084e8 - ldr r0, _021049b0 ; =data_027e0fbc + ldr r0, _021049b0 ; =gHealthManager ldr r1, [sp, #8] ldr r0, [r0] bl func_ov04_02107f48 @@ -7868,7 +7868,7 @@ _02104920: ldr r0, _021049fc ; =data_027e0f78 ldr r0, [r0] bl func_ov04_02102e3c - ldr r0, _02104a00 ; =data_027e0e60 + ldr r0, _02104a00 ; =gMapManager ldr r0, [r0] bl func_ov04_02102260 ldr r0, _02104a04 ; =data_027e0f68 @@ -7894,7 +7894,7 @@ _02104920: ldrb r2, [r2] ldr r1, [sp] bl func_ov04_02109b78 - ldr r0, _02104a00 ; =data_027e0e60 + ldr r0, _02104a00 ; =gMapManager ldr r1, [sp] ldr r0, [r0] ldr r2, [sp, #4] @@ -7918,7 +7918,7 @@ _021049a0: .word data_ov12_02137c64 _021049a4: .word data_027e077c _021049a8: .word 0x04000304 _021049ac: .word 0xffff7fff -_021049b0: .word data_027e0fbc +_021049b0: .word gHealthManager _021049b4: .word data_ov00_020e9360 _021049b8: .word data_027e0e5c _021049bc: .word data_027e0d04 @@ -7938,7 +7938,7 @@ _021049f0: .word data_027e0f64 _021049f4: .word data_ov09_0211f5b4 _021049f8: .word data_027e1048 _021049fc: .word data_027e0f78 -_02104a00: .word data_027e0e60 +_02104a00: .word gMapManager _02104a04: .word data_027e0f68 _02104a08: .word data_027e0f90 _02104a0c: .word data_027e0fc0 @@ -7971,7 +7971,7 @@ _02104a3c: ldr r0, _02104adc ; =data_027e0f68 ldr r0, [r0] bl func_ov04_02102ad8 - ldr r0, _02104ae0 ; =data_027e0e60 + ldr r0, _02104ae0 ; =gMapManager ldr r0, [r0] bl func_ov04_021025d8 ldr r0, _02104ae4 ; =data_027e0f64 @@ -8001,7 +8001,7 @@ _02104a3c: ldr r0, _02104afc ; =data_ov00_020e9370 bl func_ov04_0210694c bl func_ov00_02079df0 - ldr r0, _02104b00 ; =data_027e0fbc + ldr r0, _02104b00 ; =gHealthManager ldr r0, [r0] bl func_ov04_02108008 bl func_ov04_02105a8c @@ -8021,7 +8021,7 @@ _02104ad0: .word data_ov09_0211f5b4 _02104ad4: .word data_027e0e28 _02104ad8: .word data_ov00_020ee734 _02104adc: .word data_027e0f68 -_02104ae0: .word data_027e0e60 +_02104ae0: .word gMapManager _02104ae4: .word data_027e0f64 _02104ae8: .word gAdventureFlags _02104aec: .word data_027e0fe4 @@ -8029,7 +8029,7 @@ _02104af0: .word data_027e0c68 _02104af4: .word data_027e103c _02104af8: .word data_02068e64 _02104afc: .word data_ov00_020e9370 -_02104b00: .word data_027e0fbc +_02104b00: .word gHealthManager _02104b04: .word data_027e0cbc .global func_ov04_02104b08 @@ -9864,9 +9864,9 @@ func_ov04_021058cc: ; 0x021058cc blx func_ov00_02078b40 cmp r0, #2 beq _021058f6 - ldr r0, _02105948 ; =data_027e0e60 + ldr r0, _02105948 ; =gMapManager ldr r0, [r0] - blx func_ov00_02084838 + blx _ZN10MapManager18func_ov00_02084838Ev cmp r0, #0 beq _021058f4 mov r6, #0x40 @@ -9914,7 +9914,7 @@ _02105940: nop thumb_func_end func_ov04_021058cc _02105944: .word data_027e0d38 -_02105948: .word data_027e0e60 +_02105948: .word gMapManager _0210594c: .word 0x00000126 .global func_ov04_02105950 @@ -14886,19 +14886,19 @@ func_ov04_02107e54: ; 0x02107e54 beq _02107e6a bl func_ov04_02107e9c _02107e6a: - ldr r1, _02107e74 ; =data_027e0fbc + ldr r1, _02107e74 ; =gHealthManager str r0, [r1] pop {r3, pc} .align 2, 0 thumb_func_end func_ov04_02107e54 _02107e70: .word data_027e0ce0 -_02107e74: .word data_027e0fbc +_02107e74: .word gHealthManager .global func_ov04_02107e78 thumb_func_start func_ov04_02107e78 func_ov04_02107e78: ; 0x02107e78 push {r4, lr} - ldr r0, _02107e98 ; =data_027e0fbc + ldr r0, _02107e98 ; =gHealthManager ldr r4, [r0] cmp r4, #0 beq _02107e8e @@ -14907,13 +14907,13 @@ func_ov04_02107e78: ; 0x02107e78 add r0, r4, #0 blx _ZN9SysObjectdlEPv _02107e8e: - ldr r0, _02107e98 ; =data_027e0fbc + ldr r0, _02107e98 ; =gHealthManager mov r1, #0 str r1, [r0] pop {r4, pc} nop thumb_func_end func_ov04_02107e78 -_02107e98: .word data_027e0fbc +_02107e98: .word gHealthManager .global func_ov04_02107e9c thumb_func_start func_ov04_02107e9c @@ -16511,7 +16511,7 @@ _02108bae: bne _02108bae add r0, r6, #0 add r1, sp, #0 - blx func_ov00_0207f958 + blx _ZN7MapBase10AddTriggerEP13TriggerParams add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -16578,11 +16578,11 @@ _02108c18: strh r1, [r4, #0x1c] ldrh r0, [r0, #0x16] strh r0, [r4, #0x1e] - ldr r0, _02108d20 ; =data_027e0e60 + ldr r0, _02108d20 ; =gMapManager ldrh r1, [r4, #0x14] ldr r0, [r0] lsr r1, r1, #4 - blx func_ov00_02083b84 + blx _ZN10MapManager18func_ov00_02083b84Ev add r7, r0, #0 ldrh r0, [r4, #0x14] lsr r2, r0, #0x1f @@ -16602,10 +16602,10 @@ _02108c18: ldrh r7, [r4, #0x16] lsl r0, r0, #0xc str r0, [sp, #0x3c] - ldr r0, _02108d20 ; =data_027e0e60 + ldr r0, _02108d20 ; =gMapManager lsr r1, r7, #4 ldr r0, [r0] - blx func_ov00_02083bac + blx _ZN10MapManager18func_ov00_02083bacEv str r0, [sp, #0x14] lsr r2, r7, #0x1f lsl r1, r7, #0x1c @@ -16689,7 +16689,7 @@ _02108d0e: .align 2, 0 thumb_func_end func_ov04_02108bd4 _02108d1c: .word data_027e0ff0 -_02108d20: .word data_027e0e60 +_02108d20: .word gMapManager _02108d24: .word 0x0b60b60b _02108d28: .word 0x00000800 @@ -16768,7 +16768,7 @@ _02108d7c: strb r2, [r0, #0x15] add r0, r7, #0 add r1, sp, #0 - blx func_ov00_0208009c + blx _ZN7MapBase7AddExitEP4Exit add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -16792,15 +16792,15 @@ func_ov04_02108de0: ; 0x02108de0 push {r4, r5, r6, r7, lr} sub sp, #0x44 add r4, r0, #0 - ldr r0, _02109090 ; =data_027e0e60 + ldr r0, _02109090 ; =gMapManager add r7, r1, #0 ldr r0, [r0] str r2, [sp, #4] - blx func_ov00_0208335c + blx _ZN10MapManager17Get_MapData_Unk28Ev str r0, [sp, #0xc] - ldr r0, _02109090 ; =data_027e0e60 + ldr r0, _02109090 ; =gMapManager ldr r0, [r0] - blx func_ov00_02083368 + blx _ZN10MapManager17Get_MapData_Unk2aEv str r0, [sp, #8] ldrh r0, [r7, #8] mov r5, #0 @@ -17172,7 +17172,7 @@ _0210906c: b _0210909c nop thumb_func_end func_ov04_02108de0 -_02109090: .word data_027e0e60 +_02109090: .word gMapManager _02109094: .word 0x0b60b60b _02109098: .word 0x00000800 _0210909c: @@ -17207,15 +17207,15 @@ func_ov04_021090c8: ; 0x021090c8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x88 add r5, r0, #0 - ldr r0, _021092d0 ; =data_027e0e60 + ldr r0, _021092d0 ; =gMapManager str r1, [sp, #4] ldr r0, [r0] str r2, [sp, #8] - blx func_ov00_0208335c + blx _ZN10MapManager17Get_MapData_Unk28Ev str r0, [sp, #0x18] - ldr r0, _021092d0 ; =data_027e0e60 + ldr r0, _021092d0 ; =gMapManager ldr r0, [r0] - blx func_ov00_02083368 + blx _ZN10MapManager17Get_MapData_Unk2aEv str r0, [sp, #0x14] ldr r0, [sp, #4] mov r4, #0 @@ -17270,12 +17270,12 @@ _021090f2: _02109148: b _021092ba _0210914a: - ldr r0, _021092d0 ; =data_027e0e60 + ldr r0, _021092d0 ; =gMapManager ldr r1, [r5, #0x10] ldr r0, [r0] lsl r1, r1, #0x10 lsr r1, r1, #0x10 - blx func_ov00_02084c6c + blx _ZN10MapManager18func_ov00_02084c6cEi cmp r0, #0 bne _0210916c add r0, sp, #0x5c @@ -17289,10 +17289,10 @@ _0210914a: _0210916c: b _021092b4 _0210916e: - ldr r0, _021092d0 ; =data_027e0e60 + ldr r0, _021092d0 ; =gMapManager add r1, r7, #0 ldr r0, [r0] - blx func_ov00_02083c24 + blx _ZN10MapManager18func_ov00_02083c24Ei add r7, r0, #0 ldr r0, [sp, #0x10] mov r1, #1 @@ -17301,10 +17301,10 @@ _0210916e: blx func_0200388c add r0, r7, r0 str r0, [sp, #0x7c] - ldr r0, _021092d0 ; =data_027e0e60 + ldr r0, _021092d0 ; =gMapManager add r1, r6, #0 ldr r0, [r0] - blx func_ov00_02083c50 + blx _ZN10MapManager18func_ov00_02083c50Ei add r6, r0, #0 ldr r0, [sp, #0xc] mov r1, #1 @@ -17316,11 +17316,11 @@ _0210916e: mov r0, #5 lsl r0, r0, #0xc str r0, [sp, #0x80] - ldr r0, _021092d0 ; =data_027e0e60 + ldr r0, _021092d0 ; =gMapManager add r1, sp, #0x7c ldr r0, [r0] mov r2, #0 - blx func_ov00_02083ee0 + blx _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [sp, #0x5c] ldr r1, _021092d4 ; =0x414e4353 str r0, [sp, #0x80] @@ -17466,7 +17466,7 @@ _021092ca: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end func_ov04_021090c8 -_021092d0: .word data_027e0e60 +_021092d0: .word gMapManager _021092d4: .word 0x414e4353 _021092d8: .word 0x0b60b60b _021092dc: .word 0x00000800 @@ -17553,13 +17553,13 @@ _02109360: beq _02109382 b _0210938a _02109378: - ldr r0, _02109480 ; =data_027e0e60 + ldr r0, _02109480 ; =gMapManager ldr r1, [r0] mov r0, #1 strb r0, [r1, #8] b _0210938a _02109382: - ldr r0, _02109480 ; =data_027e0e60 + ldr r0, _02109480 ; =gMapManager ldr r1, [r0] mov r0, #0 strb r0, [r1, #8] @@ -17704,7 +17704,7 @@ _0210946c: nop thumb_func_end func_ov04_021092e8 _0210947c: .word 0x00001333 -_02109480: .word data_027e0e60 +_02109480: .word gMapManager _02109484: .word data_027e0618 _02109488: .word data_027e0d38 _0210948c: .word gOverlayManager @@ -17763,10 +17763,10 @@ _021094b2: lsr r0, r0, #0x1c add r0, r5, r0 asr r7, r0, #4 - ldr r0, _021095b0 ; =data_027e0e60 + ldr r0, _021095b0 ; =gMapManager add r1, r7, #0 ldr r0, [r0] - blx func_ov00_02083c50 + blx _ZN10MapManager18func_ov00_02083c50Ei str r0, [sp, #0x10] lsr r2, r5, #0x1f lsl r1, r5, #0x1c @@ -17782,15 +17782,15 @@ _021094b2: add r2, r7, #0 add r0, r1, r0 str r0, [sp, #8] - ldr r0, _021095b0 ; =data_027e0e60 + ldr r0, _021095b0 ; =gMapManager ldr r1, [sp, #0xc] ldr r0, [r0] - blx func_ov00_02083e34 + blx _ZN10MapManager18func_ov00_02083e34Ecci add r5, r0, #0 - ldr r0, _021095b0 ; =data_027e0e60 + ldr r0, _021095b0 ; =gMapManager ldr r1, [sp, #0xc] ldr r0, [r0] - blx func_ov00_02083c24 + blx _ZN10MapManager18func_ov00_02083c24Ei add r7, r0, #0 lsr r2, r6, #0x1f lsl r1, r6, #0x1c @@ -17834,7 +17834,7 @@ _021094b2: add r1, sp, #0x14 str r0, [sp, #0x24] ldr r0, [sp, #4] - blx func_ov00_0207f844 + blx _ZN7MapBase11AddEntranceEP8Entrance add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -17848,7 +17848,7 @@ _021095a8: pop {r4, r5, r6, r7, pc} nop thumb_func_end func_ov04_021094a0 -_021095b0: .word data_027e0e60 +_021095b0: .word gMapManager _021095b4: .word 0x0b60b60b _021095b8: .word 0x00000800 @@ -17938,13 +17938,13 @@ _021095ec: lsl r0, r0, #0xa add r0, r1, r0 asr r6, r0, #0xc - ldr r0, _0210974c ; =data_027e0e60 + ldr r0, _0210974c ; =gMapManager asr r1, r6, #3 lsr r1, r1, #0x1c add r1, r6, r1 ldr r0, [r0] asr r1, r1, #4 - blx func_ov00_02083bac + blx _ZN10MapManager18func_ov00_02083bacEv str r0, [sp, #0x10] lsr r2, r6, #0x1f lsl r1, r6, #0x1c @@ -17977,14 +17977,14 @@ _021095ec: mul r1, r2 add r6, r1, r0 ldr r1, [sp, #8] - ldr r0, _0210974c ; =data_027e0e60 + ldr r0, _0210974c ; =gMapManager asr r1, r1, #3 lsr r2, r1, #0x1c ldr r1, [sp, #8] ldr r0, [r0] add r2, r1, r2 asr r1, r2, #4 - blx func_ov00_02083b84 + blx _ZN10MapManager18func_ov00_02083b84Ev add r7, r0, #0 ldr r0, [sp, #8] ldr r1, [sp, #8] @@ -18037,7 +18037,7 @@ _021095ec: strh r1, [r0, #0x1a] ldr r0, [sp, #4] add r1, sp, #0x3c - blx func_ov00_0208046c + blx _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint add r0, r5, #1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 @@ -18052,7 +18052,7 @@ _02109746: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end func_ov04_021095bc -_0210974c: .word data_027e0e60 +_0210974c: .word gMapManager _02109750: .word 0x00001333 _02109754: .word 0x00000133 _02109758: .word 0x0b60b60b @@ -23144,7 +23144,7 @@ func_ov04_0210bde4: ; 0x0210bde4 func_ov04_0210be04: ; 0x0210be04 push {r3, r4, r5, lr} add r4, r0, #0 - ldr r0, _0210bf94 ; =data_ov00_020e2348 + ldr r0, _0210bf94 ; =_ZTV7MapBase mov r3, #0 str r0, [r4] mov r0, #1 @@ -23338,7 +23338,7 @@ _0210bf8e: pop {r3, r4, r5, pc} nop thumb_func_end func_ov04_0210be04 -_0210bf94: .word data_ov00_020e2348 +_0210bf94: .word _ZTV7MapBase _0210bf98: .word 0x00001333 _0210bf9c: .word func_ov04_02101684 - 1 _0210bfa0: .word func_ov04_0210bde4 - 1 @@ -23356,7 +23356,7 @@ func_ov04_0210bfa8: ; 0x0210bfa8 mov r1, #1 strb r1, [r4, #4] strb r2, [r4, #8] - blx func_ov00_02080de4 + blx _ZN7MapBase18func_ov00_02080de4Ev ldr r0, _0210c0f0 ; =data_027e0d38 ldr r2, [r0] ldr r0, [r2, #0x14] @@ -23510,7 +23510,7 @@ _0210c0dc: mov r0, #0 strh r0, [r4, #0x30] add r0, r4, #0 - blx func_ov00_02080edc + blx _ZN7MapBase18func_ov00_02080edcEv add sp, #0x60 pop {r3, r4, r5, pc} .align 2, 0 @@ -23673,7 +23673,7 @@ _0210c218: add r1, #0xc add r2, r6, #0 add r3, sp - blx func_ov00_0207dda0 + blx _ZN7MapBase14GetMapFilePathEPcii mov r0, #0x10 str r0, [sp] mov r0, #1 @@ -23692,14 +23692,14 @@ _0210c218: add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 - blx func_ov00_0207dce4 + blx _ZN7MapBase9SetBoundsEii add r0, r5, #0 mov r1, #0 - blx func_ov00_0207ddf8 + blx _ZN7MapBase18func_ov00_0207ddf8Eb add r0, sp, #8 add r1, r4, #0 add r2, r6, #0 - blx func_ov00_0207cb7c + 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 func_ov00_0207ce20 + 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 func_ov00_0207ce20 + 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 func_ov00_0207ce20 + 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 func_ov00_0207ca78 + 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 func_ov00_0207ce20 + blx _ZN6Course18func_ov00_0207ce20EiiPci 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] @@ -23859,7 +23859,7 @@ _0210c370: _0210c3c4: add r0, r5, #0 mov r1, #1 - blx func_ov00_0207dea0 + blx _ZN7MapBase18func_ov00_0207dea0Eb add sp, #0x1fc add sp, #0x1fc add sp, #0x1c8 @@ -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_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 func_ov00_0207ce20 + blx _ZN6Course18func_ov00_0207ce20EiiPci mov r1, #0 ldr r0, _0210c4f8 ; =data_02057878 str r1, [sp, #0xc] @@ -24825,10 +24825,10 @@ func_ov04_0210cb38: ; 0x0210cb38 str r0, [sp, #0xa0] add r0, sp, #0x80 blx func_ov00_020c3348 - ldr r0, _0210cc0c ; =data_027e0e60 + ldr r0, _0210cc0c ; =gMapManager add r1, sp, #0x74 ldr r0, [r0] - blx func_ov00_0208344c + blx _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p mov r0, #0 str r0, [sp] ldr r0, _0210cc10 ; =data_027e0fe8 @@ -24857,10 +24857,10 @@ _0210cb7a: str r0, [sp, #0x68] add r0, sp, #0x48 blx func_ov00_020c3348 - ldr r0, _0210cc0c ; =data_027e0e60 + ldr r0, _0210cc0c ; =gMapManager add r1, sp, #0x3c ldr r0, [r0] - blx func_ov00_0208344c + blx _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p mov r0, #0 str r0, [sp] ldr r0, _0210cc10 ; =data_027e0fe8 @@ -24886,10 +24886,10 @@ _0210cbc2: str r0, [sp, #0x30] add r0, sp, #0x10 blx func_ov00_020c3348 - ldr r0, _0210cc0c ; =data_027e0e60 + ldr r0, _0210cc0c ; =gMapManager add r1, sp, #4 ldr r0, [r0] - blx func_ov00_0208344c + blx _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p mov r0, #0 str r0, [sp] ldr r0, _0210cc10 ; =data_027e0fe8 @@ -24904,7 +24904,7 @@ _0210cc04: .align 2, 0 thumb_func_end func_ov04_0210cb38 _0210cc08: .word data_027e0d38 -_0210cc0c: .word data_027e0e60 +_0210cc0c: .word gMapManager _0210cc10: .word data_027e0fe8 _0210cc14: .word 0x49434645 _0210cc18: .word 0x534e4546 @@ -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_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 func_ov00_0207d7a4 + blx _ZN6Course18FindMapData_Unk_0cEi 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 _ZN6Course11FindMapDataEj 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 _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 func_ov00_0207cb7c + blx _ZN6Course14FindMapGridPosEP5Vec2bPS_j add r0, sp, #0x18 ldrb r0, [r0, #1] add r1, r7, #0 str r0, [sp] add r0, r5, #0 - blx func_ov00_0207d4e4 + blx _ZN6Course15IsMapInMainGridEj cmp r0, #0 beq _0210f284 add r1, r5, #0 @@ -30708,379 +30708,473 @@ data_ov04_0210fee0: ; 0x0210fee0 .byte 0x00 .global data_ov04_0210fef0 data_ov04_0210fef0: ; 0x0210fef0 - .ascii "ƒJƒƒ‰’²" + ; string "カパラθͺΏζ•΄" + .byte 0x83, 0x4a, 0x83, 0x81, 0x83, 0x89, 0x92, 0xb2, 0x90, 0xae .byte 0x00, 0x00 .global data_ov04_0210fefc data_ov04_0210fefc: ; 0x0210fefc - .ascii "ƒtƒB[ƒ‹ƒh" + ; string "フィールド" + .byte 0x83, 0x74, 0x83, 0x42, 0x81, 0x5b, 0x83, 0x8b, 0x83, 0x68 .byte 0x00, 0x00 .global data_ov04_0210ff08 data_ov04_0210ff08: ; 0x0210ff08 - .ascii "—H—μ‘DƒtƒB[ƒ‹ƒh" + ; string "εΉ½ιœŠθˆΉγƒ•γ‚£γƒΌγƒ«γƒ‰" + .byte 0x97, 0x48, 0x97, 0xec, 0x91, 0x44, 0x83, 0x74, 0x83, 0x42, 0x81, 0x5b, 0x83, 0x8b, 0x83, 0x68 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0210ff1c data_ov04_0210ff1c: ; 0x0210ff1c - .ascii "‚Ω‚±‚ηƒtƒB[ƒ‹ƒh" + ; string "ほこらフィールド" + .byte 0x82, 0xd9, 0x82, 0xb1, 0x82, 0xe7, 0x83, 0x74, 0x83, 0x42, 0x81, 0x5b, 0x83, 0x8b, 0x83, 0x68 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0210ff30 data_ov04_0210ff30: ; 0x0210ff30 - .ascii "ƒfƒ‚" + ; string "デヒ" + .byte 0x83, 0x66, 0x83, 0x82 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0210ff38 data_ov04_0210ff38: ; 0x0210ff38 - .ascii "’–Ϊ" + ; string "注η›" + .byte 0x92, 0x8d, 0x96, 0xda .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0210ff40 data_ov04_0210ff40: ; 0x0210ff40 - .ascii "’–Ϊ2" + ; string "注η›2" + .byte 0x92, 0x8d, 0x96, 0xda, 0x32 .byte 0x00, 0x00, 0x00 .global data_ov04_0210ff48 data_ov04_0210ff48: ; 0x0210ff48 - .ascii "‰ο˜b" + ; string "会話" + .byte 0x89, 0xef, 0x98, 0x62 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0210ff50 data_ov04_0210ff50: ; 0x0210ff50 - .ascii "ŠΕ”Β" + ; string "ηœ‹ζΏ" + .byte 0x8a, 0xc5, 0x94, 0xc2 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0210ff58 data_ov04_0210ff58: ; 0x0210ff58 - .ascii "‰ο˜b(ŽΊ“ΰ)" + ; string "会話(ε€ε†…)" + .byte 0x89, 0xef, 0x98, 0x62, 0x28, 0x8e, 0xba, 0x93, 0xe0, 0x29 .byte 0x00, 0x00 .global data_ov04_0210ff64 data_ov04_0210ff64: ; 0x0210ff64 - .ascii "ŠΕ”Β(ŽΊ“ΰ)" + ; string "ηœ‹ζΏ(ε€ε†…)" + .byte 0x8a, 0xc5, 0x94, 0xc2, 0x28, 0x8e, 0xba, 0x93, 0xe0, 0x29 .byte 0x00, 0x00 .global data_ov04_0210ff70 data_ov04_0210ff70: ; 0x0210ff70 - .ascii "ƒQƒbƒg" + ; string "γ‚²γƒƒγƒˆ" + .byte 0x83, 0x51, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00 .global data_ov04_0210ff78 data_ov04_0210ff78: ; 0x0210ff78 - .ascii "ƒQ[ƒ€ƒI[ƒo[(Ž€–S)" + ; string "γ‚²γƒΌγƒ γ‚ͺーバー(ζ­»δΊ‘)" + .byte 0x83, 0x51, 0x81, 0x5b, 0x83, 0x80, 0x83, 0x49, 0x81, 0x5b, 0x83, 0x6f, 0x81, 0x5b, 0x28, 0x8e, 0x80, 0x96, 0x53, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0210ff90 data_ov04_0210ff90: ; 0x0210ff90 - .ascii "ƒQ[ƒ€ƒI[ƒo[(“|‚κ‚ι)" + ; string "γ‚²γƒΌγƒ γ‚ͺーバー(ε€’γ‚Œγ‚‹)" + .byte 0x83, 0x51, 0x81, 0x5b, 0x83, 0x80, 0x83, 0x49, 0x81, 0x5b, 0x83, 0x6f, 0x81, 0x5b, 0x28, 0x93, 0x7c, 0x82, 0xea, 0x82, 0xe9, 0x29 .byte 0x00, 0x00 .global data_ov04_0210ffa8 data_ov04_0210ffa8: ; 0x0210ffa8 - .ascii "•œŠˆ–ς" + ; string "εΎ©ζ΄»θ–¬" + .byte 0x95, 0x9c, 0x8a, 0x88, 0x96, 0xf2 .byte 0x00, 0x00 .global data_ov04_0210ffb0 data_ov04_0210ffb0: ; 0x0210ffb0 - .ascii "‘D”š”­" + ; string "θˆΉηˆ†η™Ί" + .byte 0x91, 0x44, 0x94, 0x9a, 0x94, 0xad .byte 0x00, 0x00 .global data_ov04_0210ffb8 data_ov04_0210ffb8: ; 0x0210ffb8 - .ascii "‘DƒQ[ƒ€ƒI[ƒo[" + ; string "θˆΉγ‚²γƒΌγƒ γ‚ͺーバー" + .byte 0x91, 0x44, 0x83, 0x51, 0x81, 0x5b, 0x83, 0x80, 0x83, 0x49, 0x81, 0x5b, 0x83, 0x6f, 0x81, 0x5b .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0210ffcc data_ov04_0210ffcc: ; 0x0210ffcc - .ascii "‘D" + ; string "船" + .byte 0x91, 0x44 .byte 0x00, 0x00 .global data_ov04_0210ffd0 data_ov04_0210ffd0: ; 0x0210ffd0 - .ascii "•”‰(ŒΕ’θ)" + ; string "部屋(ε›Ίεš)" + .byte 0x95, 0x94, 0x89, 0xae, 0x28, 0x8c, 0xc5, 0x92, 0xe8, 0x29 .byte 0x00, 0x00 .global data_ov04_0210ffdc data_ov04_0210ffdc: ; 0x0210ffdc - .ascii "•”‰(ŽG‰έ‰)" + ; string "部屋(雑貨屋)" + .byte 0x95, 0x94, 0x89, 0xae, 0x28, 0x8e, 0x47, 0x89, 0xdd, 0x89, 0xae, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0210ffec data_ov04_0210ffec: ; 0x0210ffec - .ascii "•”‰(ƒeƒŠ[‘D)" + ; string "部屋(テγƒͺγƒΌθˆΉ)" + .byte 0x95, 0x94, 0x89, 0xae, 0x28, 0x83, 0x65, 0x83, 0x8a, 0x81, 0x5b, 0x91, 0x44, 0x29 .byte 0x00, 0x00 .global data_ov04_0210fffc data_ov04_0210fffc: ; 0x0210fffc - .ascii "•”‰(e•ͺ‚©‚¦‚ι)" + ; string "部屋(θ¦ͺεˆ†γ‹γˆγ‚‹)" + .byte 0x95, 0x94, 0x89, 0xae, 0x28, 0x90, 0x65, 0x95, 0xaa, 0x82, 0xa9, 0x82, 0xa6, 0x82, 0xe9, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110010 data_ov04_02110010: ; 0x02110010 - .ascii "•”‰(ƒ‰ƒXƒ{ƒX‘O)" + ; string "部屋(γƒ©γ‚Ήγƒœγ‚Ήε‰)" + .byte 0x95, 0x94, 0x89, 0xae, 0x28, 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x91, 0x4f, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110024 data_ov04_02110024: ; 0x02110024 - .ascii "•”‰(ƒ‰ƒXƒ{ƒX‘OŠK’i)" + ; string "部屋(γƒ©γ‚Ήγƒœγ‚Ήε‰ιšŽζ΅)" + .byte 0x95, 0x94, 0x89, 0xae, 0x28, 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x91, 0x4f, 0x8a, 0x4b, 0x92, 0x69, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0211003c data_ov04_0211003c: ; 0x0211003c - .ascii "Žθ“" + ; string "手動" + .byte 0x8e, 0xe8, 0x93, 0xae .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110044 data_ov04_02110044: ; 0x02110044 - .ascii "‘DŽθ“" + ; string "θˆΉζ‰‹ε‹•" + .byte 0x91, 0x44, 0x8e, 0xe8, 0x93, 0xae .byte 0x00, 0x00 .global data_ov04_0211004c data_ov04_0211004c: ; 0x0211004c - .ascii "‘D‘ε–C" + ; string "船倧砲" + .byte 0x91, 0x44, 0x91, 0xe5, 0x96, 0x43 .byte 0x00, 0x00 .global data_ov04_02110054 data_ov04_02110054: ; 0x02110054 - .ascii "‘D‘ε–C(ƒ~ƒjƒQ[ƒ€)" + ; string "船倧砲(γƒŸγƒ‹γ‚²γƒΌγƒ )" + .byte 0x91, 0x44, 0x91, 0xe5, 0x96, 0x43, 0x28, 0x83, 0x7e, 0x83, 0x6a, 0x83, 0x51, 0x81, 0x5b, 0x83, 0x80, 0x29 .byte 0x00, 0x00 .global data_ov04_02110068 data_ov04_02110068: ; 0x02110068 - .ascii "L‚’•”‰(ŒΕ’θ)" + ; string "広い部屋(ε›Ίεš)" + .byte 0x8d, 0x4c, 0x82, 0xa2, 0x95, 0x94, 0x89, 0xae, 0x28, 0x8c, 0xc5, 0x92, 0xe8, 0x29 .byte 0x00, 0x00 .global data_ov04_02110078 data_ov04_02110078: ; 0x02110078 - .ascii "ƒoƒgƒ‹’ΗΥŽŽΐŒ±" + ; string "γƒγƒˆγƒ«θΏ½θ·‘θ€…εŸι¨“" + .byte 0x83, 0x6f, 0x83, 0x67, 0x83, 0x8b, 0x92, 0xc7, 0x90, 0xd5, 0x8e, 0xd2, 0x8e, 0xc0, 0x8c, 0xb1 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0211008c data_ov04_0211008c: ; 0x0211008c - .ascii "•—ƒ{ƒX(ƒƒCƒ“)" + ; string "ι’¨γƒœγ‚Ή(パむン)" + .byte 0x95, 0x97, 0x83, 0x7b, 0x83, 0x58, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00 .global data_ov04_0211009c data_ov04_0211009c: ; 0x0211009c - .ascii "•—ƒ{ƒX(ƒTƒu)" + ; string "ι’¨γƒœγ‚Ή(γ‚΅γƒ–)" + .byte 0x95, 0x97, 0x83, 0x7b, 0x83, 0x58, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021100ac data_ov04_021100ac: ; 0x021100ac - .ascii "ƒoƒgƒ‹’ΗΥŽŽΐŒ±P" + ; string "γƒγƒˆγƒ«θΏ½θ·‘θ€…εŸι¨“P" + .byte 0x83, 0x6f, 0x83, 0x67, 0x83, 0x8b, 0x92, 0xc7, 0x90, 0xd5, 0x8e, 0xd2, 0x8e, 0xc0, 0x8c, 0xb1, 0x50 .byte 0x00, 0x00, 0x00 .global data_ov04_021100c0 data_ov04_021100c0: ; 0x021100c0 - .ascii "ƒiƒrƒB‰ο˜b" + ; string "γƒŠγƒ“γ‚£δΌšθ©±" + .byte 0x83, 0x69, 0x83, 0x72, 0x83, 0x42, 0x89, 0xef, 0x98, 0x62 .byte 0x00, 0x00 .global data_ov04_021100cc data_ov04_021100cc: ; 0x021100cc - .ascii "ƒiƒrƒB‰ο˜b2" + ; string "γƒŠγƒ“γ‚£δΌšθ©±2" + .byte 0x83, 0x69, 0x83, 0x72, 0x83, 0x42, 0x89, 0xef, 0x98, 0x62, 0x32 .byte 0x00 .global data_ov04_021100d8 data_ov04_021100d8: ; 0x021100d8 - .ascii "ƒiƒrƒB‰ο˜b(ŽΊ“ΰ)" + ; string "γƒŠγƒ“γ‚£δΌšθ©±(ε€ε†…)" + .byte 0x83, 0x69, 0x83, 0x72, 0x83, 0x42, 0x89, 0xef, 0x98, 0x62, 0x28, 0x8e, 0xba, 0x93, 0xe0, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021100ec data_ov04_021100ec: ; 0x021100ec - .ascii "ƒTƒ‹ƒx[ƒW(ƒƒCƒ“)" + ; string "ァルベージ(パむン)" + .byte 0x83, 0x54, 0x83, 0x8b, 0x83, 0x78, 0x81, 0x5b, 0x83, 0x57, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00 .global data_ov04_02110100 data_ov04_02110100: ; 0x02110100 - .ascii "ƒTƒ‹ƒx[ƒW(ƒTƒu)" + ; string "ァルベージ(γ‚΅γƒ–)" + .byte 0x83, 0x54, 0x83, 0x8b, 0x83, 0x78, 0x81, 0x5b, 0x83, 0x57, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110114 data_ov04_02110114: ; 0x02110114 - .ascii "’ή‚θ(ƒƒCƒ“)" + ; string "ι‡£γ‚Š(パむン)" + .byte 0x92, 0xde, 0x82, 0xe8, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110124 data_ov04_02110124: ; 0x02110124 - .ascii "’ή‚θ(ƒTƒu)" + ; string "ι‡£γ‚Š(γ‚΅γƒ–)" + .byte 0x92, 0xde, 0x82, 0xe8, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00, 0x00 .global data_ov04_02110130 data_ov04_02110130: ; 0x02110130 - .ascii "‹›’ή‚Α‚½(ƒƒCƒ“)" + ; string "ι­šι‡£γ£γŸ(パむン)" + .byte 0x8b, 0x9b, 0x92, 0xde, 0x82, 0xc1, 0x82, 0xbd, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110144 data_ov04_02110144: ; 0x02110144 - .ascii "‹›’ή‚Α‚½(ƒTƒu)" + ; string "ι­šι‡£γ£γŸ(γ‚΅γƒ–)" + .byte 0x8b, 0x9b, 0x92, 0xde, 0x82, 0xc1, 0x82, 0xbd, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00, 0x00 .global data_ov04_02110154 data_ov04_02110154: ; 0x02110154 - .ascii "‘ε‹›’ή‚Α‚½(ƒƒCƒ“)" + ; string "ε€§ι­šι‡£γ£γŸ(パむン)" + .byte 0x91, 0xe5, 0x8b, 0x9b, 0x92, 0xde, 0x82, 0xc1, 0x82, 0xbd, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00 .global data_ov04_02110168 data_ov04_02110168: ; 0x02110168 - .ascii "‘ε‹›’ή‚Α‚½(ƒTƒu)" + ; string "ε€§ι­šι‡£γ£γŸ(γ‚΅γƒ–)" + .byte 0x91, 0xe5, 0x8b, 0x9b, 0x92, 0xde, 0x82, 0xc1, 0x82, 0xbd, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0211017c data_ov04_0211017c: ; 0x0211017c - .ascii "ƒTƒ‹ƒx[ƒW•σ” ŠJ‚­" + ; string "ァルベージεη±ι–‹γ" + .byte 0x83, 0x54, 0x83, 0x8b, 0x83, 0x78, 0x81, 0x5b, 0x83, 0x57, 0x95, 0xf3, 0x94, 0xa0, 0x8a, 0x4a, 0x82, 0xad .byte 0x00, 0x00 .global data_ov04_02110190 data_ov04_02110190: ; 0x02110190 - .ascii "ƒhƒAŠJ‚«" + ; string "ドを開き" + .byte 0x83, 0x68, 0x83, 0x41, 0x8a, 0x4a, 0x82, 0xab .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0211019c data_ov04_0211019c: ; 0x0211019c - .ascii "ƒhƒA•Β‚Ά" + ; string "γƒ‰γ‚’ι–‰γ˜" + .byte 0x83, 0x68, 0x83, 0x41, 0x95, 0xc2, 0x82, 0xb6 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021101a8 data_ov04_021101a8: ; 0x021101a8 - .ascii "‘ε–C(Œ©γ‚°)" + ; string "ε€§η ²(θ¦‹δΈŠγ’)" + .byte 0x91, 0xe5, 0x96, 0x43, 0x28, 0x8c, 0xa9, 0x8f, 0xe3, 0x82, 0xb0, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021101b8 data_ov04_021101b8: ; 0x021101b8 - .ascii "“ό`" + ; string "ε…₯ζΈ―" + .byte 0x93, 0xfc, 0x8d, 0x60 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021101c0 data_ov04_021101c0: ; 0x021101c0 - .ascii "o`" + ; string "ε‡ΊζΈ―" + .byte 0x8f, 0x6f, 0x8d, 0x60 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021101c8 data_ov04_021101c8: ; 0x021101c8 - .ascii "’mŒbƒ{ƒX(ƒƒCƒ“)" + ; string "ηŸ₯ζ΅γƒœγ‚Ή(パむン)" + .byte 0x92, 0x6d, 0x8c, 0x62, 0x83, 0x7b, 0x83, 0x58, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021101dc data_ov04_021101dc: ; 0x021101dc - .ascii "’mŒbƒ{ƒX(ƒTƒu)" + ; string "ηŸ₯ζ΅γƒœγ‚Ή(γ‚΅γƒ–)" + .byte 0x92, 0x6d, 0x8c, 0x62, 0x83, 0x7b, 0x83, 0x58, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00, 0x00 .global data_ov04_021101ec data_ov04_021101ec: ; 0x021101ec - .ascii "’mŒbƒ{ƒX2(ƒƒCƒ“)" + ; string "ηŸ₯ζ΅γƒœγ‚Ή2(パむン)" + .byte 0x92, 0x6d, 0x8c, 0x62, 0x83, 0x7b, 0x83, 0x58, 0x32, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00, 0x00 .global data_ov04_02110200 data_ov04_02110200: ; 0x02110200 - .ascii "‹|–ξ" + ; string "εΌ“ηŸ’" + .byte 0x8b, 0x7c, 0x96, 0xee .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110208 data_ov04_02110208: ; 0x02110208 - .ascii "ƒu[ƒƒ‰ƒ“" + ; string "ブーパラン" + .byte 0x83, 0x75, 0x81, 0x5b, 0x83, 0x81, 0x83, 0x89, 0x83, 0x93 .byte 0x00, 0x00 .global data_ov04_02110214 data_ov04_02110214: ; 0x02110214 - .ascii "ƒ{ƒ€ƒ`ƒ…ƒE" + ; string "γƒœγƒ γƒγƒ₯ウ" + .byte 0x83, 0x7b, 0x83, 0x80, 0x83, 0x60, 0x83, 0x85, 0x83, 0x45 .byte 0x00, 0x00 .global data_ov04_02110220 data_ov04_02110220: ; 0x02110220 - .ascii "ƒ{ƒ€ƒ`ƒ…ƒE(όˆψ‚«)" + ; string "γƒœγƒ γƒγƒ₯ウ(η·šεΌ•γ)" + .byte 0x83, 0x7b, 0x83, 0x80, 0x83, 0x60, 0x83, 0x85, 0x83, 0x45, 0x28, 0x90, 0xfc, 0x88, 0xf8, 0x82, 0xab, 0x29 .byte 0x00, 0x00 .global data_ov04_02110234 data_ov04_02110234: ; 0x02110234 - .ascii "ƒSƒVƒbƒv" + ; string "ゴシップ" + .byte 0x83, 0x53, 0x83, 0x56, 0x83, 0x62, 0x83, 0x76 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110240 data_ov04_02110240: ; 0x02110240 - .ascii "ƒSƒVƒbƒv(‰ο˜b)" + ; string "ゴシップ(会話)" + .byte 0x83, 0x53, 0x83, 0x56, 0x83, 0x62, 0x83, 0x76, 0x28, 0x89, 0xef, 0x98, 0x62, 0x29 .byte 0x00, 0x00 .global data_ov04_02110250 data_ov04_02110250: ; 0x02110250 - .ascii "ƒŒƒ„[ƒh" + ; string "レダード" + .byte 0x83, 0x8c, 0x83, 0x84, 0x81, 0x5b, 0x83, 0x68 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0211025c data_ov04_0211025c: ; 0x0211025c - .ascii "‰ο˜b(‰“‚ί)" + ; string "会話(遠め)" + .byte 0x89, 0xef, 0x98, 0x62, 0x28, 0x89, 0x93, 0x82, 0xdf, 0x29 .byte 0x00, 0x00 .global data_ov04_02110268 data_ov04_02110268: ; 0x02110268 - .ascii "‰ο˜b(‹ί‚ί)" + ; string "会話(近め)" + .byte 0x89, 0xef, 0x98, 0x62, 0x28, 0x8b, 0xdf, 0x82, 0xdf, 0x29 .byte 0x00, 0x00 .global data_ov04_02110274 data_ov04_02110274: ; 0x02110274 - .ascii "‰ο˜b(‰‘)" + ; string "会話(ζ¨ͺ)" + .byte 0x89, 0xef, 0x98, 0x62, 0x28, 0x89, 0xa1, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110280 data_ov04_02110280: ; 0x02110280 - .ascii "‰ο˜b(l‹›)" + ; string "会話(人魚)" + .byte 0x89, 0xef, 0x98, 0x62, 0x28, 0x90, 0x6c, 0x8b, 0x9b, 0x29 .byte 0x00, 0x00 .global data_ov04_0211028c data_ov04_0211028c: ; 0x0211028c - .ascii "‰ο˜b(ƒ€ƒg[)" + ; string "会話(γƒ γƒˆγƒΌ)" + .byte 0x89, 0xef, 0x98, 0x62, 0x28, 0x83, 0x80, 0x83, 0x67, 0x81, 0x5b, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0211029c data_ov04_0211029c: ; 0x0211029c - .ascii "‰ο˜b(—썰‹RŽm)" + ; string "会話(ιœŠι­‚ι¨Žε£«)" + .byte 0x89, 0xef, 0x98, 0x62, 0x28, 0x97, 0xec, 0x8d, 0xb0, 0x8b, 0x52, 0x8e, 0x6d, 0x29 .byte 0x00, 0x00 .global data_ov04_021102ac data_ov04_021102ac: ; 0x021102ac - .ascii "‰ο˜b(ƒJƒGƒ‹)" + ; string "会話(カエル)" + .byte 0x89, 0xef, 0x98, 0x62, 0x28, 0x83, 0x4a, 0x83, 0x47, 0x83, 0x8b, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021102bc data_ov04_021102bc: ; 0x021102bc - .ascii "“I“–‚Δ‰(ƒƒCƒ“)" + ; string "ηš„ε½“γ¦ε±‹(パむン)" + .byte 0x93, 0x49, 0x93, 0x96, 0x82, 0xc4, 0x89, 0xae, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021102d0 data_ov04_021102d0: ; 0x021102d0 - .ascii "“I“–‚Δ‰(ƒTƒu)" + ; string "ηš„ε½“γ¦ε±‹(γ‚΅γƒ–)" + .byte 0x93, 0x49, 0x93, 0x96, 0x82, 0xc4, 0x89, 0xae, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00, 0x00 .global data_ov04_021102e0 data_ov04_021102e0: ; 0x021102e0 - .ascii "ŽG‰έ‰(l)" + ; string "雑貨屋(δΊΊ)" + .byte 0x8e, 0x47, 0x89, 0xdd, 0x89, 0xae, 0x28, 0x90, 0x6c, 0x29 .byte 0x00, 0x00 .global data_ov04_021102ec data_ov04_021102ec: ; 0x021102ec - .ascii "ŽG‰έ‰(€•i)" + ; string "雑貨屋(商品)" + .byte 0x8e, 0x47, 0x89, 0xdd, 0x89, 0xae, 0x28, 0x8f, 0xa4, 0x95, 0x69, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021102fc data_ov04_021102fc: ; 0x021102fc - .ascii "—H—μ‘Dƒ{ƒX(ƒƒCƒ“)" + ; string "εΉ½ιœŠθˆΉγƒœγ‚Ή(パむン)" + .byte 0x97, 0x48, 0x97, 0xec, 0x91, 0x44, 0x83, 0x7b, 0x83, 0x58, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00 .global data_ov04_02110310 data_ov04_02110310: ; 0x02110310 - .ascii "—H—μ‘Dƒ{ƒX(ƒTƒu)" + ; string "εΉ½ιœŠθˆΉγƒœγ‚Ή(γ‚΅γƒ–)" + .byte 0x97, 0x48, 0x97, 0xec, 0x91, 0x44, 0x83, 0x7b, 0x83, 0x58, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110324 data_ov04_02110324: ; 0x02110324 - .ascii "‚‚΂Ί‚荇‚’" + ; string "γ€γ°γœγ‚Šεˆγ„" + .byte 0x82, 0xc2, 0x82, 0xce, 0x82, 0xba, 0x82, 0xe8, 0x8d, 0x87, 0x82, 0xa2 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110334 data_ov04_02110334: ; 0x02110334 - .ascii "‰ο˜bƒJƒƒ‰(ŠηƒAƒbƒv)" + ; string "δΌšθ©±γ‚«γƒ‘γƒ©(鑔をップ)" + .byte 0x89, 0xef, 0x98, 0x62, 0x83, 0x4a, 0x83, 0x81, 0x83, 0x89, 0x28, 0x8a, 0xe7, 0x83, 0x41, 0x83, 0x62, 0x83, 0x76, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0211034c data_ov04_0211034c: ; 0x0211034c - .ascii "‰ο˜bƒJƒƒ‰(ŠηƒAƒbƒv‚Ώ‚ε‚’)" + ; string "δΌšθ©±γ‚«γƒ‘γƒ©(鑔をップけょい)" + .byte 0x89, 0xef, 0x98, 0x62, 0x83, 0x4a, 0x83, 0x81, 0x83, 0x89, 0x28, 0x8a, 0xe7, 0x83, 0x41, 0x83, 0x62, 0x83, 0x76, 0x82, 0xbf, 0x82, 0xe5, 0x82, 0xa2, 0x29 .byte 0x00, 0x00 .global data_ov04_02110368 data_ov04_02110368: ; 0x02110368 - .ascii "‘’‘DŠ(l)" + ; string "ι€ θˆΉζ‰€(δΊΊ)" + .byte 0x91, 0xa2, 0x91, 0x44, 0x8f, 0x8a, 0x28, 0x90, 0x6c, 0x29 .byte 0x00, 0x00 .global data_ov04_02110374 data_ov04_02110374: ; 0x02110374 - .ascii "ŠΣ’θ‰(l)" + ; string "ι‘‘εšε±‹(δΊΊ)" + .byte 0x8a, 0xd3, 0x92, 0xe8, 0x89, 0xae, 0x28, 0x90, 0x6c, 0x29 .byte 0x00, 0x00 .global data_ov04_02110380 data_ov04_02110380: ; 0x02110380 - .ascii "•Xƒ{ƒX(ƒƒCƒ“)" + ; string "ζ°·γƒœγ‚Ή(パむン)" + .byte 0x95, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00 .global data_ov04_02110390 data_ov04_02110390: ; 0x02110390 - .ascii "•Xƒ{ƒX(ƒTƒu)" + ; string "ζ°·γƒœγ‚Ή(γ‚΅γƒ–)" + .byte 0x95, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021103a0 data_ov04_021103a0: ; 0x021103a0 - .ascii "ŠCƒ{ƒX" + ; string "ζ΅·γƒœγ‚Ή" + .byte 0x8a, 0x43, 0x83, 0x7b, 0x83, 0x58 .byte 0x00, 0x00 .global data_ov04_021103a8 data_ov04_021103a8: ; 0x021103a8 - .ascii "ƒ‰ƒXƒ{ƒX1(ƒƒCƒ“)" + ; string "γƒ©γ‚Ήγƒœγ‚Ή1(パむン)" + .byte 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x31, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00, 0x00 .global data_ov04_021103bc data_ov04_021103bc: ; 0x021103bc - .ascii "ƒ‰ƒXƒ{ƒX1(ƒTƒu)" + ; string "γƒ©γ‚Ήγƒœγ‚Ή1(γ‚΅γƒ–)" + .byte 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x31, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00 .global data_ov04_021103cc data_ov04_021103cc: ; 0x021103cc - .ascii "ƒ‰ƒXƒ{ƒX1’†‰›(ƒƒCƒ“)" + ; string "γƒ©γ‚Ήγƒœγ‚Ή1δΈ­ε€(パむン)" + .byte 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x31, 0x92, 0x86, 0x89, 0x9b, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00, 0x00 .global data_ov04_021103e4 data_ov04_021103e4: ; 0x021103e4 - .ascii "ƒ‰ƒXƒ{ƒX1’†‰›‰Ί(ƒƒCƒ“)" + ; string "γƒ©γ‚Ήγƒœγ‚Ή1δΈ­ε€δΈ‹(パむン)" + .byte 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x31, 0x92, 0x86, 0x89, 0x9b, 0x89, 0xba, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00 .global data_ov04_021103fc data_ov04_021103fc: ; 0x021103fc - .ascii "ƒ‰ƒXƒ{ƒX3(ƒƒCƒ“)" + ; string "γƒ©γ‚Ήγƒœγ‚Ή3(パむン)" + .byte 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x33, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00, 0x00 .global data_ov04_02110410 data_ov04_02110410: ; 0x02110410 - .ascii "ƒ‰ƒXƒ{ƒX3(ƒTƒu)" + ; string "γƒ©γ‚Ήγƒœγ‚Ή3(γ‚΅γƒ–)" + .byte 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x33, 0x28, 0x83, 0x54, 0x83, 0x75, 0x29 .byte 0x00 .global data_ov04_02110420 data_ov04_02110420: ; 0x02110420 - .ascii "ƒ‰ƒXƒ{ƒX3(ƒTƒu2)" + ; string "γƒ©γ‚Ήγƒœγ‚Ή3(γ‚΅γƒ–2)" + .byte 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x33, 0x28, 0x83, 0x54, 0x83, 0x75, 0x32, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110434 data_ov04_02110434: ; 0x02110434 - .ascii "ƒ‰ƒXƒ{ƒX3(ƒƒCƒ“Aƒ{[ƒ‹Žζ‚θ)" + ; string "γƒ©γ‚Ήγƒœγ‚Ή3(γƒ‘γ‚€γƒ³γ€γƒœγƒΌγƒ«ε–γ‚Š)" + .byte 0x83, 0x89, 0x83, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x33, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x81, 0x41, 0x83, 0x7b, 0x81, 0x5b, 0x83, 0x8b, 0x8e, 0xe6, 0x82, 0xe8, 0x29 .byte 0x00, 0x00, 0x00 .global data_ov04_02110454 data_ov04_02110454: ; 0x02110454 - .ascii "•Xƒ{ƒX‘O(ƒƒCƒ“)" + ; string "ζ°·γƒœγ‚Ήε‰(パむン)" + .byte 0x95, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x91, 0x4f, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110468 data_ov04_02110468: ; 0x02110468 - .ascii "•Xƒ{ƒX’Γ”g(ƒƒCƒ“)" + ; string "ζ°·γƒœγ‚Ήζ΄₯ζ³’(パむン)" + .byte 0x95, 0x58, 0x83, 0x7b, 0x83, 0x58, 0x92, 0xc3, 0x94, 0x67, 0x28, 0x83, 0x81, 0x83, 0x43, 0x83, 0x93, 0x29 .byte 0x00, 0x00 .global data_ov04_0211047c data_ov04_0211047c: ; 0x0211047c - .ascii "‰Ξƒ{ƒX" + ; string "η«γƒœγ‚Ή" + .byte 0x89, 0xce, 0x83, 0x7b, 0x83, 0x58 .byte 0x00, 0x00 .global data_ov04_02110484 data_ov04_02110484: ; 0x02110484 - .ascii "—Νƒ{ƒX" + ; string "εŠ›γƒœγ‚Ή" + .byte 0x97, 0xcd, 0x83, 0x7b, 0x83, 0x58 .byte 0x00, 0x00 .global data_ov04_0211048c data_ov04_0211048c: ; 0x0211048c - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110498 data_ov04_02110498: ; 0x02110498 @@ -31222,11 +31316,13 @@ data_ov04_02110507: ; 0x02110507 .byte 0x00 .global data_ov04_02110508 data_ov04_02110508: ; 0x02110508 - .ascii "ƒƒbƒZ[ƒWƒ}ƒl[ƒWƒƒ[" + ; string "γƒ‘γƒƒγ‚»γƒΌγ‚ΈγƒžγƒγƒΌγ‚Έγƒ£γƒΌ" + .byte 0x83, 0x81, 0x83, 0x62, 0x83, 0x5a, 0x81, 0x5b, 0x83, 0x57, 0x83, 0x7d, 0x83, 0x6c, 0x81, 0x5b, 0x83, 0x57, 0x83, 0x83, 0x81, 0x5b .byte 0x00, 0x00 .global data_ov04_02110520 data_ov04_02110520: ; 0x02110520 - .ascii "ƒAƒCƒeƒ€ƒ}ƒl[ƒWƒƒ[" + ; string "γ‚’γ‚€γƒ†γƒ γƒžγƒγƒΌγ‚Έγƒ£γƒΌ" + .byte 0x83, 0x41, 0x83, 0x43, 0x83, 0x65, 0x83, 0x80, 0x83, 0x7d, 0x83, 0x6c, 0x81, 0x5b, 0x83, 0x57, 0x83, 0x83, 0x81, 0x5b .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110538 data_ov04_02110538: ; 0x02110538 @@ -31582,203 +31678,253 @@ data_ov04_02110934: ; 0x02110934 .byte 0x00, 0x00 .global data_ov04_02110948 data_ov04_02110948: ; 0x02110948 - .ascii "ƒŠƒ“ƒNƒ‚[ƒVƒ‡ƒ“" + ; string "γƒͺンクヒーション" + .byte 0x83, 0x8a, 0x83, 0x93, 0x83, 0x4e, 0x83, 0x82, 0x81, 0x5b, 0x83, 0x56, 0x83, 0x87, 0x83, 0x93 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_0211095c data_ov04_0211095c: ; 0x0211095c - .ascii "‘S”Κ" + ; string "ε…¨θˆ¬" + .byte 0x91, 0x53, 0x94, 0xca .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110964 data_ov04_02110964: ; 0x02110964 - .ascii "ƒEƒFƒCƒg" + ; string "γ‚¦γ‚§γ‚€γƒˆ" + .byte 0x83, 0x45, 0x83, 0x46, 0x83, 0x43, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110970 data_ov04_02110970: ; 0x02110970 - .ascii "ˆΪ“" + ; string "η§»ε‹•" + .byte 0x88, 0xda, 0x93, 0xae .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110978 data_ov04_02110978: ; 0x02110978 - .ascii "‘O“]" + ; string "前軒" + .byte 0x91, 0x4f, 0x93, 0x5d .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110980 data_ov04_02110980: ; 0x02110980 - .ascii "ƒI[ƒgƒWƒƒƒ“ƒv" + ; string "γ‚ͺγƒΌγƒˆγ‚Έγƒ£γƒ³γƒ—" + .byte 0x83, 0x49, 0x81, 0x5b, 0x83, 0x67, 0x83, 0x57, 0x83, 0x83, 0x83, 0x93, 0x83, 0x76 .byte 0x00, 0x00 .global data_ov04_02110990 data_ov04_02110990: ; 0x02110990 - .ascii "Œ•U‚θ" + ; string "ε‰£ζŒ―γ‚Š" + .byte 0x8c, 0x95, 0x90, 0x55, 0x82, 0xe8 .byte 0x00, 0x00 .global data_ov04_02110998 data_ov04_02110998: ; 0x02110998 - .ascii "cΨ‚θ" + ; string "ηΈ¦εˆ‡γ‚Š" + .byte 0x8f, 0x63, 0x90, 0xd8, 0x82, 0xe8 .byte 0x00, 0x00 .global data_ov04_021109a0 data_ov04_021109a0: ; 0x021109a0 - .ascii "‰‘Ψ‚θ" + ; string "ζ¨ͺεˆ‡γ‚Š" + .byte 0x89, 0xa1, 0x90, 0xd8, 0x82, 0xe8 .byte 0x00, 0x00 .global data_ov04_021109a8 data_ov04_021109a8: ; 0x021109a8 - .ascii "“Λ‚«" + ; string "ηͺγ" + .byte 0x93, 0xcb, 0x82, 0xab .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021109b0 data_ov04_021109b0: ; 0x021109b0 - .ascii "‰ρ“]Ψ‚θ" + ; string "ε›žθ»’εˆ‡γ‚Š" + .byte 0x89, 0xf1, 0x93, 0x5d, 0x90, 0xd8, 0x82, 0xe8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021109bc data_ov04_021109bc: ; 0x021109bc - .ascii "”½“" + ; string "反動" + .byte 0x94, 0xbd, 0x93, 0xae .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021109c4 data_ov04_021109c4: ; 0x021109c4 - .ascii "ƒWƒƒƒ“ƒvΨ‚θ" + ; string "γ‚Έγƒ£γƒ³γƒ—εˆ‡γ‚Š" + .byte 0x83, 0x57, 0x83, 0x83, 0x83, 0x93, 0x83, 0x76, 0x90, 0xd8, 0x82, 0xe8 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021109d4 data_ov04_021109d4: ; 0x021109d4 - .ascii "–hŒδ" + ; string "防徑" + .byte 0x96, 0x68, 0x8c, 0xe4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021109dc data_ov04_021109dc: ; 0x021109dc - .ascii "ƒ_ƒ[ƒW" + ; string "ダパージ" + .byte 0x83, 0x5f, 0x83, 0x81, 0x81, 0x5b, 0x83, 0x57 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021109e8 data_ov04_021109e8: ; 0x021109e8 - .ascii "Ž‚Ώγ‚°" + ; string "ζŒγ‘δΈŠγ’" + .byte 0x8e, 0x9d, 0x82, 0xbf, 0x8f, 0xe3, 0x82, 0xb0 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_021109f4 data_ov04_021109f4: ; 0x021109f4 - .ascii "‰Ÿ‚΅ˆψ‚«" + ; string "ζŠΌγ—εΌ•γ" + .byte 0x89, 0x9f, 0x82, 0xb5, 0x88, 0xf8, 0x82, 0xab .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a00 data_ov04_02110a00: ; 0x02110a00 - .ascii "ƒAƒCƒeƒ€ƒQƒbƒg" + ; string "γ‚’γ‚€γƒ†γƒ γ‚²γƒƒγƒˆ" + .byte 0x83, 0x41, 0x83, 0x43, 0x83, 0x65, 0x83, 0x80, 0x83, 0x51, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00 .global data_ov04_02110a10 data_ov04_02110a10: ; 0x02110a10 - .ascii "Έ—μ" + ; string "精霊" + .byte 0x90, 0xb8, 0x97, 0xec .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a18 data_ov04_02110a18: ; 0x02110a18 - .ascii "‹|–ξ" + ; string "εΌ“ηŸ’" + .byte 0x8b, 0x7c, 0x96, 0xee .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a20 data_ov04_02110a20: ; 0x02110a20 - .ascii "ƒu[ƒƒ‰ƒ“" + ; string "ブーパラン" + .byte 0x83, 0x75, 0x81, 0x5b, 0x83, 0x81, 0x83, 0x89, 0x83, 0x93 .byte 0x00, 0x00 .global data_ov04_02110a2c data_ov04_02110a2c: ; 0x02110a2c - .ascii "ƒnƒ“ƒ}[" + ; string "γƒγƒ³γƒžγƒΌ" + .byte 0x83, 0x6e, 0x83, 0x93, 0x83, 0x7d, 0x81, 0x5b .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a38 data_ov04_02110a38: ; 0x02110a38 - .ascii "ƒ[ƒv" + ; string "γƒ­γƒΌγƒ—" + .byte 0x83, 0x8d, 0x81, 0x5b, 0x83, 0x76 .byte 0x00, 0x00 .global data_ov04_02110a40 data_ov04_02110a40: ; 0x02110a40 - .ascii "ƒXƒRƒbƒv" + ; string "スコップ" + .byte 0x83, 0x58, 0x83, 0x52, 0x83, 0x62, 0x83, 0x76 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a4c data_ov04_02110a4c: ; 0x02110a4c - .ascii "‘Ό‚ΜƒAƒCƒeƒ€" + ; string "δ»–γγ‚’むテム" + .byte 0x91, 0xbc, 0x82, 0xcc, 0x83, 0x41, 0x83, 0x43, 0x83, 0x65, 0x83, 0x80 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a5c data_ov04_02110a5c: ; 0x02110a5c - .ascii "σ‘ΤˆΩν" + ; string "ηŠΆζ…‹η•°εΈΈ" + .byte 0x8f, 0xf3, 0x91, 0xd4, 0x88, 0xd9, 0x8f, 0xed .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a68 data_ov04_02110a68: ; 0x02110a68 - .ascii "‚»‚Μ‘Ό" + ; string "そγδ»–" + .byte 0x82, 0xbb, 0x82, 0xcc, 0x91, 0xbc .byte 0x00, 0x00 .global data_ov04_02110a70 data_ov04_02110a70: ; 0x02110a70 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a7c data_ov04_02110a7c: ; 0x02110a7c - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a88 data_ov04_02110a88: ; 0x02110a88 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110a94 data_ov04_02110a94: ; 0x02110a94 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110aa0 data_ov04_02110aa0: ; 0x02110aa0 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110aac data_ov04_02110aac: ; 0x02110aac - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110ab8 data_ov04_02110ab8: ; 0x02110ab8 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110ac4 data_ov04_02110ac4: ; 0x02110ac4 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110ad0 data_ov04_02110ad0: ; 0x02110ad0 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110adc data_ov04_02110adc: ; 0x02110adc - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110ae8 data_ov04_02110ae8: ; 0x02110ae8 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110af4 data_ov04_02110af4: ; 0x02110af4 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b00 data_ov04_02110b00: ; 0x02110b00 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b0c data_ov04_02110b0c: ; 0x02110b0c - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b18 data_ov04_02110b18: ; 0x02110b18 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b24 data_ov04_02110b24: ; 0x02110b24 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b30 data_ov04_02110b30: ; 0x02110b30 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b3c data_ov04_02110b3c: ; 0x02110b3c - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b48 data_ov04_02110b48: ; 0x02110b48 - .ascii "“ǂݍž‚έ" + ; string "θͺ­γΏθΎΌγΏ" + .byte 0x93, 0xc7, 0x82, 0xdd, 0x8d, 0x9e, 0x82, 0xdd .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b54 data_ov04_02110b54: ; 0x02110b54 - .ascii "ˆκŽž’²" + ; string "δΈ€ζ™‚θͺΏζ•΄" + .byte 0x88, 0xea, 0x8e, 0x9e, 0x92, 0xb2, 0x90, 0xae .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b60 data_ov04_02110b60: ; 0x02110b60 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b6c data_ov04_02110b6c: ; 0x02110b6c - .ascii "ƒGƒtƒFƒNƒg" + ; string "γ‚¨γƒ•γ‚§γ‚―γƒˆ" + .byte 0x83, 0x47, 0x83, 0x74, 0x83, 0x46, 0x83, 0x4e, 0x83, 0x67 .byte 0x00, 0x00 .global data_ov04_02110b78 data_ov04_02110b78: ; 0x02110b78 - .ascii "ƒŠƒZƒbƒg" + ; string "γƒͺγ‚»γƒƒγƒˆ" + .byte 0x83, 0x8a, 0x83, 0x5a, 0x83, 0x62, 0x83, 0x67 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110b84 data_ov04_02110b84: ; 0x02110b84 @@ -31934,7 +32080,8 @@ data_ov04_02110cb4: ; 0x02110cb4 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110cb8 data_ov04_02110cb8: ; 0x02110cb8 - .ascii "ƒGƒbƒWƒ}[ƒLƒ“ƒO" + ; string "γ‚¨γƒƒγ‚ΈγƒžγƒΌγ‚­γƒ³γ‚°" + .byte 0x83, 0x47, 0x83, 0x62, 0x83, 0x57, 0x83, 0x7d, 0x81, 0x5b, 0x83, 0x4c, 0x83, 0x93, 0x83, 0x4f .byte 0x00, 0x00, 0x00, 0x00 .global data_ov04_02110ccc data_ov04_02110ccc: ; 0x02110ccc diff --git a/asm/ov05.inc b/asm/ov05.inc index ec94b899..901ca129 100644 --- a/asm/ov05.inc +++ b/asm/ov05.inc @@ -1,10 +1,34 @@ #pragma once .extern Divide +.extern GiveShipPart +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager16MapData_vfunc_84Ev +.extern _ZN10MapManager17GetMapData_Unk_0aEv +.extern _ZN10MapManager17GetMapData_Unk_0bEv +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager18func_ov00_02082424Ev +.extern _ZN10MapManager18func_ov00_02082d08Ev +.extern _ZN10MapManager18func_ov00_02083664EP5Vec3pi +.extern _ZN10MapManager18func_ov00_020839d4Ev +.extern _ZN10MapManager18func_ov00_020839f8Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +.extern _ZN10MapManager18func_ov00_02083e34Ecci +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager18func_ov00_020840a0Ecci +.extern _ZN10MapManager18func_ov00_02084740Ev +.extern _ZN10MapManager18func_ov00_020848b8Ev +.extern _ZN10MapManager18func_ov00_0208527cEv +.extern _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi .extern _ZN10PlayerBase18func_ov00_020a7c00Ei .extern _ZN11ItemManager12GetItemModelEj -.extern _ZN11ItemManager15LoadFanfareItemEj -.extern _ZN11ItemManager18func_ov00_020ae648Ejjj -.extern _ZN11ItemManager8GiveItemEjjj +.extern _ZN11ItemManager15LoadFanfareItemEi +.extern _ZN11ItemManager18PlayItemFanfareSfxEi +.extern _ZN11ItemManager8GiveItemEi .extern _ZN12ActorManager11DeleteActorEjb .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager13FindActorByIdEj @@ -103,6 +127,12 @@ .extern _ZN13PlayerControl18func_ov00_020b13c4Ev .extern _ZN13PlayerControl20UpdateUsingEquipItemEv .extern _ZN13PlayerControl9SetUnk_80Ev +.extern _ZN14AdventureFlags18func_Ov00_02097810Ei +.extern _ZN14AdventureFlags18func_ov00_02097738Ev +.extern _ZN14AdventureFlags18func_ov00_02097750Ev +.extern _ZN14AdventureFlags18func_ov00_02097bbcEv +.extern _ZN14AdventureFlags18func_ov00_02097ff4Ebb +.extern _ZN14AdventureFlags3GetEj .extern _ZN15LinkStateDamage18func_ov00_020ac9e4Ei .extern _ZN15LinkStateDamage18func_ov00_020acb6cEP5Vec3pi .extern _ZN15LinkStateDamage18func_ov00_020ace90EP5Vec3pi @@ -119,6 +149,8 @@ .extern _ZN17LinkStateInteract24SetNormalizedThrowOffsetEP5Vec3p .extern _ZN4Item18func_ov00_020ad020Ei .extern _ZN5Actor9GetHitboxEP8Cylinder +.extern _ZN7MapBase18func_ov00_0207dea0Eb +.extern _ZN7MapBase18func_ov00_02080de8Ei .extern _ZN9SysObjectdlEPv .extern _ZNK11ItemManager13HasAllPotionsEv .extern _ZNK11ItemManager15HasPurplePotionEv @@ -159,7 +191,6 @@ .extern data_027e0e2c .extern data_027e0e58 .extern data_027e0e5c -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -173,7 +204,6 @@ .extern data_027e0fac .extern data_027e0fb0 .extern data_027e0fb8 -.extern data_027e0fbc .extern data_027e0fc0 .extern data_027e0fc8 .extern data_027e0fcc @@ -332,32 +362,7 @@ .extern func_ov00_0207c1f8 .extern func_ov00_0207c358 .extern func_ov00_0207c444 -.extern func_ov00_0207dea0 -.extern func_ov00_02080de8 .extern func_ov00_02081f4c -.extern func_ov00_02082424 -.extern func_ov00_020828e0 -.extern func_ov00_02082d08 -.extern func_ov00_0208344c -.extern func_ov00_02083664 -.extern func_ov00_020839d4 -.extern func_ov00_020839f8 -.extern func_ov00_02083a1c -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083c7c -.extern func_ov00_02083e34 -.extern func_ov00_02083ee0 -.extern func_ov00_02083f44 -.extern func_ov00_02083fb0 -.extern func_ov00_020840a0 -.extern func_ov00_020840c4 -.extern func_ov00_0208430c -.extern func_ov00_02084318 -.extern func_ov00_02084740 -.extern func_ov00_020848b8 -.extern func_ov00_0208527c -.extern func_ov00_0208583c .extern func_ov00_0208726c .extern func_ov00_020872e8 .extern func_ov00_0208766c @@ -373,12 +378,6 @@ .extern func_ov00_0208cb84 .extern func_ov00_0208df2c .extern func_ov00_02095fe0 -.extern _ZN14AdventureFlags18func_ov00_02097738Ev -.extern _ZN14AdventureFlags18func_ov00_02097750Ev -.extern _ZN14AdventureFlags3GetEj -.extern _ZN14AdventureFlags18func_Ov00_02097810Ei -.extern _ZN14AdventureFlags18func_ov00_02097bbcEv -.extern _ZN14AdventureFlags18func_ov00_02097ff4Ebb .extern func_ov00_020981b8 .extern func_ov00_02098694 .extern func_ov00_02098890 @@ -510,7 +509,6 @@ .extern func_ov09_02118cd4 .extern func_ov09_0211c724 .extern func_ov09_0211c808 -.extern func_ov09_0211ca20 .extern func_ov09_0211cac0 .extern func_ov12_02134208 .extern func_ov14_02127df4 @@ -576,7 +574,9 @@ .extern func_ov59_0219907c .extern func_ov59_021990a4 .extern gAdventureFlags +.extern gHealthManager .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern strcmp .extern strcpy diff --git a/asm/ov05.s b/asm/ov05.s index 9223e162..cd59e77b 100644 --- a/asm/ov05.s +++ b/asm/ov05.s @@ -604,9 +604,9 @@ _02101280: ldr r0, [r1, #4] tst r0, #1 bne _02101338 - ldr r0, _02101420 ; =data_027e0e60 + ldr r0, _02101420 ; =gMapManager ldr r0, [r0] - bl func_ov00_020828e0 + bl _ZN10MapManager16MapData_vfunc_84Ev ldr r3, [r8] ldr r1, [r10, #0x18] ldrb r7, [r3, #0x14] @@ -709,7 +709,7 @@ _021013f4: .align 2, 0 arm_func_end func_ov05_02101230 _0210141c: .word data_027e077c -_02101420: .word data_027e0e60 +_02101420: .word gMapManager .global func_ov05_02101424 arm_func_start func_ov05_02101424 @@ -1340,14 +1340,14 @@ _02101c04: bl func_ov00_020a5e9c cmp r0, #0x12 bne _02101c90 - ldr r0, _021021dc ; =data_027e0e60 + ldr r0, _021021dc ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r0, #2 beq _02101c44 - ldr r0, _021021dc ; =data_027e0e60 + ldr r0, _021021dc ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r0, #3 bne _02101c90 _02101c44: @@ -1561,9 +1561,9 @@ _02101f18: cmp r0, #0 addne sp, sp, #0x58 ldmneia sp!, {r4, r5, r6, pc} - ldr r0, _021021dc ; =data_027e0e60 + ldr r0, _021021dc ; =gMapManager ldr r0, [r0] - bl func_ov00_02084740 + bl _ZN10MapManager18func_ov00_02084740Ev mov r1, r0 ldr r2, [r6, #4] ldr r0, _021021ec ; =data_ov00_020eec68 @@ -1730,7 +1730,7 @@ _02102140: arm_func_end func_ov05_02101b14 _021021d4: .word data_027e0f64 _021021d8: .word data_027e0d38 -_021021dc: .word data_027e0e60 +_021021dc: .word gMapManager _021021e0: .word data_027e0f94 _021021e4: .word data_027e0ffc _021021e8: .word data_ov00_020eec9c @@ -2009,7 +2009,7 @@ _0210259c: mov r1, r8 ldr r0, [r0] bl func_ov05_021017e8 - ldr r0, _021026e0 ; =data_027e0e60 + ldr r0, _021026e0 ; =gMapManager mov r1, r8 ldr r0, [r0] bl func_ov05_0210112c @@ -2081,7 +2081,7 @@ _021026d0: .word data_027e0d04 _021026d4: .word data_027e0f90 _021026d8: .word data_027e0f64 _021026dc: .word data_027e0f78 -_021026e0: .word data_027e0e60 +_021026e0: .word gMapManager _021026e4: .word data_027e0fe4 _021026e8: .word data_027e0f6c _021026ec: .word data_ov12_0213deb0 @@ -2100,7 +2100,7 @@ func_ov05_021026f8: ; 0x021026f8 bl func_ov05_02103df0 cmp r5, #1 ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _02102744 ; =data_027e0e60 + ldr r0, _02102744 ; =gMapManager mov r1, r4 ldr r0, [r0] bl func_ov05_021011b4 @@ -2112,7 +2112,7 @@ func_ov05_021026f8: ; 0x021026f8 .align 2, 0 arm_func_end func_ov05_021026f8 _02102740: .word data_027e103c -_02102744: .word data_027e0e60 +_02102744: .word gMapManager _02102748: .word data_027e0fc0 .global func_ov05_0210274c @@ -2164,7 +2164,7 @@ _021027d8: mov r1, r4 ldr r0, [r0] bl func_ov05_02105304 - ldr r0, _02102824 ; =data_027e0e60 + ldr r0, _02102824 ; =gMapManager mov r1, r4 ldr r0, [r0] bl func_ov05_021011cc @@ -2176,7 +2176,7 @@ _02102814: .word data_027e103c _02102818: .word data_027e0c54 _0210281c: .word data_027e0f90 _02102820: .word data_027e0fe4 -_02102824: .word data_027e0e60 +_02102824: .word gMapManager .global func_ov05_02102828 arm_func_start func_ov05_02102828 @@ -2266,7 +2266,7 @@ _0210294c: bl func_ov05_02101804 cmp r7, #0 bne _02102978 - ldr r0, _02102a5c ; =data_027e0e60 + ldr r0, _02102a5c ; =gMapManager mov r1, r8 ldr r0, [r0] bl func_ov05_021011fc @@ -2333,7 +2333,7 @@ _02102a4c: .word data_027e0de4 _02102a50: .word data_027e0de8 _02102a54: .word data_027e0f88 _02102a58: .word data_027e0f64 -_02102a5c: .word data_027e0e60 +_02102a5c: .word gMapManager _02102a60: .word data_027e0f90 _02102a64: .word data_027e0fe4 _02102a68: .word data_027e0618 @@ -2389,7 +2389,7 @@ _02102b08: .word data_027e0cbc arm_func_start func_ov05_02102b0c func_ov05_02102b0c: ; 0x02102b0c stmdb sp!, {r4, r5, r6, r7, r8, lr} - ldr ip, _02102c28 ; =data_027e0e60 + ldr ip, _02102c28 ; =gMapManager mov r8, r0 mov r7, r1 mov r4, r2 @@ -2399,7 +2399,7 @@ func_ov05_02102b0c: ; 0x02102b0c mov r2, r7 mov r6, r3 str r5, [r4] - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci cmp r0, #0x30 bgt _02102b9c cmp r0, #0x28 @@ -2471,7 +2471,7 @@ _02102c20: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov05_02102b0c -_02102c28: .word data_027e0e60 +_02102c28: .word gMapManager .global func_ov05_02102c2c arm_func_start func_ov05_02102c2c @@ -2588,11 +2588,11 @@ _02102d6c: cmp r0, #0 bne _02102dd8 ldr r0, [sp, #0x44] - bl func_ov00_0208430c + bl _ZN10MapManager17GetMapData_Unk_0aEv cmp r0, #0 bne _02102dd8 ldr r0, [sp, #0x44] - bl func_ov00_02084318 + bl _ZN10MapManager17GetMapData_Unk_0bEv cmp r0, #0 beq _02102de0 _02102dd8: @@ -2608,7 +2608,7 @@ _02102de0: streq r0, [sp, #0x30] beq _02102e0c ldr r0, [sp, #0x44] - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev str r0, [sp, #0x30] _02102e0c: ldr r0, [sp, #0x28] @@ -2641,7 +2641,7 @@ _02102e24: ldr r1, [sp, #0x44] add r0, sp, #0x74 add r2, sp, #0x78 - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i add r0, sp, #0x74 bl func_ov05_02103b2c cmp r0, #2 @@ -2659,7 +2659,7 @@ _02102e24: ldr r0, [sp, #0x44] add r1, sp, #0x84 mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r6, #0x14] add r0, sp, #0x84 bl func_0202bac0 @@ -2697,11 +2697,11 @@ _02102ee8: bne _0210314c ldr r1, [r7] ldr r0, [sp, #0x44] - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev mov r9, r0 ldr r0, [sp, #0x44] ldr r1, [r7, #8] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev str r0, [sp, #0x34] ldr r1, [sp, #0x34] mov r0, r9 @@ -3320,7 +3320,7 @@ func_ov05_0210373c: ; 0x0210373c stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x10 ldr r7, [sp, #0x44] - ldr r4, _021038c0 ; =data_027e0e60 + ldr r4, _021038c0 ; =gMapManager ldr r6, [r7, #8] ldr r5, [sp, #0x3c] ldr r4, [r4] @@ -3331,7 +3331,7 @@ func_ov05_0210373c: ; 0x0210373c mov r1, r6 mov r8, r2 mov r11, r3 - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev ldr r1, [sp, #0x38] str r0, [sp] cmp r1, r0 @@ -3375,7 +3375,7 @@ func_ov05_0210373c: ; 0x0210373c str r3, [sp, #4] str r7, [sp, #8] str r6, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r8, r0 str r0, [r5, #0x14] mov r2, #1 @@ -3394,7 +3394,7 @@ _02103838: ldr r3, [r7, #8] ldr r2, [sp] str r3, [r5, #0x18] - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r5, #0x14] mov r2, #1 _02103878: @@ -3419,7 +3419,7 @@ _021038b4: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov05_0210373c -_021038c0: .word data_027e0e60 +_021038c0: .word gMapManager _021038c4: .word data_ov05_021122a8 .global func_ov05_021038c8 @@ -3428,7 +3428,7 @@ func_ov05_021038c8: ; 0x021038c8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x18 ldr r7, [sp, #0x4c] - ldr r4, _02103a9c ; =data_027e0e60 + ldr r4, _02103a9c ; =gMapManager ldr r6, [r7] ldr r5, [sp, #0x44] ldr r4, [r4] @@ -3439,7 +3439,7 @@ func_ov05_021038c8: ; 0x021038c8 mov r1, r6 mov r8, r2 mov r5, r3 - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev mov r11, r0 cmp r5, r11 beq _02103a90 @@ -3482,7 +3482,7 @@ func_ov05_021038c8: ; 0x021038c8 str r6, [sp, #0xc] str r3, [sp, #0x10] str r4, [sp, #0x14] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r8, r0 str r0, [r5, #0x14] mov r2, #1 @@ -3503,7 +3503,7 @@ _021039c0: str r6, [sp] str r3, [sp, #4] str r4, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev sub r0, r0, r8 str r0, [r5, #0x14] mov r2, #1 @@ -3523,7 +3523,7 @@ _02103a10: ldr r3, [r7, #8] mov r1, r11 str r3, [r5, #0x18] - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r5, #0x14] mov r2, #1 _02103a54: @@ -3548,7 +3548,7 @@ _02103a90: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov05_021038c8 -_02103a9c: .word data_027e0e60 +_02103a9c: .word gMapManager _02103aa0: .word data_ov05_021122a8 .global func_ov05_02103aa4 @@ -3684,12 +3684,12 @@ func_ov05_02103b88: ; 0x02103b88 .global func_ov05_02103ba0 arm_func_start func_ov05_02103ba0 func_ov05_02103ba0: ; 0x02103ba0 - ldr r0, _02103bac ; =data_027e0e60 + ldr r0, _02103bac ; =gMapManager ldr r0, [r0] bx lr .align 2, 0 arm_func_end func_ov05_02103ba0 -_02103bac: .word data_027e0e60 +_02103bac: .word gMapManager .global func_ov05_02103bb0 arm_func_start func_ov05_02103bb0 @@ -6070,11 +6070,11 @@ _021059f0: add r3, sp, #0 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02105c0c ; =data_027e0e60 + ldr r0, _02105c0c ; =gMapManager mov r1, r3 ldr r0, [r0] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, _02105c08 ; =data_ov05_021124f0 str r0, [r6, #0x3c] ldr r1, [r2, #0x20] @@ -6210,7 +6210,7 @@ _02105bfc: .word 0x00000112 _02105c00: .word 0x00000113 _02105c04: .word 0x00000666 _02105c08: .word data_ov05_021124f0 -_02105c0c: .word data_027e0e60 +_02105c0c: .word gMapManager _02105c10: .word data_02050f54 _02105c14: .word 0x00000266 _02105c18: .word 0x00000115 @@ -7366,7 +7366,7 @@ func_ov05_02106bbc: ; 0x02106bbc mov r0, r5 bl _ZN13LinkStateBase12GetPlayerPosEv ldr r0, [r0, #4] - ldr r1, _02106c70 ; =data_027e0e60 + ldr r1, _02106c70 ; =gMapManager add r0, r0, #0x33 add r0, r0, #0x1300 str r0, [r4, #4] @@ -7378,7 +7378,7 @@ func_ov05_02106bbc: ; 0x02106bbc strb r2, [r1, #1] ldr r2, [r1] mov r1, r4 - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi mov r0, #1 ldmia sp!, {r3, r4, r5, pc} _02106c64: @@ -7387,7 +7387,7 @@ _02106c64: .align 2, 0 arm_func_end func_ov05_02106bbc _02106c6c: .word data_027e0fb8 -_02106c70: .word data_027e0e60 +_02106c70: .word gMapManager .global func_ov05_02106c74 arm_func_start func_ov05_02106c74 @@ -7700,7 +7700,7 @@ _0210707c: add r3, sp, #0x28 ldmia r4, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _021071e8 ; =data_027e0e60 + ldr r0, _021071e8 ; =gMapManager ldr r4, [sp, #0x28] ldr r5, [sp, #0x2c] ldr r2, [sp, #0x30] @@ -7713,7 +7713,7 @@ _0210707c: str r4, [sp, #0x1c] str r6, [sp, #0x24] str r5, [sp, #0x20] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p mov r8, r0 mov r0, r7 bl _ZN13LinkStateBase12GetPlayerPosEv @@ -7721,14 +7721,14 @@ _0210707c: add r0, r0, #0x800 cmp r0, r8 bge _02107148 - ldr r0, _021071e8 ; =data_027e0e60 + ldr r0, _021071e8 ; =gMapManager add r1, sp, #0x10 ldr r0, [r0] mov r2, #1 str r4, [sp, #0x10] str r5, [sp, #0x14] str r6, [sp, #0x18] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r8, r0 _02107148: mov r0, r7 @@ -7775,7 +7775,7 @@ _021071d8: .word data_ov05_021126ac _021071dc: .word data_027e0fb8 _021071e0: .word 0x00000ccd _021071e4: .word data_027e0e58 -_021071e8: .word data_027e0e60 +_021071e8: .word gMapManager _021071ec: .word 0xfffffb33 _021071f0: .word func_ov05_02106c74 _021071f4: .word data_027e103c @@ -8382,14 +8382,14 @@ _02107a18: ldrsh r0, [r4, #0x10] cmp r0, #0 bgt _02107b1c - ldr r1, _02107b68 ; =data_027e0e60 + ldr r1, _02107b68 ; =gMapManager mov r0, r4 ldr r5, [r1] bl _ZN13LinkStateBase12GetPlayerPosEv mov r2, r0 add r0, sp, #2 mov r1, r5 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p mov r2, #0 ldrb r1, [sp, #2] ldrb r0, [sp, #3] @@ -8452,7 +8452,7 @@ _02107b1c: _02107b5c: .word data_ov05_021126ac _02107b60: .word data_ov05_021126b4 _02107b64: .word data_027e0fb8 -_02107b68: .word data_027e0e60 +_02107b68: .word gMapManager _02107b6c: .word data_ov05_021122e0 _02107b70: .word data_027e0d0c @@ -9487,7 +9487,7 @@ func_ov05_021088c8: ; 0x021088c8 bl func_020385d0 cmp r0, #0 beq _0210899c - ldr r1, _021089a8 ; =data_027e0fbc + ldr r1, _021089a8 ; =gHealthManager ldr r4, _021089ac ; =0x88888889 ldr r1, [r1] mov ip, #0x3c @@ -9534,7 +9534,7 @@ _0210899c: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov05_021088c8 -_021089a8: .word data_027e0fbc +_021089a8: .word gHealthManager _021089ac: .word 0x88888889 _021089b0: .word 0x66666667 _021089b4: .word 0x00007fff @@ -9681,7 +9681,7 @@ _02108b9c: str r0, [r4, #0x74] ldr r0, [sp, #4] ldr r1, [sp] - blx func_ov09_0211ca20 + blx GiveShipPart b _02108be8 _02108bb4: ldr r0, _02108cf0 ; =gItemManager @@ -9726,7 +9726,7 @@ _02108c34: ldr r0, _02108cf0 ; =gItemManager ldr r1, [r4, #0x74] ldr r0, [r0] - blx _ZN11ItemManager15LoadFanfareItemEj + blx _ZN11ItemManager15LoadFanfareItemEi ldr r0, [r4, #0x74] mov r2, #1 cmp r0, #0x81 @@ -9884,7 +9884,7 @@ _02108e44: ldr r0, _02108e88 ; =gItemManager mov r1, r4 ldr r0, [r0] - blx _ZN11ItemManager15LoadFanfareItemEj + blx _ZN11ItemManager15LoadFanfareItemEi ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov05_02108e08 @@ -10028,9 +10028,9 @@ _02109018: bl func_ov00_020d70a4 b _02109080 _02109060: - ldr r0, _02109294 ; =data_027e0e60 + ldr r0, _02109294 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084740 + bl _ZN10MapManager18func_ov00_02084740Ev mov r1, r0 ldr r0, _0210928c ; =data_ov00_020eec68 mov r2, #0 @@ -10180,7 +10180,7 @@ _02109278: arm_func_end func_ov05_02108f98 _0210928c: .word data_ov00_020eec68 _02109290: .word data_027e071c -_02109294: .word data_027e0e60 +_02109294: .word gMapManager _02109298: .word data_027e0d38 _0210929c: .word data_027e0618 _021092a0: .word data_027e0c54 @@ -10245,7 +10245,7 @@ _02109354: cmp r0, #0 beq _02109380 ldr r0, [r5, #0x74] - blx _ZN11ItemManager18func_ov00_020ae648Ejjj + blx _ZN11ItemManager18PlayItemFanfareSfxEi _02109380: mov r0, r5 bl _ZN13LinkStateBase18func_ov00_020a8d50Ev @@ -10610,11 +10610,11 @@ _02109828: bl _ZN13LinkStateBase18func_ov00_020a8360Ei b _021098bc _02109834: - ldr r0, _021099bc ; =data_027e0fbc + ldr r0, _021099bc ; =gHealthManager mov r1, #4 ldr r0, [r0] blx func_ov00_020b804c - ldr r1, _021099bc ; =data_027e0fbc + ldr r1, _021099bc ; =gHealthManager mov r0, r5 ldr r1, [r1] ldrsh r1, [r1] @@ -10646,7 +10646,7 @@ _0210989c: ldr r0, _021099cc ; =gItemManager ldr r1, [r5, #0x74] ldr r0, [r0] - blx _ZN11ItemManager8GiveItemEjjj + blx _ZN11ItemManager8GiveItemEi _021098bc: mov r0, r4 blx _ZN4Item18func_ov00_020ad020Ei @@ -10719,7 +10719,7 @@ _021099a4: .align 2, 0 arm_func_end func_ov05_021097b0 _021099b8: .word 0x464f5243 -_021099bc: .word data_027e0fbc +_021099bc: .word gHealthManager _021099c0: .word data_027e103c _021099c4: .word 0x424b4559 _021099c8: .word 0x43525953 @@ -10966,11 +10966,11 @@ _02109d0c: str r1, [r7, #0x40] str r3, [r7, #0x44] str r2, [r7, #0x48] - ldr r0, _02109e80 ; =data_027e0e60 + ldr r0, _02109e80 ; =gMapManager add r1, r7, #0x40 ldr r0, [r0] mov r2, #1 - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p str r0, [r7, #0x44] mov r0, #0xd str r0, [r7, #4] @@ -11058,7 +11058,7 @@ _02109e74: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov05_02109cd0 -_02109e80: .word data_027e0e60 +_02109e80: .word gMapManager .global func_ov05_02109e84 arm_func_start func_ov05_02109e84 @@ -11801,16 +11801,16 @@ func_ov05_0210a7d4: ; 0x0210a7d4 str r1, [r0, #4] b _0210aa98 _0210a830: - ldr r1, _0210aad8 ; =data_027e0e60 + ldr r1, _0210aad8 ; =gMapManager add r0, sp, #0x14 ldr r1, [r1] add r2, sp, #0x2c - bl func_ov00_02083a1c - ldr r0, _0210aad8 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _0210aad8 ; =gMapManager add r1, sp, #0x14 ldr r0, [r0] mov r5, #0 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _0210a904 ldrsb r0, [r0, #0x12] @@ -11829,14 +11829,14 @@ _0210a830: movls r5, #0 cmp r1, r0 bne _0210a904 - ldr r1, _0210aad8 ; =data_027e0e60 + ldr r1, _0210aad8 ; =gMapManager mov r0, r6 ldr r7, [r1] bl _ZN13LinkStateBase15GetGrabActorRefEv ldr r2, [r0] add r1, sp, #0x2c mov r0, r7 - bl func_ov00_0208583c + bl _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi cmp r0, #0 blt _0210a904 mov r0, r4 @@ -11867,11 +11867,11 @@ _0210a904: mov r5, #1 cmp r1, r0 beq _0210aa20 - ldr r0, _0210aad8 ; =data_027e0e60 + ldr r0, _0210aad8 ; =gMapManager add r1, sp, #0x2c ldr r0, [r0] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x30] cmp r1, r0 movlt r5, #0 @@ -11906,7 +11906,7 @@ _0210a904: mov ip, #0 str r1, [sp, #0x24] ldr r1, [r0, #8] - ldr r0, _0210aad8 ; =data_027e0e60 + ldr r0, _0210aad8 ; =gMapManager str r1, [sp, #0x28] ldr r2, [r4, #0x98] add r1, sp, #0x38 @@ -11979,7 +11979,7 @@ _0210aac0: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov05_0210a7d4 -_0210aad8: .word data_027e0e60 +_0210aad8: .word gMapManager _0210aadc: .word 0x424f4d42 _0210aae0: .word gItemManager _0210aae4: .word 0x43525953 @@ -12399,7 +12399,7 @@ _0210ae98: movne r1, #1 moveq r1, #0 strb r1, [r5, #0xb1] - ldr r0, _0210b290 ; =data_027e0e60 + ldr r0, _0210b290 ; =gMapManager ldr r7, [sp, #0x28] ldr r6, [sp, #0x2c] ldr r3, [sp, #0x30] @@ -12408,7 +12408,7 @@ _0210ae98: str r7, [sp, #0x10] str r6, [sp, #0x14] str r3, [sp, #0x18] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #0xc] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -12514,7 +12514,7 @@ _0210b280: .word data_027e0fe4 _0210b284: .word gAdventureFlags _0210b288: .word data_02050f54 _0210b28c: .word 0x0000ffff -_0210b290: .word data_027e0e60 +_0210b290: .word gMapManager _0210b294: .word data_027e0fb8 _0210b298: .word data_ov05_021128a4 _0210b29c: .word data_ov05_021128b4 @@ -12818,15 +12818,15 @@ _0210b684: ldr r0, _0210b95c ; =data_027e0fb8 ldr r0, [r0] bl _ZN13PlayerControl9SetUnk_80Ev - ldr r1, _0210b968 ; =data_027e0e60 + ldr r1, _0210b968 ; =gMapManager add r0, sp, #0x12 ldr r4, [r1] add r2, r5, #0x24 mov r1, r4 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0x12 mov r0, r4 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r4, r0 beq _0210b6d0 ldr r1, [r0] @@ -12865,16 +12865,16 @@ _0210b6dc: ldmia sp!, {r3, r4, r5, r6, pc} _0210b73c: mov r1, #2 - ldr r0, _0210b968 ; =data_027e0e60 + ldr r0, _0210b968 ; =gMapManager str r1, [r5, #0xc] ldr r4, [r0] add r0, sp, #0x10 mov r1, r4 add r2, r5, #0x24 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0x10 mov r0, r4 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _0210b788 ldr r1, [r0] @@ -12910,23 +12910,23 @@ _0210b7b0: _0210b7dc: mov r0, r5 bl _ZN13LinkStateBase18EquipItem_vfunc_28Ev - ldr r1, _0210b968 ; =data_027e0e60 + ldr r1, _0210b968 ; =gMapManager mov r0, r5 ldr r6, [r1] bl _ZN13LinkStateBase12GetPlayerPosEv mov r4, r0 ldrb r1, [r5, #0x20] mov r0, r6 - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [r4] - ldr r1, _0210b968 ; =data_027e0e60 + ldr r1, _0210b968 ; =gMapManager mov r0, r5 ldr r6, [r1] bl _ZN13LinkStateBase12GetPlayerPosEv mov r4, r0 ldrb r1, [r5, #0x21] mov r0, r6 - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei str r0, [r4, #8] mov r0, r5 bl _ZN13LinkStateBase12GetPlayerVelEv @@ -13012,7 +13012,7 @@ _0210b954: _0210b95c: .word data_027e0fb8 _0210b960: .word data_ov05_02112984 _0210b964: .word data_ov05_021129f4 -_0210b968: .word data_027e0e60 +_0210b968: .word gMapManager .global func_ov05_0210b96c arm_func_start func_ov05_0210b96c @@ -13064,7 +13064,7 @@ func_ov05_0210b9c4: ; 0x0210b9c4 ldr r1, _0210ba8c ; =data_027e0fe4 str r0, [sp] ldr r2, [r4, #0x28] - ldr r0, _0210ba90 ; =data_027e0e60 + ldr r0, _0210ba90 ; =gMapManager str r2, [sp, #4] ldr r3, [r4, #0x2c] ldr r5, [r1] @@ -13072,7 +13072,7 @@ func_ov05_0210b9c4: ; 0x0210b9c4 add r1, sp, #0 mov r2, #3 str r3, [sp, #8] - bl func_ov00_0208583c + bl _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi mov r1, r0 mov r0, r5 bl _ZN12ActorManager13FindActorByIdEj @@ -13106,7 +13106,7 @@ _0210ba7c: .align 2, 0 arm_func_end func_ov05_0210b9c4 _0210ba8c: .word data_027e0fe4 -_0210ba90: .word data_027e0e60 +_0210ba90: .word gMapManager _0210ba94: .word data_ov00_020eec9c .global func_ov05_0210ba98 @@ -13135,7 +13135,7 @@ func_ov05_0210babc: ; 0x0210babc cmp r0, #0 beq _0210bb10 ldr r1, [r4, #0x24] - ldr r0, _0210bb48 ; =data_027e0e60 + ldr r0, _0210bb48 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x28] ldr r0, [r0] @@ -13144,7 +13144,7 @@ func_ov05_0210babc: ; 0x0210babc add r1, sp, #0 mov r2, #5 str r3, [sp, #8] - bl func_ov00_0208583c + bl _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi add sp, sp, #0xc ldmia sp!, {r3, r4, pc} _0210bb10: @@ -13164,7 +13164,7 @@ _0210bb10: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov05_0210babc -_0210bb48: .word data_027e0e60 +_0210bb48: .word gMapManager _0210bb4c: .word data_027e0fb8 .global func_ov05_0210bb50 @@ -13199,15 +13199,15 @@ func_ov05_0210bb98: ; 0x0210bb98 bl _ZN13LinkStateBase18func_ov00_020a8d40Ev mov r1, #0 strb r1, [r0, #0xbc] - ldr r1, _0210bd58 ; =data_027e0e60 + ldr r1, _0210bd58 ; =gMapManager add r0, sp, #0 ldr r4, [r1] add r2, r5, #0x24 mov r1, r4 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r4 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r4, r0 beq _0210bc04 ldr r0, _0210bd5c ; =gAdventureFlags @@ -13314,7 +13314,7 @@ _0210bd48: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov05_0210bb98 -_0210bd58: .word data_027e0e60 +_0210bd58: .word gMapManager _0210bd5c: .word gAdventureFlags _0210bd60: .word data_027e0fb8 _0210bd64: .word data_ov05_021129d4 @@ -13334,15 +13334,15 @@ func_ov05_0210bd70: ; 0x0210bd70 bl _ZN13LinkStateBase18func_ov00_020a8d40Ev mov r1, #0 strb r1, [r0, #0xbc] - ldr r1, _0210bf40 ; =data_027e0e60 + ldr r1, _0210bf40 ; =gMapManager add r0, sp, #0 ldr r4, [r1] add r2, r5, #0x24 mov r1, r4 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r4 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r4, r0 beq _0210bdd8 ldr r1, [r0] @@ -13451,7 +13451,7 @@ _0210beb8: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov05_0210bd70 -_0210bf40: .word data_027e0e60 +_0210bf40: .word gMapManager _0210bf44: .word data_027e0fb8 _0210bf48: .word gAdventureFlags _0210bf4c: .word 0x00000155 @@ -13662,7 +13662,7 @@ func_ov05_0210c20c: ; 0x0210c20c bl _ZN13PlayerControl18func_ov00_020af01cEPc cmp r0, #0 beq _0210c2a8 - ldr r0, _0210c950 ; =data_027e0e60 + ldr r0, _0210c950 ; =gMapManager ldrb r2, [sp, #8] ldrb r1, [sp, #9] ldr r0, [r0] @@ -13671,7 +13671,7 @@ func_ov05_0210c20c: ; 0x0210c20c strb r1, [r3, #1] ldr r2, [r3] add r1, sp, #0x6c - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi mov r0, r7 bl _ZN13LinkStateBase12GetPlayerPosEv mov r1, r0 @@ -13752,11 +13752,11 @@ _0210c398: ldr r5, [r0, #0xa0] cmp r5, #0 beq _0210c3ec - ldr r0, _0210c950 ; =data_027e0e60 + ldr r0, _0210c950 ; =gMapManager add r1, r5, #0x18 ldr r0, [r0] add r2, r7, #0x24 - bl func_ov00_0208527c + bl _ZN10MapManager18func_ov00_0208527cEv mov r6, r0 add r1, sp, #0x54 mov r0, r7 @@ -13841,7 +13841,7 @@ _0210c4d8: ldr r0, [r0] bl _ZN13PlayerControl13StopFollowingEv ldr r1, [r7, #0x24] - ldr r0, _0210c950 ; =data_027e0e60 + ldr r0, _0210c950 ; =gMapManager str r1, [sp, #0x3c] ldr r1, [r7, #0x28] ldr r0, [r0] @@ -13850,7 +13850,7 @@ _0210c4d8: add r1, sp, #0x3c mov r2, #0xe str r3, [sp, #0x44] - bl func_ov00_0208583c + bl _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi add sp, sp, #0x78 mov r0, #1 ldmia sp!, {r3, r4, r5, r6, r7, pc} @@ -13863,7 +13863,7 @@ _0210c528: ldmia sp!, {r3, r4, r5, r6, r7, pc} _0210c540: ldr r1, [r7, #0x24] - ldr r0, _0210c950 ; =data_027e0e60 + ldr r0, _0210c950 ; =gMapManager str r1, [sp, #0x30] ldr r1, [r7, #0x28] ldr r0, [r0] @@ -13872,7 +13872,7 @@ _0210c540: add r1, sp, #0x30 mov r2, #4 str r3, [sp, #0x38] - bl func_ov00_0208583c + bl _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi mov r4, r0 bl func_ov05_0210c980 mov r1, r4 @@ -13953,7 +13953,7 @@ _0210c650: ldmia sp!, {r3, r4, r5, r6, r7, pc} _0210c680: ldr r1, [r7, #0x24] - ldr r0, _0210c950 ; =data_027e0e60 + ldr r0, _0210c950 ; =gMapManager str r1, [sp, #0x24] ldr r1, [r7, #0x28] ldr r0, [r0] @@ -13962,13 +13962,13 @@ _0210c680: add r1, sp, #0x24 mov r2, #7 str r3, [sp, #0x2c] - bl func_ov00_0208583c + bl _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi str r0, [r7, #0x10] - ldr r1, _0210c950 ; =data_027e0e60 + ldr r1, _0210c950 ; =gMapManager add r0, sp, #6 ldr r1, [r1] add r2, r7, #0x24 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r3, [sp, #6] ldrb r2, [sp, #7] ldr r0, _0210c968 ; =0x00020007 @@ -14049,7 +14049,7 @@ _0210c7cc: cmpne r1, r0 bne _0210c818 ldr r1, [r7, #0x24] - ldr r0, _0210c950 ; =data_027e0e60 + ldr r0, _0210c950 ; =gMapManager str r1, [sp, #0x18] ldr r1, [r7, #0x28] ldr r0, [r0] @@ -14058,7 +14058,7 @@ _0210c7cc: add r1, sp, #0x18 mov r2, #0xb str r3, [sp, #0x20] - bl func_ov00_0208583c + bl _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi _0210c818: add sp, sp, #0x78 mov r0, #1 @@ -14074,12 +14074,12 @@ _0210c824: mov r1, #0 str r2, [sp, #0x14] bl _ZNK11ItemManager8GetFairyEi - ldr r1, _0210c950 ; =data_027e0e60 + ldr r1, _0210c950 ; =gMapManager mov r4, r0 ldr r0, [r1] add r1, sp, #0xc mov r2, #0xc - bl func_ov00_0208583c + bl _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi mov r1, r0 mov r0, r4 ldr r4, [r0] @@ -14143,7 +14143,7 @@ _0210c93c: arm_func_end func_ov05_0210c20c _0210c948: .word data_027e0618 _0210c94c: .word data_027e0fb8 -_0210c950: .word data_027e0e60 +_0210c950: .word gMapManager _0210c954: .word data_ov00_020eec9c _0210c958: .word data_ov05_02112324 _0210c95c: .word data_ov05_02112360 @@ -14195,15 +14195,15 @@ _0210c9d0: _0210c9e4: mov r5, #2 _0210c9e8: - ldr r1, _0210ca7c ; =data_027e0e60 + ldr r1, _0210ca7c ; =gMapManager add r0, sp, #0 ldr r6, [r1] add r2, r4, #0x24 mov r1, r6 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r6 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r6, r0 addeq sp, sp, #0x10 ldmeqia sp!, {r4, r5, r6, pc} @@ -14234,7 +14234,7 @@ _0210c9e8: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov05_0210c990 -_0210ca7c: .word data_027e0e60 +_0210ca7c: .word gMapManager .global func_ov05_0210ca80 arm_func_start func_ov05_0210ca80 @@ -16372,11 +16372,11 @@ _0210e6d8: cmp r0, #0 beq _0210e72c ldr r0, _0210e884 ; =data_027e0fd4 - ldr r1, _0210e894 ; =data_027e0e60 + ldr r1, _0210e894 ; =gMapManager ldr r2, [r0] ldr r0, [r1] add r1, r2, #0xc4 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev mov r4, r0 _0210e72c: ldr r1, _0210e884 ; =data_027e0fd4 @@ -16474,7 +16474,7 @@ _0210e884: .word data_027e0fd4 _0210e888: .word data_027e0fa0 _0210e88c: .word data_027e0fd0 _0210e890: .word data_027e0f94 -_0210e894: .word data_027e0e60 +_0210e894: .word gMapManager _0210e898: .word gAdventureFlags _0210e89c: .word 0x66666667 _0210e8a0: .word data_027e0fac @@ -16504,11 +16504,11 @@ func_ov05_0210e8b4: ; 0x0210e8b4 ldr r1, [r1, #0x14] cmp r1, #1 bne _0210e918 - ldr r0, _0210ea8c ; =data_027e0e60 + ldr r0, _0210ea8c ; =gMapManager ldrh r2, [r5, #0xe] ldr r0, [r0] add r1, sp, #4 - bl func_ov00_02083664 + bl _ZN10MapManager18func_ov00_02083664EP5Vec3pi ldr r2, [sp, #0xc] ldr r1, [sp, #8] ldr r0, [sp, #4] @@ -16619,7 +16619,7 @@ _0210ea38: .align 2, 0 arm_func_end func_ov05_0210e8b4 _0210ea88: .word data_027e0d38 -_0210ea8c: .word data_027e0e60 +_0210ea8c: .word gMapManager _0210ea90: .word data_027e0fac _0210ea94: .word data_027e0f94 _0210ea98: .word data_027e0fcc @@ -18859,13 +18859,13 @@ func_ov05_021109c0: ; 0x021109c0 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #4 ldr r1, _02110b38 ; =data_027e0fd4 - ldr r2, _02110b3c ; =data_027e0e60 + ldr r2, _02110b3c ; =gMapManager ldr r1, [r1] mov r6, r0 ldr r0, [r2] add r1, r1, #0x1c mov r4, #0x13 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev mov r5, r0 mov r0, r6 bl _ZN13LinkStateBase18func_ov00_020a8d40Ev @@ -18972,7 +18972,7 @@ _02110b2c: .align 2, 0 arm_func_end func_ov05_021109c0 _02110b38: .word data_027e0fd4 -_02110b3c: .word data_027e0e60 +_02110b3c: .word gMapManager .global func_ov05_02110b40 arm_func_start func_ov05_02110b40 @@ -19393,7 +19393,7 @@ _021110cc: _02111100: bl _ZN13LinkStateBase12GetPlayerPosEv ldr r2, [r0] - ldr r1, _021112e8 ; =data_027e0e60 + ldr r1, _021112e8 ; =gMapManager str r2, [sp, #0xc] ldr r2, [r0, #4] ldr r5, [r1] @@ -19406,7 +19406,7 @@ _02111100: add r1, sp, #0xc mov r0, r5 mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #4] mov r5, #0x4000 sub r4, r1, r0 @@ -19522,7 +19522,7 @@ _021112d8: .word data_ov05_02112b34 _021112dc: .word data_027e0e58 _021112e0: .word 0x0000102e _021112e4: .word 0x000001a7 -_021112e8: .word data_027e0e60 +_021112e8: .word gMapManager .global func_ov05_021112ec arm_func_start func_ov05_021112ec @@ -20205,11 +20205,11 @@ func_ov05_02111c00: ; 0x02111c00 ldmeqia sp!, {r4, r5, pc} mov r0, r5 mov r1, r4 - bl func_ov00_02080de8 - ldr r0, _02111c68 ; =data_027e0e60 + bl _ZN7MapBase18func_ov00_02080de8Ei + ldr r0, _02111c68 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldr r0, [r5, #0x140] add r1, sp, #0 ldr r2, [r0] @@ -20219,7 +20219,7 @@ func_ov05_02111c00: ; 0x02111c00 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov05_02111c00 -_02111c68: .word data_027e0e60 +_02111c68: .word gMapManager .global func_ov05_02111c6c arm_func_start func_ov05_02111c6c @@ -20446,9 +20446,9 @@ func_ov05_02111f40: ; 0x02111f40 ldr r0, [r5, #0xf0] cmp r0, #0 ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _02111fb0 ; =data_027e0e60 + ldr r0, _02111fb0 ; =gMapManager ldr r0, [r0] - bl func_ov00_020848b8 + bl _ZN10MapManager18func_ov00_020848b8Ev cmp r0, #0 ldmneia sp!, {r3, r4, r5, pc} bl func_ov15_0215b780 @@ -20466,7 +20466,7 @@ func_ov05_02111f40: ; 0x02111f40 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov05_02111f40 -_02111fb0: .word data_027e0e60 +_02111fb0: .word gMapManager _02111fb4: .word data_027e0d3c .global func_ov05_02111fb8 @@ -20607,7 +20607,7 @@ _02112190: blt _021120c8 ldr r0, [r4] mov r1, #0 - bl func_ov00_0207dea0 + bl _ZN7MapBase18func_ov00_0207dea0Eb ldrh r0, [r4, #0x16] cmp r0, #0 moveq r0, #0 diff --git a/asm/ov09.inc b/asm/ov09.inc index 94a81008..261c1337 100644 --- a/asm/ov09.inc +++ b/asm/ov09.inc @@ -1,6 +1,6 @@ #pragma once .extern Divide -.extern _ZN11ItemManager10GiveRupeesEjj +.extern _ZN11ItemManager10GiveRupeesEsb .extern _ZN11ItemManager13EquipShipPartEjj .extern _ZN11ItemManager16SetShipPartCountEjjc .extern _ZN11ItemManager16SetTreasureCountEjc @@ -49,10 +49,9 @@ .extern data_027e0e28 .extern data_027e0e2c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f90 -.extern data_027e0fbc .extern data_027e0fe4 .extern data_027e0ffc .extern data_027e103c @@ -230,14 +229,14 @@ .extern func_ov00_0207c1f8 .extern func_ov00_0207c358 .extern func_ov00_0207c444 -.extern func_ov00_020820ec -.extern func_ov00_020820fc -.extern func_ov00_0208210c -.extern func_ov00_02082614 -.extern func_ov00_02082908 -.extern func_ov00_02082adc -.extern func_ov00_02083ee0 -.extern func_ov00_020848b8 +.extern _ZN10MapManager18func_ov00_020820ecEPi +.extern _ZN10MapManager18func_ov00_020820fcEiii +.extern _ZN10MapManager18func_ov00_0208210cEii +.extern _ZN10MapManager18func_ov00_02082614Eii +.extern _ZN10MapManager20GetCourseData_Unk_b0Ev +.extern _ZN10MapManager18func_ov00_02082adcEv +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_020848b8Ev .extern func_ov00_02087d34 .extern func_ov00_020a5e9c .extern func_ov00_020a61ac @@ -451,6 +450,7 @@ .extern func_ov18_02160a74 .extern func_ov29_0216dcf4 .extern gAdventureFlags +.extern gHealthManager .extern gItemManager .extern gOverlayManager .extern strcat diff --git a/asm/ov09.s b/asm/ov09.s index 5bbd7f6a..5b47a4cd 100644 --- a/asm/ov09.s +++ b/asm/ov09.s @@ -3206,7 +3206,7 @@ func_ov09_02114554: ; 0x02114554 blx _ZN12ActorManager14Actor_vfunc_28Ev mov r0, #0 str r0, [sp, #8] - ldr r0, _021146ac ; =data_027e0e60 + ldr r0, _021146ac ; =gMapManager add r1, sp, #0x14 ldr r7, [r0] ldr r0, [sp, #8] @@ -3218,7 +3218,7 @@ func_ov09_02114554: ; 0x02114554 blx func_020078f4 add r0, r7, #0 add r1, sp, #0x14 - blx func_ov00_020820ec + blx _ZN10MapManager18func_ov00_020820ecEPi ldr r0, _021146b0 ; =data_027e0d38 ldr r0, [r0] add r0, #0xc @@ -3242,7 +3242,7 @@ func_ov09_02114554: ; 0x02114554 str r0, [sp, #8] _021145b6: add r0, r7, #0 - blx func_ov00_02082908 + blx _ZN10MapManager20GetCourseData_Unk_b0Ev add r4, sp, #0x1c str r0, [sp, #0xc] mov r0, #0 @@ -3271,7 +3271,7 @@ _021145f2: add r1, r4, #0 add r2, sp, #0x10 add r3, sp, #0x1c - blx func_ov00_020820fc + blx _ZN10MapManager18func_ov00_020820fcEiii add r0, sp, #0x10 ldrh r1, [r0] cmp r1, #0xcf @@ -3323,7 +3323,7 @@ _02114634: ldr r1, [sp, #4] add r0, r7, #0 add r2, r4, #0 - blx func_ov00_0208210c + blx _ZN10MapManager18func_ov00_0208210cEii mov r0, #0x71 lsl r0, r0, #2 str r0, [sp] @@ -3345,15 +3345,15 @@ _02114688: ldr r1, [sp, #8] add r0, r5, #0 bl func_ov09_02114520 - ldr r0, _021146ac ; =data_027e0e60 + ldr r0, _021146ac ; =gMapManager ldr r0, [r0] - blx func_ov00_02082adc + blx _ZN10MapManager18func_ov00_02082adcEv add sp, #0x1ec pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end func_ov09_02114554 _021146a8: .word data_027e0fe4 -_021146ac: .word data_027e0e60 +_021146ac: .word gMapManager _021146b0: .word data_027e0d38 _021146b4: .word data_ov00_020e9f10 _021146b8: .word data_ov00_020ea110 @@ -3580,7 +3580,7 @@ _0211483a: strb r0, [r1] add r0, sp, #0x48 bl func_ov00_0207a38c - ldr r0, _02114988 ; =data_027e0fbc + ldr r0, _02114988 ; =gHealthManager add r1, sp, #0x48 ldr r0, [r0] bl func_ov00_020b7ffc @@ -3706,7 +3706,7 @@ _02114960: thumb_func_end func_ov09_02114810 _02114980: .word data_027e0dbc _02114984: .word data_ov00_020e9ec0 -_02114988: .word data_027e0fbc +_02114988: .word gHealthManager _0211498c: .word data_ov00_020e9e18 _02114990: .word data_ov09_0211f5b4 _02114994: .word data_ov00_020e9f08 @@ -16510,9 +16510,9 @@ _0211c3d4: .word data_027e0ce0 func_ov09_0211c3d8: ; 0x0211c3d8 push {r3, r4, r5, lr} add r4, r0, #0 - ldr r0, _0211c418 ; =data_027e0e60 + ldr r0, _0211c418 ; =gMapManager ldr r0, [r0] - blx func_ov00_020848b8 + blx _ZN10MapManager18func_ov00_020848b8Ev strb r0, [r4, #0xa] ldr r5, [r4, #4] cmp r5, #0 @@ -16541,7 +16541,7 @@ _0211c416: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end func_ov09_0211c3d8 -_0211c418: .word data_027e0e60 +_0211c418: .word gMapManager .global func_ov09_0211c41c thumb_func_start func_ov09_0211c41c @@ -16992,9 +16992,9 @@ _0211c6f2: thumb_func_end func_ov09_0211c6b4 _0211c6fc: .word gItemManager - .global func_ov09_0211c700 - thumb_func_start func_ov09_0211c700 -func_ov09_0211c700: ; 0x0211c700 + .global EquipLinebeckCannon + thumb_func_start EquipLinebeckCannon +EquipLinebeckCannon: ; 0x0211c700 push {r3, lr} ldr r0, _0211c720 ; =gItemManager mov r1, #3 @@ -17010,7 +17010,7 @@ func_ov09_0211c700: ; 0x0211c700 _0211c71c: pop {r3, pc} nop - thumb_func_end func_ov09_0211c700 + thumb_func_end EquipLinebeckCannon _0211c720: .word gItemManager .global func_ov09_0211c724 @@ -17414,7 +17414,7 @@ func_ov09_0211c9a8: ; 0x0211c9a8 add r1, r0, #0 add r0, r6, #0 mov r2, #1 - blx _ZN11ItemManager10GiveRupeesEjj + blx _ZN11ItemManager10GiveRupeesEsb ldr r0, _0211c9e4 ; =gItemManager add r1, r5, #0 ldr r6, [r0] @@ -17445,7 +17445,7 @@ func_ov09_0211c9e8: ; 0x0211c9e8 add r1, r0, #0 add r0, r4, #0 mov r2, #1 - blx _ZN11ItemManager10GiveRupeesEjj + blx _ZN11ItemManager10GiveRupeesEsb ldr r0, _0211ca1c ; =gItemManager add r1, r5, #0 ldr r4, [r0] @@ -17463,9 +17463,9 @@ func_ov09_0211c9e8: ; 0x0211c9e8 thumb_func_end func_ov09_0211c9e8 _0211ca1c: .word gItemManager - .global func_ov09_0211ca20 - thumb_func_start func_ov09_0211ca20 -func_ov09_0211ca20: ; 0x0211ca20 + .global GiveShipPart + thumb_func_start GiveShipPart +GiveShipPart: ; 0x0211ca20 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 @@ -17538,7 +17538,7 @@ _0211ca94: add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 - thumb_func_end func_ov09_0211ca20 + thumb_func_end GiveShipPart _0211caa8: .word gItemManager _0211caac: .word data_ov09_0211f294 _0211cab0: .word data_ov09_0211f298 @@ -18378,14 +18378,14 @@ func_ov09_0211d180: ; 0x0211d180 str r2, [sp, #0x94] add r3, r2, r1 ldr r9, [r4, #8] - ldr r1, _0211d658 ; =data_027e0e60 + ldr r1, _0211d658 ; =gMapManager mov r5, r0 ldr r0, [r1] add r1, sp, #0x90 mov r2, r6 str r3, [sp, #0x94] str r9, [sp, #0x98] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x94] cmp r1, r0 movle r6, #1 @@ -18690,7 +18690,7 @@ _0211d628: .align 2, 0 arm_func_end func_ov09_0211d180 _0211d654: .word 0xfffffccd -_0211d658: .word data_027e0e60 +_0211d658: .word gMapManager _0211d65c: .word 0x00000385 _0211d660: .word 0xfffff4a4 _0211d664: .word 0x0000099a @@ -18850,7 +18850,7 @@ func_ov09_0211d860: ; 0x0211d860 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 add r6, r0, #0 - ldr r0, _0211d89c ; =data_027e0e60 + ldr r0, _0211d89c ; =gMapManager mov r5, #0 ldr r4, [r0] add r7, sp, #0 @@ -18858,7 +18858,7 @@ _0211d86e: add r0, r4, #0 add r1, r7, #0 add r2, r5, #0 - blx func_ov00_02082614 + blx _ZN10MapManager18func_ov00_02082614Eii add r0, r7, #0 add r1, r6, #0 blx strcmp @@ -18879,7 +18879,7 @@ _0211d88a: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end func_ov09_0211d860 -_0211d89c: .word data_027e0e60 +_0211d89c: .word gMapManager .global func_ov09_0211d8a0 thumb_func_start func_ov09_0211d8a0 diff --git a/asm/ov11.s b/asm/ov11.s index 30752ac9..b11c19de 100644 --- a/asm/ov11.s +++ b/asm/ov11.s @@ -60915,7 +60915,8 @@ data_ov11_0212e2e7: ; 0x0212e2e7 .byte 0x00 .global data_ov11_0212e2e8 data_ov11_0212e2e8: ; 0x0212e2e8 - .ascii "‚ƒ" + ; string "c" + .byte 0x82, 0x83 .byte 0x00, 0x00 .global data_ov11_0212e2ec data_ov11_0212e2ec: ; 0x0212e2ec diff --git a/asm/ov12.inc b/asm/ov12.inc index f96d3554..0303dc97 100644 --- a/asm/ov12.inc +++ b/asm/ov12.inc @@ -1,6 +1,25 @@ #pragma once .extern Approach_thunk .extern Divide +.extern PlaySoundEffect +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager17GetMapData_Unk_48Ev +.extern _ZN10MapManager17Get_MapData_Unk28Ev +.extern _ZN10MapManager17Get_MapData_Unk2aEv +.extern _ZN10MapManager18Get_MapData_Unk_d0Ev +.extern _ZN10MapManager18Get_MapData_Unk_d8Ev +.extern _ZN10MapManager18func_ov00_02083664EP5Vec3pi +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_020839b4Ei +.extern _ZN10MapManager18func_ov00_020839c4Ei +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_02083e34Ecci +.extern _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager18func_ov00_020840a0Ecci .extern _ZN10PlayerBase18func_ov00_020a7c00Ei .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder .extern _ZN10PlayerBase9AddHealthEs @@ -75,6 +94,26 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si +.extern _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi +.extern _ZN7MapBase8vfunc_18Ev +.extern _ZN7MapBase8vfunc_48Ev +.extern _ZN7MapBase8vfunc_50Ev +.extern _ZN7MapBase8vfunc_64Ev +.extern _ZN7MapBase8vfunc_68Eii +.extern _ZN7MapBase8vfunc_6cEiii +.extern _ZN7MapBase8vfunc_70EP5Vec3p +.extern _ZN7MapBase8vfunc_74EP5Vec3p +.extern _ZN7MapBase8vfunc_84Ei +.extern _ZN7MapBase8vfunc_88Ev +.extern _ZN7MapBase8vfunc_8cEv +.extern _ZN7MapBase8vfunc_90Eiii +.extern _ZN7MapBase8vfunc_9cEv +.extern _ZN7MapBase8vfunc_a0Ev +.extern _ZN7MapBase8vfunc_b0Eii +.extern _ZN7MapBase8vfunc_b4Ev +.extern _ZN7MapBase8vfunc_b8Ev +.extern _ZN7MapBaseD1Ev .extern _ZN9ActorTypeC1EjPFP5ActorvEPv .extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv @@ -110,7 +149,6 @@ .extern data_027e0dcc .extern data_027e0e2c .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f84 @@ -336,45 +374,7 @@ .extern func_ov00_0207c1f8 .extern func_ov00_0207c444 .extern func_ov00_0207c474 -.extern func_ov00_0207da38 -.extern func_ov00_0207ddf4 -.extern func_ov00_0207e060 -.extern func_ov00_0207e444 -.extern func_ov00_0207e46c -.extern func_ov00_0207e488 -.extern func_ov00_0207e4b0 -.extern func_ov00_0207e4b8 -.extern func_ov00_0207e970 -.extern func_ov00_0207ee14 -.extern func_ov00_0207eff4 -.extern func_ov00_0207f324 -.extern func_ov00_0207f32c -.extern func_ov00_0207f334 -.extern func_ov00_0207f338 -.extern func_ov00_0207f364 -.extern func_ov00_0207f3c4 -.extern func_ov00_0207f4a4 -.extern func_ov00_0207f588 -.extern func_ov00_020807d4 .extern func_ov00_02081f4c -.extern func_ov00_0208335c -.extern func_ov00_02083368 -.extern func_ov00_020833f4 -.extern func_ov00_02083400 -.extern func_ov00_02083664 -.extern func_ov00_02083770 -.extern func_ov00_020838e8 -.extern func_ov00_020839b4 -.extern func_ov00_020839c4 -.extern func_ov00_02083a1c -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083e34 -.extern func_ov00_02083ee0 -.extern func_ov00_02083ef8 -.extern func_ov00_02083fb0 -.extern func_ov00_020840a0 -.extern func_ov00_02084114 .extern func_ov00_020872e8 .extern func_ov00_02087d84 .extern func_ov00_0208819c @@ -633,7 +633,6 @@ .extern func_ov00_020d70a4 .extern func_ov00_020d716c .extern func_ov00_020d7180 -.extern func_ov00_020d73bc .extern func_ov00_020d7404 .extern func_ov00_020d77e4 .extern func_ov00_020d7a84 @@ -759,6 +758,7 @@ .extern func_ov61_02179f88 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern gPlayerAnimHandler .extern strncpy diff --git a/asm/ov12.s b/asm/ov12.s index b564b7f2..70704064 100644 --- a/asm/ov12.s +++ b/asm/ov12.s @@ -931,11 +931,11 @@ _0211371c: .word data_027e0fe0 arm_func_start func_ov12_02113720 func_ov12_02113720: ; 0x02113720 stmdb sp!, {r3, r4, r5, lr} - ldr r2, _0211378c ; =data_027e0e60 + ldr r2, _0211378c ; =gMapManager mov r4, r0 ldr r0, [r2] mov r5, r1 - bl func_ov00_020833f4 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev ldrb r1, [r4, #1] sub r0, r5, r0 mov r3, r0, asr #0x6 @@ -959,17 +959,17 @@ func_ov12_02113720: ; 0x02113720 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_02113720 -_0211378c: .word data_027e0e60 +_0211378c: .word gMapManager .global func_ov12_02113790 arm_func_start func_ov12_02113790 func_ov12_02113790: ; 0x02113790 stmdb sp!, {r3, r4, r5, lr} - ldr r2, _021137e4 ; =data_027e0e60 + ldr r2, _021137e4 ; =gMapManager mov r4, r0 ldr r0, [r2] mov r5, r1 - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev ldrb r1, [r4, #3] sub r0, r5, r0 mov r2, r0, asr #0x6 @@ -987,7 +987,7 @@ func_ov12_02113790: ; 0x02113790 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_02113790 -_021137e4: .word data_027e0e60 +_021137e4: .word gMapManager .global func_ov12_021137e8 arm_func_start func_ov12_021137e8 @@ -1003,17 +1003,17 @@ func_ov12_021137e8: ; 0x021137e8 add r0, r2, r0, lsr #22 add r0, r0, r1, lsr #20 mov r4, r0, lsl #0x6 - ldr r0, _02113834 ; =data_027e0e60 + ldr r0, _02113834 ; =gMapManager tst r4, #0x20000 orrne r4, r4, #0x3fc0000 ldr r0, [r0] orrne r4, r4, #0xfc000000 - bl func_ov00_020833f4 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev add r0, r4, r0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov12_021137e8 -_02113834: .word data_027e0e60 +_02113834: .word gMapManager .global func_ov12_02113838 arm_func_start func_ov12_02113838 @@ -1026,17 +1026,17 @@ func_ov12_02113838: ; 0x02113838 mov r0, r0, lsl #0x1a add r0, r1, r0, lsr #20 mov r4, r0, lsl #0x6 - ldr r0, _02113878 ; =data_027e0e60 + ldr r0, _02113878 ; =gMapManager tst r4, #0x20000 orrne r4, r4, #0x3fc0000 ldr r0, [r0] orrne r4, r4, #0xfc000000 - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev add r0, r4, r0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov12_02113838 -_02113878: .word data_027e0e60 +_02113878: .word gMapManager .global func_ov12_0211387c arm_func_start func_ov12_0211387c @@ -6736,17 +6736,17 @@ func_ov12_02118428: ; 0x02118428 addeq sp, sp, #0x128 moveq r0, #0 ldmeqia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, _02118808 ; =data_027e0e60 + ldr r0, _02118808 ; =gMapManager add r1, sp, #0xbc ldr r0, [r0] mov r2, #0 - bl func_ov00_02083ee0 - ldr r1, _02118808 ; =data_027e0e60 + bl _ZN10MapManager16MapData_vfunc_68Ev + ldr r1, _02118808 ; =gMapManager str r0, [sp, #0x9c] ldr r0, [r1] add r1, sp, #0xbc mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0xa8] add r0, sp, #0x8c bl func_01ff9cec @@ -6785,7 +6785,7 @@ _0211857c: cmp r10, #0 stmia r7, {r0, r1, r2} ble _0211877c - ldr r11, _02118808 ; =data_027e0e60 + ldr r11, _02118808 ; =gMapManager add r5, r8, #0x8c add r4, sp, #0x44 mov r6, #0 @@ -6884,7 +6884,7 @@ _02118740: ldr r0, [r11] mov r1, r7 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x68] str r0, [sp, #0x6c] str r0, [sp, #0xa8] @@ -6934,7 +6934,7 @@ _0211877c: _021187fc: .word data_027e0c38 _02118800: .word data_027e0d3c _02118804: .word data_ov12_02137d20 -_02118808: .word data_027e0e60 +_02118808: .word gMapManager _0211880c: .word 0x0000ffff _02118810: .word 0xfffff0f7 @@ -8226,16 +8226,16 @@ func_ov12_021196d4: ; 0x021196d4 bl func_ov00_020bbb64 cmp r0, #0 bne _02119774 - ldr r1, _0211977c ; =data_027e0e60 + ldr r1, _0211977c ; =gMapManager add r0, sp, #0 ldr r1, [r1] mov r2, r4 - bl func_ov00_02083a1c - ldr r0, _0211977c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _0211977c ; =gMapManager ldrb r1, [sp] ldrb r2, [sp, #1] ldr r0, [r0] - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci cmp r0, #0x18 bgt _0211973c bge _02119754 @@ -8264,7 +8264,7 @@ _02119774: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_021196d4 -_0211977c: .word data_027e0e60 +_0211977c: .word gMapManager .global func_ov12_02119780 arm_func_start func_ov12_02119780 @@ -8361,11 +8361,11 @@ func_ov12_02119840: ; 0x02119840 arm_func_start func_ov12_0211986c func_ov12_0211986c: ; 0x0211986c stmdb sp!, {r3, r4, r5, lr} - ldr r2, _02119964 ; =data_027e0e60 + ldr r2, _02119964 ; =gMapManager mov r5, r0 ldr r0, [r2] mov r4, r1 - bl func_ov00_020833f4 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev ldr r2, [r4] ldrb r1, [r5, #0x118] sub r0, r2, r0 @@ -8377,7 +8377,7 @@ func_ov12_0211986c: ; 0x0211986c strb r0, [r5, #0x118] ldrb r2, [r5, #0x119] and r1, r3, #0x1f00 - ldr r0, _02119964 ; =data_027e0e60 + ldr r0, _02119964 ; =gMapManager bic r3, r2, #0x1f and r2, r3, #0xff orr r1, r2, r1, asr #8 @@ -8397,7 +8397,7 @@ func_ov12_0211986c: ; 0x0211986c orr r1, r2, r1, asr #3 strb r1, [r5, #0x11a] ldr r0, [r0] - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev ldr r2, [r4, #8] ldrb r1, [r5, #0x11a] sub r0, r2, r0 @@ -8424,7 +8424,7 @@ func_ov12_0211986c: ; 0x0211986c ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_0211986c -_02119964: .word data_027e0e60 +_02119964: .word gMapManager .global func_ov12_02119968 arm_func_start func_ov12_02119968 @@ -8437,12 +8437,12 @@ func_ov12_02119968: ; 0x02119968 mov r0, r0, lsl #0x1b add r0, r2, r0, lsr #19 mov r6, r0, lsl #0x5 - ldr r0, _02119a24 ; =data_027e0e60 + ldr r0, _02119a24 ; =gMapManager tst r6, #0x20000 orrne r6, r6, #0x3fc0000 ldr r0, [r0] orrne r6, r6, #0xfc000000 - bl func_ov00_020833f4 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev add r0, r6, r0 str r0, [r4] ldrb r1, [r5, #0x119] @@ -8467,18 +8467,18 @@ func_ov12_02119968: ; 0x02119968 add r0, r1, r0, lsr #22 add r0, r0, r2, lsr #19 mov r5, r0, lsl #0x5 - ldr r0, _02119a24 ; =data_027e0e60 + ldr r0, _02119a24 ; =gMapManager tst r5, #0x20000 orrne r5, r5, #0x3fc0000 ldr r0, [r0] orrne r5, r5, #0xfc000000 - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev add r0, r5, r0 str r0, [r4, #8] ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov12_02119968 -_02119a24: .word data_027e0e60 +_02119a24: .word gMapManager .global func_ov12_02119a28 arm_func_start func_ov12_02119a28 @@ -9488,11 +9488,11 @@ func_ov12_0211a7d0: ; 0x0211a7d0 _0211a830: mov r4, r2 _0211a834: - ldr r0, _0211a948 ; =data_027e0e60 + ldr r0, _0211a948 ; =gMapManager add r1, sp, #8 ldr r0, [r0] mov r2, r4 - bl func_ov00_02083664 + bl _ZN10MapManager18func_ov00_02083664EP5Vec3pi cmp r0, #0 beq _0211a884 mov r0, #1 @@ -9560,7 +9560,7 @@ _0211a884: .align 2, 0 arm_func_end func_ov12_0211a7d0 _0211a944: .word data_ov12_02137c64 -_0211a948: .word data_027e0e60 +_0211a948: .word gMapManager _0211a94c: .word data_027e0f94 _0211a950: .word data_027e0fcc _0211a954: .word data_027e0fd4 @@ -10858,14 +10858,14 @@ func_ov12_0211b9c4: ; 0x0211b9c4 add r4, r0, #0xd8 str r1, [sp] ldr r1, [r7, r8] - ldr r0, _0211ba90 ; =data_027e0e60 + ldr r0, _0211ba90 ; =gMapManager str r1, [sp, #4] ldr r2, [r4, r8] ldr r0, [r0] str r2, [sp, #8] add r1, sp, #0 mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r6, r8] add r2, r0, #0x148 cmp r1, r2 @@ -10889,7 +10889,7 @@ _0211ba84: ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov12_0211b9c4 -_0211ba90: .word data_027e0e60 +_0211ba90: .word gMapManager .global func_ov12_0211ba94 arm_func_start func_ov12_0211ba94 @@ -20651,7 +20651,7 @@ _021239cc: bl func_ov12_02124dfc mov r1, r0 ldr r0, _02123a20 ; =data_ov00_020eec68 - bl func_ov00_020d73bc + bl PlaySoundEffect b _02123a04 _021239ec: ldrb r0, [r6, #0x370] @@ -20659,7 +20659,7 @@ _021239ec: beq _02123a04 ldr r0, _02123a20 ; =data_ov00_020eec68 mov r1, #0x2b - bl func_ov00_020d73bc + bl PlaySoundEffect _02123a04: mov r0, #7 str r0, [r6, #0xc] @@ -27791,13 +27791,13 @@ func_ov12_021296a4: ; 0x021296a4 mov r1, r1, asr #0x5 and r1, r1, #7 bl func_ov12_0212a258 - ldr r0, _0212975c ; =data_027e0e60 + ldr r0, _0212975c ; =gMapManager ldr r0, [r0] - bl func_ov00_020833f4 - ldr r1, _0212975c ; =data_027e0e60 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + ldr r1, _0212975c ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev ldrb r1, [r5, #0x11b] cmp r1, #0 ldmneia sp!, {r3, r4, r5, pc} @@ -27833,7 +27833,7 @@ func_ov12_021296a4: ; 0x021296a4 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_021296a4 -_0212975c: .word data_027e0e60 +_0212975c: .word gMapManager .global func_ov12_02129760 arm_func_start func_ov12_02129760 @@ -28545,9 +28545,9 @@ func_ov12_0212a104: ; 0x0212a104 add r0, r0, #0x1300 cmp r1, r0 bge _0212a15c - ldr r0, _0212a164 ; =data_027e0e60 + ldr r0, _0212a164 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084114 + bl _ZN10MapManager17GetMapData_Unk_48Ev ldr r1, [r5, #0x4c] cmp r1, r0 ble _0212a15c @@ -28561,24 +28561,24 @@ _0212a15c: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_0212a104 -_0212a164: .word data_027e0e60 +_0212a164: .word gMapManager .global func_ov12_0212a168 arm_func_start func_ov12_0212a168 func_ov12_0212a168: ; 0x0212a168 stmdb sp!, {r3, r4, r5, lr} - ldr r2, _0212a230 ; =data_027e0e60 + ldr r2, _0212a230 ; =gMapManager mov r5, r0 mov r4, r1 ldr r1, [r2] add r0, sp, #0 add r2, r5, #0x48 - bl func_ov00_02083a1c - ldr r0, _0212a230 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _0212a230 ; =gMapManager ldrb r1, [sp] ldrb r2, [sp, #1] ldr r0, [r0] - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci cmp r0, #0x18 bgt _0212a1e0 cmp r0, #0x17 @@ -28624,7 +28624,7 @@ _0212a220: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_0212a168 -_0212a230: .word data_027e0e60 +_0212a230: .word gMapManager .global func_ov12_0212a234 arm_func_start func_ov12_0212a234 @@ -28870,13 +28870,13 @@ _0212a520: add r1, sp, #0 mov r0, r5 bl func_ov12_0212a234 - ldr r0, _0212a618 ; =data_027e0e60 + ldr r0, _0212a618 ; =gMapManager ldr r0, [r0] - bl func_ov00_020833f4 - ldr r1, _0212a618 ; =data_027e0e60 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + ldr r1, _0212a618 ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev ldrb r1, [r5, #0x24c] ldr ip, [sp] bic r3, r1, #0xe0 @@ -28925,7 +28925,7 @@ _0212a60c: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_0212a4d4 -_0212a618: .word data_027e0e60 +_0212a618: .word gMapManager .global func_ov12_0212a61c arm_func_start func_ov12_0212a61c @@ -29007,7 +29007,7 @@ _0212a6cc: bl func_01ff9bc4 _0212a740: ldr r1, [r6, #0x48] - ldr r0, _0212a9ec ; =data_027e0e60 + ldr r0, _0212a9ec ; =gMapManager str r1, [sp, #0x14] ldr r1, [r6, #0x4c] ldr r0, [r0] @@ -29016,7 +29016,7 @@ _0212a740: add r1, sp, #0x14 str r2, [sp, #0x1c] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r6, #0x22c] mvn r4, #0 bl func_ov00_02079e3c @@ -29025,16 +29025,16 @@ _0212a740: ldrb r0, [r6, #0x256] cmp r0, #0 beq _0212a8e4 - ldr r1, _0212a9ec ; =data_027e0e60 + ldr r1, _0212a9ec ; =gMapManager add r0, sp, #0 ldr r1, [r1] add r2, r6, #0x48 - bl func_ov00_02083a1c - ldr r0, _0212a9ec ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _0212a9ec ; =gMapManager ldrb r1, [sp] ldrb r2, [sp, #1] ldr r0, [r0] - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci mov r1, r4 str r1, [r6, #0x238] mov r1, #0 @@ -29073,7 +29073,7 @@ _0212a81c: b _0212a8c0 _0212a830: ldr r1, [r6, #0x48] - ldr r0, _0212a9ec ; =data_027e0e60 + ldr r0, _0212a9ec ; =gMapManager str r1, [sp, #8] ldr r2, [r6, #0x4c] ldr r1, [r0] @@ -29082,7 +29082,7 @@ _0212a830: add r0, sp, #4 add r2, sp, #8 str r3, [sp, #0x10] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #4] mov r0, r0, lsr #0x9 and r0, r0, #3 @@ -29193,7 +29193,7 @@ _0212a9d4: arm_func_end func_ov12_0212a61c _0212a9e4: .word 0x00000555 _0212a9e8: .word 0xc00c00c1 -_0212a9ec: .word data_027e0e60 +_0212a9ec: .word gMapManager _0212a9f0: .word data_ov12_0213dd0c _0212a9f4: .word data_ov12_02137c64 _0212a9f8: .word data_ov00_020eec9c @@ -29254,18 +29254,18 @@ _0212aa88: .word data_ov12_0213dc88 func_ov12_0212aa8c: ; 0x0212aa8c stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} sub sp, sp, #0x30 - ldr r1, _0212ad00 ; =data_027e0e60 + ldr r1, _0212ad00 ; =gMapManager mov r10, r0 ldr r0, [r1] mov r1, #0 str r1, [sp, #8] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev mov r1, #3 mov r7, r0 bl func_01ff9b4c - ldr r0, _0212ad00 ; =data_027e0e60 + ldr r0, _0212ad00 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv str r0, [sp] mov r0, #0 ldr r4, _0212ad04 ; =data_027e0764 @@ -29320,13 +29320,13 @@ _0212ab2c: mla r2, r1, r0, r2 mov r9, r2 _0212ab90: - ldr r0, _0212ad00 ; =data_027e0e60 + ldr r0, _0212ad00 ; =gMapManager mov r1, r8 ldr r0, [r0] mov r2, r9 - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci mov r5, r0 - ldr r0, _0212ad00 ; =data_027e0e60 + ldr r0, _0212ad00 ; =gMapManager ldr r2, _0212ad08 ; =func_ov00_020b1940 ldr r6, [r0] mov r0, r8 @@ -29337,7 +29337,7 @@ _0212ab90: mov r0, r6 mov r1, r8 mov r2, r9 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci ldr r1, [r10, #0x18] cmp r0, r1 bne _0212acec @@ -29348,13 +29348,13 @@ _0212ab90: beq _0212acec mov r1, r8 mov r0, r6 - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [sp, #0x24] ldr r2, [r10, #0x4c] mov r1, r9 mov r0, r6 str r2, [sp, #0x28] - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei str r0, [sp, #0x2c] mov r0, r10 add r1, sp, #0x24 @@ -29370,18 +29370,18 @@ _0212ab90: mov r0, r6 add r1, sp, #0x18 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r0, [sp, #0x28] ldr r1, [sp, #0x24] str r0, [sp, #0x10] - ldr r0, _0212ad00 ; =data_027e0e60 + ldr r0, _0212ad00 ; =gMapManager str r1, [sp, #0xc] ldr r1, [sp, #0x2c] ldr r0, [r0] str r1, [sp, #0x14] mov r1, #0xe add r2, sp, #0xc - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r0, #1 movne r0, #0 @@ -29415,7 +29415,7 @@ _0212acec: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov12_0212aa8c -_0212ad00: .word data_027e0e60 +_0212ad00: .word gMapManager _0212ad04: .word data_027e0764 _0212ad08: .word func_ov00_020b1940 @@ -29713,16 +29713,16 @@ _0212b0bc: ldrb r0, [r4, #0x255] cmp r0, #0 beq _0212b11c - ldr r1, _0212b13c ; =data_027e0e60 + ldr r1, _0212b13c ; =gMapManager add r0, sp, #0 ldr r1, [r1] add r2, r4, #0x48 - bl func_ov00_02083a1c - ldr r0, _0212b13c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _0212b13c ; =gMapManager ldrb r1, [sp] ldrb r2, [sp, #1] ldr r0, [r0] - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci cmp r0, #0x18 cmpne r0, #0x2c cmpne r0, #0x2d @@ -29748,7 +29748,7 @@ _0212b130: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov12_0212b078 -_0212b13c: .word data_027e0e60 +_0212b13c: .word gMapManager _0212b140: .word data_ov12_0213dd0c .global func_ov12_0212b144 @@ -30039,7 +30039,7 @@ _0212b4bc: mov r1, #0 mov r0, r4 str r1, [r4, #0x188] - bl func_ov00_0207da38 + bl _ZN7MapBaseD1Ev mov r0, r4 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 @@ -30083,7 +30083,7 @@ _0212b544: mov r1, #0 mov r0, r4 str r1, [r4, #0x188] - bl func_ov00_0207da38 + bl _ZN7MapBaseD1Ev mov r0, r4 bl _ZN9SysObjectdlEPv mov r0, r4 @@ -30234,7 +30234,7 @@ _0212b700: mov r3, #0 strb r7, [sp, #8] strb r8, [sp, #9] - bl func_ov00_0207f588 + bl _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi mov r0, r10 ldr r3, [r0] mov r1, r5 @@ -30251,7 +30251,7 @@ _0212b700: mov r1, r10 mov r2, r5 mov r3, #1 - bl func_ov00_0207f588 + bl _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi mov r0, r10 ldr r3, [r0] mov r1, r5 @@ -30268,7 +30268,7 @@ _0212b700: mov r1, r10 mov r2, r5 mov r3, #2 - bl func_ov00_0207f588 + bl _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi mov r0, r10 ldr r3, [r0] mov r1, r5 @@ -30285,7 +30285,7 @@ _0212b700: mov r1, r10 mov r2, r5 mov r3, #3 - bl func_ov00_0207f588 + bl _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi mov r0, r10 ldr r3, [r0] mov r1, r5 @@ -30364,7 +30364,7 @@ func_ov12_0212b8cc: ; 0x0212b8cc mov r4, r2 mov r6, r0 mov r5, r1 - bl func_ov00_0207f4a4 + bl _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si cmp r4, #0 cmpne r0, #0 mov r0, r6 @@ -30526,23 +30526,23 @@ func_ov12_0212ba84: ; 0x0212ba84 sub sp, sp, #0x1c mov r6, r2 mov r7, r1 - ldr r2, _0212bb9c ; =data_027e0e60 + ldr r2, _0212bb9c ; =gMapManager mov r8, r0 ldrb r1, [r6, #1] ldr r0, [r2] mov r5, r3 - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei mov r4, r0 mov r0, r8 ldr r2, [r0] mov r1, r6 ldr r2, [r2, #0x60] blx r2 - ldr r1, _0212bb9c ; =data_027e0e60 + ldr r1, _0212bb9c ; =gMapManager mov r9, r0 ldr r0, [r1] ldrb r1, [r6] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [sp, #0x10] str r9, [sp, #0x14] str r4, [sp, #0x18] @@ -30597,7 +30597,7 @@ _0212bb90: ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov12_0212ba84 -_0212bb9c: .word data_027e0e60 +_0212bb9c: .word gMapManager _0212bba0: .word data_027e0f68 .global func_ov12_0212bba4 @@ -33922,13 +33922,13 @@ func_ov12_0212e3e8: ; 0x0212e3e8 mov r0, r5 bl func_ov12_0212e990 _0212e42c: - ldr r0, _0212e4cc ; =data_027e0e60 + ldr r0, _0212e4cc ; =gMapManager ldr r0, [r0] - bl func_ov00_020833f4 - ldr r1, _0212e4cc ; =data_027e0e60 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + ldr r1, _0212e4cc ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev ldrb r2, [r5, #0x218] ldrb r1, [r5, #0x219] ldrb ip, [r5, #0x21a] @@ -33964,7 +33964,7 @@ _0212e42c: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_0212e3e8 -_0212e4cc: .word data_027e0e60 +_0212e4cc: .word gMapManager .global func_ov12_0212e4d0 arm_func_start func_ov12_0212e4d0 @@ -34453,18 +34453,18 @@ _0212eb6c: beq _0212ec88 ldrb r1, [r5, #0x218] ldr r6, [r5, #0x130] - ldr r0, _0212eca8 ; =data_027e0e60 + ldr r0, _0212eca8 ; =gMapManager bic r3, r1, #0x20 and r2, r3, #0xff mov r1, r6, lsl #0x1f orr r1, r2, r1, lsr #26 strb r1, [r5, #0x218] ldr r0, [r0] - bl func_ov00_020833f4 - ldr r1, _0212eca8 ; =data_027e0e60 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + ldr r1, _0212eca8 ; =gMapManager mov r6, r0 ldr r0, [r1] - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev ldr r2, [r5, #0x48] ldrb r1, [r5, #0x218] sub r2, r2, r6 @@ -34529,7 +34529,7 @@ _0212ec94: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov12_0212eb14 -_0212eca8: .word data_027e0e60 +_0212eca8: .word gMapManager _0212ecac: .word 0x00001fe0 .global func_ov12_0212ecb0 @@ -34537,14 +34537,14 @@ _0212ecac: .word 0x00001fe0 func_ov12_0212ecb0: ; 0x0212ecb0 stmdb sp!, {r3, r4, lr} sub sp, sp, #0x14 - ldr r1, _0212ed4c ; =data_027e0e60 + ldr r1, _0212ed4c ; =gMapManager mov r4, r0 ldr r1, [r1] add r0, sp, #0 add r2, r4, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldr r1, [r4, #0x48] - ldr r0, _0212ed4c ; =data_027e0e60 + ldr r0, _0212ed4c ; =gMapManager str r1, [sp, #8] ldr r2, [r4, #0x4c] ldr r1, [r0] @@ -34553,7 +34553,7 @@ func_ov12_0212ecb0: ; 0x0212ecb0 add r0, sp, #4 add r2, sp, #8 str r3, [sp, #0x10] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldrb r1, [sp] ldrb r0, [sp, #1] sub r2, sp, #4 @@ -34578,7 +34578,7 @@ _0212ed40: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov12_0212ecb0 -_0212ed4c: .word data_027e0e60 +_0212ed4c: .word gMapManager .global func_ov12_0212ed50 arm_func_start func_ov12_0212ed50 @@ -35599,10 +35599,10 @@ _0212fa88: cmp r5, r4 bne _0212fa88 _0212fa9c: - ldr r0, _0212fb04 ; =data_027e0e60 + ldr r0, _0212fb04 ; =gMapManager add r1, r6, #0x74 ldr r0, [r0] - bl func_ov00_020839c4 + bl _ZN10MapManager18func_ov00_020839c4Ei mov r0, r6 bl func_ov12_021306ec add r0, r6, #0xd8 @@ -35627,7 +35627,7 @@ _0212fa9c: .align 2, 0 arm_func_end func_ov12_0212fa68 _0212fb00: .word data_ov12_021375ac -_0212fb04: .word data_027e0e60 +_0212fb04: .word gMapManager _0212fb08: .word func_ov12_021194c0 .global func_ov12_0212fb0c @@ -35648,10 +35648,10 @@ _0212fb2c: cmp r5, r4 bne _0212fb2c _0212fb40: - ldr r0, _0212fba0 ; =data_027e0e60 + ldr r0, _0212fba0 ; =gMapManager add r1, r6, #0x74 ldr r0, [r0] - bl func_ov00_020839c4 + bl _ZN10MapManager18func_ov00_020839c4Ei mov r0, r6 bl func_ov12_021306ec add r0, r6, #0xd8 @@ -35674,7 +35674,7 @@ _0212fb40: .align 2, 0 arm_func_end func_ov12_0212fb0c _0212fb9c: .word data_ov12_021375ac -_0212fba0: .word data_027e0e60 +_0212fba0: .word gMapManager _0212fba4: .word func_ov12_021194c0 .global func_ov12_0212fba8 @@ -35822,14 +35822,14 @@ _0212fc68: mov r2, #0 str r0, [r4, #0x7c] ldr r1, [sp, #0x10] - ldr r0, _0212fe9c ; =data_027e0e60 + ldr r0, _0212fe9c ; =gMapManager str r1, [r4, #0x80] ldr r3, [sp, #0x14] add r1, r4, #0x74 str r3, [r4, #0x84] strb r2, [r4, #0x78] ldr r0, [r0] - bl func_ov00_020839b4 + bl _ZN10MapManager18func_ov00_020839b4Ei mov r0, r4 bl func_ov12_021306b0 ldr r0, _0212fea0 ; =0x0000026e @@ -35878,7 +35878,7 @@ _0212fe78: _0212fe90: .word 0xfffff666 _0212fe94: .word data_02050f54 _0212fe98: .word 0x000004cd -_0212fe9c: .word data_027e0e60 +_0212fe9c: .word gMapManager _0212fea0: .word 0x0000026e .global func_ov12_0212fea4 @@ -36220,7 +36220,7 @@ func_ov12_0213024c: ; 0x0213024c mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] - ldr r0, _021306a0 ; =data_027e0e60 + ldr r0, _021306a0 ; =gMapManager add r1, sp, #0xa4 ldr r0, [r0] add r2, sp, #0x80 @@ -36458,7 +36458,7 @@ _02130598: .align 2, 0 arm_func_end func_ov12_0213024c _0213069c: .word 0x0000ffff -_021306a0: .word data_027e0e60 +_021306a0: .word gMapManager _021306a4: .word 0x00000d9a _021306a8: .word data_ov12_0213758c _021306ac: .word data_ov12_02137574 @@ -36738,14 +36738,14 @@ _02130990: .word func_ov12_02130994 arm_func_start func_ov12_02130994 func_ov12_02130994: ; 0x02130994 stmdb sp!, {r3, r4, r5, lr} - ldr r1, _02130a90 ; =data_027e0e60 + ldr r1, _02130a90 ; =gMapManager mov r5, r0 ldr r0, [r1] - bl func_ov00_020833f4 - ldr r1, _02130a90 ; =data_027e0e60 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + ldr r1, _02130a90 ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev ldrb r1, [r5, #0x73a] ldrb r2, [r5, #0x739] mov r1, r1, lsl #0x1c @@ -36809,7 +36809,7 @@ _02130a84: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov12_02130994 -_02130a90: .word data_027e0e60 +_02130a90: .word gMapManager .global func_ov12_02130a94 arm_func_start func_ov12_02130a94 @@ -37593,7 +37593,7 @@ func_ov12_021314e8: ; 0x021314e8 add r0, r4, #0x48 bl func_ov00_020c70ac ldr r1, [r4, #0x48] - ldr r0, _021315b4 ; =data_027e0e60 + ldr r0, _021315b4 ; =gMapManager str r1, [sp, #0xc] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -37609,7 +37609,7 @@ func_ov12_021314e8: ; 0x021314e8 str ip, [sp, #4] ldr ip, [r4, #0x5c] str ip, [sp, #8] - bl func_ov00_02083ef8 + bl _ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ ldr r1, _021315b8 ; =data_ov12_02137680 str r0, [r4, #0x4c] ldr r2, [r1, #0x28] @@ -37621,7 +37621,7 @@ func_ov12_021314e8: ; 0x021314e8 .align 2, 0 arm_func_end func_ov12_021314e8 _021315b0: .word data_ov12_02137d1c -_021315b4: .word data_027e0e60 +_021315b4: .word gMapManager _021315b8: .word data_ov12_02137680 .global func_ov12_021315bc @@ -37905,7 +37905,7 @@ _021318d0: ldr r0, [r10, #8] stmib sp, {r0, r11} str r5, [sp, #0xc] - ldr r0, _02131a28 ; =data_027e0e60 + ldr r0, _02131a28 ; =gMapManager str r5, [sp, #0x10] ldr r0, [r0] bl func_01ffbe78 @@ -37937,7 +37937,7 @@ _02131a00: _02131a1c: .word data_027e0764 _02131a20: .word data_02050f54 _02131a24: .word 0x0000ffff -_02131a28: .word data_027e0e60 +_02131a28: .word gMapManager _02131a2c: .word data_ov12_02137680 .global func_ov12_02131a30 @@ -38132,13 +38132,13 @@ _02131c90: ldrb r0, [r4, #0x754] cmp r0, #0 beq _02131d64 - ldr r0, _02131d78 ; =data_027e0e60 + ldr r0, _02131d78 ; =gMapManager ldr r0, [r0] - bl func_ov00_020833f4 - ldr r1, _02131d78 ; =data_027e0e60 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev + ldr r1, _02131d78 ; =gMapManager mov r5, r0 ldr r0, [r1] - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev ldr r2, [r4, #0x73c] ldrb r1, [r4, #0x739] sub r2, r2, r5 @@ -38190,7 +38190,7 @@ _02131d64: arm_func_end func_ov12_02131bdc _02131d70: .word data_ov12_02137c64 _02131d74: .word data_027e0f90 -_02131d78: .word data_027e0e60 +_02131d78: .word gMapManager .global func_ov12_02131d7c arm_func_start func_ov12_02131d7c @@ -38691,7 +38691,7 @@ func_ov12_0213234c: ; 0x0213234c moveq r0, #0 ldmeqia sp!, {pc} ldr r2, [r1, #0x48] - ldr r0, _021323c8 ; =data_027e0e60 + ldr r0, _021323c8 ; =gMapManager str r2, [sp] ldr r2, [r1, #0x4c] ldr r0, [r0] @@ -38700,7 +38700,7 @@ func_ov12_0213234c: ; 0x0213234c add r2, sp, #0 str r1, [sp, #8] ldr r1, [r3, #4] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji add sp, sp, #0xc ldmia sp!, {pc} _021323b8: @@ -38710,7 +38710,7 @@ _021323b8: .align 2, 0 arm_func_end func_ov12_0213234c _021323c4: .word 0x42545246 -_021323c8: .word data_027e0e60 +_021323c8: .word gMapManager .global func_ov12_021323cc arm_func_start func_ov12_021323cc @@ -41089,7 +41089,7 @@ func_ov12_02134300: ; 0x02134300 mov lr, #0x47 mov r2, #0xff strb r2, [sp, #0x12] - ldr r1, _02134374 ; =data_027e0e60 + ldr r1, _02134374 ; =gMapManager mov r4, r0 str lr, [sp] str ip, [sp, #4] @@ -41102,7 +41102,7 @@ func_ov12_02134300: ; 0x02134300 ldr r0, [r1] ldr r1, [r4, #0x5c] add r2, sp, #0 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 addeq sp, sp, #0x18 ldmeqia sp!, {r4, pc} @@ -41113,7 +41113,7 @@ func_ov12_02134300: ; 0x02134300 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov12_02134300 -_02134374: .word data_027e0e60 +_02134374: .word gMapManager .global func_ov12_02134378 arm_func_start func_ov12_02134378 @@ -48715,7 +48715,7 @@ data_ov12_02136c08: ; 0x02136c08 .word func_ov12_0212b568 .global data_ov12_02136c0c data_ov12_02136c0c: ; 0x02136c0c - .word func_ov00_0207ddf4 + .word _ZN7MapBase8vfunc_18Ev .global data_ov12_02136c10 data_ov12_02136c10: ; 0x02136c10 .word func_ov12_0212b5fc @@ -48751,13 +48751,13 @@ data_ov12_02136c38: ; 0x02136c38 .word func_ov04_0210cb00 ; data_ov07_0210cb00 .global data_ov12_02136c3c data_ov12_02136c3c: ; 0x02136c3c - .word func_ov00_0207e46c + .word _ZN7MapBase8vfunc_48Ev .global data_ov12_02136c40 data_ov12_02136c40: ; 0x02136c40 .word func_ov12_0212bbe8 .global data_ov12_02136c44 data_ov12_02136c44: ; 0x02136c44 - .word func_ov00_0207e488 + .word _ZN7MapBase8vfunc_50Ev .global data_ov12_02136c48 data_ov12_02136c48: ; 0x02136c48 .word func_ov12_0212b908 @@ -48772,19 +48772,19 @@ data_ov12_02136c54: ; 0x02136c54 .word func_ov12_0212b978 .global data_ov12_02136c58 data_ov12_02136c58: ; 0x02136c58 - .word func_ov00_0207e4b0 + .word _ZN7MapBase8vfunc_64Ev .global data_ov12_02136c5c data_ov12_02136c5c: ; 0x02136c5c - .word func_ov00_0207e4b8 + .word _ZN7MapBase8vfunc_68Eii .global data_ov12_02136c60 data_ov12_02136c60: ; 0x02136c60 - .word func_ov00_0207e970 + .word _ZN7MapBase8vfunc_6cEiii .global data_ov12_02136c64 data_ov12_02136c64: ; 0x02136c64 - .word func_ov00_0207ee14 + .word _ZN7MapBase8vfunc_70EP5Vec3p .global data_ov12_02136c68 data_ov12_02136c68: ; 0x02136c68 - .word func_ov00_0207eff4 + .word _ZN7MapBase8vfunc_74EP5Vec3p .global data_ov12_02136c6c data_ov12_02136c6c: ; 0x02136c6c .word func_ov12_0212ba6c @@ -48796,16 +48796,16 @@ data_ov12_02136c74: ; 0x02136c74 .word func_ov12_0212bba4 .global data_ov12_02136c78 data_ov12_02136c78: ; 0x02136c78 - .word func_ov00_0207f364 + .word _ZN7MapBase8vfunc_84Ei .global data_ov12_02136c7c data_ov12_02136c7c: ; 0x02136c7c - .word func_ov00_0207f324 + .word _ZN7MapBase8vfunc_88Ev .global data_ov12_02136c80 data_ov12_02136c80: ; 0x02136c80 - .word func_ov00_0207f32c + .word _ZN7MapBase8vfunc_8cEv .global data_ov12_02136c84 data_ov12_02136c84: ; 0x02136c84 - .word func_ov00_0207f3c4 + .word _ZN7MapBase8vfunc_90Eiii .global data_ov12_02136c88 data_ov12_02136c88: ; 0x02136c88 .word func_ov12_0212b674 @@ -48814,10 +48814,10 @@ data_ov12_02136c8c: ; 0x02136c8c .word func_ov12_0212b9e4 .global data_ov12_02136c90 data_ov12_02136c90: ; 0x02136c90 - .word func_ov00_0207f334 + .word _ZN7MapBase8vfunc_9cEv .global data_ov12_02136c94 data_ov12_02136c94: ; 0x02136c94 - .word func_ov00_0207f338 + .word _ZN7MapBase8vfunc_a0Ev .global data_ov12_02136c98 data_ov12_02136c98: ; 0x02136c98 .word func_ov12_0212b844 @@ -48829,13 +48829,13 @@ data_ov12_02136ca0: ; 0x02136ca0 .word func_ov12_0212b8cc .global data_ov12_02136ca4 data_ov12_02136ca4: ; 0x02136ca4 - .word func_ov00_0207e060 + .word _ZN7MapBase8vfunc_b0Eii .global data_ov12_02136ca8 data_ov12_02136ca8: ; 0x02136ca8 - .word func_ov00_0207e444 + .word _ZN7MapBase8vfunc_b4Ev .global data_ov12_02136cac data_ov12_02136cac: ; 0x02136cac - .word func_ov00_020807d4 + .word _ZN7MapBase8vfunc_b8Ev .global data_ov12_02136cb0 data_ov12_02136cb0: ; 0x02136cb0 .word func_ov12_0212b9c4 diff --git a/asm/ov13.s b/asm/ov13.s index bc8923e1..7ae9d385 100644 --- a/asm/ov13.s +++ b/asm/ov13.s @@ -4263,11 +4263,13 @@ data_ov13_02116124: ; 0x02116124 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov13_02116128 data_ov13_02116128: ; 0x02116128 - .ascii "ƒ„ƒƒ‹" + ; string "ダパル" + .byte 0x83, 0x84, 0x83, 0x81, 0x83, 0x8b .byte 0x00, 0x00 .global data_ov13_02116130 data_ov13_02116130: ; 0x02116130 - .ascii "ƒRƒEƒJƒ“ ƒXƒ‹" + ; string "コウカン スル" + .byte 0x83, 0x52, 0x83, 0x45, 0x83, 0x4a, 0x83, 0x93, 0x20, 0x83, 0x58, 0x83, 0x8b .byte 0x00, 0x00, 0x00 .global data_ov13_02116140 data_ov13_02116140: ; 0x02116140 diff --git a/asm/ov14/ov14_0211f640.inc b/asm/ov14/ov14_0211f640.inc index 4b5c9749..f23b93a8 100644 --- a/asm/ov14/ov14_0211f640.inc +++ b/asm/ov14/ov14_0211f640.inc @@ -1,6 +1,44 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_54Ev +.extern _ZN10MapManager16MapData_vfunc_58Ev +.extern _ZN10MapManager16MapData_vfunc_60Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_6cEv +.extern _ZN10MapManager16MapData_vfunc_70Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager16MapData_vfunc_7cEv +.extern _ZN10MapManager16MapData_vfunc_b4Ev +.extern _ZN10MapManager17GetMapData_Unk_09Ev +.extern _ZN10MapManager17Get_MapData_Unk28Ev +.extern _ZN10MapManager17Get_MapData_Unk2aEv +.extern _ZN10MapManager18func_ov00_020823d4Ei +.extern _ZN10MapManager18func_ov00_020823e4Ei +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_020826a0Eiii +.extern _ZN10MapManager18func_ov00_02082d08Ev +.extern _ZN10MapManager18func_ov00_02083780Ei +.extern _ZN10MapManager18func_ov00_02083978EiP5Vec3p +.extern _ZN10MapManager18func_ov00_020839b4Ei +.extern _ZN10MapManager18func_ov00_020839c4Ei +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +.extern _ZN10MapManager18func_ov00_02083e34Ecci +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager18func_ov00_020840a0Ecci +.extern _ZN10MapManager18func_ov00_020840dcEv +.extern _ZN10MapManager18func_ov00_020843ecEPi +.extern _ZN10MapManager18func_ov00_02084ac4Ej +.extern _ZN10MapManager18func_ov00_02084c7cEi +.extern _ZN10MapManager18func_ov00_02084cb0Ei +.extern _ZN10MapManager18func_ov00_02084cc8Ei +.extern _ZN10MapManager18func_ov00_02084ce4Ei +.extern _ZN10MapManager18func_ov00_02084cfcEi +.extern _ZN10MapManager18func_ov00_02084ebcEi +.extern _ZN10MapManager8SpawnNPCEP5Vec3pii .extern _ZN10PlayerBase10SetVisibleEb .extern _ZN11ItemManager12GetEquipItemEi .extern _ZN11ItemManager12GetItemModelEj @@ -99,9 +137,9 @@ .extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj +.extern _ZNK11ItemManager10GetNumKeysEv .extern _ZNK11ItemManager15GetEquippedItemEv .extern _ZNK11ItemManager18func_ov00_020ad560Ei -.extern _ZNK11ItemManager18func_ov00_020ae350Ev .extern _ZNK11ItemManager7HasItemEi .extern __register_global_object .extern data_02050f54 @@ -121,7 +159,6 @@ .extern data_027e0d44 .extern data_027e0d78 .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -257,44 +294,6 @@ .extern func_ov00_02081f4c .extern func_ov00_02081f58 .extern func_ov00_02081f6c -.extern func_ov00_020823d4 -.extern func_ov00_020823e4 -.extern func_ov00_020823f4 -.extern func_ov00_02082680 -.extern func_ov00_020826a0 -.extern func_ov00_020828c0 -.extern func_ov00_02082d08 -.extern func_ov00_0208335c -.extern func_ov00_02083368 -.extern func_ov00_02083780 -.extern func_ov00_02083978 -.extern func_ov00_020839b4 -.extern func_ov00_020839c4 -.extern func_ov00_02083a1c -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083c7c -.extern func_ov00_02083e34 -.extern func_ov00_02083e58 -.extern func_ov00_02083ee0 -.extern func_ov00_02083f80 -.extern func_ov00_02083f98 -.extern func_ov00_02083fb0 -.extern func_ov00_02084088 -.extern func_ov00_020840a0 -.extern func_ov00_020840c4 -.extern func_ov00_020840dc -.extern func_ov00_0208414c -.extern func_ov00_020843ec -.extern func_ov00_02084a5c -.extern func_ov00_02084ac4 -.extern func_ov00_02084c7c -.extern func_ov00_02084cb0 -.extern func_ov00_02084cc8 -.extern func_ov00_02084ce4 -.extern func_ov00_02084cfc -.extern func_ov00_02084d18 -.extern func_ov00_02084ebc .extern func_ov00_020875f8 .extern func_ov00_02087d34 .extern func_ov00_02088000 @@ -517,5 +516,6 @@ .extern func_ov58_0219ab28 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern strcmp diff --git a/asm/ov14/ov14_0211f640.s b/asm/ov14/ov14_0211f640.s index 1584d43e..21002b8b 100644 --- a/asm/ov14/ov14_0211f640.s +++ b/asm/ov14/ov14_0211f640.s @@ -322,7 +322,7 @@ func_ov14_0211f980: ; 0x0211f980 ldr r0, _0211faa4 ; =gItemManager mvn r5, #0 ldr r3, _0211faa8 ; =data_027e0d3c - ldr r2, _0211faac ; =data_027e0e60 + ldr r2, _0211faac ; =gMapManager ldr r0, [r0] mov r1, #7 str r5, [sp, #4] @@ -345,11 +345,11 @@ _0211f9f8: ldrb r6, [r0] ldrb r1, [r0, #1] mov r0, r9 - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei mov r1, r6 mov r6, r0 mov r0, r9 - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] @@ -389,7 +389,7 @@ _0211fa8c: arm_func_end func_ov14_0211f980 _0211faa4: .word gItemManager _0211faa8: .word data_027e0d3c -_0211faac: .word data_027e0e60 +_0211faac: .word gMapManager .global func_ov14_0211fab0 arm_func_start func_ov14_0211fab0 @@ -2675,7 +2675,7 @@ _021218e4: add lr, sp, #0x34 str r1, [sp, #0x30] ldr r1, [r5, #0x48] - ldr ip, _021219e0 ; =data_027e0e60 + ldr ip, _021219e0 ; =gMapManager str r1, [sp, #0x1c] ldr r2, [r5, #0x4c] add r1, sp, #0x44 @@ -2705,7 +2705,7 @@ _021219d0: .word data_027e0fb8 _021219d4: .word data_027e0f64 _021219d8: .word 0x0000ffff _021219dc: .word data_ov14_02155aa4 -_021219e0: .word data_027e0e60 +_021219e0: .word gMapManager .global func_ov14_021219e4 arm_func_start func_ov14_021219e4 @@ -3267,7 +3267,7 @@ _02122124: cmp r0, #3 bne _02122420 ldr r1, [r5, #0x248] - ldr r0, _02122acc ; =data_027e0e60 + ldr r0, _02122acc ; =gMapManager str r1, [sp, #0x2c] ldr r1, [r5, #0x24c] ldr r0, [r0] @@ -3276,7 +3276,7 @@ _02122124: add r1, sp, #0x2c add r2, sp, #0x98 str r3, [sp, #0x34] - bl func_ov00_02083978 + bl _ZN10MapManager18func_ov00_02083978EiP5Vec3p cmp r0, #0 beq _02122170 ldr r0, [sp, #0x9c] @@ -3312,7 +3312,7 @@ _02122174: mov r7, #0 str r0, [sp, #0x8c] ldr r1, [r5, #0x4c] - ldr r0, _02122acc ; =data_027e0e60 + ldr r0, _02122acc ; =gMapManager str r1, [sp, #0x90] ldr r8, _02122ad4 ; =0x0000ffff ldr r1, [r5, #0x50] @@ -3337,10 +3337,10 @@ _02122174: strb r7, [sp, #0x100] strb r7, [sp, #0x101] str r3, [sp, #0x94] - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #4 mov r0, r6 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r6, r0 beq _02122358 ldr r1, [r0] @@ -3735,7 +3735,7 @@ _02122820: cmp r0, #0 beq _02122864 ldr r1, [r5, #0x48] - ldr r0, _02122acc ; =data_027e0e60 + ldr r0, _02122acc ; =gMapManager str r1, [sp, #0x14] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -3744,7 +3744,7 @@ _02122820: add r1, sp, #0x14 add r2, sp, #0x5c str r3, [sp, #0x1c] - bl func_ov00_02083978 + bl _ZN10MapManager18func_ov00_02083978EiP5Vec3p cmp r0, #0 movne r6, #1 _02122864: @@ -3913,7 +3913,7 @@ _02122abc: .word 0x0000059a _02122ac0: .word 0x00000333 _02122ac4: .word data_02050f54 _02122ac8: .word 0x000004cd -_02122acc: .word data_027e0e60 +_02122acc: .word gMapManager _02122ad0: .word 0x00000e66 _02122ad4: .word 0x0000ffff _02122ad8: .word data_027e0764 @@ -5961,7 +5961,7 @@ _0212448c: mov r0, r5 bl _ZN5Actor12ApplyGravityEv ldr r1, [r5, #0x48] - ldr r0, _02124c54 ; =data_027e0e60 + ldr r0, _02124c54 ; =gMapManager str r1, [sp, #0x74] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -5970,7 +5970,7 @@ _0212448c: add r1, sp, #0x74 str r2, [sp, #0x7c] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x4c] cmp r0, r1 ble _02124510 @@ -6020,13 +6020,13 @@ _02124580: bl func_ov14_0213ed94 ldrb r2, [r0] ldrb r3, [r0, #1] - ldr r1, _02124c54 ; =data_027e0e60 + ldr r1, _02124c54 ; =gMapManager strb r2, [sp, #0xe] ldr r1, [r1] add r0, sp, #0xc add r2, r5, #0x48 strb r3, [sp, #0xf] - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r3, [sp, #0xc] ldrb r1, [sp, #0xe] ldrb r2, [sp, #0xd] @@ -6045,7 +6045,7 @@ _02124580: str r0, [r5, #0x174] b _02124724 _02124608: - ldr r0, _02124c54 ; =data_027e0e60 + ldr r0, _02124c54 ; =gMapManager ldrb r1, [sp, #0xe] ldr r0, [r0] sub r3, sp, #4 @@ -6054,7 +6054,7 @@ _02124608: add r1, sp, #0x98 strb r2, [r3, #1] ldr r2, [r3] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi add r0, sp, #0x98 add r2, sp, #0x8c add r1, r5, #0x48 @@ -6071,7 +6071,7 @@ _02124608: b _02124724 _02124668: ldr r1, [r5, #0x48] - ldr r0, _02124c54 ; =data_027e0e60 + ldr r0, _02124c54 ; =gMapManager str r1, [sp, #0x68] ldr r2, [r5, #0x4c] ldr r1, [r0] @@ -6080,9 +6080,9 @@ _02124668: add r0, sp, #0x1c add r2, sp, #0x68 str r3, [sp, #0x70] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r1, [r5, #0x48] - ldr r0, _02124c54 ; =data_027e0e60 + ldr r0, _02124c54 ; =gMapManager str r1, [sp, #0x5c] ldr r1, [r5, #0x4c] ldr r7, [r0] @@ -6099,12 +6099,12 @@ _02124668: ldr r3, [r5, #0x50] mov r2, r6 str r3, [sp, #0x58] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r8, r0 add r1, sp, #0x50 mov r0, r7 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev cmp r8, r0 bne _02124710 ldr r0, [sp, #0x1c] @@ -6180,7 +6180,7 @@ _021247d8: mov r1, #0 str r1, [r0, #0x34] ldr r1, [r5, #0x48] - ldr r0, _02124c54 ; =data_027e0e60 + ldr r0, _02124c54 ; =gMapManager str r1, [sp, #0x80] ldr r7, [r5, #0x4c] ldr r0, [r0] @@ -6192,7 +6192,7 @@ _021247d8: mov r2, #1 add r3, r7, r3 str r3, [sp, #0x84] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r5, #0x90] add r1, r6, #0xcc add r2, r2, r0 @@ -6226,7 +6226,7 @@ _021248a8: cmp r0, #0 beq _02124930 ldr r1, [r5, #0xb8] - ldr r0, _02124c54 ; =data_027e0e60 + ldr r0, _02124c54 ; =gMapManager str r1, [r5, #0x48] ldr r2, [r5, #0xbc] add r1, sp, #0x44 @@ -6241,7 +6241,7 @@ _021248a8: str r3, [sp, #0x48] ldr r3, [r5, #0x50] str r3, [sp, #0x4c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r5, #0x4c] ldrb r0, [r5, #0x112] cmp r0, #0 @@ -6290,7 +6290,7 @@ _02124948: bl func_ov00_0208967c _021249a4: ldr r1, [r5, #0x48] - ldr r0, _02124c54 ; =data_027e0e60 + ldr r0, _02124c54 ; =gMapManager str r1, [sp, #0x38] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -6299,7 +6299,7 @@ _021249a4: add r1, sp, #0x38 str r2, [sp, #0x40] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x90] ldr r2, [r5, #0x4c] add r0, r1, r0 @@ -6309,7 +6309,7 @@ _021249a4: cmp r0, #0 beq _02124a6c ldr r1, [r5, #0x48] - ldr r0, _02124c54 ; =data_027e0e60 + ldr r0, _02124c54 ; =gMapManager str r1, [sp, #0x2c] ldr r2, [r5, #0x4c] ldr r1, [r0] @@ -6318,7 +6318,7 @@ _021249a4: add r0, sp, #0x10 add r2, sp, #0x2c str r3, [sp, #0x34] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #0x10] mov r1, r0 mov r0, r0, lsr #0x5 @@ -6382,7 +6382,7 @@ _02124af0: cmp r0, #0 bne _02124b50 ldr r1, [r5, #0x48] - ldr r0, _02124c54 ; =data_027e0e60 + ldr r0, _02124c54 ; =gMapManager str r1, [sp, #0x20] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -6391,7 +6391,7 @@ _02124af0: add r1, sp, #0x20 str r2, [sp, #0x28] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x4c] cmp r1, r0 mov r0, r5 @@ -6477,7 +6477,7 @@ _02124c44: .word data_027e077c _02124c48: .word data_02056be4 _02124c4c: .word data_027e0ffc _02124c50: .word 0x000001a1 -_02124c54: .word data_027e0e60 +_02124c54: .word gMapManager _02124c58: .word 0x00000333 _02124c5c: .word data_ov14_02153bfc _02124c60: .word data_ov14_0215ac9c @@ -6866,17 +6866,17 @@ _021250fc: .word data_ov14_02155fd4 arm_func_start func_ov14_02125100 func_ov14_02125100: ; 0x02125100 stmdb sp!, {r3, lr} - ldr r2, _02125124 ; =data_027e0e60 + ldr r2, _02125124 ; =gMapManager ldrsh r1, [r0, #0x34] ldr r0, [r2] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 movne r0, #8 moveq r0, #3 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov14_02125100 -_02125124: .word data_027e0e60 +_02125124: .word gMapManager .global func_ov14_02125128 arm_func_start func_ov14_02125128 @@ -7041,7 +7041,7 @@ func_ov14_021252b8: ; 0x021252b8 cmp r0, #1 bne _02125340 ldr r0, [r5, #0x18] - ldr r1, _02125598 ; =data_027e0e60 + ldr r1, _02125598 ; =gMapManager add r0, r0, #0x3fc add r0, r0, #0x400 str r0, [r5, #0x18] @@ -7052,15 +7052,15 @@ func_ov14_021252b8: ; 0x021252b8 strb r2, [sp, #0xc] mov r2, #1 strb r3, [sp, #0xd] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r2, [sp, #0xc] - ldr r0, _02125598 ; =data_027e0e60 + ldr r0, _02125598 ; =gMapManager add r1, sp, #0xc add r3, r2, #1 ldr r0, [r0] mov r2, #1 strb r3, [sp, #0xc] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii _02125340: mov r0, r5 bl func_ov00_0208c214 @@ -7089,38 +7089,38 @@ _02125340: add r1, sp, #0x14 mov r2, r0 bl func_01ff9bc4 - ldr r0, _02125598 ; =data_027e0e60 + ldr r0, _02125598 ; =gMapManager ldrb r3, [r5, #0x15] ldrb r2, [r5, #0x14] ldr r0, [r0] add r1, sp, #4 strb r2, [sp, #4] strb r3, [sp, #5] - bl func_ov00_02083e58 + bl _ZN10MapManager16MapData_vfunc_60Ev mov r4, r0 ldrh r0, [r5, #0x2a] ldrb r1, [r5, #0x14] cmp r0, #1 bne _02125444 - ldr r0, _02125598 ; =data_027e0e60 + ldr r0, _02125598 ; =gMapManager ldrb r3, [r5, #0x15] ldr r0, [r0] sub r2, r1, #1 add r1, sp, #0xa strb r3, [sp, #0xb] strb r2, [sp, #0xa] - bl func_ov00_02083e58 + bl _ZN10MapManager16MapData_vfunc_60Ev cmp r0, r4 ldrgt r0, [sp, #0x50] ldrb r2, [sp, #0xa] subgt r0, r0, #0x800 strgt r0, [sp, #0x50] - ldr r0, _02125598 ; =data_027e0e60 + ldr r0, _02125598 ; =gMapManager add r2, r2, #3 ldr r0, [r0] add r1, sp, #0xa strb r2, [sp, #0xa] - bl func_ov00_02083e58 + bl _ZN10MapManager16MapData_vfunc_60Ev cmp r0, r4 ble _021254a0 ldr r0, [sp, #0x44] @@ -7128,45 +7128,45 @@ _02125340: str r0, [sp, #0x44] b _021254a0 _02125444: - ldr r0, _02125598 ; =data_027e0e60 + ldr r0, _02125598 ; =gMapManager ldrb r3, [r5, #0x15] ldr r0, [r0] sub r2, r1, #1 add r1, sp, #8 strb r3, [sp, #9] strb r2, [sp, #8] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x50] ldrb r2, [sp, #8] subeq r0, r0, #0x800 streq r0, [sp, #0x50] - ldr r0, _02125598 ; =data_027e0e60 + ldr r0, _02125598 ; =gMapManager add r2, r2, #2 ldr r0, [r0] add r1, sp, #8 strb r2, [sp, #8] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x44] addeq r0, r0, #0x800 streq r0, [sp, #0x44] _021254a0: ldrb r1, [r5, #0x15] - ldr r0, _02125598 ; =data_027e0e60 + ldr r0, _02125598 ; =gMapManager ldrb r3, [r5, #0x14] sub r2, r1, #1 ldr r0, [r0] add r1, sp, #6 strb r3, [sp, #6] strb r2, [sp, #7] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 bne _021254ec - ldr r0, _02125598 ; =data_027e0e60 + ldr r0, _02125598 ; =gMapManager add r1, sp, #6 ldr r0, [r0] - bl func_ov00_02083e58 + bl _ZN10MapManager16MapData_vfunc_60Ev cmp r4, r0 ldreq r0, [sp, #0x58] subeq r0, r0, #0x800 @@ -7218,7 +7218,7 @@ _0212553c: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov14_021252b8 -_02125598: .word data_027e0e60 +_02125598: .word gMapManager .global func_ov14_0212559c arm_func_start func_ov14_0212559c @@ -7420,24 +7420,24 @@ _02125864: beq _02125890 cmp r0, #2 ldmneia sp!, {r4, pc} - ldr r0, _021258b0 ; =data_027e0e60 + ldr r0, _021258b0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084ce4 + bl _ZN10MapManager18func_ov00_02084ce4Ei ldmia sp!, {r4, pc} _02125890: - ldr r0, _021258b0 ; =data_027e0e60 + ldr r0, _021258b0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0212559c _021258a8: .word gAdventureFlags _021258ac: .word data_ov14_02153c04 -_021258b0: .word data_027e0e60 +_021258b0: .word gMapManager .global func_ov14_021258b4 arm_func_start func_ov14_021258b4 @@ -7565,13 +7565,13 @@ _021259c4: ldrb r2, [r4, #0x36] strb r2, [sp, #0xc0] bl _ZN14AdventureFlags18func_Ov00_02097810Ei - ldr r1, _02125c18 ; =data_027e0e60 + ldr r1, _02125c18 ; =gMapManager str r0, [r4, #0x68] ldr r0, [r1] add r1, r4, #0x18 mov r2, #1 mov r3, #0 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii str r0, [r4, #0x64] add r0, sp, #0xb0 bl func_ov00_0209a508 @@ -7653,10 +7653,10 @@ _02125b40: ldrb r0, [r4, #0x71] cmp r0, #0 beq _02125b88 - ldr r0, _02125c18 ; =data_027e0e60 + ldr r0, _02125c18 ; =gMapManager ldr r1, [r4, #0x64] ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej mvn r0, #0 str r0, [r4, #0x64] _02125b88: @@ -7686,10 +7686,10 @@ _02125bd8: ldrb r0, [r4, #0x71] cmp r0, #0 beq _02125bfc - ldr r0, _02125c18 ; =data_027e0e60 + ldr r0, _02125c18 ; =gMapManager ldr r1, [r4, #0x64] ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej mvn r0, #0 str r0, [r4, #0x64] _02125bfc: @@ -7703,7 +7703,7 @@ _02125c04: arm_func_end func_ov14_0212595c _02125c10: .word data_ov14_02153c04 _02125c14: .word gAdventureFlags -_02125c18: .word data_027e0e60 +_02125c18: .word gMapManager _02125c1c: .word data_027e0ffc _02125c20: .word 0x000001af @@ -7763,10 +7763,10 @@ _02125cc0: moveq r0, #0 ldmia sp!, {r4, pc} _02125cd8: - ldr r0, _02125d48 ; =data_027e0e60 + ldr r0, _02125d48 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cfc + bl _ZN10MapManager18func_ov00_02084cfcEi cmp r0, #0 movne r0, #8 ldmneia sp!, {r4, pc} @@ -7778,10 +7778,10 @@ _02125cd8: moveq r0, #0 ldmia sp!, {r4, pc} _02125d10: - ldr r0, _02125d48 ; =data_027e0e60 + ldr r0, _02125d48 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 movne r0, #8 ldmneia sp!, {r4, pc} @@ -7794,7 +7794,7 @@ _02125d10: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_02125c98 -_02125d48: .word data_027e0e60 +_02125d48: .word gMapManager .global func_ov14_02125d4c arm_func_start func_ov14_02125d4c @@ -8156,17 +8156,17 @@ _02126110: .word data_ov14_021562ac arm_func_start func_ov14_02126114 func_ov14_02126114: ; 0x02126114 stmdb sp!, {r3, lr} - ldr r2, _02126138 ; =data_027e0e60 + ldr r2, _02126138 ; =gMapManager ldrsh r1, [r0, #0x34] ldr r0, [r2] - bl func_ov00_02084cfc + bl _ZN10MapManager18func_ov00_02084cfcEi cmp r0, #0 movne r0, #8 moveq r0, #3 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov14_02126114 -_02126138: .word data_027e0e60 +_02126138: .word gMapManager .global func_ov14_0212613c arm_func_start func_ov14_0212613c @@ -8878,14 +8878,14 @@ _02126898: mov r2, #1 strb r2, [r5, #0x83] ldrb r1, [r5, #0x15] - ldr r0, _02126ab4 ; =data_027e0e60 + ldr r0, _02126ab4 ; =gMapManager ldrb r3, [r5, #0x14] add ip, r1, #1 ldr r0, [r0] add r1, sp, #6 strb r3, [sp, #6] strb ip, [sp, #7] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii b _02126a20 _02126958: ldr r0, [r5, #0x18] @@ -8929,7 +8929,7 @@ _02126958: str r3, [sp, #0x2c] bl func_01ff9bc4 ldrb r1, [r5, #0x14] - ldr r0, _02126ab4 ; =data_027e0e60 + ldr r0, _02126ab4 ; =gMapManager ldrb ip, [r5, #0x15] add r3, r1, #1 ldr r0, [r0] @@ -8937,7 +8937,7 @@ _02126958: mov r2, #1 strb r3, [sp, #4] strb ip, [sp, #5] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii _02126a20: ldr r1, [r5, #4] mov r0, r5 @@ -8978,7 +8978,7 @@ _02126a20: .align 2, 0 arm_func_end func_ov14_02126854 _02126ab0: .word 0x0000059a -_02126ab4: .word data_027e0e60 +_02126ab4: .word gMapManager _02126ab8: .word 0x00002666 .global func_ov14_02126abc @@ -9397,11 +9397,11 @@ _02127064: ldmgtia sp!, {r4, pc} mov r1, #1 strb r1, [r4, #0x3c] - ldr r0, _02127180 ; =data_027e0e60 + ldr r0, _02127180 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldmia sp!, {r4, pc} _021270b0: ldrb r1, [r4, #0x7c] @@ -9417,11 +9417,11 @@ _021270b0: ldmgtia sp!, {r4, pc} mov r1, #1 strb r1, [r4, #0x3c] - ldr r0, _02127180 ; =data_027e0e60 + ldr r0, _02127180 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldmia sp!, {r4, pc} _021270fc: ldr r1, [r0] @@ -9434,11 +9434,11 @@ _021270fc: ldmltia sp!, {r4, pc} mov r1, #0 strb r1, [r4, #0x3c] - ldr r0, _02127180 ; =data_027e0e60 + ldr r0, _02127180 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldmia sp!, {r4, pc} _0212713c: ldrb r0, [r4, #0x7c] @@ -9451,16 +9451,16 @@ _0212713c: cmp r0, #0 ldmneia sp!, {r4, pc} mov r1, #1 - ldr r0, _02127180 ; =data_027e0e60 + ldr r0, _02127180 ; =gMapManager strb r1, [r4, #0x3c] ldr r0, [r0] add r1, r4, #0x38 mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_02127034 -_02127180: .word data_027e0e60 +_02127180: .word gMapManager _02127184: .word gAdventureFlags .global func_ov14_02127188 @@ -9582,11 +9582,11 @@ _0212731c: _02127338: cmp r4, #0 bne _021276a0 - ldr r0, _021276b0 ; =data_027e0e60 + ldr r0, _021276b0 ; =gMapManager ldrsh r1, [r5, #0x34] ldr r0, [r0] mov r2, #0 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei b _021276a0 _02127358: ldrb r0, [r5, #0x8a] @@ -9609,12 +9609,12 @@ _02127378: b _021276a0 _0212739c: mvn r1, #0 - ldr r0, _021276b0 ; =data_027e0e60 + ldr r0, _021276b0 ; =gMapManager str r1, [r5, #0x64] ldr r0, [r0] add r1, r5, #0x38 mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi mov r0, #1 strb r0, [r5, #0x3c] b _021276a0 @@ -9747,20 +9747,20 @@ _02127548: cmp r0, #0 cmpne r0, #1 bne _021275cc - ldr r0, _021276b0 ; =data_027e0e60 + ldr r0, _021276b0 ; =gMapManager mov r2, r4 ldr r0, [r0] add r1, r5, #0x18 mov r3, #2 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii b _021276a0 _021275cc: - ldr r0, _021276b0 ; =data_027e0e60 + ldr r0, _021276b0 ; =gMapManager mov r2, r4 ldr r0, [r0] add r1, r5, #0x18 mov r3, #1 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii b _021276a0 _021275e8: ldrb r1, [r5, #0x7f] @@ -9796,19 +9796,19 @@ _02127644: mov r0, r5 mov r2, r1 bl func_ov00_0208ba08 - ldr r0, _021276b0 ; =data_027e0e60 + ldr r0, _021276b0 ; =gMapManager ldrsh r1, [r5, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei _02127674: mov r1, #0 - ldr r0, _021276b0 ; =data_027e0e60 + ldr r0, _021276b0 ; =gMapManager strb r1, [r5, #0x3c] ldr r0, [r0] add r1, r5, #0x38 mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi mov r0, #0 strh r0, [r5, #0x7a] mov r0, #0x1000 @@ -9820,7 +9820,7 @@ _021276a0: .align 2, 0 arm_func_end func_ov14_02127188 _021276ac: .word gAdventureFlags -_021276b0: .word data_027e0e60 +_021276b0: .word gMapManager _021276b4: .word data_027e0ffc _021276b8: .word 0x000001b5 _021276bc: .word data_ov14_02153c38 @@ -9834,15 +9834,15 @@ func_ov14_021276c0: ; 0x021276c0 .global func_ov14_021276c4 arm_func_start func_ov14_021276c4 func_ov14_021276c4: ; 0x021276c4 - ldr r2, _021276d8 ; =data_027e0e60 - ldr ip, _021276dc ; =func_ov00_02084cc8 + ldr r2, _021276d8 ; =gMapManager + ldr ip, _021276dc ; =_ZN10MapManager18func_ov00_02084cc8Ei ldrsh r1, [r0, #0x34] ldr r0, [r2] bx ip .align 2, 0 arm_func_end func_ov14_021276c4 -_021276d8: .word data_027e0e60 -_021276dc: .word func_ov00_02084cc8 +_021276d8: .word gMapManager +_021276dc: .word _ZN10MapManager18func_ov00_02084cc8Ei .global func_ov14_021276e0 arm_func_start func_ov14_021276e0 @@ -10057,11 +10057,11 @@ func_ov14_02127984: ; 0x02127984 mov r2, r1 str r3, [r4, #0x64] bl func_ov00_0208ba08 - ldr r0, _021279c8 ; =data_027e0e60 + ldr r0, _021279c8 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei ldrb r0, [r4, #0x81] cmp r0, #0 ldrneb r0, [r4, #0x7c] @@ -10069,7 +10069,7 @@ func_ov14_02127984: ; 0x02127984 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_02127984 -_021279c8: .word data_027e0e60 +_021279c8: .word gMapManager .global func_ov14_021279cc arm_func_start func_ov14_021279cc @@ -10244,7 +10244,7 @@ func_ov14_02127bb0: ; 0x02127bb0 cmp r11, r0 addge sp, sp, #8 ldmgeia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r4, _02127c5c ; =data_027e0e60 + ldr r4, _02127c5c ; =gMapManager add r5, sp, #4 _02127bfc: ldrb r7, [r10, #0x15] @@ -10258,7 +10258,7 @@ _02127c10: mov r2, r9 strb r6, [sp, #4] strb r7, [sp, #5] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrb r0, [r10, #0x15] add r7, r7, #1 add r0, r0, r8 @@ -10275,7 +10275,7 @@ _02127c3c: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov14_02127bb0 -_02127c5c: .word data_027e0e60 +_02127c5c: .word gMapManager .global func_ov14_02127c60 arm_func_start func_ov14_02127c60 @@ -10454,7 +10454,7 @@ func_ov14_02127df4: ; 0x02127df4 ldmneia sp!, {r3, pc} ldr r0, _02127e24 ; =gItemManager ldr r0, [r0] - bl _ZNK11ItemManager18func_ov00_020ae350Ev + bl _ZNK11ItemManager10GetNumKeysEv cmp r0, #0 movgt r0, #1 movle r0, #0 @@ -10474,7 +10474,7 @@ func_ov14_02127e28: ; 0x02127e28 ldmneia sp!, {r4, pc} ldr r0, _02127eb4 ; =gItemManager ldr r0, [r0] - bl _ZNK11ItemManager18func_ov00_020ae350Ev + bl _ZNK11ItemManager10GetNumKeysEv cmp r0, #0 mvnle r0, #0 ldmleia sp!, {r4, pc} @@ -10521,15 +10521,15 @@ func_ov14_02127eb8: ; 0x02127eb8 bl _ZN14AdventureFlags3GetEj ldmia sp!, {r3, pc} _02127edc: - ldr r2, _02127ef4 ; =data_027e0e60 + ldr r2, _02127ef4 ; =gMapManager ldrsh r1, [r0, #0x34] ldr r0, [r2] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov14_02127eb8 _02127ef0: .word gAdventureFlags -_02127ef4: .word data_027e0e60 +_02127ef4: .word gMapManager .global func_ov14_02127ef8 arm_func_start func_ov14_02127ef8 @@ -13623,10 +13623,10 @@ func_ov14_0212a758: ; 0x0212a758 ldrh r0, [r4, #0x26] cmp r0, #1 bne _0212a8f4 - ldr r0, _0212a91c ; =data_027e0e60 + ldr r0, _0212a91c ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 ldr r3, [r0] @@ -13657,7 +13657,7 @@ _0212a8f4: arm_func_end func_ov14_0212a758 _0212a914: .word 0x000007fc _0212a918: .word 0x000002cd -_0212a91c: .word data_027e0e60 +_0212a91c: .word gMapManager .global func_ov14_0212a920 arm_func_start func_ov14_0212a920 @@ -13754,11 +13754,11 @@ _0212aa30: mov r0, r4 mov r2, r1 bl func_ov00_0208ba08 - ldr r0, _0212aaa4 ; =data_027e0e60 + ldr r0, _0212aaa4 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei ldr r0, [r4, #4] orr r0, r0, #4 str r0, [r4, #4] @@ -13771,7 +13771,7 @@ _0212aa8c: _0212aa98: .word data_027e0e58 _0212aa9c: .word 0x000001a1 _0212aaa0: .word data_027e0ffc -_0212aaa4: .word data_027e0e60 +_0212aaa4: .word gMapManager .global func_ov14_0212aaa8 arm_func_start func_ov14_0212aaa8 @@ -14033,21 +14033,21 @@ func_ov14_0212acdc: ; 0x0212acdc blx ip ldrb r1, [r4, #0x14] ldrb r3, [r4, #0x15] - ldr r0, _0212ae9c ; =data_027e0e60 + ldr r0, _0212ae9c ; =gMapManager add r2, r1, #1 strb r2, [sp, #4] ldr r0, [r0] add r1, sp, #4 strb r3, [sp, #5] mov r2, #1 - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrh r0, [r4, #0x26] cmp r0, #1 bne _0212ae78 - ldr r0, _0212ae9c ; =data_027e0e60 + ldr r0, _0212ae9c ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 ldr r3, [r0] @@ -14077,7 +14077,7 @@ _0212ae78: .align 2, 0 arm_func_end func_ov14_0212acdc _0212ae98: .word 0x0000059a -_0212ae9c: .word data_027e0e60 +_0212ae9c: .word gMapManager .global func_ov14_0212aea0 arm_func_start func_ov14_0212aea0 @@ -14162,11 +14162,11 @@ _0212af98: mov r0, r4 mov r2, r1 bl func_ov00_0208ba08 - ldr r0, _0212b00c ; =data_027e0e60 + ldr r0, _0212b00c ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei ldr r0, [r4, #4] orr r0, r0, #4 str r0, [r4, #4] @@ -14179,7 +14179,7 @@ _0212aff4: _0212b000: .word data_027e0e58 _0212b004: .word 0x000001a1 _0212b008: .word data_027e0ffc -_0212b00c: .word data_027e0e60 +_0212b00c: .word gMapManager .global func_ov14_0212b010 arm_func_start func_ov14_0212b010 @@ -14243,31 +14243,31 @@ func_ov14_0212b0c0: ; 0x0212b0c0 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldrh r4, [r6, #0x28] - ldr r0, _0212b124 ; =data_027e0e60 + ldr r0, _0212b124 ; =gMapManager ldrh r5, [r6, #0x2a] ldr r0, [r0] mov r1, r4 - bl func_ov00_020823d4 - ldr r1, _0212b124 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823d4Ei + ldr r1, _0212b124 ; =gMapManager str r0, [r6, #0xcc] ldr r0, [r1] mov r1, r4 - bl func_ov00_020823e4 - ldr r1, _0212b124 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823e4Ei + ldr r1, _0212b124 ; =gMapManager str r0, [r6, #0xd0] ldr r0, [r1] mov r1, r5 - bl func_ov00_020823d4 - ldr r1, _0212b124 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823d4Ei + ldr r1, _0212b124 ; =gMapManager str r0, [r6, #0xd4] ldr r0, [r1] mov r1, r5 - bl func_ov00_020823e4 + bl _ZN10MapManager18func_ov00_020823e4Ei str r0, [r6, #0xd8] ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov14_0212b0c0 -_0212b124: .word data_027e0e60 +_0212b124: .word gMapManager .global func_ov14_0212b128 arm_func_start func_ov14_0212b128 @@ -14290,9 +14290,9 @@ func_ov14_0212b128: ; 0x0212b128 mov r0, r5 ldr r1, _0212b1f4 ; =data_ov14_02153cd4 bl func_0201933c - ldr r0, _0212b1f8 ; =data_027e0e60 + ldr r0, _0212b1f8 ; =gMapManager ldr r0, [r0] - bl func_ov00_020823f4 + bl _ZN10MapManager16MapData_vfunc_b4Ev mov r4, r0 mov r0, r5 mov r1, r4 @@ -14326,7 +14326,7 @@ _0212b1e8: .word data_ov14_02153c98 _0212b1ec: .word data_ov14_02153cac _0212b1f0: .word data_ov14_02153cc0 _0212b1f4: .word data_ov14_02153cd4 -_0212b1f8: .word data_027e0e60 +_0212b1f8: .word gMapManager .global func_ov14_0212b1fc arm_func_start func_ov14_0212b1fc @@ -14506,18 +14506,18 @@ func_ov14_0212b31c: ; 0x0212b31c strb r0, [r4, #0x3c] ldrb r2, [r4, #0x14] ldrb r3, [r4, #0x15] - ldr r0, _0212b4c0 ; =data_027e0e60 + ldr r0, _0212b4c0 ; =gMapManager add r2, r2, #1 strb r2, [sp, #4] ldr r0, [r0] add r1, sp, #4 mov r2, #1 strb r3, [sp, #5] - bl func_ov00_02082680 - ldr r0, _0212b4c0 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02082680Eii + ldr r0, _0212b4c0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 ldr r3, [r0] @@ -14538,7 +14538,7 @@ _0212b4a4: .align 2, 0 arm_func_end func_ov14_0212b31c _0212b4bc: .word 0x000002cd -_0212b4c0: .word data_027e0e60 +_0212b4c0: .word gMapManager .global func_ov14_0212b4c4 arm_func_start func_ov14_0212b4c4 @@ -14628,11 +14628,11 @@ _0212b5d8: mov r2, r1 strb r1, [r4, #0x3c] bl func_ov00_0208ba08 - ldr r0, _0212b650 ; =data_027e0e60 + ldr r0, _0212b650 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei ldr r0, _0212b654 ; =data_027e0f68 mov r1, #0x19 ldr r0, [r0] @@ -14653,7 +14653,7 @@ _0212b640: .word data_027e0e58 _0212b644: .word 0x000001a1 _0212b648: .word data_027e0ffc _0212b64c: .word 0x00000255 -_0212b650: .word data_027e0e60 +_0212b650: .word gMapManager _0212b654: .word data_027e0f68 .global func_ov14_0212b658 @@ -14893,7 +14893,7 @@ func_ov14_0212b81c: ; 0x0212b81c blx r4 mov r0, #1 mov r5, #0 - ldr r8, _0212b9c8 ; =data_027e0e60 + ldr r8, _0212b9c8 ; =gMapManager strb r0, [r7, #0x3c] add r10, sp, #4 mov r9, r0 @@ -14910,7 +14910,7 @@ _0212b97c: mov r2, r9 strb r3, [sp, #4] strb ip, [sp, #5] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii add r6, r6, #1 cmp r6, #2 blt _0212b97c @@ -14922,7 +14922,7 @@ _0212b97c: .align 2, 0 arm_func_end func_ov14_0212b81c _0212b9c4: .word 0x00000b34 -_0212b9c8: .word data_027e0e60 +_0212b9c8: .word gMapManager .global func_ov14_0212b9cc arm_func_start func_ov14_0212b9cc @@ -16230,11 +16230,11 @@ _0212c9ec: ; jump table _0212ca00: mov r2, #0 strh r2, [r3, #0x6c] - ldr r0, _0212ca70 ; =data_027e0e60 + ldr r0, _0212ca70 ; =gMapManager str r2, [r3, #0x68] ldr r0, [r0] add r1, r3, #0x38 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _0212ca68 _0212ca20: mov r0, #0 @@ -16251,19 +16251,19 @@ _0212ca38: b _0212ca68 _0212ca48: ldr r1, [r3, #4] - ldr r0, _0212ca70 ; =data_027e0e60 + ldr r0, _0212ca70 ; =gMapManager bic r1, r1, #1 str r1, [r3, #4] ldr r0, [r0] add r1, r3, #0x38 mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi _0212ca68: mov r0, #1 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov14_0212c9d4 -_0212ca70: .word data_027e0e60 +_0212ca70: .word gMapManager .global func_ov14_0212ca74 arm_func_start func_ov14_0212ca74 @@ -16646,13 +16646,13 @@ _0212cf24: ; jump table b _0212cfac ; case 3 _0212cf34: ldr r1, [r4, #4] - ldr r0, _0212cfb4 ; =data_027e0e60 + ldr r0, _0212cfb4 ; =gMapManager orr r1, r1, #4 str r1, [r4, #4] ldr r0, [r0] add r1, r4, #0x38 mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _0212cfac _0212cf58: ldr r0, _0212cfb8 ; =data_027e0ffc @@ -16669,11 +16669,11 @@ _0212cf58: str r0, [r4, #4] b _0212cfac _0212cf8c: - ldr r0, _0212cfb4 ; =data_027e0e60 + ldr r0, _0212cfb4 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldr r0, [r4, #4] bic r0, r0, #1 str r0, [r4, #4] @@ -16682,7 +16682,7 @@ _0212cfac: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0212cf0c -_0212cfb4: .word data_027e0e60 +_0212cfb4: .word gMapManager _0212cfb8: .word data_027e0ffc _0212cfbc: .word 0x000001f9 _0212cfc0: .word data_027e1038 @@ -18984,14 +18984,14 @@ func_ov14_0212eca8: ; 0x0212eca8 sub sp, sp, #0x10 mov r4, r0 ldr r1, [r4, #4] - ldr r0, _0212ecf0 ; =data_027e0e60 + ldr r0, _0212ecf0 ; =gMapManager orr r1, r1, #0x200 str r1, [r4, #4] ldr r0, [r0] add r2, sp, #0 add r3, sp, #4 add r1, r4, #0x18 - bl func_ov00_02083f80 + bl _ZN10MapManager16MapData_vfunc_6cEv ldr r1, [sp] mov r0, r4 str r1, [r4, #0x1c] @@ -19000,7 +19000,7 @@ func_ov14_0212eca8: ; 0x0212eca8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0212eca8 -_0212ecf0: .word data_027e0e60 +_0212ecf0: .word gMapManager .global func_ov14_0212ecf4 arm_func_start func_ov14_0212ecf4 @@ -19125,12 +19125,12 @@ func_ov14_0212ee58: ; 0x0212ee58 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x70 mov r5, r0 - ldr r0, _0212f070 ; =data_027e0e60 + ldr r0, _0212f070 ; =gMapManager ldrb r1, [r5, #0x14] ldrb r2, [r5, #0x15] ldr r0, [r0] mov r4, #0 - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci mov r1, #0 cmp r0, #0x30 cmpne r0, #0x40 @@ -19258,7 +19258,7 @@ func_ov14_0212ee58: ; 0x0212ee58 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov14_0212ee58 -_0212f070: .word data_027e0e60 +_0212f070: .word gMapManager _0212f074: .word 0x00000fa5 _0212f078: .word data_ov00_020ec9d6 _0212f07c: .word data_ov00_020ec9d4 @@ -19487,13 +19487,13 @@ _0212f374: ldr r4, _0212f550 ; =0x544d4150 b _0212f458 _0212f380: - ldr r0, _0212f554 ; =data_027e0e60 + ldr r0, _0212f554 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084d18 + bl _ZN10MapManager17GetMapData_Unk_09Ev cmp r0, #0 addeq sp, sp, #0x58 ldmeqia sp!, {r4, r5, r6, pc} - ldr r0, _0212f554 ; =data_027e0e60 + ldr r0, _0212f554 ; =gMapManager ldrb r4, [r6, #0x15] ldrb r3, [r6, #0x14] ldr r0, [r0] @@ -19501,7 +19501,7 @@ _0212f380: mov r2, #6 strb r3, [sp, #4] strb r4, [sp, #5] - bl func_ov00_0208414c + bl _ZN10MapManager16MapData_vfunc_58Ev cmp r0, #0 addne sp, sp, #0x58 ldmneia sp!, {r4, r5, r6, pc} @@ -19613,7 +19613,7 @@ _0212f544: .word 0x52555059 _0212f548: .word 0x4e4b4559 _0212f54c: .word 0x464f5243 _0212f550: .word 0x544d4150 -_0212f554: .word data_027e0e60 +_0212f554: .word gMapManager _0212f558: .word data_027e0764 _0212f55c: .word 0x48415254 _0212f560: .word 0x00000666 @@ -19961,7 +19961,7 @@ _0212f9fc: add r0, r0, #1 cmp r0, #0 ble _0212fab4 - ldr r5, _0212fb20 ; =data_027e0e60 + ldr r5, _0212fb20 ; =gMapManager mov r11, #1 add r6, sp, #4 add r7, sp, #0x24 @@ -19985,7 +19985,7 @@ _0212fa20: mov r0, r10 mov r2, r6 ldrsh r3, [r4, #0xc] - bl func_ov00_020828c0 + bl _ZN10MapManager16MapData_vfunc_7cEv cmp r0, #0 beq _0212faa0 ldrh r0, [r4, #0x24] @@ -19995,7 +19995,7 @@ _0212fa20: bne _0212faa0 ldr r0, [r5] mov r1, r6 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 strneb r11, [r0, #0xa9] _0212faa0: @@ -20037,7 +20037,7 @@ _0212fb04: arm_func_end func_ov14_0212f7b0 _0212fb18: .word 0x00001333 _0212fb1c: .word data_027e0d38 -_0212fb20: .word data_027e0e60 +_0212fb20: .word gMapManager _0212fb24: .word 0x00004e20 .global func_ov14_0212fb28 @@ -20117,13 +20117,13 @@ _0212fb88: add r1, r7, r7, lsl #2 bl func_02002c14 ldrb r3, [r5, #0x14] - ldr r2, _0213011c ; =data_027e0e60 + ldr r2, _0213011c ; =gMapManager add r1, sp, #0xe add r3, r0, r3 ldr r0, [r2] strb r3, [sp, #0xe] strb r6, [sp, #0xf] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r6, r0 beq _0212fd7c ldr r1, [r0] @@ -20182,13 +20182,13 @@ _0212fc6c: add r1, r7, r7, lsl #2 bl func_02002c14 ldrb r3, [r5, #0x14] - ldr r2, _0213011c ; =data_027e0e60 + ldr r2, _0213011c ; =gMapManager add r1, sp, #0xc add r3, r0, r3 ldr r0, [r2] strb r3, [sp, #0xc] strb r6, [sp, #0xd] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r6, r0 beq _0212fd7c ldr r1, [r0] @@ -20490,7 +20490,7 @@ _0213010c: _02130114: .word 0x0000ffff .endif _02130118: .word 0x66666667 -_0213011c: .word data_027e0e60 +_0213011c: .word gMapManager _02130120: .word data_027e0ffc _02130124: .word data_027e0f64 _02130128: .word data_027e0e58 @@ -20539,10 +20539,10 @@ _02130198: ldrb r0, [r6, #0xa8] cmp r0, #0 beq _021304ac - ldr r0, _021304bc ; =data_027e0e60 + ldr r0, _021304bc ; =gMapManager ldr r1, [r6, #0x6c] ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej mvn r2, #0 add r1, sp, #0x1c mov r0, r6 @@ -20585,12 +20585,12 @@ _02130268: ldrb r0, [r6, #0xaa] cmp r0, #0 beq _02130290 - ldr r0, _021304bc ; =data_027e0e60 + ldr r0, _021304bc ; =gMapManager add r1, sp, #0x1c ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii str r0, [r6, #0x6c] _02130290: add r0, sp, #0xd8 @@ -20640,10 +20640,10 @@ _02130318: ldrb r0, [r6, #0xa8] cmp r0, #0 beq _021304ac - ldr r0, _021304bc ; =data_027e0e60 + ldr r0, _021304bc ; =gMapManager ldr r1, [r6, #0x6c] ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej mvn r2, #0 add r1, sp, #0x10 mov r0, r6 @@ -20679,12 +20679,12 @@ _021303c0: ldrb r0, [r6, #0xab] cmp r0, #0 beq _021303e8 - ldr r0, _021304bc ; =data_027e0e60 + ldr r0, _021304bc ; =gMapManager add r1, sp, #0x10 ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii str r0, [r6, #0x6c] _021303e8: add r0, sp, #0x28 @@ -20747,7 +20747,7 @@ _021304ac: .align 2, 0 arm_func_end func_ov14_0213012c _021304b8: .word data_027e0e58 -_021304bc: .word data_027e0e60 +_021304bc: .word gMapManager _021304c0: .word gAdventureFlags _021304c4: .word data_027e0ffc _021304c8: .word 0x000002a2 @@ -21175,19 +21175,19 @@ func_ov14_021309bc: ; 0x021309bc ldrb r0, [r10, #0x79] cmp r0, #0 bne _02130a70 - ldr r0, _02130be0 ; =data_027e0e60 + ldr r0, _02130be0 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208335c - ldr r1, _02130be0 ; =data_027e0e60 + bl _ZN10MapManager17Get_MapData_Unk28Ev + ldr r1, _02130be0 ; =gMapManager str r0, [sp] ldr r0, [r1] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv mov r8, r0 ldr r0, [sp] mov r11, #0 cmp r0, #0 ble _02130a70 - ldr r4, _02130be0 ; =data_027e0e60 + ldr r4, _02130be0 ; =gMapManager add r6, sp, #6 _02130a0c: mov r9, #0 @@ -21199,7 +21199,7 @@ _02130a1c: mov r1, r6 strb r7, [sp, #6] strb r9, [sp, #7] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _02130a54 ldr r1, [r0] @@ -21255,7 +21255,7 @@ _02130ae8: add r0, r8, r0 cmp r8, r0 bgt _02130b7c - ldr r9, _02130be0 ; =data_027e0e60 + ldr r9, _02130be0 ; =gMapManager and r6, r7, #0xff add r5, sp, #4 _02130b08: @@ -21263,7 +21263,7 @@ _02130b08: mov r1, r5 strb r6, [sp, #4] strb r8, [sp, #5] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r4, r0 cmpne r4, r10 beq _02130b64 @@ -21319,7 +21319,7 @@ _02130bc8: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov14_021309bc -_02130be0: .word data_027e0e60 +_02130be0: .word gMapManager _02130be4: .word data_ov14_0215aecc .global func_ov14_02130be8 @@ -21709,14 +21709,14 @@ _02131100: bl _ZN14AdventureFlags18func_Ov00_02097810Ei str r0, [r4, #0x70] mov r1, #0 - ldr r0, _02131410 ; =data_027e0e60 + ldr r0, _02131410 ; =gMapManager strb r1, [r4, #0x78] ldr r0, [r0] - bl func_ov00_0208335c - ldr r1, _02131410 ; =data_027e0e60 + bl _ZN10MapManager17Get_MapData_Unk28Ev + ldr r1, _02131410 ; =gMapManager str r0, [sp, #0xc] ldr r0, [r1] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv mov r10, r0 ldr r0, [sp, #0xc] mov r8, #0 @@ -21727,7 +21727,7 @@ _021311bc: mov r9, #0 cmp r10, #0 ble _02131230 - ldr r11, _02131410 ; =data_027e0e60 + ldr r11, _02131410 ; =gMapManager and r7, r8, #0xff _021311d0: ldrb r0, [r4, #0x14] @@ -21739,7 +21739,7 @@ _021311d0: mov r1, r6 strb r7, [sp, #0x12] strb r9, [sp, #0x13] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _02131224 ldr r1, [r0] @@ -21765,11 +21765,11 @@ _02131240: mvn r0, #0 cmp r1, r0 beq _0213125c - ldr r0, _02131410 ; =data_027e0e60 + ldr r0, _02131410 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej _0213125c: - ldr r0, _02131410 ; =data_027e0e60 + ldr r0, _02131410 ; =gMapManager ldr r5, [r4, #0x88] ldr r3, [r4, #0x84] ldr r2, [r4, #0x80] @@ -21780,7 +21780,7 @@ _0213125c: str r5, [sp, #0x24] mov r2, #1 mov r3, #0 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii str r0, [r4, #0x74] add r0, sp, #0x34 bl func_ov00_0209a508 @@ -21810,12 +21810,12 @@ _021312dc: bgt _02131348 and r8, r11, #0xff _021312f4: - ldr r0, _02131410 ; =data_027e0e60 + ldr r0, _02131410 ; =gMapManager mov r1, r7 ldr r0, [r0] strb r8, [sp, #0x10] strb r10, [sp, #0x11] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r6, r0 beq _02131330 ldr r1, [r0] @@ -21889,7 +21889,7 @@ _02131400: .word data_ov14_02157314 _02131404: .word data_027e0e58 _02131408: .word 0x0000025b _0213140c: .word gAdventureFlags -_02131410: .word data_027e0e60 +_02131410: .word gMapManager _02131414: .word 0xfffff333 .global func_ov14_02131418 @@ -21969,7 +21969,7 @@ func_ov14_021314b8: ; 0x021314b8 addne sp, sp, #0x10 ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} ldrb r0, [r10, #0x14] - ldr r1, _021316c0 ; =data_027e0e60 + ldr r1, _021316c0 ; =gMapManager str r0, [sp, #4] ldrb r0, [r10, #0x15] str r0, [sp] @@ -21979,30 +21979,30 @@ func_ov14_021314b8: ; 0x021314b8 str r1, [sp, #8] ldr r1, [sp] add r7, r1, #0xa - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev ldr r1, [sp, #8] cmp r1, r0 blt _02131520 - ldr r0, _021316c0 ; =data_027e0e60 + ldr r0, _021316c0 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev str r0, [sp, #8] _02131520: - ldr r0, _021316c0 ; =data_027e0e60 + ldr r0, _021316c0 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv cmp r7, r0 blt _02131544 - ldr r0, _021316c0 ; =data_027e0e60 + ldr r0, _021316c0 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv mov r7, r0 _02131544: ldr r8, [sp] mov r0, r8 cmp r0, r7 bge _021315cc - ldr r9, _021316c0 ; =data_027e0e60 + ldr r9, _021316c0 ; =gMapManager mov r4, #0 add r6, sp, #0xe _02131560: @@ -22011,7 +22011,7 @@ _02131560: mov r1, r6 strb r2, [sp, #0xe] strb r8, [sp, #0xf] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev mov r5, r0 cmp r5, r10 beq _021315c0 @@ -22058,12 +22058,12 @@ _021315f4: ldr r0, [sp, #4] and r6, r0, #0xff _02131620: - ldr r0, _021316c0 ; =data_027e0e60 + ldr r0, _021316c0 ; =gMapManager mov r1, r11 ldr r0, [r0] strb r6, [sp, #0xc] strb r9, [sp, #0xd] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev mov r5, r0 cmp r5, r10 beq _02131678 @@ -22104,7 +22104,7 @@ _021316b0: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov14_021314b8 -_021316c0: .word data_027e0e60 +_021316c0: .word gMapManager .global func_ov14_021316c4 arm_func_start func_ov14_021316c4 @@ -24728,10 +24728,10 @@ _021338b4: cmp r5, #2 add r6, r6, #0xc blo _021338b4 - ldr r0, _02133924 ; =data_027e0e60 + ldr r0, _02133924 ; =gMapManager add r1, r7, #0x6c ldr r0, [r0] - bl func_ov00_020839c4 + bl _ZN10MapManager18func_ov00_020839c4Ei ldr r3, _02133928 ; =func_ov14_02121cd8 add r0, r7, #0xac mov r1, #2 @@ -24751,7 +24751,7 @@ _021338b4: arm_func_end func_ov14_02133894 _0213391c: .word data_ov14_021576d4 _02133920: .word data_027e0e58 -_02133924: .word data_027e0e60 +_02133924: .word gMapManager _02133928: .word func_ov14_02121cd8 - 1 .global func_ov14_0213392c @@ -24773,10 +24773,10 @@ _0213394c: cmp r5, #2 add r6, r6, #0xc blo _0213394c - ldr r0, _021339b4 ; =data_027e0e60 + ldr r0, _021339b4 ; =gMapManager add r1, r7, #0x6c ldr r0, [r0] - bl func_ov00_020839c4 + bl _ZN10MapManager18func_ov00_020839c4Ei ldr r3, _021339b8 ; =func_ov14_02121cd8 add r0, r7, #0xac mov r1, #2 @@ -24794,7 +24794,7 @@ _0213394c: arm_func_end func_ov14_0213392c _021339ac: .word data_ov14_021576d4 _021339b0: .word data_027e0e58 -_021339b4: .word data_027e0e60 +_021339b4: .word gMapManager _021339b8: .word func_ov14_02121cd8 - 1 .global func_ov14_021339bc @@ -24883,7 +24883,7 @@ func_ov14_021339bc: ; 0x021339bc str r3, [sp, #0x28] bl func_01fffbec ldr r1, [sp, #0x20] - ldr r0, _02133c58 ; =data_027e0e60 + ldr r0, _02133c58 ; =gMapManager str r1, [r4, #0x74] ldr r2, [sp, #0x24] add r1, r4, #0x6c @@ -24891,7 +24891,7 @@ func_ov14_021339bc: ; 0x021339bc ldr r2, [sp, #0x28] str r2, [r4, #0x7c] ldr r0, [r0] - bl func_ov00_020839b4 + bl _ZN10MapManager18func_ov00_020839b4Ei mov r0, #0x270 str r0, [r4, #0xb0] mov r1, #4 @@ -24899,19 +24899,19 @@ func_ov14_021339bc: ; 0x021339bc add r0, r0, #1 str r0, [r4, #0xbc] str r1, [r4, #0xc0] - ldr r0, _02133c58 ; =data_027e0e60 + ldr r0, _02133c58 ; =gMapManager add r1, r4, #0x18 ldr r0, [r0] - bl func_ov00_02084ebc + bl _ZN10MapManager18func_ov00_02084ebcEi cmp r0, #0 movne r0, #1 moveq r0, #0 strb r0, [r4, #0x65] - ldr r0, _02133c58 ; =data_027e0e60 + ldr r0, _02133c58 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldrh r0, [r4, #0x28] cmp r0, #1 bne _02133bbc @@ -24973,7 +24973,7 @@ _02133c3c: arm_func_end func_ov14_021339bc _02133c50: .word 0x00002666 _02133c54: .word 0x000004cd -_02133c58: .word data_027e0e60 +_02133c58: .word gMapManager .global func_ov14_02133c5c arm_func_start func_ov14_02133c5c @@ -25723,10 +25723,10 @@ func_ov14_02134554: ; 0x02134554 ldr ip, [ip, #0x14] add r1, sp, #0x20 blx ip - ldr r0, _02134670 ; =data_027e0e60 + ldr r0, _02134670 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 ldr r3, [r0] @@ -25746,7 +25746,7 @@ _02134658: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_02134554 -_02134670: .word data_027e0e60 +_02134670: .word gMapManager .global func_ov14_02134674 arm_func_start func_ov14_02134674 @@ -25767,11 +25767,11 @@ func_ov14_02134678: ; 0x02134678 beq _021346b4 b _021347c0 _0213469c: - ldr r0, _021347cc ; =data_027e0e60 + ldr r0, _021347cc ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _021347c0 _021346b4: cmp r2, #0 @@ -25826,19 +25826,19 @@ _02134770: mov r1, #0 mov r2, #1 bl func_ov00_0208ba08 - ldr r0, _021347cc ; =data_027e0e60 + ldr r0, _021347cc ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei ldr r1, [r4, #4] - ldr r0, _021347cc ; =data_027e0e60 + ldr r0, _021347cc ; =gMapManager bic r1, r1, #0x10 str r1, [r4, #4] ldr r0, [r0] add r1, r4, #0x38 mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldr r0, [r4, #4] bic r0, r0, #1 str r0, [r4, #4] @@ -25848,7 +25848,7 @@ _021347c0: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov14_02134678 -_021347cc: .word data_027e0e60 +_021347cc: .word gMapManager _021347d0: .word data_027e0ffc _021347d4: .word 0x00000256 _021347d8: .word data_027e0e58 @@ -26007,14 +26007,14 @@ func_ov14_0213497c: ; 0x0213497c stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x24 mov r10, r0 - ldr r0, _02134be4 ; =data_027e0e60 + ldr r0, _02134be4 ; =gMapManager ldrb r3, [r10, #0x15] ldrb r2, [r10, #0x14] ldr r0, [r0] add r1, sp, #8 strb r2, [sp, #8] strb r3, [sp, #9] - bl func_ov00_02084088 + bl _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #0x14 bgt _021349d0 bge _021349d8 @@ -26044,21 +26044,21 @@ _021349e0: mov r0, #0 strh r0, [r10, #0xc] ldrb r1, [r10, #0x14] - ldr r0, _02134be4 ; =data_027e0e60 + ldr r0, _02134be4 ; =gMapManager ldrb r2, [r10, #0x15] ldr r0, [r0] sub r1, r1, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci b _02134a48 _02134a28: mov r0, #0x4000 strh r0, [r10, #0xc] ldrb r2, [r10, #0x15] - ldr r0, _02134be4 ; =data_027e0e60 + ldr r0, _02134be4 ; =gMapManager ldrb r1, [r10, #0x14] ldr r0, [r0] sub r2, r2, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci _02134a48: str r0, [r10, #0x1c] ldrh r5, [r10, #0x26] @@ -26104,7 +26104,7 @@ _02134ad4: cmp r0, r1 bge _02134b84 mov r6, #1 - ldr r4, _02134be4 ; =data_027e0e60 + ldr r4, _02134be4 ; =gMapManager add r7, sp, #6 add r5, sp, #4 mov r11, r6 @@ -26122,13 +26122,13 @@ _02134b1c: mov r2, r6 strb r8, [sp, #6] strb r9, [sp, #7] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r5 strb r8, [sp, #4] strb r9, [sp, #5] mov r2, r11 - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r1, [r10, #0x15] ldrb r0, [r10, #0x3a] add r9, r9, #1 @@ -26171,7 +26171,7 @@ _02134b84: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov14_0213497c -_02134be4: .word data_027e0e60 +_02134be4: .word gMapManager _02134be8: .word 0x0000099a .global func_ov14_02134bec @@ -27765,16 +27765,16 @@ _02135f4c: .word data_027e0fc8 func_ov14_02135f50: ; 0x02135f50 stmdb sp!, {r3, r4, lr} sub sp, sp, #4 - ldr r1, _02135fec ; =data_027e0e60 + ldr r1, _02135fec ; =gMapManager mov r2, r0 ldr r4, [r1] add r0, sp, #0 mov r1, r4 add r2, r2, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r4 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r4, r0 addeq sp, sp, #4 ldmeqia sp!, {r3, r4, pc} @@ -27807,21 +27807,21 @@ _02135fd4: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov14_02135f50 -_02135fec: .word data_027e0e60 +_02135fec: .word gMapManager .global func_ov14_02135ff0 arm_func_start func_ov14_02135ff0 func_ov14_02135ff0: ; 0x02135ff0 stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #4 - ldr r1, _02136074 ; =data_027e0e60 + ldr r1, _02136074 ; =gMapManager mov r2, r0 ldr r1, [r1] add r0, sp, #0 add r2, r2, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r0, [sp, #1] - ldr r5, _02136074 ; =data_027e0e60 + ldr r5, _02136074 ; =gMapManager mov r4, #0 sub r0, r0, #1 strb r0, [sp, #1] @@ -27833,7 +27833,7 @@ _0213602c: mov r1, r8 sub r2, r2, r4 strb r2, [sp] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r7, r0 beq _02136060 ldr r1, [r0] @@ -27849,7 +27849,7 @@ _02136060: ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov14_02135ff0 -_02136074: .word data_027e0e60 +_02136074: .word gMapManager .global func_ov14_02136078 arm_func_start func_ov14_02136078 @@ -27995,12 +27995,12 @@ _0213625c: bl func_ov14_0213650c cmp r5, #0 beq _021362d0 - ldr r1, _02136350 ; =data_027e0e60 + ldr r1, _02136350 ; =gMapManager add r0, sp, #0 ldr r1, [r1] add r2, r4, #0x48 - bl func_ov00_02083a1c - ldr r0, _02136350 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _02136350 ; =gMapManager ldrb r2, [sp] ldrb r1, [sp, #1] ldr r0, [r0] @@ -28009,7 +28009,7 @@ _0213625c: strb r1, [r3, #1] ldr r2, [r3] add r1, r4, #0x48 - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi ldr r1, [r4, #0x48] mov r0, r4 str r1, [r4, #0x198] @@ -28057,7 +28057,7 @@ _0213630c: .align 2, 0 arm_func_end func_ov14_0213618c _0213634c: .word data_027e0fc8 -_02136350: .word data_027e0e60 +_02136350: .word gMapManager .global func_ov14_02136354 arm_func_start func_ov14_02136354 @@ -28360,59 +28360,59 @@ func_ov14_021366e4: ; 0x021366e4 str r3, [sp, #0x1c] str ip, [sp, #0x20] bl func_01ff9bc4 - ldr r1, _021368c4 ; =data_027e0e60 + ldr r1, _021368c4 ; =gMapManager add r0, sp, #8 ldr r1, [r1] add r2, r4, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r1, [sp, #8] - ldr r0, _021368c4 ; =data_027e0e60 + ldr r0, _021368c4 ; =gMapManager ldrb r2, [sp, #9] sub r3, r1, #1 ldr r0, [r0] add r1, sp, #6 strb r3, [sp, #6] strb r2, [sp, #7] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x54] ldrb r1, [sp, #8] subeq r0, r0, #0x800 streq r0, [sp, #0x54] add r3, r1, #1 - ldr r0, _021368c4 ; =data_027e0e60 + ldr r0, _021368c4 ; =gMapManager ldrb r2, [sp, #9] ldr r0, [r0] add r1, sp, #4 strb r3, [sp, #4] strb r2, [sp, #5] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x48] ldrb r1, [sp, #9] addeq r0, r0, #0x800 streq r0, [sp, #0x48] sub r2, r1, #1 - ldr r0, _021368c4 ; =data_027e0e60 + ldr r0, _021368c4 ; =gMapManager ldrb r3, [sp, #8] ldr r0, [r0] add r1, sp, #2 strb r3, [sp, #2] strb r2, [sp, #3] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x5c] ldrb r1, [sp, #9] subeq r0, r0, #0x800 streq r0, [sp, #0x5c] add r2, r1, #1 - ldr r0, _021368c4 ; =data_027e0e60 + ldr r0, _021368c4 ; =gMapManager ldrb r3, [sp, #8] ldr r0, [r0] add r1, sp, #0 strb r3, [sp] strb r2, [sp, #1] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x50] add lr, sp, #0x30 @@ -28450,7 +28450,7 @@ _021368a8: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_021366e4 -_021368c4: .word data_027e0e60 +_021368c4: .word gMapManager .global func_ov14_021368c8 arm_func_start func_ov14_021368c8 @@ -28738,7 +28738,7 @@ _02136c04: ldr r1, _02136d08 ; =0x000004cd bl func_01fffbec ldr r1, [sp, #4] - ldr r0, _02136d0c ; =data_027e0e60 + ldr r0, _02136d0c ; =gMapManager str r1, [r4, #0x1d8] ldr r2, [sp, #8] add r1, r4, #0x1d0 @@ -28746,7 +28746,7 @@ _02136c04: ldr r2, [sp, #0xc] str r2, [r4, #0x1e0] ldr r0, [r0] - bl func_ov00_020839b4 + bl _ZN10MapManager18func_ov00_020839b4Ei ldr r0, _02136d10 ; =0x0000026e mov r1, #2 str r0, [r4, #0x214] @@ -28762,7 +28762,7 @@ _02136c04: _02136d00: .word 0xfffff666 _02136d04: .word data_02050f54 _02136d08: .word 0x000004cd -_02136d0c: .word data_027e0e60 +_02136d0c: .word gMapManager _02136d10: .word 0x0000026e .global func_ov14_02136d14 @@ -29006,7 +29006,7 @@ _02136fb8: mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] - ldr r0, _021373cc ; =data_027e0e60 + ldr r0, _021373cc ; =gMapManager add r1, sp, #0x84 ldr r0, [r0] add r2, sp, #0x6c @@ -29257,7 +29257,7 @@ _021372c8: arm_func_end func_ov14_02136e30 _021373c4: .word 0x0000ffff _021373c8: .word 0xfffff666 -_021373cc: .word data_027e0e60 +_021373cc: .word gMapManager _021373d0: .word data_ov14_02157ecc _021373d4: .word data_ov14_02157eb4 @@ -30799,7 +30799,7 @@ _021386e8: add ip, sp, #0x24 str r1, [sp, #0x4c] ldr r1, [r5, #0x54] - ldr r4, _021389d0 ; =data_027e0e60 + ldr r4, _021389d0 ; =gMapManager str r1, [sp, #0x38] ldr r2, [r5, #0x58] add r1, sp, #0x50 @@ -30826,10 +30826,10 @@ _021386e8: str r1, [sp, #0x20] cmp r0, #0 beq _02138810 - ldr r0, _021389d0 ; =data_027e0e60 + ldr r0, _021389d0 ; =gMapManager add r1, sp, #0xa0 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 bne _021387f0 add r0, sp, #0x24 @@ -30890,10 +30890,10 @@ _02138890: str r1, [sp, #0x1c] cmp r0, #0 beq _021388f8 - ldr r0, _021389d0 ; =data_027e0e60 + ldr r0, _021389d0 ; =gMapManager add r1, sp, #0x9e ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 bne _021388d8 add r0, sp, #0x24 @@ -30973,7 +30973,7 @@ _021389c0: arm_func_end func_ov14_02138568 _021389c8: .word data_027e0fc8 _021389cc: .word data_ov00_020e242c -_021389d0: .word data_027e0e60 +_021389d0: .word gMapManager _021389d4: .word data_027e0f6c .global func_ov14_021389d8 @@ -31105,7 +31105,7 @@ func_ov14_02138b18: ; 0x02138b18 addge sp, sp, #0x68 ldmgeia sp!, {r4, r5, r6, pc} ldr r1, [r6, #0x48] - ldr r0, _02138d50 ; =data_027e0e60 + ldr r0, _02138d50 ; =gMapManager str r1, [sp, #0x1c] ldr r2, [r6, #0x4c] ldr r1, [r0] @@ -31114,7 +31114,7 @@ func_ov14_02138b18: ; 0x02138b18 add r0, sp, #0xc add r2, sp, #0x1c str r3, [sp, #0x24] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #0xc] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -31125,7 +31125,7 @@ func_ov14_02138b18: ; 0x02138b18 cmp r4, #0x10 bne _02138c74 ldr r1, [r6, #0x48] - ldr r0, _02138d50 ; =data_027e0e60 + ldr r0, _02138d50 ; =gMapManager str r1, [sp, #0x10] ldr r1, [r6, #0x4c] ldr r0, [r0] @@ -31133,7 +31133,7 @@ func_ov14_02138b18: ; 0x02138b18 ldr r2, [r6, #0x50] add r1, sp, #0x10 str r2, [sp, #0x18] - bl func_ov00_02083f98 + bl _ZN10MapManager16MapData_vfunc_70Ev ldr r1, _02138d54 ; =0x0000ffff mov r2, r0 cmp r2, r1 @@ -31171,19 +31171,19 @@ _02138c20: cmp r3, #2 add r1, r1, #1 blo _02138c20 - ldr r1, _02138d50 ; =data_027e0e60 + ldr r1, _02138d50 ; =gMapManager add r0, sp, #4 ldr r5, [r1] add r2, r6, #0x48 mov r1, r5 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r4, sp, #0x54 add r2, sp, #4 mov r0, r5 mov r1, #0x1e mov r3, #0 str r4, [sp] - bl func_ov00_020828c0 + bl _ZN10MapManager16MapData_vfunc_7cEv add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, pc} _02138c74: @@ -31226,27 +31226,27 @@ _02138cb8: add r3, sp, #0x28 bl func_ov00_020c4048 _02138d08: - ldr r1, _02138d50 ; =data_027e0e60 + ldr r1, _02138d50 ; =gMapManager mov r0, r6 ldr r5, [r1] bl _ZN5Actor18func_ov00_020c1788Ev mov r4, r0 mov r0, r5 - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r4, r0 addne sp, sp, #0x68 ldmneia sp!, {r4, r5, r6, pc} add r0, r6, #0x100 - ldr r2, _02138d50 ; =data_027e0e60 + ldr r2, _02138d50 ; =gMapManager ldrsh r1, [r0, #0x70] ldr r0, [r2] mov r2, #1 - bl func_ov00_02084c7c + bl _ZN10MapManager18func_ov00_02084c7cEi add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov14_02138b18 -_02138d50: .word data_027e0e60 +_02138d50: .word gMapManager _02138d54: .word 0x0000ffff _02138d58: .word data_027e0f6c _02138d5c: .word 0x48415254 @@ -31286,25 +31286,25 @@ _02138dbc: .word data_027e0fcc arm_func_start func_ov14_02138dc0 func_ov14_02138dc0: ; 0x02138dc0 stmdb sp!, {r4, r5, r6, lr} - ldr r1, _02138e04 ; =data_027e0e60 + ldr r1, _02138e04 ; =gMapManager mov r6, r0 ldr r5, [r1] bl _ZN5Actor18func_ov00_020c1788Ev mov r4, r0 mov r0, r5 - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r4, r0 ldmneia sp!, {r4, r5, r6, pc} add r0, r6, #0x100 - ldr r2, _02138e04 ; =data_027e0e60 + ldr r2, _02138e04 ; =gMapManager ldrsh r1, [r0, #0x70] ldr r0, [r2] mov r2, #1 - bl func_ov00_02084c7c + bl _ZN10MapManager18func_ov00_02084c7cEi ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov14_02138dc0 -_02138e04: .word data_027e0e60 +_02138e04: .word gMapManager .global func_ov14_02138e08 arm_func_start func_ov14_02138e08 @@ -32369,7 +32369,7 @@ _02139af0: ldmia sp!, {r3, r4, pc} _02139b24: ldr r1, [r4, #0x48] - ldr r0, _02139b7c ; =data_027e0e60 + ldr r0, _02139b7c ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -32377,7 +32377,7 @@ _02139b24: ldr r2, [r4, #0x50] add r1, sp, #0 str r2, [sp, #8] - bl func_ov00_02083780 + bl _ZN10MapManager18func_ov00_02083780Ei ldr r2, _02139b80 ; =data_027e0fe4 mov r1, r0 ldr r0, [r2] @@ -32392,7 +32392,7 @@ _02139b24: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov14_02139a7c -_02139b7c: .word data_027e0e60 +_02139b7c: .word gMapManager _02139b80: .word data_027e0fe4 .global func_ov14_02139b84 @@ -33290,7 +33290,7 @@ _0213a68c: cmp r0, #0 beq _0213a7fc ldr r1, [r5, #0x48] - ldr r0, _0213a81c ; =data_027e0e60 + ldr r0, _0213a81c ; =gMapManager str r1, [sp, #0x38] ldr r2, [r5, #0x4c] ldr r1, [r0] @@ -33299,7 +33299,7 @@ _0213a68c: add r0, sp, #0 add r2, sp, #0x38 str r3, [sp, #0x40] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -33364,7 +33364,7 @@ _0213a80c: .word data_027e0f90 _0213a810: .word data_027e0fc8 _0213a814: .word data_ov00_020eec9c _0213a818: .word data_02050f54 -_0213a81c: .word data_027e0e60 +_0213a81c: .word gMapManager .global func_ov14_0213a820 arm_func_start func_ov14_0213a820 @@ -33672,7 +33672,7 @@ _0213ab94: cmp r0, #0 beq _0213ac98 ldr r1, [r5, #0x48] - ldr r0, _0213acb0 ; =data_027e0e60 + ldr r0, _0213acb0 ; =gMapManager str r1, [sp, #4] ldr r2, [r5, #0x4c] ldr r1, [r0] @@ -33681,7 +33681,7 @@ _0213ab94: add r0, sp, #0 add r2, sp, #4 str r3, [sp, #0xc] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -33745,7 +33745,7 @@ _0213ac98: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov14_0213aaec -_0213acb0: .word data_027e0e60 +_0213acb0: .word gMapManager _0213acb4: .word data_027e0fc8 .global func_ov14_0213acb8 diff --git a/asm/ov14/ov14_0213b778.inc b/asm/ov14/ov14_0213b778.inc index 0c4d8178..eaf3fe77 100644 --- a/asm/ov14/ov14_0213b778.inc +++ b/asm/ov14/ov14_0213b778.inc @@ -1,19 +1,55 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_54Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager16MapData_vfunc_b4Ev +.extern _ZN10MapManager17GetMapData_Unk_06Ev +.extern _ZN10MapManager17GetMapData_Unk_07Ev +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager17Get_MapData_Unk28Ev +.extern _ZN10MapManager17Get_MapData_Unk2aEv +.extern _ZN10MapManager18func_ov00_020823c4EPii +.extern _ZN10MapManager18func_ov00_020823d4Ei +.extern _ZN10MapManager18func_ov00_020823e4Ei +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_020826a0Eiii +.extern _ZN10MapManager18func_ov00_02082d08Ev +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_02083790Ei +.extern _ZN10MapManager18func_ov00_02083840Ei +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_020839b4Ei +.extern _ZN10MapManager18func_ov00_020839c4Ei +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083e34Ecci +.extern _ZN10MapManager18func_ov00_020840dcEv +.extern _ZN10MapManager18func_ov00_020843ecEPi +.extern _ZN10MapManager18func_ov00_020849c0Ev +.extern _ZN10MapManager18func_ov00_020849dcEv +.extern _ZN10MapManager18func_ov00_02084ac4Ej +.extern _ZN10MapManager18func_ov00_02084c7cEi +.extern _ZN10MapManager18func_ov00_02084c94Ei +.extern _ZN10MapManager18func_ov00_02084cb0Ei +.extern _ZN10MapManager18func_ov00_02084cc8Ei +.extern _ZN10MapManager20GetCourseData_Unk_86Ev +.extern _ZN10MapManager20GetCourseData_Unk_87Ev +.extern _ZN10MapManager8SpawnNPCEP5Vec3pii .extern _ZN10PlayerBase18func_ov00_020a7c00Ei .extern _ZN10PlayerBase9AddHealthEs .extern _ZN10PlayerBase9SetHealthEs .extern _ZN11ItemManager12GetEquipItemEi .extern _ZN11ItemManager12GetItemModelEj .extern _ZN11ItemManager13TickEquipItemEv -.extern _ZN11ItemManager15LoadFanfareItemEj +.extern _ZN11ItemManager15LoadFanfareItemEi .extern _ZN11ItemManager15SetEquippedItemEi .extern _ZN11ItemManager17EquipPreviousItemEv .extern _ZN11ItemManager18EquipItem_vfunc_38Ei -.extern _ZN11ItemManager18func_ov00_020ae648Ejjj -.extern _ZN11ItemManager8GiveItemEjjj -.extern _ZN11ItemManager9SetPotionEjj +.extern _ZN11ItemManager18PlayItemFanfareSfxEi +.extern _ZN11ItemManager8GiveItemEi +.extern _ZN11ItemManager9SetPotionEjh .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager13FindActorByIdEj .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j @@ -91,6 +127,8 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN9ActorTypeC1EjPFP5ActorvEPv +.extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern _ZNK11ItemManager10GetMaxAmmoEi @@ -124,7 +162,6 @@ .extern data_027e0d44 .extern data_027e0d78 .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -133,7 +170,6 @@ .extern data_027e0f94 .extern data_027e0fa0 .extern data_027e0fb8 -.extern data_027e0fbc .extern data_027e0fc0 .extern data_027e0fc4 .extern data_027e0fc8 @@ -289,8 +325,6 @@ .extern func_020386c4 .extern func_020386cc .extern func_0203d7e0 -.extern _ZN9ActorTypeC1EjPFP5ActorvEPv -.extern _ZN9ActorTypeD1Ev .extern func_0203eb0c .extern func_0203eba8 .extern func_0203ebc8 @@ -315,42 +349,6 @@ .extern func_ov00_0207c444 .extern func_ov00_0207c474 .extern func_ov00_02081f4c -.extern func_ov00_020823c4 -.extern func_ov00_020823d4 -.extern func_ov00_020823e4 -.extern func_ov00_020823f4 -.extern func_ov00_02082680 -.extern func_ov00_020826a0 -.extern func_ov00_02082d08 -.extern func_ov00_02083344 -.extern func_ov00_02083350 -.extern func_ov00_0208335c -.extern func_ov00_02083368 -.extern func_ov00_0208344c -.extern func_ov00_020836dc -.extern func_ov00_02083770 -.extern func_ov00_02083790 -.extern func_ov00_02083840 -.extern func_ov00_020838e8 -.extern func_ov00_020839b4 -.extern func_ov00_020839c4 -.extern func_ov00_02083a1c -.extern func_ov00_02083e34 -.extern func_ov00_02083ee0 -.extern func_ov00_02084088 -.extern func_ov00_020840c4 -.extern func_ov00_020840dc -.extern func_ov00_020843ec -.extern func_ov00_02084984 -.extern func_ov00_02084990 -.extern func_ov00_020849c0 -.extern func_ov00_020849dc -.extern func_ov00_02084a5c -.extern func_ov00_02084ac4 -.extern func_ov00_02084c7c -.extern func_ov00_02084c94 -.extern func_ov00_02084cb0 -.extern func_ov00_02084cc8 .extern func_ov00_0208726c .extern func_ov00_020876bc .extern func_ov00_0208819c @@ -851,7 +849,9 @@ .extern func_ov59_02198fc8 .extern func_ov59_02198fcc .extern gAdventureFlags +.extern gHealthManager .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern gPlayerAnimHandler .extern strcat diff --git a/asm/ov14/ov14_0213b778.s b/asm/ov14/ov14_0213b778.s index 1edeb224..c98d4af6 100644 --- a/asm/ov14/ov14_0213b778.s +++ b/asm/ov14/ov14_0213b778.s @@ -2764,10 +2764,10 @@ func_ov14_0213d684: ; 0x0213d684 ldreqsh r1, [r0, #0x2e] cmpeq r1, #2 bne _0213d6d4 - ldr r2, _0213d6dc ; =data_027e0e60 + ldr r2, _0213d6dc ; =gMapManager add r1, r0, #0x2c ldr r0, [r2] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _0213d6cc ldr r1, [r0] @@ -2784,7 +2784,7 @@ _0213d6d4: ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov14_0213d684 -_0213d6dc: .word data_027e0e60 +_0213d6dc: .word gMapManager .global func_ov14_0213d6e0 arm_func_start func_ov14_0213d6e0 @@ -2971,11 +2971,11 @@ func_ov14_0213d91c: ; 0x0213d91c cmp r0, #3 b _0213d990 _0213d944: - ldr r0, _0213d9a8 ; =data_027e0e60 + ldr r0, _0213d9a8 ; =gMapManager add r1, r6, #0x2c ldr r0, [r0] add r1, r1, r5 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r7, r0 beq _0213d990 ldr r1, [r0] @@ -2999,7 +2999,7 @@ _0213d990: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov14_0213d91c -_0213d9a8: .word data_027e0e60 +_0213d9a8: .word gMapManager .global func_ov14_0213d9ac arm_func_start func_ov14_0213d9ac @@ -3026,10 +3026,10 @@ _0213d9e4: beq _0213da84 b _0213daa4 _0213d9fc: - ldr r0, _0213dad4 ; =data_027e0e60 + ldr r0, _0213dad4 ; =gMapManager mov r1, r8 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _0213daa4 mov r0, r10 @@ -3085,7 +3085,7 @@ _0213dac0: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov14_0213d9ac -_0213dad4: .word data_027e0e60 +_0213dad4: .word gMapManager _0213dad8: .word data_027e0fe4 .global func_ov14_0213dadc @@ -3628,13 +3628,13 @@ func_ov14_0213e20c: ; 0x0213e20c mov r3, #0x1c mul r6, r1, r3 mov r8, r0 - ldr r0, _0213e324 ; =data_027e0e60 + ldr r0, _0213e324 ; =gMapManager add r1, r8, #0x2c ldr r0, [r0] add r1, r1, r6 mov r7, r2 mov r4, #0 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _0213e318 ldr r1, [r0] @@ -3698,7 +3698,7 @@ _0213e318: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov14_0213e20c -_0213e324: .word data_027e0e60 +_0213e324: .word gMapManager .global func_ov14_0213e328 arm_func_start func_ov14_0213e328 @@ -3736,10 +3736,10 @@ _0213e394: cmp r0, #2 movne r0, #0 bne _0213e3b4 - ldr r0, _0213e53c ; =data_027e0e60 + ldr r0, _0213e53c ; =gMapManager mov r1, r7 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev _0213e3b4: cmp r9, #0 ldrne r0, [r9, #0x88] @@ -3852,7 +3852,7 @@ _0213e52c: .align 2, 0 arm_func_end func_ov14_0213e328 _0213e538: .word data_027e0fe4 -_0213e53c: .word data_027e0e60 +_0213e53c: .word gMapManager _0213e540: .word data_027e0fd4 .global func_ov14_0213e544 @@ -4744,7 +4744,7 @@ func_ov14_0213ef2c: ; 0x0213ef2c add r0, r4, #0 add r0, #0x80 strb r1, [r0] - ldr r0, _0213ef5c ; =data_027e0fbc + ldr r0, _0213ef5c ; =gHealthManager ldr r1, [r0] mov r0, #2 ldrsh r0, [r1, r0] @@ -4754,7 +4754,7 @@ func_ov14_0213ef2c: ; 0x0213ef2c nop thumb_func_end func_ov14_0213ef2c _0213ef58: .word data_ov14_02159084 -_0213ef5c: .word data_027e0fbc +_0213ef5c: .word gHealthManager .global func_ov14_0213ef60 thumb_func_start func_ov14_0213ef60 @@ -4768,7 +4768,7 @@ func_ov14_0213ef60: ; 0x0213ef60 bl func_0202e7fc mov r0, #0xa ldrsh r1, [r4, r0] - ldr r0, _0213ef90 ; =data_027e0fbc + ldr r0, _0213ef90 ; =gHealthManager ldr r0, [r0] strh r1, [r0, #2] add r0, r4, #0 @@ -4780,7 +4780,7 @@ func_ov14_0213ef60: ; 0x0213ef60 _0213ef84: .word data_ov14_02159084 _0213ef88: .word data_ov14_0215b248 _0213ef8c: .word data_027e077c -_0213ef90: .word data_027e0fbc +_0213ef90: .word gHealthManager .global func_ov14_0213ef94 thumb_func_start func_ov14_0213ef94 @@ -4794,7 +4794,7 @@ func_ov14_0213ef94: ; 0x0213ef94 bl func_0202e7fc mov r0, #0xa ldrsh r1, [r4, r0] - ldr r0, _0213efcc ; =data_027e0fbc + ldr r0, _0213efcc ; =gHealthManager ldr r0, [r0] strh r1, [r0, #2] add r0, r4, #0 @@ -4808,7 +4808,7 @@ func_ov14_0213ef94: ; 0x0213ef94 _0213efc0: .word data_ov14_02159084 _0213efc4: .word data_ov14_0215b248 _0213efc8: .word data_027e077c -_0213efcc: .word data_027e0fbc +_0213efcc: .word gHealthManager .global func_ov14_0213efd0 thumb_func_start func_ov14_0213efd0 @@ -5124,10 +5124,10 @@ _0213f378: .word gItemManager arm_func_start func_ov14_0213f37c func_ov14_0213f37c: ; 0x0213f37c stmdb sp!, {r4, lr} - ldr r1, _0213f44c ; =data_027e0e60 + ldr r1, _0213f44c ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_02084984 + bl _ZN10MapManager17GetMapData_Unk_06Ev cmp r0, #0 ldreq r0, _0213f450 ; =data_027e077c ldreq r0, [r0] @@ -5178,7 +5178,7 @@ _0213f434: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0213f37c -_0213f44c: .word data_027e0e60 +_0213f44c: .word gMapManager _0213f450: .word data_027e077c _0213f454: .word gAdventureFlags _0213f458: .word data_027e0c68 @@ -5280,7 +5280,7 @@ _0213f516: ldr r0, _0213f598 ; =gItemManager mov r2, #0 ldr r0, [r0] - blx _ZN11ItemManager9SetPotionEjj + blx _ZN11ItemManager9SetPotionEjh b _0213f534 _0213f52c: add r1, r1, #1 @@ -5365,14 +5365,14 @@ func_ov14_0213f5dc: ; 0x0213f5dc stmdb sp!, {r4, lr} mov r4, r0 bl _ZN10PlayerBase9AddHealthEs - ldr r0, _0213f5fc ; =data_027e0fbc + ldr r0, _0213f5fc ; =gHealthManager ldrsh r1, [r4, #0xa] ldr r0, [r0] strh r1, [r0, #2] ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0213f5dc -_0213f5fc: .word data_027e0fbc +_0213f5fc: .word gHealthManager .global func_ov14_0213f600 arm_func_start func_ov14_0213f600 @@ -6976,7 +6976,7 @@ _021407e0: smull r0, r1, r2, r4 sub r4, r3, r0 ldr r1, _02141134 ; =data_027e0d38 - ldr r0, _02141138 ; =data_027e0e60 + ldr r0, _02141138 ; =gMapManager cmp r4, #0x28 movlt r8, #1 ldr r7, [r1] @@ -7035,7 +7035,7 @@ _021408e0: cmp r1, #0 beq _02140c4c mov r0, r11 - bl func_ov00_020849dc + bl _ZN10MapManager18func_ov00_020849dcEv cmp r0, #0 beq _021409d0 add r1, sp, #0x14 @@ -7091,7 +7091,7 @@ _02140960: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} _021409d0: mov r0, r11 - bl func_ov00_020849c0 + bl _ZN10MapManager18func_ov00_020849c0Ev cmp r0, #0 beq _02140bdc add r1, sp, #0x14 @@ -7261,7 +7261,7 @@ _02140c4c: cmp r0, #0 mov r0, r11 beq _02140db0 - bl func_ov00_020849dc + bl _ZN10MapManager18func_ov00_020849dcEv cmp r0, #0 beq _02140d2c cmp r8, #0 @@ -7316,7 +7316,7 @@ _02140cc8: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} _02140d2c: mov r0, r11 - bl func_ov00_020849c0 + bl _ZN10MapManager18func_ov00_020849c0Ev cmp r0, #0 addne sp, sp, #0x38 ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -7349,7 +7349,7 @@ _02140d2c: add sp, sp, #0x38 ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} _02140db0: - bl func_ov00_020849c0 + bl _ZN10MapManager18func_ov00_020849c0Ev cmp r0, #0 beq _02140fb0 cmp r8, #0 @@ -7542,7 +7542,7 @@ _0214107c: addeq sp, sp, #0x38 ldmeqia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} mov r0, r11 - bl func_ov00_02084990 + bl _ZN10MapManager17GetMapData_Unk_07Ev cmp r0, #0 add r3, sp, #0x10 mov r1, #0 @@ -7588,7 +7588,7 @@ _0214110c: arm_func_end func_ov14_021407b8 _02141130: .word 0x88888889 _02141134: .word data_027e0d38 -_02141138: .word data_027e0e60 +_02141138: .word gMapManager _0214113c: .word data_027e1054 _02141140: .word data_027e0d3c _02141144: .word data_02063e4c @@ -8082,7 +8082,7 @@ func_ov14_0214178c: ; 0x0214178c ldmgeia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} add r5, r10, #0xd0 ldr r1, [r5, r8] - ldr r0, _021418e8 ; =data_027e0e60 + ldr r0, _021418e8 ; =gMapManager str r1, [sp] ldr r1, [r7, r8] add r4, r10, #0xd8 @@ -8092,7 +8092,7 @@ func_ov14_0214178c: ; 0x0214178c str r2, [sp, #8] add r1, sp, #0 mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r7, r8] add r3, r0, #0xf6 add r0, r1, #0x800 @@ -8153,7 +8153,7 @@ _021418dc: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov14_0214178c -_021418e8: .word data_027e0e60 +_021418e8: .word gMapManager .global func_ov14_021418ec arm_func_start func_ov14_021418ec @@ -8181,14 +8181,14 @@ func_ov14_021418ec: ; 0x021418ec add r4, r8, #0xd4 str r1, [sp] ldr r1, [r4, r6] - ldr r0, _021419d4 ; =data_027e0e60 + ldr r0, _021419d4 ; =gMapManager str r1, [sp, #4] ldr r2, [r2, #0xd8] ldr r0, [r0] str r2, [sp, #8] add r1, sp, #0 mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r4, r6] add r3, r0, #0xf6 add r0, r2, #0x800 @@ -8219,7 +8219,7 @@ _021419c8: ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov14_021418ec -_021419d4: .word data_027e0e60 +_021419d4: .word gMapManager .global func_ov14_021419d8 arm_func_start func_ov14_021419d8 @@ -8469,11 +8469,11 @@ _02141cdc: rsb r0, r0, #0 strh r0, [r9, #0xc] ldrb r2, [r9, #0x15] - ldr r0, _02142040 ; =data_027e0e60 + ldr r0, _02142040 ; =gMapManager ldrb r1, [r9, #0x14] ldr r0, [r0] add r2, r2, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r9, #0x1c] mov r4, #1 b _02141d88 @@ -8481,11 +8481,11 @@ _02141d0c: mov r0, r4 strh r0, [r9, #0xc] ldrb r2, [r9, #0x15] - ldr r0, _02142040 ; =data_027e0e60 + ldr r0, _02142040 ; =gMapManager ldrb r1, [r9, #0x14] ldr r0, [r0] sub r2, r2, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r9, #0x1c] b _02141d88 _02141d34: @@ -8493,11 +8493,11 @@ _02141d34: rsb r0, r0, #0 strh r0, [r9, #0xc] ldrb r1, [r9, #0x14] - ldr r0, _02142040 ; =data_027e0e60 + ldr r0, _02142040 ; =gMapManager ldrb r2, [r9, #0x15] ldr r0, [r0] add r1, r1, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r9, #0x1c] mov r4, #1 b _02141d88 @@ -8505,11 +8505,11 @@ _02141d64: mov r0, #0x4000 strh r0, [r9, #0xc] ldrb r1, [r9, #0x14] - ldr r0, _02142040 ; =data_027e0e60 + ldr r0, _02142040 ; =gMapManager ldrb r2, [r9, #0x15] ldr r0, [r0] sub r1, r1, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r9, #0x1c] _02141d88: ldr r1, [r9, #4] @@ -8527,7 +8527,7 @@ _02141d88: cmp r1, r2 ble _02141f0c mov r5, #1 - ldr r4, _02142040 ; =data_027e0e60 + ldr r4, _02142040 ; =gMapManager add r6, sp, #0xe add r10, sp, #0xc mov r11, r5 @@ -8545,13 +8545,13 @@ _02141df0: mov r2, r5 strb r7, [sp, #0xe] strb r8, [sp, #0xf] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r10 strb r7, [sp, #0xc] strb r8, [sp, #0xd] mov r2, r11 - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r1, [r9, #0x15] ldrb r0, [r9, #0x39] sub r8, r8, #1 @@ -8576,7 +8576,7 @@ _02141e5c: cmp r1, r2 bge _02141f0c mov r5, #1 - ldr r4, _02142040 ; =data_027e0e60 + ldr r4, _02142040 ; =gMapManager add r6, sp, #0xa add r10, sp, #8 mov r11, r5 @@ -8594,13 +8594,13 @@ _02141ea4: mov r2, r5 strb r7, [sp, #0xa] strb r8, [sp, #0xb] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r10 strb r7, [sp, #8] strb r8, [sp, #9] mov r2, r11 - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r1, [r9, #0x15] ldrb r0, [r9, #0x39] add r8, r8, #1 @@ -8702,7 +8702,7 @@ _02142004: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov14_02141c60 -_02142040: .word data_027e0e60 +_02142040: .word gMapManager .global func_ov14_02142044 arm_func_start func_ov14_02142044 @@ -9133,16 +9133,16 @@ _02142634: ldr r1, [r5, #0x48] cmp r1, r0 beq _02142664 - ldr r0, _02142778 ; =data_027e0e60 + ldr r0, _02142778 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej _02142664: - ldr r0, _02142778 ; =data_027e0e60 + ldr r0, _02142778 ; =gMapManager mov r2, #0 ldr r0, [r0] mov r3, r2 add r1, r5, #0x58 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii str r0, [r5, #0x48] mov r0, #0 strb r0, [r5, #0x3b] @@ -9192,16 +9192,16 @@ _02142714: ldr r1, [r5, #0x48] cmp r1, r0 beq _02142744 - ldr r0, _02142778 ; =data_027e0e60 + ldr r0, _02142778 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej _02142744: - ldr r0, _02142778 ; =data_027e0e60 + ldr r0, _02142778 ; =gMapManager mov r2, #0 ldr r0, [r0] mov r3, r2 add r1, r5, #0x58 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii str r0, [r5, #0x48] mov r0, #0 strb r0, [r5, #0x3b] @@ -9212,7 +9212,7 @@ _02142768: .align 2, 0 arm_func_end func_ov14_021424b8 _02142774: .word gAdventureFlags -_02142778: .word data_027e0e60 +_02142778: .word gMapManager .global func_ov14_0214277c arm_func_start func_ov14_0214277c @@ -9255,14 +9255,14 @@ func_ov14_0214278c: ; 0x0214278c bl func_ov00_02078b40 cmp r0, #0 bne _02142818 - ldr r0, _02142908 ; =data_027e0e60 + ldr r0, _02142908 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083344 + bl _ZN10MapManager20GetCourseData_Unk_86Ev cmp r0, #1 bgt _02142814 - ldr r0, _02142908 ; =data_027e0e60 + ldr r0, _02142908 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083350 + bl _ZN10MapManager20GetCourseData_Unk_87Ev cmp r0, #1 ble _02142818 _02142814: @@ -9339,7 +9339,7 @@ _021428d8: .align 2, 0 arm_func_end func_ov14_0214278c _02142904: .word data_027e0d38 -_02142908: .word data_027e0e60 +_02142908: .word gMapManager .global func_ov14_0214290c arm_func_start func_ov14_0214290c @@ -14534,7 +14534,7 @@ _02146548: add lr, r5, #0x8c str r1, [sp, #0x28] ldr r1, [r5, #0x4c] - ldr ip, _02146604 ; =data_027e0e60 + ldr ip, _02146604 ; =gMapManager str r1, [sp, #0x2c] ldr r1, [r5, #0x50] add r2, sp, #0x28 @@ -14578,7 +14578,7 @@ _021465e4: arm_func_end func_ov14_021463e4 _021465fc: .word 0x00000b33 _02146600: .word data_ov14_0215b280 -_02146604: .word data_027e0e60 +_02146604: .word gMapManager .global func_ov14_02146608 arm_func_start func_ov14_02146608 @@ -15149,10 +15149,10 @@ func_ov14_02146d48: ; 0x02146d48 add sp, sp, #0x10 ldmia sp!, {r4, pc} _02146dd8: - ldr r0, _02146e20 ; =data_027e0e60 + ldr r0, _02146e20 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084c94 + bl _ZN10MapManager18func_ov00_02084c94Ei cmp r0, #0 ldrne r0, [r4, #4] bicne r0, r0, #1 @@ -15170,7 +15170,7 @@ _02146df8: arm_func_end func_ov14_02146d48 _02146e18: .word data_027e0f90 _02146e1c: .word 0x00000333 -_02146e20: .word data_027e0e60 +_02146e20: .word gMapManager .global func_ov14_02146e24 arm_func_start func_ov14_02146e24 @@ -15244,11 +15244,11 @@ _02146f08: add r0, r4, #0x38 mov r1, #0 bl func_ov00_02094884 - ldr r0, _02147094 ; =data_027e0e60 + ldr r0, _02147094 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _02147084 _02146f2c: cmp r2, #0 @@ -15265,11 +15265,11 @@ _02146f54: add r0, r4, #0x38 mov r1, #2 bl func_ov00_02094884 - ldr r0, _02147094 ; =data_027e0e60 + ldr r0, _02147094 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _02147084 _02146f78: bl func_ov14_02147548 @@ -15312,33 +15312,33 @@ _02146ff0: mov r1, r0 mov r0, r4 bl func_ov00_0208c4f8 - ldr r0, _02147094 ; =data_027e0e60 + ldr r0, _02147094 ; =gMapManager ldrb r5, [r4, #0x13] ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r0, r5 bne _02147040 - ldr r0, _02147094 ; =data_027e0e60 + ldr r0, _02147094 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084c7c + bl _ZN10MapManager18func_ov00_02084c7cEi _02147040: - ldr r0, _02147094 ; =data_027e0e60 + ldr r0, _02147094 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldr r0, [r4, #4] bic r0, r0, #1 str r0, [r4, #4] b _02147084 _02147064: - ldr r0, _02147094 ; =data_027e0e60 + ldr r0, _02147094 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldr r0, [r4, #4] bic r0, r0, #1 str r0, [r4, #4] @@ -15349,7 +15349,7 @@ _02147084: .align 2, 0 arm_func_end func_ov14_02146eb4 _02147090: .word data_027e0ffc -_02147094: .word data_027e0e60 +_02147094: .word gMapManager _02147098: .word data_027e0fe8 _0214709c: .word 0x54534248 @@ -16550,7 +16550,7 @@ func_ov14_02147ee4: ; 0x02147ee4 sub r2, r3, #2 mov ip, #0x47 mov r1, #0xff - ldr r0, _02147fb4 ; =data_027e0e60 + ldr r0, _02147fb4 ; =gMapManager str r2, [sp, #0xc] str ip, [sp] str r3, [sp, #4] @@ -16563,7 +16563,7 @@ func_ov14_02147ee4: ; 0x02147ee4 ldrh r1, [r4, #0x24] ldr r0, [r0] add r2, sp, #0 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02147fb8 ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -16578,7 +16578,7 @@ _02147f9c: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_02147ee4 -_02147fb4: .word data_027e0e60 +_02147fb4: .word gMapManager _02147fb8: .word data_027e0d38 .global func_ov14_02147fbc @@ -16919,26 +16919,26 @@ func_ov14_02148334: ; 0x02148334 func_ov14_02148364: ; 0x02148364 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x128 - ldr r2, _02148644 ; =data_027e0e60 + ldr r2, _02148644 ; =gMapManager mov r10, r0 ldr r0, [r2] mov r2, #0 mov r9, r1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r10, #0x4c] cmp r1, r0 addlt sp, sp, #0x128 movlt r0, #0 ldmltia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r1, _02148644 ; =data_027e0e60 + ldr r1, _02148644 ; =gMapManager add r0, sp, #0x14 ldr r1, [r1] mov r2, r9 - bl func_ov00_02083a1c - ldr r0, _02148644 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _02148644 ; =gMapManager add r1, sp, #0x14 ldr r0, [r0] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x5b bgt _021483e4 bge _021483ec @@ -16981,7 +16981,7 @@ _021483f8: add r2, r10, #0x100 str r3, [sp, #0x30] ldr r3, [r10, #0x50] - ldr r4, _02148644 ; =data_027e0e60 + ldr r4, _02148644 ; =gMapManager str r3, [sp, #0x34] str r1, [sp] ldr r3, [r10, #8] @@ -17109,7 +17109,7 @@ _02148638: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov14_02148364 -_02148644: .word data_027e0e60 +_02148644: .word gMapManager _02148648: .word 0x0000ffff _0214864c: .word data_ov14_02153ed8 _02148650: .word data_027e0fe4 @@ -17495,10 +17495,10 @@ _02148b34: str r0, [r4, #0x50] b _02148c38 _02148b50: - ldr r0, _021497e8 ; =data_027e0e60 + ldr r0, _021497e8 ; =gMapManager add r1, sp, #0x60 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldr r0, [sp, #0x60] str r0, [r4, #0x48] ldr r0, [sp, #0x64] @@ -17526,10 +17526,10 @@ _02148bb4: mov r1, #0 strb r1, [r4, #0x1b6] strb r1, [r4, #0x1b7] - ldr r0, _021497e8 ; =data_027e0e60 + ldr r0, _021497e8 ; =gMapManager add r1, sp, #0x54 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldr r0, [sp, #0x54] str r0, [r4, #0x48] ldr r0, [sp, #0x58] @@ -17540,10 +17540,10 @@ _02148bb4: _02148bec: mov r1, #0 strb r1, [r4, #0x1b7] - ldr r0, _021497e8 ; =data_027e0e60 + ldr r0, _021497e8 ; =gMapManager add r1, sp, #0x48 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldr r0, [sp, #0x48] str r0, [r4, #0x48] ldr r0, [sp, #0x4c] @@ -18373,7 +18373,7 @@ _021497dc: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov14_021488c0 -_021497e8: .word data_027e0e60 +_021497e8: .word gMapManager _021497ec: .word data_027e0f68 _021497f0: .word data_027e0fec _021497f4: .word gAdventureFlags @@ -18851,7 +18851,7 @@ _02149cec: ldr r4, [r4, #0x14] blx r4 ldr r1, [r5, #0x18] - ldr r0, _02149e8c ; =data_027e0e60 + ldr r0, _02149e8c ; =gMapManager sub r1, r1, #4 str r1, [r5, #0x18] ldr r1, [r5, #0x20] @@ -18859,7 +18859,7 @@ _02149cec: str r1, [r5, #0x20] ldrsh r1, [r5, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r5 mov r2, #1 @@ -18884,7 +18884,7 @@ _02149e7c: .word data_ov14_02153f28 _02149e80: .word data_ov14_02153f3c _02149e84: .word func_ov14_0214a4e4 _02149e88: .word 0x00001333 -_02149e8c: .word data_027e0e60 +_02149e8c: .word gMapManager .global func_ov14_02149e90 arm_func_start func_ov14_02149e90 @@ -19112,12 +19112,12 @@ _0214a194: mov r2, #0 str r2, [r6, #0x78] ldr r1, [r6, #4] - ldr r0, _0214a3b8 ; =data_027e0e60 + ldr r0, _0214a3b8 ; =gMapManager orr r1, r1, #0x14 str r1, [r6, #4] ldr r0, [r0] add r1, r6, #0x38 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _0214a3ac _0214a1bc: ldr r0, [r6, #0x74] @@ -19209,9 +19209,9 @@ _0214a2e4: cmp r0, #1 moveq r0, #0 streqb r0, [r6, #0x3c] - ldr r0, _0214a3b8 ; =data_027e0e60 + ldr r0, _0214a3b8 ; =gMapManager ldr r0, [r0] - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldr r1, [r6, #0x74] ldr r0, _0214a3cc ; =data_ov14_02153f04 add r4, r6, #0xd8 @@ -19247,18 +19247,18 @@ _0214a358: mov r2, #1 bl func_ov00_0208ba08 _0214a398: - ldr r0, _0214a3b8 ; =data_027e0e60 + ldr r0, _0214a3b8 ; =gMapManager ldrsh r1, [r6, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei _0214a3ac: mov r0, #1 add sp, sp, #0xc0 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov14_0214a160 -_0214a3b8: .word data_027e0e60 +_0214a3b8: .word gMapManager _0214a3bc: .word data_027e0ffc _0214a3c0: .word 0x0000030f _0214a3c4: .word gAdventureFlags @@ -20082,12 +20082,12 @@ _0214adf8: .word 0x534e574d func_ov14_0214adfc: ; 0x0214adfc stmdb sp!, {r3, r4, r5, lr} mov r5, r0 - ldr r0, _0214ae84 ; =data_027e0e60 + ldr r0, _0214ae84 ; =gMapManager ldrh r1, [r5, #0x20] ldr r0, [r0] mov r2, #0 ldrh r4, [r5, #0x24] - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0214ae7c ldrb r0, [r5, #0x2a] @@ -20119,7 +20119,7 @@ _0214ae7c: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov14_0214adfc -_0214ae84: .word data_027e0e60 +_0214ae84: .word gMapManager _0214ae88: .word gAdventureFlags _0214ae8c: .word data_027e0f90 @@ -21484,11 +21484,11 @@ func_ov14_0214c018: ; 0x0214c018 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _0214c0a8 ; =data_027e0e60 + ldr r0, _0214c0a8 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0214c09c ldrb r0, [r4, #0x2a] @@ -21512,7 +21512,7 @@ _0214c09c: .align 2, 0 arm_func_end func_ov14_0214c018 _0214c0a4: .word data_027e0f90 -_0214c0a8: .word data_027e0e60 +_0214c0a8: .word gMapManager _0214c0ac: .word data_ov00_020eed2c _0214c0b0: .word 0x00000bb8 @@ -21688,7 +21688,7 @@ func_ov14_0214c274: ; 0x0214c274 mov r2, r0 bl func_01ff9bc4 ldrb r1, [r4, #0x14] - ldr r0, _0214c2e4 ; =data_027e0e60 + ldr r0, _0214c2e4 ; =gMapManager ldrb ip, [r4, #0x15] add r3, r1, #1 ldr r0, [r0] @@ -21696,12 +21696,12 @@ func_ov14_0214c274: ; 0x0214c274 mov r2, #1 strb r3, [sp] strb ip, [sp, #1] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0214c274 -_0214c2e4: .word data_027e0e60 +_0214c2e4: .word gMapManager .global func_ov14_0214c2e8 arm_func_start func_ov14_0214c2e8 @@ -21723,31 +21723,31 @@ func_ov14_0214c30c: ; 0x0214c30c stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldrh r4, [r6, #0x28] - ldr r0, _0214c370 ; =data_027e0e60 + ldr r0, _0214c370 ; =gMapManager ldrh r5, [r6, #0x2a] ldr r0, [r0] mov r1, r4 - bl func_ov00_020823d4 - ldr r1, _0214c370 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823d4Ei + ldr r1, _0214c370 ; =gMapManager str r0, [r6, #0x94] ldr r0, [r1] mov r1, r4 - bl func_ov00_020823e4 - ldr r1, _0214c370 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823e4Ei + ldr r1, _0214c370 ; =gMapManager str r0, [r6, #0x98] ldr r0, [r1] mov r1, r5 - bl func_ov00_020823d4 - ldr r1, _0214c370 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823d4Ei + ldr r1, _0214c370 ; =gMapManager str r0, [r6, #0x9c] ldr r0, [r1] mov r1, r5 - bl func_ov00_020823e4 + bl _ZN10MapManager18func_ov00_020823e4Ei str r0, [r6, #0xa0] ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov14_0214c30c -_0214c370: .word data_027e0e60 +_0214c370: .word gMapManager .global func_ov14_0214c374 arm_func_start func_ov14_0214c374 @@ -21770,9 +21770,9 @@ func_ov14_0214c374: ; 0x0214c374 mov r0, r5 ldr r1, _0214c440 ; =data_ov14_02153fa0 bl func_0201933c - ldr r0, _0214c444 ; =data_027e0e60 + ldr r0, _0214c444 ; =gMapManager ldr r0, [r0] - bl func_ov00_020823f4 + bl _ZN10MapManager16MapData_vfunc_b4Ev mov r4, r0 mov r0, r5 mov r1, r4 @@ -21806,7 +21806,7 @@ _0214c434: .word data_ov14_02153f64 _0214c438: .word data_ov14_02153f78 _0214c43c: .word data_ov14_02153f8c _0214c440: .word data_ov14_02153fa0 -_0214c444: .word data_027e0e60 +_0214c444: .word gMapManager .global func_ov14_0214c448 arm_func_start func_ov14_0214c448 @@ -22077,7 +22077,7 @@ _0214c7d0: sub r0, r11, #0x8000 mov r7, #0 ldr r6, _0214c93c ; =data_02050f54 - ldr r4, _0214c940 ; =data_027e0e60 + ldr r4, _0214c940 ; =gMapManager strh r0, [sp, #0x1a] add r11, sp, #0x1c mov r5, r7 @@ -22152,7 +22152,7 @@ _0214c7ec: ldrb r1, [r10, #0x11] ldr r0, [r4] mov r2, r11 - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 bne _0214c92c _0214c910: @@ -22172,7 +22172,7 @@ _0214c92c: arm_func_end func_ov14_0214c678 _0214c938: .word data_027e0764 _0214c93c: .word data_02050f54 -_0214c940: .word data_027e0e60 +_0214c940: .word gMapManager _0214c944: .word 0x0000ffff .global func_ov14_0214c948 @@ -22430,16 +22430,16 @@ _0214cc34: .word gAdventureFlags .global func_ov14_0214cc38 arm_func_start func_ov14_0214cc38 func_ov14_0214cc38: ; 0x0214cc38 - ldr r2, _0214cc50 ; =data_027e0e60 - ldr ip, _0214cc54 ; =func_ov00_020836dc + ldr r2, _0214cc50 ; =gMapManager + ldr ip, _0214cc54 ; =_ZN10MapManager18func_ov00_020836dcEii ldrb r1, [r0, #0x160] ldr r0, [r2] mov r2, #0 bx ip .align 2, 0 arm_func_end func_ov14_0214cc38 -_0214cc50: .word data_027e0e60 -_0214cc54: .word func_ov00_020836dc +_0214cc50: .word gMapManager +_0214cc54: .word _ZN10MapManager18func_ov00_020836dcEii .global func_ov14_0214cc58 arm_func_start func_ov14_0214cc58 @@ -22865,10 +22865,10 @@ _0214d134: cmp r5, #2 add r6, r6, #0xc blo _0214d134 - ldr r0, _0214d1b4 ; =data_027e0e60 + ldr r0, _0214d1b4 ; =gMapManager add r1, r7, #0x74 ldr r0, [r0] - bl func_ov00_020839c4 + bl _ZN10MapManager18func_ov00_020839c4Ei add r0, r7, #0xd8 bl func_020350ac ldr r3, _0214d1b8 ; =func_ov14_02121cd8 @@ -22892,7 +22892,7 @@ _0214d134: arm_func_end func_ov14_0214d114 _0214d1ac: .word data_ov14_0215a1d8 _0214d1b0: .word data_027e0e58 -_0214d1b4: .word data_027e0e60 +_0214d1b4: .word gMapManager _0214d1b8: .word func_ov14_02121cd8 .global func_ov14_0214d1bc @@ -22914,10 +22914,10 @@ _0214d1dc: cmp r5, #2 add r6, r6, #0xc blo _0214d1dc - ldr r0, _0214d254 ; =data_027e0e60 + ldr r0, _0214d254 ; =gMapManager add r1, r7, #0x74 ldr r0, [r0] - bl func_ov00_020839c4 + bl _ZN10MapManager18func_ov00_020839c4Ei add r0, r7, #0xd8 bl func_020350ac ldr r3, _0214d258 ; =func_ov14_02121cd8 @@ -22939,7 +22939,7 @@ _0214d1dc: arm_func_end func_ov14_0214d1bc _0214d24c: .word data_ov14_0215a1d8 _0214d250: .word data_027e0e58 -_0214d254: .word data_027e0e60 +_0214d254: .word gMapManager _0214d258: .word func_ov14_02121cd8 .global func_ov14_0214d25c @@ -23173,7 +23173,7 @@ _0214d46c: ldr r1, _0214d6ac ; =0x000004cd bl func_01fffbec ldr r1, [sp, #0xc] - ldr r0, _0214d6b0 ; =data_027e0e60 + ldr r0, _0214d6b0 ; =gMapManager str r1, [r4, #0x7c] ldr r2, [sp, #0x10] add r1, r4, #0x74 @@ -23181,7 +23181,7 @@ _0214d46c: ldr r2, [sp, #0x14] str r2, [r4, #0x84] ldr r0, [r0] - bl func_ov00_020839b4 + bl _ZN10MapManager18func_ov00_020839b4Ei mov r0, r4 mov r1, #1 bl func_ov14_0214e134 @@ -23238,7 +23238,7 @@ _0214d6a0: .word 0xfffff666 _0214d6a4: .word data_027e0d38 _0214d6a8: .word data_02050f54 _0214d6ac: .word 0x000004cd -_0214d6b0: .word data_027e0e60 +_0214d6b0: .word gMapManager _0214d6b4: .word 0x0000026e .global func_ov14_0214d6b8 @@ -23757,7 +23757,7 @@ _0214ddcc: mov r1, #0 str r1, [sp, #0xc] str r1, [sp, #0x10] - ldr r0, _0214e124 ; =data_027e0e60 + ldr r0, _0214e124 ; =gMapManager add r1, sp, #0x98 ldr r0, [r0] add r2, sp, #0x74 @@ -23985,7 +23985,7 @@ _0214e01c: .align 2, 0 arm_func_end func_ov14_0214dc7c _0214e120: .word 0x0000ffff -_0214e124: .word data_027e0e60 +_0214e124: .word gMapManager _0214e128: .word 0x00000d9a _0214e12c: .word data_ov14_0215a1b8 _0214e130: .word data_ov14_0215a1a0 @@ -23995,15 +23995,15 @@ _0214e130: .word data_ov14_0215a1a0 func_ov14_0214e134: ; 0x0214e134 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0xc - ldr r2, _0214e268 ; =data_027e0e60 + ldr r2, _0214e268 ; =gMapManager mov r5, r0 ldr r0, [r2] mov r4, r1 - bl func_ov00_0208335c - ldr r1, _0214e268 ; =data_027e0e60 + bl _ZN10MapManager17Get_MapData_Unk28Ev + ldr r1, _0214e268 ; =gMapManager mov r6, r0 ldr r0, [r1] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv mov r7, r0 ldrb r0, [r5, #0x15] ldrb r9, [r5, #0x14] @@ -24047,7 +24047,7 @@ _0214e1e4: cmp r9, r0 addgt sp, sp, #0xc ldmgtia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r6, _0214e268 ; =data_027e0e60 + ldr r6, _0214e268 ; =gMapManager add r11, sp, #8 _0214e1fc: ldr r10, [sp] @@ -24059,7 +24059,7 @@ _0214e210: ldr r0, [r6] mov r1, r9 mov r2, r10 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci ldr r1, [r5, #0x1c] cmp r1, r0 bne _0214e244 @@ -24068,7 +24068,7 @@ _0214e210: mov r2, r4 strb r7, [sp, #8] strb r10, [sp, #9] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii _0214e244: add r10, r10, #1 cmp r10, r8 @@ -24082,7 +24082,7 @@ _0214e250: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov14_0214e134 -_0214e268: .word data_027e0e60 +_0214e268: .word gMapManager .global func_ov14_0214e26c arm_func_start func_ov14_0214e26c @@ -24247,10 +24247,10 @@ func_ov14_0214e38c: ; 0x0214e38c ldrh r0, [r4, #0x24] cmp r0, #0 bne _0214e4d0 - ldr r0, _0214e51c ; =data_027e0e60 + ldr r0, _0214e51c ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 ldr r3, [r0] @@ -24291,7 +24291,7 @@ _0214e504: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0214e38c -_0214e51c: .word data_027e0e60 +_0214e51c: .word gMapManager .global func_ov14_0214e520 arm_func_start func_ov14_0214e520 @@ -24328,11 +24328,11 @@ func_ov14_0214e550: ; 0x0214e550 beq _0214e58c b _0214e6b0 _0214e574: - ldr r0, _0214e6bc ; =data_027e0e60 + ldr r0, _0214e6bc ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _0214e6b0 _0214e58c: cmp r2, #0 @@ -24393,20 +24393,20 @@ _0214e654: ldrh r0, [r4, #0x24] cmp r0, #0 bne _0214e684 - ldr r0, _0214e6bc ; =data_027e0e60 + ldr r0, _0214e6bc ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei _0214e684: ldr r1, [r4, #4] - ldr r0, _0214e6bc ; =data_027e0e60 + ldr r0, _0214e6bc ; =gMapManager bic r1, r1, #0x10 str r1, [r4, #4] ldr r0, [r0] add r1, r4, #0x38 mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldr r0, [r4, #4] bic r0, r0, #1 str r0, [r4, #4] @@ -24416,7 +24416,7 @@ _0214e6b0: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov14_0214e550 -_0214e6bc: .word data_027e0e60 +_0214e6bc: .word gMapManager _0214e6c0: .word data_027e0e58 _0214e6c4: .word 0x000001a1 _0214e6c8: .word data_027e0ffc @@ -24666,26 +24666,26 @@ func_ov14_0214e8f0: ; 0x0214e8f0 blx ip mov r0, #0 strb r0, [r4, #0x3c] - ldr r0, _0214ea70 ; =data_027e0e60 + ldr r0, _0214ea70 ; =gMapManager ldrh r2, [r4, #0x28] ldr r0, [r0] add r1, r4, #0x88 - bl func_ov00_020823c4 + bl _ZN10MapManager18func_ov00_020823c4EPii cmp r0, #0 addeq sp, sp, #0x50 ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _0214ea70 ; =data_027e0e60 + ldr r0, _0214ea70 ; =gMapManager ldrh r2, [r4, #0x2a] ldr r0, [r0] add r1, r4, #0x80 - bl func_ov00_020823c4 + bl _ZN10MapManager18func_ov00_020823c4EPii cmp r0, #0 addeq sp, sp, #0x50 ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _0214ea70 ; =data_027e0e60 + ldr r0, _0214ea70 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 ldr r3, [r0] @@ -24705,7 +24705,7 @@ _0214ea58: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov14_0214e8f0 -_0214ea70: .word data_027e0e60 +_0214ea70: .word gMapManager .global func_ov14_0214ea74 arm_func_start func_ov14_0214ea74 @@ -24726,11 +24726,11 @@ func_ov14_0214ea78: ; 0x0214ea78 beq _0214eac0 b _0214ebb4 _0214ea9c: - ldr r0, _0214ebc0 ; =data_027e0e60 + ldr r0, _0214ebc0 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi mov r0, r4 mov r1, #1 bl func_ov14_0214ec40 @@ -24781,20 +24781,20 @@ _0214eac0: mov r1, #0x3c bl func_ov00_020ce8e4 _0214eb70: - ldr r0, _0214ebc0 ; =data_027e0e60 + ldr r0, _0214ebc0 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi mov r0, r4 mov r1, #0 mov r2, #1 bl func_ov00_0208ba08 - ldr r0, _0214ebc0 ; =data_027e0e60 + ldr r0, _0214ebc0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei mov r0, r4 mov r1, #0 bl func_ov14_0214ec40 @@ -24804,7 +24804,7 @@ _0214ebb4: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov14_0214ea78 -_0214ebc0: .word data_027e0e60 +_0214ebc0: .word gMapManager _0214ebc4: .word data_027e0ffc _0214ebc8: .word 0x00000256 _0214ebcc: .word data_027e0e58 @@ -25420,12 +25420,12 @@ _0214f3c0: ldrb r0, [r5, #0xb0] cmp r0, #0 beq _0214f41c - ldr r0, _0214f500 ; =data_027e0e60 + ldr r0, _0214f500 ; =gMapManager mov r2, #0 ldr r0, [r0] mov r3, r2 add r1, r5, #0x18 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii b _0214f4e8 _0214f41c: ldrsh r0, [r5, #0xc] @@ -25434,18 +25434,18 @@ _0214f41c: cmpne r0, #1 mov r2, #0 bne _0214f44c - ldr r0, _0214f500 ; =data_027e0e60 + ldr r0, _0214f500 ; =gMapManager add r1, r5, #0x18 ldr r0, [r0] mov r3, #2 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii b _0214f4e8 _0214f44c: - ldr r0, _0214f500 ; =data_027e0e60 + ldr r0, _0214f500 ; =gMapManager add r1, r5, #0x18 ldr r0, [r0] mov r3, #1 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii b _0214f4e8 _0214f464: bl func_ov14_02127188 @@ -25475,10 +25475,10 @@ _0214f4b4: mov r0, r5 mov r2, r1 bl func_ov00_0208ba08 - ldr r0, _0214f500 ; =data_027e0e60 + ldr r0, _0214f500 ; =gMapManager ldrh r1, [r5, #0x24] ldr r0, [r0] - bl func_ov00_02083840 + bl _ZN10MapManager18func_ov00_02083840Ei b _0214f4e8 _0214f4dc: mov r0, r5 @@ -25493,7 +25493,7 @@ _0214f4e8: _0214f4f4: .word data_ov14_02153fd4 _0214f4f8: .word gAdventureFlags _0214f4fc: .word data_ov00_020eec68 -_0214f500: .word data_027e0e60 +_0214f500: .word gMapManager .global func_ov14_0214f504 arm_func_start func_ov14_0214f504 @@ -25507,11 +25507,11 @@ func_ov14_0214f504: ; 0x0214f504 cmp r0, #0 movne r0, #1 ldmneia sp!, {r4, pc} - ldr r0, _0214f59c ; =data_027e0e60 + ldr r0, _0214f59c ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 moveq r0, #1 ldmeqia sp!, {r4, pc} @@ -25540,7 +25540,7 @@ _0214f594: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0214f504 -_0214f59c: .word data_027e0e60 +_0214f59c: .word gMapManager _0214f5a0: .word data_027e0fe4 .global func_ov14_0214f5a4 @@ -25563,10 +25563,10 @@ func_ov14_0214f5a4: ; 0x0214f5a4 mov r0, #1 ldmia sp!, {r4, pc} _0214f5e4: - ldr r0, _0214f660 ; =data_027e0e60 + ldr r0, _0214f660 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 movne r0, #1 ldmneia sp!, {r4, pc} @@ -25581,10 +25581,10 @@ _0214f600: cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, pc} - ldr r0, _0214f660 ; =data_027e0e60 + ldr r0, _0214f660 ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] - bl func_ov00_02083840 + bl _ZN10MapManager18func_ov00_02083840Ei mov r0, #1 ldmia sp!, {r4, pc} _0214f640: @@ -25598,7 +25598,7 @@ _0214f640: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0214f5a4 -_0214f660: .word data_027e0e60 +_0214f660: .word gMapManager _0214f664: .word data_027e0fe4 .global func_ov14_0214f668 @@ -25628,10 +25628,10 @@ func_ov14_0214f668: ; 0x0214f668 mov r0, #0 ldmia sp!, {r4, pc} _0214f6c4: - ldr r0, _0214f76c ; =data_027e0e60 + ldr r0, _0214f76c ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, pc} @@ -25656,18 +25656,18 @@ _0214f70c: moveq r0, #0 ldmeqia sp!, {r4, pc} _0214f728: - ldr r0, _0214f76c ; =data_027e0e60 + ldr r0, _0214f76c ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _0214f76c ; =data_027e0e60 + ldr r0, _0214f76c ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] - bl func_ov00_02083790 + bl _ZN10MapManager18func_ov00_02083790Ei mov r0, #1 ldmia sp!, {r4, pc} _0214f760: @@ -25676,7 +25676,7 @@ _0214f760: .align 2, 0 arm_func_end func_ov14_0214f668 _0214f768: .word data_027e077c -_0214f76c: .word data_027e0e60 +_0214f76c: .word gMapManager _0214f770: .word data_027e0fe4 .global func_ov14_0214f774 @@ -26154,16 +26154,16 @@ _0214fd64: .word data_ov00_020eec9c .global func_ov14_0214fd68 arm_func_start func_ov14_0214fd68 func_ov14_0214fd68: ; 0x0214fd68 - ldr r2, _0214fd80 ; =data_027e0e60 - ldr ip, _0214fd84 ; =func_ov00_020836dc + ldr r2, _0214fd80 ; =gMapManager + ldr ip, _0214fd84 ; =_ZN10MapManager18func_ov00_020836dcEii ldrb r1, [r0, #0x15c] ldr r0, [r2] mov r2, #0 bx ip .align 2, 0 arm_func_end func_ov14_0214fd68 -_0214fd80: .word data_027e0e60 -_0214fd84: .word func_ov00_020836dc +_0214fd80: .word gMapManager +_0214fd84: .word _ZN10MapManager18func_ov00_020836dcEii .global func_ov14_0214fd88 arm_func_start func_ov14_0214fd88 @@ -26287,11 +26287,11 @@ _0214fee0: mov r0, #0x4000 strh r0, [r4, #0xc] ldrb r2, [r4, #0x15] - ldr r0, _021500d0 ; =data_027e0e60 + ldr r0, _021500d0 ; =gMapManager ldrb r1, [r4, #0x14] ldr r0, [r0] sub r2, r2, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r4, #0x1c] mov r0, #0 b _0214ff34 @@ -26299,11 +26299,11 @@ _0214ff0c: mov r0, #0 strh r0, [r4, #0xc] ldrb r1, [r4, #0x14] - ldr r0, _021500d0 ; =data_027e0e60 + ldr r0, _021500d0 ; =gMapManager ldrb r2, [r4, #0x15] ldr r0, [r0] sub r1, r1, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r4, #0x1c] mov r0, #1 _0214ff34: @@ -26351,7 +26351,7 @@ _0214ffc0: cmp r0, r1 bge _02150070 mov r7, #1 - ldr r5, _021500d0 ; =data_027e0e60 + ldr r5, _021500d0 ; =gMapManager add r8, sp, #6 add r6, sp, #4 mov r11, r7 @@ -26369,13 +26369,13 @@ _02150008: mov r2, r7 strb r9, [sp, #6] strb r10, [sp, #7] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r5] mov r1, r6 strb r9, [sp, #4] strb r10, [sp, #5] mov r2, r11 - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r1, [r4, #0x15] ldrb r0, [r4, #0x39] add r10, r10, #1 @@ -26418,7 +26418,7 @@ _02150070: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov14_0214fe98 -_021500d0: .word data_027e0e60 +_021500d0: .word gMapManager _021500d4: .word 0x0000099a .global func_ov14_021500d8 @@ -26937,7 +26937,7 @@ _021506e6: ldr r0, _02150764 ; =gItemManager add r1, r4, #0 ldr r0, [r0] - bl _ZN11ItemManager8GiveItemEjjj + bl _ZN11ItemManager8GiveItemEi ldr r2, _02150760 ; =data_027e1058 add r0, r5, #0 ldr r2, [r2] @@ -26978,12 +26978,12 @@ _02150742: ldr r0, _02150764 ; =gItemManager add r1, r4, #0 ldr r0, [r0] - bl _ZN11ItemManager8GiveItemEjjj + bl _ZN11ItemManager8GiveItemEi _0215074c: ldr r0, _02150764 ; =gItemManager add r1, r4, #0 ldr r0, [r0] - bl _ZN11ItemManager15LoadFanfareItemEj + bl _ZN11ItemManager15LoadFanfareItemEi add r0, r5, #0 mov r1, #0 bl func_ov14_02150848 @@ -27197,7 +27197,7 @@ _021508ce: ldr r0, [r4, #8] blx func_ov03_020fc10c ldr r0, [r4, #8] - bl _ZN11ItemManager18func_ov00_020ae648Ejjj + bl _ZN11ItemManager18PlayItemFanfareSfxEi pop {r4, pc} .align 2, 0 thumb_func_end func_ov14_021508b8 @@ -27614,14 +27614,14 @@ _02150d70: mul r0, r1, r0 _02150d88: str r0, [r4, #0x68] - ldr r0, _02150e24 ; =data_027e0e60 + ldr r0, _02150e24 ; =gMapManager ldrb r3, [r4, #0x15] ldrb r2, [r4, #0x14] ldr r0, [r0] add r1, sp, #4 strb r2, [sp, #4] strb r3, [sp, #5] - bl func_ov00_02084088 + bl _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #0x14 ldreqsh r0, [r4, #0xc] cmpeq r0, #0 @@ -27656,7 +27656,7 @@ _02150e0c: .align 2, 0 arm_func_end func_ov14_02150bb4 _02150e20: .word 0x00001333 -_02150e24: .word data_027e0e60 +_02150e24: .word gMapManager _02150e28: .word data_027e0d38 .global func_ov14_02150e2c @@ -28191,7 +28191,7 @@ func_ov14_0215141c: ; 0x0215141c str r0, [r4, #0x84] str r0, [r4, #0x88] ldr r1, [r4, #0x7c] - ldr r0, _02151518 ; =data_027e0e60 + ldr r0, _02151518 ; =gMapManager str r1, [r4, #0x8c] ldr r2, [r4, #0x80] add r1, sp, #0xc @@ -28201,7 +28201,7 @@ func_ov14_0215141c: ; 0x0215141c ldr r2, [r4, #0x88] str r2, [r4, #0x98] ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldr r0, [sp, #0xc] str r0, [r4, #0x48] ldr r0, [sp, #0x10] @@ -28249,7 +28249,7 @@ _0215150c: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov14_0215141c -_02151518: .word data_027e0e60 +_02151518: .word gMapManager _0215151c: .word data_027e0d38 _02151520: .word data_027e0f68 _02151524: .word data_ov14_0215401c @@ -34356,7 +34356,8 @@ data_ov14_0215923c: ; 0x0215923c .byte 0x00, 0x00 .global data_ov14_02159244 data_ov14_02159244: ; 0x02159244 - .ascii "‘¬“x" + ; string "ι€ŸεΊ¦" + .byte 0x91, 0xac, 0x93, 0x78 .byte 0x00, 0x00, 0x00, 0x00 .global data_ov14_0215924c data_ov14_0215924c: ; 0x0215924c diff --git a/asm/ov15.inc b/asm/ov15.inc index 352eeb8b..769579e3 100644 --- a/asm/ov15.inc +++ b/asm/ov15.inc @@ -1,6 +1,43 @@ #pragma once .extern Approach_thunk .extern Divide +.extern GiveShipPart +.extern PlaySoundEffect +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p +.extern _ZN10MapManager17GetMapData_Unk_e8EP5Vec3p +.extern _ZN10MapManager18func_ov00_020823a4Ei +.extern _ZN10MapManager18func_ov00_020823b4Ev +.extern _ZN10MapManager18func_ov00_02082424Ev +.extern _ZN10MapManager18func_ov00_02082454Eii +.extern _ZN10MapManager18func_ov00_02082494Ei +.extern _ZN10MapManager18func_ov00_020824ccEi +.extern _ZN10MapManager18func_ov00_02082504Ev +.extern _ZN10MapManager18func_ov00_02082594Ev +.extern _ZN10MapManager18func_ov00_020825acEv +.extern _ZN10MapManager18func_ov00_02082650Eiii +.extern _ZN10MapManager18func_ov00_02082660Eii +.extern _ZN10MapManager18func_ov00_02082d08Ev +.extern _ZN10MapManager18func_ov00_02082d40Ev +.extern _ZN10MapManager18func_ov00_02083374Ev +.extern _ZN10MapManager18func_ov00_02083384Ev +.extern _ZN10MapManager18func_ov00_0208346cEP4AABB +.extern _ZN10MapManager18func_ov00_020836bcEjPi +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_020838c8Ei +.extern _ZN10MapManager18func_ov00_020838d8Ei +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_020846a4Ev +.extern _ZN10MapManager18func_ov00_020848b8Ev +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084cb0Ei +.extern _ZN10MapManager18func_ov00_02084cc8Ei +.extern _ZN10MapManager18func_ov00_02084d4cEiiP5Vec3p +.extern _ZN10MapManager18func_ov00_02085c60Eiiii +.extern _ZN10MapManager8SpawnNPCEP5Vec3pii .extern _ZN10PlayerBase10GetEquipIdEv .extern _ZN10PlayerBase18TeleportToEntranceEib .extern _ZN10PlayerBase18func_ov00_020a7c00Ei @@ -9,13 +46,13 @@ .extern _ZN10PlayerBase8TeleportEP5Vec3psibb .extern _ZN10PlayerBase8vfunc_04Ev .extern _ZN10PlayerBase9AddHealthEs -.extern _ZN11ItemManager10GiveRupeesEjj +.extern _ZN11ItemManager10GiveRupeesEsb .extern _ZN11ItemManager10SetUnk_09eEjt -.extern _ZN11ItemManager15LoadFanfareItemEj +.extern _ZN11ItemManager15LoadFanfareItemEi +.extern _ZN11ItemManager18PlayItemFanfareSfxEi .extern _ZN11ItemManager18func_ov00_020ad528Ev -.extern _ZN11ItemManager18func_ov00_020ae648Ejjj .extern _ZN11ItemManager19SetTreasureSalvagedEj -.extern _ZN11ItemManager8GiveItemEjjj +.extern _ZN11ItemManager8GiveItemEi .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager13FindActorByIdEj .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j @@ -106,6 +143,31 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN6Course14FindMapGridPosEP5Vec2bPS_j +.extern _ZN6Course14GetAdjacentMapEi +.extern _ZN6Course18func_ov00_0207ca78Eici +.extern _ZN6Course18func_ov00_0207ce20EiiPci +.extern _ZN6Course18func_ov00_0207d7bcEv +.extern _ZN6Course23IsAdjacentMapOnMainGridEi +.extern _ZN7MapBase14GetMapFilePathEPcii +.extern _ZN7MapBase18func_ov00_0207ddf8Eb +.extern _ZN7MapBase18func_ov00_0207dea0Eb +.extern _ZN7MapBase18func_ov00_02080140EP4Exit +.extern _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei +.extern _ZN7MapBase8vfunc_48Ev +.extern _ZN7MapBase8vfunc_58Ev +.extern _ZN7MapBase8vfunc_64Ev +.extern _ZN7MapBase8vfunc_94Ev +.extern _ZN7MapBase8vfunc_98Ev +.extern _ZN7MapBase8vfunc_a4Ev +.extern _ZN7MapBase8vfunc_a8Ev +.extern _ZN7MapBase8vfunc_acEv +.extern _ZN7MapBase8vfunc_bcEv +.extern _ZN7MapBase8vfunc_c0Ev +.extern _ZN7MapBase9SetBoundsEii +.extern _ZN7MapBaseD1Ev +.extern _ZN9ActorTypeC1EjPFP5ActorvEPv +.extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern _ZNK11ItemManager10GetUnk_098Ej @@ -149,7 +211,6 @@ .extern data_027e0e2c .extern data_027e0e58 .extern data_027e0e5c -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -162,7 +223,6 @@ .extern data_027e0fac .extern data_027e0fb0 .extern data_027e0fb8 -.extern data_027e0fbc .extern data_027e0fc4 .extern data_027e0fe0 .extern data_027e0fe4 @@ -377,8 +437,6 @@ .extern func_02036da8 .extern func_020370d0 .extern func_0203d7e0 -.extern _ZN9ActorTypeC1EjPFP5ActorvEPv -.extern _ZN9ActorTypeD1Ev .extern func_0203eba8 .extern func_0203ebc8 .extern func_02042f68 @@ -419,68 +477,10 @@ .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 func_ov00_0207da38 -.extern func_ov00_0207dce4 -.extern func_ov00_0207dda0 -.extern func_ov00_0207ddf8 -.extern func_ov00_0207dea0 -.extern func_ov00_0207e46c -.extern func_ov00_0207e498 -.extern func_ov00_0207e4b0 -.extern func_ov00_0207f33c -.extern func_ov00_0207f344 -.extern func_ov00_0207f348 -.extern func_ov00_0207f4a0 -.extern func_ov00_0207fce0 -.extern func_ov00_02080140 -.extern func_ov00_02080d74 -.extern func_ov00_02080d78 -.extern func_ov00_02080d7c .extern func_ov00_02081f4c .extern func_ov00_02081f50 .extern func_ov00_02081f58 .extern func_ov00_02081f6c -.extern func_ov00_020823a4 -.extern func_ov00_020823b4 -.extern func_ov00_02082424 -.extern func_ov00_02082454 -.extern func_ov00_02082494 -.extern func_ov00_020824cc -.extern func_ov00_02082504 -.extern func_ov00_02082594 -.extern func_ov00_020825ac -.extern func_ov00_02082650 -.extern func_ov00_02082660 -.extern func_ov00_02082d08 -.extern func_ov00_02082d40 -.extern func_ov00_02083374 -.extern func_ov00_02083384 -.extern func_ov00_0208340c -.extern func_ov00_0208342c -.extern func_ov00_0208346c -.extern func_ov00_020836bc -.extern func_ov00_020836dc -.extern func_ov00_02083770 -.extern func_ov00_020838c8 -.extern func_ov00_020838d8 -.extern func_ov00_020838e8 -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083ee0 -.extern func_ov00_020846a4 -.extern func_ov00_020848b8 -.extern func_ov00_02084a5c -.extern func_ov00_02084b38 -.extern func_ov00_02084cb0 -.extern func_ov00_02084cc8 -.extern func_ov00_02084d4c -.extern func_ov00_02085c60 .extern func_ov00_020872e8 .extern func_ov00_02087584 .extern func_ov00_020875f8 @@ -723,7 +723,6 @@ .extern func_ov00_020d70a4 .extern func_ov00_020d716c .extern func_ov00_020d71a0 -.extern func_ov00_020d73bc .extern func_ov00_020d7424 .extern func_ov00_020d74bc .extern func_ov00_020d77e4 @@ -892,7 +891,6 @@ .extern func_ov09_0211c6b4 .extern func_ov09_0211c724 .extern func_ov09_0211c808 -.extern func_ov09_0211ca20 .extern func_ov09_0211cac0 .extern func_ov09_0211cc74 .extern func_ov09_0211cc98 @@ -908,6 +906,8 @@ .extern func_ov09_0211d668 .extern func_ov09_0211d794 .extern gAdventureFlags +.extern gHealthManager .extern gItemManager +.extern gMapManager .extern strcat .extern strncpy diff --git a/asm/ov15.s b/asm/ov15.s index 4a4e1dc8..305cfb66 100644 --- a/asm/ov15.s +++ b/asm/ov15.s @@ -70,7 +70,7 @@ func_ov15_0211f69c: ; 0x0211f69c ands r1, r1, #0x3f addeq sp, sp, #0x3c ldmeqia sp!, {r4, r5, r6, r7, pc} - ldr r0, _0211f858 ; =data_027e0e60 + ldr r0, _0211f858 ; =gMapManager mov r7, #0x47 ldr r0, [r0] sub lr, r7, #0x49 @@ -86,7 +86,7 @@ func_ov15_0211f69c: ; 0x0211f69c strb r3, [sp, #0x37] strb r3, [sp, #0x38] strb r3, [sp, #0x39] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 addeq sp, sp, #0x3c moveq r0, #1 @@ -163,7 +163,7 @@ _0211f848: .align 2, 0 arm_func_end func_ov15_0211f69c _0211f854: .word data_027e0f6c -_0211f858: .word data_027e0e60 +_0211f858: .word gMapManager _0211f85c: .word data_02050f54 _0211f860: .word data_027e0d3c @@ -259,9 +259,9 @@ func_ov15_0211f954: ; 0x0211f954 bl func_ov15_0211fd64 bl func_ov15_0213ce4c bl func_ov15_0213d3d4 - ldr r0, _0211f9a4 ; =data_027e0e60 + ldr r0, _0211f9a4 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082594 + bl _ZN10MapManager18func_ov00_02082594Ev ldr r0, _0211f9a8 ; =data_027e0fe4 ldr r0, [r0] bl func_ov15_02184838 @@ -270,7 +270,7 @@ func_ov15_0211f954: ; 0x0211f954 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_0211f954 -_0211f9a4: .word data_027e0e60 +_0211f9a4: .word gMapManager _0211f9a8: .word data_027e0fe4 .global func_ov15_0211f9ac @@ -402,12 +402,12 @@ _0211fab4: mov r0, #8 str r0, [sp, #8] ldr r1, _0211fc38 ; =data_ov15_0218ec18 - ldr r0, _0211fc4c ; =data_027e0e60 + ldr r0, _0211fc4c ; =gMapManager str r1, [sp, #0xc] ldr r0, [r0] add r1, sp, #0x18 mov r3, r2 - bl func_ov00_02085c60 + bl _ZN10MapManager18func_ov00_02085c60Eiiii ldr r0, [r5, #0x2c] bl func_ov15_02121998 cmp r0, #0 @@ -427,9 +427,9 @@ _0211fbac: beq _0211fbe8 ldr r0, [r5, #0x2c] bl func_ov15_02121988 - ldr r0, _0211fc4c ; =data_027e0e60 + ldr r0, _0211fc4c ; =gMapManager ldr r0, [r0] - bl func_ov00_020825ac + bl _ZN10MapManager18func_ov00_020825acEv ldr r0, _0211fc54 ; =data_027e0fe4 ldr r0, [r0] bl func_ov15_021848dc @@ -462,7 +462,7 @@ _0211fc3c: .word func_ov15_0211fc58 _0211fc40: .word data_ov15_0218ec0c _0211fc44: .word data_027e0d78 _0211fc48: .word 0x0000ffff -_0211fc4c: .word data_027e0e60 +_0211fc4c: .word gMapManager _0211fc50: .word data_ov00_020eec9c _0211fc54: .word data_027e0fe4 @@ -717,7 +717,7 @@ _0211ff18: mov r2, #0x49 str r0, [sp, #0x3c] ldr r5, [r9, #0x3c] - ldr r0, _021205bc ; =data_027e0e60 + ldr r0, _021205bc ; =gMapManager str r5, [sp, #0x40] str r4, [sp] str r3, [sp, #4] @@ -727,7 +727,7 @@ _0211ff18: add r1, sp, #0x134 add r2, sp, #0x44 add r3, sp, #0x3c - bl func_ov00_02085c60 + bl _ZN10MapManager18func_ov00_02085c60Eiiii cmp r0, #0 beq _02120018 ldr r1, [sp, #0x194] @@ -876,7 +876,7 @@ _02120184: mov r1, #0x49 str r0, [sp, #0x2c] ldr r4, [r9, #0x3c] - ldr r0, _021205bc ; =data_027e0e60 + ldr r0, _021205bc ; =gMapManager str r4, [sp, #0x30] str r3, [sp] str r2, [sp, #4] @@ -886,7 +886,7 @@ _02120184: add r1, sp, #0xcc add r2, sp, #0x34 add r3, sp, #0x2c - bl func_ov00_02085c60 + bl _ZN10MapManager18func_ov00_02085c60Eiiii cmp r0, #0 beq _0212023c ldr r0, [sp, #0x12c] @@ -1039,7 +1039,7 @@ _02120354: mov r2, #0x49 str r1, [sp, #0x1c] ldr ip, [r9, #0x34] - ldr r1, _021205bc ; =data_027e0e60 + ldr r1, _021205bc ; =gMapManager str ip, [sp, #0x20] str r10, [sp] str r3, [sp, #4] @@ -1049,7 +1049,7 @@ _02120354: add r1, sp, #0x64 add r2, sp, #0x24 add r3, sp, #0x1c - bl func_ov00_02085c60 + bl _ZN10MapManager18func_ov00_02085c60Eiiii cmp r0, #0 beq _021204ac ldr r0, [sp, #0xc4] @@ -1129,7 +1129,7 @@ _021205ac: .word data_ov15_0218946c _021205b0: .word func_ov15_0211fc6c _021205b4: .word data_ov15_0218ec34 _021205b8: .word 0x0000ffff -_021205bc: .word data_027e0e60 +_021205bc: .word gMapManager _021205c0: .word data_ov15_02189420 _021205c4: .word data_027e0d3c _021205c8: .word data_027e0c38 @@ -2313,13 +2313,13 @@ _02121550: mov r1, #0x24 bl _ZNK11ItemManager7HasItemEi mov r5, #0 - ldr r1, _021216fc ; =data_027e0e60 + ldr r1, _021216fc ; =gMapManager mov r4, r0 ldr r0, [r1] mov r6, r5 mov r7, r5 mov r8, r5 - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r0, #3 addls pc, pc, r0, lsl #2 b _02121638 @@ -2408,7 +2408,7 @@ _021216ec: .word data_027e1054 _021216f0: .word data_027e0d3c _021216f4: .word data_ov15_02185b5c _021216f8: .word gItemManager -_021216fc: .word data_027e0e60 +_021216fc: .word gMapManager .global func_ov15_02121700 arm_func_start func_ov15_02121700 @@ -2501,11 +2501,11 @@ func_ov15_021217e4: ; 0x021217e4 mov r8, #0 bne _021218b0 ldrb r7, [r9, #0x12] - ldr r0, _02121970 ; =data_027e0e60 + ldr r0, _02121970 ; =gMapManager add r1, r7, #0xa6 ldr r0, [r0] add r9, r1, #0x50000 - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r0, #3 addls pc, pc, r0, lsl #2 b _02121940 @@ -2605,7 +2605,7 @@ _02121940: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov15_021217e4 -_02121970: .word data_027e0e60 +_02121970: .word gMapManager _02121974: .word data_027e0f7c _02121978: .word data_027e0fe4 _0212197c: .word 0x000500aa @@ -3597,14 +3597,14 @@ func_ov15_02122674: ; 0x02122674 ldr r3, [sp, #0xd8] ldr r2, [sp, #0xdc] ldr r1, [sp, #0xe0] - ldr r0, _02122da0 ; =data_027e0e60 + ldr r0, _02122da0 ; =gMapManager str r2, [sp, #0x50] str r3, [sp, #0x4c] str r1, [sp, #0x54] ldrh r1, [r4, #0x22] ldr r0, [r0] add r2, sp, #0x4c - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r0, #1 movne r0, #0 @@ -4047,7 +4047,7 @@ _02122d58: .align 2, 0 arm_func_end func_ov15_02122674 _02122d9c: .word data_027e0f94 -_02122da0: .word data_027e0e60 +_02122da0: .word gMapManager _02122da4: .word data_02050f54 _02122da8: .word data_027e0fe8 _02122dac: .word 0x42554949 @@ -4159,11 +4159,11 @@ _02122edc: cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r3, r4, r5, pc} - ldr r0, _021230c8 ; =data_027e0e60 + ldr r0, _021230c8 ; =gMapManager ldrh r1, [r5, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 addeq sp, sp, #0x18 ldmeqia sp!, {r3, r4, r5, pc} @@ -4260,11 +4260,11 @@ _0212307c: cmp r1, r0 addne sp, sp, #0x18 ldmneia sp!, {r3, r4, r5, pc} - ldr r0, _021230c8 ; =data_027e0e60 + ldr r0, _021230c8 ; =gMapManager ldrh r1, [r5, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r3, r4, r5, pc} @@ -4276,7 +4276,7 @@ _0212307c: arm_func_end func_ov15_02122e34 _021230c0: .word data_027e10a4 _021230c4: .word data_027e0d3c -_021230c8: .word data_027e0e60 +_021230c8: .word gMapManager _021230cc: .word data_027e0fe4 _021230d0: .word 0x53454b45 _021230d4: .word 0x464c5052 @@ -4459,7 +4459,7 @@ func_ov15_021232b4: ; 0x021232b4 str lr, [sp, #0x64] ldrh lr, [r0, #0x20] mov r3, #0xd - ldr r2, _02123460 ; =data_027e0e60 + ldr r2, _02123460 ; =gMapManager ldr ip, [ip, lr, lsl #2] str r5, [sp, #0x4c] str r5, [sp, #0x50] @@ -4523,7 +4523,7 @@ func_ov15_021232b4: ; 0x021232b4 _02123454: .word data_027e0f94 _02123458: .word 0x0000ffff _0212345c: .word data_ov15_02185b60 -_02123460: .word data_027e0e60 +_02123460: .word gMapManager _02123464: .word data_ov15_02189610 _02123468: .word data_027e0fe4 @@ -6170,7 +6170,7 @@ func_ov15_02124a40: ; 0x02124a40 movs r4, r0 beq _02124b9c ldr r1, [r10, #0x48] - ldr r0, _0212502c ; =data_027e0e60 + ldr r0, _0212502c ; =gMapManager str r1, [r10, #0x54] ldr r2, [r10, #0x4c] add r1, sp, #4 @@ -6185,7 +6185,7 @@ func_ov15_02124a40: ; 0x02124a40 str r3, [sp, #8] ldr r3, [r10, #0x50] str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r10, #0x2a8] ldrb r0, [r10, #0x118] cmp r0, #0 @@ -6561,7 +6561,7 @@ _02124ffc: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov15_02124a40 -_0212502c: .word data_027e0e60 +_0212502c: .word gMapManager _02125030: .word 0x00000733 _02125034: .word data_02050f54 _02125038: .word 0xfffffb33 @@ -6580,7 +6580,7 @@ func_ov15_0212504c: ; 0x0212504c add r3, sp, #0x14 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02125108 ; =data_027e0e60 + ldr r0, _02125108 ; =gMapManager ldr lr, [sp, #0x14] ldr ip, [sp, #0x18] ldr r3, [sp, #0x1c] @@ -6590,7 +6590,7 @@ func_ov15_0212504c: ; 0x0212504c str lr, [sp, #8] str ip, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] add r0, sp, #0x14 mov r1, #0xa00 @@ -6622,7 +6622,7 @@ func_ov15_0212504c: ; 0x0212504c ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_0212504c -_02125108: .word data_027e0e60 +_02125108: .word gMapManager _0212510c: .word data_027e0e58 _02125110: .word 0x000009ec _02125114: .word data_027e0ffc @@ -6637,7 +6637,7 @@ func_ov15_02125118: ; 0x02125118 add r3, sp, #0x14 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _021251d4 ; =data_027e0e60 + ldr r0, _021251d4 ; =gMapManager ldr lr, [sp, #0x14] ldr ip, [sp, #0x18] ldr r3, [sp, #0x1c] @@ -6647,7 +6647,7 @@ func_ov15_02125118: ; 0x02125118 str lr, [sp, #8] str ip, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] ldr r1, _021251d8 ; =0x00000333 add r0, sp, #0x14 @@ -6679,7 +6679,7 @@ func_ov15_02125118: ; 0x02125118 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_02125118 -_021251d4: .word data_027e0e60 +_021251d4: .word gMapManager _021251d8: .word 0x00000333 _021251dc: .word data_027e0e58 _021251e0: .word 0x00000666 @@ -7350,7 +7350,7 @@ _02125a88: ; jump table b _02125d4c ; case 7 _02125aa8: ldr r1, [r4, #0x48] - ldr r0, _02125dec ; =data_027e0e60 + ldr r0, _02125dec ; =gMapManager str r1, [sp, #0x14] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -7359,7 +7359,7 @@ _02125aa8: add r1, sp, #0x14 mov r2, #0 str r3, [sp, #0x1c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #4] ldrb r1, [r4, #0x2a4] cmp r1, #0 @@ -7496,7 +7496,7 @@ _02125ca8: b _02125d68 _02125cd0: ldr r1, [r4, #0x48] - ldr r0, _02125dec ; =data_027e0e60 + ldr r0, _02125dec ; =gMapManager str r1, [sp, #8] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -7505,7 +7505,7 @@ _02125cd0: add r1, sp, #8 mov r2, #0 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp] ldrb r1, [r4, #0x2a4] cmp r1, #1 @@ -7573,7 +7573,7 @@ _02125ddc: .word data_ov15_02185bc8 _02125de0: .word data_ov15_02185bc8 _02125de4: .word data_027e0ffc _02125de8: .word 0x000001dd -_02125dec: .word data_027e0e60 +_02125dec: .word gMapManager _02125df0: .word data_02050f54 _02125df4: .word 0x00000e39 _02125df8: .word 0x0000019a @@ -7856,11 +7856,11 @@ func_ov15_0212619c: ; 0x0212619c stmdb sp!, {r4, lr} ldr r1, _021261dc ; =data_ov15_02189990 mov r4, r0 - ldr r0, _021261e0 ; =data_027e0e60 + ldr r0, _021261e0 ; =gMapManager str r1, [r4] ldr r0, [r0] add r1, r4, #0xac - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei add r0, r4, #0xac bl func_ov00_02095764 add r0, r4, #0x38 @@ -7872,7 +7872,7 @@ func_ov15_0212619c: ; 0x0212619c .align 2, 0 arm_func_end func_ov15_0212619c _021261dc: .word data_ov15_02189990 -_021261e0: .word data_027e0e60 +_021261e0: .word gMapManager .global func_ov15_021261e4 arm_func_start func_ov15_021261e4 @@ -7880,11 +7880,11 @@ func_ov15_021261e4: ; 0x021261e4 stmdb sp!, {r4, lr} ldr r1, _0212622c ; =data_ov15_02189990 mov r4, r0 - ldr r0, _02126230 ; =data_027e0e60 + ldr r0, _02126230 ; =gMapManager str r1, [r4] ldr r0, [r0] add r1, r4, #0xac - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei add r0, r4, #0xac bl func_ov00_02095764 add r0, r4, #0x38 @@ -7898,7 +7898,7 @@ func_ov15_021261e4: ; 0x021261e4 .align 2, 0 arm_func_end func_ov15_021261e4 _0212622c: .word data_ov15_02189990 -_02126230: .word data_027e0e60 +_02126230: .word gMapManager .global func_ov15_02126234 arm_func_start func_ov15_02126234 @@ -7906,11 +7906,11 @@ func_ov15_02126234: ; 0x02126234 stmdb sp!, {r4, lr} ldr r1, _02126274 ; =data_ov15_02189990 mov r4, r0 - ldr r0, _02126278 ; =data_027e0e60 + ldr r0, _02126278 ; =gMapManager str r1, [r4] ldr r0, [r0] add r1, r4, #0xac - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei add r0, r4, #0xac bl func_ov00_02095764 add r0, r4, #0x38 @@ -7922,7 +7922,7 @@ func_ov15_02126234: ; 0x02126234 .align 2, 0 arm_func_end func_ov15_02126234 _02126274: .word data_ov15_02189990 -_02126278: .word data_027e0e60 +_02126278: .word gMapManager .global func_ov15_0212627c arm_func_start func_ov15_0212627c @@ -7940,17 +7940,17 @@ func_ov15_0212627c: ; 0x0212627c str r1, [ip, #0xc8] ldr r1, _021262cc ; =0x0000399a str r3, [ip, #0xcc] - ldr r0, _021262d0 ; =data_027e0e60 + ldr r0, _021262d0 ; =gMapManager str r1, [ip, #0xd0] ldr r0, [r0] add r1, ip, #0xac - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei add sp, sp, #0x14 ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov15_0212627c _021262cc: .word 0x0000399a -_021262d0: .word data_027e0e60 +_021262d0: .word gMapManager .global func_ov15_021262d4 arm_func_start func_ov15_021262d4 @@ -10308,14 +10308,14 @@ func_ov15_02127d9c: ; 0x02127d9c mov r1, #0x4000 str r0, [r4, #0x70] ldr r2, [sp, #0x2c] - ldr r0, _02127ee8 ; =data_027e0e60 + ldr r0, _02127ee8 ; =gMapManager str r2, [r4, #0x74] ldr r2, [sp, #0x30] str r2, [r4, #0x78] str r1, [r4, #0x7c] ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 beq _02127e38 mov r0, r4 @@ -10373,7 +10373,7 @@ _02127e38: arm_func_end func_ov15_02127d9c _02127ee0: .word data_027e0f68 _02127ee4: .word data_ov15_02185ce8 -_02127ee8: .word data_027e0e60 +_02127ee8: .word gMapManager _02127eec: .word 0xffffd99a _02127ef0: .word 0x00004ccc _02127ef4: .word data_027e0f6c @@ -10560,11 +10560,11 @@ _02128184: mov r3, r2 bl func_ov00_020c75f4 _02128198: - ldr r0, _021281dc ; =data_027e0e60 + ldr r0, _021281dc ; =gMapManager ldrsh r1, [r5, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei ldr r0, [r5, #4] bic r0, r0, #1 bic r0, r0, #8 @@ -10580,7 +10580,7 @@ _021281cc: .word 0x0000020f _021281d0: .word data_027e1038 _021281d4: .word data_ov15_02185cdc _021281d8: .word data_027e0e58 -_021281dc: .word data_027e0e60 +_021281dc: .word gMapManager .global func_ov15_021281e0 arm_func_start func_ov15_021281e0 @@ -10959,12 +10959,12 @@ func_ov15_02128670: ; 0x02128670 ldr r0, [r6, #0x80] cmp r0, #0x20000 bge _02128888 - ldr r0, _021288b4 ; =data_027e0e60 + ldr r0, _021288b4 ; =gMapManager add r1, r6, #0x18 ldr r0, [r0] ldr r7, [r6, #0x1c] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r1, r0 subs r4, r1, r7 rsbmi r4, r4, #0 @@ -11097,7 +11097,7 @@ _02128894: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov15_02128670 -_021288b4: .word data_027e0e60 +_021288b4: .word gMapManager _021288b8: .word 0x0000ffff _021288bc: .word 0x04e20000 _021288c0: .word 0x00001b33 @@ -11240,11 +11240,11 @@ _02128a0c: mov r3, #4 bl func_ov00_0207c1b0 _02128ad8: - ldr r0, _02128b84 ; =data_027e0e60 + ldr r0, _02128b84 ; =gMapManager add r1, r4, #0x18 ldr r0, [r0] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x1c] ldr r0, [r4, #0x80] cmp r0, #0x3000 @@ -11287,7 +11287,7 @@ _02128b74: .word 0x43424c53 _02128b78: .word data_027e0ffc _02128b7c: .word 0x0000020e _02128b80: .word data_027e0e58 -_02128b84: .word data_027e0e60 +_02128b84: .word gMapManager _02128b88: .word 0x00001333 .global func_ov15_02128b8c @@ -11583,7 +11583,7 @@ _02128f30: str r0, [r5, #0x198] _02128f38: mov r0, r5 - bl func_ov00_0207da38 + bl _ZN7MapBaseD1Ev mov r0, r5 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -11647,7 +11647,7 @@ _02128ffc: str r0, [r5, #0x198] _02129004: mov r0, r5 - bl func_ov00_0207da38 + bl _ZN7MapBaseD1Ev mov r0, r5 bl _ZN9SysObjectdlEPv mov r0, r5 @@ -11681,7 +11681,7 @@ _02129058: mov r0, r7 mov r2, r6 add r1, r4, #0xc - bl func_ov00_0207dda0 + bl _ZN7MapBase14GetMapFilePathEPcii mov r0, #0x10 str r0, [sp] mov r0, #1 @@ -11698,14 +11698,14 @@ _02129058: mov r0, r7 mov r1, r6 mov r2, r4 - bl func_ov00_0207dce4 + bl _ZN7MapBase9SetBoundsEii mov r0, r7 mov r1, #0 - bl func_ov00_0207ddf8 + bl _ZN7MapBase18func_ov00_0207ddf8Eb add r0, sp, #8 mov r1, r4 mov r2, r6 - bl func_ov00_0207cb7c + 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 func_ov00_0207ce20 + 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 func_ov00_0207ce20 + 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 func_ov00_0207ca78 + 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 func_ov00_0207ce20 + bl _ZN6Course18func_ov00_0207ce20EiiPci ldr r0, _02129240 ; =data_027e103c add r1, sp, #0x400 ldr r0, [r0] @@ -11783,14 +11783,14 @@ _02129058: cmp r0, #0 beq _02129210 mov r0, r4 - bl func_ov00_0207d7bc + bl _ZN6Course18func_ov00_0207d7bcEv _02129210: mov r0, r7 mov r1, r4 bl func_ov15_0212925c mov r0, r7 mov r1, #0 - bl func_ov00_0207dea0 + bl _ZN7MapBase18func_ov00_0207dea0Eb add sp, sp, #0x128 add sp, sp, #0x400 ldmia sp!, {r3, r4, r5, r6, r7, pc} @@ -11827,23 +11827,23 @@ func_ov15_02129254: ; 0x02129254 func_ov15_0212925c: ; 0x0212925c stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x74 - ldr r2, _021296c0 ; =data_027e0e60 + ldr r2, _021296c0 ; =gMapManager mov r9, r0 ldr r0, [r2] mov r8, r1 add r1, sp, #0x68 - bl func_ov00_0208340c - ldr r0, _021296c0 ; =data_027e0e60 + bl _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p + ldr r0, _021296c0 ; =gMapManager add r1, sp, #0x5c ldr r0, [r0] - bl func_ov00_0208342c - ldr r0, _021296c0 ; =data_027e0e60 + bl _ZN10MapManager17GetMapData_Unk_e8EP5Vec3p + ldr r0, _021296c0 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083374 - ldr r1, _021296c0 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083374Ev + ldr r1, _021296c0 ; =gMapManager mov r11, r0 ldr r0, [r1] - bl func_ov00_02083384 + bl _ZN10MapManager18func_ov00_02083384Ev ldr r3, [sp, #0x70] ldr r2, [sp, #0x5c] add r3, r3, #0xe800 @@ -11869,7 +11869,7 @@ func_ov15_0212925c: ; 0x0212925c _02129300: mov r0, r8 mov r1, r7 - bl func_ov00_0207d634 + 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 func_ov00_0207d6ec + 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 func_ov00_0207d634 + bl _ZN6Course23IsAdjacentMapOnMainGridEi 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 _ZN6Course23IsAdjacentMapOnMainGridEi cmp r0, #0 beq _021295ec mov r0, r9 @@ -12055,7 +12055,7 @@ _02129598: mov r0, r9 add r1, sp, #0x14 mov r5, #4 - bl func_ov00_02080140 + bl _ZN7MapBase18func_ov00_02080140EP4Exit ldr r1, [sp, #0x10] strb r0, [sp, #0x28] and r0, r0, #0xff @@ -12096,7 +12096,7 @@ _0212960c: bl func_ov00_02093a5c mov r0, r8 mov r1, r7 - bl func_ov00_0207d634 + bl _ZN6Course23IsAdjacentMapOnMainGridEi cmp r0, #0 beq _0212969c mov r0, r9 @@ -12122,7 +12122,7 @@ _021296ac: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov15_0212925c -_021296c0: .word data_027e0e60 +_021296c0: .word gMapManager _021296c4: .word data_027e0ce0 _021296c8: .word data_ov00_020e2f04 _021296cc: .word data_ov00_020e2dd8 @@ -12478,23 +12478,23 @@ func_ov15_02129a6c: ; 0x02129a6c sub sp, sp, #0x1c mov r7, r2 mov r8, r1 - ldr r2, _02129b14 ; =data_027e0e60 + ldr r2, _02129b14 ; =gMapManager mov r9, r0 ldrb r1, [r7, #1] ldr r0, [r2] mov r6, r3 - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei mov r5, r0 mov r0, r9 ldr r2, [r0] mov r1, r7 ldr r2, [r2, #0x60] blx r2 - ldr r1, _02129b14 ; =data_027e0e60 + ldr r1, _02129b14 ; =gMapManager mov r4, r0 ldr r0, [r1] ldrb r1, [r7] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [sp, #0x10] mvn r0, #0 str r4, [sp, #0x14] @@ -12519,7 +12519,7 @@ _02129b08: ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov15_02129a6c -_02129b14: .word data_027e0e60 +_02129b14: .word gMapManager _02129b18: .word data_027e0f68 .global func_ov15_02129b1c @@ -12807,7 +12807,7 @@ _02129df8: mov r3, #0x10 movne r4, #0 str ip, [sp, #0x48] - bl func_ov00_0207fce0 + bl _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei cmp r0, #0 bne _02129e90 ldr r0, [r5, #0x144] @@ -12828,7 +12828,7 @@ _02129df8: bl func_ov15_0212c718 mov r0, r5 mov r1, #0 - bl func_ov00_0207dea0 + bl _ZN7MapBase18func_ov00_0207dea0Eb add sp, sp, #0x4c ldmia sp!, {r4, r5, pc} _02129e90: @@ -12890,7 +12890,7 @@ _02129eec: bl func_ov15_0212c718 mov r0, r5 mov r1, #0 - bl func_ov00_0207dea0 + bl _ZN7MapBase18func_ov00_0207dea0Eb add sp, sp, #0x4c ldmia sp!, {r4, r5, pc} _02129f74: @@ -12906,7 +12906,7 @@ _02129f74: bl func_ov15_0212c718 mov r0, r5 mov r1, #0 - bl func_ov00_0207dea0 + bl _ZN7MapBase18func_ov00_0207dea0Eb add sp, sp, #0x4c ldmia sp!, {r4, r5, pc} _02129fb0: @@ -12922,7 +12922,7 @@ _02129fb0: bl func_ov15_0212c718 mov r0, r5 mov r1, #0 - bl func_ov00_0207dea0 + bl _ZN7MapBase18func_ov00_0207dea0Eb add sp, sp, #0x4c ldmia sp!, {r4, r5, pc} .align 2, 0 @@ -16449,7 +16449,7 @@ _0212cf44: bl func_ov15_0212d008 _0212cf4c: ldr r1, [r4, #0x48] - ldr r0, _0212cfb8 ; =data_027e0e60 + ldr r0, _0212cfb8 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -16458,7 +16458,7 @@ _0212cf4c: add r1, sp, #0 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] ldr r1, _0212cfbc ; =data_ov15_0218a464 ldr r2, _0212cfc0 ; =data_ov15_0218a470 @@ -16477,7 +16477,7 @@ _0212cfa8: .word data_027e0d38 _0212cfac: .word data_027e10a4 _0212cfb0: .word data_027e0f94 _0212cfb4: .word data_027e0fe4 -_0212cfb8: .word data_027e0e60 +_0212cfb8: .word gMapManager _0212cfbc: .word data_ov15_0218a464 _0212cfc0: .word data_ov15_0218a470 @@ -16748,7 +16748,7 @@ _0212d358: sub r0, r0, #1 strb r0, [r4, #0x1ac] ldr r1, [r4, #0x48] - ldr r0, _0212d514 ; =data_027e0e60 + ldr r0, _0212d514 ; =gMapManager str r1, [sp, #0x20] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -16757,7 +16757,7 @@ _0212d358: add r1, sp, #0x20 str r2, [sp, #0x28] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x184] sub r0, r0, r1 str r0, [r4, #0x4c] @@ -16803,7 +16803,7 @@ _0212d430: sub r0, r0, #1 strb r0, [r4, #0x1ac] ldr r1, [r4, #0x48] - ldr r0, _0212d514 ; =data_027e0e60 + ldr r0, _0212d514 ; =gMapManager str r1, [sp, #0x14] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -16812,7 +16812,7 @@ _0212d430: add r1, sp, #0x14 str r2, [sp, #0x1c] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x184] sub r0, r0, r1 str r0, [r4, #0x4c] @@ -16851,7 +16851,7 @@ _0212d494: .align 2, 0 arm_func_end func_ov15_0212d29c _0212d510: .word data_ov15_02185d50 -_0212d514: .word data_027e0e60 +_0212d514: .word gMapManager _0212d518: .word data_ov15_0218a464 _0212d51c: .word data_ov15_0218a470 _0212d520: .word data_027e0fe4 @@ -17575,7 +17575,7 @@ _0212df28: sub r2, r3, #2 mov r5, #0x47 mov r1, #0xff - ldr r0, _0212e06c ; =data_027e0e60 + ldr r0, _0212e06c ; =gMapManager str r2, [sp, #0x38] str r5, [sp, #0x2c] str r3, [sp, #0x30] @@ -17588,7 +17588,7 @@ _0212df28: ldrh r1, [r4, #0x22] ldr r0, [r0] add r2, sp, #0x2c - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 beq _0212e03c mov r0, #2 @@ -17639,7 +17639,7 @@ _0212e05c: .word data_027e0fac _0212e060: .word data_02050f54 _0212e064: .word data_027e0c68 _0212e068: .word 0x00050022 -_0212e06c: .word data_027e0e60 +_0212e06c: .word gMapManager _0212e070: .word data_027e10a4 _0212e074: .word gAdventureFlags @@ -18868,7 +18868,7 @@ _0212f13c: ldr r0, [r4, #0x130] cmp r0, #4 bne _0212f1fc - ldr r0, _0212f25c ; =data_027e0e60 + ldr r0, _0212f25c ; =gMapManager ldr lr, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] @@ -18878,7 +18878,7 @@ _0212f13c: str lr, [sp] str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _0212f260 ; =data_027e0e58 str r0, [sp, #0x10] ldr r0, [r1] @@ -18914,7 +18914,7 @@ _0212f204: arm_func_end func_ov15_0212f0b8 _0212f254: .word data_027e077c _0212f258: .word data_02050f54 -_0212f25c: .word data_027e0e60 +_0212f25c: .word gMapManager _0212f260: .word data_027e0e58 .global func_ov15_0212f264 @@ -18959,7 +18959,7 @@ func_ov15_0212f2c8: ; 0x0212f2c8 mov r0, #2 strb r0, [r4, #0x1ac] ldr r1, [r4, #0x48] - ldr r0, _0212f340 ; =data_027e0e60 + ldr r0, _0212f340 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -18968,7 +18968,7 @@ func_ov15_0212f2c8: ; 0x0212f2c8 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r4, #0x184] ldr r1, _0212f344 ; =data_ov15_0218a46c sub r0, r0, r2 @@ -18985,7 +18985,7 @@ func_ov15_0212f2c8: ; 0x0212f2c8 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_0212f2c8 -_0212f340: .word data_027e0e60 +_0212f340: .word gMapManager _0212f344: .word data_ov15_0218a46c _0212f348: .word data_ov15_0218a468 @@ -19234,10 +19234,10 @@ func_ov15_0212f5f0: ; 0x0212f5f0 cmp r1, r4 moveq r1, #0 streq r1, [r0] - ldr r0, _0212f6b8 ; =data_027e0e60 + ldr r0, _0212f6b8 ; =gMapManager add r1, r4, #0x334 ldr r0, [r0] - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldr r0, [r4, #0x130] sub r0, r0, #4 cmp r0, #1 @@ -19278,7 +19278,7 @@ _0212f65c: arm_func_end func_ov15_0212f5f0 _0212f6b0: .word data_ov15_0218a5b8 _0212f6b4: .word data_027e10a0 -_0212f6b8: .word data_027e0e60 +_0212f6b8: .word gMapManager _0212f6bc: .word data_ov00_020eec68 _0212f6c0: .word data_ov15_02190458 @@ -19294,10 +19294,10 @@ func_ov15_0212f6c4: ; 0x0212f6c4 cmp r1, r4 moveq r1, #0 streq r1, [r0] - ldr r0, _0212f794 ; =data_027e0e60 + ldr r0, _0212f794 ; =gMapManager add r1, r4, #0x334 ldr r0, [r0] - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldr r0, [r4, #0x130] sub r0, r0, #4 cmp r0, #1 @@ -19340,7 +19340,7 @@ _0212f730: arm_func_end func_ov15_0212f6c4 _0212f78c: .word data_ov15_0218a5b8 _0212f790: .word data_027e10a0 -_0212f794: .word data_027e0e60 +_0212f794: .word gMapManager _0212f798: .word data_ov00_020eec68 _0212f79c: .word data_ov15_02190458 @@ -19508,10 +19508,10 @@ _0212f824: bl _ZN14AdventureFlags3SetEjb mov r1, #4 str r1, [r4, #0x130] - ldr r0, _0212fc24 ; =data_027e0e60 + ldr r0, _0212fc24 ; =gMapManager add r1, r4, #0x334 ldr r0, [r0] - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei mov ip, #5 strb ip, [r4, #0x490] mov r1, #0x5d @@ -19653,7 +19653,7 @@ _0212fc14: .word data_027e10a0 _0212fc18: .word 0x00002666 _0212fc1c: .word 0x00006e67 _0212fc20: .word 0x000024cd -_0212fc24: .word data_027e0e60 +_0212fc24: .word gMapManager .global func_ov15_0212fc28 arm_func_start func_ov15_0212fc28 @@ -19695,7 +19695,7 @@ _0212fc6c: str r0, [r4, #0x330] _0212fcb0: ldr r1, [r4, #0x48] - ldr r0, _0212fd18 ; =data_027e0e60 + ldr r0, _0212fd18 ; =gMapManager str r1, [sp, #0x10] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -19704,7 +19704,7 @@ _0212fcb0: add r1, sp, #0x10 mov r2, #0 str r3, [sp, #0x18] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] ldr r1, _0212fd1c ; =data_ov15_0218a5a0 ldr r2, _0212fd20 ; =data_ov15_0218a5ac @@ -19722,7 +19722,7 @@ _0212fcb0: _0212fd0c: .word data_027e0fe4 _0212fd10: .word 0x4647474e _0212fd14: .word 0x47534d47 -_0212fd18: .word data_027e0e60 +_0212fd18: .word gMapManager _0212fd1c: .word data_ov15_0218a5a0 _0212fd20: .word data_ov15_0218a5ac @@ -19976,11 +19976,11 @@ _0212fe8c: str r2, [sp, #0x258] strb r11, [sp, #0x1da] bl _ZN14AdventureFlags18func_Ov00_02097810Ei - ldr r1, _02130540 ; =data_027e0e60 + ldr r1, _02130540 ; =gMapManager str r0, [r5, #0x488] ldr r0, [r1] add r1, r5, #0x334 - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei add r0, sp, #0x1c4 bl func_ov00_0209a508 b _02130510 @@ -20011,10 +20011,10 @@ _0213010c: strh r0, [r5, #0x7a] mov r1, #0 strb r1, [r5, #0x490] - ldr r0, _02130540 ; =data_027e0e60 + ldr r0, _02130540 ; =gMapManager add r1, r5, #0x334 ldr r0, [r0] - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei b _02130510 _02130188: add r6, sp, #0x30 @@ -20082,11 +20082,11 @@ _02130220: add r1, r5, #0x48 mov r2, r0 bl func_01ff9bc4 - ldr r0, _02130540 ; =data_027e0e60 + ldr r0, _02130540 ; =gMapManager add r1, sp, #0x24 ldr r0, [r0] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x28] ldr r1, [sp, #0x24] add r0, sp, #0x24 @@ -20122,11 +20122,11 @@ _02130220: add r1, r5, #0x48 mov r2, r0 bl func_01ff9bc4 - ldr r0, _02130540 ; =data_027e0e60 + ldr r0, _02130540 ; =gMapManager add r1, sp, #0x18 ldr r0, [r0] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x18] str r0, [sp, #0x1c] str r1, [r5, #0x4a0] @@ -20260,7 +20260,7 @@ _02130530: .word 0x0000ffff _02130534: .word data_027e0f94 _02130538: .word data_027e0f64 _0213053c: .word gAdventureFlags -_02130540: .word data_027e0e60 +_02130540: .word gMapManager _02130544: .word data_027e10a4 _02130548: .word 0xffffc568 _0213054c: .word 0x00001388 @@ -20365,11 +20365,11 @@ _02130694: movne r0, #0 strneb r0, [r4, #0x118] ldmneia sp!, {r4, pc} - ldr r0, _02130780 ; =data_027e0e60 + ldr r0, _02130780 ; =gMapManager ldrh r1, [r4, #0x26] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _02130724 mov r0, r4 @@ -20423,7 +20423,7 @@ _02130724: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_02130558 -_02130780: .word data_027e0e60 +_02130780: .word gMapManager _02130784: .word data_ov15_0218a5a0 _02130788: .word data_ov15_0218a5ac _0213078c: .word data_ov15_02185e40 @@ -21602,11 +21602,11 @@ _021317fc: bl func_ov00_020c66e4 b _021318fc _02131840: - ldr r0, _02131930 ; =data_027e0e60 + ldr r0, _02131930 ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _021318fc ldr r0, _0213190c ; =data_027e0f94 @@ -21667,7 +21667,7 @@ _02131920: .word gAdventureFlags _02131924: .word data_027e0e2c _02131928: .word func_ov15_0212f3cc _0213192c: .word 0x00050021 -_02131930: .word data_027e0e60 +_02131930: .word gMapManager _02131934: .word 0x00000171 .global func_ov15_02131938 @@ -21903,10 +21903,10 @@ _02131c70: ldr ip, [ip, #0x34] add r1, r4, #0x14 blx ip - ldr r0, _02131f08 ; =data_027e0e60 + ldr r0, _02131f08 ; =gMapManager add r1, r4, #0x334 ldr r0, [r0] - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldr r0, [r4, #0x32c] bl func_ov15_0215bacc mov r0, #0 @@ -22066,7 +22066,7 @@ _02131ef8: .word 0x000002e2 _02131efc: .word data_02050f54 _02131f00: .word data_027e0f90 _02131f04: .word data_027e0fac -_02131f08: .word data_027e0e60 +_02131f08: .word gMapManager .global func_ov15_02131f0c arm_func_start func_ov15_02131f0c @@ -22346,7 +22346,7 @@ _021322e8: cmp r0, #0x1000 ldrltb r0, [r4, #0x490] ldr r2, _021325e4 ; =data_02050f54 - ldr r1, _021325e8 ; =data_027e0e60 + ldr r1, _021325e8 ; =gMapManager addlt r0, r0, #1 strltb r0, [r4, #0x490] ldr r0, _021325ec ; =data_027e0fac @@ -22388,7 +22388,7 @@ _021322e8: str r4, [sp, #0x8c] str r6, [sp, #0x40] str r4, [sp, #0x48] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0xa0] ldr r4, [sp, #0x84] orr r2, r1, #1 @@ -22446,7 +22446,7 @@ _0213246c: strh r1, [sp] ldrsh r1, [r4, #0x78] bl func_0202b154 - ldr r0, _021325e8 ; =data_027e0e60 + ldr r0, _021325e8 ; =gMapManager ldr r1, [sp, #0x80] ldrsh r7, [sp] orr r6, r1, #2 @@ -22461,7 +22461,7 @@ _0213246c: str r5, [sp, #0x28] str r4, [sp, #0x2c] str r3, [sp, #0x30] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x80] ldr r4, [sp, #0x64] orr r2, r1, #1 @@ -22486,7 +22486,7 @@ _02132504: sub r2, r3, #2 mov r5, #0x47 mov r1, #0xff - ldr r0, _021325e8 ; =data_027e0e60 + ldr r0, _021325e8 ; =gMapManager str r2, [sp, #0x58] str r5, [sp, #0x4c] str r3, [sp, #0x50] @@ -22499,7 +22499,7 @@ _02132504: ldrh r1, [r4, #0x20] ldr r0, [r0] add r2, sp, #0x4c - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 addeq sp, sp, #0xa4 ldmeqia sp!, {r4, r5, r6, r7, r8, r9, pc} @@ -22538,7 +22538,7 @@ _021325d8: .word data_027e0f94 _021325dc: .word data_027e0c68 _021325e0: .word 0x00050082 _021325e4: .word data_02050f54 -_021325e8: .word data_027e0e60 +_021325e8: .word gMapManager _021325ec: .word data_027e0fac _021325f0: .word data_027e10a4 @@ -22673,9 +22673,9 @@ func_ov15_0213278c: ; 0x0213278c sub r0, r0, #4 cmp r0, #1 bhi _021327d0 - ldr r0, _021327d8 ; =data_027e0e60 + ldr r0, _021327d8 ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev cmp r0, #6 movne r0, #0 ldmneia sp!, {r4, pc} @@ -22689,7 +22689,7 @@ _021327d0: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_0213278c -_021327d8: .word data_027e0e60 +_021327d8: .word gMapManager .global func_ov15_021327dc arm_func_start func_ov15_021327dc @@ -23502,11 +23502,11 @@ _021332ac: ldr r0, [r7, #0x360] cmp r0, #0 beq _02133338 - ldr r0, _02133c9c ; =data_027e0e60 + ldr r0, _02133c9c ; =gMapManager ldrh r1, [r7, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldrne r0, [r7, #0x360] subne r0, r0, #1 @@ -24172,7 +24172,7 @@ _02133c6c: ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov15_0213321c -_02133c9c: .word data_027e0e60 +_02133c9c: .word gMapManager _02133ca0: .word data_ov15_02185e74 _02133ca4: .word data_ov15_02185e70 _02133ca8: .word data_ov15_02185e6c @@ -25498,7 +25498,7 @@ _02134e00: ldmia sp!, {r3, r4, pc} _02134e14: ldr r1, [r4, #0x48] - ldr r0, _02135108 ; =data_027e0e60 + ldr r0, _02135108 ; =gMapManager str r1, [sp, #0x14] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -25507,7 +25507,7 @@ _02134e14: add r1, sp, #0x14 str r2, [sp, #0x1c] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x4c] cmp r1, r0 movlt r0, #1 @@ -25527,7 +25527,7 @@ _02134e6c: add r3, sp, #0x20 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02135108 ; =data_027e0e60 + ldr r0, _02135108 ; =gMapManager ldr lr, [sp, #0x20] ldr ip, [sp, #0x24] ldr r3, [sp, #0x28] @@ -25537,7 +25537,7 @@ _02134e6c: str lr, [sp, #8] str ip, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x24] ldrb r0, [r4, #0x217] cmp r0, #1 @@ -25698,7 +25698,7 @@ _021350e8: .align 2, 0 arm_func_end func_ov15_02134d6c _02135104: .word data_ov15_02185ea0 -_02135108: .word data_027e0e60 +_02135108: .word gMapManager _0213510c: .word data_027e0e58 _02135110: .word 0x00000829 _02135114: .word 0x00000ae1 @@ -26921,12 +26921,12 @@ func_ov15_021360e4: ; 0x021360e4 b _0213618c _02136168: ldr r2, _021363dc ; =data_027e0d78 - ldr r0, _021363e0 ; =data_027e0e60 + ldr r0, _021363e0 ; =gMapManager ldr r1, [r2, #0x24] ldr r0, [r0] ldr r2, [r2, #0x28] add r3, sp, #0xb4 - bl func_ov00_02084d4c + bl _ZN10MapManager18func_ov00_02084d4cEiiP5Vec3p cmp r0, #1 movls r4, #2 _0213618c: @@ -27085,7 +27085,7 @@ _021363cc: arm_func_end func_ov15_021360e4 _021363d8: .word data_027e0fe4 _021363dc: .word data_027e0d78 -_021363e0: .word data_027e0e60 +_021363e0: .word gMapManager _021363e4: .word data_027e0f94 _021363e8: .word data_027e10a4 _021363ec: .word data_02050f54 @@ -28127,7 +28127,7 @@ func_ov15_02137138: ; 0x02137138 bl func_ov00_020b7e6c _02137164: ldr r1, _0213725c ; =data_027e0f94 - ldr r0, _02137260 ; =data_027e0e60 + ldr r0, _02137260 ; =gMapManager ldr r3, [r1] ldr r2, [r1, #4] str r3, [sp, #8] @@ -28137,7 +28137,7 @@ _02137164: str r2, [sp, #0x10] add r1, sp, #8 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldrb r1, [r4, #0x27c] mov ip, r0 cmp r1, #1 @@ -28191,7 +28191,7 @@ _02137164: arm_func_end func_ov15_02137138 _02137258: .word data_027e0fa0 _0213725c: .word data_027e0f94 -_02137260: .word data_027e0e60 +_02137260: .word gMapManager _02137264: .word 0x000004cd _02137268: .word data_027e0e58 _0213726c: .word data_027e0ffc @@ -29249,7 +29249,7 @@ _02138150: cmp r0, #0x28 blt _02138224 ldr r3, _021382e8 ; =data_027e0f94 - ldr r0, _021382f4 ; =data_027e0e60 + ldr r0, _021382f4 ; =gMapManager ldr r2, [r3] ldr r1, [r3, #4] str r2, [sp, #0x1c] @@ -29260,7 +29260,7 @@ _02138150: add r1, sp, #0x1c mov r2, #0 ldr r5, [r3, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _021382e8 ; =data_027e0f94 str r5, [sp, #0x30] ldr r2, [r1] @@ -29357,7 +29357,7 @@ _021382e4: .word 0xfffff8a4 _021382e8: .word data_027e0f94 _021382ec: .word data_027e0e58 _021382f0: .word 0x0000019a -_021382f4: .word data_027e0e60 +_021382f4: .word gMapManager _021382f8: .word data_027e0fb8 _021382fc: .word data_ov00_020eec9c _02138300: .word 0xfffffa66 @@ -29449,10 +29449,10 @@ func_ov15_02138408: ; 0x02138408 cmp r0, #1 moveq r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _0213846c ; =data_027e0e60 + ldr r0, _0213846c ; =gMapManager mov r2, #0 ldr r0, [r0] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r3, [r4, #4] ldr r1, _02138470 ; =0xfffffccd add r2, r3, r1 @@ -29470,7 +29470,7 @@ func_ov15_02138408: ; 0x02138408 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_02138408 -_0213846c: .word data_027e0e60 +_0213846c: .word gMapManager _02138470: .word 0xfffffccd _02138474: .word 0x00000ccc @@ -29596,7 +29596,7 @@ func_ov15_02138478: ; 0x02138478 cmp r0, #0 bne _021386b0 ldr r1, _02138bb8 ; =data_027e0f94 - ldr r0, _02138bbc ; =data_027e0e60 + ldr r0, _02138bbc ; =gMapManager ldr r2, [r1, #4] ldr r3, [r1] str r2, [sp, #4] @@ -29606,7 +29606,7 @@ func_ov15_02138478: ; 0x02138478 add r1, sp, #0 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _02138bb8 ; =data_027e0f94 ldr r1, [r1, #4] cmp r1, r0 @@ -29957,7 +29957,7 @@ _02138bac: .word data_027e0fb0 _02138bb0: .word data_02050f54 _02138bb4: .word data_027e0fac _02138bb8: .word data_027e0f94 -_02138bbc: .word data_027e0e60 +_02138bbc: .word gMapManager _02138bc0: .word 0xffffc71c _02138bc4: .word 0x000004cd @@ -30050,7 +30050,7 @@ _02138c30: mov r0, #0xcd str r0, [sp, #8] ldr r1, _02138fac ; =data_ov15_0218eec0 - ldr r0, _02138fb0 ; =data_027e0e60 + ldr r0, _02138fb0 ; =gMapManager str r1, [sp, #0xc] str r2, [sp, #0x10] ldr r0, [r0] @@ -30222,7 +30222,7 @@ _02138fa0: .word data_027e0fa0 _02138fa4: .word data_027e0ff8 _02138fa8: .word 0x0000ffff _02138fac: .word data_ov15_0218eec0 -_02138fb0: .word data_027e0e60 +_02138fb0: .word gMapManager _02138fb4: .word data_027e0fac _02138fb8: .word data_02050f54 _02138fbc: .word data_027e0f6c @@ -30319,12 +30319,12 @@ _02139100: add r0, sp, #0 bl func_ov15_02139164 ldr r1, [sp] - ldr r0, _02139160 ; =data_027e0e60 + ldr r0, _02139160 ; =gMapManager mov r1, r1, lsr #0x10 ldr r0, [r0] and r1, r1, #0x3f add r2, sp, #8 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 beq _02139144 ldr r0, _02139158 ; =data_027e0d38 @@ -30342,7 +30342,7 @@ _02139144: _02139154: .word data_ov15_0218eec0 _02139158: .word data_027e0d38 _0213915c: .word data_027e0e2c -_02139160: .word data_027e0e60 +_02139160: .word gMapManager .global func_ov15_02139164 arm_func_start func_ov15_02139164 @@ -30916,7 +30916,7 @@ _021398f0: str r0, [r4, #0xa4] str r0, [r4, #0xa8] str r0, [r4, #0xac] - ldr ip, _02139a70 ; =data_027e0fbc + ldr ip, _02139a70 ; =gHealthManager add r3, r4, #0x300 ldr r2, [ip] add r1, r4, #0x60 @@ -30958,7 +30958,7 @@ _02139a60: .word func_ov15_02139a80 _02139a64: .word func_ov15_02139a94 _02139a68: .word func_020350ac _02139a6c: .word func_02035064 -_02139a70: .word data_027e0fbc +_02139a70: .word gHealthManager _02139a74: .word data_027e10a4 _02139a78: .word data_027e0d38 _02139a7c: .word data_027e0ce0 @@ -30994,7 +30994,7 @@ func_ov15_02139ab4: ; 0x02139ab4 ldr r1, _02139cb8 ; =data_ov15_0218aaac mov r4, r0 str r1, [r4] - ldr r1, _02139cbc ; =data_027e0fbc + ldr r1, _02139cbc ; =gHealthManager ldrsh r3, [r4, #0xa] ldr r2, [r1] add r0, r4, #0x300 @@ -31123,7 +31123,7 @@ _02139af4: .align 2, 0 arm_func_end func_ov15_02139ab4 _02139cb8: .word data_ov15_0218aaac -_02139cbc: .word data_027e0fbc +_02139cbc: .word gHealthManager _02139cc0: .word data_027e10a4 _02139cc4: .word func_020350ac _02139cc8: .word func_ov15_02139a80 @@ -31136,7 +31136,7 @@ func_ov15_02139cd0: ; 0x02139cd0 ldr r1, _02139edc ; =data_ov15_0218aaac mov r4, r0 str r1, [r4] - ldr r1, _02139ee0 ; =data_027e0fbc + ldr r1, _02139ee0 ; =gHealthManager ldrsh r3, [r4, #0xa] ldr r2, [r1] add r0, r4, #0x300 @@ -31267,7 +31267,7 @@ _02139d10: .align 2, 0 arm_func_end func_ov15_02139cd0 _02139edc: .word data_ov15_0218aaac -_02139ee0: .word data_027e0fbc +_02139ee0: .word gHealthManager _02139ee4: .word data_027e10a4 _02139ee8: .word func_020350ac _02139eec: .word func_ov15_02139a80 @@ -31827,13 +31827,13 @@ func_ov15_0213a5e8: ; 0x0213a5e8 .global func_ov15_0213a604 arm_func_start func_ov15_0213a604 func_ov15_0213a604: ; 0x0213a604 - ldr r0, _0213a614 ; =data_027e0fbc + ldr r0, _0213a614 ; =gHealthManager ldr r0, [r0] ldrsh r0, [r0, #4] bx lr .align 2, 0 arm_func_end func_ov15_0213a604 -_0213a614: .word data_027e0fbc +_0213a614: .word gHealthManager .global func_ov15_0213a618 arm_func_start func_ov15_0213a618 @@ -32183,7 +32183,7 @@ _0213aa30: ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [r5, #0x48] - ldr r0, _0213abac ; =data_027e0e60 + ldr r0, _0213abac ; =gMapManager str r1, [sp, #8] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -32192,7 +32192,7 @@ _0213aa30: add r1, sp, #8 mov r2, #0 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x24] add r0, sp, #0x20 mov r1, #0x800 @@ -32280,7 +32280,7 @@ _0213ab94: .align 2, 0 arm_func_end func_ov15_0213a9c8 _0213aba8: .word 0xffffe668 -_0213abac: .word data_027e0e60 +_0213abac: .word gMapManager _0213abb0: .word 0x0000051f _0213abb4: .word data_027e0e58 _0213abb8: .word data_027e0ffc @@ -32298,7 +32298,7 @@ func_ov15_0213abc4: ; 0x0213abc4 subne r0, r0, #1 strne r0, [r5, #0x178] ldr r1, [r5, #0x48] - ldr r0, _0213b120 ; =data_027e0e60 + ldr r0, _0213b120 ; =gMapManager str r1, [sp, #0x9c] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -32307,7 +32307,7 @@ func_ov15_0213abc4: ; 0x0213abc4 add r1, sp, #0x9c str r2, [sp, #0xa4] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x130] cmp r1, #2 strgt r0, [r5, #0x4c] @@ -32618,7 +32618,7 @@ _0213b05c: ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [r5, #0x48] - ldr r0, _0213b120 ; =data_027e0e60 + ldr r0, _0213b120 ; =gMapManager str r1, [sp, #0x10] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -32627,7 +32627,7 @@ _0213b05c: add r1, sp, #0x10 mov r2, #0 str r3, [sp, #0x18] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r2, #0 str r0, [sp, #0xac] ldr r1, _0213b148 ; =0x0000051f @@ -32653,7 +32653,7 @@ _0213b0f8: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov15_0213abc4 -_0213b120: .word data_027e0e60 +_0213b120: .word gMapManager _0213b124: .word data_027e0c68 _0213b128: .word 0xffffe668 _0213b12c: .word data_ov00_020e83cc @@ -36692,11 +36692,11 @@ func_ov15_0213e754: ; 0x0213e754 stmdb sp!, {r4, lr} ldr r1, _0213e7d4 ; =data_ov15_0218aeb0 mov r4, r0 - ldr r0, _0213e7d8 ; =data_027e0e60 + ldr r0, _0213e7d8 ; =gMapManager str r1, [r4] ldr r0, [r0] add r1, r4, #0x31c - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldr r0, _0213e7dc ; =data_027e103c mov r1, #0 ldr r0, [r0] @@ -36724,7 +36724,7 @@ func_ov15_0213e754: ; 0x0213e754 .align 2, 0 arm_func_end func_ov15_0213e754 _0213e7d4: .word data_ov15_0218aeb0 -_0213e7d8: .word data_027e0e60 +_0213e7d8: .word gMapManager _0213e7dc: .word data_027e103c _0213e7e0: .word func_ov00_020b7d74 @@ -36734,11 +36734,11 @@ func_ov15_0213e7e4: ; 0x0213e7e4 stmdb sp!, {r4, lr} ldr r1, _0213e86c ; =data_ov15_0218aeb0 mov r4, r0 - ldr r0, _0213e870 ; =data_027e0e60 + ldr r0, _0213e870 ; =gMapManager str r1, [r4] ldr r0, [r0] add r1, r4, #0x31c - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldr r0, _0213e874 ; =data_027e103c mov r1, #0 ldr r0, [r0] @@ -36768,7 +36768,7 @@ func_ov15_0213e7e4: ; 0x0213e7e4 .align 2, 0 arm_func_end func_ov15_0213e7e4 _0213e86c: .word data_ov15_0218aeb0 -_0213e870: .word data_027e0e60 +_0213e870: .word gMapManager _0213e874: .word data_027e103c _0213e878: .word func_ov00_020b7d74 @@ -37292,7 +37292,7 @@ _0213f03c: add r0, r4, #0x48 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0213f4b8 ; =data_027e0e60 + ldr r0, _0213f4b8 ; =gMapManager ldr r6, [sp, #0x84] ldr r5, [sp, #0x88] ldr r3, [sp, #0x8c] @@ -37302,7 +37302,7 @@ _0213f03c: str r6, [sp, #0x6c] str r5, [sp, #0x70] str r3, [sp, #0x74] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x88] add r1, sp, #0x84 str r1, [sp] @@ -37332,10 +37332,10 @@ _0213f03c: str r0, [r4, #0x33c] mov r0, #0x14000 str r0, [r4, #0x340] - ldr r0, _0213f4b8 ; =data_027e0e60 + ldr r0, _0213f4b8 ; =gMapManager add r1, r4, #0x31c ldr r0, [r0] - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei add r0, sp, #0x118 bl func_ov00_0209a508 b _0213f47c @@ -37360,11 +37360,11 @@ _0213f110: _0213f154: ldr r1, [r4, #0x1b8] mov r2, #1 - ldr r0, _0213f4b8 ; =data_027e0e60 + ldr r0, _0213f4b8 ; =gMapManager strh r2, [r1, #0xc] ldr r0, [r0] add r1, r4, #0x31c - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldr r0, _0213f4c4 ; =data_ov00_020eec68 mov r1, #0x1e bl func_ov00_020d716c @@ -37585,7 +37585,7 @@ _0213f4a8: .word data_027e0f64 _0213f4ac: .word 0x00001388 _0213f4b0: .word gAdventureFlags _0213f4b4: .word data_027e0f94 -_0213f4b8: .word data_027e0e60 +_0213f4b8: .word gMapManager _0213f4bc: .word data_027e0e58 _0213f4c0: .word data_ov15_02190458 _0213f4c4: .word data_ov00_020eec68 @@ -37614,7 +37614,7 @@ func_ov15_0213f4d4: ; 0x0213f4d4 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [r4, #0x48] - ldr r0, _0213f574 ; =data_027e0e60 + ldr r0, _0213f574 ; =gMapManager str r1, [sp, #4] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -37623,7 +37623,7 @@ func_ov15_0213f4d4: ; 0x0213f4d4 add r1, sp, #4 mov r2, #0 str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x14] mov ip, #0 add r1, sp, #0x10 @@ -37638,7 +37638,7 @@ func_ov15_0213f4d4: ; 0x0213f4d4 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_0213f4d4 -_0213f574: .word data_027e0e60 +_0213f574: .word gMapManager .global func_ov15_0213f578 arm_func_start func_ov15_0213f578 @@ -37762,7 +37762,7 @@ _0213f684: add r3, sp, #0x38 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0213f7bc ; =data_027e0e60 + ldr r0, _0213f7bc ; =gMapManager ldr ip, [sp, #0x38] ldr r4, [sp, #0x3c] ldr r3, [sp, #0x40] @@ -37772,7 +37772,7 @@ _0213f684: str ip, [sp, #0xc] str r4, [sp, #0x10] str r3, [sp, #0x14] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x3c] mov r0, #0 str r0, [sp] @@ -37799,7 +37799,7 @@ _0213f7ac: .word data_027e0fe4 _0213f7b0: .word data_ov15_02185fcc _0213f7b4: .word data_ov15_0218ae88 _0213f7b8: .word data_027e0ff8 -_0213f7bc: .word data_027e0e60 +_0213f7bc: .word gMapManager _0213f7c0: .word data_027e0ffc _0213f7c4: .word 0x00000216 _0213f7c8: .word data_027e10a4 @@ -37861,7 +37861,7 @@ func_ov15_0213f80c: ; 0x0213f80c ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r2, [sp, #0x94] - ldr r0, _0213fb7c ; =data_027e0e60 + ldr r0, _0213fb7c ; =gMapManager ldr r1, [sp, #0x98] str r2, [sp, #0x88] ldr r2, [sp, #0x9c] @@ -37870,7 +37870,7 @@ func_ov15_0213f80c: ; 0x0213f80c ldr r0, [r0] add r1, sp, #0x88 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [sp, #0x94] str r0, [sp, #0x98] str r0, [sp, #0xa4] @@ -37910,7 +37910,7 @@ _0213f91c: ldr r4, [sp, #0x74] ldr ip, [sp, #0x70] ldr r3, [sp, #0x78] - ldr r0, _0213fb7c ; =data_027e0e60 + ldr r0, _0213fb7c ; =gMapManager add r1, sp, #0x64 ldr r0, [r0] mov r2, #0 @@ -37920,7 +37920,7 @@ _0213f91c: str ip, [sp, #0x64] str r4, [sp, #0x68] str r3, [sp, #0x6c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0xb8] ldr r1, _0213fb88 ; =0x00000d9a add r0, sp, #0xb4 @@ -38056,7 +38056,7 @@ _0213facc: .align 2, 0 arm_func_end func_ov15_0213f80c _0213fb78: .word data_027e0f94 -_0213fb7c: .word data_027e0e60 +_0213fb7c: .word gMapManager _0213fb80: .word data_027e0fac _0213fb84: .word data_027e10a4 _0213fb88: .word 0x00000d9a @@ -38701,10 +38701,10 @@ func_ov15_02140424: ; 0x02140424 cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, pc} - ldr r0, _02140588 ; =data_027e0e60 + ldr r0, _02140588 ; =gMapManager add r1, r4, #0x31c ldr r0, [r0] - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei mov r0, r4 mov r1, #0x3c bl func_ov15_02140cb8 @@ -38772,7 +38772,7 @@ _02140540: .align 2, 0 arm_func_end func_ov15_02140424 _02140584: .word data_ov00_020e83cc -_02140588: .word data_027e0e60 +_02140588: .word gMapManager _0214058c: .word data_027e103c _02140590: .word data_027e10a4 _02140594: .word data_027e0ffc @@ -41768,7 +41768,7 @@ func_ov15_02142ba0: ; 0x02142ba0 ldrb r0, [r4, #0x353] cmp r0, #0 bne _02142c38 - ldr r0, _02142c5c ; =data_027e0e60 + ldr r0, _02142c5c ; =gMapManager mov lr, #0 ldr r0, [r0] sub ip, lr, #2 @@ -41785,7 +41785,7 @@ func_ov15_02142ba0: ; 0x02142ba0 strb lr, [sp, #0x13] strb lr, [sp, #0x14] strb lr, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02142c60 ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -41810,7 +41810,7 @@ _02142c44: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov15_02142ba0 -_02142c5c: .word data_027e0e60 +_02142c5c: .word gMapManager _02142c60: .word data_027e0d38 _02142c64: .word data_027e1094 @@ -42455,11 +42455,11 @@ _0214352c: ldr r0, [r5, #0x324] cmp r0, #1 bne _02143578 - ldr r0, _021436c0 ; =data_027e0e60 + ldr r0, _021436c0 ; =gMapManager add r2, sp, #0 ldr r0, [r0] add r1, r5, #0x294 - bl func_ov00_02082454 + bl _ZN10MapManager18func_ov00_02082454Eii cmp r0, #0 beq _02143578 ldr r1, [r5, #0x2b8] @@ -42559,7 +42559,7 @@ _021436a4: .align 2, 0 arm_func_end func_ov15_02143408 _021436bc: .word 0x00001ccc -_021436c0: .word data_027e0e60 +_021436c0: .word gMapManager .global func_ov15_021436c4 arm_func_start func_ov15_021436c4 @@ -42710,7 +42710,7 @@ _0214389c: ldr r0, _02143a38 ; =data_ov00_020eec68 mov r1, #0xda str r2, [r7, #0x378] - bl func_ov00_020d73bc + bl PlaySoundEffect _021438f4: ldr r0, [r7, #0x20] bl func_ov15_02149acc @@ -43237,7 +43237,7 @@ _02144020: bl func_ov00_020d716c ldr r0, _0214415c ; =data_ov00_020eec68 mov r1, #0xdb - bl func_ov00_020d73bc + bl PlaySoundEffect add r0, sp, #0 bl func_ov00_0209a4f4 mov r2, #0 @@ -43346,7 +43346,7 @@ _021441a8: bl func_ov00_020d716c ldr r0, _021442d8 ; =data_ov00_020eec68 mov r1, #0xdb - bl func_ov00_020d73bc + bl PlaySoundEffect add r0, sp, #0 bl func_ov00_0209a4f4 mov r2, #0 @@ -43543,7 +43543,7 @@ _0214449c: cmp r0, #0 addne sp, sp, #0xc8 ldmneia sp!, {r3, r4, r5, pc} - ldr r0, _02144540 ; =data_027e0e60 + ldr r0, _02144540 ; =gMapManager mov lr, #0 ldr r0, [r0] sub ip, lr, #2 @@ -43560,7 +43560,7 @@ _0214449c: strb lr, [sp, #0x13] strb lr, [sp, #0x14] strb lr, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02144544 ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -43583,7 +43583,7 @@ _02144530: .word gAdventureFlags _02144534: .word data_ov15_0218613c _02144538: .word data_ov15_02186130 _0214453c: .word data_027e0ffc -_02144540: .word data_027e0e60 +_02144540: .word gMapManager _02144544: .word data_027e0d38 .global func_ov15_02144548 @@ -43709,7 +43709,7 @@ _021446d8: addne sp, sp, #0xc8 str r0, [r4, #0x378] ldmneia sp!, {r4, pc} - ldr r0, _0214476c ; =data_027e0e60 + ldr r0, _0214476c ; =gMapManager mov ip, #0 ldr r0, [r0] sub r4, ip, #2 @@ -43726,7 +43726,7 @@ _021446d8: strb ip, [sp, #0x13] strb ip, [sp, #0x14] strb ip, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02144770 ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -43741,7 +43741,7 @@ _0214475c: .word gAdventureFlags _02144760: .word data_027e0fa0 _02144764: .word data_027e0ffc _02144768: .word 0x000003ea -_0214476c: .word data_027e0e60 +_0214476c: .word gMapManager _02144770: .word data_027e0d38 .global func_ov15_02144774 @@ -44103,7 +44103,7 @@ _02144a40: mov r2, r0 bl func_01ff9bc4 ldr r1, [r9, #0x294] - ldr r0, _021457e0 ; =data_027e0e60 + ldr r0, _021457e0 ; =gMapManager str r1, [r9, #0x4b8] ldr r2, [r9, #0x298] add r1, r9, #0x2a0 @@ -44112,7 +44112,7 @@ _02144a40: mov r2, #0 str r3, [r9, #0x4c0] ldr r0, [r0] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _021457e4 ; =0xfffffe66 mov r2, #0 add r0, r0, r1 @@ -44129,7 +44129,7 @@ _02144d14: add r3, sp, #0xd8 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _021457e0 ; =data_027e0e60 + ldr r0, _021457e0 ; =gMapManager ldr r5, [sp, #0xd8] ldr r4, [sp, #0xdc] ldr r3, [sp, #0xe0] @@ -44139,7 +44139,7 @@ _02144d14: str r5, [sp, #0x24] str r4, [sp, #0x28] str r3, [sp, #0x2c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0xdc] ldr r0, [r9, #0x298] cmp r0, #0x2b8 @@ -44522,7 +44522,7 @@ _021452d4: bl func_ov15_0214651c mov r1, r0 mov r0, r4 - blx func_ov09_0211ca20 + blx GiveShipPart b _02145334 _02145300: cmp r5, #0x30 @@ -44538,12 +44538,12 @@ _0214531c: ldr r0, _0214581c ; =gItemManager mov r1, r5 ldr r0, [r0] - blx _ZN11ItemManager8GiveItemEjjj + blx _ZN11ItemManager8GiveItemEi _02145334: ldr r0, _0214581c ; =gItemManager mov r1, r5 ldr r0, [r0] - blx _ZN11ItemManager15LoadFanfareItemEj + blx _ZN11ItemManager15LoadFanfareItemEi mov r0, r6 mov r1, #1 bl func_ov15_0216e168 @@ -44561,7 +44561,7 @@ _02145370: mov r4, r0 bl func_ov03_020fc10c mov r0, r4 - blx _ZN11ItemManager18func_ov00_020ae648Ejjj + blx _ZN11ItemManager18PlayItemFanfareSfxEi mov r0, #0x10 strb r0, [r9, #0x34d] b _02145420 @@ -44602,7 +44602,7 @@ _021453f8: ldr r0, _0214581c ; =gItemManager mov r1, #0x26 ldr r0, [r0] - blx _ZN11ItemManager8GiveItemEjjj + blx _ZN11ItemManager8GiveItemEi _0214541c: bl func_ov15_021465e8 _02145420: @@ -44851,7 +44851,7 @@ _021457d0: .word gAdventureFlags _021457d4: .word data_027e0f94 _021457d8: .word data_027e0fac _021457dc: .word 0xfffffccd -_021457e0: .word data_027e0e60 +_021457e0: .word gMapManager _021457e4: .word 0xfffffe66 _021457e8: .word data_027e0ffc _021457ec: .word 0x000003e2 @@ -45934,14 +45934,14 @@ _02146558: .word data_ov15_0218f42e arm_func_start func_ov15_0214655c func_ov15_0214655c: ; 0x0214655c stmdb sp!, {r3, lr} - ldr r0, _02146574 ; =data_027e0e60 + ldr r0, _02146574 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev rsb r0, r0, #0 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov15_0214655c -_02146574: .word data_027e0e60 +_02146574: .word gMapManager .global func_ov15_02146578 arm_func_start func_ov15_02146578 @@ -46279,17 +46279,17 @@ _02146958: mov r0, r4 bl func_ov15_021469f8 _02146960: - ldr r0, _021469ec ; =data_027e0e60 + ldr r0, _021469ec ; =gMapManager ldr r0, [r0] - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev ldr r1, [r4, #0x4c] sub r0, r1, r0 cmp r0, #0x2000 addgt sp, sp, #0x18 ldmgtia sp!, {r4, pc} - ldr r0, _021469ec ; =data_027e0e60 + ldr r0, _021469ec ; =gMapManager ldr r0, [r0] - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev ldr r1, [r4, #0x4c] sub r0, r1, r0 mov r1, r0, lsl #0x5 @@ -46316,7 +46316,7 @@ _02146960: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_021468f8 -_021469ec: .word data_027e0e60 +_021469ec: .word gMapManager _021469f0: .word 0x00000333 _021469f4: .word data_ov00_020e9370 @@ -48430,7 +48430,7 @@ func_ov15_021486a0: ; 0x021486a0 movlt r0, #0x400 str r0, [r5, #0x40c] ldr r1, [r5, #0x48] - ldr r0, _02148ac0 ; =data_027e0e60 + ldr r0, _02148ac0 ; =gMapManager str r1, [sp, #0x34] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -48440,7 +48440,7 @@ func_ov15_021486a0: ; 0x021486a0 str r2, [sp, #0x38] str r3, [sp, #0x3c] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r5, #0x3f8] ldrb r0, [r5, #0x438] cmp r0, #4 @@ -48685,7 +48685,7 @@ _02148aa8: .align 2, 0 arm_func_end func_ov15_021486a0 _02148abc: .word data_027e10a4 -_02148ac0: .word data_027e0e60 +_02148ac0: .word gMapManager _02148ac4: .word 0x00000aab _02148ac8: .word data_02050f54 _02148acc: .word data_ov15_0218b59c @@ -54185,7 +54185,7 @@ func_ov15_0214d358: ; 0x0214d358 mov r1, r0 mov r0, r5 mov r2, #0 - bl _ZN11ItemManager10GiveRupeesEjj + bl _ZN11ItemManager10GiveRupeesEsb ldr r1, [r4, #0x158] ldr r0, _0214d3dc ; =data_ov00_020eec9c add r1, r1, #0xfa @@ -54825,7 +54825,7 @@ _0214db1c: mov r6, #4 str r1, [sp, #0x30] ldr r1, [r5, #0x48] - ldr ip, _0214dc04 ; =data_027e0e60 + ldr ip, _0214dc04 ; =gMapManager str r1, [sp, #0x1c] ldr r2, [r5, #0x4c] add r1, sp, #0x34 @@ -54855,7 +54855,7 @@ _0214dbf4: .word data_ov15_0218f65c _0214dbf8: .word func_ov15_0214dc08 _0214dbfc: .word data_ov15_0218f650 _0214dc00: .word 0x0000ffff -_0214dc04: .word data_027e0e60 +_0214dc04: .word gMapManager .global func_ov15_0214dc08 arm_func_start func_ov15_0214dc08 @@ -55882,12 +55882,12 @@ _0214eab8: .word data_027e0ff8 arm_func_start func_ov15_0214eabc func_ov15_0214eabc: ; 0x0214eabc stmdb sp!, {r3, r4, r5, lr} - ldr r2, _0214eb14 ; =data_027e0e60 + ldr r2, _0214eb14 ; =gMapManager mov r5, r0 ldr r0, [r2] mov r4, r1 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #4] ldr ip, [r5, #0x15c] sub r3, r1, ip @@ -55905,7 +55905,7 @@ func_ov15_0214eabc: ; 0x0214eabc ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov15_0214eabc -_0214eb14: .word data_027e0e60 +_0214eb14: .word gMapManager .global func_ov15_0214eb18 arm_func_start func_ov15_0214eb18 @@ -57644,10 +57644,10 @@ _02150234: add r1, r2, r1 str r1, [r10, #0x1a0] ldr r1, [r0] - ldr r0, _02150858 ; =data_027e0e60 + ldr r0, _02150858 ; =gMapManager ldrb r6, [r1, #0x28] ldr r0, [r0] - bl func_ov00_02082d40 + bl _ZN10MapManager18func_ov00_02082d40Ev strb r0, [sp, #8] and r0, r0, #0xff strb r0, [r10, #0x29c] @@ -57731,10 +57731,10 @@ _02150460: add r3, sp, #0x48 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02150858 ; =data_027e0e60 + ldr r0, _02150858 ; =gMapManager add r1, sp, #0x30 ldr r0, [r0] - bl func_ov00_0208346c + bl _ZN10MapManager18func_ov00_0208346cEP4AABB ldr r1, [sp, #0x30] ldr r0, [sp, #0x38] add r1, r1, #0xc000 @@ -58001,7 +58001,7 @@ _02150848: .word data_027e0dbc _0215084c: .word data_027e0dcc _02150850: .word data_027e0fe4 _02150854: .word 0x00000999 -_02150858: .word data_027e0e60 +_02150858: .word gMapManager _0215085c: .word data_027e0ff0 _02150860: .word data_ov15_02186394 _02150864: .word data_ov15_0218bef4 @@ -58022,7 +58022,7 @@ func_ov15_02150874: ; 0x02150874 mov r0, r4 bl func_ov15_02151174 ldr r1, [r4, #0x48] - ldr r0, _021508f4 ; =data_027e0e60 + ldr r0, _021508f4 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -58031,7 +58031,7 @@ func_ov15_02150874: ; 0x02150874 add r1, sp, #0 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] ldr r1, _021508f8 ; =data_ov15_0218bef4 ldr r2, _021508fc ; =data_ov15_0218bef8 @@ -58046,7 +58046,7 @@ func_ov15_02150874: ; 0x02150874 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_02150874 -_021508f4: .word data_027e0e60 +_021508f4: .word gMapManager _021508f8: .word data_ov15_0218bef4 _021508fc: .word data_ov15_0218bef8 @@ -58607,7 +58607,7 @@ func_ov15_021510c0: ; 0x021510c0 sub r0, r0, #1 strb r0, [r4, #0x1ac] ldr r1, [r4, #0x48] - ldr r0, _02151164 ; =data_027e0e60 + ldr r0, _02151164 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -58616,7 +58616,7 @@ func_ov15_021510c0: ; 0x021510c0 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x184] sub r0, r0, r1 str r0, [r4, #0x4c] @@ -58637,7 +58637,7 @@ _0215112c: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_021510c0 -_02151164: .word data_027e0e60 +_02151164: .word gMapManager _02151168: .word data_ov15_0218bef4 _0215116c: .word data_ov15_0218bef8 _02151170: .word data_ov15_021863a4 @@ -59018,7 +59018,7 @@ func_ov15_02151680: ; 0x02151680 mov r0, #2 strb r0, [r4, #0x1ac] ldr r1, [r4, #0x48] - ldr r0, _021516f8 ; =data_027e0e60 + ldr r0, _021516f8 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -59027,7 +59027,7 @@ func_ov15_02151680: ; 0x02151680 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r4, #0x184] ldr r1, _021516fc ; =data_ov15_0218bf00 sub r0, r0, r2 @@ -59044,7 +59044,7 @@ func_ov15_02151680: ; 0x02151680 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_02151680 -_021516f8: .word data_027e0e60 +_021516f8: .word gMapManager _021516fc: .word data_ov15_0218bf00 _02151700: .word data_ov15_0218befc @@ -59519,11 +59519,11 @@ _02151cf8: .word data_ov15_0218bff8 func_ov15_02151cfc: ; 0x02151cfc stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _02151d7c ; =data_027e0e60 + ldr r0, _02151d7c ; =gMapManager ldrh r1, [r4, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 bne _02151d68 ldr r0, _02151d80 ; =data_027e10a4 @@ -59533,9 +59533,9 @@ func_ov15_02151cfc: ; 0x02151cfc ldreqb r0, [r1, #0x4d5] cmpeq r0, #0 bne _02151d68 - ldr r0, _02151d7c ; =data_027e0e60 + ldr r0, _02151d7c ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev cmp r0, #6 beq _02151d68 ldr r0, [r4, #0x184] @@ -59552,7 +59552,7 @@ _02151d68: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_02151cfc -_02151d7c: .word data_027e0e60 +_02151d7c: .word gMapManager _02151d80: .word data_027e10a4 .global func_ov15_02151d84 @@ -59673,11 +59673,11 @@ _02151ef4: .word data_ov15_0218bff8 func_ov15_02151ef8: ; 0x02151ef8 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _02151f60 ; =data_027e0e60 + ldr r0, _02151f60 ; =gMapManager ldrh r1, [r4, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 bne _02151f4c ldr r0, _02151f64 ; =data_027e10a4 @@ -59687,9 +59687,9 @@ func_ov15_02151ef8: ; 0x02151ef8 ldreqb r0, [r1, #0x4d5] cmpeq r0, #0 bne _02151f4c - ldr r0, _02151f60 ; =data_027e0e60 + ldr r0, _02151f60 ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev cmp r0, #6 ldmneia sp!, {r4, pc} _02151f4c: @@ -59700,7 +59700,7 @@ _02151f4c: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_02151ef8 -_02151f60: .word data_027e0e60 +_02151f60: .word gMapManager _02151f64: .word data_027e10a4 .global func_ov15_02151f68 @@ -60242,7 +60242,7 @@ _02152590: strh r2, [r1, #0x4c] bl func_ov00_0209a508 _021525f4: - ldr r0, _02152688 ; =data_027e0e60 + ldr r0, _02152688 ; =gMapManager mov lr, #0 ldr r0, [r0] sub ip, lr, #2 @@ -60259,7 +60259,7 @@ _021525f4: strb lr, [sp, #0x13] strb lr, [sp, #0x14] strb lr, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _0215268c ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -60282,7 +60282,7 @@ _0215265c: .align 2, 0 arm_func_end func_ov15_02152560 _02152684: .word gAdventureFlags -_02152688: .word data_027e0e60 +_02152688: .word gMapManager _0215268c: .word data_027e0d38 _02152690: .word data_027e0fa0 @@ -60849,13 +60849,13 @@ _02152e6c: strlt r0, [r5, #0x3ac] ldr r2, [r5, #0x3a0] ldr r1, [r5, #0x3ac] - ldr r0, _02153488 ; =data_027e0e60 + ldr r0, _02153488 ; =gMapManager add r1, r2, r1 str r1, [r5, #0x3a0] ldr r0, [r0] add r1, r5, #0x39c mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x3a0] cmp r1, r0 bge _02152f6c @@ -60864,7 +60864,7 @@ _02152e6c: add r3, sp, #0xd8 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02153488 ; =data_027e0e60 + ldr r0, _02153488 ; =gMapManager ldr r7, [sp, #0xd8] ldr r6, [sp, #0xdc] ldr r3, [sp, #0xe0] @@ -60874,7 +60874,7 @@ _02152e6c: str r7, [sp, #0x78] str r6, [sp, #0x7c] str r3, [sp, #0x80] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0xdc] ldr r1, _0215348c ; =0x00000266 add r0, sp, #0xd8 @@ -60995,11 +60995,11 @@ _021530c4: ldrb r0, [r5, #0x436] cmp r0, #4 bne _021531b0 - ldr r0, _02153488 ; =data_027e0e60 + ldr r0, _02153488 ; =gMapManager add r1, r5, #0x39c ldr r0, [r0] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x3a0] cmp r1, r0 strlt r0, [r5, #0x3a0] @@ -61247,7 +61247,7 @@ _02153478: .word data_02050f54 _0215347c: .word 0xfffffd9a _02153480: .word 0x000004aa _02153484: .word data_027e0ffc -_02153488: .word data_027e0e60 +_02153488: .word gMapManager _0215348c: .word 0x00000266 _02153490: .word data_027e0e58 _02153494: .word 0x00001002 @@ -61729,7 +61729,7 @@ _02153b28: bl func_ov15_02153938 ldr r0, [r4, #0x41c] add r0, r0, #0x46 - blx _ZN11ItemManager18func_ov00_020ae648Ejjj + blx _ZN11ItemManager18PlayItemFanfareSfxEi mov r0, #5 strb r0, [r5, #0x436] b _02153d74 @@ -61848,7 +61848,7 @@ _02153ce0: strneb r0, [r5, #0x436] b _02153d74 _02153d0c: - ldr r0, _02153f78 ; =data_027e0e60 + ldr r0, _02153f78 ; =gMapManager mov r7, #0 ldr r0, [r0] sub r6, r7, #2 @@ -61865,7 +61865,7 @@ _02153d0c: strb r7, [sp, #0xa3] strb r7, [sp, #0xa4] strb r7, [sp, #0xa5] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02153f7c ; =data_027e0d38 add r1, sp, #0x90 ldr r0, [r0] @@ -62006,7 +62006,7 @@ _02153f68: .word 0x000006f6 _02153f6c: .word 0xffffdf2b _02153f70: .word 0x000004cd _02153f74: .word 0xfffff8e1 -_02153f78: .word data_027e0e60 +_02153f78: .word gMapManager _02153f7c: .word data_027e0d38 _02153f80: .word data_027e0fac _02153f84: .word data_02050f54 @@ -62029,7 +62029,7 @@ func_ov15_02153f94: ; 0x02153f94 mov r0, r5 bl func_ov15_02175ba8 ldr r1, _0215417c ; =data_027e0f94 - ldr r0, _02154180 ; =data_027e0e60 + ldr r0, _02154180 ; =gMapManager ldr r2, [r1, #4] ldr r3, [r1] str r2, [sp, #0x10] @@ -62039,7 +62039,7 @@ func_ov15_02153f94: ; 0x02153f94 add r1, sp, #0xc mov r2, #0 str r3, [sp, #0x14] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _0215417c ; =data_027e0f94 ldr r2, [r1, #4] cmp r2, r0 @@ -62142,7 +62142,7 @@ func_ov15_02153f94: ; 0x02153f94 arm_func_end func_ov15_02153f94 _02154178: .word data_027e0fe4 _0215417c: .word data_027e0f94 -_02154180: .word data_027e0e60 +_02154180: .word gMapManager _02154184: .word 0x000003d7 _02154188: .word data_027e0fac _0215418c: .word data_ov15_021863bc @@ -62211,7 +62211,7 @@ _02154254: bl func_ov15_02153938 ldr r0, [r5, #0x41c] add r0, r0, #0x46 - blx _ZN11ItemManager18func_ov00_020ae648Ejjj + blx _ZN11ItemManager18PlayItemFanfareSfxEi mov r0, #5 strb r0, [r4, #0x436] b _02154304 @@ -62223,7 +62223,7 @@ _02154280: ldr r0, [r0, #0x44] cmp r0, #0 beq _02154304 - ldr r0, _02154320 ; =data_027e0e60 + ldr r0, _02154320 ; =gMapManager mov lr, #0 ldr r0, [r0] sub ip, lr, #2 @@ -62240,7 +62240,7 @@ _02154280: strb lr, [sp, #0x13] strb lr, [sp, #0x14] strb lr, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02154324 ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -62259,7 +62259,7 @@ _02154304: _02154314: .word data_027e0fe4 _02154318: .word data_027e1060 _0215431c: .word data_027e0c68 -_02154320: .word data_027e0e60 +_02154320: .word gMapManager _02154324: .word data_027e0d38 .global func_ov15_02154328 @@ -62311,7 +62311,7 @@ _02154374: bl func_ov00_020d716c ldr r0, _02154620 ; =data_ov00_020eec68 mov r1, #0xde - bl func_ov00_020d73bc + bl PlaySoundEffect mov r0, #1 strb r0, [r5, #0x436] mov r0, #0 @@ -62332,7 +62332,7 @@ _02154404: ldr r0, [r5, #0x3e4] cmp r0, #0 bne _02154490 - ldr r0, _02154624 ; =data_027e0e60 + ldr r0, _02154624 ; =gMapManager mov ip, #0 ldr r0, [r0] sub r4, ip, #2 @@ -62349,7 +62349,7 @@ _02154404: strb ip, [sp, #0x5f] strb ip, [sp, #0x60] strb ip, [sp, #0x61] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02154628 ; =data_027e0d38 add r1, sp, #0x4c ldr r0, [r0] @@ -62431,7 +62431,7 @@ _02154490: ldmia r0, {r0, r1, r2} stmia r4, {r0, r1, r2} ldr r2, [sp, #0x28] - ldr r3, _02154624 ; =data_027e0e60 + ldr r3, _02154624 ; =gMapManager ldr r1, [sp, #0x2c] str r2, [sp, #4] ldr r2, [sp, #0x30] @@ -62440,7 +62440,7 @@ _02154490: ldr r0, [r3] add r1, sp, #4 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x2c] mvn r0, #0x80000000 str r0, [sp] @@ -62463,7 +62463,7 @@ _0215460c: arm_func_end func_ov15_02154328 _0215461c: .word data_027e0fe4 _02154620: .word data_ov00_020eec68 -_02154624: .word data_027e0e60 +_02154624: .word gMapManager _02154628: .word data_027e0d38 _0215462c: .word data_02050f54 @@ -62480,7 +62480,7 @@ func_ov15_02154630: ; 0x02154630 beq _021546d0 b _021546e8 _02154654: - ldr r0, _021546f8 ; =data_027e0e60 + ldr r0, _021546f8 ; =gMapManager mov lr, #0 ldr r0, [r0] sub ip, lr, #2 @@ -62497,7 +62497,7 @@ _02154654: strb lr, [sp, #0x13] strb lr, [sp, #0x14] strb lr, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _021546fc ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -62525,7 +62525,7 @@ _021546e8: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov15_02154630 -_021546f8: .word data_027e0e60 +_021546f8: .word gMapManager _021546fc: .word data_027e0d38 _02154700: .word data_ov00_020eec9c @@ -64338,7 +64338,7 @@ _02156084: add r3, sp, #0xc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02156194 ; =data_027e0e60 + ldr r0, _02156194 ; =gMapManager ldr ip, [sp, #0xc] ldr r4, [sp, #0x10] ldr r3, [sp, #0x14] @@ -64348,7 +64348,7 @@ _02156084: str ip, [sp] str r4, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x10] sub r4, r1, r0 mov r0, r6 @@ -64394,7 +64394,7 @@ _02156184: .word 0x00000171 _02156188: .word data_ov15_0218c0e4 _0215618c: .word data_ov15_0218c0f0 _02156190: .word data_027e0f94 -_02156194: .word data_027e0e60 +_02156194: .word gMapManager _02156198: .word 0x00000333 .global func_ov15_0215619c @@ -65041,7 +65041,7 @@ func_ov15_02156970: ; 0x02156970 mov r4, r1 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02156a2c ; =data_027e0e60 + ldr r0, _02156a2c ; =gMapManager ldr lr, [sp, #0x14] ldr ip, [sp, #0x18] ldr r3, [sp, #0x1c] @@ -65051,7 +65051,7 @@ func_ov15_02156970: ; 0x02156970 str lr, [sp, #8] str ip, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] ldr r1, _02156a30 ; =0x00000333 add r0, sp, #0x14 @@ -65083,7 +65083,7 @@ func_ov15_02156970: ; 0x02156970 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_02156970 -_02156a2c: .word data_027e0e60 +_02156a2c: .word gMapManager _02156a30: .word 0x00000333 _02156a34: .word data_027e0e58 _02156a38: .word 0x00000666 @@ -65099,7 +65099,7 @@ func_ov15_02156a44: ; 0x02156a44 add r3, sp, #0x14 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02156af0 ; =data_027e0e60 + ldr r0, _02156af0 ; =gMapManager ldr lr, [sp, #0x14] ldr ip, [sp, #0x18] ldr r3, [sp, #0x1c] @@ -65109,7 +65109,7 @@ func_ov15_02156a44: ; 0x02156a44 str lr, [sp, #8] str ip, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] add r0, sp, #0x14 mov r1, #0xa00 @@ -65138,7 +65138,7 @@ func_ov15_02156a44: ; 0x02156a44 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov15_02156a44 -_02156af0: .word data_027e0e60 +_02156af0: .word gMapManager _02156af4: .word data_027e0e58 _02156af8: .word 0x000009ec _02156afc: .word data_027e0ffc @@ -66208,7 +66208,7 @@ func_ov15_021578e0: ; 0x021578e0 str r2, [r8] ldrh r1, [r1, #0x10] add r8, sp, #0x38 - ldr r6, _02157c30 ; =data_027e0e60 + ldr r6, _02157c30 ; =gMapManager mov r1, r1, asr #0x4 mov r1, r1, lsl #0x2 ldrsh r1, [r5, r1] @@ -66232,7 +66232,7 @@ func_ov15_021578e0: ; 0x021578e0 add r1, sp, #8 mov r2, r7 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x3c] ldr r7, _02157c34 ; =0x000004cd sub r5, r1, r0 @@ -66352,7 +66352,7 @@ _02157c20: .word data_ov15_0218c1d8 _02157c24: .word data_ov15_0218c1e4 _02157c28: .word data_027e0f94 _02157c2c: .word data_02050f54 -_02157c30: .word data_027e0e60 +_02157c30: .word gMapManager _02157c34: .word 0x000004cd _02157c38: .word data_027e0fe4 _02157c3c: .word 0x00001333 @@ -66577,11 +66577,11 @@ _02157ed8: cmp r0, #0 addne sp, sp, #0x5c ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, _021583a8 ; =data_027e0e60 + ldr r0, _021583a8 ; =gMapManager ldrh r1, [r10, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 addeq sp, sp, #0x5c ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -66897,7 +66897,7 @@ _02158394: .align 2, 0 arm_func_end func_ov15_02157e68 _021583a4: .word data_027e10a4 -_021583a8: .word data_027e0e60 +_021583a8: .word gMapManager _021583ac: .word data_027e0764 _021583b0: .word data_027e0f94 _021583b4: .word data_027e0fe8 @@ -66973,10 +66973,10 @@ func_ov15_0215846c: ; 0x0215846c mov r4, #0 ands r1, r0, #0xff beq _021584f8 - ldr r0, _0215856c ; =data_027e0e60 + ldr r0, _0215856c ; =gMapManager mov r2, r4 ldr r0, [r0] - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _021584f8 ldr r6, _02158570 ; =data_027e0fe4 @@ -67005,10 +67005,10 @@ _021584f8: ldrh r0, [r5, #0x26] ands r1, r0, #0xff ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - ldr r0, _0215856c ; =data_027e0e60 + ldr r0, _0215856c ; =gMapManager mov r2, #0 ldr r0, [r0] - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mov r9, #0 @@ -67035,7 +67035,7 @@ _02158554: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov15_0215846c -_0215856c: .word data_027e0e60 +_0215856c: .word gMapManager _02158570: .word data_027e0fe4 .global func_ov15_02158574 @@ -67464,7 +67464,7 @@ _02158b30: b _02158c9c _02158b38: ldr r1, [r5, #0x48] - ldr r0, _02158cc8 ; =data_027e0e60 + ldr r0, _02158cc8 ; =gMapManager str r1, [sp] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -67473,7 +67473,7 @@ _02158b38: add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r5, #0x4c] ldr r1, _02158ccc ; =data_ov15_0218c384 sub r0, r0, r2 @@ -67571,7 +67571,7 @@ _02158cb8: .word data_02050f54 _02158cbc: .word data_027e0f94 _02158cc0: .word data_027e0fac _02158cc4: .word data_027e0c68 -_02158cc8: .word data_027e0e60 +_02158cc8: .word gMapManager _02158ccc: .word data_ov15_0218c384 _02158cd0: .word 0x00000ccd _02158cd4: .word data_027e0fe4 @@ -67856,7 +67856,7 @@ _021590c4: str r3, [r4, #0x60] ldrsh r2, [r5, r1] ldr r1, [r4, #0x2e0] - ldr r0, _02159280 ; =data_027e0e60 + ldr r0, _02159280 ; =gMapManager smull r3, r1, r2, r1 adds r2, r3, #0x800 adc r1, r1, #0 @@ -67872,7 +67872,7 @@ _021590c4: ldr r3, [r4, #0x50] mov r2, #0 str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x1f8] mov r5, r0 cmp r1, #4 @@ -67959,7 +67959,7 @@ _02159270: .word data_027e0d0c _02159274: .word data_02050f54 _02159278: .word data_027e0f94 _0215927c: .word 0x0000019a -_02159280: .word data_027e0e60 +_02159280: .word gMapManager .global func_ov15_02159284 arm_func_start func_ov15_02159284 @@ -68200,7 +68200,7 @@ func_ov15_0215957c: ; 0x0215957c cmp r6, #0x2b000 bge _0215969c ldr r1, [r5, #0x48] - ldr r0, _021597b8 ; =data_027e0e60 + ldr r0, _021597b8 ; =gMapManager str r1, [sp, #0x14] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -68209,7 +68209,7 @@ func_ov15_0215957c: ; 0x0215957c add r1, sp, #0x14 mov r2, #0 str r3, [sp, #0x1c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r4, r0 cmp r6, #0x2a000 bne _021595fc @@ -68271,7 +68271,7 @@ _0215969c: bne _0215976c bl _ZN5Actor12ApplyGravityEv ldr r1, [r5, #0x48] - ldr r0, _021597b8 ; =data_027e0e60 + ldr r0, _021597b8 ; =gMapManager str r1, [sp, #8] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -68280,7 +68280,7 @@ _0215969c: add r1, sp, #8 str r2, [sp, #0x10] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x4c] mov r4, r0 cmp r1, r4 @@ -68340,7 +68340,7 @@ _0215976c: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov15_0215957c -_021597b8: .word data_027e0e60 +_021597b8: .word gMapManager _021597bc: .word data_ov15_0218c384 _021597c0: .word 0x00000d9a _021597c4: .word data_027e0e58 @@ -68621,7 +68621,7 @@ func_ov15_02159b70: ; 0x02159b70 sub sp, sp, #0xc mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _02159be8 ; =data_027e0e60 + ldr r0, _02159be8 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -68630,7 +68630,7 @@ func_ov15_02159b70: ; 0x02159b70 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r4, #0x4c] sub r1, r0, #0x800 cmp r2, r1 @@ -68650,7 +68650,7 @@ _02159bd4: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_02159b70 -_02159be8: .word data_027e0e60 +_02159be8: .word gMapManager .global func_ov15_02159bec arm_func_start func_ov15_02159bec @@ -68791,7 +68791,7 @@ func_ov15_02159db8: ; 0x02159db8 sub sp, sp, #0xc mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _02159e34 ; =data_027e0e60 + ldr r0, _02159e34 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -68800,7 +68800,7 @@ func_ov15_02159db8: ; 0x02159db8 add r1, sp, #0 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _02159e38 ; =0xfffff4cd ldr r2, [r4, #0x4c] add r0, r0, r1 @@ -68821,7 +68821,7 @@ _02159e24: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_02159db8 -_02159e34: .word data_027e0e60 +_02159e34: .word gMapManager _02159e38: .word 0xfffff4cd .global func_ov15_02159e3c @@ -68909,7 +68909,7 @@ _02159ea0: str r3, [sp, #0x10] bl func_01ff9bc4 ldr r0, [sp] - ldr r1, _0215a1ac ; =data_027e0e60 + ldr r1, _0215a1ac ; =gMapManager ldr r0, [r0, #0x48] str r0, [sp, #0x24] ldr r0, [sp] @@ -68921,7 +68921,7 @@ _02159ea0: add r1, sp, #0x24 str r2, [sp, #0x2c] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x34] mov r0, #0 ldr r7, [sp] @@ -69058,7 +69058,7 @@ _0215a17c: .align 2, 0 arm_func_end func_ov15_02159e3c _0215a1a8: .word data_02050f54 -_0215a1ac: .word data_027e0e60 +_0215a1ac: .word gMapManager _0215a1b0: .word data_ov15_021864ec _0215a1b4: .word data_027e0e58 @@ -69365,11 +69365,11 @@ _0215a500: addlt sp, sp, #0x30 movlt r0, #0 ldmltia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, _0215a75c ; =data_027e0e60 + ldr r0, _0215a75c ; =gMapManager ldrh r1, [r10, #0x20] ldr r0, [r0] add r2, sp, #0x18 - bl func_ov00_020836bc + bl _ZN10MapManager18func_ov00_020836bcEjPi str r0, [r10, #0x1ec] ldr r2, [sp, #0x24] ldr r1, [sp, #0x18] @@ -69500,7 +69500,7 @@ _0215a74c: .word data_027e10a8 _0215a750: .word data_ov15_021865c8 _0215a754: .word data_ov15_021865dc _0215a758: .word data_027e0fec -_0215a75c: .word data_027e0e60 +_0215a75c: .word gMapManager _0215a760: .word data_027e0ff0 _0215a764: .word 0x02f44000 @@ -69514,11 +69514,11 @@ func_ov15_0215a768: ; 0x0215a768 cmp r0, #0 addeq sp, sp, #8 ldmeqia sp!, {r4, pc} - ldr r0, _0215a8bc ; =data_027e0e60 + ldr r0, _0215a8bc ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 mov r1, #0x37 beq _0215a820 @@ -69574,9 +69574,9 @@ _0215a858: mov r0, #1 strb r0, [r4, #0x236] _0215a860: - ldr r0, _0215a8bc ; =data_027e0e60 + ldr r0, _0215a8bc ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d40 + bl _ZN10MapManager18func_ov00_02082d40Ev cmp r0, #0 addne sp, sp, #8 ldmneia sp!, {r4, pc} @@ -69599,7 +69599,7 @@ _0215a860: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_0215a768 -_0215a8bc: .word data_027e0e60 +_0215a8bc: .word gMapManager _0215a8c0: .word gAdventureFlags _0215a8c4: .word data_ov15_021865e8 _0215a8c8: .word data_ov15_021865fc @@ -69682,10 +69682,10 @@ func_ov15_0215a970: ; 0x0215a970 add sp, sp, #0x40 ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} _0215a9c0: - ldr r0, _0215b26c ; =data_027e0e60 + ldr r0, _0215b26c ; =gMapManager mov r6, #0 ldr r0, [r0] - bl func_ov00_02082d40 + bl _ZN10MapManager18func_ov00_02082d40Ev cmp r0, #0 beq _0215a9e4 cmp r0, #1 @@ -69780,20 +69780,20 @@ _0215ab28: mov r5, #0 cmp r1, #0 beq _0215ab4c - ldr r0, _0215b26c ; =data_027e0e60 + ldr r0, _0215b26c ; =gMapManager mov r2, r5 ldr r0, [r0] - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii mov r5, r0 _0215ab4c: ldrb r0, [r4, #0x236] cmp r0, #4 beq _0215ab84 - ldr r0, _0215b26c ; =data_027e0e60 + ldr r0, _0215b26c ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 bne _0215ab84 ldrb r0, [r4, #0x236] @@ -70224,9 +70224,9 @@ _0215b164: orr r5, r5, r1, lsl #20 cmpeq r10, #1 bne _0215b240 - ldr r0, _0215b26c ; =data_027e0e60 + ldr r0, _0215b26c ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d40 + bl _ZN10MapManager18func_ov00_02082d40Ev cmp r0, #0 bne _0215b238 add r0, r4, #0x200 @@ -70269,7 +70269,7 @@ _0215b248: arm_func_end func_ov15_0215a970 _0215b264: .word data_027e0f94 _0215b268: .word data_027e10a8 -_0215b26c: .word data_027e0e60 +_0215b26c: .word gMapManager _0215b270: .word data_027e0c68 _0215b274: .word 0x0005000f _0215b278: .word data_02050f54 @@ -70513,21 +70513,21 @@ _0215b54c: mov r1, r1, lsl #0x10 mov r1, r1, lsr #0x10 bl func_ov00_0209cdbc - ldr r0, _0215b62c ; =data_027e0e60 + ldr r0, _0215b62c ; =gMapManager mov r1, #0 ldr r0, [r0] - bl func_ov00_020823b4 - ldr r0, _0215b62c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823b4Ev + ldr r0, _0215b62c ; =gMapManager mov r1, #0 ldr r0, [r0] - bl func_ov00_020823a4 + bl _ZN10MapManager18func_ov00_020823a4Ei ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov15_0215b358 _0215b620: .word data_ov00_020ee0a0 _0215b624: .word data_ov15_021865c8 _0215b628: .word 0x00000249 -_0215b62c: .word data_027e0e60 +_0215b62c: .word gMapManager .global func_ov15_0215b630 arm_func_start func_ov15_0215b630 @@ -70707,11 +70707,11 @@ _0215b848: .word data_027e0f94 arm_func_start func_ov15_0215b84c func_ov15_0215b84c: ; 0x0215b84c stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r1, _0215bac0 ; =data_027e0e60 + ldr r1, _0215bac0 ; =gMapManager mov r4, r0 ldr r0, [r1] mov r1, #1 - bl func_ov00_020823b4 + bl _ZN10MapManager18func_ov00_020823b4Ev ldr r1, [r4, #0x1c4] ldr r0, _0215bac4 ; =data_ov00_020ee0a0 mov r1, r1, asr #0xc @@ -70869,7 +70869,7 @@ _0215ba10: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov15_0215b84c -_0215bac0: .word data_027e0e60 +_0215bac0: .word gMapManager _0215bac4: .word data_ov00_020ee0a0 _0215bac8: .word 0x00000249 @@ -71094,11 +71094,11 @@ _0215bd68: mov r0, #0 strb r0, [r4, #0x1b8] _0215bd70: - ldr r0, _0215bda8 ; =data_027e0e60 + ldr r0, _0215bda8 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 mov r0, r4 beq _0215bd98 @@ -71111,7 +71111,7 @@ _0215bd98: arm_func_end func_ov15_0215bcf4 _0215bda0: .word data_027e0d38 _0215bda4: .word data_027e0e2c -_0215bda8: .word data_027e0e60 +_0215bda8: .word gMapManager .global func_ov15_0215bdac arm_func_start func_ov15_0215bdac @@ -71256,7 +71256,7 @@ _0215bf70: sub r2, r3, #2 mov r5, #0x47 mov r1, #0xff - ldr r0, _0215c340 ; =data_027e0e60 + ldr r0, _0215c340 ; =gMapManager str r2, [sp, #0x48] str r5, [sp, #0x3c] str r3, [sp, #0x40] @@ -71269,7 +71269,7 @@ _0215bf70: ldrh r1, [r4, #0x22] ldr r0, [r0] add r2, sp, #0x3c - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 beq _0215c058 ldr r0, _0215c334 ; =data_027e10a4 @@ -71370,11 +71370,11 @@ _0215c154: add r3, sp, #0x30 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0215c340 ; =data_027e0e60 + ldr r0, _0215c340 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] add r2, sp, #0x18 - bl func_ov00_020836bc + bl _ZN10MapManager18func_ov00_020836bcEjPi ldr r2, [sp, #0x2c] ldr r1, [sp, #0x38] sub r0, r2, #0x7000 @@ -71495,7 +71495,7 @@ _0215c330: .word gAdventureFlags _0215c334: .word data_027e10a4 _0215c338: .word data_027e0c68 _0215c33c: .word 0x0005004a -_0215c340: .word data_027e0e60 +_0215c340: .word gMapManager _0215c344: .word 0x00000186 _0215c348: .word data_027e0e2c _0215c34c: .word func_ov15_0215bb6c @@ -71583,11 +71583,11 @@ _0215c474: add r3, sp, #0x18 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0215c578 ; =data_027e0e60 + ldr r0, _0215c578 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] add r2, sp, #0 - bl func_ov00_020836bc + bl _ZN10MapManager18func_ov00_020836bcEjPi ldr r2, [sp, #0x14] ldr r1, [sp, #0x20] sub r0, r2, #0x7000 @@ -71647,7 +71647,7 @@ _0215c568: .word 0x00050010 _0215c56c: .word func_ov15_0215bb6c _0215c570: .word data_027e103c _0215c574: .word data_027e0f94 -_0215c578: .word data_027e0e60 +_0215c578: .word gMapManager _0215c57c: .word data_027e0f64 _0215c580: .word gAdventureFlags @@ -71657,11 +71657,11 @@ func_ov15_0215c584: ; 0x0215c584 stmdb sp!, {r4, lr} sub sp, sp, #0xb0 mov r4, r0 - ldr r0, _0215c690 ; =data_027e0e60 + ldr r0, _0215c690 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0215c660 ldrb r0, [r4, #0x1bc] @@ -71725,7 +71725,7 @@ _0215c660: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_0215c584 -_0215c690: .word data_027e0e60 +_0215c690: .word gMapManager _0215c694: .word data_027e0f64 _0215c698: .word gAdventureFlags _0215c69c: .word data_027e10a4 @@ -72459,7 +72459,7 @@ func_ov15_0215d078: ; 0x0215d078 mov r6, #0x47 mov r3, #0xff str r4, [sp, #0x60] - ldr r2, _0215d22c ; =data_027e0e60 + ldr r2, _0215d22c ; =gMapManager str r6, [sp, #0x54] str r5, [sp, #0x58] str r5, [sp, #0x5c] @@ -72472,7 +72472,7 @@ func_ov15_0215d078: ; 0x0215d078 ldrh r1, [r0] ldr r0, [r2] add r2, sp, #0x54 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 addeq sp, sp, #0x6c moveq r0, r5 @@ -72564,7 +72564,7 @@ _0215d1cc: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov15_0215d078 -_0215d22c: .word data_027e0e60 +_0215d22c: .word gMapManager _0215d230: .word data_027e0f64 _0215d234: .word data_027e10a4 @@ -73795,10 +73795,10 @@ _0215e0f4: ldrneb r0, [r6, #0x3eb] cmpne r0, #0 beq _0215e558 - ldr r0, _0215e570 ; =data_027e0e60 + ldr r0, _0215e570 ; =gMapManager mov r2, #0 ldr r0, [r0] - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 bne _0215e558 ldr r0, _0215e574 ; =data_027e0dbc @@ -74087,7 +74087,7 @@ _0215e558: arm_func_end func_ov15_0215dff8 _0215e568: .word data_027e0d0c _0215e56c: .word data_027e0764 -_0215e570: .word data_027e0e60 +_0215e570: .word gMapManager _0215e574: .word data_027e0dbc _0215e578: .word 0x00000ccc _0215e57c: .word data_027e0f64 @@ -74323,7 +74323,7 @@ func_ov15_0215e890: ; 0x0215e890 add r1, r1, #1 str r1, [r9, #0x3b8] ldrsh r3, [r0, #0xe4] - ldr r2, _0215f7b8 ; =data_027e0e60 + ldr r2, _0215f7b8 ; =gMapManager add r1, sp, #0x4c add r3, r3, #1 strh r3, [r0, #0xe4] @@ -74335,7 +74335,7 @@ func_ov15_0215e890: ; 0x0215e890 str r3, [sp, #0x50] ldr r3, [r9, #0x50] str r3, [sp, #0x54] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r9, #0x130] mov r6, r0 cmp r1, #7 @@ -74351,9 +74351,9 @@ _0215e8f8: ; jump table b _0215f70c ; case 6 b _0215f50c ; case 7 _0215e918: - ldr r0, _0215f7b8 ; =data_027e0e60 + ldr r0, _0215f7b8 ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev cmp r0, #6 ldr r0, [r9, #0x3b8] subeq r0, r0, #1 @@ -74547,9 +74547,9 @@ _0215ebbc: bl func_ov15_0215fb6c cmp r0, #0 beq _0215ec14 - ldr r0, _0215f7b8 ; =data_027e0e60 + ldr r0, _0215f7b8 ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev cmp r0, #6 bne _0215ec24 _0215ec14: @@ -74804,7 +74804,7 @@ _0215ef7c: mov r2, r0 bl func_01ff9bc4 ldr r1, [r9, #0x48] - ldr r0, _0215f7b8 ; =data_027e0e60 + ldr r0, _0215f7b8 ; =gMapManager str r1, [sp, #0x40] ldr r1, [r9, #0x4c] ldr r0, [r0] @@ -74813,7 +74813,7 @@ _0215ef7c: add r1, sp, #0x40 str r2, [sp, #0x48] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldrb r1, [r9, #0x3ec] cmp r1, #1 bne _0215f048 @@ -74877,7 +74877,7 @@ _0215f048: mov r0, #1 strb r0, [r9, #0x3ea] ldr r1, [r9, #0x48] - ldr r0, _0215f7b8 ; =data_027e0e60 + ldr r0, _0215f7b8 ; =gMapManager str r1, [sp, #0x34] ldr r3, [r9, #0x4c] ldr r0, [r0] @@ -74885,7 +74885,7 @@ _0215f048: ldr r3, [r9, #0x50] add r1, sp, #0x34 str r3, [sp, #0x3c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _0215f7f8 ; =0xfffffccd ldr r2, [r9, #0x4c] add r0, r0, r1 @@ -74918,7 +74918,7 @@ _0215f158: add r0, r9, #0x200 strh r1, [r0, #0x82] ldr r1, [r9, #0x48] - ldr r0, _0215f7b8 ; =data_027e0e60 + ldr r0, _0215f7b8 ; =gMapManager str r1, [sp, #0x28] ldr r1, [r9, #0x4c] ldr r0, [r0] @@ -74927,7 +74927,7 @@ _0215f158: add r1, sp, #0x28 mov r2, #0 str r3, [sp, #0x30] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r4, r0 ldr r0, _0215f7f8 ; =0xfffffccd ldr r2, _0215f7e0 ; =0x00000266 @@ -74971,7 +74971,7 @@ _0215f1f4: b _0215f478 _0215f250: ldr r1, [r9, #0x48] - ldr r0, _0215f7b8 ; =data_027e0e60 + ldr r0, _0215f7b8 ; =gMapManager str r1, [sp, #0x1c] ldr r1, [r9, #0x4c] ldr r0, [r0] @@ -74981,7 +74981,7 @@ _0215f250: str r2, [sp, #0x24] mov r2, #0 ldr r4, [r9, #0x50] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r9, #0x48] mov r3, #0 str r0, [sp, #0x80] @@ -75043,7 +75043,7 @@ _0215f350: b _0215f478 _0215f35c: ldr r1, [r9, #0x48] - ldr r0, _0215f7b8 ; =data_027e0e60 + ldr r0, _0215f7b8 ; =gMapManager str r1, [sp, #0x10] ldr r1, [r9, #0x4c] ldr r0, [r0] @@ -75052,7 +75052,7 @@ _0215f35c: add r1, sp, #0x10 mov r2, #0 str r3, [sp, #0x18] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r1, #0x2000 mov r4, r0 ldr r2, _0215f808 ; =0x0000019a @@ -75336,7 +75336,7 @@ _0215f7a8: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov15_0215e890 -_0215f7b8: .word data_027e0e60 +_0215f7b8: .word gMapManager _0215f7bc: .word data_027e0764 _0215f7c0: .word data_027e0e58 _0215f7c4: .word data_027e0f94 @@ -75413,7 +75413,7 @@ func_ov15_0215f8b0: ; 0x0215f8b0 mov r6, r0 ldr r5, [r6, #0x64] ldr r1, [r6, #0x48] - ldr r0, _0215fa20 ; =data_027e0e60 + ldr r0, _0215fa20 ; =gMapManager str r1, [sp] ldr r1, [r6, #0x4c] ldr r0, [r0] @@ -75422,7 +75422,7 @@ func_ov15_0215f8b0: ; 0x0215f8b0 add r1, sp, #0 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r4, r0 mov r0, r6 bl _ZN5Actor12ApplyGravityEv @@ -75505,7 +75505,7 @@ _0215f9e0: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov15_0215f8b0 -_0215fa20: .word data_027e0e60 +_0215fa20: .word gMapManager _0215fa24: .word data_027e0ffc _0215fa28: .word 0x00000289 _0215fa2c: .word 0x00000286 @@ -75615,10 +75615,10 @@ func_ov15_0215fb6c: ; 0x0215fb6c ldrh r0, [r4, #0x20] ands r1, r0, #0xff beq _0215fba8 - ldr r0, _0215fc94 ; =data_027e0e60 + ldr r0, _0215fc94 ; =gMapManager mov r2, #0 ldr r0, [r0] - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 movne r0, #0 addne sp, sp, #0x18 @@ -75635,11 +75635,11 @@ _0215fba8: addne sp, sp, #0x18 movne r0, #0 ldmneia sp!, {r3, r4, r5, pc} - ldr r0, _0215fc94 ; =data_027e0e60 + ldr r0, _0215fc94 ; =gMapManager mov r1, r5 ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 moveq r0, #0 addeq sp, sp, #0x18 @@ -75692,7 +75692,7 @@ _0215fc88: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov15_0215fb6c -_0215fc94: .word data_027e0e60 +_0215fc94: .word gMapManager _0215fc98: .word data_027e0dbc _0215fc9c: .word data_027e0dcc @@ -75886,18 +75886,18 @@ func_ov15_0215fefc: ; 0x0215fefc ldrh r0, [r4, #0x24] cmp r0, #3 ldmneia sp!, {r4, pc} - ldr r0, _0215ff58 ; =data_027e0e60 + ldr r0, _0215ff58 ; =gMapManager ldrh r1, [r4, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 movne r0, #1 strneb r0, [r4, #0x3ef] ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_0215fefc -_0215ff58: .word data_027e0e60 +_0215ff58: .word gMapManager .global func_ov15_0215ff5c arm_func_start func_ov15_0215ff5c @@ -76903,7 +76903,7 @@ func_ov15_02160c24: ; 0x02160c24 mov r0, r4 bl func_ov15_02161458 ldr r1, [r4, #0x48] - ldr r0, _02160ca4 ; =data_027e0e60 + ldr r0, _02160ca4 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -76912,7 +76912,7 @@ func_ov15_02160c24: ; 0x02160c24 add r1, sp, #0 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] ldr r1, _02160ca8 ; =data_ov15_0218caec ldr r2, _02160cac ; =data_ov15_0218caf8 @@ -76927,7 +76927,7 @@ func_ov15_02160c24: ; 0x02160c24 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_02160c24 -_02160ca4: .word data_027e0e60 +_02160ca4: .word gMapManager _02160ca8: .word data_ov15_0218caec _02160cac: .word data_ov15_0218caf8 @@ -77435,7 +77435,7 @@ func_ov15_021613a4: ; 0x021613a4 sub r0, r0, #1 strb r0, [r4, #0x1ac] ldr r1, [r4, #0x48] - ldr r0, _02161448 ; =data_027e0e60 + ldr r0, _02161448 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -77444,7 +77444,7 @@ func_ov15_021613a4: ; 0x021613a4 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x184] sub r0, r0, r1 str r0, [r4, #0x4c] @@ -77465,7 +77465,7 @@ _02161410: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_021613a4 -_02161448: .word data_027e0e60 +_02161448: .word gMapManager _0216144c: .word data_ov15_0218caec _02161450: .word data_ov15_0218caf8 _02161454: .word data_ov15_0218677c @@ -77789,7 +77789,7 @@ func_ov15_02161880: ; 0x02161880 mov r0, #2 strb r0, [r4, #0x1ac] ldr r1, [r4, #0x48] - ldr r0, _021618f8 ; =data_027e0e60 + ldr r0, _021618f8 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -77798,7 +77798,7 @@ func_ov15_02161880: ; 0x02161880 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r4, #0x184] ldr r1, _021618fc ; =data_ov15_0218caf4 sub r0, r0, r2 @@ -77815,7 +77815,7 @@ func_ov15_02161880: ; 0x02161880 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_02161880 -_021618f8: .word data_027e0e60 +_021618f8: .word gMapManager _021618fc: .word data_ov15_0218caf4 _02161900: .word data_ov15_0218caf0 @@ -78220,10 +78220,10 @@ _02161cd0: str r1, [r10, #0x278] mov r0, #0xad str r0, [r10, #0x280] - ldr r0, _02162430 ; =data_027e0e60 + ldr r0, _02162430 ; =gMapManager str r1, [r10, #0x284] ldr r0, [r0] - bl func_ov00_02082d40 + bl _ZN10MapManager18func_ov00_02082d40Ev ldr r1, _02162434 ; =data_027e0d38 ldr r2, _02162438 ; =data_027e0fe4 ldr r1, [r1] @@ -78387,10 +78387,10 @@ _021620bc: add r3, sp, #0x44 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02162430 ; =data_027e0e60 + ldr r0, _02162430 ; =gMapManager add r1, sp, #0x2c ldr r0, [r0] - bl func_ov00_0208346c + bl _ZN10MapManager18func_ov00_0208346cEP4AABB ldr r1, [sp, #0x34] ldr r0, [sp, #0x38] ldr r2, [sp, #0x2c] @@ -78624,7 +78624,7 @@ _021623c4: _02162424: .word gAdventureFlags _02162428: .word data_027e0fec _0216242c: .word 0x00000999 -_02162430: .word data_027e0e60 +_02162430: .word gMapManager _02162434: .word data_027e0d38 _02162438: .word data_027e0fe4 _0216243c: .word data_ov15_0218cc00 @@ -78668,7 +78668,7 @@ func_ov15_02162454: ; 0x02162454 strh r0, [r4, #0x78] _021624c8: ldr r1, [r4, #0x48] - ldr r0, _0216252c ; =data_027e0e60 + ldr r0, _0216252c ; =gMapManager str r1, [sp, #4] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -78677,7 +78677,7 @@ _021624c8: add r1, sp, #4 mov r2, #0 str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] ldr r1, _02162530 ; =data_ov15_0218cc00 ldr r2, _02162534 ; =data_ov15_0218cc0c @@ -78694,7 +78694,7 @@ _021624c8: arm_func_end func_ov15_02162454 _02162524: .word data_027e0d38 _02162528: .word data_027e0f94 -_0216252c: .word data_027e0e60 +_0216252c: .word gMapManager _02162530: .word data_ov15_0218cc00 _02162534: .word data_ov15_0218cc0c @@ -78741,7 +78741,7 @@ _021625a0: sub r0, r0, #1 strb r0, [r5, #0x1ac] ldr r1, [r5, #0x48] - ldr r0, _02162678 ; =data_027e0e60 + ldr r0, _02162678 ; =gMapManager str r1, [sp] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -78750,7 +78750,7 @@ _021625a0: add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x184] sub r0, r0, r1 str r0, [r5, #0x4c] @@ -78787,7 +78787,7 @@ _02162634: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov15_02162538 -_02162678: .word data_027e0e60 +_02162678: .word gMapManager _0216267c: .word data_ov15_0218cc00 _02162680: .word data_ov15_0218cc0c _02162684: .word data_ov15_021867d4 @@ -79503,11 +79503,11 @@ _021630ec: bl _ZN5Actor18func_Ov00_020c1bfcEi cmp r0, #0 bne _02163160 - ldr r0, _02163c48 ; =data_027e0e60 + ldr r0, _02163c48 ; =gMapManager ldrh r1, [r4, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 bne _02163160 mov r0, r4 @@ -79811,7 +79811,7 @@ _0216346c: mov r0, r0, asr #0x4 mov r0, r0, lsl #0x2 ldrsh r1, [ip, r0] - ldr r0, _02163c48 ; =data_027e0e60 + ldr r0, _02163c48 ; =gMapManager ldr r5, [sp, #0x90] mov r1, r1, lsl #0xc add r1, r1, #0x800 @@ -79834,7 +79834,7 @@ _0216346c: str r7, [sp, #0x50] str r3, [sp, #0x94] str r3, [sp, #0x58] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x90] add r0, r4, #0x288 str r0, [sp] @@ -79991,7 +79991,7 @@ _02163854: sub r2, r3, #2 mov r5, #0x47 mov r1, #0xff - ldr r0, _02163c48 ; =data_027e0e60 + ldr r0, _02163c48 ; =gMapManager str r2, [sp, #0x68] str r5, [sp, #0x5c] str r3, [sp, #0x60] @@ -80004,7 +80004,7 @@ _02163854: ldrh r1, [r4, #0x20] ldr r0, [r0] add r2, sp, #0x5c - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 beq _0216391c ldr r0, _02163c44 ; =data_027e10a4 @@ -80210,7 +80210,7 @@ _02163b90: sub r0, r0, #1 strb r0, [r4, #0x1ac] ldr r1, [r4, #0x48] - ldr r0, _02163c48 ; =data_027e0e60 + ldr r0, _02163c48 ; =gMapManager str r1, [sp, #8] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -80219,7 +80219,7 @@ _02163b90: add r1, sp, #8 str r2, [sp, #0x10] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x184] sub r0, r0, r1 str r0, [r4, #0x4c] @@ -80247,7 +80247,7 @@ _02163c38: .word data_027e0fe4 _02163c3c: .word data_ov15_02190458 _02163c40: .word data_ov00_020eec68 _02163c44: .word data_027e10a4 -_02163c48: .word data_027e0e60 +_02163c48: .word gMapManager _02163c4c: .word data_027e0f94 _02163c50: .word data_027e0d0c _02163c54: .word data_027e0764 @@ -80588,7 +80588,7 @@ _021640c4: ldr r3, _021643c4 ; =data_02050f54 str r4, [sp, #0x2c] ldr lr, [r6, #0x4c] - ldr r0, _021643c8 ; =data_027e0e60 + ldr r0, _021643c8 ; =gMapManager str lr, [sp, #0x30] ldr ip, [r6, #0x50] ldr r0, [r0] @@ -80616,7 +80616,7 @@ _021640c4: add r3, ip, r3, asr #12 str r3, [sp, #0x34] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x30] add r0, r6, #0x288 str r0, [sp] @@ -80762,7 +80762,7 @@ _021643b8: .word data_027e10a4 _021643bc: .word data_027e0e2c _021643c0: .word 0x00050017 _021643c4: .word data_02050f54 -_021643c8: .word data_027e0e60 +_021643c8: .word gMapManager _021643cc: .word data_027e0fe8 _021643d0: .word 0x544f5044 _021643d4: .word 0x0000019a @@ -80899,7 +80899,7 @@ _021644d0: str r2, [sp, #4] str r1, [sp, #8] str r0, [sp, #0xc] - ldr r1, _02164600 ; =data_027e0e60 + ldr r1, _02164600 ; =gMapManager str r0, [sp, #0x10] ldr r0, [r1] add r1, sp, #0x48 @@ -80921,7 +80921,7 @@ _021645f0: .word gAdventureFlags _021645f4: .word data_027e10a4 _021645f8: .word data_027e0f94 _021645fc: .word 0x0000ffff -_02164600: .word data_027e0e60 +_02164600: .word gMapManager .global func_ov15_02164604 arm_func_start func_ov15_02164604 @@ -81663,7 +81663,7 @@ _021650ac: mov r0, #2 strb r0, [r4, #0x1ac] ldr r1, [r4, #0x48] - ldr r0, _0216511c ; =data_027e0e60 + ldr r0, _0216511c ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -81672,7 +81672,7 @@ _021650ac: add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r4, #0x184] ldr r1, _02165120 ; =data_ov15_0218cc08 sub r0, r0, r2 @@ -81690,7 +81690,7 @@ _021650ac: .align 2, 0 arm_func_end func_ov15_02165078 _02165118: .word data_ov15_02190458 -_0216511c: .word data_027e0e60 +_0216511c: .word gMapManager _02165120: .word data_ov15_0218cc08 _02165124: .word data_ov15_0218cc04 @@ -82083,7 +82083,7 @@ _02165620: mov r0, #1 str r0, [sp, #4] ldr r1, _02165a18 ; =data_ov15_0218f8cc - ldr r0, _02165a24 ; =data_027e0e60 + ldr r0, _02165a24 ; =gMapManager str r1, [sp, #8] ldr r0, [r0] add r1, sp, #0x18 @@ -82352,7 +82352,7 @@ _02165a14: .word data_ov15_0218cce0 _02165a18: .word data_ov15_0218f8cc _02165a1c: .word func_ov15_02165a34 _02165a20: .word data_ov15_0218f8c0 -_02165a24: .word data_027e0e60 +_02165a24: .word gMapManager _02165a28: .word gAdventureFlags _02165a2c: .word data_ov15_021867d8 _02165a30: .word data_027e0c68 @@ -82586,13 +82586,13 @@ _02165d5c: b _02165e14 _02165d70: ldr r1, [r4, #4] - ldr r0, _02165e54 ; =data_027e0e60 + ldr r0, _02165e54 ; =gMapManager orr r1, r1, #0x10 str r1, [r4, #4] ldr r0, [r0] mov r2, r3 add r1, r4, #0x18 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii mov r0, r4 mov r1, #1 bl func_ov15_02165e94 @@ -82647,7 +82647,7 @@ _02165e44: .word 0x0b60b60b _02165e48: .word data_027e0c68 _02165e4c: .word 0x0005001a _02165e50: .word 0x00050018 -_02165e54: .word data_027e0e60 +_02165e54: .word gMapManager _02165e58: .word 0x00001770 .global func_ov15_02165e5c @@ -83159,7 +83159,7 @@ func_ov15_0216648c: ; 0x0216648c sub sp, sp, #0x18 mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _02166574 ; =data_027e0e60 + ldr r0, _02166574 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -83168,7 +83168,7 @@ func_ov15_0216648c: ; 0x0216648c add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] ldrb r0, [r4, #0xa4] cmp r0, #0 @@ -83216,7 +83216,7 @@ _02166564: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_0216648c -_02166574: .word data_027e0e60 +_02166574: .word gMapManager _02166578: .word data_02050f54 _0216657c: .word data_027e0e58 _02166580: .word 0xfffffe66 @@ -83232,7 +83232,7 @@ func_ov15_02166584: ; 0x02166584 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [r4, #0x48] - ldr r0, _02166678 ; =data_027e0e60 + ldr r0, _02166678 ; =gMapManager str r1, [sp, #8] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -83241,7 +83241,7 @@ func_ov15_02166584: ; 0x02166584 add r1, sp, #8 mov r2, #0 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] mov r1, #0 str r1, [sp] @@ -83288,7 +83288,7 @@ _02166644: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov15_02166584 -_02166678: .word data_027e0e60 +_02166678: .word gMapManager _0216667c: .word data_027e0e58 _02166680: .word 0x000009ec _02166684: .word data_027e0ffc @@ -83905,7 +83905,7 @@ _02166d48: add r2, r5, #0x48 bl func_01ff9bc4 ldr r1, [r5, #0x48] - ldr r0, _02166eec ; =data_027e0e60 + ldr r0, _02166eec ; =gMapManager str r1, [sp, #0x10] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -83914,7 +83914,7 @@ _02166d48: add r1, sp, #0x10 str r2, [sp, #0x18] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r5, #0x4c] ldr r0, _02166ef0 ; =data_027e0ffc mov r1, #0x1dc @@ -83989,7 +83989,7 @@ _02166ecc: _02166ee0: .word 0x000004cd _02166ee4: .word data_027e0f64 _02166ee8: .word data_027e0f94 -_02166eec: .word data_027e0e60 +_02166eec: .word gMapManager _02166ef0: .word data_027e0ffc _02166ef4: .word 0x00000666 _02166ef8: .word data_027e0e58 @@ -84139,16 +84139,16 @@ func_ov15_021670dc: ; 0x021670dc beq _02167208 b _02167238 _02167114: - ldr r0, _0216728c ; =data_027e0e60 + ldr r0, _0216728c ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev cmp r0, #6 ldmeqia sp!, {r4, r5, r6, pc} - ldr r0, _0216728c ; =data_027e0e60 + ldr r0, _0216728c ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldreq r0, [r4, #0x284] addeq r0, r0, #1 @@ -84240,7 +84240,7 @@ _0216726c: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov15_021670dc -_0216728c: .word data_027e0e60 +_0216728c: .word gMapManager _02167290: .word data_027e0764 _02167294: .word data_027e0ff4 _02167298: .word data_027e10a4 @@ -85274,7 +85274,7 @@ _02168078: mov r3, #0 bl func_0202b418 _02168098: - ldr r0, _0216834c ; =data_027e0e60 + ldr r0, _0216834c ; =gMapManager ldr r5, [sp, #0x28] ldr r3, [sp, #0x2c] ldr r2, [sp, #0x30] @@ -85284,7 +85284,7 @@ _02168098: str r5, [sp, #4] str r3, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x98] ldr r2, [r4, #0x18c] add r1, r1, r0 @@ -85457,7 +85457,7 @@ _02168338: _02168340: .word data_027e0fac _02168344: .word data_027e0f94 _02168348: .word data_02050f54 -_0216834c: .word data_027e0e60 +_0216834c: .word gMapManager _02168350: .word 0x00000666 _02168354: .word data_027e0d0c @@ -85967,7 +85967,7 @@ _02168a78: mov r3, #0 bl func_0202b418 _02168a9c: - ldr r0, _02168b2c ; =data_027e0e60 + ldr r0, _02168b2c ; =gMapManager ldr ip, [sp, #0x30] ldr r3, [sp, #0x34] ldr r2, [sp, #0x38] @@ -85977,7 +85977,7 @@ _02168a9c: str ip, [sp, #0xc] str r3, [sp, #0x10] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x98] ldr r2, [r5, #0x18c] add r1, r1, r0 @@ -86005,7 +86005,7 @@ _02168a9c: _02168b20: .word data_ov15_0218d094 _02168b24: .word data_027e0f94 _02168b28: .word data_02050f54 -_02168b2c: .word data_027e0e60 +_02168b2c: .word gMapManager .global func_ov15_02168b30 arm_func_start func_ov15_02168b30 @@ -86835,7 +86835,7 @@ _02169594: ldr r3, [r5, r9, lsl #2] str r0, [sp, #8] ldr r1, [r10, #0x4c] - ldr r0, _0216967c ; =data_027e0e60 + ldr r0, _0216967c ; =gMapManager str r1, [sp, #0xc] ldr r2, [r10, #0x50] ldr r0, [r0] @@ -86844,7 +86844,7 @@ _02169594: add r1, sp, #8 mov r2, #0 add r8, r8, r3 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r10, #0x48] ldr r1, [r5, r9, lsl #2] str r0, [sp, #0x18] @@ -86891,7 +86891,7 @@ _0216966c: .word data_ov15_0218d1bc _02169670: .word data_ov15_0218d1c8 _02169674: .word data_027e0ffc _02169678: .word data_ov15_02186918 -_0216967c: .word data_027e0e60 +_0216967c: .word gMapManager _02169680: .word 0x00000359 .global func_ov15_02169684 @@ -88054,9 +88054,9 @@ _0216a680: _0216a6a8: cmp r4, #0 bne _0216a6c4 - ldr r0, _0216a750 ; =data_027e0e60 + ldr r0, _0216a750 ; =gMapManager ldr r0, [r0] - bl func_ov00_020848b8 + bl _ZN10MapManager18func_ov00_020848b8Ev cmp r0, #0 moveq r11, #0 _0216a6c4: @@ -88100,7 +88100,7 @@ _0216a740: .word data_027e0d38 _0216a744: .word data_027e10a4 _0216a748: .word data_027e0d3c _0216a74c: .word data_027e0d04 -_0216a750: .word data_027e0e60 +_0216a750: .word gMapManager .global func_ov15_0216a754 arm_func_start func_ov15_0216a754 @@ -88224,7 +88224,7 @@ _0216a8a8: bl func_ov15_0214651c mov r1, r0 mov r0, r6 - blx func_ov09_0211ca20 + blx GiveShipPart b _0216a8f8 _0216a8cc: cmp r4, #0x30 @@ -88238,7 +88238,7 @@ _0216a8e8: ldr r0, _0216a95c ; =gItemManager mov r1, r4 ldr r0, [r0] - blx _ZN11ItemManager8GiveItemEjjj + blx _ZN11ItemManager8GiveItemEi _0216a8f8: bl func_ov15_02146578 mov r1, r0 @@ -88262,7 +88262,7 @@ _0216a93c: ldr r0, _0216a95c ; =gItemManager mov r1, r4 ldr r0, [r0] - blx _ZN11ItemManager15LoadFanfareItemEj + blx _ZN11ItemManager15LoadFanfareItemEi mov r0, r5 bl func_ov15_0216a968 add sp, sp, #4 @@ -88292,7 +88292,7 @@ _0216a994: bl func_ov03_020fc10c ldr r0, _0216aa24 ; =data_ov00_020eec68 mov r1, #0x28 - bl func_ov00_020d73bc + bl PlaySoundEffect mov r1, #0 sub r0, r1, #0x1000 str r0, [sp, #0x18] @@ -90470,11 +90470,11 @@ func_ov15_0216c650: ; 0x0216c650 arm_func_start func_ov15_0216c664 func_ov15_0216c664: ; 0x0216c664 stmdb sp!, {r3, r4, r5, lr} - ldr r1, _0216c6b4 ; =data_027e0e60 + ldr r1, _0216c6b4 ; =gMapManager mov r4, r0 ldr r0, [r1] mov r5, #0 - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev ldr r1, [r4, #0x4c] sub r0, r1, r0 cmp r0, #0x2000 @@ -90492,7 +90492,7 @@ _0216c6ac: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov15_0216c664 -_0216c6b4: .word data_027e0e60 +_0216c6b4: .word gMapManager .global func_ov15_0216c6b8 arm_func_start func_ov15_0216c6b8 @@ -91813,7 +91813,7 @@ _0216d8c4: .word data_027e0fb8 func_ov15_0216d8c8: ; 0x0216d8c8 stmdb sp!, {r4, lr} sub sp, sp, #0x18 - ldr r1, _0216d95c ; =data_027e0e60 + ldr r1, _0216d95c ; =gMapManager mov r2, #1 strb r2, [r0, #0xc] mov lr, #0 @@ -91832,7 +91832,7 @@ func_ov15_0216d8c8: ; 0x0216d8c8 strb lr, [sp, #0x13] strb lr, [sp, #0x14] strb lr, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _0216d960 ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -91850,7 +91850,7 @@ func_ov15_0216d8c8: ; 0x0216d8c8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_0216d8c8 -_0216d95c: .word data_027e0e60 +_0216d95c: .word gMapManager _0216d960: .word data_027e0d38 _0216d964: .word gAdventureFlags @@ -91880,7 +91880,7 @@ _0216d9b0: bl func_ov15_0216dd8c cmp r0, #0 beq _0216da38 - ldr r0, _0216da98 ; =data_027e0e60 + ldr r0, _0216da98 ; =gMapManager mov lr, #0 ldr r0, [r0] sub ip, lr, #2 @@ -91897,7 +91897,7 @@ _0216d9b0: strb lr, [sp, #0x13] strb lr, [sp, #0x14] strb lr, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _0216da9c ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -91938,7 +91938,7 @@ _0216da84: .align 2, 0 arm_func_end func_ov15_0216d968 _0216da94: .word data_027e0c68 -_0216da98: .word data_027e0e60 +_0216da98: .word gMapManager _0216da9c: .word data_027e0d38 _0216daa0: .word gAdventureFlags _0216daa4: .word data_027e0fe4 @@ -94346,12 +94346,12 @@ func_ov15_0216fa98: ; 0x0216fa98 stmdb sp!, {r4, lr} ldr r1, _0216fb48 ; =data_ov15_0218d978 mov r4, r0 - ldr r0, _0216fb4c ; =data_027e0e60 + ldr r0, _0216fb4c ; =gMapManager str r1, [r4] add r1, r4, #0x74 ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei add r0, r4, #0xf8 add r0, r0, #0x400 blx func_0202ab64 @@ -94390,7 +94390,7 @@ func_ov15_0216fa98: ; 0x0216fa98 .align 2, 0 arm_func_end func_ov15_0216fa98 _0216fb48: .word data_ov15_0218d978 -_0216fb4c: .word data_027e0e60 +_0216fb4c: .word gMapManager .global func_ov15_0216fb50 arm_func_start func_ov15_0216fb50 @@ -94398,12 +94398,12 @@ func_ov15_0216fb50: ; 0x0216fb50 stmdb sp!, {r4, lr} ldr r1, _0216fc08 ; =data_ov15_0218d978 mov r4, r0 - ldr r0, _0216fc0c ; =data_027e0e60 + ldr r0, _0216fc0c ; =gMapManager str r1, [r4] add r1, r4, #0x74 ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei add r0, r4, #0xf8 add r0, r0, #0x400 blx func_0202ab64 @@ -94444,7 +94444,7 @@ func_ov15_0216fb50: ; 0x0216fb50 .align 2, 0 arm_func_end func_ov15_0216fb50 _0216fc08: .word data_ov15_0218d978 -_0216fc0c: .word data_027e0e60 +_0216fc0c: .word gMapManager .global func_ov15_0216fc10 arm_func_start func_ov15_0216fc10 @@ -94627,10 +94627,10 @@ _0216fe54: str r3, [r5, #0x490] str r0, [r5, #0x494] mov r2, #0x14000 - ldr r0, _0217062c ; =data_027e0e60 + ldr r0, _0217062c ; =gMapManager str r2, [r5, #0x498] ldr r0, [r0] - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei add r0, sp, #0x288 bl func_ov00_0209a4f4 ldr r2, _02170630 ; =data_027e0f94 @@ -94994,7 +94994,7 @@ _021703e8: ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [r5, #0x48] - ldr r0, _0217062c ; =data_027e0e60 + ldr r0, _0217062c ; =gMapManager str r1, [sp] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -95003,7 +95003,7 @@ _021703e8: add r1, sp, #0 mov r2, r6 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _02170634 ; =data_027e0f64 ldr r3, [sp, #0x2c] ldr r2, [sp, #0x34] @@ -95114,7 +95114,7 @@ _0217060c: arm_func_end func_ov15_0216fe00 _02170624: .word 0x0000ffff _02170628: .word data_027e103c -_0217062c: .word data_027e0e60 +_0217062c: .word gMapManager _02170630: .word data_027e0f94 _02170634: .word data_027e0f64 _02170638: .word gAdventureFlags @@ -95252,11 +95252,11 @@ _021707e4: .word data_027e10a4 func_ov15_021707e8: ; 0x021707e8 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _0217082c ; =data_027e0e60 + ldr r0, _0217082c ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 @@ -95269,7 +95269,7 @@ func_ov15_021707e8: ; 0x021707e8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_021707e8 -_0217082c: .word data_027e0e60 +_0217082c: .word gMapManager .global func_ov15_02170830 arm_func_start func_ov15_02170830 @@ -96002,7 +96002,7 @@ _021712c8: bl _ZN5Actor12ApplyGravityEv ldr r2, [r4, #0x4c] ldr r1, [r4, #0x64] - ldr r0, _021718f4 ; =data_027e0e60 + ldr r0, _021718f4 ; =gMapManager add r1, r2, r1 str r1, [r4, #0x4c] ldr r1, [r4, #0x48] @@ -96014,7 +96014,7 @@ _021712c8: ldr r3, [r4, #0x50] mov r2, #0 str r3, [sp, #0x40] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x4c] mov lr, r0 cmp r1, lr @@ -96085,7 +96085,7 @@ _021713f8: _0217140c: bl func_ov15_02172d18 ldr r1, [r4, #0x4c] - ldr r0, _021718f4 ; =data_027e0e60 + ldr r0, _021718f4 ; =gMapManager add r1, r1, #0x148 str r1, [r4, #0x4c] ldr r1, [r4, #0x48] @@ -96097,7 +96097,7 @@ _0217140c: ldr r3, [r4, #0x50] mov r2, #0 str r3, [sp, #0x34] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov ip, r0 ldr r1, [r4, #0x4c] sub r0, ip, #0x1800 @@ -96144,7 +96144,7 @@ _0217140c: ldmia sp!, {r4, pc} _021714f8: ldr r1, [r4, #0x4c] - ldr r0, _021718f4 ; =data_027e0e60 + ldr r0, _021718f4 ; =gMapManager add r1, r1, #0x148 str r1, [r4, #0x4c] ldr r1, [r4, #0x48] @@ -96156,7 +96156,7 @@ _021714f8: ldr r3, [r4, #0x50] mov r2, #0 str r3, [sp, #0x28] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x4c] add r0, r0, #0x29 cmp r1, r0 @@ -96221,11 +96221,11 @@ _021715ac: _0217161c: mvn r1, #0 str r1, [r4, #0x53c] - ldr r0, _021718f4 ; =data_027e0e60 + ldr r0, _021718f4 ; =gMapManager add r1, r4, #0x74 ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei add sp, sp, #0x1e8 ldmia sp!, {r4, pc} _02171640: @@ -96409,7 +96409,7 @@ _021718ec: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_0217128c -_021718f4: .word data_027e0e60 +_021718f4: .word gMapManager _021718f8: .word 0x00000d9a _021718fc: .word data_027e0e58 _02171900: .word data_027e0ffc @@ -97826,7 +97826,7 @@ func_ov15_02172d18: ; 0x02172d18 sub sp, sp, #0x18 mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _02172d88 ; =data_027e0e60 + ldr r0, _02172d88 ; =gMapManager str r1, [sp, #0xc] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -97841,7 +97841,7 @@ func_ov15_02172d18: ; 0x02172d18 str r3, [sp, #4] ldr r3, [r4, #0x50] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _02172d8c ; =data_027e0e58 str r0, [sp, #0x10] ldr r0, [r1] @@ -97852,7 +97852,7 @@ func_ov15_02172d18: ; 0x02172d18 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_02172d18 -_02172d88: .word data_027e0e60 +_02172d88: .word gMapManager _02172d8c: .word data_027e0e58 .global func_ov15_02172d90 @@ -97862,7 +97862,7 @@ func_ov15_02172d90: ; 0x02172d90 sub sp, sp, #0x1c mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _02172eec ; =data_027e0e60 + ldr r0, _02172eec ; =gMapManager str r1, [sp, #0x10] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -97877,7 +97877,7 @@ func_ov15_02172d90: ; 0x02172d90 str r3, [sp, #8] ldr r3, [r4, #0x50] str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x14] ldr r1, [r4, #0x4c] sub r0, r1, r0 @@ -97948,7 +97948,7 @@ _02172ecc: ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov15_02172d90 -_02172eec: .word data_027e0e60 +_02172eec: .word gMapManager _02172ef0: .word data_02050f54 _02172ef4: .word 0x0000119a _02172ef8: .word data_027e0e58 @@ -98201,7 +98201,7 @@ func_ov15_0217317c: ; 0x0217317c add r0, r1, r0 str r0, [sp, #0x34] ldr r0, [sp, #0x54] - ldr r3, _021733a8 ; =data_027e0e60 + ldr r3, _021733a8 ; =gMapManager mov r0, r0, lsl #0x10 mov r7, r0, lsr #0x10 ldmia r9, {r0, r1, r2} @@ -98215,7 +98215,7 @@ func_ov15_0217317c: ; 0x0217317c ldr r0, [r3] add r1, sp, #0x14 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x9a add r1, r0, #0x900 ldr r0, [sp, #0x24] @@ -98311,7 +98311,7 @@ _02173350: arm_func_end func_ov15_0217317c _021733a0: .word data_027e0f64 _021733a4: .word data_027e0f94 -_021733a8: .word data_027e0e60 +_021733a8: .word gMapManager _021733ac: .word data_02050f54 .global func_ov15_021733b0 @@ -98346,7 +98346,7 @@ func_ov15_021733b0: ; 0x021733b0 str r1, [r4, #0x52c] ldrsh ip, [r0, #0x5e] ldrsh r3, [r0, #0x60] - ldr r2, _0217359c ; =data_027e0e60 + ldr r2, _0217359c ; =gMapManager add r1, sp, #0x20 add r3, ip, r3 strh r3, [r0, #0x5e] @@ -98358,7 +98358,7 @@ func_ov15_021733b0: ; 0x021733b0 str r3, [sp, #0x24] ldr r3, [r4, #0x530] str r3, [sp, #0x28] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x52c] cmp r1, r0 blt _02173474 @@ -98445,7 +98445,7 @@ _021734d0: .align 2, 0 arm_func_end func_ov15_021733b0 _02173598: .word 0x00000133 -_0217359c: .word data_027e0e60 +_0217359c: .word gMapManager _021735a0: .word data_027e10a4 _021735a4: .word data_027e0f64 @@ -98491,7 +98491,7 @@ func_ov15_021735a8: ; 0x021735a8 add r1, sp, #0x30 mov r2, r5 bl func_01ff9bc4 - ldr r3, _02173718 ; =data_027e0e60 + ldr r3, _02173718 ; =gMapManager add r8, sp, #0xc ldmia r5, {r0, r1, r2} stmia r8, {r0, r1, r2} @@ -98504,7 +98504,7 @@ func_ov15_021735a8: ; 0x021735a8 str r7, [sp] str lr, [sp, #4] str ip, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xa4 add r3, r0, #0x800 ldr r0, [r5, #4] @@ -98548,7 +98548,7 @@ _02173708: .word 0x00001770 _0217370c: .word data_027e0fac _02173710: .word 0x000008a4 _02173714: .word 0xfffffae1 -_02173718: .word data_027e0e60 +_02173718: .word gMapManager .global func_ov15_0217371c arm_func_start func_ov15_0217371c @@ -99306,10 +99306,10 @@ func_ov15_021740e4: ; 0x021740e4 func_ov15_02174100: ; 0x02174100 stmdb sp!, {r3, r4, r5, lr} mov r4, r0 - ldr r0, _02174174 ; =data_027e0e60 + ldr r0, _02174174 ; =gMapManager ldrsh r5, [r4, #0x78] ldr r0, [r0] - bl func_ov00_02082504 + bl _ZN10MapManager18func_ov00_02082504Ev sub r0, r5, r0 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 @@ -99337,7 +99337,7 @@ _0217414c: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov15_02174100 -_02174174: .word data_027e0e60 +_02174174: .word gMapManager .global func_ov15_02174178 arm_func_start func_ov15_02174178 @@ -99359,22 +99359,22 @@ func_ov15_02174188: ; 0x02174188 beq _021741b8 b _021741c8 _021741a4: - ldr r2, _021741d0 ; =data_027e0e60 + ldr r2, _021741d0 ; =gMapManager add r1, r0, #0x160 ldr r0, [r2] - bl func_ov00_02082494 + bl _ZN10MapManager18func_ov00_02082494Ei b _021741c8 _021741b8: - ldr r2, _021741d0 ; =data_027e0e60 + ldr r2, _021741d0 ; =gMapManager add r1, r0, #0x160 ldr r0, [r2] - bl func_ov00_020824cc + bl _ZN10MapManager18func_ov00_020824ccEi _021741c8: mov r0, #1 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov15_02174188 -_021741d0: .word data_027e0e60 +_021741d0: .word gMapManager .global func_ov15_021741d4 arm_func_start func_ov15_021741d4 @@ -99422,9 +99422,9 @@ _02174268: mov r1, #4 bl func_01fffbec _02174270: - ldr r0, _021742a8 ; =data_027e0e60 + ldr r0, _021742a8 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082504 + bl _ZN10MapManager18func_ov00_02082504Ev mov r1, r0 add r0, sp, #0 bl func_ov00_020a61ac @@ -99438,7 +99438,7 @@ _02174270: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_021741d4 -_021742a8: .word data_027e0e60 +_021742a8: .word gMapManager .global func_ov15_021742ac arm_func_start func_ov15_021742ac @@ -99749,9 +99749,9 @@ _0217465c: mov r0, #0x100 _02174660: str r0, [r4, #0x28] - ldr r0, _02174694 ; =data_027e0e60 + ldr r0, _02174694 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082424 + bl _ZN10MapManager18func_ov00_02082424Ev mov r0, #0 str r0, [r4, #0x30] mov r0, #1 @@ -99763,7 +99763,7 @@ _02174660: arm_func_end func_ov15_021745e4 _0217468c: .word 0x0000100a _02174690: .word 0x000001f5 -_02174694: .word data_027e0e60 +_02174694: .word gMapManager .global func_ov15_02174698 arm_func_start func_ov15_02174698 @@ -99853,7 +99853,7 @@ func_ov15_02174794: ; 0x02174794 mov r1, r0 mov r0, r5 mov r2, #0 - bl _ZN11ItemManager10GiveRupeesEjj + bl _ZN11ItemManager10GiveRupeesEsb ldr r1, [r4, #0x2c] ldr r0, _02174878 ; =data_ov00_020eec9c add r1, r1, #0xfa @@ -99893,12 +99893,12 @@ _0217481c: mov r1, #0x3c8 mov r3, #0 bl func_ov00_020ceacc - ldr r0, _02174888 ; =data_027e0e60 + ldr r0, _02174888 ; =gMapManager ldrb r1, [r4, #0x35] ldrb r2, [r4, #0x34] ldr r0, [r0] mov r3, #1 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii add sp, sp, #8 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 @@ -99908,7 +99908,7 @@ _02174878: .word data_ov00_020eec9c _0217487c: .word data_027e0e58 _02174880: .word 0x00001009 _02174884: .word data_027e0ffc -_02174888: .word data_027e0e60 +_02174888: .word gMapManager .global func_ov15_0217488c arm_func_start func_ov15_0217488c @@ -103300,11 +103300,11 @@ func_ov15_021776c4: ; 0x021776c4 stmdb sp!, {r4, lr} ldr r1, _021777e8 ; =data_ov15_0218de14 mov r4, r0 - ldr r0, _021777ec ; =data_027e0e60 + ldr r0, _021777ec ; =gMapManager str r1, [r4] ldr r0, [r0] add r1, r4, #0x374 - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldr r0, _021777f0 ; =data_027e0f6c add r1, r4, #0x78 ldr r0, [r0] @@ -103375,7 +103375,7 @@ _02177774: .align 2, 0 arm_func_end func_ov15_021776c4 _021777e8: .word data_ov15_0218de14 -_021777ec: .word data_027e0e60 +_021777ec: .word gMapManager _021777f0: .word data_027e0f6c _021777f4: .word data_027e0d38 _021777f8: .word data_027e10b0 @@ -103389,11 +103389,11 @@ func_ov15_02177808: ; 0x02177808 stmdb sp!, {r4, lr} ldr r1, _02177934 ; =data_ov15_0218de14 mov r4, r0 - ldr r0, _02177938 ; =data_027e0e60 + ldr r0, _02177938 ; =gMapManager str r1, [r4] ldr r0, [r0] add r1, r4, #0x374 - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldr r0, _0217793c ; =data_027e0f6c add r1, r4, #0x78 ldr r0, [r0] @@ -103466,7 +103466,7 @@ _021778b8: .align 2, 0 arm_func_end func_ov15_02177808 _02177934: .word data_ov15_0218de14 -_02177938: .word data_027e0e60 +_02177938: .word gMapManager _0217793c: .word data_027e0f6c _02177940: .word data_027e0d38 _02177944: .word data_027e10b0 @@ -103493,7 +103493,7 @@ func_ov15_02177964: ; 0x02177964 mov r4, r0 str r4, [r1] ldr r1, [r4, #0x48] - ldr r0, _02177ef8 ; =data_027e0e60 + ldr r0, _02177ef8 ; =gMapManager str r1, [sp, #0x38] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -103502,7 +103502,7 @@ func_ov15_02177964: ; 0x02177964 add r1, sp, #0x38 mov r2, #0 str r3, [sp, #0x40] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, _02177efc ; =data_027e0764 str r0, [r4, #0x4c] ldr r1, [r2] @@ -103674,11 +103674,11 @@ _02177c20: str r2, [r4, #0x390] str r0, [r4, #0x394] mov r1, #0x14000 - ldr r0, _02177ef8 ; =data_027e0e60 + ldr r0, _02177ef8 ; =gMapManager str r1, [r4, #0x398] ldr r0, [r0] add r1, r4, #0x374 - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei b _02177c84 _02177c5c: mov r1, #0x69 @@ -103851,7 +103851,7 @@ _02177c84: .align 2, 0 arm_func_end func_ov15_02177964 _02177ef4: .word data_027e10b0 -_02177ef8: .word data_027e0e60 +_02177ef8: .word gMapManager _02177efc: .word data_027e0764 _02177f00: .word 0x0000a332 _02177f04: .word 0x00003666 @@ -104453,7 +104453,7 @@ _021784d0: add r2, sp, #0x2c mov r3, #2 bl func_ov00_0207c1b0 - ldr r0, _021789a0 ; =data_027e0e60 + ldr r0, _021789a0 ; =gMapManager ldr r2, [r5, #0x4c] ldr r4, [r5, #0x50] ldr r3, [r5, #0x48] @@ -104463,7 +104463,7 @@ _021784d0: mov r2, #0 str r3, [sp, #0x50] str r4, [sp, #0x58] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r2, #0 str r0, [sp, #0x54] ldr r1, _021789a4 ; =0x00001ccd @@ -104504,7 +104504,7 @@ _02178810: rsb r4, r2, #0x82 str r1, [sp, #8] ldr r1, [r5, #0x4c] - ldr r0, _021789a0 ; =data_027e0e60 + ldr r0, _021789a0 ; =gMapManager str r1, [sp, #0xc] ldr r3, [r5, #0x50] ldr r0, [r0] @@ -104512,7 +104512,7 @@ _02178810: mov r2, #0 str r3, [sp, #0x10] mov r4, r4, lsl #0xc - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _021789b8 ; =0xffffc4cd cmp r4, #0x1000 add r2, r0, r1 @@ -104605,7 +104605,7 @@ _02178990: .word data_ov15_0218ddc8 _02178994: .word data_ov15_02186d80 _02178998: .word data_027e0e58 _0217899c: .word 0x00001003 -_021789a0: .word data_027e0e60 +_021789a0: .word gMapManager _021789a4: .word 0x00001ccd _021789a8: .word data_ov00_020eec9c _021789ac: .word 0x00000462 @@ -104757,7 +104757,7 @@ func_ov15_02178b7c: ; 0x02178b7c sub r2, r3, #2 mov r5, #0x47 mov r1, #0xff - ldr r0, _02178c68 ; =data_027e0e60 + ldr r0, _02178c68 ; =gMapManager str r2, [sp, #0x24] str r5, [sp, #0x18] str r3, [sp, #0x1c] @@ -104770,7 +104770,7 @@ func_ov15_02178b7c: ; 0x02178b7c ldrh r1, [r4, #0x22] ldr r0, [r0] add r2, sp, #0x18 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 beq _02178c58 ldr r0, _02178c6c ; =data_027e10a4 @@ -104804,7 +104804,7 @@ _02178c58: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov15_02178b7c -_02178c68: .word data_027e0e60 +_02178c68: .word gMapManager _02178c6c: .word data_027e10a4 .global func_ov15_02178c70 @@ -104815,7 +104815,7 @@ func_ov15_02178c70: ; 0x02178c70 mov r4, r0 bl func_ov15_0217aa30 ldr r1, [r4, #0x48] - ldr r0, _02178d64 ; =data_027e0e60 + ldr r0, _02178d64 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -104824,7 +104824,7 @@ func_ov15_02178c70: ; 0x02178c70 add r1, sp, #0 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev sub r0, r0, #0x1000 mov r1, #0x1500 str r0, [r4, #0x4c] @@ -104875,7 +104875,7 @@ _02178d40: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_02178c70 -_02178d64: .word data_027e0e60 +_02178d64: .word gMapManager _02178d68: .word data_ov15_0218ddcc _02178d6c: .word data_ov15_0218ddc8 _02178d70: .word gAdventureFlags @@ -106304,16 +106304,16 @@ _0217a208: cmp r1, #8 mov r5, r0, lsr #0x10 bne _0217a270 - ldr r0, _0217a550 ; =data_027e0e60 + ldr r0, _0217a550 ; =gMapManager mov r1, #0x11 ldr r0, [r0] sub r2, r1, #0x12 - bl func_ov00_02082650 - ldr r0, _0217a550 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02082650Eiii + ldr r0, _0217a550 ; =gMapManager mov r1, #0x27 ldr r0, [r0] sub r2, r1, #0x28 - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii mov r0, #1 strb r0, [r7, #0x474] _0217a270: @@ -106514,7 +106514,7 @@ _0217a52c: arm_func_end func_ov15_0217a0b0 _0217a548: .word 0x00000ccd _0217a54c: .word 0x00000fff -_0217a550: .word data_027e0e60 +_0217a550: .word gMapManager _0217a554: .word data_027e0764 _0217a558: .word data_027e0c68 _0217a55c: .word 0x0005003d @@ -106753,7 +106753,7 @@ func_ov15_0217a850: ; 0x0217a850 add r3, sp, #0xc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0217aa20 ; =data_027e0e60 + ldr r0, _0217aa20 ; =gMapManager ldr r6, [sp, #0xc] ldr r5, [sp, #0x10] ldr r3, [sp, #0x14] @@ -106763,7 +106763,7 @@ func_ov15_0217a850: ; 0x0217a850 str r6, [sp] str r5, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r5, #2 ldr r2, [sp, #0xc] ldr r1, _0217aa24 ; =data_027e0f64 @@ -106862,7 +106862,7 @@ func_ov15_0217a850: ; 0x0217a850 ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov15_0217a850 -_0217aa20: .word data_027e0e60 +_0217aa20: .word gMapManager _0217aa24: .word data_027e0f64 _0217aa28: .word 0x000024cd _0217aa2c: .word gAdventureFlags @@ -109014,7 +109014,7 @@ func_ov15_0217c67c: ; 0x0217c67c strgeb r0, [r5, #0x118] ldmgeia sp!, {r3, r4, r5, pc} ldr r1, [r5, #0x48] - ldr r0, _0217c7ec ; =data_027e0e60 + ldr r0, _0217c7ec ; =gMapManager str r1, [sp, #4] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -109023,7 +109023,7 @@ func_ov15_0217c67c: ; 0x0217c67c add r1, sp, #4 mov r2, #0 str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp] ldrh r0, [r5, #0x20] ldr r2, _0217c7f0 ; =data_ov15_02187018 @@ -109088,7 +109088,7 @@ _0217c7d4: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov15_0217c67c -_0217c7ec: .word data_027e0e60 +_0217c7ec: .word gMapManager _0217c7f0: .word data_ov15_02187018 _0217c7f4: .word data_027e0f94 @@ -109421,7 +109421,7 @@ _0217cc78: ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [r4, #0x48] - ldr r0, _0217cec8 ; =data_027e0e60 + ldr r0, _0217cec8 ; =gMapManager str r1, [sp, #8] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -109430,7 +109430,7 @@ _0217cc78: add r1, sp, #8 mov r2, #0 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x30] ldr r0, _0217cecc ; =data_027e0ffc add r2, sp, #0x2c @@ -109563,7 +109563,7 @@ _0217ceb8: .word 0x00000d71 _0217cebc: .word 0xfffffb33 _0217cec0: .word data_027e0e58 _0217cec4: .word 0x00000733 -_0217cec8: .word data_027e0e60 +_0217cec8: .word gMapManager _0217cecc: .word data_027e0ffc _0217ced0: .word 0x00000666 _0217ced4: .word data_027e0764 @@ -109588,7 +109588,7 @@ func_ov15_0217cedc: ; 0x0217cedc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [r10, #0x48] - ldr r0, _0217d008 ; =data_027e0e60 + ldr r0, _0217d008 ; =gMapManager str r1, [sp, #8] ldr r1, [r10, #0x4c] ldr r0, [r0] @@ -109597,7 +109597,7 @@ func_ov15_0217cedc: ; 0x0217cedc add r1, sp, #8 mov r2, #0 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] mov r1, #0 str r1, [sp] @@ -109650,7 +109650,7 @@ _0217cfc0: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov15_0217cedc -_0217d008: .word data_027e0e60 +_0217d008: .word gMapManager _0217d00c: .word data_027e0e58 _0217d010: .word 0x000009ec _0217d014: .word data_027e0ffc @@ -110238,9 +110238,9 @@ _0217d79c: str r1, [sp, #4] str r0, [sp] _0217d7b0: - ldr r0, _0217d860 ; =data_027e0e60 + ldr r0, _0217d860 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082504 + bl _ZN10MapManager18func_ov00_02082504Ev mov r1, r0 add r0, sp, #0 bl func_ov00_020a61ac @@ -110285,7 +110285,7 @@ _0217d82c: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov15_0217d740 -_0217d860: .word data_027e0e60 +_0217d860: .word gMapManager _0217d864: .word 0xffffda66 _0217d868: .word data_027e0f68 @@ -110624,7 +110624,7 @@ func_ov15_0217dc4c: ; 0x0217dc4c ldrsh r2, [r3, r2] blx func_01ff8214 ldr r1, [r4, #0x48] - ldr r0, _0217dd0c ; =data_027e0e60 + ldr r0, _0217dd0c ; =gMapManager str r1, [sp, #0xc] ldr r1, [r4, #0x4c] mov r2, #0 @@ -110636,7 +110636,7 @@ func_ov15_0217dc4c: ; 0x0217dc4c str r2, [sp] str r2, [sp, #4] str r1, [sp, #8] - bl func_ov00_02082504 + bl _ZN10MapManager18func_ov00_02082504Ev mov r1, r0 add r0, sp, #0 bl func_ov00_020a61ac @@ -110655,7 +110655,7 @@ func_ov15_0217dc4c: ; 0x0217dc4c .align 2, 0 arm_func_end func_ov15_0217dc4c _0217dd08: .word data_02050f54 -_0217dd0c: .word data_027e0e60 +_0217dd0c: .word gMapManager .global func_ov15_0217dd10 arm_func_start func_ov15_0217dd10 @@ -113042,12 +113042,12 @@ func_ov15_0217fc40: ; 0x0217fc40 stmdb sp!, {r4, lr} ldr r1, _0217fd58 ; =data_ov15_0218e8e8 mov r4, r0 - ldr r0, _0217fd5c ; =data_027e0e60 + ldr r0, _0217fd5c ; =gMapManager str r1, [r4] add r1, r4, #0x4c ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldrb r0, [r4, #0x3a1] cmp r0, #0 beq _0217fc94 @@ -113113,7 +113113,7 @@ _0217fc94: .align 2, 0 arm_func_end func_ov15_0217fc40 _0217fd58: .word data_ov15_0218e8e8 -_0217fd5c: .word data_027e0e60 +_0217fd5c: .word gMapManager _0217fd60: .word data_027e10a4 .global func_ov15_0217fd64 @@ -113122,12 +113122,12 @@ func_ov15_0217fd64: ; 0x0217fd64 stmdb sp!, {r4, lr} ldr r1, _0217fe84 ; =data_ov15_0218e8e8 mov r4, r0 - ldr r0, _0217fe88 ; =data_027e0e60 + ldr r0, _0217fe88 ; =gMapManager str r1, [r4] add r1, r4, #0x4c ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei ldrb r0, [r4, #0x3a1] cmp r0, #0 beq _0217fdb8 @@ -113195,7 +113195,7 @@ _0217fdb8: .align 2, 0 arm_func_end func_ov15_0217fd64 _0217fe84: .word data_ov15_0218e8e8 -_0217fe88: .word data_027e0e60 +_0217fe88: .word gMapManager _0217fe8c: .word data_027e10a4 .global func_ov15_0217fe90 @@ -113479,7 +113479,7 @@ _02180200: add r1, r4, #0x4c ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei mov r0, #1 strb r0, [r4, #0x474] b _021802e8 @@ -113494,12 +113494,12 @@ _021802a4: b _021802e8 _021802c4: mov r1, #0x1000 - ldr r0, _0218034c ; =data_027e0e60 + ldr r0, _0218034c ; =gMapManager str r1, [r4, #0x37c] add r1, r4, #0x4c ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei mov r0, #1 strb r0, [r4, #0x474] _021802e8: @@ -113531,7 +113531,7 @@ _0218033c: .word 0xcccccccd _02180340: .word 0x00000708 _02180344: .word data_027e0fe8 _02180348: .word 0x4852434e -_0218034c: .word data_027e0e60 +_0218034c: .word gMapManager _02180350: .word 0x0000ffff .global func_ov15_02180354 @@ -114101,22 +114101,22 @@ _02180b9c: bge _02180bd4 cmp r0, #0 beq _02180bf8 - ldr r0, _02180c50 ; =data_027e0e60 + ldr r0, _02180c50 ; =gMapManager add r1, r5, #0x4c ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020838d8 + bl _ZN10MapManager18func_ov00_020838d8Ei mov r0, #0 strb r0, [r5, #0x474] b _02180bf8 _02180bd4: cmp r0, #0 bne _02180bf8 - ldr r0, _02180c50 ; =data_027e0e60 + ldr r0, _02180c50 ; =gMapManager add r1, r5, #0x4c ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020838c8 + bl _ZN10MapManager18func_ov00_020838c8Ei mov r0, #1 strb r0, [r5, #0x474] _02180bf8: @@ -114145,7 +114145,7 @@ _02180c1c: .align 2, 0 arm_func_end func_ov15_02180af0 _02180c4c: .word 0x0000ffff -_02180c50: .word data_027e0e60 +_02180c50: .word gMapManager _02180c54: .word data_ov15_0218e8c8 _02180c58: .word data_ov15_0218e8d4 _02180c5c: .word data_ov15_02190458 @@ -114832,12 +114832,12 @@ func_ov15_021815b0: ; 0x021815b0 ldr r0, [r1] add r1, r5, #0x36c bl _ZN12ActorManager8GetActorEP8ActorRef - ldr r2, _02181610 ; =data_027e0e60 + ldr r2, _02181610 ; =gMapManager mov r4, r0 ldr r0, [r2] ldrh r1, [r5, #0x26] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 cmpne r4, #0 ldmeqia sp!, {r3, r4, r5, pc} @@ -114852,7 +114852,7 @@ func_ov15_021815b0: ; 0x021815b0 .align 2, 0 arm_func_end func_ov15_021815b0 _0218160c: .word data_027e0fe4 -_02181610: .word data_027e0e60 +_02181610: .word gMapManager _02181614: .word data_027e0f94 .global func_ov15_02181618 @@ -115634,11 +115634,11 @@ _0218212c: ; jump table b _021824dc ; case 3 b _0218251c ; case 4 _02182140: - ldr r0, _0218257c ; =data_027e0e60 + ldr r0, _0218257c ; =gMapManager ldrh r1, [r4, #0x26] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _02182548 mov r0, r4 @@ -115912,7 +115912,7 @@ _02182548: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov15_02182110 -_0218257c: .word data_027e0e60 +_0218257c: .word gMapManager _02182580: .word data_027e0f94 _02182584: .word data_027e0f64 _02182588: .word gAdventureFlags @@ -116038,7 +116038,7 @@ func_ov15_021826ac: ; 0x021826ac mov r0, r5 mov r2, r5 bl func_01ff9bc4 - ldr r3, _02182808 ; =data_027e0e60 + ldr r3, _02182808 ; =gMapManager add r7, sp, #0xc ldmia r5, {r0, r1, r2} stmia r7, {r0, r1, r2} @@ -116051,7 +116051,7 @@ func_ov15_021826ac: ; 0x021826ac str r6, [sp] str lr, [sp, #4] str ip, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xa4 add r3, r0, #0x800 ldr r0, [r5, #4] @@ -116090,7 +116090,7 @@ _021827f8: .word 0x00001770 _021827fc: .word data_027e0fac _02182800: .word 0x000008a4 _02182804: .word 0xfffffae1 -_02182808: .word data_027e0e60 +_02182808: .word gMapManager _0218280c: .word 0x00001333 .global func_ov15_02182810 @@ -116121,7 +116121,7 @@ func_ov15_02182810: ; 0x02182810 str r1, [r4, #0x334] ldrsh ip, [r0, #0x98] ldrsh r3, [r0, #0x9a] - ldr r2, _021829e4 ; =data_027e0e60 + ldr r2, _021829e4 ; =gMapManager add r1, sp, #0x20 add r3, ip, r3 strh r3, [r0, #0x98] @@ -116133,7 +116133,7 @@ func_ov15_02182810: ; 0x02182810 str r3, [sp, #0x24] ldr r3, [r4, #0x338] str r3, [sp, #0x28] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x334] cmp r1, r0 blt _021828c0 @@ -116218,7 +116218,7 @@ _0218291c: .align 2, 0 arm_func_end func_ov15_02182810 _021829e0: .word 0x00000133 -_021829e4: .word data_027e0e60 +_021829e4: .word gMapManager _021829e8: .word data_027e10a4 _021829ec: .word data_027e0f64 @@ -116758,14 +116758,14 @@ _02182ff0: ldr r0, [sp, #0x28] ldr r1, [sp, #0x24] str r0, [sp, #0x1c] - ldr r0, _02183248 ; =data_027e0e60 + ldr r0, _02183248 ; =gMapManager str r1, [sp, #0x18] ldr r1, [sp, #0x2c] ldr r0, [r0] str r1, [sp, #0x20] add r1, sp, #0x18 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x9a add r1, r0, #0x900 ldr r0, [sp, #0x28] @@ -116878,7 +116878,7 @@ _021831d4: arm_func_end func_ov15_02182fc0 _02183240: .word data_027e0f64 _02183244: .word data_027e0f94 -_02183248: .word data_027e0e60 +_02183248: .word gMapManager _0218324c: .word data_02050f54 .global func_ov15_02183250 @@ -118300,9 +118300,9 @@ func_ov15_02184540: ; 0x02184540 bl func_ov00_020a5e9c cmp r0, #0 ldmneia sp!, {r4, pc} - ldr r0, _021845e4 ; =data_027e0e60 + ldr r0, _021845e4 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev ldrb r1, [r4, #0x54] cmp r1, r0 bne _021845b4 @@ -118328,16 +118328,16 @@ _021845b4: strb r0, [r4, #0x55] mvn r1, #0x80000000 str r1, [r4, #0x48] - ldr r0, _021845e4 ; =data_027e0e60 + ldr r0, _021845e4 ; =gMapManager str r1, [r4, #0x3c] ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev strb r0, [r4, #0x54] ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov15_02184540 _021845e0: .word data_027e0d38 -_021845e4: .word data_027e0e60 +_021845e4: .word gMapManager .global func_ov15_021845e8 arm_func_start func_ov15_021845e8 @@ -118350,9 +118350,9 @@ func_ov15_021845e8: ; 0x021845e8 bl func_ov00_020a5e9c cmp r0, #0 ldmneia sp!, {r4, pc} - ldr r0, _02184640 ; =data_027e0e60 + ldr r0, _02184640 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev ldrb r1, [r4, #0x64] cmp r0, r1 ldmeqia sp!, {r4, pc} @@ -118366,7 +118366,7 @@ func_ov15_021845e8: ; 0x021845e8 .align 2, 0 arm_func_end func_ov15_021845e8 _0218463c: .word data_027e0d38 -_02184640: .word data_027e0e60 +_02184640: .word gMapManager .global func_ov15_02184644 arm_func_start func_ov15_02184644 @@ -118379,9 +118379,9 @@ func_ov15_02184644: ; 0x02184644 bl func_ov00_020a5e9c cmp r0, #0 ldmneia sp!, {r4, pc} - ldr r0, _021846f4 ; =data_027e0e60 + ldr r0, _021846f4 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev ldrb r1, [r4, #0xc3] cmp r0, r1 ldmeqia sp!, {r4, pc} @@ -118419,7 +118419,7 @@ _021846c8: .align 2, 0 arm_func_end func_ov15_02184644 _021846f0: .word data_027e0d38 -_021846f4: .word data_027e0e60 +_021846f4: .word gMapManager .global func_ov15_021846f8 arm_func_start func_ov15_021846f8 @@ -130484,7 +130484,7 @@ data_ov15_0218a294: ; 0x0218a294 .word func_ov15_021299a8 .global data_ov15_0218a298 data_ov15_0218a298: ; 0x0218a298 - .word func_ov00_0207e46c + .word _ZN7MapBase8vfunc_48Ev .global data_ov15_0218a29c data_ov15_0218a29c: ; 0x0218a29c .word func_ov15_02129ff4 @@ -130496,7 +130496,7 @@ data_ov15_0218a2a4: ; 0x0218a2a4 .word func_ov15_021299e4 .global data_ov15_0218a2a8 data_ov15_0218a2a8: ; 0x0218a2a8 - .word func_ov00_0207e498 + .word _ZN7MapBase8vfunc_58Ev .global data_ov15_0218a2ac data_ov15_0218a2ac: ; 0x0218a2ac .word func_ov15_021299ec @@ -130505,7 +130505,7 @@ data_ov15_0218a2b0: ; 0x0218a2b0 .word func_ov15_021299f4 .global data_ov15_0218a2b4 data_ov15_0218a2b4: ; 0x0218a2b4 - .word func_ov00_0207e4b0 + .word _ZN7MapBase8vfunc_64Ev .global data_ov15_0218a2b8 data_ov15_0218a2b8: ; 0x0218a2b8 .word func_ov15_021299fc @@ -130541,10 +130541,10 @@ data_ov15_0218a2e0: ; 0x0218a2e0 .word func_ov15_02129b2c .global data_ov15_0218a2e4 data_ov15_0218a2e4: ; 0x0218a2e4 - .word func_ov00_0207f4a0 + .word _ZN7MapBase8vfunc_94Ev .global data_ov15_0218a2e8 data_ov15_0218a2e8: ; 0x0218a2e8 - .word func_ov00_02080d78 + .word _ZN7MapBase8vfunc_98Ev .global data_ov15_0218a2ec data_ov15_0218a2ec: ; 0x0218a2ec .word func_ov15_02129b50 @@ -130553,13 +130553,13 @@ data_ov15_0218a2f0: ; 0x0218a2f0 .word func_ov15_02129c04 .global data_ov15_0218a2f4 data_ov15_0218a2f4: ; 0x0218a2f4 - .word func_ov00_0207f33c + .word _ZN7MapBase8vfunc_a4Ev .global data_ov15_0218a2f8 data_ov15_0218a2f8: ; 0x0218a2f8 - .word func_ov00_0207f344 + .word _ZN7MapBase8vfunc_a8Ev .global data_ov15_0218a2fc data_ov15_0218a2fc: ; 0x0218a2fc - .word func_ov00_0207f348 + .word _ZN7MapBase8vfunc_acEv .global data_ov15_0218a300 data_ov15_0218a300: ; 0x0218a300 .word func_ov15_02129b38 @@ -130571,10 +130571,10 @@ data_ov15_0218a308: ; 0x0218a308 .word func_ov15_02129b30 .global data_ov15_0218a30c data_ov15_0218a30c: ; 0x0218a30c - .word func_ov00_02080d74 + .word _ZN7MapBase8vfunc_bcEv .global data_ov15_0218a310 data_ov15_0218a310: ; 0x0218a310 - .word func_ov00_02080d7c + .word _ZN7MapBase8vfunc_c0Ev .global data_ov15_0218a314 data_ov15_0218a314: ; 0x0218a314 .ascii "M01" diff --git a/asm/ov17.inc b/asm/ov17.inc index 50b401ef..c8e656d3 100644 --- a/asm/ov17.inc +++ b/asm/ov17.inc @@ -90,7 +90,7 @@ .extern data_027e0d38 .extern data_027e0d3c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -207,61 +207,61 @@ .extern func_ov00_0207c358 .extern func_ov00_0207c444 .extern func_ov00_0207c474 -.extern func_ov00_0207da38 -.extern func_ov00_0207ddf4 -.extern func_ov00_0207e060 -.extern func_ov00_0207e444 -.extern func_ov00_0207e46c -.extern func_ov00_0207e488 -.extern func_ov00_0207e4b0 -.extern func_ov00_0207e4b8 -.extern func_ov00_0207e970 -.extern func_ov00_0207ee14 -.extern func_ov00_0207eff4 -.extern func_ov00_0207f324 -.extern func_ov00_0207f32c -.extern func_ov00_0207f334 -.extern func_ov00_0207f338 -.extern func_ov00_0207f364 -.extern func_ov00_0207f3c4 -.extern func_ov00_0207f4a4 -.extern func_ov00_0207f588 -.extern func_ov00_020807d4 +.extern _ZN7MapBaseD1Ev +.extern _ZN7MapBase8vfunc_18Ev +.extern _ZN7MapBase8vfunc_b0Eii +.extern _ZN7MapBase8vfunc_b4Ev +.extern _ZN7MapBase8vfunc_48Ev +.extern _ZN7MapBase8vfunc_50Ev +.extern _ZN7MapBase8vfunc_64Ev +.extern _ZN7MapBase8vfunc_68Eii +.extern _ZN7MapBase8vfunc_6cEiii +.extern _ZN7MapBase8vfunc_70EP5Vec3p +.extern _ZN7MapBase8vfunc_74EP5Vec3p +.extern _ZN7MapBase8vfunc_88Ev +.extern _ZN7MapBase8vfunc_8cEv +.extern _ZN7MapBase8vfunc_9cEv +.extern _ZN7MapBase8vfunc_a0Ev +.extern _ZN7MapBase8vfunc_84Ei +.extern _ZN7MapBase8vfunc_90Eiii +.extern _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si +.extern _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi +.extern _ZN7MapBase8vfunc_b8Ev .extern func_ov00_02081f58 .extern func_ov00_02081f6c -.extern func_ov00_020823c4 -.extern func_ov00_020823d4 -.extern func_ov00_020823e4 -.extern func_ov00_020823f4 -.extern func_ov00_02082680 -.extern func_ov00_020826a0 -.extern func_ov00_020828c0 -.extern func_ov00_0208335c -.extern func_ov00_02083368 -.extern func_ov00_02083604 -.extern func_ov00_02083614 -.extern func_ov00_020836dc -.extern func_ov00_02083790 -.extern func_ov00_02083840 -.extern func_ov00_020839d4 -.extern func_ov00_020839f8 -.extern func_ov00_02083a1c -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083ee0 -.extern func_ov00_02083f44 -.extern func_ov00_02083fb0 -.extern func_ov00_020840a0 -.extern func_ov00_020840c4 -.extern func_ov00_020843ec -.extern func_ov00_02084a5c -.extern func_ov00_02084ac4 -.extern func_ov00_02084b20 -.extern func_ov00_02084b2c -.extern func_ov00_02084cb0 -.extern func_ov00_02084cc8 -.extern func_ov00_02084d24 -.extern func_ov00_0208583c +.extern _ZN10MapManager18func_ov00_020823c4EPii +.extern _ZN10MapManager18func_ov00_020823d4Ei +.extern _ZN10MapManager18func_ov00_020823e4Ei +.extern _ZN10MapManager16MapData_vfunc_b4Ev +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_020826a0Eiii +.extern _ZN10MapManager16MapData_vfunc_7cEv +.extern _ZN10MapManager17Get_MapData_Unk28Ev +.extern _ZN10MapManager17Get_MapData_Unk2aEv +.extern _ZN10MapManager18func_ov00_02083604Ei +.extern _ZN10MapManager18func_ov00_02083614Ei +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083790Ei +.extern _ZN10MapManager18func_ov00_02083840Ei +.extern _ZN10MapManager18func_ov00_020839d4Ev +.extern _ZN10MapManager18func_ov00_020839f8Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager18func_ov00_020840a0Ecci +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager18func_ov00_020843ecEPi +.extern _ZN10MapManager8SpawnNPCEP5Vec3pii +.extern _ZN10MapManager18func_ov00_02084ac4Ej +.extern _ZN10MapManager21SetCourseData_Unk_25cEc +.extern _ZN10MapManager21GetCourseData_Unk_25dEv +.extern _ZN10MapManager18func_ov00_02084cb0Ei +.extern _ZN10MapManager18func_ov00_02084cc8Ei +.extern _ZN10MapManager18func_ov00_02084d24Ecci +.extern _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi .extern func_ov00_02088130 .extern func_ov00_02088144 .extern func_ov00_02088158 diff --git a/asm/ov17.s b/asm/ov17.s index bc796bdc..cb50764d 100644 --- a/asm/ov17.s +++ b/asm/ov17.s @@ -221,7 +221,7 @@ _0215b64a: lsl r0, r0, #2 str r1, [r5, r0] add r0, r5, #0 - blx func_ov00_0207da38 + blx _ZN7MapBaseD1Ev add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -298,7 +298,7 @@ _0215b6de: lsl r0, r0, #2 str r1, [r5, r0] add r0, r5, #0 - blx func_ov00_0207da38 + blx _ZN7MapBaseD1Ev add r0, r5, #0 blx _ZN9SysObjectdlEPv add r0, r5, #0 @@ -476,7 +476,7 @@ _0215b850: mov r3, #0 strb r7, [sp, #8] strb r8, [sp, #9] - bl func_ov00_0207f588 + bl _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi mov r0, r10 ldr r3, [r0] mov r1, r5 @@ -493,7 +493,7 @@ _0215b850: mov r1, r10 mov r2, r5 mov r3, #1 - bl func_ov00_0207f588 + bl _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi mov r0, r10 ldr r3, [r0] mov r1, r5 @@ -510,7 +510,7 @@ _0215b850: mov r1, r10 mov r2, r5 mov r3, #2 - bl func_ov00_0207f588 + bl _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi mov r0, r10 ldr r3, [r0] mov r1, r5 @@ -527,7 +527,7 @@ _0215b850: mov r1, r10 mov r2, r5 mov r3, #3 - bl func_ov00_0207f588 + bl _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi mov r0, r10 ldr r3, [r0] mov r1, r5 @@ -606,7 +606,7 @@ func_ov17_0215ba1c: ; 0x0215ba1c mov r4, r2 mov r6, r0 mov r5, r1 - bl func_ov00_0207f4a4 + bl _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si cmp r4, #0 cmpne r0, #0 mov r0, r6 @@ -768,23 +768,23 @@ func_ov17_0215bbd4: ; 0x0215bbd4 sub sp, sp, #0x1c mov r6, r2 mov r7, r1 - ldr r2, _0215bd28 ; =data_027e0e60 + ldr r2, _0215bd28 ; =gMapManager mov r8, r0 ldrb r1, [r6, #1] ldr r0, [r2] mov r5, r3 - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei mov r4, r0 mov r0, r8 ldr r2, [r0] mov r1, r6 ldr r2, [r2, #0x60] blx r2 - ldr r1, _0215bd28 ; =data_027e0e60 + ldr r1, _0215bd28 ; =gMapManager mov r9, r0 ldr r0, [r1] ldrb r1, [r6] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r9, [sp, #0x14] str r4, [sp, #0x18] str r0, [sp, #0x10] @@ -858,7 +858,7 @@ _0215bd1c: ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov17_0215bbd4 -_0215bd28: .word data_027e0e60 +_0215bd28: .word gMapManager _0215bd2c: .word data_027e0f68 .global func_ov17_0215bd30 @@ -1139,12 +1139,12 @@ func_ov17_0215bf8c: ; 0x0215bf8c sub r0, r0, #4 str r0, [r4, #0x18] ldr r1, [r4, #0x20] - ldr r0, _0215c0fc ; =data_027e0e60 + ldr r0, _0215c0fc ; =gMapManager sub r1, r1, #4 str r1, [r4, #0x20] ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 mov r2, #1 @@ -1164,7 +1164,7 @@ _0215c0e4: .align 2, 0 arm_func_end func_ov17_0215bf8c _0215c0f8: .word 0x00001333 -_0215c0fc: .word data_027e0e60 +_0215c0fc: .word gMapManager .global func_ov17_0215c100 arm_func_start func_ov17_0215c100 @@ -1324,12 +1324,12 @@ _0215c2f4: mov r0, #0x1f strb r0, [r5, #0xd1] ldr r1, [r5, #4] - ldr r0, _0215c654 ; =data_027e0e60 + ldr r0, _0215c654 ; =gMapManager orr r1, r1, #0x14 str r1, [r5, #4] ldr r0, [r0] add r1, r5, #0x38 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _0215c648 _0215c32c: ldr r1, [r5, #4] @@ -1500,11 +1500,11 @@ _0215c598: bic r0, r0, #4 str r0, [r5, #4] strb r1, [r5, #0x3c] - ldr r0, _0215c654 ; =data_027e0e60 + ldr r0, _0215c654 ; =gMapManager add r1, r5, #0x38 ldr r0, [r0] mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldr r1, _0215c670 ; =0xffffed1f mov r0, #0 str r1, [r5, #0x70] @@ -1535,18 +1535,18 @@ _0215c5fc: mov r2, #1 bl func_ov00_0208ba08 _0215c634: - ldr r0, _0215c654 ; =data_027e0e60 + ldr r0, _0215c654 ; =gMapManager ldrsh r1, [r5, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei _0215c648: mov r0, #1 add sp, sp, #0x108 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov17_0215c2bc -_0215c654: .word data_027e0e60 +_0215c654: .word gMapManager _0215c658: .word gAdventureFlags _0215c65c: .word data_027e0e58 _0215c660: .word data_027e0ffc @@ -1821,7 +1821,7 @@ func_ov17_0215c940: ; 0x0215c940 cmp r0, #1 bne _0215c9c4 ldr r0, [r4, #0x18] - ldr r1, _0215ca64 ; =data_027e0e60 + ldr r1, _0215ca64 ; =gMapManager add r0, r0, #0x3fc add r0, r0, #0x400 str r0, [r4, #0x18] @@ -1832,15 +1832,15 @@ func_ov17_0215c940: ; 0x0215c940 strb r2, [sp, #4] mov r2, #1 strb r3, [sp, #5] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r2, [sp, #4] - ldr r0, _0215ca64 ; =data_027e0e60 + ldr r0, _0215ca64 ; =gMapManager add r1, sp, #4 add r3, r2, #1 ldr r0, [r0] mov r2, #1 strb r3, [sp, #4] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii _0215c9c4: ldrh r0, [r4, #0x26] mov r1, #0x24 @@ -1884,7 +1884,7 @@ _0215c9c4: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_0215c940 -_0215ca64: .word data_027e0e60 +_0215ca64: .word gMapManager _0215ca68: .word data_027e0f68 _0215ca6c: .word 0x000004cd @@ -1897,10 +1897,10 @@ func_ov17_0215ca70: ; 0x0215ca70 ldrh r0, [r4, #0x24] cmp r0, #1 bne _0215cabc - ldr r0, _0215cba0 ; =data_027e0e60 + ldr r0, _0215cba0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 bne _0215cabc mov r0, r4 @@ -1965,16 +1965,16 @@ _0215cb6c: mov r2, #1 blx r3 _0215cb84: - ldr r0, _0215cba0 ; =data_027e0e60 + ldr r0, _0215cba0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_0215ca70 -_0215cba0: .word data_027e0e60 +_0215cba0: .word gMapManager _0215cba4: .word data_027e0fe4 .global func_ov17_0215cba8 @@ -2216,12 +2216,12 @@ func_ov17_0215ce24: ; 0x0215ce24 movne r0, #0 ldmneia sp!, {r4, r5, pc} ldr r1, [sp, #4] - ldr r0, _0215cee8 ; =data_027e0e60 + ldr r0, _0215cee8 ; =gMapManager str r1, [r4] ldr r1, [r0] add r0, sp, #0 add r2, r2, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r1, [sp] ldrb r0, [r5, #0x14] cmp r1, r0 @@ -2236,7 +2236,7 @@ func_ov17_0215ce24: ; 0x0215ce24 arm_func_end func_ov17_0215ce24 _0215cee0: .word data_027e0fe4 _0215cee4: .word 0x43525953 -_0215cee8: .word data_027e0e60 +_0215cee8: .word gMapManager .global func_ov17_0215ceec arm_func_start func_ov17_0215ceec @@ -2488,7 +2488,7 @@ _0215d1ec: mov r2, r0 bl func_01ff9bc4 ldr r3, _0215d478 ; =data_027e0d0c - ldr r1, _0215d47c ; =data_027e0e60 + ldr r1, _0215d47c ; =gMapManager ldr r2, [r3] add r0, sp, #0 str r2, [r4, #0x208] @@ -2498,7 +2498,7 @@ _0215d1ec: ldr r3, [r3, #8] str r3, [r4, #0x210] ldr r1, [r1] - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldr r0, [r4, #0x68] ldr r1, [r4, #0x60] cmp r0, #0 @@ -2653,7 +2653,7 @@ _0215d46c: .word 0x0000019a _0215d470: .word 0xfffffe3d _0215d474: .word 0x000001c3 _0215d478: .word data_027e0d0c -_0215d47c: .word data_027e0e60 +_0215d47c: .word gMapManager _0215d480: .word data_027e0ffc .global func_ov17_0215d484 @@ -2926,7 +2926,7 @@ func_ov17_0215d7bc: ; 0x0215d7bc mov lr, #4 str r1, [sp, #0x24] ldr r1, [r4, #0x50] - ldr ip, _0215d8b0 ; =data_027e0e60 + ldr ip, _0215d8b0 ; =gMapManager str r1, [sp, #0x28] ldr r2, [r4, #0x48] add r1, sp, #0x2c @@ -2960,7 +2960,7 @@ func_ov17_0215d7bc: ; 0x0215d7bc .align 2, 0 arm_func_end func_ov17_0215d7bc _0215d8ac: .word 0x0000ffff -_0215d8b0: .word data_027e0e60 +_0215d8b0: .word gMapManager _0215d8b4: .word data_ov17_0216bc64 .global func_ov17_0215d8b8 @@ -3501,15 +3501,15 @@ _0215dfec: .word func_01ff9bc4 func_ov17_0215dff0: ; 0x0215dff0 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #8 - ldr r2, _0215e1b4 ; =data_027e0e60 + ldr r2, _0215e1b4 ; =gMapManager mov r11, r1 ldr r1, [r2] mov r10, r0 add r0, sp, #6 mov r2, r11 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p mov r7, #0 - ldr r4, _0215e1b4 ; =data_027e0e60 + ldr r4, _0215e1b4 ; =gMapManager str r7, [r10, #0x1ec] add r6, sp, #4 _0215e024: @@ -3526,7 +3526,7 @@ _0215e038: mov r1, r6 strb r8, [sp, #4] strb r2, [sp, #5] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _0215e078 ldr r1, [r0] @@ -3618,7 +3618,7 @@ _0215e090: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov17_0215dff0 -_0215e1b4: .word data_027e0e60 +_0215e1b4: .word gMapManager _0215e1b8: .word data_ov17_0216bc64 _0215e1bc: .word data_027e0e58 @@ -3744,15 +3744,15 @@ _0215e334: .word func_ov00_020b7d74 arm_func_start func_ov17_0215e338 func_ov17_0215e338: ; 0x0215e338 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} - ldr r2, _0215e460 ; =data_027e0e60 + ldr r2, _0215e460 ; =gMapManager mov r11, r1 ldr r1, [r2] mov r10, r0 add r0, sp, #2 mov r2, r11 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p mov r7, #0 - ldr r4, _0215e460 ; =data_027e0e60 + ldr r4, _0215e460 ; =gMapManager str r7, [r10, #0x250] add r6, sp, #0 _0215e368: @@ -3769,7 +3769,7 @@ _0215e37c: mov r1, r6 strb r8, [sp] strb r2, [sp, #1] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _0215e3bc ldr r1, [r0] @@ -3823,7 +3823,7 @@ _0215e3e4: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov17_0215e338 -_0215e460: .word data_027e0e60 +_0215e460: .word gMapManager .global func_ov17_0215e464 arm_func_start func_ov17_0215e464 @@ -4848,15 +4848,15 @@ func_ov17_0215f16c: ; 0x0215f16c bl func_ov17_0215f874 b _0215f2b8 _0215f25c: - ldr r1, _0215f2e0 ; =data_027e0e60 + ldr r1, _0215f2e0 ; =gMapManager add r0, sp, #0 ldr r1, [r1] add r2, r4, #0x48 - bl func_ov00_02083a1c - ldr r0, _0215f2e0 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _0215f2e0 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _0215f2ac ldr r1, [r0] @@ -4885,7 +4885,7 @@ _0215f2d0: .word gItemManager _0215f2d4: .word data_027e0fc4 _0215f2d8: .word 0x00000733 _0215f2dc: .word data_ov17_0216b0d0 -_0215f2e0: .word data_027e0e60 +_0215f2e0: .word gMapManager .global func_ov17_0215f2e4 arm_func_start func_ov17_0215f2e4 @@ -5302,15 +5302,15 @@ func_ov17_0215f874: ; 0x0215f874 mov r1, #2 mov r4, r0 bl func_ov17_0215f2e4 - ldr r1, _0215f904 ; =data_027e0e60 + ldr r1, _0215f904 ; =gMapManager add r0, sp, #0 ldr r1, [r1] mov r2, r5 - bl func_ov00_02083a1c - ldr r0, _0215f904 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _0215f904 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 ldmeqia sp!, {r3, r4, r5, pc} ldr r1, [r0] @@ -5335,7 +5335,7 @@ func_ov17_0215f874: ; 0x0215f874 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov17_0215f874 -_0215f904: .word data_027e0e60 +_0215f904: .word gMapManager .global func_ov17_0215f908 arm_func_start func_ov17_0215f908 @@ -5397,7 +5397,7 @@ func_ov17_0215f9a0: ; 0x0215f9a0 cmp r0, #2 bne _0215fa00 ldr r1, [r4, #0x48] - ldr r0, _0215fa20 ; =data_027e0e60 + ldr r0, _0215fa20 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -5406,7 +5406,7 @@ func_ov17_0215f9a0: ; 0x0215f9a0 add r1, sp, #0 str r2, [sp, #8] ldr r2, [r4, #8] - bl func_ov00_0208583c + bl _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi cmp r0, #0 movlt r0, #1 movge r0, #0 @@ -5425,7 +5425,7 @@ _0215fa00: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov17_0215f9a0 -_0215fa20: .word data_027e0e60 +_0215fa20: .word gMapManager .global func_ov17_0215fa24 arm_func_start func_ov17_0215fa24 @@ -5582,13 +5582,13 @@ _0215fb50: cmp r4, r0 bgt _0215fb88 _0215fb5e: - ldr r0, _0215fba4 ; =data_027e0e60 + ldr r0, _0215fba4 ; =gMapManager ldr r7, [r0] add r0, r4, #0 blx func_ov03_020f8068 add r1, r0, #0 add r0, r7, #0 - blx func_ov00_02083614 + blx _ZN10MapManager18func_ov00_02083614Ei cmp r0, #0 beq _0215fb80 cmp r4, r5 @@ -5621,7 +5621,7 @@ _0215fb96: pop {r3, r4, r5, r6, r7, pc} nop thumb_func_end func_ov17_0215faf0 -_0215fba4: .word data_027e0e60 +_0215fba4: .word gMapManager .global func_ov17_0215fba8 arm_func_start func_ov17_0215fba8 @@ -5655,7 +5655,7 @@ func_ov17_0215fbd8: ; 0x0215fbd8 mov r1, #0 movge r6, #6 bl func_ov17_02160274 - ldr r11, _0215fcd0 ; =data_027e0e60 + ldr r11, _0215fcd0 ; =gMapManager mov r4, r7 add r5, r7, #4 mov r9, #0 @@ -5674,7 +5674,7 @@ _0215fc14: bl func_ov03_020f8068 mov r1, r0 mov r0, r10 - bl func_ov00_02083614 + bl _ZN10MapManager18func_ov00_02083614Ei cmp r0, #0 beq _0215fcb4 ldr r10, [r11] @@ -5682,7 +5682,7 @@ _0215fc14: bl func_ov03_020f8068 mov r1, r0 mov r0, r10 - bl func_ov00_02083604 + bl _ZN10MapManager18func_ov00_02083604Ei cmp r0, #0 beq _0215fcb4 _0215fc78: @@ -5711,7 +5711,7 @@ _0215fcb4: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov17_0215fbd8 -_0215fcd0: .word data_027e0e60 +_0215fcd0: .word gMapManager .global func_ov17_0215fcd4 arm_func_start func_ov17_0215fcd4 @@ -5745,13 +5745,13 @@ _0215fd1c: cmp r7, r6 bgt _0215fd7c _0215fd3c: - ldr r0, _0215ff20 ; =data_027e0e60 + ldr r0, _0215ff20 ; =gMapManager ldr r8, [r0] mov r0, r7 bl func_ov03_020f8068 mov r1, r0 mov r0, r8 - bl func_ov00_02083614 + bl _ZN10MapManager18func_ov00_02083614Ei cmp r0, #0 beq _0215fd70 cmp r5, r7 @@ -5879,7 +5879,7 @@ _0215ff14: .align 2, 0 arm_func_end func_ov17_0215fcd4 _0215ff1c: .word 0x0001869f -_0215ff20: .word data_027e0e60 +_0215ff20: .word gMapManager _0215ff24: .word data_027e1054 _0215ff28: .word data_ov00_020eec9c _0215ff2c: .word data_027e077c @@ -5930,13 +5930,13 @@ _0215ffcc: mov r0, r10 mov r1, r5 bl func_ov17_02160274 - ldr r1, _021600e8 ; =data_027e0e60 + ldr r1, _021600e8 ; =gMapManager mov r4, r0 ldr r6, [r1] bl func_ov03_020f8068 mov r1, r0 mov r0, r6 - bl func_ov00_02083614 + bl _ZN10MapManager18func_ov00_02083614Ei cmp r0, #0 beq _02160088 mov r0, r7 @@ -6002,7 +6002,7 @@ _02160098: arm_func_end func_ov17_0215ff30 _021600e0: .word data_027e0618 _021600e4: .word data_ov17_0216bfb4 -_021600e8: .word data_027e0e60 +_021600e8: .word gMapManager _021600ec: .word data_027e077c .global func_ov17_021600f0 @@ -6724,7 +6724,7 @@ _021608d4: add r1, r4, #0x1b8 bl func_ov00_020c522c ldr r1, [r4, #0x1b8] - ldr r0, _02160950 ; =data_027e0e60 + ldr r0, _02160950 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x1bc] ldr r0, [r0] @@ -6733,7 +6733,7 @@ _021608d4: add r1, sp, #0 str r2, [sp, #8] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x1bc] ldr r0, [r4, #0x144] cmp r0, #0 @@ -6755,7 +6755,7 @@ _02160934: arm_func_end func_ov17_021607b8 _02160948: .word data_027e0fec _0216094c: .word 0x00000333 -_02160950: .word data_027e0e60 +_02160950: .word gMapManager .global func_ov17_02160954 arm_func_start func_ov17_02160954 @@ -6931,7 +6931,7 @@ _02160b10: addeq sp, sp, #0x20 ldmeqia sp!, {r3, r4, r5, pc} ldr r1, [r5, #0x48] - ldr r0, _02160e5c ; =data_027e0e60 + ldr r0, _02160e5c ; =gMapManager str r1, [sp, #0x14] ldr r2, [r5, #0x4c] ldr r1, [r0] @@ -6940,7 +6940,7 @@ _02160b10: add r0, sp, #4 add r2, sp, #0x14 str r3, [sp, #0x1c] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #4] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -7003,7 +7003,7 @@ _02160c28: cmp r0, #0 beq _02160d68 ldr r1, [r5, #0x48] - ldr r0, _02160e5c ; =data_027e0e60 + ldr r0, _02160e5c ; =gMapManager str r1, [sp, #8] ldr r2, [r5, #0x4c] ldr r1, [r0] @@ -7012,7 +7012,7 @@ _02160c28: add r0, sp, #0 add r2, sp, #8 str r3, [sp, #0x10] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -7139,7 +7139,7 @@ _02160e54: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov17_02160a78 -_02160e5c: .word data_027e0e60 +_02160e5c: .word gMapManager _02160e60: .word data_027e0ffc _02160e64: .word 0x000001ab _02160e68: .word 0xfffffe66 @@ -7607,18 +7607,18 @@ _02161404: cmpne r0, #1 mov r2, #0 bne _02161468 - ldr r0, _021614f0 ; =data_027e0e60 + ldr r0, _021614f0 ; =gMapManager add r1, r5, #0x18 ldr r0, [r0] mov r3, #2 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii b _021614dc _02161468: - ldr r0, _021614f0 ; =data_027e0e60 + ldr r0, _021614f0 ; =gMapManager add r1, r5, #0x18 ldr r0, [r0] mov r3, #1 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii b _021614dc _02161480: bl func_ov14_02127188 @@ -7638,10 +7638,10 @@ _021614a8: mov r0, r5 mov r2, r1 bl func_ov00_0208ba08 - ldr r0, _021614f0 ; =data_027e0e60 + ldr r0, _021614f0 ; =gMapManager ldrh r1, [r5, #0x24] ldr r0, [r0] - bl func_ov00_02083840 + bl _ZN10MapManager18func_ov00_02083840Ei b _021614dc _021614d0: mov r0, r5 @@ -7655,7 +7655,7 @@ _021614dc: arm_func_end func_ov17_021612b0 _021614e8: .word data_ov17_0216b0d8 _021614ec: .word gAdventureFlags -_021614f0: .word data_027e0e60 +_021614f0: .word gMapManager .global func_ov17_021614f4 arm_func_start func_ov17_021614f4 @@ -7746,11 +7746,11 @@ func_ov17_0216161c: ; 0x0216161c cmp r0, #0 movne r0, #1 ldmneia sp!, {r4, pc} - ldr r0, _02161678 ; =data_027e0e60 + ldr r0, _02161678 ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _02161670 ldr r0, _0216167c ; =data_027e0fe4 @@ -7766,7 +7766,7 @@ _02161670: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_0216161c -_02161678: .word data_027e0e60 +_02161678: .word gMapManager _0216167c: .word data_027e0fe4 .global func_ov17_02161680 @@ -7774,10 +7774,10 @@ _0216167c: .word data_027e0fe4 func_ov17_02161680: ; 0x02161680 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _021616e8 ; =data_027e0e60 + ldr r0, _021616e8 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, pc} @@ -7792,25 +7792,25 @@ func_ov17_02161680: ; 0x02161680 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _021616e8 ; =data_027e0e60 + ldr r0, _021616e8 ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] - bl func_ov00_02083840 + bl _ZN10MapManager18func_ov00_02083840Ei mov r0, #1 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_02161680 -_021616e8: .word data_027e0e60 +_021616e8: .word gMapManager .global func_ov17_021616ec arm_func_start func_ov17_021616ec func_ov17_021616ec: ; 0x021616ec stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _0216179c ; =data_027e0e60 + ldr r0, _0216179c ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, pc} @@ -7835,23 +7835,23 @@ func_ov17_021616ec: ; 0x021616ec cmp r1, r0 movne r0, #0 ldmneia sp!, {r4, pc} - ldr r0, _0216179c ; =data_027e0e60 + ldr r0, _0216179c ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _0216179c ; =data_027e0e60 + ldr r0, _0216179c ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] - bl func_ov00_02083790 + bl _ZN10MapManager18func_ov00_02083790Ei mov r0, #1 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_021616ec -_0216179c: .word data_027e0e60 +_0216179c: .word gMapManager _021617a0: .word data_027e0d38 _021617a4: .word data_027e077c @@ -9449,7 +9449,7 @@ func_ov17_02162afc: ; 0x02162afc ldr ip, [ip, #0x10] add r1, sp, #8 blx ip - ldr r0, _02162bec ; =data_027e0e60 + ldr r0, _02162bec ; =gMapManager ldr r1, [r0] ldrb r1, [r1, #8] strb r1, [r4, #0x60] @@ -9475,7 +9475,7 @@ _02162bd0: .align 2, 0 arm_func_end func_ov17_02162afc _02162be8: .word 0x00001333 -_02162bec: .word data_027e0e60 +_02162bec: .word gMapManager .global func_ov17_02162bf0 arm_func_start func_ov17_02162bf0 @@ -9494,7 +9494,7 @@ func_ov17_02162bf0: ; 0x02162bf0 cmp r0, #0 ldmeqia sp!, {r3, r4, r5, pc} ldr r1, [r5, #0x64] - ldr r0, _02162cf4 ; =data_027e0e60 + ldr r0, _02162cf4 ; =gMapManager add r1, r1, #1 str r1, [r5, #0x64] ldr r1, [r5, #0x68] @@ -9520,7 +9520,7 @@ _02162c78: mov r2, #0 blx r3 _02162c88: - ldr r1, _02162cf4 ; =data_027e0e60 + ldr r1, _02162cf4 ; =gMapManager ldr r0, _02162cf8 ; =data_027e0f64 ldr r2, [r1] add r1, sp, #0 @@ -9550,7 +9550,7 @@ _02162ce0: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov17_02162bf0 -_02162cf4: .word data_027e0e60 +_02162cf4: .word gMapManager _02162cf8: .word data_027e0f64 _02162cfc: .word data_027e0e58 @@ -9628,7 +9628,7 @@ func_ov17_02162dd0: ; 0x02162dd0 cmp r0, #0x19 movlt r0, #1 ldmltia sp!, {r4, pc} - ldr r0, _02162e78 ; =data_027e0e60 + ldr r0, _02162e78 ; =gMapManager mov r3, #0 ldr r1, [r0] add r2, r4, #0x18 @@ -9642,7 +9642,7 @@ func_ov17_02162dd0: ; 0x02162dd0 ldr r1, _02162e80 ; =0x000001a9 str r3, [r4, #0x68] bl func_ov00_020ceacc - ldr r0, _02162e78 ; =data_027e0e60 + ldr r0, _02162e78 ; =gMapManager ldr r0, [r0] ldrb r0, [r0, #8] cmp r0, #0 @@ -9664,7 +9664,7 @@ _02162e70: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_02162dd0 -_02162e78: .word data_027e0e60 +_02162e78: .word gMapManager _02162e7c: .word data_027e0ffc _02162e80: .word 0x000001a9 @@ -10926,18 +10926,18 @@ func_ov17_02163e24: ; 0x02163e24 ldrb r0, [r0, #0x71] cmp r0, #0 ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, _02163ecc ; =data_027e0e60 + ldr r0, _02163ecc ; =gMapManager ldr r0, [r0] - bl func_ov00_0208335c - ldr r1, _02163ecc ; =data_027e0e60 + bl _ZN10MapManager17Get_MapData_Unk28Ev + ldr r1, _02163ecc ; =gMapManager mov r11, r0 ldr r0, [r1] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv mov r8, r0 mov r9, #0 cmp r11, #0 ldmleia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r4, _02163ecc ; =data_027e0e60 + ldr r4, _02163ecc ; =gMapManager add r6, sp, #0 _02163e68: mov r10, #0 @@ -10949,7 +10949,7 @@ _02163e78: mov r1, r6 strb r7, [sp] strb r10, [sp, #1] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _02163eb0 ldr r1, [r0] @@ -10970,7 +10970,7 @@ _02163ebc: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov17_02163e24 -_02163ecc: .word data_027e0e60 +_02163ecc: .word gMapManager .global func_ov17_02163ed0 arm_func_start func_ov17_02163ed0 @@ -11050,33 +11050,33 @@ _02163fbc: strb r0, [r4, #0x3c] mov r2, #0 str r2, [r4, #0x68] - ldr r0, _02164084 ; =data_027e0e60 + ldr r0, _02164084 ; =gMapManager str r2, [r4, #0x6c] ldr r0, [r0] add r1, r4, #0x38 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _0216407c _02163fe4: mov r0, #0 strb r0, [r4, #0x3c] ldr r1, _02164088 ; =0xfffff666 str r0, [r4, #0x68] - ldr r0, _02164084 ; =data_027e0e60 + ldr r0, _02164084 ; =gMapManager str r1, [r4, #0x6c] ldr r0, [r0] add r1, r4, #0x38 mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _0216407c _02164010: mov r0, #1 strb r0, [r4, #0x3c] mov r2, #0 - ldr r0, _02164084 ; =data_027e0e60 + ldr r0, _02164084 ; =gMapManager str r2, [r4, #0x68] ldr r0, [r0] add r1, r4, #0x38 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi cmp r5, #0 bne _0216407c mov r0, r4 @@ -11086,12 +11086,12 @@ _02164010: _02164048: mov r1, #0 strb r1, [r4, #0x3c] - ldr r0, _02164084 ; =data_027e0e60 + ldr r0, _02164084 ; =gMapManager str r1, [r4, #0x68] ldr r0, [r0] add r1, r4, #0x38 mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi cmp r5, #0 bne _0216407c mov r0, r4 @@ -11102,7 +11102,7 @@ _0216407c: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov17_02163f90 -_02164084: .word data_027e0e60 +_02164084: .word gMapManager _02164088: .word 0xfffff666 .global func_ov17_0216408c @@ -11119,7 +11119,7 @@ func_ov17_0216408c: ; 0x0216408c beq _021640d4 cmp r3, #1 bne _021640d4 - ldr ip, _021640fc ; =data_027e0e60 + ldr ip, _021640fc ; =gMapManager mov r3, #0xc ldr ip, [ip] ldrb ip, [ip, #8] @@ -11127,7 +11127,7 @@ func_ov17_0216408c: ; 0x0216408c movne r1, #0x36 b _021640ec _021640d4: - ldr ip, _021640fc ; =data_027e0e60 + ldr ip, _021640fc ; =gMapManager mov r3, #0xb ldr ip, [ip] ldrb ip, [ip, #8] @@ -11140,7 +11140,7 @@ _021640ec: ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov17_0216408c -_021640fc: .word data_027e0e60 +_021640fc: .word gMapManager .global func_ov17_02164100 arm_func_start func_ov17_02164100 @@ -11166,7 +11166,7 @@ func_ov17_02164120: ; 0x02164120 beq _02164178 cmp r1, #1 ldmneia sp!, {r3, pc} - ldr r1, _02164280 ; =data_027e0e60 + ldr r1, _02164280 ; =gMapManager ldr r3, [r0] ldr r1, [r1] ldrb r1, [r1, #8] @@ -11182,7 +11182,7 @@ _02164168: blx r3 ldmia sp!, {r3, pc} _02164178: - ldr r1, _02164280 ; =data_027e0e60 + ldr r1, _02164280 ; =gMapManager ldr r3, [r0] ldr r1, [r1] ldrb r1, [r1, #8] @@ -11202,7 +11202,7 @@ _021641b0: beq _02164220 cmp r1, #1 ldmneia sp!, {r3, pc} - ldr r1, _02164280 ; =data_027e0e60 + ldr r1, _02164280 ; =gMapManager ldr r1, [r1] ldrb r1, [r1, #8] cmp r1, #0 @@ -11228,7 +11228,7 @@ _021641fc: blx r3 ldmia sp!, {r3, pc} _02164220: - ldr r1, _02164280 ; =data_027e0e60 + ldr r1, _02164280 ; =gMapManager ldr r1, [r1] ldrb r1, [r1, #8] cmp r1, #0 @@ -11255,7 +11255,7 @@ _0216425c: ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov17_02164120 -_02164280: .word data_027e0e60 +_02164280: .word gMapManager .global func_ov17_02164284 arm_func_start func_ov17_02164284 @@ -11268,7 +11268,7 @@ func_ov17_02164284: ; 0x02164284 addne sp, sp, #0x10 ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} ldrb r0, [r10, #0x14] - ldr r1, _02164474 ; =data_027e0e60 + ldr r1, _02164474 ; =gMapManager str r0, [sp, #4] ldrb r0, [r10, #0x15] str r0, [sp] @@ -11278,30 +11278,30 @@ func_ov17_02164284: ; 0x02164284 str r1, [sp, #8] ldr r1, [sp] add r7, r1, #0xa - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev ldr r1, [sp, #8] cmp r1, r0 blt _021642ec - ldr r0, _02164474 ; =data_027e0e60 + ldr r0, _02164474 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev str r0, [sp, #8] _021642ec: - ldr r0, _02164474 ; =data_027e0e60 + ldr r0, _02164474 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv cmp r7, r0 blt _02164310 - ldr r0, _02164474 ; =data_027e0e60 + ldr r0, _02164474 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv mov r7, r0 _02164310: ldr r8, [sp] mov r0, r8 cmp r0, r7 bge _0216438c - ldr r9, _02164474 ; =data_027e0e60 + ldr r9, _02164474 ; =gMapManager mov r4, #0 add r6, sp, #0xe _0216432c: @@ -11310,7 +11310,7 @@ _0216432c: mov r1, r6 strb r2, [sp, #0xe] strb r8, [sp, #0xf] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev mov r5, r0 cmp r5, r10 beq _02164380 @@ -11354,12 +11354,12 @@ _021643b4: ldr r0, [sp, #4] and r6, r0, #0xff _021643e0: - ldr r0, _02164474 ; =data_027e0e60 + ldr r0, _02164474 ; =gMapManager mov r1, r11 ldr r0, [r0] strb r6, [sp, #0xc] strb r9, [sp, #0xd] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev mov r5, r0 cmp r5, r10 beq _0216442c @@ -11397,7 +11397,7 @@ _02164464: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov17_02164284 -_02164474: .word data_027e0e60 +_02164474: .word gMapManager .global func_ov17_02164478 arm_func_start func_ov17_02164478 @@ -12425,20 +12425,20 @@ _021651b0: movne r0, #0 ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} _021651c0: - ldr r0, _02165280 ; =data_027e0e60 + ldr r0, _02165280 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208335c - ldr r1, _02165280 ; =data_027e0e60 + bl _ZN10MapManager17Get_MapData_Unk28Ev + ldr r1, _02165280 ; =gMapManager and r11, r0, #0xff ldr r0, [r1] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv mov r8, #0 strb r8, [sp] strb r8, [sp, #1] cmp r11, #0 and r7, r0, #0xff bls _02165278 - ldr r4, _02165280 ; =data_027e0e60 + ldr r4, _02165280 ; =gMapManager add r6, sp, #0 _021651fc: mov r9, #0 @@ -12449,7 +12449,7 @@ _02165208: mov r1, r6 strb r8, [sp] strb r9, [sp, #1] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r5, r0 beq _02165258 ldr r1, [r0] @@ -12480,7 +12480,7 @@ _02165278: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov17_0216517c -_02165280: .word data_027e0e60 +_02165280: .word gMapManager .global func_ov17_02165284 arm_func_start func_ov17_02165284 @@ -13051,9 +13051,9 @@ _02165770: add sp, #8 pop {r4, pc} _0216577e: - ldr r0, _021657b8 ; =data_027e0e60 + ldr r0, _021657b8 ; =gMapManager ldr r0, [r0] - blx func_ov00_02084b2c + blx _ZN10MapManager21GetCourseData_Unk_25dEv cmp r0, #0 beq _02165798 add r0, r4, #0 @@ -13080,7 +13080,7 @@ _021657b0: .align 2, 0 thumb_func_end func_ov17_02165700 _021657b4: .word data_027e0e58 -_021657b8: .word data_027e0e60 +_021657b8: .word gMapManager .global func_ov17_021657bc arm_func_start func_ov17_021657bc @@ -13508,10 +13508,10 @@ _02165d80: ldr r0, [r4, #0x15c] cmp r0, #1 bne _02165de8 - ldr r0, _02165e44 ; =data_027e0e60 + ldr r0, _02165e44 ; =gMapManager mov r1, #1 ldr r0, [r0] - bl func_ov00_02084b20 + bl _ZN10MapManager21SetCourseData_Unk_25cEc mov r0, r4 mov r1, #1 bl _ZN5Actor18CollidesWithPlayerEj @@ -13549,7 +13549,7 @@ _02165e2c: _02165e38: .word data_027e0f6c _02165e3c: .word data_027e0e58 _02165e40: .word gAdventureFlags -_02165e44: .word data_027e0e60 +_02165e44: .word gMapManager .global func_ov17_02165e48 arm_func_start func_ov17_02165e48 @@ -13728,14 +13728,14 @@ _02166080: ; jump table b _0216614c ; case 2 b _0216614c ; case 3 _02166090: - ldr r0, _021661e0 ; =data_027e0e60 + ldr r0, _021661e0 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084b2c + bl _ZN10MapManager21GetCourseData_Unk_25dEv ldmia sp!, {r4, pc} _021660a0: - ldr r0, _021661e0 ; =data_027e0e60 + ldr r0, _021661e0 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084b2c + bl _ZN10MapManager21GetCourseData_Unk_25dEv cmp r0, #0 movne r0, #1 ldmneia sp!, {r4, pc} @@ -13824,7 +13824,7 @@ _021661d8: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_02166068 -_021661e0: .word data_027e0e60 +_021661e0: .word gMapManager _021661e4: .word gAdventureFlags .global func_ov17_021661e8 @@ -14366,21 +14366,21 @@ func_ov17_02166878: ; 0x02166878 sub sp, sp, #0x54 mov r9, r0 ldr r1, [r9, #4] - ldr r0, _02166a54 ; =data_027e0e60 + ldr r0, _02166a54 ; =gMapManager orr r1, r1, #0x810 str r1, [r9, #4] ldr r5, [r0] ldr r1, [r9, #0x18] mov r0, r5 - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev mov r4, r0 ldr r1, [r9, #0x20] mov r0, r5 - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev mov r2, r0 mov r0, r5 mov r1, r4 - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci str r0, [r9, #0x70] ldrb r1, [r9, #0x7a] ldr r2, [r9, #0x18] @@ -14450,7 +14450,7 @@ func_ov17_02166878: ; 0x02166878 add r0, r7, #2 cmp r7, r0 bge _02166a38 - ldr r10, _02166a54 ; =data_027e0e60 + ldr r10, _02166a54 ; =gMapManager add r5, sp, #4 mov r4, #1 _021669e4: @@ -14465,7 +14465,7 @@ _021669f8: mov r2, r4 strb r6, [sp, #4] strb r8, [sp, #5] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r0, [r9, #0x15] add r8, r8, #1 add r0, r0, #2 @@ -14478,16 +14478,16 @@ _02166a24: cmp r7, r0 blt _021669e4 _02166a38: - ldr r0, _02166a54 ; =data_027e0e60 + ldr r0, _02166a54 ; =gMapManager ldrh r2, [r9, #0x2a] ldr r0, [r0] add r1, r9, #0x64 - bl func_ov00_020823c4 + bl _ZN10MapManager18func_ov00_020823c4EPii add sp, sp, #0x54 ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov17_02166878 -_02166a54: .word data_027e0e60 +_02166a54: .word gMapManager .global func_ov17_02166a58 arm_func_start func_ov17_02166a58 @@ -14676,10 +14676,10 @@ _02166cc4: strh r0, [r4, #0x78] cmp r5, #0 bne _02166cec - ldr r0, _02166df4 ; =data_027e0e60 + ldr r0, _02166df4 ; =gMapManager ldr r1, [r4, #0x74] ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej mvn r0, #0 str r0, [r4, #0x74] _02166cec: @@ -14690,13 +14690,13 @@ _02166cec: mov r1, #0 bl func_ov17_021676ac ldr r1, [r4, #4] - ldr r0, _02166df4 ; =data_027e0e60 + ldr r0, _02166df4 ; =gMapManager bic r1, r1, #0x10 str r1, [r4, #4] ldr r0, [r0] add r1, r4, #0x38 mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _02166de8 _02166d28: mov r1, #1 @@ -14705,12 +14705,12 @@ _02166d28: ldreqh r0, [r4, #0x24] cmpeq r0, #1 bne _02166d5c - ldr r0, _02166df4 ; =data_027e0e60 + ldr r0, _02166df4 ; =gMapManager add r1, r4, #0x18 ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii str r0, [r4, #0x74] _02166d5c: mov r0, r4 @@ -14736,27 +14736,27 @@ _02166d8c: mov r1, #1 bl func_ov17_021676ac ldr r1, [r4, #4] - ldr r0, _02166df4 ; =data_027e0e60 + ldr r0, _02166df4 ; =gMapManager orr r1, r1, #0x10 str r1, [r4, #4] ldr r0, [r0] add r1, r4, #0x38 mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi b _02166de8 _02166dd4: - ldr r0, _02166df4 ; =data_027e0e60 + ldr r0, _02166df4 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi _02166de8: mov r0, #1 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov17_02166c74 _02166df0: .word data_027e0ffc -_02166df4: .word data_027e0e60 +_02166df4: .word gMapManager _02166df8: .word 0x00003f4a .global func_ov17_02166dfc @@ -15312,7 +15312,7 @@ _021675cc: ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldrb r1, [r10, #0x7a] - ldr r0, _021676a8 ; =data_027e0e60 + ldr r0, _021676a8 ; =gMapManager ldr r2, [sp, #8] sub r1, r1, #1 sub r1, r2, r1, lsl #11 @@ -15323,19 +15323,19 @@ _021675cc: sub r2, r2, #1 sub r2, r3, r2, lsl #11 str r2, [sp, #0x10] - bl func_ov00_020839d4 - ldr r1, _021676a8 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020839d4Ev + ldr r1, _021676a8 ; =gMapManager mov r5, r0 ldr r0, [r1] ldr r1, [sp, #0x10] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev ldrb r1, [r10, #0x7a] mov r6, r0 mov r7, #0 cmp r1, #0 addle sp, sp, #0x14 ldmleia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r4, _021676a8 ; =data_027e0e60 + ldr r4, _021676a8 ; =gMapManager mov r11, #0x14 _02167644: mov r8, #0 @@ -15348,13 +15348,13 @@ _02167650: mov r3, r11 add r1, r5, r7 add r2, r6, r8 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci b _02167680 _02167670: ldr r3, [r10, #0x70] add r1, r5, r7 add r2, r6, r8 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci _02167680: ldrb r1, [r10, #0x7a] add r8, r8, #1 @@ -15369,7 +15369,7 @@ _02167690: .align 2, 0 arm_func_end func_ov17_021674e8 _021676a4: .word data_027e0f6c -_021676a8: .word data_027e0e60 +_021676a8: .word gMapManager .global func_ov17_021676ac arm_func_start func_ov17_021676ac @@ -16330,7 +16330,7 @@ _02168398: add r0, r9, #2 cmp r9, r0 bge _02168428 - ldr r4, _0216845c ; =data_027e0e60 + ldr r4, _0216845c ; =gMapManager and r7, r8, #0xff _021683b0: ldr r0, [r4] @@ -16338,13 +16338,13 @@ _021683b0: mov r2, r5 strb r7, [sp, #6] strb r9, [sp, #7] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldr r0, [r4] strb r7, [sp, #4] strb r9, [sp, #5] mov r1, r11 mov r2, #1 - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r10, #0x68] cmp r0, #1 ldr r0, [r4] @@ -16352,13 +16352,13 @@ _021683b0: mov r1, r8 mov r2, r9 mov r3, #0x17 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci b _02168414 _02168404: mov r1, r8 mov r2, r9 mov r3, #9 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci _02168414: ldrb r0, [r10, #0x15] add r9, r9, #1 @@ -16382,7 +16382,7 @@ _0216843c: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov17_0216826c -_0216845c: .word data_027e0e60 +_0216845c: .word gMapManager .global func_ov17_02168460 arm_func_start func_ov17_02168460 @@ -16487,20 +16487,20 @@ func_ov17_0216857c: ; 0x0216857c stmdb sp!, {r3, r4, r5, lr} mov r5, r0 ldrh r4, [r5, #0x2a] - ldr r0, _021685b4 ; =data_027e0e60 + ldr r0, _021685b4 ; =gMapManager ldr r0, [r0] mov r1, r4 - bl func_ov00_020823d4 - ldr r1, _021685b4 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823d4Ei + ldr r1, _021685b4 ; =gMapManager str r0, [r5, #0x6c] ldr r0, [r1] mov r1, r4 - bl func_ov00_020823e4 + bl _ZN10MapManager18func_ov00_020823e4Ei str r0, [r5, #0x70] ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov17_0216857c -_021685b4: .word data_027e0e60 +_021685b4: .word gMapManager .global func_ov17_021685b8 arm_func_start func_ov17_021685b8 @@ -16522,9 +16522,9 @@ func_ov17_021685b8: ; 0x021685b8 ldr r1, _02168650 ; =data_ov17_0216b1b0 mov r0, r5 bl func_0201933c - ldr r0, _02168654 ; =data_027e0e60 + ldr r0, _02168654 ; =gMapManager ldr r0, [r0] - bl func_ov00_020823f4 + bl _ZN10MapManager16MapData_vfunc_b4Ev mov r4, r0 mov r0, r5 mov r1, r4 @@ -16546,7 +16546,7 @@ func_ov17_021685b8: ; 0x021685b8 arm_func_end func_ov17_021685b8 _0216864c: .word data_ov17_0216b19c _02168650: .word data_ov17_0216b1b0 -_02168654: .word data_027e0e60 +_02168654: .word gMapManager .global func_ov17_02168658 arm_func_start func_ov17_02168658 @@ -17303,9 +17303,9 @@ _02168ef8: ; jump table b _02168f70 ; case 2 b _02168f9c ; case 3 _02168f08: - ldr r0, _02169180 ; =data_027e0e60 + ldr r0, _02169180 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev sub r0, r0, #2 cmp r4, r0 addlt r0, r4, #2 @@ -17343,9 +17343,9 @@ _02168f70: str r0, [r6, #0x18] b _02168fd4 _02168f9c: - ldr r0, _02169180 ; =data_027e0e60 + ldr r0, _02169180 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv sub r0, r0, #2 cmp r5, r0 addlt r0, r5, #2 @@ -17468,7 +17468,7 @@ _02169160: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov17_02168ed0 -_02169180: .word data_027e0e60 +_02169180: .word gMapManager _02169184: .word 0x00001333 _02169188: .word data_027e0d38 _0216918c: .word data_027e0fe8 @@ -17554,10 +17554,10 @@ func_ov17_02169278: ; 0x02169278 cmp r1, #2 b _02169338 _0216929c: - ldr r0, _02169340 ; =data_027e0e60 + ldr r0, _02169340 ; =gMapManager add r1, r4, #0x64 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev ldr r1, [r0] mov r5, r0 ldr r1, [r1, #0x1c] @@ -17575,10 +17575,10 @@ _021692cc: bl func_ov00_02094884 b _02169338 _021692e8: - ldr r0, _02169340 ; =data_027e0e60 + ldr r0, _02169340 ; =gMapManager add r1, r4, #0x64 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev ldr r1, [r0] mov r5, r0 ldr r1, [r1, #0x1c] @@ -17601,7 +17601,7 @@ _02169338: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov17_02169278 -_02169340: .word data_027e0e60 +_02169340: .word gMapManager .global func_ov17_02169344 arm_func_start func_ov17_02169344 @@ -17886,7 +17886,7 @@ _021696a8: ; jump table b _02169808 ; case 3 _021696b8: ldr r1, [sp, #0x54] - ldr r0, _021698fc ; =data_027e0e60 + ldr r0, _021698fc ; =gMapManager sub r1, r1, #0x1000 str r1, [sp, #0x54] ldrb r1, [r4, #0x14] @@ -17897,13 +17897,13 @@ _021696b8: add r1, sp, #0x12 strb r3, [sp, #0x13] mov r2, #1 - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrh r0, [r4, #0x26] cmp r0, #1 bne _02169874 ldrb r2, [r4, #0x15] ldrb r1, [r4, #0x14] - ldr r0, _021698fc ; =data_027e0e60 + ldr r0, _021698fc ; =gMapManager add ip, r2, #1 sub r3, r1, #1 ldr r0, [r0] @@ -17911,11 +17911,11 @@ _021696b8: mov r2, #1 strb r3, [sp, #0x10] strb ip, [sp, #0x11] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii b _02169874 _02169728: ldr r1, [sp, #0x48] - ldr r0, _021698fc ; =data_027e0e60 + ldr r0, _021698fc ; =gMapManager add r1, r1, #0x1000 str r1, [sp, #0x48] ldrb r1, [r4, #0x14] @@ -17926,13 +17926,13 @@ _02169728: add r1, sp, #0xe strb r3, [sp, #0xf] mov r2, #1 - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrh r0, [r4, #0x26] cmp r0, #1 bne _02169874 ldrb r2, [r4, #0x15] ldrb r1, [r4, #0x14] - ldr r0, _021698fc ; =data_027e0e60 + ldr r0, _021698fc ; =gMapManager add ip, r2, #1 add r3, r1, #1 ldr r0, [r0] @@ -17940,11 +17940,11 @@ _02169728: mov r2, #1 strb r3, [sp, #0xc] strb ip, [sp, #0xd] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii b _02169874 _02169798: ldr r1, [sp, #0x50] - ldr r0, _021698fc ; =data_027e0e60 + ldr r0, _021698fc ; =gMapManager add r1, r1, #0x1000 str r1, [sp, #0x50] ldrb r1, [r4, #0x15] @@ -17955,13 +17955,13 @@ _02169798: add r1, sp, #0xa strb r3, [sp, #0xb] mov r2, #1 - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrh r0, [r4, #0x26] cmp r0, #1 bne _02169874 ldrb r2, [r4, #0x15] ldrb r1, [r4, #0x14] - ldr r0, _021698fc ; =data_027e0e60 + ldr r0, _021698fc ; =gMapManager add ip, r2, #1 add r3, r1, #1 ldr r0, [r0] @@ -17969,11 +17969,11 @@ _02169798: mov r2, #1 strb r3, [sp, #8] strb ip, [sp, #9] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii b _02169874 _02169808: ldr r1, [sp, #0x5c] - ldr r0, _021698fc ; =data_027e0e60 + ldr r0, _021698fc ; =gMapManager sub r1, r1, #0x1000 str r1, [sp, #0x5c] ldrb r1, [r4, #0x15] @@ -17984,13 +17984,13 @@ _02169808: add r1, sp, #6 strb r3, [sp, #7] mov r2, #1 - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrh r0, [r4, #0x26] cmp r0, #1 bne _02169874 ldrb r2, [r4, #0x15] ldrb r1, [r4, #0x14] - ldr r0, _021698fc ; =data_027e0e60 + ldr r0, _021698fc ; =gMapManager sub ip, r2, #1 add r3, r1, #1 ldr r0, [r0] @@ -17998,7 +17998,7 @@ _02169808: mov r2, #1 strb r3, [sp, #4] strb ip, [sp, #5] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii _02169874: mov r1, #0 bic r1, r1, #0x6000 @@ -18036,7 +18036,7 @@ _02169874: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_02169598 -_021698fc: .word data_027e0e60 +_021698fc: .word gMapManager .global func_ov17_02169900 arm_func_start func_ov17_02169900 @@ -18069,10 +18069,10 @@ _02169940: b _021699d4 _02169960: mov r1, #0x4000 - ldr r0, _02169a54 ; =data_027e0e60 + ldr r0, _02169a54 ; =gMapManager strh r1, [r4, #0xc] ldr r0, [r0] - bl func_ov00_0208335c + bl _ZN10MapManager17Get_MapData_Unk28Ev ldrb r1, [sp, #4] sub r0, r0, #2 cmp r1, r0 @@ -18081,10 +18081,10 @@ _02169960: b _021699d4 _0216998c: mov r1, #0 - ldr r0, _02169a54 ; =data_027e0e60 + ldr r0, _02169a54 ; =gMapManager strh r1, [r4, #0xc] ldr r0, [r0] - bl func_ov00_02083368 + bl _ZN10MapManager17Get_MapData_Unk2aEv ldrb r1, [sp, #5] sub r0, r0, #2 cmp r1, r0 @@ -18124,19 +18124,19 @@ _02169a0c: blo _02169a0c ldrh r2, [r4, #0x26] add r1, sp, #8 - ldr r0, _02169a54 ; =data_027e0e60 + ldr r0, _02169a54 ; =gMapManager strh r2, [sp, #0xa] str r1, [sp] ldrsh r3, [r4, #0xc] ldr r0, [r0] add r2, sp, #4 mov r1, #0x7e - bl func_ov00_020828c0 + bl _ZN10MapManager16MapData_vfunc_7cEv add sp, sp, #0x1c ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov17_02169900 -_02169a54: .word data_027e0e60 +_02169a54: .word gMapManager .global func_ov17_02169a58 arm_func_start func_ov17_02169a58 @@ -18794,18 +18794,18 @@ _0216a250: cmpne r0, #1 mov r2, #0 bne _0216a2b4 - ldr r0, _0216a344 ; =data_027e0e60 + ldr r0, _0216a344 ; =gMapManager add r1, r5, #0x18 ldr r0, [r0] mov r3, #2 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii b _0216a330 _0216a2b4: - ldr r0, _0216a344 ; =data_027e0e60 + ldr r0, _0216a344 ; =gMapManager add r1, r5, #0x18 ldr r0, [r0] mov r3, #1 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii b _0216a330 _0216a2cc: bl func_ov14_02127188 @@ -18827,10 +18827,10 @@ _0216a2fc: mov r0, r5 mov r2, r1 bl func_ov00_0208ba08 - ldr r0, _0216a344 ; =data_027e0e60 + ldr r0, _0216a344 ; =gMapManager ldrh r1, [r5, #0x24] ldr r0, [r0] - bl func_ov00_02083840 + bl _ZN10MapManager18func_ov00_02083840Ei b _0216a330 _0216a324: mov r0, r5 @@ -18844,7 +18844,7 @@ _0216a330: arm_func_end func_ov17_0216a0fc _0216a33c: .word data_ov17_0216b1f8 _0216a340: .word gAdventureFlags -_0216a344: .word data_027e0e60 +_0216a344: .word gMapManager .global func_ov17_0216a348 arm_func_start func_ov17_0216a348 @@ -18858,11 +18858,11 @@ func_ov17_0216a348: ; 0x0216a348 cmp r0, #0 movne r0, #1 ldmneia sp!, {r4, pc} - ldr r0, _0216a3e0 ; =data_027e0e60 + ldr r0, _0216a3e0 ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 moveq r0, #1 ldmeqia sp!, {r4, pc} @@ -18891,7 +18891,7 @@ _0216a3d8: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_0216a348 -_0216a3e0: .word data_027e0e60 +_0216a3e0: .word gMapManager _0216a3e4: .word data_027e0fe4 .global func_ov17_0216a3e8 @@ -18914,10 +18914,10 @@ func_ov17_0216a3e8: ; 0x0216a3e8 mov r0, #1 ldmia sp!, {r4, pc} _0216a428: - ldr r0, _0216a4a4 ; =data_027e0e60 + ldr r0, _0216a4a4 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 movne r0, #1 ldmneia sp!, {r4, pc} @@ -18932,10 +18932,10 @@ _0216a444: cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, pc} - ldr r0, _0216a4a4 ; =data_027e0e60 + ldr r0, _0216a4a4 ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] - bl func_ov00_02083840 + bl _ZN10MapManager18func_ov00_02083840Ei mov r0, #1 ldmia sp!, {r4, pc} _0216a484: @@ -18949,7 +18949,7 @@ _0216a484: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov17_0216a3e8 -_0216a4a4: .word data_027e0e60 +_0216a4a4: .word gMapManager _0216a4a8: .word data_027e0fe4 .global func_ov17_0216a4ac @@ -18979,10 +18979,10 @@ func_ov17_0216a4ac: ; 0x0216a4ac mov r0, #0 ldmia sp!, {r4, pc} _0216a508: - ldr r0, _0216a5b0 ; =data_027e0e60 + ldr r0, _0216a5b0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, pc} @@ -19007,18 +19007,18 @@ _0216a550: moveq r0, #0 ldmeqia sp!, {r4, pc} _0216a56c: - ldr r0, _0216a5b0 ; =data_027e0e60 + ldr r0, _0216a5b0 ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _0216a5b0 ; =data_027e0e60 + ldr r0, _0216a5b0 ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] - bl func_ov00_02083790 + bl _ZN10MapManager18func_ov00_02083790Ei mov r0, #1 ldmia sp!, {r4, pc} _0216a5a4: @@ -19027,7 +19027,7 @@ _0216a5a4: .align 2, 0 arm_func_end func_ov17_0216a4ac _0216a5ac: .word data_027e077c -_0216a5b0: .word data_027e0e60 +_0216a5b0: .word gMapManager _0216a5b4: .word data_027e0fe4 .global func_ov17_0216a5b8 @@ -19386,7 +19386,7 @@ func_ov17_0216a9fc: ; 0x0216a9fc str r1, [r4, #4] strb r0, [r4, #0x12] ldr r0, [r4, #0x18] - ldr r2, _0216abf8 ; =data_027e0e60 + ldr r2, _0216abf8 ; =gMapManager add r0, r0, #0x3fc add r0, r0, #0x400 str r0, [r4, #0x18] @@ -19397,7 +19397,7 @@ func_ov17_0216a9fc: ; 0x0216a9fc str r0, [r4, #0x20] ldr r0, [r2] mov r2, #1 - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p add r6, r4, #0x18 str r0, [r4, #0x1c] ldmia r6, {r0, r1, r2} @@ -19447,10 +19447,10 @@ func_ov17_0216a9fc: ; 0x0216a9fc ldr ip, [ip, #0x14] add r1, sp, #0x20 blx ip - ldr r0, _0216abf8 ; =data_027e0e60 + ldr r0, _0216abf8 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 beq _0216ab90 mov r0, r4 @@ -19492,7 +19492,7 @@ _0216abd0: arm_func_end func_ov17_0216a9fc _0216abf0: .word data_ov17_0216b20c _0216abf4: .word data_027e0f68 -_0216abf8: .word data_027e0e60 +_0216abf8: .word gMapManager .global func_ov17_0216abfc arm_func_start func_ov17_0216abfc @@ -19707,11 +19707,11 @@ _0216aedc: mov r1, #0 mov r2, #1 bl func_ov00_0208ba08 - ldr r0, _0216af40 ; =data_027e0e60 + ldr r0, _0216af40 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei ldr r1, [r4, #4] mov r0, #0 bic r1, r1, #8 @@ -19732,7 +19732,7 @@ _0216af30: .word data_027e0e58 _0216af34: .word data_027e0ffc _0216af38: .word data_ov17_0216b230 _0216af3c: .word data_ov17_0216b224 -_0216af40: .word data_027e0e60 +_0216af40: .word gMapManager .global func_ov17_0216af44 arm_func_start func_ov17_0216af44 @@ -20901,7 +20901,7 @@ data_ov17_0216ba14: ; 0x0216ba14 .word func_ov17_0215b708 + 1 .global data_ov17_0216ba18 data_ov17_0216ba18: ; 0x0216ba18 - .word func_ov00_0207ddf4 + .word _ZN7MapBase8vfunc_18Ev .global data_ov17_0216ba1c data_ov17_0216ba1c: ; 0x0216ba1c .word func_ov17_0215b764 @@ -20937,13 +20937,13 @@ data_ov17_0216ba44: ; 0x0216ba44 .word func_ov04_0210cb00 ; data_ov07_0210cb00 .global data_ov17_0216ba48 data_ov17_0216ba48: ; 0x0216ba48 - .word func_ov00_0207e46c + .word _ZN7MapBase8vfunc_48Ev .global data_ov17_0216ba4c data_ov17_0216ba4c: ; 0x0216ba4c .word func_ov17_0215bd74 .global data_ov17_0216ba50 data_ov17_0216ba50: ; 0x0216ba50 - .word func_ov00_0207e488 + .word _ZN7MapBase8vfunc_50Ev .global data_ov17_0216ba54 data_ov17_0216ba54: ; 0x0216ba54 .word func_ov17_0215ba58 @@ -20958,19 +20958,19 @@ data_ov17_0216ba60: ; 0x0216ba60 .word func_ov17_0215bac8 .global data_ov17_0216ba64 data_ov17_0216ba64: ; 0x0216ba64 - .word func_ov00_0207e4b0 + .word _ZN7MapBase8vfunc_64Ev .global data_ov17_0216ba68 data_ov17_0216ba68: ; 0x0216ba68 - .word func_ov00_0207e4b8 + .word _ZN7MapBase8vfunc_68Eii .global data_ov17_0216ba6c data_ov17_0216ba6c: ; 0x0216ba6c - .word func_ov00_0207e970 + .word _ZN7MapBase8vfunc_6cEiii .global data_ov17_0216ba70 data_ov17_0216ba70: ; 0x0216ba70 - .word func_ov00_0207ee14 + .word _ZN7MapBase8vfunc_70EP5Vec3p .global data_ov17_0216ba74 data_ov17_0216ba74: ; 0x0216ba74 - .word func_ov00_0207eff4 + .word _ZN7MapBase8vfunc_74EP5Vec3p .global data_ov17_0216ba78 data_ov17_0216ba78: ; 0x0216ba78 .word func_ov17_0215bbbc @@ -20982,16 +20982,16 @@ data_ov17_0216ba80: ; 0x0216ba80 .word func_ov17_0215bd30 .global data_ov17_0216ba84 data_ov17_0216ba84: ; 0x0216ba84 - .word func_ov00_0207f364 + .word _ZN7MapBase8vfunc_84Ei .global data_ov17_0216ba88 data_ov17_0216ba88: ; 0x0216ba88 - .word func_ov00_0207f324 + .word _ZN7MapBase8vfunc_88Ev .global data_ov17_0216ba8c data_ov17_0216ba8c: ; 0x0216ba8c - .word func_ov00_0207f32c + .word _ZN7MapBase8vfunc_8cEv .global data_ov17_0216ba90 data_ov17_0216ba90: ; 0x0216ba90 - .word func_ov00_0207f3c4 + .word _ZN7MapBase8vfunc_90Eiii .global data_ov17_0216ba94 data_ov17_0216ba94: ; 0x0216ba94 .word func_ov17_0215b7c4 @@ -21000,10 +21000,10 @@ data_ov17_0216ba98: ; 0x0216ba98 .word func_ov17_0215bb34 .global data_ov17_0216ba9c data_ov17_0216ba9c: ; 0x0216ba9c - .word func_ov00_0207f334 + .word _ZN7MapBase8vfunc_9cEv .global data_ov17_0216baa0 data_ov17_0216baa0: ; 0x0216baa0 - .word func_ov00_0207f338 + .word _ZN7MapBase8vfunc_a0Ev .global data_ov17_0216baa4 data_ov17_0216baa4: ; 0x0216baa4 .word func_ov17_0215b994 @@ -21015,13 +21015,13 @@ data_ov17_0216baac: ; 0x0216baac .word func_ov17_0215ba1c .global data_ov17_0216bab0 data_ov17_0216bab0: ; 0x0216bab0 - .word func_ov00_0207e060 + .word _ZN7MapBase8vfunc_b0Eii .global data_ov17_0216bab4 data_ov17_0216bab4: ; 0x0216bab4 - .word func_ov00_0207e444 + .word _ZN7MapBase8vfunc_b4Ev .global data_ov17_0216bab8 data_ov17_0216bab8: ; 0x0216bab8 - .word func_ov00_020807d4 + .word _ZN7MapBase8vfunc_b8Ev .global data_ov17_0216babc data_ov17_0216babc: ; 0x0216babc .word func_ov17_0215bb14 diff --git a/asm/ov18.inc b/asm/ov18.inc index cdf26420..dbc0595e 100644 --- a/asm/ov18.inc +++ b/asm/ov18.inc @@ -90,7 +90,7 @@ .extern data_027e0dbc .extern data_027e0e28 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -231,57 +231,57 @@ .extern func_ov00_0207c2e8 .extern func_ov00_0207c444 .extern func_ov00_0207c474 -.extern func_ov00_0207d634 -.extern func_ov00_0207d6ec -.extern func_ov00_0207da38 -.extern func_ov00_0207ddf4 -.extern func_ov00_0207e060 -.extern func_ov00_0207e444 -.extern func_ov00_0207e46c -.extern func_ov00_0207e488 -.extern func_ov00_0207e4b8 -.extern func_ov00_0207e970 -.extern func_ov00_0207ee14 -.extern func_ov00_0207eff4 -.extern func_ov00_0207f324 -.extern func_ov00_0207f32c -.extern func_ov00_0207f334 -.extern func_ov00_0207f338 -.extern func_ov00_0207f344 -.extern func_ov00_0207f348 -.extern func_ov00_0207f364 -.extern func_ov00_0207f3c4 -.extern func_ov00_0207f4a4 -.extern func_ov00_02080140 -.extern func_ov00_020807d4 -.extern func_ov00_02082680 -.extern func_ov00_020828c0 -.extern func_ov00_02082d08 -.extern func_ov00_02082d84 -.extern func_ov00_0208330c -.extern func_ov00_02083318 -.extern func_ov00_02083344 -.extern func_ov00_02083350 -.extern func_ov00_02083374 -.extern func_ov00_02083384 -.extern func_ov00_0208340c -.extern func_ov00_0208342c -.extern func_ov00_0208344c -.extern func_ov00_02083560 -.extern func_ov00_020838e8 -.extern func_ov00_02083a1c -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083ce8 -.extern func_ov00_02083f80 -.extern func_ov00_02084088 -.extern func_ov00_020843ec -.extern func_ov00_020849c0 -.extern func_ov00_02084be0 -.extern func_ov00_02084c7c -.extern func_ov00_02084c94 -.extern func_ov00_02084cb0 -.extern func_ov00_02084cc8 +.extern _ZN6Course23IsAdjacentMapOnMainGridEi +.extern _ZN6Course14GetAdjacentMapEi +.extern _ZN7MapBaseD1Ev +.extern _ZN7MapBase8vfunc_18Ev +.extern _ZN7MapBase8vfunc_b0Eii +.extern _ZN7MapBase8vfunc_b4Ev +.extern _ZN7MapBase8vfunc_48Ev +.extern _ZN7MapBase8vfunc_50Ev +.extern _ZN7MapBase8vfunc_68Eii +.extern _ZN7MapBase8vfunc_6cEiii +.extern _ZN7MapBase8vfunc_70EP5Vec3p +.extern _ZN7MapBase8vfunc_74EP5Vec3p +.extern _ZN7MapBase8vfunc_88Ev +.extern _ZN7MapBase8vfunc_8cEv +.extern _ZN7MapBase8vfunc_9cEv +.extern _ZN7MapBase8vfunc_a0Ev +.extern _ZN7MapBase8vfunc_a8Ev +.extern _ZN7MapBase8vfunc_acEv +.extern _ZN7MapBase8vfunc_84Ei +.extern _ZN7MapBase8vfunc_90Eiii +.extern _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si +.extern _ZN7MapBase18func_ov00_02080140EP4Exit +.extern _ZN7MapBase8vfunc_b8Ev +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager16MapData_vfunc_7cEv +.extern _ZN10MapManager18func_ov00_02082d08Ev +.extern _ZN10MapManager18func_ov00_02082d84Ev +.extern _ZN10MapManager21GetCourseData_Unk_25cEv +.extern _ZN10MapManager18func_ov00_02083318Ei +.extern _ZN10MapManager20GetCourseData_Unk_86Ev +.extern _ZN10MapManager20GetCourseData_Unk_87Ev +.extern _ZN10MapManager18func_ov00_02083374Ev +.extern _ZN10MapManager18func_ov00_02083384Ev +.extern _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p +.extern _ZN10MapManager17GetMapData_Unk_e8EP5Vec3p +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager18func_ov00_02083560EiPS_j +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_02083ce8Ecccci +.extern _ZN10MapManager16MapData_vfunc_6cEv +.extern _ZN10MapManager16MapData_vfunc_54Ev +.extern _ZN10MapManager18func_ov00_020843ecEPi +.extern _ZN10MapManager18func_ov00_020849c0Ev +.extern _ZN10MapManager18func_ov00_02084be0Eii +.extern _ZN10MapManager18func_ov00_02084c7cEi +.extern _ZN10MapManager18func_ov00_02084c94Ei +.extern _ZN10MapManager18func_ov00_02084cb0Ei +.extern _ZN10MapManager18func_ov00_02084cc8Ei .extern func_ov00_0208726c .extern func_ov00_020872e8 .extern func_ov00_02087d34 diff --git a/asm/ov18.s b/asm/ov18.s index 0fd5534b..b6f5cf06 100644 --- a/asm/ov18.s +++ b/asm/ov18.s @@ -197,7 +197,7 @@ _0215b734: mov r1, #0 mov r0, r5 str r1, [r5, #0x188] - bl func_ov00_0207da38 + bl _ZN7MapBaseD1Ev mov r0, r5 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -278,7 +278,7 @@ _0215b840: mov r1, #0 mov r0, r5 str r1, [r5, #0x188] - bl func_ov00_0207da38 + bl _ZN7MapBaseD1Ev mov r0, r5 bl _ZN9SysObjectdlEPv mov r0, r5 @@ -301,10 +301,10 @@ func_ov18_0215b86c: ; 0x0215b86c mov r8, r3 str r4, [sp, #4] blx func_ov04_0210c1f8 - ldr r0, _0215bd68 ; =data_027e0e60 + ldr r0, _0215bd68 ; =gMapManager add r1, r9, #0x1b0 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldrb r2, [r9, #0x12] ldr r0, _0215bd6c ; =0x00001333 mov r1, #0 @@ -319,21 +319,21 @@ func_ov18_0215b86c: ; 0x0215b86c mov r1, r4, lsr #0xc orr r1, r1, r0, lsl #20 str r1, [r9, #0x1b4] - ldr r0, _0215bd68 ; =data_027e0e60 + ldr r0, _0215bd68 ; =gMapManager add r1, sp, #0x64 ldr r0, [r0] - bl func_ov00_0208340c - ldr r0, _0215bd68 ; =data_027e0e60 + bl _ZN10MapManager17GetMapData_Unk_dcEP5Vec3p + ldr r0, _0215bd68 ; =gMapManager add r1, sp, #0x58 ldr r0, [r0] - bl func_ov00_0208342c - ldr r0, _0215bd68 ; =data_027e0e60 + bl _ZN10MapManager17GetMapData_Unk_e8EP5Vec3p + ldr r0, _0215bd68 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083374 - ldr r1, _0215bd68 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083374Ev + ldr r1, _0215bd68 ; =gMapManager mov r5, r0 ldr r0, [r1] - bl func_ov00_02083384 + bl _ZN10MapManager18func_ov00_02083384Ev mov r10, #0x4000 rsb r10, r10, #0 mov r6, r0 @@ -345,7 +345,7 @@ func_ov18_0215b86c: ; 0x0215b86c _0215b934: mov r0, r8 mov r1, r7 - bl func_ov00_0207d634 + 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 func_ov00_0207d6ec + bl _ZN6Course14GetAdjacentMapEi mov r1, #0 str r1, [sp, #0xc] mov r1, #0x47 @@ -596,7 +596,7 @@ _0215bcb4: _0215bce4: mov r0, r9 add r1, sp, #0x10 - bl func_ov00_02080140 + bl _ZN7MapBase18func_ov00_02080140EP4Exit strb r0, [sp, #0x24] mov r1, #0 str r1, [sp] @@ -630,7 +630,7 @@ _0215bd54: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov18_0215b86c -_0215bd68: .word data_027e0e60 +_0215bd68: .word gMapManager _0215bd6c: .word 0x00001333 _0215bd70: .word 0xffffd99a _0215bd74: .word data_027e0ce0 @@ -691,9 +691,9 @@ _0215be0c: movne r0, #1 strneb r0, [r9, #0x1cc] bne _0215be5c - ldr r0, _0215beb0 ; =data_027e0e60 + ldr r0, _0215beb0 ; =gMapManager ldr r0, [r0] - bl func_ov00_020849c0 + bl _ZN10MapManager18func_ov00_020849c0Ev cmp r0, #0 movne r0, #1 strneb r0, [r9, #0x1cc] @@ -726,7 +726,7 @@ _0215bea8: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov18_0215bd84 -_0215beb0: .word data_027e0e60 +_0215beb0: .word gMapManager _0215beb4: .word func_ov18_0215ca24 .global func_ov18_0215beb8 @@ -813,7 +813,7 @@ func_ov18_0215bfc8: ; 0x0215bfc8 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x10 ldr r2, _0215c12c ; =data_027e0f94 - ldr r1, _0215c130 ; =data_027e0e60 + ldr r1, _0215c130 ; =gMapManager ldr r4, [r2] ldr r3, [r2, #4] str r4, [sp, #4] @@ -824,7 +824,7 @@ func_ov18_0215bfc8: ; 0x0215bfc8 add r0, sp, #0 add r2, sp, #4 str r3, [sp, #0xc] - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p mov r0, r5 ldr r2, [r0] add r1, sp, #0 @@ -909,7 +909,7 @@ _0215c108: .align 2, 0 arm_func_end func_ov18_0215bfc8 _0215c12c: .word data_027e0f94 -_0215c130: .word data_027e0e60 +_0215c130: .word gMapManager _0215c134: .word 0x0000019a _0215c138: .word data_ov18_0216b43c _0215c13c: .word data_ov18_0216b44c @@ -1023,11 +1023,11 @@ func_ov18_0215c27c: ; 0x0215c27c .global func_ov18_0215c284 arm_func_start func_ov18_0215c284 func_ov18_0215c284: ; 0x0215c284 - ldr ip, _0215c28c ; =func_ov00_0207f4a4 + ldr ip, _0215c28c ; =_ZN7MapBase18func_ov00_0207f4a4EP5Vec2si bx ip .align 2, 0 arm_func_end func_ov18_0215c284 -_0215c28c: .word func_ov00_0207f4a4 +_0215c28c: .word _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si .global func_ov18_0215c290 arm_func_start func_ov18_0215c290 @@ -1214,17 +1214,17 @@ func_ov18_0215c460: ; 0x0215c460 sub sp, sp, #0x1c mov r5, r2 mov r6, r1 - ldr r2, _0215c5bc ; =data_027e0e60 + ldr r2, _0215c5bc ; =gMapManager mov r7, r0 ldrb r1, [r5, #1] ldr r0, [r2] mov r4, r3 - bl func_ov00_02083c50 - ldr r2, _0215c5bc ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083c50Ei + ldr r2, _0215c5bc ; =gMapManager mov r8, r0 ldrb r1, [r5] ldr r0, [r2] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei mov r1, #0x5000 str r1, [sp, #0x14] str r0, [sp, #0x10] @@ -1306,7 +1306,7 @@ _0215c5b0: ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov18_0215c460 -_0215c5bc: .word data_027e0e60 +_0215c5bc: .word gMapManager _0215c5c0: .word data_027e0f68 .global func_ov18_0215c5c4 @@ -1338,7 +1338,7 @@ func_ov18_0215c608: ; 0x0215c608 mov r4, r0 mov r6, r1 mov r5, r2 - bl func_ov00_0207e060 + bl _ZN7MapBase8vfunc_b0Eii ldr r0, [r4, #0x1c0] cmp r0, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -3210,11 +3210,11 @@ func_ov18_0215dec0: ; 0x0215dec0 func_ov18_0215dee4: ; 0x0215dee4 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _0215df18 ; =data_027e0e60 + ldr r0, _0215df18 ; =gMapManager ldrb r1, [r4, #0x15c] ldr r0, [r0] add r2, r4, #0x1cc - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 @@ -3223,7 +3223,7 @@ func_ov18_0215dee4: ; 0x0215dee4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov18_0215dee4 -_0215df18: .word data_027e0e60 +_0215df18: .word gMapManager .global func_ov18_0215df1c arm_func_start func_ov18_0215df1c @@ -3534,13 +3534,13 @@ _0215e300: bl func_ov00_0208edd8 b _0215e3d8 _0215e324: - ldr r1, _0215e49c ; =data_027e0e60 + ldr r1, _0215e49c ; =gMapManager add r0, sp, #4 ldr r1, [r1] add r2, r4, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r2, [sp, #4] - ldr r0, _0215e49c ; =data_027e0e60 + ldr r0, _0215e49c ; =gMapManager ldrb r1, [sp, #5] add r3, r2, #2 ldr r0, [r0] @@ -3548,7 +3548,7 @@ _0215e324: add r1, sp, #4 strb r3, [sp, #4] strb r2, [sp, #5] - bl func_ov00_02084088 + bl _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #6 cmpne r0, #0x37 add r0, sp, #0x54 @@ -3637,7 +3637,7 @@ _0215e480: .align 2, 0 arm_func_end func_ov18_0215e274 _0215e498: .word data_027e0d38 -_0215e49c: .word data_027e0e60 +_0215e49c: .word gMapManager _0215e4a0: .word 0x000013ae _0215e4a4: .word data_027e0f6c @@ -4300,7 +4300,7 @@ _0215ed70: ldr r0, [sp, #4] add r10, r0, r1 bge _0215ee18 - ldr r5, _0215ee8c ; =data_027e0e60 + ldr r5, _0215ee8c ; =gMapManager add r7, sp, #0xc mov r6, #1 _0215edd0: @@ -4315,7 +4315,7 @@ _0215ede4: mov r2, r6 strb r8, [sp, #0xc] strb r9, [sp, #0xd] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii add r9, r9, #1 cmp r9, r10 blt _0215ede4 @@ -4357,7 +4357,7 @@ _0215ee7c: .word data_ov18_0216c3a8 _0215ee80: .word data_ov18_0216c3ce _0215ee84: .word data_ov18_0216c3a9 _0215ee88: .word data_ov18_0216c3cf -_0215ee8c: .word data_027e0e60 +_0215ee8c: .word gMapManager .global func_ov18_0215ee90 arm_func_start func_ov18_0215ee90 @@ -5268,11 +5268,11 @@ _0215f9b0: mov r1, #3 str r2, [r4, #4] bl func_ov00_02094884 - ldr r0, _0215fa24 ; =data_027e0e60 + ldr r0, _0215fa24 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi mov r0, #7 strb r0, [r4, #0x12] b _0215fa1c @@ -5283,11 +5283,11 @@ _0215f9e8: mov r1, #1 str r2, [r4, #4] bl func_ov00_02094884 - ldr r0, _0215fa24 ; =data_027e0e60 + ldr r0, _0215fa24 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi mov r0, #1 strb r0, [r4, #0x12] _0215fa1c: @@ -5295,7 +5295,7 @@ _0215fa1c: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov18_0215f990 -_0215fa24: .word data_027e0e60 +_0215fa24: .word gMapManager .global func_ov18_0215fa28 arm_func_start func_ov18_0215fa28 @@ -6411,7 +6411,7 @@ _02160774: ldr r0, [sp, #4] add r10, r0, #3 bgt _021607ec - ldr r4, _0216081c ; =data_027e0e60 + ldr r4, _0216081c ; =gMapManager add r6, sp, #0xc mov r5, #1 _021607a4: @@ -6426,7 +6426,7 @@ _021607b8: mov r2, r5 strb r7, [sp, #0xc] strb r9, [sp, #0xd] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii add r9, r9, #1 cmp r9, r10 ble _021607b8 @@ -6450,7 +6450,7 @@ _0216080c: .word data_027e0fe8 _02160810: .word 0x48534b42 _02160814: .word data_027e0fe4 _02160818: .word 0x0000099a -_0216081c: .word data_027e0e60 +_0216081c: .word gMapManager .global func_ov18_02160820 arm_func_start func_ov18_02160820 @@ -6609,16 +6609,16 @@ _021609c0: strh r2, [sp, #8] strh r0, [sp, #0xa] str r1, [sp] - ldr r0, _02160a0c ; =data_027e0e60 + ldr r0, _02160a0c ; =gMapManager add r2, sp, #4 ldr r0, [r0] mov r1, #0x30 - bl func_ov00_020828c0 + bl _ZN10MapManager16MapData_vfunc_7cEv add sp, sp, #0x1c ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov18_02160968 -_02160a0c: .word data_027e0e60 +_02160a0c: .word gMapManager .global func_ov18_02160a10 arm_func_start func_ov18_02160a10 @@ -6837,13 +6837,13 @@ _02160c5c: cmp r8, r0 bge _02160c9c _02160c80: - ldr r0, _02160ffc ; =data_027e0e60 + ldr r0, _02160ffc ; =gMapManager mov r1, r5 ldr r0, [r0] mov r2, r11 strb r6, [sp, #0x14] strb r8, [sp, #0x15] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii _02160c9c: add r8, r8, #1 cmp r8, r10 @@ -6912,13 +6912,13 @@ _02160d6c: cmp r8, r0 bge _02160dac _02160d90: - ldr r0, _02160ffc ; =data_027e0e60 + ldr r0, _02160ffc ; =gMapManager mov r1, r5 ldr r0, [r0] mov r2, r11 strb r6, [sp, #0x12] strb r8, [sp, #0x13] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii _02160dac: add r8, r8, #1 cmp r8, r10 @@ -6987,13 +6987,13 @@ _02160e7c: cmp r8, r0 bge _02160ebc _02160ea0: - ldr r0, _02160ffc ; =data_027e0e60 + ldr r0, _02160ffc ; =gMapManager mov r1, r5 ldr r0, [r0] mov r2, r11 strb r6, [sp, #0x10] strb r8, [sp, #0x11] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii _02160ebc: add r8, r8, #1 cmp r8, r10 @@ -7082,7 +7082,7 @@ _02160fb0: .align 2, 0 arm_func_end func_ov18_02160b6c _02160ff8: .word data_027e0f68 -_02160ffc: .word data_027e0e60 +_02160ffc: .word gMapManager .global func_ov18_02161000 arm_func_start func_ov18_02161000 @@ -9039,10 +9039,10 @@ _0216283c: ; jump table b _02162c20 ; case 6 b _02162bac ; case 7 _0216285c: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084c94 + bl _ZN10MapManager18func_ov00_02084c94Ei cmp r0, #0 bne _02162950 add r0, sp, #0x118 @@ -9101,17 +9101,17 @@ _0216285c: add r3, sp, #0x118 bl func_ov00_020c4048 _02162950: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084c7c + bl _ZN10MapManager18func_ov00_02084c7cEi b _02162c90 _02162968: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084c94 + bl _ZN10MapManager18func_ov00_02084c94Ei cmp r0, #0 bne _02162a48 add r0, sp, #0xec @@ -9167,17 +9167,17 @@ _02162a00: add r3, sp, #0xec bl func_ov00_020c4048 _02162a48: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084c7c + bl _ZN10MapManager18func_ov00_02084c7cEi b _02162c90 _02162a60: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084c94 + bl _ZN10MapManager18func_ov00_02084c94Ei cmp r0, #0 bne _02162ab4 add r0, sp, #0xb4 @@ -9196,17 +9196,17 @@ _02162a60: add r3, sp, #0xb4 bl func_ov00_020c4048 _02162ab4: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084c7c + bl _ZN10MapManager18func_ov00_02084c7cEi b _02162c90 _02162acc: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084c94 + bl _ZN10MapManager18func_ov00_02084c94Ei cmp r0, #0 bne _02162b20 add r0, sp, #0x88 @@ -9225,17 +9225,17 @@ _02162acc: add r3, sp, #0x88 bl func_ov00_020c4048 _02162b20: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084c7c + bl _ZN10MapManager18func_ov00_02084c7cEi b _02162c90 _02162b38: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 bne _02162b94 add r0, sp, #0x5c @@ -9256,17 +9256,17 @@ _02162b38: add r3, sp, #0x5c bl func_ov00_020c4048 _02162b94: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei b _02162c90 _02162bac: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 bne _02162c08 add r0, sp, #0x30 @@ -9287,17 +9287,17 @@ _02162bac: add r3, sp, #0x30 bl func_ov00_020c4048 _02162c08: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei b _02162c90 _02162c20: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 bne _02162c7c add r0, sp, #4 @@ -9318,11 +9318,11 @@ _02162c20: add r3, sp, #4 bl func_ov00_020c4048 _02162c7c: - ldr r0, _02162ca0 ; =data_027e0e60 + ldr r0, _02162ca0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei _02162c90: mov r0, #0 str r0, [r4, #0x6c] @@ -9330,7 +9330,7 @@ _02162c90: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov18_021627dc -_02162ca0: .word data_027e0e60 +_02162ca0: .word gMapManager _02162ca4: .word data_027e0fe8 _02162ca8: .word 0x48415254 _02162cac: .word 0x42454548 @@ -17119,15 +17119,15 @@ func_ov18_02169378: ; 0x02169378 func_ov18_021693b0: ; 0x021693b0 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x1c - ldr r2, _02169418 ; =data_027e0e60 + ldr r2, _02169418 ; =gMapManager mov r6, r0 ldr r5, [r2] mov r0, r5 - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei mov r4, r0 mov r0, r5 mov r1, r6 - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] @@ -17136,7 +17136,7 @@ func_ov18_021693b0: ; 0x021693b0 add r3, sp, #0x10 mov r0, r5 str r4, [sp, #0xc] - bl func_ov00_02083f80 + bl _ZN10MapManager16MapData_vfunc_6cEv ldr r0, [sp, #0x14] cmp r0, #0xf80 movlt r0, #1 @@ -17145,7 +17145,7 @@ func_ov18_021693b0: ; 0x021693b0 ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov18_021693b0 -_02169418: .word data_027e0e60 +_02169418: .word gMapManager .global func_ov18_0216941c arm_func_start func_ov18_0216941c @@ -18333,16 +18333,16 @@ func_ov18_0216a3c8: ; 0x0216a3c8 ldr r0, _0216a5b0 ; =data_ov18_0216b6f4 mov r1, r1, lsl #0x1 ldrh r2, [r0, r1] - ldr r1, _0216a5b4 ; =data_027e0e60 + ldr r1, _0216a5b4 ; =gMapManager add r0, sp, #0x14 strh r2, [r4, #0x10] ldrb r2, [r4, #0x15] ldr r1, [r1] - bl func_ov00_02083560 + bl _ZN10MapManager18func_ov00_02083560EiPS_j ldrb lr, [r4, #0x16] ldrb ip, [r4, #0x17] ldrb r1, [sp, #0x15] - ldr r0, _0216a5b4 ; =data_027e0e60 + ldr r0, _0216a5b4 ; =gMapManager strb lr, [sp, #0x12] str r1, [sp] ldr r0, [r0] @@ -18353,10 +18353,10 @@ func_ov18_0216a3c8: ; 0x0216a3c8 ldrb r3, [sp, #0x14] add r1, sp, #0x18 strb ip, [sp, #0x13] - bl func_ov00_02083ce8 - ldr r0, _0216a5b4 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083ce8Ecccci + ldr r0, _0216a5b4 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208330c + bl _ZN10MapManager21GetCourseData_Unk_25cEv cmp r0, #0 beq _0216a47c add r0, r4, #8 @@ -18372,7 +18372,7 @@ func_ov18_0216a3c8: ; 0x0216a3c8 bl func_ov00_02079470 b _0216a4a4 _0216a47c: - ldr r0, _0216a5b4 ; =data_027e0e60 + ldr r0, _0216a5b4 ; =gMapManager ldrb lr, [r4, #0x17] ldrb ip, [r4, #0x16] ldr r0, [r0] @@ -18381,16 +18381,16 @@ _0216a47c: add r3, r4, #0xc strb ip, [sp, #0x10] strb lr, [sp, #0x11] - bl func_ov00_02082d84 + bl _ZN10MapManager18func_ov00_02082d84Ev _0216a4a4: - ldr r0, _0216a5b4 ; =data_027e0e60 + ldr r0, _0216a5b4 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083344 + bl _ZN10MapManager20GetCourseData_Unk_86Ev cmp r0, #2 bge _0216a4cc - ldr r0, _0216a5b4 ; =data_027e0e60 + ldr r0, _0216a5b4 ; =gMapManager ldr r0, [r0] - bl func_ov00_02083350 + bl _ZN10MapManager20GetCourseData_Unk_87Ev cmp r0, #2 blt _0216a504 _0216a4cc: @@ -18461,7 +18461,7 @@ _0216a5a8: .align 2, 0 arm_func_end func_ov18_0216a3c8 _0216a5b0: .word data_ov18_0216b6f4 -_0216a5b4: .word data_027e0e60 +_0216a5b4: .word gMapManager _0216a5b8: .word data_027e0d3c _0216a5bc: .word data_ov18_0216b710 _0216a5c0: .word data_ov18_0216b748 @@ -18506,10 +18506,10 @@ _0216a63c: cmp r2, #2 cmpne r2, #3 ldmneia sp!, {r4, pc} - ldr r0, _0216a6b0 ; =data_027e0e60 + ldr r0, _0216a6b0 ; =gMapManager ldrb r1, [r4, #0x19] ldr r0, [r0] - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 movne r0, #0 strneb r0, [r4, #0x14] @@ -18521,10 +18521,10 @@ _0216a674: cmp r2, #2 cmpne r2, #3 ldmneia sp!, {r4, pc} - ldr r0, _0216a6b0 ; =data_027e0e60 + ldr r0, _0216a6b0 ; =gMapManager ldrb r1, [r4, #0x19] ldr r0, [r0] - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 movne r0, #1 strneb r0, [r4, #0x14] @@ -18534,7 +18534,7 @@ _0216a674: .align 2, 0 arm_func_end func_ov18_0216a5c4 _0216a6ac: .word gAdventureFlags -_0216a6b0: .word data_027e0e60 +_0216a6b0: .word gMapManager .global func_ov18_0216a6b4 arm_func_start func_ov18_0216a6b4 @@ -18545,10 +18545,10 @@ func_ov18_0216a6b4: ; 0x0216a6b4 mov r6, r1 cmp r0, #0 ldmeqia sp!, {r4, r5, r6, pc} - ldr r0, _0216a77c ; =data_027e0e60 + ldr r0, _0216a77c ; =gMapManager ldrb r5, [r4, #0x15] ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r0, r5 ldmeqia sp!, {r4, r5, r6, pc} ldrh r0, [r6] @@ -18598,7 +18598,7 @@ _0216a770: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov18_0216a6b4 -_0216a77c: .word data_027e0e60 +_0216a77c: .word gMapManager .global func_ov18_0216a780 arm_func_start func_ov18_0216a780 @@ -19094,23 +19094,23 @@ func_ov18_0216adcc: ; 0x0216adcc addhi sp, sp, #8 movhi r0, #0 ldmhiia sp!, {r3, r4, r5, pc} - ldr r0, _0216aed4 ; =data_027e0e60 + ldr r0, _0216aed4 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208330c + bl _ZN10MapManager21GetCourseData_Unk_25cEv cmp r0, #0 beq _0216ae24 - ldr r0, _0216aed4 ; =data_027e0e60 + ldr r0, _0216aed4 ; =gMapManager ldrb r1, [r5, #4] ldr r0, [r0] - bl func_ov00_02083318 + bl _ZN10MapManager18func_ov00_02083318Ei cmp r0, #0 addeq sp, sp, #8 moveq r0, #1 ldmeqia sp!, {r3, r4, r5, pc} _0216ae24: - ldr r0, _0216aed4 ; =data_027e0e60 + ldr r0, _0216aed4 ; =gMapManager ldr r0, [r0] - bl func_ov00_020849c0 + bl _ZN10MapManager18func_ov00_020849c0Ev cmp r0, #0 addne sp, sp, #8 movne r0, #1 @@ -19157,7 +19157,7 @@ _0216aec8: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov18_0216adcc -_0216aed4: .word data_027e0e60 +_0216aed4: .word gMapManager _0216aed8: .word data_027e0ce0 .global func_ov18_0216aedc @@ -20980,7 +20980,7 @@ data_ov18_0216c0f4: ; 0x0216c0f4 .word func_ov18_0215bd84 .global data_ov18_0216c0f8 data_ov18_0216c0f8: ; 0x0216c0f8 - .word func_ov00_0207ddf4 + .word _ZN7MapBase8vfunc_18Ev .global data_ov18_0216c0fc data_ov18_0216c0fc: ; 0x0216c0fc .word func_ov18_0215beb8 @@ -21016,13 +21016,13 @@ data_ov18_0216c124: ; 0x0216c124 .word func_ov04_0210cb00 ; data_ov07_0210cb00 .global data_ov18_0216c128 data_ov18_0216c128: ; 0x0216c128 - .word func_ov00_0207e46c + .word _ZN7MapBase8vfunc_48Ev .global data_ov18_0216c12c data_ov18_0216c12c: ; 0x0216c12c .word func_ov18_0215caa4 .global data_ov18_0216c130 data_ov18_0216c130: ; 0x0216c130 - .word func_ov00_0207e488 + .word _ZN7MapBase8vfunc_50Ev .global data_ov18_0216c134 data_ov18_0216c134: ; 0x0216c134 .word func_ov18_0215c290 @@ -21040,16 +21040,16 @@ data_ov18_0216c144: ; 0x0216c144 .word func_ov18_0215c32c .global data_ov18_0216c148 data_ov18_0216c148: ; 0x0216c148 - .word func_ov00_0207e4b8 + .word _ZN7MapBase8vfunc_68Eii .global data_ov18_0216c14c data_ov18_0216c14c: ; 0x0216c14c - .word func_ov00_0207e970 + .word _ZN7MapBase8vfunc_6cEiii .global data_ov18_0216c150 data_ov18_0216c150: ; 0x0216c150 - .word func_ov00_0207ee14 + .word _ZN7MapBase8vfunc_70EP5Vec3p .global data_ov18_0216c154 data_ov18_0216c154: ; 0x0216c154 - .word func_ov00_0207eff4 + .word _ZN7MapBase8vfunc_74EP5Vec3p .global data_ov18_0216c158 data_ov18_0216c158: ; 0x0216c158 .word func_ov18_0215c448 @@ -21061,16 +21061,16 @@ data_ov18_0216c160: ; 0x0216c160 .word func_ov18_0215c5c4 .global data_ov18_0216c164 data_ov18_0216c164: ; 0x0216c164 - .word func_ov00_0207f364 + .word _ZN7MapBase8vfunc_84Ei .global data_ov18_0216c168 data_ov18_0216c168: ; 0x0216c168 - .word func_ov00_0207f324 + .word _ZN7MapBase8vfunc_88Ev .global data_ov18_0216c16c data_ov18_0216c16c: ; 0x0216c16c - .word func_ov00_0207f32c + .word _ZN7MapBase8vfunc_8cEv .global data_ov18_0216c170 data_ov18_0216c170: ; 0x0216c170 - .word func_ov00_0207f3c4 + .word _ZN7MapBase8vfunc_90Eiii .global data_ov18_0216c174 data_ov18_0216c174: ; 0x0216c174 .word func_ov18_0215c27c @@ -21079,28 +21079,28 @@ data_ov18_0216c178: ; 0x0216c178 .word func_ov18_0215c3c0 .global data_ov18_0216c17c data_ov18_0216c17c: ; 0x0216c17c - .word func_ov00_0207f334 + .word _ZN7MapBase8vfunc_9cEv .global data_ov18_0216c180 data_ov18_0216c180: ; 0x0216c180 - .word func_ov00_0207f338 + .word _ZN7MapBase8vfunc_a0Ev .global data_ov18_0216c184 data_ov18_0216c184: ; 0x0216c184 .word func_ov18_0215c284 .global data_ov18_0216c188 data_ov18_0216c188: ; 0x0216c188 - .word func_ov00_0207f344 + .word _ZN7MapBase8vfunc_a8Ev .global data_ov18_0216c18c data_ov18_0216c18c: ; 0x0216c18c - .word func_ov00_0207f348 + .word _ZN7MapBase8vfunc_acEv .global data_ov18_0216c190 data_ov18_0216c190: ; 0x0216c190 .word func_ov18_0215c608 .global data_ov18_0216c194 data_ov18_0216c194: ; 0x0216c194 - .word func_ov00_0207e444 + .word _ZN7MapBase8vfunc_b4Ev .global data_ov18_0216c198 data_ov18_0216c198: ; 0x0216c198 - .word func_ov00_020807d4 + .word _ZN7MapBase8vfunc_b8Ev .global data_ov18_0216c19c data_ov18_0216c19c: ; 0x0216c19c .word func_ov18_0215c3a0 diff --git a/asm/ov19.inc b/asm/ov19.inc index 88307a71..7d8152e9 100644 --- a/asm/ov19.inc +++ b/asm/ov19.inc @@ -1,6 +1,14 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_02083780Ei +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager18func_ov00_02084d24Ecci .extern _ZN10PlayerBase10SetVisibleEb .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder .extern _ZN11ItemManager7AddItemEi @@ -104,7 +112,7 @@ .extern data_027e0d44 .extern data_027e0db0 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -182,14 +190,6 @@ .extern func_ov00_0207c444 .extern func_ov00_0207c474 .extern func_ov00_02081f4c -.extern func_ov00_02082680 -.extern func_ov00_020836dc -.extern func_ov00_02083770 -.extern func_ov00_02083780 -.extern func_ov00_02083a1c -.extern func_ov00_02083ee0 -.extern func_ov00_02083fb0 -.extern func_ov00_02084d24 .extern func_ov00_020875f8 .extern func_ov00_02087d34 .extern func_ov00_02087df8 diff --git a/asm/ov19.s b/asm/ov19.s index 0cc7f427..627744b2 100644 --- a/asm/ov19.s +++ b/asm/ov19.s @@ -3464,7 +3464,7 @@ _021703a4: ldmia r0, {r0, r1, r2} stmia ip, {r0, r1, r2} ldr r2, [sp, #0x30] - ldr r3, _02170564 ; =data_027e0e60 + ldr r3, _02170564 ; =gMapManager ldr r1, [sp, #0x34] str r2, [sp, #0x18] ldr r2, [sp, #0x38] @@ -3473,7 +3473,7 @@ _021703a4: ldr r0, [r3] add r1, sp, #0x18 mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x34] ldr r1, [sp, #0x30] ldr r0, _02170568 ; =data_027e0f64 @@ -3557,7 +3557,7 @@ _02170554: .word data_027e0c54 _02170558: .word func_ov05_02102a80 _0217055c: .word data_027e0db0 _02170560: .word data_027e0f90 -_02170564: .word data_027e0e60 +_02170564: .word gMapManager _02170568: .word data_027e0f64 _0217056c: .word 0x00001555 _02170570: .word data_027e0ffc @@ -5453,7 +5453,7 @@ func_ov19_02171e64: ; 0x02171e64 stmdb sp!, {r3, lr} sub sp, sp, #0x10 ldr r2, [r0, #0x48] - ldr r1, _02171eb8 ; =data_027e0e60 + ldr r1, _02171eb8 ; =gMapManager str r2, [sp, #4] ldr r2, [r0, #0x4c] ldr r1, [r1] @@ -5462,7 +5462,7 @@ func_ov19_02171e64: ; 0x02171e64 add r0, sp, #0 add r2, sp, #4 str r3, [sp, #0xc] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -5473,7 +5473,7 @@ func_ov19_02171e64: ; 0x02171e64 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov19_02171e64 -_02171eb8: .word data_027e0e60 +_02171eb8: .word gMapManager .global func_ov19_02171ebc arm_func_start func_ov19_02171ebc @@ -6434,11 +6434,11 @@ _02172adc: .word data_027e0f78 func_ov19_02172ae0: ; 0x02172ae0 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _02172b1c ; =data_027e0e60 + ldr r0, _02172b1c ; =gMapManager ldrb r1, [r4, #0x15a] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 moveq r0, #0 streqb r0, [r4, #0x158] @@ -6449,7 +6449,7 @@ func_ov19_02172ae0: ; 0x02172ae0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov19_02172ae0 -_02172b1c: .word data_027e0e60 +_02172b1c: .word gMapManager .global func_ov19_02172b20 arm_func_start func_ov19_02172b20 @@ -7832,7 +7832,7 @@ func_ov19_02173d54: ; 0x02173d54 add r0, r7, #2 cmp r7, r0 bge _02173e1c - ldr r4, _02173ee8 ; =data_027e0e60 + ldr r4, _02173ee8 ; =gMapManager add r5, sp, #2 mov r11, #1 _02173d80: @@ -7849,24 +7849,24 @@ _02173d94: mov r2, r11 strb r6, [sp, #2] strb r8, [sp, #3] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r7 mov r2, r8 mov r3, #9 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci b _02173df4 _02173dcc: add r1, sp, #0 mov r2, #0 strb r6, [sp] strb r8, [sp, #1] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r7 mov r2, r8 mov r3, #0x15 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci _02173df4: ldrb r0, [r10, #0x15] add r8, r8, #1 @@ -7934,7 +7934,7 @@ _02173ea0: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov19_02173d54 -_02173ee8: .word data_027e0e60 +_02173ee8: .word gMapManager _02173eec: .word data_027e0f6c .global func_ov19_02173ef0 @@ -8410,7 +8410,7 @@ _0217448c: ldmneia sp!, {r3, r4, pc} _021744b8: ldr r1, [r4, #0x48] - ldr r0, _0217454c ; =data_027e0e60 + ldr r0, _0217454c ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -8418,7 +8418,7 @@ _021744b8: ldr r2, [r4, #0x50] add r1, sp, #0 str r2, [sp, #8] - bl func_ov00_02083780 + bl _ZN10MapManager18func_ov00_02083780Ei str r0, [r4, #0x354] ldr r1, _02174550 ; =data_ov19_02176b88 mov r0, r4 @@ -8448,7 +8448,7 @@ _021744b8: .align 2, 0 arm_func_end func_ov19_02174454 _02174548: .word gAdventureFlags -_0217454c: .word data_027e0e60 +_0217454c: .word gMapManager _02174550: .word data_ov19_02176b88 .global func_ov19_02174554 @@ -8585,14 +8585,14 @@ _02174710: ldr r3, [r4] ldr r2, [r4, #4] ldr r1, [r4, #8] - ldr r0, _02174798 ; =data_027e0e60 + ldr r0, _02174798 ; =gMapManager str r2, [sp, #0xc] str r3, [sp, #8] str r1, [sp, #0x10] ldrh r1, [r7, #0x20] ldr r0, [r0] add r2, sp, #8 - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 movne r5, #1 _02174754: @@ -8616,7 +8616,7 @@ _02174788: .word 0x424f4d42 _0217478c: .word data_027e0f94 _02174790: .word data_027e0fa0 _02174794: .word 0x0000019a -_02174798: .word data_027e0e60 +_02174798: .word gMapManager .global func_ov19_0217479c arm_func_start func_ov19_0217479c @@ -9138,7 +9138,7 @@ _02174e5c: b _021754d0 _02174eb4: ldr r1, [r4, #0x48] - ldr r0, _02175588 ; =data_027e0e60 + ldr r0, _02175588 ; =gMapManager str r1, [sp, #0x14] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -9147,7 +9147,7 @@ _02174eb4: add r2, sp, #0x14 str r1, [sp, #0x1c] ldr r1, [r4, #0x354] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r0, #1 movne r0, #0 @@ -9603,7 +9603,7 @@ _02175574: arm_func_end func_ov19_02174d7c _02175580: .word data_027e0ffc _02175584: .word 0x0000024a -_02175588: .word data_027e0e60 +_02175588: .word gMapManager _0217558c: .word data_027e0f90 _02175590: .word 0x00000333 _02175594: .word data_027e0fc8 @@ -9892,7 +9892,7 @@ func_ov19_021758c8: ; 0x021758c8 mov r0, r5 bl _ZN5Actor20IncreaseActiveFramesEv ldr r1, [r5, #0x48] - ldr r0, _02175958 ; =data_027e0e60 + ldr r0, _02175958 ; =gMapManager str r1, [sp] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -9901,7 +9901,7 @@ func_ov19_021758c8: ; 0x021758c8 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r5, #0x4c] add r0, r5, #0x158 bl func_ov00_020c5e20 @@ -9921,7 +9921,7 @@ _02175940: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov19_021758c8 -_02175958: .word data_027e0e60 +_02175958: .word gMapManager .global func_ov19_0217595c arm_func_start func_ov19_0217595c @@ -10071,14 +10071,14 @@ _02175af8: ldrsh r0, [r4, #0x10] cmp r0, #0 bgt _02175be8 - ldr r1, _02175c34 ; =data_027e0e60 + ldr r1, _02175c34 ; =gMapManager mov r0, r4 ldr r5, [r1] bl _ZN13LinkStateBase12GetPlayerPosEv mov r2, r0 add r0, sp, #2 mov r1, r5 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p mov r2, #0 ldrb r1, [sp, #2] ldrb r0, [sp, #3] @@ -10139,7 +10139,7 @@ _02175be8: _02175c28: .word data_027e0fb8 _02175c2c: .word 0xb60b60b7 _02175c30: .word data_ov00_020eec9c -_02175c34: .word data_027e0e60 +_02175c34: .word gMapManager _02175c38: .word data_ov19_02175ee0 _02175c3c: .word data_027e0d0c diff --git a/asm/ov20.inc b/asm/ov20.inc index 158fde90..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 data_027e0e60 .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 func_ov00_020833f4 -.extern func_ov00_02083400 -.extern func_ov00_020836bc -.extern func_ov00_02083770 -.extern func_ov00_02083a1c -.extern func_ov00_02083c7c -.extern func_ov00_02083ee0 -.extern func_ov00_02083f44 .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/ov20.s b/asm/ov20.s index b3a2e680..43e594fa 100644 --- a/asm/ov20.s +++ b/asm/ov20.s @@ -830,7 +830,7 @@ _0216e120: add r0, r4, #0x3000 bl func_01ff9e64 ldr r1, [r7, #0xa8c] - ldr r0, _0216e550 ; =data_027e0e60 + ldr r0, _0216e550 ; =gMapManager str r1, [sp, #0x20] ldr r2, [r7, #0xa90] ldr r0, [r0] @@ -839,18 +839,18 @@ _0216e120: mov r1, #2 add r2, sp, #0x20 str r3, [sp, #0x28] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r0, #1 movne r0, #0 cmp r0, #0 addeq sp, sp, #0x124 ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, _0216e550 ; =data_027e0e60 + ldr r0, _0216e550 ; =gMapManager add r2, sp, #0x44 ldr r0, [r0] mov r1, #2 - bl func_ov00_020836bc + bl _ZN10MapManager18func_ov00_020836bcEjPi ldr r1, [sp, #0x44] ldr r0, [r7, #0xa8c] cmp r0, r1 @@ -1030,7 +1030,7 @@ _0216e540: .word data_027e0ffc _0216e544: .word data_027e0f94 _0216e548: .word data_027e0764 _0216e54c: .word 0x00008001 -_0216e550: .word data_027e0e60 +_0216e550: .word gMapManager _0216e554: .word data_027e0f90 _0216e558: .word data_027e0f64 _0216e55c: .word 0x00001555 @@ -5045,7 +5045,7 @@ _02171ac0: add r3, sp, #0x10 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02171bf8 ; =data_027e0e60 + ldr r0, _02171bf8 ; =gMapManager ldr lr, [sp, #0x10] ldr ip, [sp, #0x14] ldr r3, [sp, #0x18] @@ -5055,7 +5055,7 @@ _02171ac0: str lr, [sp, #4] str ip, [sp, #8] str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x14] ldr r0, [r5, #0x15c] cmp r0, #0 @@ -5126,7 +5126,7 @@ _02171bd8: arm_func_end func_ov20_021719dc _02171bf0: .word data_027e0ffc _02171bf4: .word 0x00000272 -_02171bf8: .word data_027e0e60 +_02171bf8: .word gMapManager .global func_ov20_02171bfc arm_func_start func_ov20_02171bfc @@ -5364,14 +5364,14 @@ _02171e20: ldr r0, [sp, #0x20] ldr r1, [sp, #0x1c] str r0, [sp, #0x14] - ldr r0, _0217209c ; =data_027e0e60 + ldr r0, _0217209c ; =gMapManager str r1, [sp, #0x10] ldr r1, [sp, #0x24] ldr r0, [r0] str r1, [sp, #0x18] add r1, sp, #0x10 mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x20] ldr r0, _021720a0 ; =data_027e0ffc ldr r1, _021720a4 ; =0x00000243 @@ -5470,7 +5470,7 @@ _0217208c: .word data_027e0764 _02172090: .word data_02050f54 _02172094: .word data_027e0e58 _02172098: .word 0x00000263 -_0217209c: .word data_027e0e60 +_0217209c: .word gMapManager _021720a0: .word data_027e0ffc _021720a4: .word 0x00000243 _021720a8: .word data_027e0f64 @@ -7621,7 +7621,7 @@ func_ov20_02173ce4: ; 0x02173ce4 mov ip, #5 str r0, [sp, #0x38] ldr r1, [r6, #0x48] - ldr r0, _02173e30 ; =data_027e0e60 + ldr r0, _02173e30 ; =gMapManager str r1, [sp, #0x24] ldr r2, [r6, #0x4c] add r1, sp, #0x48 @@ -7683,7 +7683,7 @@ _02173e20: .align 2, 0 arm_func_end func_ov20_02173ce4 _02173e2c: .word 0x0000ffff -_02173e30: .word data_027e0e60 +_02173e30: .word gMapManager _02173e34: .word data_027e0f94 .global func_ov20_02173e38 @@ -8656,7 +8656,7 @@ _02174a20: ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [r6, #0x48] - ldr r0, _02174ba0 ; =data_027e0e60 + ldr r0, _02174ba0 ; =gMapManager str r1, [sp, #4] ldr r1, [r6, #0x4c] ldr r0, [r0] @@ -8665,7 +8665,7 @@ _02174a20: add r1, sp, #4 mov r2, #1 str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r2, r4, r0 ldr r1, [sp, #0x50] ldr r0, [sp, #0x58] @@ -8752,7 +8752,7 @@ _02174b88: _02174b94: .word gItemManager _02174b98: .word 0x000008a4 _02174b9c: .word 0x00000733 -_02174ba0: .word data_027e0e60 +_02174ba0: .word gMapManager _02174ba4: .word data_027e0f94 .global func_ov20_02174ba8 @@ -9874,14 +9874,14 @@ _021759e8: ldr r3, [sp, #0xe0] ldr r2, [sp, #0xe4] ldr r1, [sp, #0xe8] - ldr r0, _02175f14 ; =data_027e0e60 + ldr r0, _02175f14 ; =gMapManager str r2, [sp, #0x40] str r3, [sp, #0x3c] str r1, [sp, #0x44] ldrh r1, [r4, #0x20] ldr r0, [r0] add r2, sp, #0x3c - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 addeq sp, sp, #0x19c ldmeqia sp!, {r4, r5, pc} @@ -10010,7 +10010,7 @@ _02175bf4: beq _02175eb8 b _02175ec8 _02175c00: - ldr r0, _02175f14 ; =data_027e0e60 + ldr r0, _02175f14 ; =gMapManager ldr ip, _02175f30 ; =0xfffffe66 ldr r0, [r0] add ip, r2, ip @@ -10024,7 +10024,7 @@ _02175c00: str ip, [sp, #0x30] str r3, [sp, #0x34] str r5, [sp, #0x38] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0xa0] mov r1, #0 str r1, [sp] @@ -10037,7 +10037,7 @@ _02175c00: b _02175ec8 _02175c64: ldr r0, _02175f3c ; =0xfffff333 - ldr ip, _02175f14 ; =data_027e0e60 + ldr ip, _02175f14 ; =gMapManager add r5, r2, r0 add r1, r1, #0x33 add lr, r1, #0x300 @@ -10051,7 +10051,7 @@ _02175c64: str r5, [sp, #0x24] str r3, [sp, #0x28] str lr, [sp, #0x2c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x94] mov r1, #0 str r1, [sp] @@ -10063,7 +10063,7 @@ _02175c64: bl func_ov00_020c4048 b _02175ec8 _02175ccc: - ldr r0, _02175f14 ; =data_027e0e60 + ldr r0, _02175f14 ; =gMapManager ldr ip, _02175f30 ; =0xfffffe66 ldr r0, [r0] add lr, r2, ip @@ -10077,7 +10077,7 @@ _02175ccc: str lr, [sp, #0x18] str r3, [sp, #0x1c] str ip, [sp, #0x20] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x88] mov r1, #0 str r1, [sp] @@ -10089,7 +10089,7 @@ _02175ccc: bl func_ov00_020c4048 b _02175ec8 _02175d30: - ldr r0, _02175f14 ; =data_027e0e60 + ldr r0, _02175f14 ; =gMapManager ldr ip, _02175f3c ; =0xfffff333 ldr r0, [r0] add lr, r2, ip @@ -10103,7 +10103,7 @@ _02175d30: str lr, [sp, #0xc] str r3, [sp, #0x10] str ip, [sp, #0x14] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x7c] mov r1, #0 str r1, [sp] @@ -10218,7 +10218,7 @@ _02175ec8: .align 2, 0 arm_func_end func_ov20_02175978 _02175f10: .word data_027e0f94 -_02175f14: .word data_027e0e60 +_02175f14: .word gMapManager _02175f18: .word data_027e077c _02175f1c: .word gAdventureFlags _02175f20: .word data_027e0ffc @@ -11631,7 +11631,7 @@ func_ov20_02176fe8: ; 0x02176fe8 str r0, [r4, #0x84] str r0, [r4, #0x88] ldr r1, [r4, #0x7c] - ldr r0, _0217705c ; =data_027e0e60 + ldr r0, _0217705c ; =gMapManager str r1, [r4, #0x8c] ldr r1, [r4, #0x80] str r1, [r4, #0x90] @@ -11640,20 +11640,20 @@ func_ov20_02176fe8: ; 0x02176fe8 ldr r1, [r4, #0x88] str r1, [r4, #0x98] ldr r0, [r0] - bl func_ov00_020833f4 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev ldr r1, _02177060 ; =0xffffd99a str r0, [r4, #0x48] - ldr r0, _0217705c ; =data_027e0e60 + ldr r0, _0217705c ; =gMapManager str r1, [r4, #0x4c] ldr r0, [r0] - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev str r0, [r4, #0x50] mov r0, #1 add sp, sp, #0xc ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov20_02176fe8 -_0217705c: .word data_027e0e60 +_0217705c: .word gMapManager _02177060: .word 0xffffd99a .global func_ov20_02177064 @@ -11898,7 +11898,7 @@ func_ov20_02177300: ; 0x02177300 str r1, [r0, #8] mov r0, r4 bl _ZN13LinkStateBase12GetPlayerPosEv - ldr r1, _021773e0 ; =data_027e0e60 + ldr r1, _021773e0 ; =gMapManager add r3, sp, #0x10 ldr r5, [r1] ldmia r0, {r0, r1, r2} @@ -11908,7 +11908,7 @@ func_ov20_02177300: ; 0x02177300 mov r2, r0 mov r1, r5 add r0, sp, #0xc - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r2, [sp, #0xc] ldrb r1, [sp, #0xd] sub r3, sp, #4 @@ -11944,7 +11944,7 @@ func_ov20_02177300: ; 0x02177300 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov20_02177300 -_021773e0: .word data_027e0e60 +_021773e0: .word gMapManager _021773e4: .word 0x0000012a _021773e8: .word data_027e0e58 _021773ec: .word data_027e0ffc @@ -11958,11 +11958,11 @@ func_ov20_021773f4: ; 0x021773f4 mov r4, r0 bl _ZN13LinkStateBase18func_ov00_020a8d40Ev mov r2, r0 - ldr r1, _021774dc ; =data_027e0e60 + ldr r1, _021774dc ; =gMapManager add r0, sp, #0 ldr r1, [r1] add r2, r2, #0x20 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r2, [sp] ldrb r1, [sp, #1] sub r3, sp, #4 @@ -12014,7 +12014,7 @@ _021774c4: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov20_021773f4 -_021774dc: .word data_027e0e60 +_021774dc: .word gMapManager _021774e0: .word 0xfffff99a _021774e4: .word data_ov20_021793bc @@ -12024,7 +12024,7 @@ func_ov20_021774e8: ; 0x021774e8 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x24 - ldr r0, _021775cc ; =data_027e0e60 + ldr r0, _021775cc ; =gMapManager ldrb r1, [sp, #0x4c] ldr r0, [r0] sub r3, sp, #4 @@ -12033,9 +12033,9 @@ func_ov20_021774e8: ; 0x021774e8 add r1, sp, #0x18 strb r2, [r3, #1] ldr r2, [r3] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi mov r8, #0 - ldr r4, _021775cc ; =data_027e0e60 + ldr r4, _021775cc ; =gMapManager mov r9, r8 add r5, sp, #0xc mov r7, r8 @@ -12064,11 +12064,11 @@ _02177538: mov r2, #0 mov r1, r5 bne _0217759c - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p mov r10, r0 b _021775a8 _0217759c: - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p cmp r10, r0 movge r10, r0 _021775a8: @@ -12083,7 +12083,7 @@ _021775a8: bx lr .align 2, 0 arm_func_end func_ov20_021774e8 -_021775cc: .word data_027e0e60 +_021775cc: .word gMapManager .global func_ov20_021775d0 arm_func_start func_ov20_021775d0 diff --git a/asm/ov21.inc b/asm/ov21.inc index 82760e5e..198d1eea 100644 --- a/asm/ov21.inc +++ b/asm/ov21.inc @@ -1,4 +1,9 @@ #pragma once +.extern _ZN10MapManager16MapData_vfunc_54Ev +.extern _ZN10MapManager16MapData_vfunc_60Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN13LinkStateBase12GetPlayerVelEv .extern _ZN13LinkStateBase15ChangeLinkStateEi @@ -68,7 +73,7 @@ .extern data_027e077c .extern data_027e0d3c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f68 .extern data_027e0f6c .extern data_027e0f84 @@ -123,11 +128,6 @@ .extern func_ov00_0207a1c8 .extern func_ov00_0207c1f8 .extern func_ov00_02081f4c -.extern func_ov00_020836dc -.extern func_ov00_02083a1c -.extern func_ov00_02083e58 -.extern func_ov00_02083ee0 -.extern func_ov00_02084088 .extern func_ov00_0208b5a4 .extern func_ov00_0208b5bc .extern func_ov00_0208b694 diff --git a/asm/ov21.s b/asm/ov21.s index 14110fc8..0b89e000 100644 --- a/asm/ov21.s +++ b/asm/ov21.s @@ -514,16 +514,16 @@ _0216dcb0: .word data_027e0f94 .global func_ov21_0216dcb4 arm_func_start func_ov21_0216dcb4 func_ov21_0216dcb4: ; 0x0216dcb4 - ldr r2, _0216dccc ; =data_027e0e60 - ldr ip, _0216dcd0 ; =func_ov00_020836dc + ldr r2, _0216dccc ; =gMapManager + ldr ip, _0216dcd0 ; =_ZN10MapManager18func_ov00_020836dcEii ldrh r1, [r0, #0x22] ldr r0, [r2] mov r2, #0 bx ip .align 2, 0 arm_func_end func_ov21_0216dcb4 -_0216dccc: .word data_027e0e60 -_0216dcd0: .word func_ov00_020836dc +_0216dccc: .word gMapManager +_0216dcd0: .word _ZN10MapManager18func_ov00_020836dcEii .global func_ov21_0216dcd4 arm_func_start func_ov21_0216dcd4 @@ -922,11 +922,11 @@ _0216e204: .word data_ov21_021710a0 func_ov21_0216e208: ; 0x0216e208 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _0216e238 ; =data_027e0e60 + ldr r0, _0216e238 ; =gMapManager ldrh r1, [r4, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 @@ -934,7 +934,7 @@ func_ov21_0216e208: ; 0x0216e208 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov21_0216e208 -_0216e238: .word data_027e0e60 +_0216e238: .word gMapManager .global func_ov21_0216e23c arm_func_start func_ov21_0216e23c @@ -2772,7 +2772,7 @@ func_ov21_0216f7c8: ; 0x0216f7c8 ldmia r0, {r0, r1, r2} stmia r4, {r0, r1, r2} ldr r1, [r10, #0x98] - ldr r0, _0216fb84 ; =data_027e0e60 + ldr r0, _0216fb84 ; =gMapManager str r1, [sp, #0x54] ldr r2, [r10, #0x48] add r1, sp, #0xb8 @@ -2874,7 +2874,7 @@ _0216f9c0: add r0, r0, #0x9a add r0, r0, #0x900 ldr r9, _0216fb90 ; =data_ov21_02171750 - ldr r4, _0216fb84 ; =data_027e0e60 + ldr r4, _0216fb84 ; =gMapManager str r1, [sp, #0x3c] str r0, [sp, #0x40] str r2, [sp, #0x44] @@ -2896,7 +2896,7 @@ _0216fa3c: ldr r1, [r4] add r0, sp, #0x14 mov r2, r7 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r0, [sp, #0x14] ldrb r1, [sp, #0x15] ldr r2, _0216fbb4 ; =func_ov00_020b1940 @@ -2971,7 +2971,7 @@ _0216fb74: .align 2, 0 arm_func_end func_ov21_0216f7c8 _0216fb80: .word 0x0000ffff -_0216fb84: .word data_027e0e60 +_0216fb84: .word gMapManager _0216fb88: .word data_ov21_02171bb4 _0216fb8c: .word data_ov21_02171750 _0216fb90: .word data_ov21_02171750 @@ -3328,7 +3328,7 @@ func_ov21_02170050: ; 0x02170050 str r3, [sp, #0xc] bl func_ov00_020793b8 ldr r1, [r11, #0x48] - ldr r0, _021701a8 ; =data_027e0e60 + ldr r0, _021701a8 ; =gMapManager str r1, [sp, #0x10] ldr r1, [r11, #0x4c] ldr r0, [r0] @@ -3337,7 +3337,7 @@ func_ov21_02170050: ; 0x02170050 add r1, sp, #0x10 mov r2, #0 str r3, [sp, #0x18] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r6, #0xc _021700b8: rsb r4, r6, #0 @@ -3408,7 +3408,7 @@ _0217018c: .align 2, 0 arm_func_end func_ov21_02170050 _021701a4: .word data_027e0d3c -_021701a8: .word data_027e0e60 +_021701a8: .word gMapManager _021701ac: .word data_027e103c .global func_ov21_021701b0 @@ -3429,7 +3429,7 @@ func_ov21_021701b0: ; 0x021701b0 str r3, [sp] bl func_ov00_020793b8 ldr r1, [r10, #0x48] - ldr r0, _0217032c ; =data_027e0e60 + ldr r0, _0217032c ; =gMapManager str r1, [sp, #0x10] ldr r1, [r10, #0x4c] ldr r0, [r0] @@ -3438,7 +3438,7 @@ func_ov21_021701b0: ; 0x021701b0 add r1, sp, #0x10 mov r2, #0 str r3, [sp, #0x18] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r6, #0xf _02170218: rsb r4, r6, #0 @@ -3518,13 +3518,13 @@ _02170310: .align 2, 0 arm_func_end func_ov21_021701b0 _02170328: .word data_027e0d3c -_0217032c: .word data_027e0e60 +_0217032c: .word gMapManager _02170330: .word data_027e103c .global func_ov21_02170334 arm_func_start func_ov21_02170334 func_ov21_02170334: ; 0x02170334 - ldr r1, _02170380 ; =data_027e0e60 + ldr r1, _02170380 ; =gMapManager ldrh r2, [r0, #0x20] ldr r1, [r1] ldrh r0, [r0, #0x22] @@ -3547,7 +3547,7 @@ _02170378: bx lr .align 2, 0 arm_func_end func_ov21_02170334 -_02170380: .word data_027e0e60 +_02170380: .word gMapManager .global func_ov21_02170384 arm_func_start func_ov21_02170384 @@ -3564,23 +3564,23 @@ func_ov21_02170388: ; 0x02170388 add r2, sp, #4 ldr r0, [r0] bl func_ov00_020793b8 - ldr r1, _021703fc ; =data_027e0e60 + ldr r1, _021703fc ; =gMapManager add r0, sp, #0 ldr r1, [r1] add r2, sp, #4 - bl func_ov00_02083a1c - ldr r0, _021703fc ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _021703fc ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02083e58 + bl _ZN10MapManager16MapData_vfunc_60Ev cmp r0, #0 addgt sp, sp, #0x10 movgt r0, #0 ldmgtia sp!, {r3, pc} - ldr r0, _021703fc ; =data_027e0e60 + ldr r0, _021703fc ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02084088 + bl _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #0x14 movne r0, #0 moveq r0, #1 @@ -3589,7 +3589,7 @@ func_ov21_02170388: ; 0x02170388 .align 2, 0 arm_func_end func_ov21_02170388 _021703f8: .word data_027e0d3c -_021703fc: .word data_027e0e60 +_021703fc: .word gMapManager .global func_ov21_02170400 arm_func_start func_ov21_02170400 diff --git a/asm/ov22.inc b/asm/ov22.inc index 4169cdbe..c97233e2 100644 --- a/asm/ov22.inc +++ b/asm/ov22.inc @@ -1,6 +1,25 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_54Ev +.extern _ZN10MapManager16MapData_vfunc_60Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager16MapData_vfunc_7cEv +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_020826a0Eiii +.extern _ZN10MapManager18func_ov00_020836bcEjPi +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +.extern _ZN10MapManager18func_ov00_02083e34Ecci +.extern _ZN10MapManager18func_ov00_0208413cEi +.extern _ZN10MapManager18func_ov00_02084ac4Ej +.extern _ZN10MapManager18func_ov00_02084d24Ecci +.extern _ZN10MapManager8SpawnNPCEP5Vec3pii .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager13FindActorByIdEj .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j @@ -88,7 +107,7 @@ .extern data_027e0d0c .extern data_027e0d38 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -174,25 +193,6 @@ .extern func_ov00_0207c444 .extern func_ov00_0207c518 .extern func_ov00_02081f4c -.extern func_ov00_02082680 -.extern func_ov00_020826a0 -.extern func_ov00_020828c0 -.extern func_ov00_0208344c -.extern func_ov00_020836bc -.extern func_ov00_020836dc -.extern func_ov00_02083770 -.extern func_ov00_020838e8 -.extern func_ov00_02083a1c -.extern func_ov00_02083c7c -.extern func_ov00_02083e34 -.extern func_ov00_02083e58 -.extern func_ov00_02083ee0 -.extern func_ov00_02084088 -.extern func_ov00_020840c4 -.extern func_ov00_0208413c -.extern func_ov00_02084a5c -.extern func_ov00_02084ac4 -.extern func_ov00_02084d24 .extern func_ov00_02087df8 .extern func_ov00_02088000 .extern func_ov00_02088130 diff --git a/asm/ov22.s b/asm/ov22.s index 45adc59a..a61ee8f5 100644 --- a/asm/ov22.s +++ b/asm/ov22.s @@ -481,11 +481,11 @@ _0216dc98: .word data_027e0f78 func_ov22_0216dc9c: ; 0x0216dc9c stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _0216dcd8 ; =data_027e0e60 + ldr r0, _0216dcd8 ; =gMapManager ldrb r1, [r4, #0x15a] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 moveq r0, #0 streqb r0, [r4, #0x158] @@ -496,7 +496,7 @@ func_ov22_0216dc9c: ; 0x0216dc9c ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov22_0216dc9c -_0216dcd8: .word data_027e0e60 +_0216dcd8: .word gMapManager .global func_ov22_0216dcdc arm_func_start func_ov22_0216dcdc @@ -1056,7 +1056,7 @@ _0216e494: mov r7, #0 cmp r0, #0 ble _0216e52c - ldr r4, _0216e584 ; =data_027e0e60 + ldr r4, _0216e584 ; =gMapManager _0216e4a8: cmp r6, #0 cmpeq r7, #0 @@ -1077,10 +1077,10 @@ _0216e4a8: mov r0, r8 mov r2, r5 ldrsh r3, [r10, #0xc] - bl func_ov00_020828c0 + bl _ZN10MapManager16MapData_vfunc_7cEv ldr r0, [r4] mov r1, r5 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _0216e51c strb r9, [r0, #0x65] @@ -1119,7 +1119,7 @@ _0216e56c: .align 2, 0 arm_func_end func_ov22_0216e2a8 _0216e580: .word 0x00001334 -_0216e584: .word data_027e0e60 +_0216e584: .word gMapManager .global func_ov22_0216e588 arm_func_start func_ov22_0216e588 @@ -1363,7 +1363,7 @@ _0216e8bc: cmpeq r10, #0 beq _0216e938 ldrb r2, [r4, #0x14] - ldr r0, _0216ec8c ; =data_027e0e60 + ldr r0, _0216ec8c ; =gMapManager mov r1, r8 add r2, r9, r2 strb r2, [sp, #0xa] @@ -1371,7 +1371,7 @@ _0216e8bc: ldr r0, [r0] add r2, r10, r2 strb r2, [sp, #0xb] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r7, r0 beq _0216e938 ldr r1, [r0] @@ -1423,16 +1423,16 @@ _0216e958: mvn r0, #0 cmp r1, r0 beq _0216e9bc - ldr r0, _0216ec8c ; =data_027e0e60 + ldr r0, _0216ec8c ; =gMapManager ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej _0216e9bc: - ldr r0, _0216ec8c ; =data_027e0e60 + ldr r0, _0216ec8c ; =gMapManager add r1, sp, #0x1c ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii str r0, [r4, #0x74] _0216e9d8: mov r0, #0x3c @@ -1528,7 +1528,7 @@ _0216eb28: cmpeq r10, #0 beq _0216eba4 ldrb r2, [r4, #0x14] - ldr r0, _0216ec8c ; =data_027e0e60 + ldr r0, _0216ec8c ; =gMapManager mov r1, r8 add r2, r9, r2 strb r2, [sp, #8] @@ -1536,7 +1536,7 @@ _0216eb28: ldr r0, [r0] add r2, r10, r2 strb r2, [sp, #9] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r7, r0 beq _0216eba4 ldr r1, [r0] @@ -1588,16 +1588,16 @@ _0216ebc4: mvn r0, #0 cmp r1, r0 beq _0216ec28 - ldr r0, _0216ec8c ; =data_027e0e60 + ldr r0, _0216ec8c ; =gMapManager ldr r0, [r0] - bl func_ov00_02084ac4 + bl _ZN10MapManager18func_ov00_02084ac4Ej _0216ec28: - ldr r0, _0216ec8c ; =data_027e0e60 + ldr r0, _0216ec8c ; =gMapManager add r1, sp, #0x10 ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii str r0, [r4, #0x74] _0216ec44: mov r1, #0 @@ -1621,7 +1621,7 @@ _0216ec74: .align 2, 0 arm_func_end func_ov22_0216e778 _0216ec88: .word gAdventureFlags -_0216ec8c: .word data_027e0e60 +_0216ec8c: .word gMapManager _0216ec90: .word data_027e0ffc _0216ec94: .word 0x00000335 _0216ec98: .word data_027e0e58 @@ -1823,21 +1823,21 @@ _0216eed0: mov r0, #0x4000 strh r0, [r4, #0xc] ldrb r2, [r4, #0x15] - ldr r0, _0216f0b0 ; =data_027e0e60 + ldr r0, _0216f0b0 ; =gMapManager ldrb r1, [r4, #0x14] ldr r0, [r0] sub r2, r2, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci b _0216ef14 _0216eef4: mov r0, #0 strh r0, [r4, #0xc] ldrb r1, [r4, #0x14] - ldr r0, _0216f0b0 ; =data_027e0e60 + ldr r0, _0216f0b0 ; =gMapManager ldrb r2, [r4, #0x15] ldr r0, [r0] sub r1, r1, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci _0216ef14: str r0, [r4, #0x1c] ldrh r6, [r4, #0x24] @@ -1883,7 +1883,7 @@ _0216efa0: cmp r0, r1 bge _0216f050 mov r7, #1 - ldr r5, _0216f0b0 ; =data_027e0e60 + ldr r5, _0216f0b0 ; =gMapManager add r8, sp, #6 add r6, sp, #4 mov r11, r7 @@ -1901,13 +1901,13 @@ _0216efe8: mov r2, r7 strb r9, [sp, #6] strb r10, [sp, #7] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r5] mov r1, r6 strb r9, [sp, #4] strb r10, [sp, #5] mov r2, r11 - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r1, [r4, #0x15] ldrb r0, [r4, #0x39] add r10, r10, #1 @@ -1950,7 +1950,7 @@ _0216f050: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov22_0216ee88 -_0216f0b0: .word data_027e0e60 +_0216f0b0: .word gMapManager _0216f0b4: .word 0x0000099a .global func_ov22_0216f0b8 @@ -3085,7 +3085,7 @@ _0216ff6c: str r0, [r6, #0x698] cmp r0, #0x2d bne _0216ffdc - ldr r0, _021701e4 ; =data_027e0e60 + ldr r0, _021701e4 ; =gMapManager mov r8, #0 ldr r0, [r0] sub r7, r8, #2 @@ -3102,7 +3102,7 @@ _0216ff6c: strb r8, [sp, #0x37] strb r8, [sp, #0x38] strb r8, [sp, #0x39] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _021701e8 ; =data_027e0d38 add r1, sp, #0x24 ldr r0, [r0] @@ -3255,7 +3255,7 @@ _021701d4: .word data_027e0e58 _021701d8: .word data_027e0ffc _021701dc: .word 0x00000297 _021701e0: .word 0x00000295 -_021701e4: .word data_027e0e60 +_021701e4: .word gMapManager _021701e8: .word data_027e0d38 _021701ec: .word 0xfffffccd _021701f0: .word data_ov22_021785b8 @@ -4914,7 +4914,7 @@ func_ov22_02171770: ; 0x02171770 tst r0, #0xff beq _021717d8 ldr r1, [r4, #0x48] - ldr r0, _02171930 ; =data_027e0e60 + ldr r0, _02171930 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -4924,7 +4924,7 @@ func_ov22_02171770: ; 0x02171770 str r1, [sp, #8] ldrh r1, [r4, #0x22] and r1, r1, #0xff - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 beq _021717d8 ldr r0, [r4, #0x48] @@ -5026,7 +5026,7 @@ _0217190c: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov22_02171770 -_02171930: .word data_027e0e60 +_02171930: .word gMapManager _02171934: .word data_027e0f94 _02171938: .word 0x0000071c _0217193c: .word data_02050f54 @@ -5446,7 +5446,7 @@ func_ov22_02171dfc: ; 0x02171dfc mov ip, #4 str r1, [sp, #0x28] ldr r1, [r4, #0x54] - ldr r3, _02171fec ; =data_027e0e60 + ldr r3, _02171fec ; =gMapManager str r1, [sp, #0x14] ldr r2, [r4, #0x58] add r1, sp, #0x2c @@ -5535,7 +5535,7 @@ _02171fd8: arm_func_end func_ov22_02171dfc _02171fe4: .word 0x00000b33 _02171fe8: .word 0x0000ffff -_02171fec: .word data_027e0e60 +_02171fec: .word gMapManager .global func_ov22_02171ff0 arm_func_start func_ov22_02171ff0 @@ -5887,7 +5887,7 @@ func_ov22_02172438: ; 0x02172438 tst r0, #0xff beq _021724a4 ldr r1, [r4, #0x48] - ldr r0, _0217250c ; =data_027e0e60 + ldr r0, _0217250c ; =gMapManager str r1, [sp, #4] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -5897,7 +5897,7 @@ func_ov22_02172438: ; 0x02172438 str r1, [sp, #0xc] ldrh r1, [r4, #0x22] and r1, r1, #0xff - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r0, #1 movne r0, #0 @@ -5936,7 +5936,7 @@ _021724a4: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov22_02172438 -_0217250c: .word data_027e0e60 +_0217250c: .word gMapManager _02172510: .word data_ov22_02179430 .global func_ov22_02172514 @@ -6089,7 +6089,7 @@ func_ov22_021726e8: ; 0x021726e8 tst r0, #0xff beq _02172754 ldr r1, [r4, #0x48] - ldr r0, _021727ec ; =data_027e0e60 + ldr r0, _021727ec ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -6099,7 +6099,7 @@ func_ov22_021726e8: ; 0x021726e8 str r1, [sp, #8] ldrh r1, [r4, #0x22] and r1, r1, #0xff - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r0, #1 movne r0, #0 @@ -6150,7 +6150,7 @@ _02172754: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov22_021726e8 -_021727ec: .word data_027e0e60 +_021727ec: .word gMapManager _021727f0: .word data_027e0764 _021727f4: .word data_ov22_02179430 @@ -6187,7 +6187,7 @@ func_ov22_0217283c: ; 0x0217283c tst r0, #0xff beq _021728b0 ldr r1, [r4, #0x48] - ldr r0, _02172954 ; =data_027e0e60 + ldr r0, _02172954 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -6197,7 +6197,7 @@ func_ov22_0217283c: ; 0x0217283c str r1, [sp, #8] ldrh r1, [r4, #0x22] and r1, r1, #0xff - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 ldreqb r0, [r4, #0x752] cmpeq r0, #0 @@ -6254,7 +6254,7 @@ _0217290c: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov22_0217283c -_02172954: .word data_027e0e60 +_02172954: .word gMapManager _02172958: .word data_027e0764 _0217295c: .word data_ov22_02179430 @@ -8052,11 +8052,11 @@ _021740a4: bl func_0202b154 cmp r0, #0 beq _02174134 - ldr r0, _0217460c ; =data_027e0e60 + ldr r0, _0217460c ; =gMapManager ldrh r1, [r5, #0x20] ldr r0, [r0] ldr r2, [r5, #8] - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _02174120 ldr r1, _02174610 ; =data_027e0764 @@ -8421,7 +8421,7 @@ _02174604: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov22_0217406c -_0217460c: .word data_027e0e60 +_0217460c: .word gMapManager _02174610: .word data_027e0764 _02174614: .word data_02050f54 _02174618: .word data_027e0f94 @@ -8802,7 +8802,7 @@ func_ov22_02174a80: ; 0x02174a80 cmp r3, #0 beq _02174ae8 ldr r1, [r3, #0x48] - ldr r0, _02174b38 ; =data_027e0e60 + ldr r0, _02174b38 ; =gMapManager str r1, [r4, #0x48] ldr r2, [r3, #0x4c] add r1, sp, #0 @@ -8817,7 +8817,7 @@ func_ov22_02174a80: ; 0x02174a80 str r3, [sp, #4] ldr r3, [r4, #0x50] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x9a add r0, r0, #0x900 str r0, [r4, #0x4c] @@ -8847,7 +8847,7 @@ _02174b2c: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov22_02174a80 -_02174b38: .word data_027e0e60 +_02174b38: .word gMapManager .global func_ov22_02174b3c arm_func_start func_ov22_02174b3c @@ -8989,7 +8989,7 @@ func_ov22_02174cb0: ; 0x02174cb0 mov r1, r1, lsl #0x2 ldrsh r1, [r0, r1] ldr r2, [sp, #0x24] - ldr lr, _02174db0 ; =data_027e0e60 + ldr lr, _02174db0 ; =gMapManager smulbb r1, r1, ip add r1, r1, #0x800 add r3, r2, r1, asr #12 @@ -9015,7 +9015,7 @@ func_ov22_02174cb0: ; 0x02174cb0 str r3, [sp, #0x18] str r5, [sp, #0x1c] str r6, [sp, #0x20] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x28] ldr r3, _02174db4 ; =0x0000059a mov r0, #0x1f @@ -9038,7 +9038,7 @@ func_ov22_02174cb0: ; 0x02174cb0 arm_func_end func_ov22_02174cb0 _02174da8: .word data_02050f54 _02174dac: .word 0x00000266 -_02174db0: .word data_027e0e60 +_02174db0: .word gMapManager _02174db4: .word 0x0000059a _02174db8: .word data_ov00_020e9370 @@ -9191,7 +9191,7 @@ _02174f74: strb r0, [sp, #8] cmp r4, r1 bge _02175038 - ldr r7, _0217505c ; =data_027e0e60 + ldr r7, _0217505c ; =gMapManager ldr r6, _02175060 ; =data_027e0764 sub r8, sp, #4 mov r11, #5 @@ -9199,7 +9199,7 @@ _02174f9c: ldr r0, [r7] add r1, sp, #8 strb r4, [sp, #9] - bl func_ov00_02084088 + bl _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #0x38 bne _02175028 ldr r1, [r6] @@ -9225,7 +9225,7 @@ _02174f9c: strb r3, [r8] strb r2, [r8, #1] ldr r2, [r8] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi ldr r0, _02175064 ; =data_027e0e58 add r1, r5, #0x158 ldr r0, [r0] @@ -9248,7 +9248,7 @@ _02175038: .align 2, 0 arm_func_end func_ov22_02174f00 _02175058: .word data_027e0f64 -_0217505c: .word data_027e0e60 +_0217505c: .word gMapManager _02175060: .word data_027e0764 _02175064: .word data_027e0e58 @@ -9878,15 +9878,15 @@ func_ov22_021757c0: ; 0x021757c0 ldr r3, [r5, #0x298] str r3, [sp, #0x18] bl func_01ff9bf8 - ldr r1, _0217590c ; =data_027e0e60 + ldr r1, _0217590c ; =gMapManager add r0, sp, #0 ldr r5, [r1] add r2, sp, #0x1c mov r1, r5 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r5 - bl func_ov00_02083e58 + bl _ZN10MapManager16MapData_vfunc_60Ev ldr r1, [sp, #4] mov r2, #0x19000 ldr ip, [sp, #0xc] @@ -9940,7 +9940,7 @@ func_ov22_021757c0: ; 0x021757c0 .align 2, 0 arm_func_end func_ov22_021757c0 _02175908: .word data_027e0f64 -_0217590c: .word data_027e0e60 +_0217590c: .word gMapManager .global func_ov22_02175910 arm_func_start func_ov22_02175910 @@ -10225,16 +10225,16 @@ func_ov22_02175c44: ; 0x02175c44 str r1, [r9, #0x44] add r1, r2, #0x7800 str r1, [r9, #0x48] - ldr r0, _02175cfc ; =data_027e0e60 + ldr r0, _02175cfc ; =gMapManager add r1, r9, #0x18 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldrb r7, [r9, #0x14] add r0, r7, #2 cmp r7, r0 addge sp, sp, #4 ldmgeia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} - ldr r10, _02175cfc ; =data_027e0e60 + ldr r10, _02175cfc ; =gMapManager add r5, sp, #0 mov r4, #1 _02175ca0: @@ -10249,7 +10249,7 @@ _02175cb4: mov r2, r4 strb r6, [sp] strb r8, [sp, #1] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrb r0, [r9, #0x15] add r8, r8, #1 add r0, r0, #0x10 @@ -10265,7 +10265,7 @@ _02175ce0: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov22_02175c44 -_02175cfc: .word data_027e0e60 +_02175cfc: .word gMapManager .global func_ov22_02175d00 arm_func_start func_ov22_02175d00 @@ -10584,7 +10584,7 @@ _021760b8: cmp r6, r0 addge sp, sp, #0xc ldmgeia sp!, {r3, r4, r5, r6, r7, r8, pc} - ldr r8, _02176174 ; =data_027e0e60 + ldr r8, _02176174 ; =gMapManager mov r5, #0x45 _0217611c: ldrb r7, [r4, #0x15] @@ -10596,7 +10596,7 @@ _0217612c: mov r1, r6 mov r2, r7 mov r3, r5 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci ldrb r0, [r4, #0x15] add r7, r7, #1 add r0, r0, #0x10 @@ -10613,7 +10613,7 @@ _02176154: .align 2, 0 arm_func_end func_ov22_02176000 _02176170: .word data_027e0f6c -_02176174: .word data_027e0e60 +_02176174: .word gMapManager .global func_ov22_02176178 arm_func_start func_ov22_02176178 @@ -11543,11 +11543,11 @@ func_ov22_02176d6c: ; 0x02176d6c stmdb sp!, {r4, lr} sub sp, sp, #0x48 mov r4, r0 - ldr r0, _02176f78 ; =data_027e0e60 + ldr r0, _02176f78 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] add r2, sp, #0x30 - bl func_ov00_020836bc + bl _ZN10MapManager18func_ov00_020836bcEjPi mov ip, #0 ldr r1, _02176f7c ; =0x00000ccd bic r0, ip, #0x6000 @@ -11585,13 +11585,13 @@ func_ov22_02176d6c: ; 0x02176d6c mov r0, #4 str r1, [r4, #0x2bc] strb r0, [r4, #0x124] - ldr r0, _02176f78 ; =data_027e0e60 + ldr r0, _02176f78 ; =gMapManager strb r2, [r4, #0x125] ldr r0, [r0] add r1, sp, #0x18 - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldr r1, [sp, #0x18] - ldr r0, _02176f78 ; =data_027e0e60 + ldr r0, _02176f78 ; =gMapManager str r1, [r4, #0x48] ldr r1, [sp, #0x1c] str r1, [r4, #0x4c] @@ -11600,7 +11600,7 @@ func_ov22_02176d6c: ; 0x02176d6c mov r1, #0x5000 ldr r0, [r0] rsb r1, r1, #0 - bl func_ov00_0208413c + bl _ZN10MapManager18func_ov00_0208413cEi add r0, r4, #0x170 ldr r1, [r0] ldr r1, [r1, #8] @@ -11673,7 +11673,7 @@ func_ov22_02176d6c: ; 0x02176d6c ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov22_02176d6c -_02176f78: .word data_027e0e60 +_02176f78: .word gMapManager _02176f7c: .word 0x00000ccd _02176f80: .word data_027e0f6c _02176f84: .word data_ov22_021788f4 diff --git a/asm/ov23.inc b/asm/ov23.inc index 6c85c482..694a2f3f 100644 --- a/asm/ov23.inc +++ b/asm/ov23.inc @@ -1,6 +1,28 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager14GetEntrancePosEP5Vec3pi +.extern _ZN10MapManager16MapData_vfunc_60Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager18Set_MapData_Unk_16Eci +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_02083790Ei +.extern _ZN10MapManager18func_ov00_02083840Ei +.extern _ZN10MapManager18func_ov00_02083918EiPi +.extern _ZN10MapManager18func_ov00_02083958Ei +.extern _ZN10MapManager18func_ov00_020839d4Ev +.extern _ZN10MapManager18func_ov00_020839f8Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c24Ei +.extern _ZN10MapManager18func_ov00_02083c50Ei +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager18func_ov00_020840a0Ecci +.extern _ZN10MapManager18func_ov00_02084740Ev +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084d24Ecci .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder .extern _ZN11ItemManager12GetItemModelEj .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList @@ -120,7 +142,7 @@ .extern data_027e0db0 .extern data_027e0e2c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -222,28 +244,6 @@ .extern func_ov00_0207c444 .extern func_ov00_02081f4c .extern func_ov00_02081f50 -.extern func_ov00_02082680 -.extern func_ov00_0208344c -.extern func_ov00_02083624 -.extern func_ov00_02083790 -.extern func_ov00_02083840 -.extern func_ov00_02083918 -.extern func_ov00_02083948 -.extern func_ov00_02083958 -.extern func_ov00_020839d4 -.extern func_ov00_020839f8 -.extern func_ov00_02083a1c -.extern func_ov00_02083c24 -.extern func_ov00_02083c50 -.extern func_ov00_02083c7c -.extern func_ov00_02083e58 -.extern func_ov00_02083ee0 -.extern func_ov00_02083fb0 -.extern func_ov00_020840a0 -.extern func_ov00_020840c4 -.extern func_ov00_02084740 -.extern func_ov00_02084b38 -.extern func_ov00_02084d24 .extern func_ov00_0208726c .extern func_ov00_0208b5a4 .extern func_ov00_0208b5bc @@ -457,7 +457,7 @@ .extern func_ov00_020d1980 .extern func_ov00_020d70a4 .extern func_ov00_020d716c -.extern func_ov00_020d73bc +.extern PlaySoundEffect .extern func_ov00_020d77e4 .extern func_ov00_020d7a84 .extern func_ov00_020d7b20 diff --git a/asm/ov23.s b/asm/ov23.s index 3a64ecfd..4e6986ee 100644 --- a/asm/ov23.s +++ b/asm/ov23.s @@ -702,15 +702,15 @@ _0216df74: ldreq r0, [r4, #0x480] cmpeq r0, #1 ldmneia sp!, {r3, r4, r5, pc} - ldr r1, _0216e00c ; =data_027e0e60 + ldr r1, _0216e00c ; =gMapManager add r0, sp, #0 ldr r5, [r1] add r2, r4, #0x48 mov r1, r5 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r5 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r4, r0 ldmeqia sp!, {r3, r4, r5, pc} ldr r1, [r0] @@ -727,7 +727,7 @@ _0216df74: arm_func_end func_ov23_0216df28 _0216e004: .word data_ov00_020e8b08 _0216e008: .word 0x47524e43 -_0216e00c: .word data_027e0e60 +_0216e00c: .word gMapManager .global func_ov23_0216e010 arm_func_start func_ov23_0216e010 @@ -1892,14 +1892,14 @@ _0216ee88: _0216eea4: ldr r0, _0216eeec ; =data_ov00_020eec68 mov r1, #0xc2 - bl func_ov00_020d73bc + bl PlaySoundEffect add sp, sp, #8 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _0216eebc: ldr r0, _0216eeec ; =data_ov00_020eec68 mov r1, #0xc4 - bl func_ov00_020d73bc + bl PlaySoundEffect add sp, sp, #8 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} @@ -2277,7 +2277,7 @@ func_ov23_0216f2a4: ; 0x0216f2a4 add r1, r4, #0x48 bl func_ov00_020c5330 ldr r1, [r4, #0x48] - ldr r0, _0216f3ec ; =data_027e0e60 + ldr r0, _0216f3ec ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -2286,7 +2286,7 @@ func_ov23_0216f2a4: ; 0x0216f2a4 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] ldr r1, [r4, #0x48] ldr r3, _0216f3f0 ; =data_ov23_0217ac20 @@ -2337,7 +2337,7 @@ _0216f39c: arm_func_end func_ov23_0216f2a4 _0216f3e4: .word data_ov23_0217a030 _0216f3e8: .word 0x0000059a -_0216f3ec: .word data_027e0e60 +_0216f3ec: .word gMapManager _0216f3f0: .word data_ov23_0217ac20 _0216f3f4: .word data_ov23_0217a0b8 _0216f3f8: .word data_ov23_0217ac5c @@ -2378,7 +2378,7 @@ func_ov23_0216f428: ; 0x0216f428 add r1, sp, #0xbc add r0, r5, #0x3a8 bl func_ov00_020c5330 - ldr r0, _0216f878 ; =data_027e0e60 + ldr r0, _0216f878 ; =gMapManager ldr r1, [sp, #0xbc] ldr r2, [sp, #0xc0] ldr r3, [sp, #0xc4] @@ -2388,19 +2388,19 @@ func_ov23_0216f428: ; 0x0216f428 add r1, sp, #0x74 mov r2, #0 str r3, [sp, #0x7c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r4, r0 ldr r0, [sp, #0xd0] ldr r1, [sp, #0xc8] str r0, [sp, #0x70] - ldr r0, _0216f878 ; =data_027e0e60 + ldr r0, _0216f878 ; =gMapManager str r1, [sp, #0x68] ldr r1, [sp, #0xcc] ldr r0, [r0] str r1, [sp, #0x6c] add r1, sp, #0x68 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev cmp r4, r0 addne sp, sp, #0x1fc mov r0, #0 @@ -2442,7 +2442,7 @@ func_ov23_0216f428: ; 0x0216f428 str r3, [sp, #0x58] str r2, [sp] ldr r1, [r5, #8] - ldr r4, _0216f878 ; =data_027e0e60 + ldr r4, _0216f878 ; =gMapManager str r1, [sp, #4] ldrh r3, [r5, #0x9c] add r1, sp, #0x19c @@ -2535,10 +2535,10 @@ _0216f630: moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, r9, pc} _0216f6bc: - ldr r0, _0216f878 ; =data_027e0e60 + ldr r0, _0216f878 ; =gMapManager mov r1, r6 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _0216f6f4 ldr r1, [r0] @@ -2654,7 +2654,7 @@ _0216f86c: ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov23_0216f428 -_0216f878: .word data_027e0e60 +_0216f878: .word gMapManager _0216f87c: .word 0x0000ffff _0216f880: .word 0x00000733 _0216f884: .word data_027e0fe4 @@ -2834,7 +2834,7 @@ _0216fac8: add r1, r7, #0x39c bl func_ov00_020c5330 ldr r1, [r7, #0x39c] - ldr r0, _0216fb1c ; =data_027e0e60 + ldr r0, _0216fb1c ; =gMapManager str r1, [sp, #4] ldr r1, [r7, #0x3a0] ldr r0, [r0] @@ -2843,7 +2843,7 @@ _0216fac8: add r1, sp, #4 str r2, [sp, #0xc] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r7, #0x3a0] mov r1, r7 add r0, r7, #0x398 @@ -2852,7 +2852,7 @@ _0216fac8: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov23_0216f898 -_0216fb1c: .word data_027e0e60 +_0216fb1c: .word gMapManager .global func_ov23_0216fb20 arm_func_start func_ov23_0216fb20 @@ -2976,7 +2976,7 @@ func_ov23_0216fc10: ; 0x0216fc10 add r3, sp, #0x20 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0216fd84 ; =data_027e0e60 + ldr r0, _0216fd84 ; =gMapManager ldr lr, [sp, #0x20] ldr ip, [sp, #0x24] ldr r3, [sp, #0x28] @@ -2986,7 +2986,7 @@ func_ov23_0216fc10: ; 0x0216fc10 str lr, [sp, #0x14] str ip, [sp, #0x18] str r3, [sp, #0x1c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xcd add r0, r0, #0x400 str r0, [sp, #0x24] @@ -3012,7 +3012,7 @@ func_ov23_0216fc10: ; 0x0216fc10 strb r2, [r4, #0x3a9] bl func_ov00_020c5330 ldr r1, [r4, #0x48] - ldr r0, _0216fd84 ; =data_027e0e60 + ldr r0, _0216fd84 ; =gMapManager str r1, [sp, #8] ldr r2, [r4, #0x4c] ldr r0, [r0] @@ -3021,7 +3021,7 @@ func_ov23_0216fc10: ; 0x0216fc10 add r1, sp, #8 mov r2, #0 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] mov r0, r4 bl func_ov23_0216fddc @@ -3030,7 +3030,7 @@ func_ov23_0216fc10: ; 0x0216fc10 .align 2, 0 arm_func_end func_ov23_0216fc10 _0216fd80: .word 0x66666667 -_0216fd84: .word data_027e0e60 +_0216fd84: .word gMapManager _0216fd88: .word data_027e0e58 _0216fd8c: .word 0x000001a9 _0216fd90: .word data_027e0ffc @@ -3068,15 +3068,15 @@ func_ov23_0216fda0: ; 0x0216fda0 func_ov23_0216fddc: ; 0x0216fddc stmdb sp!, {r3, r4, r5, r6, r7, r8, lr} sub sp, sp, #4 - ldr r1, _0216fea4 ; =data_027e0e60 + ldr r1, _0216fea4 ; =gMapManager mov r2, r0 ldr r1, [r1] add r0, sp, #2 add r2, r2, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p mvn r4, #0 _0216fe00: - ldr r6, _0216fea4 ; =data_027e0e60 + ldr r6, _0216fea4 ; =gMapManager mvn r5, #0 add r7, sp, #0 _0216fe0c: @@ -3088,7 +3088,7 @@ _0216fe0c: mov r1, r7 strb r3, [sp] strb r2, [sp, #1] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r8, r0 beq _0216fe84 ldr r1, [r0] @@ -3123,7 +3123,7 @@ _0216fe84: ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov23_0216fddc -_0216fea4: .word data_027e0e60 +_0216fea4: .word gMapManager .global func_ov23_0216fea8 arm_func_start func_ov23_0216fea8 @@ -3454,7 +3454,7 @@ _021702d0: add r1, r5, #0x48 bl func_ov00_020c5330 ldr r1, [r5, #0x48] - ldr r0, _02170670 ; =data_027e0e60 + ldr r0, _02170670 ; =gMapManager str r1, [sp, #0x20] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -3463,7 +3463,7 @@ _021702d0: add r1, sp, #0x20 str r2, [sp, #0x28] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r5, #0x4c] ldr r1, [r5, #0x48] mov r0, r5 @@ -3621,7 +3621,7 @@ _02170524: strb r2, [r5, #0x3ab] bl func_ov00_020c5330 ldr r1, [r5, #0x39c] - ldr r0, _02170670 ; =data_027e0e60 + ldr r0, _02170670 ; =gMapManager str r1, [sp, #0x14] ldr r1, [r5, #0x3a0] ldr r0, [r0] @@ -3630,7 +3630,7 @@ _02170524: add r1, sp, #0x14 mov r2, #0 str r3, [sp, #0x1c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r5, #0x3a0] _021705a8: mov r0, r5 @@ -3690,7 +3690,7 @@ _02170658: _02170664: .word data_027e0f94 _02170668: .word data_027e0fe4 _0217066c: .word 0x50534241 -_02170670: .word data_027e0e60 +_02170670: .word gMapManager _02170674: .word data_027e0ffc _02170678: .word 0x00000332 _0217067c: .word 0x00000333 @@ -5842,23 +5842,23 @@ func_ov23_021722d0: ; 0x021722d0 addeq sp, sp, #0x10 moveq r0, #0 ldmeqia sp!, {r3, r4, r5, pc} - ldr r1, _021723c0 ; =data_027e0e60 + ldr r1, _021723c0 ; =gMapManager add r0, sp, #0 ldr r1, [r1] add r2, r4, #0x48 - bl func_ov00_02083a1c - ldr r0, _021723c0 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _021723c0 ; =gMapManager ldrb r1, [sp] ldr r0, [r0] - bl func_ov00_02083c24 + bl _ZN10MapManager18func_ov00_02083c24Ei str r0, [r4, #0x48] - ldr r0, _021723c0 ; =data_027e0e60 + ldr r0, _021723c0 ; =gMapManager ldrb r1, [sp, #1] ldr r0, [r0] - bl func_ov00_02083c50 + bl _ZN10MapManager18func_ov00_02083c50Ei str r0, [r4, #0x50] ldr r1, [r4, #0x48] - ldr r0, _021723c0 ; =data_027e0e60 + ldr r0, _021723c0 ; =gMapManager str r1, [sp, #4] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -5867,7 +5867,7 @@ func_ov23_021722d0: ; 0x021722d0 add r1, sp, #4 str r2, [sp, #0xc] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] add r0, r4, #0x1b4 bl func_ov23_0216f0f4 @@ -5896,7 +5896,7 @@ func_ov23_021722d0: ; 0x021722d0 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov23_021722d0 -_021723c0: .word data_027e0e60 +_021723c0: .word gMapManager .global func_ov23_021723c4 arm_func_start func_ov23_021723c4 @@ -6189,12 +6189,12 @@ _02172794: bl func_ov23_02172cac b _021727e0 _021727a0: - ldr r0, _021727f0 ; =data_027e0e60 + ldr r0, _021727f0 ; =gMapManager mov r1, #1 ldr r0, [r0] mov r3, r1 mov r2, #2 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii mov r0, r4 mov r1, #1 bl _ZN5Actor18func_Ov00_020c1bfcEi @@ -6213,7 +6213,7 @@ _021727e0: arm_func_end func_ov23_02172700 _021727e8: .word data_ov23_0217a3e0 _021727ec: .word 0x00000333 -_021727f0: .word data_027e0e60 +_021727f0: .word gMapManager .global func_ov23_021727f4 arm_func_start func_ov23_021727f4 @@ -6453,7 +6453,7 @@ _02172a44: strb r2, [sp, #3] bl func_ov00_020c5374 mvn r7, #0 - ldr r9, _02172b14 ; =data_027e0e60 + ldr r9, _02172b14 ; =gMapManager mov r6, r7 add r10, sp, #0x1c add r5, sp, #0 @@ -6468,7 +6468,7 @@ _02172a78: mov r1, r5 strb r3, [sp] strb r2, [sp, #1] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r4, r0 beq _02172ae4 ldr r1, [r0] @@ -6502,7 +6502,7 @@ _02172ae4: _02172b08: .word data_027e0fe4 _02172b0c: .word 0x00000666 _02172b10: .word 0x424f4d42 -_02172b14: .word data_027e0e60 +_02172b14: .word gMapManager .global func_ov23_02172b18 arm_func_start func_ov23_02172b18 @@ -7119,14 +7119,14 @@ _02173364: _02173388: ldrb r1, [sp, #0x13] ldrb r2, [sp, #0x12] - ldr r0, _021734e0 ; =data_027e0e60 + ldr r0, _021734e0 ; =gMapManager add r1, r1, r5 add r2, r2, r4 strb r1, [sp, #0x11] ldr r0, [r0] add r1, sp, #0x10 strb r2, [sp, #0x10] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r10, r0 beq _021734a8 ldr r1, [r0] @@ -7206,7 +7206,7 @@ _021734d0: .word _ZTV11FilterActor _021734d4: .word 0x424f4d42 _021734d8: .word data_027e0fe4 _021734dc: .word 0x00000733 -_021734e0: .word data_027e0e60 +_021734e0: .word gMapManager .global func_ov23_021734e4 arm_func_start func_ov23_021734e4 @@ -7660,16 +7660,16 @@ _02173b48: ldr r0, _021741a8 ; =data_ov00_020eec68 mov r1, #0xf bl func_ov00_020d716c - ldr r0, _021741ac ; =data_027e0e60 + ldr r0, _021741ac ; =gMapManager mov r1, #1 ldr r0, [r0] - bl func_ov00_02083790 - ldr r0, _021741ac ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083790Ei + ldr r0, _021741ac ; =gMapManager mov r1, #1 ldr r0, [r0] mov r2, #2 mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii _02173b88: ldr r0, [r4, #0x138] cmp r0, #0x1e @@ -8077,24 +8077,24 @@ _02174120: mov r0, r4 mov r2, r1 bl _ZN5Actor18func_ov00_020c1c20Eiii - ldr r0, _021741ac ; =data_027e0e60 + ldr r0, _021741ac ; =gMapManager ldr r0, [r0] - bl func_ov00_02084740 + bl _ZN10MapManager18func_ov00_02084740Ev mov r1, r0 ldr r0, _021741a8 ; =data_ov00_020eec68 mov r2, #0 mov r3, #0x7f bl func_ov00_020d70a4 - ldr r0, _021741ac ; =data_027e0e60 + ldr r0, _021741ac ; =gMapManager mov r1, #1 ldr r0, [r0] - bl func_ov00_02083840 - ldr r0, _021741ac ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083840Ei + ldr r0, _021741ac ; =gMapManager mov r1, #1 ldr r0, [r0] mov r2, #2 mov r3, r1 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii _0217419c: mov r0, #1 add sp, sp, #0xc4 @@ -8102,7 +8102,7 @@ _0217419c: .align 2, 0 arm_func_end func_ov23_021738c0 _021741a8: .word data_ov00_020eec68 -_021741ac: .word data_027e0e60 +_021741ac: .word gMapManager _021741b0: .word data_027e0e58 _021741b4: .word data_027e0ffc _021741b8: .word data_027e103c @@ -10301,7 +10301,7 @@ func_ov23_02175d3c: ; 0x02175d3c str r3, [sp, #8] blx ip ldrb r1, [r4, #0x14] - ldr r0, _02175f08 ; =data_027e0e60 + ldr r0, _02175f08 ; =gMapManager ldrb r4, [r4, #0x15] add r3, r1, #1 ldr r0, [r0] @@ -10309,7 +10309,7 @@ func_ov23_02175d3c: ; 0x02175d3c mov r2, #1 strb r3, [sp, #4] strb r4, [sp, #5] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii add sp, sp, #0x6c ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 @@ -10318,7 +10318,7 @@ _02175ef8: .word 0x000007fc _02175efc: .word data_ov23_0217966c _02175f00: .word data_027e0f68 _02175f04: .word 0x000002cd -_02175f08: .word data_027e0e60 +_02175f08: .word gMapManager .global func_ov23_02175f0c arm_func_start func_ov23_02175f0c @@ -11642,7 +11642,7 @@ func_ov23_02177020: ; 0x02177020 sub sp, sp, #4 mov r9, r0 ldr r1, [r9, #0x18] - ldr r0, _021770e8 ; =data_027e0e60 + ldr r0, _021770e8 ; =gMapManager str r1, [r9, #0x38] ldr r2, [r9, #0x1c] add r1, r9, #0x18 @@ -11656,13 +11656,13 @@ func_ov23_02177020: ; 0x02177020 add r2, r2, #0x1800 str r2, [r9, #0x40] ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldrb r7, [r9, #0x14] add r0, r7, #2 cmp r7, r0 addge sp, sp, #4 ldmgeia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} - ldr r10, _021770e8 ; =data_027e0e60 + ldr r10, _021770e8 ; =gMapManager add r5, sp, #0 mov r4, #1 _0217708c: @@ -11677,7 +11677,7 @@ _021770a0: mov r2, r4 strb r6, [sp] strb r8, [sp, #1] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrb r0, [r9, #0x15] add r8, r8, #1 add r0, r0, #4 @@ -11693,7 +11693,7 @@ _021770cc: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov23_02177020 -_021770e8: .word data_027e0e60 +_021770e8: .word gMapManager .global func_ov23_021770ec arm_func_start func_ov23_021770ec @@ -12254,7 +12254,7 @@ _0217781c: cmp r6, r0 addge sp, sp, #0xc ldmgeia sp!, {r3, r4, r5, r6, r7, r8, pc} - ldr r8, _021778d8 ; =data_027e0e60 + ldr r8, _021778d8 ; =gMapManager mov r5, #0x15 _02177880: ldrb r7, [r4, #0x15] @@ -12266,7 +12266,7 @@ _02177890: mov r1, r6 mov r2, r7 mov r3, r5 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci ldrb r0, [r4, #0x15] add r7, r7, #1 add r0, r0, #4 @@ -12283,7 +12283,7 @@ _021778b8: .align 2, 0 arm_func_end func_ov23_02177754 _021778d4: .word data_027e0f6c -_021778d8: .word data_027e0e60 +_021778d8: .word gMapManager .global func_ov23_021778dc arm_func_start func_ov23_021778dc @@ -12575,7 +12575,7 @@ func_ov23_02177ba0: ; 0x02177ba0 add r2, r6, #0x2c mov r1, r0, lsl #0x1 add r3, r2, r0, lsl #1 - ldr r0, _02177e10 ; =data_027e0e60 + ldr r0, _02177e10 ; =gMapManager ldrb r2, [r2, r1] ldrb r1, [r3, #1] ldr r0, [r0] @@ -12584,7 +12584,7 @@ func_ov23_02177ba0: ; 0x02177ba0 strb r1, [r3, #1] ldr r2, [r3] add r1, sp, #0x78 - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi add r0, sp, #0x6c add r1, sp, #0x78 bl func_ov00_020b1a4c @@ -12681,14 +12681,14 @@ _02177d24: ldr r0, [sp, #0x74] cmp r0, #0x5000 bge _02177df0 - ldr r0, _02177e10 ; =data_027e0e60 + ldr r0, _02177e10 ; =gMapManager mov r3, #0xff ldr r0, [r0] mov r2, #0 add r1, sp, #0x38 strb r3, [sp, #0x46] str r2, [sp, #0x48] - bl func_ov00_02083624 + bl _ZN10MapManager14GetEntrancePosEP5Vec3pi ldr r0, [sp, #0x40] ldr r2, [sp, #0x38] ldr r1, [sp, #0x3c] @@ -12701,7 +12701,7 @@ _02177da8: ldr r0, [sp, #0x74] cmp r0, #0x5000 blt _02177df0 - ldr r0, _02177e10 ; =data_027e0e60 + ldr r0, _02177e10 ; =gMapManager mov r4, #0xff ldr r0, [r0] mov r3, #0 @@ -12709,7 +12709,7 @@ _02177da8: mov r2, #2 strb r4, [sp, #0x32] str r3, [sp, #0x34] - bl func_ov00_02083624 + bl _ZN10MapManager14GetEntrancePosEP5Vec3pi ldr r2, [sp, #0x24] ldr r1, [sp, #0x28] ldr r0, [sp, #0x2c] @@ -12727,7 +12727,7 @@ _02177df0: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov23_02177ba0 -_02177e10: .word data_027e0e60 +_02177e10: .word gMapManager _02177e14: .word data_027e0fe4 _02177e18: .word 0x504c444d _02177e1c: .word 0x50574253 @@ -12797,23 +12797,23 @@ func_ov23_02177e90: ; 0x02177e90 bl func_ov23_02177e7c mov r6, r0 bl func_ov23_02177e84 - ldr r2, _02178040 ; =data_027e0e60 + ldr r2, _02178040 ; =gMapManager ldr r1, _02178044 ; =data_027e0f94 ldr r8, [r2] mov r5, r0 ldr r1, [r1] mov r0, r8 mov r7, #1 - bl func_ov00_020839d4 + bl _ZN10MapManager18func_ov00_020839d4Ev ldr r1, _02178044 ; =data_027e0f94 mov r4, r0 ldr r1, [r1, #8] mov r0, r8 - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev mov r2, r0 mov r1, r4 mov r0, r8 - bl func_ov00_020840a0 + bl _ZN10MapManager18func_ov00_020840a0Ecci sub r0, r0, #0x49 cmp r0, #3 addls pc, pc, r0, lsl #2 @@ -12906,7 +12906,7 @@ _02178030: .align 2, 0 arm_func_end func_ov23_02177e90 _0217803c: .word data_027e0d38 -_02178040: .word data_027e0e60 +_02178040: .word gMapManager _02178044: .word data_027e0f94 _02178048: .word data_027e0fa0 _0217804c: .word data_027e0ffc @@ -13052,18 +13052,18 @@ _02178218: strh r1, [r0, #0x18] cmp r3, #2 blo _02178218 - ldr r0, _02178318 ; =data_027e0e60 + ldr r0, _02178318 ; =gMapManager add r2, sp, #0xc ldr r0, [r0] mov r1, #0x5b - bl func_ov00_02083918 + bl _ZN10MapManager18func_ov00_02083918EiPi cmp r0, #0 beq _02178298 - ldr r0, _02178318 ; =data_027e0e60 + ldr r0, _02178318 ; =gMapManager ldrb r1, [sp, #0x10] ldr r0, [r0] mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci ldr r0, _0217831c ; =data_027e0f64 mov r1, #0 ldr r0, [r0] @@ -13071,10 +13071,10 @@ _02178218: bl func_ov00_0208726c b _02178298 _02178274: - ldr r0, _02178318 ; =data_027e0e60 + ldr r0, _02178318 ; =gMapManager mov r1, #0 ldr r0, [r0] - bl func_ov00_02083958 + bl _ZN10MapManager18func_ov00_02083958Ei ldr r0, _0217831c ; =data_027e0f64 mov r1, #0 ldr r0, [r0] @@ -13115,7 +13115,7 @@ _02178308: .word data_027e0fe4 _0217830c: .word 0x504c444d _02178310: .word data_027e0f94 _02178314: .word data_027e0fac -_02178318: .word data_027e0e60 +_02178318: .word gMapManager _0217831c: .word data_027e0f64 _02178320: .word data_027e0fcc _02178324: .word data_027e0fd4 @@ -13530,7 +13530,7 @@ _02178880: _021788b8: bl _ZN13LinkStateBase12GetPlayerPosEv ldr r2, [r0] - ldr r1, _021789f8 ; =data_027e0e60 + ldr r1, _021789f8 ; =gMapManager str r2, [sp, #0xc] ldr r2, [r0, #4] ldr r6, [r1] @@ -13543,7 +13543,7 @@ _021788b8: add r1, sp, #0xc mov r0, r6 mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #4] ldr r6, [r4, #0xb0] sub r5, r1, r0 @@ -13614,7 +13614,7 @@ _021789e8: .word data_ov23_0217ab40 _021789ec: .word data_ov00_020eec9c _021789f0: .word data_027e0e58 _021789f4: .word 0x000001a7 -_021789f8: .word data_027e0e60 +_021789f8: .word gMapManager .global func_ov23_021789fc arm_func_start func_ov23_021789fc @@ -13631,7 +13631,7 @@ func_ov23_021789fc: ; 0x021789fc str r1, [r0, #8] mov r0, r5 bl _ZN13LinkStateBase12GetPlayerPosEv - ldr r1, _02178aa4 ; =data_027e0e60 + ldr r1, _02178aa4 ; =gMapManager add r3, sp, #8 ldr r4, [r1] ldmia r0, {r0, r1, r2} @@ -13641,10 +13641,10 @@ func_ov23_021789fc: ; 0x021789fc mov r2, r0 add r0, sp, #4 mov r1, r4 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p mov r0, r4 add r1, sp, #4 - bl func_ov00_02083e58 + bl _ZN10MapManager16MapData_vfunc_60Ev str r0, [sp, #0xc] mov r0, #1 str r0, [sp] @@ -13663,7 +13663,7 @@ func_ov23_021789fc: ; 0x021789fc ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov23_021789fc -_02178aa4: .word data_027e0e60 +_02178aa4: .word gMapManager _02178aa8: .word data_027e0e58 _02178aac: .word data_027e0ffc @@ -13675,15 +13675,15 @@ func_ov23_02178ab0: ; 0x02178ab0 mov r10, r0 bl _ZN13LinkStateBase18func_ov00_020a8d40Ev mov r2, r0 - ldr r1, _02179014 ; =data_027e0e60 + ldr r1, _02179014 ; =gMapManager add r0, sp, #8 ldr r4, [r1] add r2, r2, #0x20 mov r1, r4 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #8 mov r0, r4 - bl func_ov00_02083e58 + bl _ZN10MapManager16MapData_vfunc_60Ev mov r7, #0 ldr r11, _02179018 ; =data_02050f54 str r0, [sp] @@ -13742,21 +13742,21 @@ _02178b10: mov r0, r4 str r3, [sp, #0x34] bl func_01ff9bc4 - ldr r0, _02179014 ; =data_027e0e60 + ldr r0, _02179014 ; =gMapManager mov r2, r4 ldr r9, [r0] add r0, sp, #6 mov r1, r9 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p mov r0, r9 add r1, sp, #6 - bl func_ov00_02083e58 - ldr r1, _02179014 ; =data_027e0e60 + bl _ZN10MapManager16MapData_vfunc_60Ev + ldr r1, _02179014 ; =gMapManager str r0, [sp, #0x30] ldr r1, [r1] add r0, sp, #0x10 mov r2, r4 - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #0x10] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -13888,21 +13888,21 @@ _02178dcc: sublt r0, r0, #0x800 strlt r0, [sp, #0x20] _02178de8: - ldr r1, _02179014 ; =data_027e0e60 + ldr r1, _02179014 ; =gMapManager add r0, sp, #4 ldr r4, [r1] add r2, sp, #0x20 mov r1, r4 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #4 mov r0, r4 - bl func_ov00_02083e58 - ldr r1, _02179014 ; =data_027e0e60 + bl _ZN10MapManager16MapData_vfunc_60Ev + ldr r1, _02179014 ; =gMapManager str r0, [sp, #0x24] ldr r1, [r1] add r0, sp, #0xc add r2, sp, #0x20 - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #0xc] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -14037,7 +14037,7 @@ _02178fd8: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov23_02178ab0 -_02179014: .word data_027e0e60 +_02179014: .word gMapManager _02179018: .word data_02050f54 _0217901c: .word 0x00000333 _02179020: .word data_027e0d38 diff --git a/asm/ov24.inc b/asm/ov24.inc index 653183a9..8a711a56 100644 --- a/asm/ov24.inc +++ b/asm/ov24.inc @@ -1,12 +1,29 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager18Get_MapData_Unk_d0Ev +.extern _ZN10MapManager18Get_MapData_Unk_d8Ev +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_020826a0Eiii +.extern _ZN10MapManager18func_ov00_02083908EcPi +.extern _ZN10MapManager18func_ov00_0208412cEv +.extern _ZN10MapManager18func_ov00_0208413cEi +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084be0Eii +.extern _ZN10MapManager18func_ov00_02084d24Ecci .extern _ZN10PlayerBase18EquipItem_vfunc_3cEP8Cylinderi .extern _ZN12ActorManager13FindActorByIdEj .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager18func_ov00_020c3484EP8ActorRefP5Actori .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN13PlayerControl13CheckTouchingEj +.extern _ZN14AdventureFlags18func_Ov00_02097810Ei +.extern _ZN14AdventureFlags18func_ov00_02097b9cEv +.extern _ZN14AdventureFlags18func_ov00_02097bacEv +.extern _ZN14AdventureFlags18func_ov00_02097bbcEv +.extern _ZN14AdventureFlags18func_ov00_02098058Ev .extern _ZN5Actor10GetAngleToEP5Vec3p .extern _ZN5Actor10SetUnk_11bEv .extern _ZN5Actor10SetUnk_11cEc @@ -74,9 +91,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_02051f54 .extern data_02057200 @@ -84,7 +104,6 @@ .extern data_027e0c68 .extern data_027e0d0c .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -149,13 +168,10 @@ .extern func_0202bbbc .extern func_0202e310 .extern func_0202e58c -.extern _ZN9ActorTypeC1EjPFP5ActorvEPv -.extern _ZN9ActorTypeD1Ev .extern func_0203eba8 .extern func_0203ebc8 .extern func_0204f614 .extern func_0204f754 -.extern __register_global_object .extern func_ov00_02079e68 .extern func_ov00_0207a188 .extern func_ov00_0207a1c8 @@ -163,18 +179,6 @@ .extern func_ov00_0207c1b0 .extern func_ov00_0207c2e8 .extern func_ov00_02081f4c -.extern func_ov00_02082680 -.extern func_ov00_020826a0 -.extern func_ov00_020833f4 -.extern func_ov00_02083400 -.extern func_ov00_0208344c -.extern func_ov00_02083908 -.extern func_ov00_02083ee0 -.extern func_ov00_0208412c -.extern func_ov00_0208413c -.extern func_ov00_02084b38 -.extern func_ov00_02084be0 -.extern func_ov00_02084d24 .extern func_ov00_020876bc .extern func_ov00_02088158 .extern func_ov00_0208b180 @@ -223,11 +227,6 @@ .extern func_ov00_02093a5c .extern func_ov00_02093af0 .extern func_ov00_02094824 -.extern _ZN14AdventureFlags18func_Ov00_02097810Ei -.extern _ZN14AdventureFlags18func_ov00_02097b9cEv -.extern _ZN14AdventureFlags18func_ov00_02097bacEv -.extern _ZN14AdventureFlags18func_ov00_02097bbcEv -.extern _ZN14AdventureFlags18func_ov00_02098058Ev .extern func_ov00_0209a4f4 .extern func_ov00_0209a508 .extern func_ov00_020a61ac @@ -425,4 +424,5 @@ .extern func_ov17_0216a734 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern strncpy diff --git a/asm/ov24.s b/asm/ov24.s index ee2347ce..7db058c7 100644 --- a/asm/ov24.s +++ b/asm/ov24.s @@ -164,7 +164,7 @@ _0216d878: add r0, r9, r4 cmp r9, r0 bge _0216d914 - ldr r6, _0216da24 ; =data_027e0e60 + ldr r6, _0216da24 ; =gMapManager add r8, sp, #4 mov r7, #1 _0216d8b4: @@ -180,7 +180,7 @@ _0216d8cc: mov r2, r7 strb r4, [sp, #4] strb r10, [sp, #5] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r1, [r5, #0x15] ldrb r0, [r5, #0x65] add r10, r10, #1 @@ -265,7 +265,7 @@ _0216d914: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov24_0216d824 -_0216da24: .word data_027e0e60 +_0216da24: .word gMapManager _0216da28: .word data_027e0f6c .global func_ov24_0216da2c @@ -492,10 +492,10 @@ func_ov24_0216dcac: ; 0x0216dcac func_ov24_0216dcbc: ; 0x0216dcbc stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x18 - ldr r1, _0216dd58 ; =data_027e0e60 + ldr r1, _0216dd58 ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_0208412c + bl _ZN10MapManager18func_ov00_0208412cEv ldr r1, _0216dd5c ; =0xfffff667 ldr r2, [r4, #0x6c] add r0, r0, r1 @@ -517,9 +517,9 @@ _0216dd0c: add r1, sp, #0 ldr r2, [r2, #0x2c] blx r2 - ldr r0, _0216dd58 ; =data_027e0e60 + ldr r0, _0216dd58 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208412c + bl _ZN10MapManager18func_ov00_0208412cEv sub r1, r0, #0x800 str r0, [sp, #0x10] str r1, [sp, #4] @@ -533,7 +533,7 @@ _0216dd0c: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov24_0216dcbc -_0216dd58: .word data_027e0e60 +_0216dd58: .word gMapManager _0216dd5c: .word 0xfffff667 .global func_ov24_0216dd60 @@ -703,7 +703,7 @@ _0216df44: str r0, [r4, #0x84] str r0, [r4, #0x88] ldr r1, [r4, #0x7c] - ldr r0, _0216dffc ; =data_027e0e60 + ldr r0, _0216dffc ; =gMapManager str r1, [r4, #0x8c] ldr r1, [r4, #0x80] str r1, [r4, #0x90] @@ -712,13 +712,13 @@ _0216df44: ldr r1, [r4, #0x88] str r1, [r4, #0x98] ldr r0, [r0] - bl func_ov00_020833f4 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev str r0, [r4, #0x228] mov r1, #0 - ldr r0, _0216dffc ; =data_027e0e60 + ldr r0, _0216dffc ; =gMapManager str r1, [r4, #0x22c] ldr r0, [r0] - bl func_ov00_02083400 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev str r0, [r4, #0x230] mov r0, #1 add sp, sp, #0xc @@ -731,7 +731,7 @@ _0216dfec: .word data_ov24_02179224 _0216dff0: .word data_027e0fec _0216dff4: .word data_ov24_02179f04 _0216dff8: .word data_ov24_02179204 -_0216dffc: .word data_027e0e60 +_0216dffc: .word gMapManager .global func_ov24_0216e000 arm_func_start func_ov24_0216e000 @@ -917,10 +917,10 @@ _0216e258: ldr r2, [r0, r2, lsl #2] add r0, r4, #0x16c bl Approach_thunk - ldr r0, _0216e4b0 ; =data_027e0e60 + ldr r0, _0216e4b0 ; =gMapManager ldr r1, [r4, #0x16c] ldr r0, [r0] - bl func_ov00_0208413c + bl _ZN10MapManager18func_ov00_0208413cEi _0216e280: ldr r1, [r4, #0x174] ldr r0, _0216e4b4 ; =data_ov24_021791ec @@ -995,10 +995,10 @@ _0216e378: ldr r2, [r0, r2, lsl #2] add r0, r4, #0x16c bl Approach_thunk - ldr r0, _0216e4b0 ; =data_027e0e60 + ldr r0, _0216e4b0 ; =gMapManager ldr r1, [r4, #0x16c] ldr r0, [r0] - bl func_ov00_0208413c + bl _ZN10MapManager18func_ov00_0208413cEi _0216e3a0: ldr r1, [r4, #0x174] ldr r0, _0216e4c0 ; =data_ov24_021791f4 @@ -1074,7 +1074,7 @@ _0216e4a0: .word data_027e0f64 _0216e4a4: .word data_027e0ffc _0216e4a8: .word 0x00000355 _0216e4ac: .word data_ov24_021791e4 -_0216e4b0: .word data_027e0e60 +_0216e4b0: .word gMapManager _0216e4b4: .word data_ov24_021791ec _0216e4b8: .word data_ov24_021791fc _0216e4bc: .word 0x00000356 @@ -1103,10 +1103,10 @@ _0216e4f4: mov r1, #1 str r2, [r4, #0x16c] bl func_ov24_0216e740 - ldr r0, _0216e6f0 ; =data_027e0e60 + ldr r0, _0216e6f0 ; =gMapManager ldr r1, [r4, #0x16c] ldr r0, [r0] - bl func_ov00_0208413c + bl _ZN10MapManager18func_ov00_0208413cEi mov r2, #0 _0216e520: add r0, r4, r2, lsl #1 @@ -1130,10 +1130,10 @@ _0216e558: mov r1, #0 str r2, [r4, #0x16c] bl func_ov24_0216e740 - ldr r0, _0216e6f0 ; =data_027e0e60 + ldr r0, _0216e6f0 ; =gMapManager ldr r1, [r4, #0x16c] ldr r0, [r0] - bl func_ov00_0208413c + bl _ZN10MapManager18func_ov00_0208413cEi mov r2, #0 mov r1, r2 _0216e588: @@ -1236,7 +1236,7 @@ _0216e6e4: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov24_0216e4c8 -_0216e6f0: .word data_027e0e60 +_0216e6f0: .word gMapManager _0216e6f4: .word gAdventureFlags .global func_ov24_0216e6f8 @@ -1332,11 +1332,11 @@ _0216e810: strh r1, [r0, #0x18] cmp r3, #2 blo _0216e810 - ldr r0, _0216e87c ; =data_027e0e60 + ldr r0, _0216e87c ; =gMapManager ldrb r1, [r5, #0x159] ldr r0, [r0] add r2, sp, #0x18 - bl func_ov00_02083908 + bl _ZN10MapManager18func_ov00_02083908EcPi cmp r0, #0 beq _0216e860 ldr r0, [sp, #0x20] @@ -1357,7 +1357,7 @@ _0216e860: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov24_0216e7b8 -_0216e87c: .word data_027e0e60 +_0216e87c: .word gMapManager .global func_ov24_0216e880 arm_func_start func_ov24_0216e880 @@ -1373,13 +1373,13 @@ func_ov24_0216e880: ; 0x0216e880 movne r0, #0 ldmia sp!, {r3, pc} _0216e8a8: - ldr r0, _0216e8b8 ; =data_027e0e60 + ldr r0, _0216e8b8 ; =gMapManager ldr r0, [r0] ldrb r0, [r0, #9] ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov24_0216e880 -_0216e8b8: .word data_027e0e60 +_0216e8b8: .word gMapManager .global func_ov24_0216e8bc arm_func_start func_ov24_0216e8bc @@ -1392,7 +1392,7 @@ func_ov24_0216e8bc: ; 0x0216e8bc bl _ZN5Actor18func_Ov00_020c1bfcEi ldmia sp!, {r3, pc} _0216e8d8: - ldr r0, _0216e8f4 ; =data_027e0e60 + ldr r0, _0216e8f4 ; =gMapManager ldr r0, [r0] ldrb r0, [r0, #9] cmp r0, #0 @@ -1401,7 +1401,7 @@ _0216e8d8: ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov24_0216e8bc -_0216e8f4: .word data_027e0e60 +_0216e8f4: .word gMapManager .global func_ov24_0216e8f8 arm_func_start func_ov24_0216e8f8 @@ -1692,7 +1692,7 @@ _0216ec38: cmp r1, r0 bne _0216ed20 ldr r0, [r4, #0x48] - ldr r3, _0216eddc ; =data_027e0e60 + ldr r3, _0216eddc ; =gMapManager str r0, [r4, #0x478] ldr r0, [r4, #0x4c] mov r1, #2 @@ -1705,7 +1705,7 @@ _0216ec38: add r0, r0, #0xe00 str r0, [r4, #0x47c] ldr r0, [r3] - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 bne _0216ecf4 mov r0, r4 @@ -1782,7 +1782,7 @@ _0216edcc: .word data_ov24_0217922c _0216edd0: .word data_ov24_0217a00c _0216edd4: .word data_ov24_0217a010 _0216edd8: .word func_ov24_0216e960 -_0216eddc: .word data_027e0e60 +_0216eddc: .word gMapManager .global func_ov24_0216ede0 arm_func_start func_ov24_0216ede0 @@ -1874,19 +1874,19 @@ _0216eee4: bne _0216ef1c mov r0, #0 strb r0, [r5, #0x487] - ldr r0, _0216ef28 ; =data_027e0e60 + ldr r0, _0216ef28 ; =gMapManager ldrb r1, [r5, #0x2a] ldr r0, [r0] mov r2, #3 mov r3, #1 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii _0216ef1c: mov r0, r4 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov24_0216ee88 _0216ef24: .word 0x4d55544f -_0216ef28: .word data_027e0e60 +_0216ef28: .word gMapManager .global func_ov24_0216ef2c arm_func_start func_ov24_0216ef2c @@ -2606,7 +2606,7 @@ func_ov24_0216f79c: ; 0x0216f79c ldr ip, [ip, #0x10] add r1, sp, #8 blx ip - ldr r0, _0216f888 ; =data_027e0e60 + ldr r0, _0216f888 ; =gMapManager ldr r1, [r0] ldrb r1, [r1, #9] strb r1, [r4, #0x60] @@ -2632,7 +2632,7 @@ _0216f86c: .align 2, 0 arm_func_end func_ov24_0216f79c _0216f884: .word 0x00001333 -_0216f888: .word data_027e0e60 +_0216f888: .word gMapManager .global func_ov24_0216f88c arm_func_start func_ov24_0216f88c @@ -2662,7 +2662,7 @@ func_ov24_0216f88c: ; 0x0216f88c str r1, [r4, #0x70] ldrsh ip, [r4, #0x74] mov r2, #0 - ldr r1, _0216f9b0 ; =data_027e0e60 + ldr r1, _0216f9b0 ; =gMapManager add ip, ip, #0x3e8 strh ip, [r4, #0x74] ldrh ip, [r4, #0x74] @@ -2704,7 +2704,7 @@ _0216f974: ldr r3, [r3, #0x80] blx r3 _0216f990: - ldr r0, _0216f9b0 ; =data_027e0e60 + ldr r0, _0216f9b0 ; =gMapManager ldr r0, [r0] ldrb r0, [r0, #9] strb r0, [r4, #0x60] @@ -2714,7 +2714,7 @@ _0216f990: _0216f9a4: .word 0x00001555 _0216f9a8: .word data_02050f54 _0216f9ac: .word 0x00000333 -_0216f9b0: .word data_027e0e60 +_0216f9b0: .word gMapManager .global func_ov24_0216f9b4 arm_func_start func_ov24_0216f9b4 @@ -2830,13 +2830,13 @@ func_ov24_0216fa3c: ; 0x0216fa3c cmp r0, #0 ldrneh r1, [r4, #0x24] strneb r1, [r0, #0x159] - ldr r0, _0216fbd0 ; =data_027e0e60 + ldr r0, _0216fbd0 ; =gMapManager ldr r1, [r0] ldrb r0, [r1, #9] cmp r0, #0 moveq r2, #1 movne r2, #0 - ldr r0, _0216fbd0 ; =data_027e0e60 + ldr r0, _0216fbd0 ; =gMapManager strb r2, [r1, #9] ldr r0, [r0] ldrb r0, [r0, #9] @@ -2867,7 +2867,7 @@ _0216fbc0: .word data_027e0fc8 _0216fbc4: .word gAdventureFlags _0216fbc8: .word data_027e0fe4 _0216fbcc: .word 0x574c4354 -_0216fbd0: .word data_027e0e60 +_0216fbd0: .word gMapManager .global func_ov24_0216fbd4 arm_func_start func_ov24_0216fbd4 @@ -5251,7 +5251,7 @@ _02171950: _02171994: ldrh r1, [r4, #0x22] ldr r2, [r4, #0x48] - ldr r0, _02171e54 ; =data_027e0e60 + ldr r0, _02171e54 ; =gMapManager add r6, r2, r1, lsl #12 str r6, [sp, #0x14] ldrh r1, [r4, #0x24] @@ -5265,7 +5265,7 @@ _02171994: str r6, [sp, #8] str r3, [sp, #0xc] str r5, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] add r1, sp, #0x14 mov r0, r4 @@ -5579,7 +5579,7 @@ _02171e40: _02171e48: .word data_027e0fe4 _02171e4c: .word data_027e0e58 _02171e50: .word 0x000001b3 -_02171e54: .word data_027e0e60 +_02171e54: .word gMapManager _02171e58: .word data_027e0764 _02171e5c: .word data_027e0ffc _02171e60: .word 0x0000027d @@ -8619,7 +8619,7 @@ _021745e8: _02174630: ldrh r1, [r4, #0x22] ldr r2, [r4, #0x48] - ldr r0, _02174bb4 ; =data_027e0e60 + ldr r0, _02174bb4 ; =gMapManager add r6, r2, r1, lsl #12 str r6, [sp, #0x14] ldrh r1, [r4, #0x24] @@ -8633,7 +8633,7 @@ _02174630: str r6, [sp, #8] str r3, [sp, #0xc] str r5, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] add r1, sp, #0x14 mov r0, r4 @@ -8996,7 +8996,7 @@ _02174ba0: _02174ba8: .word data_027e0fe4 _02174bac: .word data_027e0e58 _02174bb0: .word 0x000001b3 -_02174bb4: .word data_027e0e60 +_02174bb4: .word gMapManager _02174bb8: .word data_027e0764 _02174bbc: .word data_027e0ffc _02174bc0: .word 0x0000027d @@ -9504,9 +9504,9 @@ _021752ac: ; jump table b _021752c4 ; case 4 b _021752c4 ; case 5 _021752c4: - ldr r0, _02175eb8 ; =data_027e0e60 + ldr r0, _02175eb8 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208412c + bl _ZN10MapManager18func_ov00_0208412cEv ldr r1, [r4, #0x4c] cmp r1, r0 bge _0217537c @@ -9514,9 +9514,9 @@ _021752c4: mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} _021752e8: - ldr r0, _02175eb8 ; =data_027e0e60 + ldr r0, _02175eb8 ; =gMapManager ldr r0, [r0] - bl func_ov00_0208412c + bl _ZN10MapManager18func_ov00_0208412cEv ldr r1, [r4, #0x4c] cmp r1, r0 bge _0217537c @@ -9829,7 +9829,7 @@ _021756e8: mov r0, #4 str r0, [sp, #8] str r2, [sp, #0xc] - ldr r0, _02175eb8 ; =data_027e0e60 + ldr r0, _02175eb8 ; =gMapManager str r2, [sp, #0x10] add r3, r4, #0x2a8 add r2, r3, #0x400 @@ -10327,7 +10327,7 @@ _02175eac: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov24_02175290 -_02175eb8: .word data_027e0e60 +_02175eb8: .word gMapManager _02175ebc: .word data_027e0fe4 _02175ec0: .word data_ov24_021792e4 _02175ec4: .word 0x00000b33 @@ -13357,15 +13357,15 @@ _021783f8: str r0, [sp, #0x64] b _0217852c _02178504: - ldr r0, _0217869c ; =data_027e0e60 + ldr r0, _0217869c ; =gMapManager add r1, sp, #0x5c ldr r0, [r0] - bl func_ov00_0208344c - ldr r0, _0217869c ; =data_027e0e60 + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p + ldr r0, _0217869c ; =gMapManager add r1, sp, #0x5c ldr r0, [r0] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x60] _0217852c: ldr r0, _02178694 ; =data_027e0f64 @@ -13463,7 +13463,7 @@ _0217866c: _02178690: .word data_027e0fe4 _02178694: .word data_027e0f64 _02178698: .word 0x57534253 -_0217869c: .word data_027e0e60 +_0217869c: .word gMapManager .global func_ov24_021786a0 arm_func_start func_ov24_021786a0 @@ -14062,7 +14062,7 @@ func_ov24_02178e20: ; 0x02178e20 add r0, r7, #2 cmp r7, r0 bge _02178ee8 - ldr r4, _02179010 ; =data_027e0e60 + ldr r4, _02179010 ; =gMapManager add r5, sp, #2 mov r11, #1 _02178e4c: @@ -14079,24 +14079,24 @@ _02178e60: mov r2, r11 strb r6, [sp, #2] strb r8, [sp, #3] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r7 mov r2, r8 mov r3, #9 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci b _02178ec0 _02178e98: add r1, sp, #0 mov r2, #0 strb r6, [sp] strb r8, [sp, #1] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r7 mov r2, r8 mov r3, #0x35 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci _02178ec0: ldrb r0, [r10, #0x15] add r8, r8, #1 @@ -14187,7 +14187,7 @@ _02178fa4: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov24_02178e20 -_02179010: .word data_027e0e60 +_02179010: .word gMapManager _02179014: .word data_027e0f6c .global func_ov24_02179018 diff --git a/asm/ov25.inc b/asm/ov25.inc index 958be3e3..73781d8b 100644 --- a/asm/ov25.inc +++ b/asm/ov25.inc @@ -1,5 +1,16 @@ #pragma once .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager18func_ov00_020836bcEjPi +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p +.extern _ZN10MapManager18func_ov00_02084164Ev +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084be0Eii .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager13FindActorByIdEj @@ -97,7 +108,7 @@ .extern data_027e0d38 .extern data_027e0db0 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -173,17 +184,6 @@ .extern func_ov00_0207c444 .extern func_ov00_02081f4c .extern func_ov00_02081f50 -.extern func_ov00_0208344c -.extern func_ov00_020836bc -.extern func_ov00_02083770 -.extern func_ov00_020838e8 -.extern func_ov00_02083a1c -.extern func_ov00_02083ee0 -.extern func_ov00_02083f44 -.extern func_ov00_020840c4 -.extern func_ov00_02084164 -.extern func_ov00_02084b38 -.extern func_ov00_02084be0 .extern func_ov00_020875f8 .extern func_ov00_02087d34 .extern func_ov00_020888e8 diff --git a/asm/ov25.s b/asm/ov25.s index 91cc9863..89154597 100644 --- a/asm/ov25.s +++ b/asm/ov25.s @@ -395,7 +395,7 @@ _0216db80: ldrh r2, [r4, #0x24] ldrh r1, [r4, #0x26] ldr r3, _0216dccc ; =data_027e0f94 - ldr r0, _0216dcd0 ; =data_027e0e60 + ldr r0, _0216dcd0 ; =gMapManager strh r1, [sp, #0x22] strh r2, [sp, #0x20] ldrh r6, [r4, #0x28] @@ -437,7 +437,7 @@ _0216db80: str r3, [sp, #0x18] ldr r3, [r4, #0x1c] str r3, [sp, #0x1c] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p str r0, [r4, #0x18] ldr r0, _0216dcd4 ; =data_027e0fac add r2, r4, #0x14 @@ -456,7 +456,7 @@ _0216db80: arm_func_end func_ov25_0216daa4 _0216dcc8: .word data_027e0fe8 _0216dccc: .word data_027e0f94 -_0216dcd0: .word data_027e0e60 +_0216dcd0: .word gMapManager _0216dcd4: .word data_027e0fac .global func_ov25_0216dcd8 @@ -611,11 +611,11 @@ _0216de80: strh r2, [r0, #0x22] str ip, [r4, #0x674] str r1, [r4, #0x678] - ldr r0, _0216dff0 ; =data_027e0e60 + ldr r0, _0216dff0 ; =gMapManager add r2, sp, #0 ldr r0, [r0] mov r1, #1 - bl func_ov00_020836bc + bl _ZN10MapManager18func_ov00_020836bcEjPi ldr r1, [sp] add r0, r4, #0x3a4 str r1, [r4, #0x620] @@ -687,7 +687,7 @@ _0216dfd0: arm_func_end func_ov25_0216de38 _0216dfe8: .word gAdventureFlags _0216dfec: .word data_ov25_02179be0 -_0216dff0: .word data_027e0e60 +_0216dff0: .word gMapManager .global func_ov25_0216dff4 arm_func_start func_ov25_0216dff4 @@ -4558,13 +4558,13 @@ _02171504: .word 0x43425333 func_ov25_02171508: ; 0x02171508 stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x38 - ldr r2, _021715dc ; =data_027e0e60 + ldr r2, _021715dc ; =gMapManager mov r5, r0 ldr r0, [r2] mov r4, r1 mov r1, #1 mov r2, #3 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 addne sp, sp, #0x38 movne r0, #0 @@ -4611,7 +4611,7 @@ func_ov25_02171508: ; 0x02171508 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov25_02171508 -_021715dc: .word data_027e0e60 +_021715dc: .word gMapManager _021715e0: .word data_027e0fe8 _021715e4: .word 0x4e4b4559 _021715e8: .word data_027e0fe4 @@ -7971,7 +7971,7 @@ _021741f4: cmpne r0, #0xa bne _02174248 ldr r1, [r4, #0x48] - ldr r0, _0217507c ; =data_027e0e60 + ldr r0, _0217507c ; =gMapManager str r1, [sp, #0xe8] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -7980,7 +7980,7 @@ _021741f4: add r2, sp, #0xe8 mov r1, #0xd str r3, [sp, #0xf0] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 beq _02174248 mov r0, r4 @@ -8057,10 +8057,10 @@ _02174328: strb r2, [sp, #0x10] strb r2, [sp, #0x11] bl func_ov00_020c5374 - ldr r0, _0217507c ; =data_027e0e60 + ldr r0, _0217507c ; =gMapManager add r1, sp, #0x10 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 mov r0, r4 bne _02174368 @@ -8078,10 +8078,10 @@ _02174374: strb r2, [sp, #0xe] strb r2, [sp, #0xf] bl func_ov00_020c5374 - ldr r0, _0217507c ; =data_027e0e60 + ldr r0, _0217507c ; =gMapManager add r1, sp, #0xe ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _021743d4 ldr r5, [r4, #0x138] @@ -8239,7 +8239,7 @@ _021745a8: bl func_ov25_021732fc _021745e0: ldr r1, _02175088 ; =data_027e0f94 - ldr r0, _0217507c ; =data_027e0e60 + ldr r0, _0217507c ; =gMapManager ldr r3, [r1] ldr r2, [r1, #4] str r3, [sp, #0xdc] @@ -8306,7 +8306,7 @@ _021746a8: mov r2, #0x7b bl func_ov25_021732fc ldr r1, _02175088 ; =data_027e0f94 - ldr r0, _0217507c ; =data_027e0e60 + ldr r0, _0217507c ; =gMapManager ldr r3, [r1] ldr r2, [r1, #4] str r3, [sp, #0xc4] @@ -8398,7 +8398,7 @@ _0217480c: mov r0, r4 bl func_ov25_02173250 ldr r1, _02175088 ; =data_027e0f94 - ldr r0, _0217507c ; =data_027e0e60 + ldr r0, _0217507c ; =gMapManager ldr r3, [r1] ldr r2, [r1, #4] str r3, [sp, #0xac] @@ -8857,7 +8857,7 @@ _02174ee8: ldrh r0, [r4, #0x20] cmp r0, #3 bne _02174f80 - ldr r0, _0217507c ; =data_027e0e60 + ldr r0, _0217507c ; =gMapManager mov r6, #0 sub r3, r6, #2 mov r7, #0x47 @@ -8875,7 +8875,7 @@ _02174ee8: strb r6, [sp, #0x137] strb r6, [sp, #0x138] strb r6, [sp, #0x139] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _021750b4 ; =data_027e0d38 mov r3, #0x17 ldr r0, [r0] @@ -8953,7 +8953,7 @@ _0217503c: arm_func_end func_ov25_02174100 _02175074: .word gAdventureFlags _02175078: .word 0x00000152 -_0217507c: .word data_027e0e60 +_0217507c: .word gMapManager _02175080: .word 0xb60b60b7 _02175084: .word 0x00000171 _02175088: .word data_027e0f94 @@ -9107,10 +9107,10 @@ _02175278: strb r2, [sp, #0xc] strb r2, [sp, #0xd] bl func_ov00_020c5374 - ldr r0, _0217507c ; =data_027e0e60 + ldr r0, _0217507c ; =gMapManager add r1, sp, #0xc ldr r0, [r0] - bl func_ov00_02084164 + bl _ZN10MapManager18func_ov00_02084164Ev cmp r0, #0 addeq sp, sp, #0x340 ldmeqia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} @@ -9866,11 +9866,11 @@ func_ov25_02175c54: ; 0x02175c54 ldrsh r1, [r0, #0x78] add r0, sp, #0x18 bl func_ov00_020c5a5c - ldr r0, _02175d18 ; =data_027e0e60 + ldr r0, _02175d18 ; =gMapManager add r2, sp, #0 ldr r0, [r0] mov r1, #1 - bl func_ov00_020836bc + bl _ZN10MapManager18func_ov00_020836bcEjPi add r4, r11, #0x100 ldrsh r0, [r4, #0x78] ldr r7, [sp] @@ -9911,7 +9911,7 @@ _02175cb0: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov25_02175c54 -_02175d18: .word data_027e0e60 +_02175d18: .word gMapManager .global func_ov25_02175d1c arm_func_start func_ov25_02175d1c @@ -10444,12 +10444,12 @@ _021763e4: str r0, [r4, #0x1cc] cmp r0, #0x384 blt _0217641c - ldr r0, _02176954 ; =data_027e0e60 + ldr r0, _02176954 ; =gMapManager mov r2, #1 ldr r0, [r0] mov r3, r2 mov r1, #5 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii _0217641c: ldr r0, [r4, #0x130] cmp r0, #0xd @@ -10822,7 +10822,7 @@ _0217694c: ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} .align 2, 0 arm_func_end func_ov25_021763a4 -_02176954: .word data_027e0e60 +_02176954: .word gMapManager _02176958: .word gAdventureFlags _0217695c: .word data_027e0c68 _02176960: .word data_027e0fe4 @@ -11624,11 +11624,11 @@ func_ov25_021772ec: ; 0x021772ec addne sp, sp, #8 movne r0, #0 ldmneia sp!, {r4, pc} - ldr r1, _02177368 ; =data_027e0e60 + ldr r1, _02177368 ; =gMapManager add r0, sp, #4 ldr r1, [r1] add r2, r2, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r3, [sp, #4] ldrb r1, [r4, #8] ldrb r2, [sp, #5] @@ -11647,7 +11647,7 @@ func_ov25_021772ec: ; 0x021772ec ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov25_021772ec -_02177368: .word data_027e0e60 +_02177368: .word gMapManager .global func_ov25_0217736c arm_func_start func_ov25_0217736c @@ -11925,7 +11925,7 @@ _021775e8: ldr r0, [r0] bl func_ov00_020c47cc ldr r1, [r0, #4] - ldr r3, _021777d8 ; =data_027e0e60 + ldr r3, _021777d8 ; =gMapManager str r1, [r4, #0x48] ldr r2, [r0, #8] add r1, sp, #0 @@ -11940,7 +11940,7 @@ _021775e8: str r3, [sp, #4] ldr r3, [r4, #0x50] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x800 str r0, [r4, #0x4c] _021776c0: @@ -12023,7 +12023,7 @@ _021777c8: arm_func_end func_ov25_021775a4 _021777d0: .word data_ov00_020e8398 _021777d4: .word data_027e0ff0 -_021777d8: .word data_027e0e60 +_021777d8: .word gMapManager _021777dc: .word data_027e0ffc _021777e0: .word 0x00000251 @@ -12859,7 +12859,7 @@ _0217831c: add r3, sp, #0xc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02178500 ; =data_027e0e60 + ldr r0, _02178500 ; =gMapManager ldr lr, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] @@ -12869,7 +12869,7 @@ _0217831c: str lr, [sp] str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x10] ldr r0, [r5, #0x178] cmp r0, #0 @@ -12986,7 +12986,7 @@ _021784e8: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov25_02178218 -_02178500: .word data_027e0e60 +_02178500: .word gMapManager _02178504: .word gItemManager _02178508: .word 0x66666667 @@ -13313,7 +13313,7 @@ func_ov25_021788a4: ; 0x021788a4 str r0, [r4, #0x84] str r0, [r4, #0x88] ldr r1, [r4, #0x7c] - ldr r0, _021789b8 ; =data_027e0e60 + ldr r0, _021789b8 ; =gMapManager str r1, [r4, #0x8c] ldr r2, [r4, #0x80] add r1, sp, #0xc @@ -13323,7 +13323,7 @@ func_ov25_021788a4: ; 0x021788a4 ldr r2, [r4, #0x88] str r2, [r4, #0x98] ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldr r2, [sp, #0x14] ldr r1, [sp, #0x10] ldr r0, [sp, #0xc] @@ -13379,7 +13379,7 @@ _021789ac: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov25_021788a4 -_021789b8: .word data_027e0e60 +_021789b8: .word gMapManager _021789bc: .word data_027e0f68 .global func_ov25_021789c0 diff --git a/asm/ov26.inc b/asm/ov26.inc index 4e19a922..4d0b53c4 100644 --- a/asm/ov26.inc +++ b/asm/ov26.inc @@ -2,6 +2,23 @@ .extern Approach_thunk .extern Divide .extern FastDivide +.extern PlaySoundEffect +.extern _ZN10MapManager16MapData_vfunc_54Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_b4Ev +.extern _ZN10MapManager18func_ov00_020823d4Ei +.extern _ZN10MapManager18func_ov00_020823e4Ei +.extern _ZN10MapManager18func_ov00_02082614Eii +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_020826a0Eiii +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083e34Ecci +.extern _ZN10MapManager18func_ov00_02084164Ev +.extern _ZN10MapManager18func_ov00_02084740Ev +.extern _ZN10MapManager18func_ov00_02084a50Ev +.extern _ZN10MapManager18func_ov00_02084cb0Ei +.extern _ZN10MapManager18func_ov00_02084cc8Ei .extern _ZN10PlayerBase10SetVisibleEb .extern _ZN11ItemManager7AddItemEi .extern _ZN12ActorManager13FindActorByIdEj @@ -69,6 +86,8 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN9ActorTypeC1EjPFP5ActorvEPv +.extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern _ZNK11ItemManager18IsTreasureSalvagedEj @@ -94,7 +113,6 @@ .extern data_027e0d3c .extern data_027e0d78 .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -104,7 +122,6 @@ .extern data_027e0f94 .extern data_027e0fa0 .extern data_027e0fac -.extern data_027e0fbc .extern data_027e0fc8 .extern data_027e0fd4 .extern data_027e0fe0 @@ -196,8 +213,6 @@ .extern func_020352d8 .extern func_02035370 .extern func_020370d0 -.extern _ZN9ActorTypeC1EjPFP5ActorvEPv -.extern _ZN9ActorTypeD1Ev .extern func_0203eba8 .extern func_0203ebc8 .extern func_0203fe60 @@ -218,22 +233,6 @@ .extern func_ov00_0207c1f8 .extern func_ov00_0207c444 .extern func_ov00_02081f4c -.extern func_ov00_020823d4 -.extern func_ov00_020823e4 -.extern func_ov00_020823f4 -.extern func_ov00_02082614 -.extern func_ov00_02082680 -.extern func_ov00_020826a0 -.extern func_ov00_020836dc -.extern func_ov00_02083a1c -.extern func_ov00_02083e34 -.extern func_ov00_02083ee0 -.extern func_ov00_02084088 -.extern func_ov00_02084164 -.extern func_ov00_02084740 -.extern func_ov00_02084a50 -.extern func_ov00_02084cb0 -.extern func_ov00_02084cc8 .extern func_ov00_020875f8 .extern func_ov00_02087d34 .extern func_ov00_02087e8c @@ -406,7 +405,6 @@ .extern func_ov00_020d70a4 .extern func_ov00_020d716c .extern func_ov00_020d7180 -.extern func_ov00_020d73bc .extern func_ov00_020d73f0 .extern func_ov00_020d77e4 .extern func_ov00_020d7c8c @@ -536,6 +534,8 @@ .extern func_ov30_02183f84 .extern func_ov30_02183fd4 .extern gAdventureFlags +.extern gHealthManager .extern gItemManager +.extern gMapManager .extern strcmp .extern strncpy diff --git a/asm/ov26.s b/asm/ov26.s index 49368125..49805e0d 100644 --- a/asm/ov26.s +++ b/asm/ov26.s @@ -1036,16 +1036,16 @@ func_ov26_0216e11c: ; 0x0216e11c ldrb r2, [r9, #0x15] cmp r0, #0 sub r1, r0, #1 - ldr r0, _0216e320 ; =data_027e0e60 + ldr r0, _0216e320 ; =gMapManager moveq r1, #5 ldr r0, [r0] - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r9, #0x1c] ldrb r7, [r9, #0x14] add r0, r7, #5 cmp r7, r0 bge _0216e1e4 - ldr r10, _0216e320 ; =data_027e0e60 + ldr r10, _0216e320 ; =gMapManager add r5, sp, #4 mov r4, #1 _0216e190: @@ -1060,7 +1060,7 @@ _0216e1a4: mov r2, r4 strb r6, [sp, #4] strb r8, [sp, #5] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrb r0, [r9, #0x15] add r8, r8, #1 add r0, r0, #2 @@ -1155,7 +1155,7 @@ _0216e308: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov26_0216e11c -_0216e320: .word data_027e0e60 +_0216e320: .word gMapManager _0216e324: .word data_027e0f6c .global func_ov26_0216e328 @@ -1707,7 +1707,7 @@ func_ov26_0216e8b8: ; 0x0216e8b8 ldrb r0, [r0] cmp r0, #0 beq _0216e98e - ldr r0, _0216e9c0 ; =data_027e0fbc + ldr r0, _0216e9c0 ; =gHealthManager ldr r0, [r0] ldrh r1, [r0, #0xa] mov r0, #2 @@ -1762,7 +1762,7 @@ _0216e9b0: thumb_func_end func_ov26_0216e8b8 _0216e9b8: .word gItemManager _0216e9bc: .word data_027e0d38 -_0216e9c0: .word data_027e0fbc +_0216e9c0: .word gHealthManager .global func_ov26_0216e9c4 thumb_func_start func_ov26_0216e9c4 @@ -1937,9 +1937,9 @@ _0216ebe8: _0216ebec: cmp r0, #0 bne _0216ec8c - ldr r0, _0216ec9c ; =data_027e0e60 + ldr r0, _0216ec9c ; =gMapManager ldr r0, [r0] - bl func_ov00_02084a50 + bl _ZN10MapManager18func_ov00_02084a50Ev cmp r0, #0 ldreq r0, _0216eca0 ; =data_027e0c68 ldreqb r1, [r0, #4] @@ -1983,7 +1983,7 @@ _0216ec94: ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov26_0216ebc0 -_0216ec9c: .word data_027e0e60 +_0216ec9c: .word gMapManager _0216eca0: .word data_027e0c68 _0216eca4: .word gAdventureFlags _0216eca8: .word data_027e071c @@ -2101,7 +2101,7 @@ _0216edf8: mov r1, #0x3c add r0, r0, #0x3b bl func_01ff9b4c - ldr r1, _0216ee38 ; =data_027e0fbc + ldr r1, _0216ee38 ; =gHealthManager mov r2, #1 ldr r3, [r1] mov r0, r0, lsl #0x10 @@ -2115,7 +2115,7 @@ _0216edf8: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov26_0216edb4 -_0216ee38: .word data_027e0fbc +_0216ee38: .word gHealthManager .global func_ov26_0216ee3c arm_func_start func_ov26_0216ee3c @@ -2278,9 +2278,9 @@ _0216f024: mov r6, #1 cmpne r0, #2 beq _0216f0d4 - ldr r0, _0216f200 ; =data_027e0e60 + ldr r0, _0216f200 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084a50 + bl _ZN10MapManager18func_ov00_02084a50Ev cmp r0, #0 bne _0216f0d4 ldr r0, [r10, #0xb8] @@ -2385,7 +2385,7 @@ _0216f0d4: arm_func_end func_ov26_0216efb4 _0216f1f8: .word data_027e0c38 _0216f1fc: .word data_027e0618 -_0216f200: .word data_027e0e60 +_0216f200: .word gMapManager _0216f204: .word data_027e0fd4 _0216f208: .word data_ov26_0217933c @@ -2491,9 +2491,9 @@ _0216f368: bne _0216f38c cmp r0, #0x1e ble _0216f38c - ldr r0, _0216f39c ; =data_027e0e60 + ldr r0, _0216f39c ; =gMapManager ldr r0, [r0] - bl func_ov00_02084a50 + bl _ZN10MapManager18func_ov00_02084a50Ev cmp r0, #0 beq _0216f394 _0216f38c: @@ -2504,7 +2504,7 @@ _0216f394: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov26_0216f334 -_0216f39c: .word data_027e0e60 +_0216f39c: .word gMapManager .global func_ov26_0216f3a0 arm_func_start func_ov26_0216f3a0 @@ -2830,7 +2830,7 @@ func_ov26_0216f7c4: ; 0x0216f7c4 sub sp, sp, #0xc mov r4, r0 ldr r1, [r4, #0x14] - ldr r0, _0216f820 ; =data_027e0e60 + ldr r0, _0216f820 ; =gMapManager str r1, [r4, #0x48] ldr r2, [r4, #0x18] add r1, sp, #0 @@ -2845,13 +2845,13 @@ func_ov26_0216f7c4: ; 0x0216f7c4 str r3, [sp, #4] ldr r3, [r4, #0x50] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] add sp, sp, #0xc ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov26_0216f7c4 -_0216f820: .word data_027e0e60 +_0216f820: .word gMapManager .global func_ov26_0216f824 arm_func_start func_ov26_0216f824 @@ -2866,7 +2866,7 @@ func_ov26_0216f828: ; 0x0216f828 sub sp, sp, #0xc mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _0216f8b4 ; =data_027e0e60 + ldr r0, _0216f8b4 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -2875,7 +2875,7 @@ func_ov26_0216f828: ; 0x0216f828 add r1, sp, #0 str r2, [sp, #8] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xcd ldr r1, [r4, #0x4c] add r0, r0, #0x400 @@ -2900,7 +2900,7 @@ _0216f88c: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov26_0216f828 -_0216f8b4: .word data_027e0e60 +_0216f8b4: .word gMapManager .global func_ov26_0216f8b8 arm_func_start func_ov26_0216f8b8 @@ -2909,7 +2909,7 @@ func_ov26_0216f8b8: ; 0x0216f8b8 sub sp, sp, #0xc mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _0216f910 ; =data_027e0e60 + ldr r0, _0216f910 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -2918,7 +2918,7 @@ func_ov26_0216f8b8: ; 0x0216f8b8 add r1, sp, #0 str r2, [sp, #8] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xcd ldr r1, [r4, #0x4c] add r0, r0, #0x400 @@ -2929,7 +2929,7 @@ func_ov26_0216f8b8: ; 0x0216f8b8 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov26_0216f8b8 -_0216f910: .word data_027e0e60 +_0216f910: .word gMapManager .global func_ov26_0216f914 arm_func_start func_ov26_0216f914 @@ -2946,7 +2946,7 @@ func_ov26_0216f920: ; 0x0216f920 sub sp, sp, #0x24 mov r4, r0 ldr lr, [r4, #0x48] - ldr r0, _0216f9f4 ; =data_027e0e60 + ldr r0, _0216f9f4 ; =gMapManager str lr, [sp, #0x18] ldr ip, [r4, #0x4c] ldr r0, [r0] @@ -2958,7 +2958,7 @@ func_ov26_0216f920: ; 0x0216f920 str lr, [sp] str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xcd add r3, r0, #0x400 add r0, sp, #0x18 @@ -2998,7 +2998,7 @@ _0216f9d8: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov26_0216f920 -_0216f9f4: .word data_027e0e60 +_0216f9f4: .word gMapManager .global func_ov26_0216f9f8 arm_func_start func_ov26_0216f9f8 @@ -3059,10 +3059,10 @@ _0216fa94: strb r2, [sp] strb r2, [sp, #1] bl func_ov00_020c5374 - ldr r0, _0216fb18 ; =data_027e0e60 + ldr r0, _0216fb18 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02084164 + bl _ZN10MapManager18func_ov00_02084164Ev cmp r0, #0 addeq sp, sp, #0x1c ldmeqia sp!, {r3, r4, pc} @@ -3083,7 +3083,7 @@ _0216fa94: arm_func_end func_ov26_0216fa04 _0216fb10: .word data_027e0f94 _0216fb14: .word 0x000004cd -_0216fb18: .word data_027e0e60 +_0216fb18: .word gMapManager .global func_ov26_0216fb1c arm_func_start func_ov26_0216fb1c @@ -3234,10 +3234,10 @@ _0216fc2c: add r0, r5, #0x48 add r1, sp, #0 bl func_ov00_020c5374 - ldr r0, _0216fd94 ; =data_027e0e60 + ldr r0, _0216fd94 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02084164 + bl _ZN10MapManager18func_ov00_02084164Ev cmp r0, #0 addeq sp, sp, #0x34 ldmeqia sp!, {r3, r4, r5, r6, pc} @@ -3261,7 +3261,7 @@ _0216fd84: .word data_027e0764 _0216fd88: .word 0x00008001 _0216fd8c: .word data_02050f54 _0216fd90: .word data_027e0d0c -_0216fd94: .word data_027e0e60 +_0216fd94: .word gMapManager .global func_ov26_0216fd98 arm_func_start func_ov26_0216fd98 @@ -3295,7 +3295,7 @@ func_ov26_0216fdb0: ; 0x0216fdb0 str r3, [sp, #0x10] bl func_0202da8c ldr r1, [sp, #0xc] - ldr r0, _0216fe84 ; =data_027e0e60 + ldr r0, _0216fe84 ; =gMapManager str r1, [r4, #0x60] ldr r2, [sp, #0x10] add r1, sp, #0 @@ -3310,7 +3310,7 @@ func_ov26_0216fdb0: ; 0x0216fdb0 ldr r0, [r0] str ip, [sp] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x9a add r1, r0, #0x1100 str r1, [sp, #0x1c] @@ -3333,7 +3333,7 @@ _0216fe68: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov26_0216fdb0 -_0216fe84: .word data_027e0e60 +_0216fe84: .word gMapManager .global func_ov26_0216fe88 arm_func_start func_ov26_0216fe88 @@ -3405,7 +3405,7 @@ func_ov26_0216ff14: ; 0x0216ff14 mov r0, #0xff strh r0, [r4, #0x9c] ldr r1, [r4, #0x48] - ldr r0, _0216ff68 ; =data_027e0e60 + ldr r0, _0216ff68 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -3414,7 +3414,7 @@ func_ov26_0216ff14: ; 0x0216ff14 add r1, sp, #0 mov r2, #1 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xcd add r0, r0, #0x400 str r0, [r4, #0x4cc] @@ -3422,7 +3422,7 @@ func_ov26_0216ff14: ; 0x0216ff14 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov26_0216ff14 -_0216ff68: .word data_027e0e60 +_0216ff68: .word gMapManager .global func_ov26_0216ff6c arm_func_start func_ov26_0216ff6c @@ -3456,7 +3456,7 @@ func_ov26_0216ffb8: ; 0x0216ffb8 sub sp, sp, #0xc mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _02170010 ; =data_027e0e60 + ldr r0, _02170010 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -3465,7 +3465,7 @@ func_ov26_0216ffb8: ; 0x0216ffb8 add r1, sp, #0 str r2, [sp, #8] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xcd ldr r1, [r4, #0x4c] add r0, r0, #0x400 @@ -3476,7 +3476,7 @@ func_ov26_0216ffb8: ; 0x0216ffb8 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov26_0216ffb8 -_02170010: .word data_027e0e60 +_02170010: .word gMapManager .global func_ov26_02170014 arm_func_start func_ov26_02170014 @@ -3543,7 +3543,7 @@ func_ov26_02170088: ; 0x02170088 mov r1, #0x148 bl func_0202da8c ldr r1, [r4, #0x48] - ldr r0, _02170130 ; =data_027e0e60 + ldr r0, _02170130 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -3552,7 +3552,7 @@ func_ov26_02170088: ; 0x02170088 add r1, sp, #0 str r2, [sp, #8] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xcd ldr r1, [r4, #0x4c] add r0, r0, #0x400 @@ -3574,7 +3574,7 @@ _02170114: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov26_02170088 -_02170130: .word data_027e0e60 +_02170130: .word gMapManager .global func_ov26_02170134 arm_func_start func_ov26_02170134 @@ -3653,10 +3653,10 @@ func_ov26_02170194: ; 0x02170194 add r1, sp, #0 add r0, r4, #0x48 bl func_ov00_020c5374 - ldr r0, _02170260 ; =data_027e0e60 + ldr r0, _02170260 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02084164 + bl _ZN10MapManager18func_ov00_02084164Ev cmp r0, #0 addeq sp, sp, #0x10 ldmeqia sp!, {r4, pc} @@ -3677,7 +3677,7 @@ func_ov26_02170194: ; 0x02170194 arm_func_end func_ov26_02170194 _02170258: .word data_027e0f94 _0217025c: .word 0x000004cd -_02170260: .word data_027e0e60 +_02170260: .word gMapManager .global func_ov26_02170264 arm_func_start func_ov26_02170264 @@ -3869,10 +3869,10 @@ func_ov26_02170320: ; 0x02170320 strb r2, [sp, #4] strb r2, [sp, #5] bl func_ov00_020c5374 - ldr r0, _0217058c ; =data_027e0e60 + ldr r0, _0217058c ; =gMapManager add r1, sp, #4 ldr r0, [r0] - bl func_ov00_02084164 + bl _ZN10MapManager18func_ov00_02084164Ev cmp r0, #0 addeq sp, sp, #0x14 ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} @@ -3897,7 +3897,7 @@ _0217057c: .word data_02050f54 _02170580: .word 0x0000019a _02170584: .word data_027e0f94 _02170588: .word data_027e0fa0 -_0217058c: .word data_027e0e60 +_0217058c: .word gMapManager .global func_ov26_02170590 arm_func_start func_ov26_02170590 @@ -4020,7 +4020,7 @@ func_ov26_02170704: ; 0x02170704 add r3, sp, #0xc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0217078c ; =data_027e0e60 + ldr r0, _0217078c ; =gMapManager ldr lr, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] @@ -4030,7 +4030,7 @@ func_ov26_02170704: ; 0x02170704 str lr, [sp] str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x10] ldr r1, _02170790 ; =data_027e0f94 add r0, r4, #0x14 @@ -4050,7 +4050,7 @@ _02170780: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov26_02170704 -_0217078c: .word data_027e0e60 +_0217078c: .word gMapManager _02170790: .word data_027e0f94 .global func_ov26_02170794 @@ -5722,16 +5722,16 @@ func_ov26_02171e4c: ; 0x02171e4c cmp r0, #0 movne r0, #1 ldmneia sp!, {r4, pc} - ldr r0, _02171e94 ; =data_027e0e60 + ldr r0, _02171e94 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov26_02171e4c _02171e8c: .word gAdventureFlags _02171e90: .word data_ov26_0217944c -_02171e94: .word data_027e0e60 +_02171e94: .word gMapManager .global func_ov26_02171e98 arm_func_start func_ov26_02171e98 @@ -6146,7 +6146,7 @@ func_ov26_021723d4: ; 0x021723d4 cmp r0, #1 bne _02172454 ldr r0, [r4, #0x18] - ldr r1, _021725a0 ; =data_027e0e60 + ldr r1, _021725a0 ; =gMapManager add r0, r0, #0x3fc add r0, r0, #0x400 str r0, [r4, #0x18] @@ -6157,15 +6157,15 @@ func_ov26_021723d4: ; 0x021723d4 strb r2, [sp, #4] mov r2, #1 strb r3, [sp, #5] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldrb r2, [sp, #4] - ldr r0, _021725a0 ; =data_027e0e60 + ldr r0, _021725a0 ; =gMapManager add r1, sp, #4 add r3, r2, #1 ldr r0, [r0] mov r2, #1 strb r3, [sp, #4] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii _02172454: add ip, r4, #0x18 ldmia ip, {r0, r1, r2} @@ -6231,10 +6231,10 @@ _02172454: mov r3, #6 str ip, [sp] bl func_02018c90 - ldr r0, _021725a0 ; =data_027e0e60 + ldr r0, _021725a0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 mov r2, #1 @@ -6253,7 +6253,7 @@ _0217258c: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov26_021723d4 -_021725a0: .word data_027e0e60 +_021725a0: .word gMapManager _021725a4: .word data_ov26_02179468 _021725a8: .word func_ov26_021728f8 @@ -6396,11 +6396,11 @@ _0217273c: mov r2, #1 bl func_ov00_0208ba08 _02172788: - ldr r0, _021727b0 ; =data_027e0e60 + ldr r0, _021727b0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei _0217279c: mov r0, #1 add sp, sp, #0xb0 @@ -6409,7 +6409,7 @@ _0217279c: arm_func_end func_ov26_02172648 _021727a8: .word gAdventureFlags _021727ac: .word 0xfffff666 -_021727b0: .word data_027e0e60 +_021727b0: .word gMapManager .global func_ov26_021727b4 arm_func_start func_ov26_021727b4 @@ -7919,14 +7919,14 @@ func_ov26_02173b3c: ; 0x02173b3c movne r0, #1 ldmneia sp!, {r4, pc} _02173b64: - ldr r0, _02173b78 ; =data_027e0e60 + ldr r0, _02173b78 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov26_02173b3c -_02173b78: .word data_027e0e60 +_02173b78: .word gMapManager .global func_ov26_02173b7c thumb_func_start func_ov26_02173b7c @@ -8276,7 +8276,7 @@ _02173dac: str r0, [r4, #0x78] ldr r0, _02173de8 ; =data_ov00_020eec68 mov r1, #0x4c - blx func_ov00_020d73bc + blx PlaySoundEffect pop {r3, r4, r5, pc} nop thumb_func_end func_ov26_02173cec @@ -8769,7 +8769,7 @@ _02174196: ldrb r1, [r1] cmp r1, #0 beq _02174204 - ldr r1, _02174250 ; =data_027e0fbc + ldr r1, _02174250 ; =gHealthManager ldr r1, [r1] ldrh r2, [r1, #0xa] mov r1, #2 @@ -8867,7 +8867,7 @@ _0217424e: pop {r3, pc} .align 2, 0 thumb_func_end func_ov26_02174170 -_02174250: .word data_027e0fbc +_02174250: .word gHealthManager _02174254: .word gItemManager .global func_ov26_02174258 @@ -12275,10 +12275,10 @@ func_ov26_02176b44: ; 0x02176b44 mov r2, #4 str r3, [sp, #4] blx ip - ldr r0, _02176cb0 ; =data_027e0e60 + ldr r0, _02176cb0 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 ldr r3, [r0] @@ -12299,7 +12299,7 @@ _02176c94: .align 2, 0 arm_func_end func_ov26_02176b44 _02176cac: .word 0x0000059a -_02176cb0: .word data_027e0e60 +_02176cb0: .word gMapManager .global func_ov26_02176cb4 arm_func_start func_ov26_02176cb4 @@ -12343,11 +12343,11 @@ _02176d0c: mov r0, r4 mov r2, r1 bl func_ov00_0208ba08 - ldr r0, _02176d88 ; =data_027e0e60 + ldr r0, _02176d88 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] mov r2, #1 - bl func_ov00_02084cb0 + bl _ZN10MapManager18func_ov00_02084cb0Ei ldr r1, [r4, #4] mov r0, #1 orr r1, r1, #4 @@ -12362,7 +12362,7 @@ _02176d7c: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov26_02176cb4 -_02176d88: .word data_027e0e60 +_02176d88: .word gMapManager .global func_ov26_02176d8c arm_func_start func_ov26_02176d8c @@ -12541,31 +12541,31 @@ func_ov26_02176fc8: ; 0x02176fc8 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldrh r4, [r6, #0x28] - ldr r0, _0217702c ; =data_027e0e60 + ldr r0, _0217702c ; =gMapManager ldrh r5, [r6, #0x2a] ldr r0, [r0] mov r1, r4 - bl func_ov00_020823d4 - ldr r1, _0217702c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823d4Ei + ldr r1, _0217702c ; =gMapManager str r0, [r6, #0xd4] ldr r0, [r1] mov r1, r4 - bl func_ov00_020823e4 - ldr r1, _0217702c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823e4Ei + ldr r1, _0217702c ; =gMapManager str r0, [r6, #0xd8] ldr r0, [r1] mov r1, r5 - bl func_ov00_020823d4 - ldr r1, _0217702c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020823d4Ei + ldr r1, _0217702c ; =gMapManager str r0, [r6, #0xdc] ldr r0, [r1] mov r1, r5 - bl func_ov00_020823e4 + bl _ZN10MapManager18func_ov00_020823e4Ei str r0, [r6, #0xe0] ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov26_02176fc8 -_0217702c: .word data_027e0e60 +_0217702c: .word gMapManager .global func_ov26_02177030 arm_func_start func_ov26_02177030 @@ -12588,9 +12588,9 @@ func_ov26_02177030: ; 0x02177030 mov r0, r5 ldr r1, _021770fc ; =data_ov26_021795a0 bl func_0201933c - ldr r0, _02177100 ; =data_027e0e60 + ldr r0, _02177100 ; =gMapManager ldr r0, [r0] - bl func_ov00_020823f4 + bl _ZN10MapManager16MapData_vfunc_b4Ev mov r4, r0 mov r0, r5 mov r1, r4 @@ -12624,7 +12624,7 @@ _021770f0: .word data_ov26_02179564 _021770f4: .word data_ov26_02179578 _021770f8: .word data_ov26_0217958c _021770fc: .word data_ov26_021795a0 -_02177100: .word data_027e0e60 +_02177100: .word gMapManager .global func_ov26_02177104 arm_func_start func_ov26_02177104 @@ -13237,7 +13237,7 @@ func_ov26_02177878: ; 0x02177878 func_ov26_02177880: ; 0x02177880 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x80 - ldr r5, _021778e0 ; =data_027e0e60 + ldr r5, _021778e0 ; =gMapManager ldr r4, _021778e4 ; =data_027e0d3c mvn r7, #0 mov r8, #0 @@ -13246,7 +13246,7 @@ _0217789c: ldr r0, [r5] mov r1, r6 and r2, r8, #0xff - bl func_ov00_02082614 + bl _ZN10MapManager18func_ov00_02082614Eii ldr r1, [r4] mov r0, r6 add r1, r1, #4 @@ -13263,7 +13263,7 @@ _021778d4: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov26_02177880 -_021778e0: .word data_027e0e60 +_021778e0: .word gMapManager _021778e4: .word data_027e0d3c .global func_ov26_021778e8 @@ -13686,7 +13686,7 @@ func_ov26_02177e14: ; 0x02177e14 mov r2, #0x10000 str r0, [r7, #0x90] ldr r0, [r7, #0x84] - ldr r1, _02177f60 ; =data_027e0e60 + ldr r1, _02177f60 ; =gMapManager str r0, [r7, #0x94] ldr r4, [r7, #0x88] add r0, sp, #4 @@ -13697,9 +13697,9 @@ func_ov26_02177e14: ; 0x02177e14 str r2, [r7, #0xb4] ldr r1, [r1] add r2, r7, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldr r4, _02177f64 ; =data_ov26_0217af64 - ldr r6, _02177f60 ; =data_027e0e60 + ldr r6, _02177f60 ; =gMapManager add r9, sp, #2 mov r8, #1 _02177e90: @@ -13715,12 +13715,12 @@ _02177e90: mov r2, r8 strb r10, [sp, #2] strb r3, [sp, #3] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii add r5, r5, #1 cmp r5, #0x12 blo _02177e90 mov r0, #0 - ldr r8, _02177f60 ; =data_027e0e60 + ldr r8, _02177f60 ; =gMapManager strb r0, [sp] strb r0, [sp, #1] mov r6, #6 @@ -13739,7 +13739,7 @@ _02177ef4: mov r2, r9 strb ip, [sp] strb r3, [sp, #1] - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii add r5, r5, #1 cmp r5, #0x18 blt _02177ef4 @@ -13759,7 +13759,7 @@ _02177ef4: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov26_02177e14 -_02177f60: .word data_027e0e60 +_02177f60: .word gMapManager _02177f64: .word data_ov26_0217af64 _02177f68: .word 0xffffeccd @@ -14004,17 +14004,17 @@ _02178224: .word data_027e103c .global func_ov26_02178228 arm_func_start func_ov26_02178228 func_ov26_02178228: ; 0x02178228 - ldr r1, _02178244 ; =data_027e0e60 + ldr r1, _02178244 ; =gMapManager mov r2, r0 ldr r0, [r1] ldr r1, [r2, #0x15c] - ldr ip, _02178248 ; =func_ov00_020836dc + ldr ip, _02178248 ; =_ZN10MapManager18func_ov00_020836dcEii mov r2, #0 bx ip .align 2, 0 arm_func_end func_ov26_02178228 -_02178244: .word data_027e0e60 -_02178248: .word func_ov00_020836dc +_02178244: .word gMapManager +_02178248: .word _ZN10MapManager18func_ov00_020836dcEii .global func_ov26_0217824c thumb_func_start func_ov26_0217824c @@ -14130,9 +14130,9 @@ _02178354: bl func_ov00_020d7180 cmp r0, #0 bne _02178384 - ldr r0, _021783b4 ; =data_027e0e60 + ldr r0, _021783b4 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084740 + bl _ZN10MapManager18func_ov00_02084740Ev mov r1, r0 ldr r0, _021783b0 ; =data_ov00_020eec68 mov r2, #0x3c @@ -14153,7 +14153,7 @@ _02178384: _021783a8: .word data_027e0f64 _021783ac: .word data_ov26_0217968c _021783b0: .word data_ov00_020eec68 -_021783b4: .word data_027e0e60 +_021783b4: .word gMapManager .global func_ov26_021783b8 arm_func_start func_ov26_021783b8 @@ -14307,14 +14307,14 @@ func_ov26_0217855c: ; 0x0217855c sub sp, sp, #0x20 mov r10, r0 ldrb r2, [r10, #0x15] - ldr r0, _021786d4 ; =data_027e0e60 + ldr r0, _021786d4 ; =gMapManager ldrb r1, [r10, #0x14] ldr r0, [r0] sub r2, r2, #1 - bl func_ov00_02083e34 + bl _ZN10MapManager18func_ov00_02083e34Ecci str r0, [r10, #0x1c] ldr r1, [r10, #0x18] - ldr r0, _021786d4 ; =data_027e0e60 + ldr r0, _021786d4 ; =gMapManager add r1, r1, #0x800 str r1, [r10, #0x18] str r1, [r10, #0x50] @@ -14334,7 +14334,7 @@ func_ov26_0217855c: ; 0x0217855c ldr r0, [r0] strb r2, [sp, #6] strb r3, [sp, #7] - bl func_ov00_02084088 + bl _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #0x37 bgt _02178604 bge _0217860c @@ -14363,7 +14363,7 @@ _02178620: cmp r11, r0 add r9, r1, #0xc bge _0217868c - ldr r4, _021786d4 ; =data_027e0e60 + ldr r4, _021786d4 ; =gMapManager add r6, sp, #4 mov r5, #1 _02178648: @@ -14377,7 +14377,7 @@ _02178658: mov r2, r5 strb r7, [sp, #4] strb r8, [sp, #5] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii add r8, r8, #1 cmp r8, r9 blt _02178658 @@ -14407,7 +14407,7 @@ _0217868c: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov26_0217855c -_021786d4: .word data_027e0e60 +_021786d4: .word gMapManager .global func_ov26_021786d8 arm_func_start func_ov26_021786d8 diff --git a/asm/ov27.inc b/asm/ov27.inc index 024fa41f..619f9277 100644 --- a/asm/ov27.inc +++ b/asm/ov27.inc @@ -1,5 +1,10 @@ #pragma once .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager18func_ov00_020836bcEjPi +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_020838e8EjPi .extern _ZN12ActorManager13FindActorByIdEj .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager8GetActorEP8ActorRef @@ -88,7 +93,7 @@ .extern data_027e0d38 .extern data_027e0dbc .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f84 @@ -175,11 +180,6 @@ .extern func_ov00_02081f50 .extern func_ov00_02081f58 .extern func_ov00_02081f6c -.extern func_ov00_0208344c -.extern func_ov00_020836bc -.extern func_ov00_020836dc -.extern func_ov00_020838e8 -.extern func_ov00_02083ee0 .extern func_ov00_020872e8 .extern func_ov00_020875f8 .extern func_ov00_02087d34 diff --git a/asm/ov27.s b/asm/ov27.s index d464d6db..62c89b51 100644 --- a/asm/ov27.s +++ b/asm/ov27.s @@ -357,7 +357,7 @@ _0216db58: add r0, r0, #0x800 str r0, [r5, #0x48] ldr r1, [r5, #0x4c] - ldr r0, _0216e91c ; =data_027e0e60 + ldr r0, _0216e91c ; =gMapManager add r1, r1, #0x2800 str r1, [r5, #0x4c] ldr r3, [r5, #0x50] @@ -372,7 +372,7 @@ _0216db58: str r3, [sp, #0x18] ldr r3, [r5, #0x50] str r3, [sp, #0x1c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r5, #0x4c] mov r0, r5 mov r1, #4 @@ -1262,7 +1262,7 @@ _0216e8fc: arm_func_end func_ov27_0216da38 _0216e914: .word 0x00000ccd _0216e918: .word data_027e0d0c -_0216e91c: .word data_027e0e60 +_0216e91c: .word gMapManager _0216e920: .word data_027e0c68 _0216e924: .word 0x00060003 _0216e928: .word gAdventureFlags @@ -1414,10 +1414,10 @@ _0216eadc: bne _0216eb48 mov r1, #2 strb r1, [r4, #0x4ad] - ldr r0, _0216ed44 ; =data_027e0e60 + ldr r0, _0216ed44 ; =gMapManager add r1, sp, #0xc ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldr r0, _0216ed48 ; =data_027e0f64 ldr r1, [sp, #0xc] ldr r2, [r0] @@ -1462,14 +1462,14 @@ _0216eb54: strb r2, [sp, #0x94] ldr r0, [r0, #4] bl func_ov00_02087d34 - ldr r0, _0216ed44 ; =data_027e0e60 + ldr r0, _0216ed44 ; =gMapManager ldr r2, _0216ed4c ; =0x00001333 mov r3, #0xc000 ldr r0, [r0] add r1, sp, #0 str r3, [sp, #0x30] str r2, [sp, #0x38] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p add r0, sp, #0 add r1, r4, #0x48 mov r2, r0 @@ -1564,7 +1564,7 @@ _0216ed38: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov27_0216eabc -_0216ed44: .word data_027e0e60 +_0216ed44: .word gMapManager _0216ed48: .word data_027e0f64 _0216ed4c: .word 0x00001333 _0216ed50: .word gAdventureFlags @@ -2094,11 +2094,11 @@ _0216f43c: cmp r0, #4 cmpne r0, #7 bne _0216f4b0 - ldr r0, _0216f574 ; =data_027e0e60 + ldr r0, _0216f574 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0216f4b0 mov r0, r4 @@ -2163,7 +2163,7 @@ _0216f544: _0216f568: .word data_ov00_020eec68 _0216f56c: .word data_027e0f64 _0216f570: .word data_ov27_02178e20 -_0216f574: .word data_027e0e60 +_0216f574: .word gMapManager _0216f578: .word data_027e0ff8 .global func_ov27_0216f57c @@ -2193,11 +2193,11 @@ func_ov27_0216f57c: ; 0x0216f57c func_ov27_0216f5c0: ; 0x0216f5c0 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _0216f604 ; =data_027e0e60 + ldr r0, _0216f604 ; =gMapManager ldrh r1, [r4, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 @@ -2210,7 +2210,7 @@ func_ov27_0216f5c0: ; 0x0216f5c0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov27_0216f5c0 -_0216f604: .word data_027e0e60 +_0216f604: .word gMapManager .global func_ov27_0216f608 arm_func_start func_ov27_0216f608 @@ -2252,7 +2252,7 @@ func_ov27_0216f608: ; 0x0216f608 str r2, [r4, #0x64] str r1, [r4, #0x68] ldr r1, [r4, #0x48] - ldr r0, _0216f8e8 ; =data_027e0e60 + ldr r0, _0216f8e8 ; =gMapManager str r1, [sp, #4] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -2260,7 +2260,7 @@ func_ov27_0216f608: ; 0x0216f608 ldr r3, [r4, #0x50] add r1, sp, #4 str r3, [sp, #0xc] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] mov r0, r4 bl func_ov14_02145258 @@ -2406,7 +2406,7 @@ _0216f8a8: arm_func_end func_ov27_0216f608 _0216f8e0: .word data_02050f54 _0216f8e4: .word 0x00000133 -_0216f8e8: .word data_027e0e60 +_0216f8e8: .word gMapManager _0216f8ec: .word 0x00000171 _0216f8f0: .word 0x0000071c _0216f8f4: .word 0x00000333 @@ -3155,7 +3155,7 @@ _021702d0: ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r1, [r4, #0x48] - ldr r0, _02170470 ; =data_027e0e60 + ldr r0, _02170470 ; =gMapManager str r1, [sp, #8] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -3164,7 +3164,7 @@ _021702d0: add r1, sp, #8 mov r2, #0 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] mov r1, #0 str r1, [sp] @@ -3261,7 +3261,7 @@ _02170444: _02170464: .word 0x00000e39 _02170468: .word 0x0000019a _0217046c: .word 0x000004cd -_02170470: .word data_027e0e60 +_02170470: .word gMapManager _02170474: .word data_027e0e58 _02170478: .word 0x00000163 _0217047c: .word data_027e0764 @@ -4000,7 +4000,7 @@ func_ov27_02170e24: ; 0x02170e24 mov r0, #0x3000 str r0, [r4, #0x4c] ldr r1, [r4, #0x48] - ldr r0, _02170f84 ; =data_027e0e60 + ldr r0, _02170f84 ; =gMapManager str r1, [sp, #0xc] ldr r2, [r4, #0x4c] ldr r0, [r0] @@ -4009,7 +4009,7 @@ func_ov27_02170e24: ; 0x02170e24 add r1, sp, #0xc mov r2, r5 str r3, [sp, #0x14] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev cmp r0, #0x2000 addlt sp, sp, #0x18 str r0, [r4, #0x4c] @@ -4034,7 +4034,7 @@ _02170f5c: _02170f78: .word 0x0000071c _02170f7c: .word data_02050f54 _02170f80: .word 0x00000266 -_02170f84: .word data_027e0e60 +_02170f84: .word gMapManager .global func_ov27_02170f88 arm_func_start func_ov27_02170f88 @@ -4914,7 +4914,7 @@ func_ov27_02171b14: ; 0x02171b14 mov ip, #1 str r0, [sp, #0x28] ldr r1, [r6, #0x54] - ldr r0, _02171c9c ; =data_027e0e60 + ldr r0, _02171c9c ; =gMapManager str r1, [sp, #0x14] ldr r2, [r6, #0x58] add r1, r6, #0xb8 @@ -4976,7 +4976,7 @@ _02171c90: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov27_02171b14 -_02171c9c: .word data_027e0e60 +_02171c9c: .word gMapManager .global func_ov27_02171ca0 arm_func_start func_ov27_02171ca0 @@ -5421,7 +5421,7 @@ _02172284: cmp r0, #0 bne _021722d0 ldr r1, [r6, #0x48] - ldr r0, _02172484 ; =data_027e0e60 + ldr r0, _02172484 ; =gMapManager str r1, [sp, #0x18] ldr r1, [r6, #0x4c] ldr r0, [r0] @@ -5430,7 +5430,7 @@ _02172284: add r1, sp, #0x18 str r2, [sp, #0x20] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r6, #0x4c] add r0, r0, #0x800 cmp r1, r0 @@ -5456,7 +5456,7 @@ _021722d0: add r0, r6, #0x300 ldrsh r1, [r0, #0x96] mov r2, #0 - ldr r0, _02172484 ; =data_027e0e60 + ldr r0, _02172484 ; =gMapManager add r1, r1, #0x4000 strh r1, [r6, #0x78] str r2, [r6, #0x6c] @@ -5468,7 +5468,7 @@ _021722d0: str r3, [sp, #0x10] ldr r3, [r6, #0x50] str r3, [sp, #0x14] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r5, r0, #0x800 mov r3, #0x3800 str r5, [r6, #0x4c] @@ -5552,7 +5552,7 @@ _0217245c: _02172478: .word gAdventureFlags _0217247c: .word data_02050f54 _02172480: .word 0x0000019a -_02172484: .word data_027e0e60 +_02172484: .word gMapManager _02172488: .word 0x00000b33 _0217248c: .word 0xffff699a _02172490: .word data_027e0d0c @@ -5774,14 +5774,14 @@ func_ov27_02172598: ; 0x02172598 ldr r0, [sp, #0x28] ldr r1, [sp, #0x24] str r0, [sp, #0x1c] - ldr r0, _02172838 ; =data_027e0e60 + ldr r0, _02172838 ; =gMapManager str r1, [sp, #0x18] ldr r1, [sp, #0x2c] ldr r0, [r0] str r1, [sp, #0x20] add r1, sp, #0x18 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr ip, _0217283c ; =0x00000a8f str r0, [sp, #0x28] mov r1, #0 @@ -5811,7 +5811,7 @@ func_ov27_02172598: ; 0x02172598 _0217282c: .word data_02050f54 _02172830: .word 0xfffff99a _02172834: .word 0xfffffa66 -_02172838: .word data_027e0e60 +_02172838: .word gMapManager _0217283c: .word 0x00000a8f _02172840: .word data_ov00_020e9370 @@ -5962,7 +5962,7 @@ func_ov27_0217296c: ; 0x0217296c str r2, [sp, #8] add r1, sp, #0x14 str r1, [sp, #0xc] - ldr r1, _02172aa0 ; =data_027e0e60 + ldr r1, _02172aa0 ; =gMapManager str r0, [sp, #0x10] ldr r0, [r1] add r1, sp, #0x40 @@ -5977,7 +5977,7 @@ func_ov27_0217296c: ; 0x0217296c arm_func_end func_ov27_0217296c _02172a98: .word 0x0000ffff _02172a9c: .word data_ov27_021796d4 -_02172aa0: .word data_027e0e60 +_02172aa0: .word gMapManager .global func_ov27_02172aa4 arm_func_start func_ov27_02172aa4 @@ -6640,11 +6640,11 @@ func_ov27_02173330: ; 0x02173330 ldreqb r0, [r4, #0x5af] cmpeq r0, #0 ldmneia sp!, {r4, pc} - ldr r0, _021733a8 ; =data_027e0e60 + ldr r0, _021733a8 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 @@ -6665,7 +6665,7 @@ func_ov27_02173330: ; 0x02173330 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov27_02173330 -_021733a8: .word data_027e0e60 +_021733a8: .word gMapManager _021733ac: .word data_027e0c68 _021733b0: .word 0x00060007 @@ -7017,7 +7017,7 @@ func_ov27_02173830: ; 0x02173830 cmp r0, #0 addeq sp, sp, #0x18 ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _021738d8 ; =data_027e0e60 + ldr r0, _021738d8 ; =gMapManager mov lr, #0 ldr r0, [r0] sub ip, lr, #2 @@ -7034,7 +7034,7 @@ func_ov27_02173830: ; 0x02173830 strb lr, [sp, #0x13] strb lr, [sp, #0x14] strb lr, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _021738dc ; =data_027e0d38 add r1, sp, #0 ldr r0, [r0] @@ -7050,7 +7050,7 @@ func_ov27_02173830: ; 0x02173830 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov27_02173830 -_021738d8: .word data_027e0e60 +_021738d8: .word gMapManager _021738dc: .word data_027e0d38 .global func_ov27_021738e0 @@ -7442,7 +7442,7 @@ func_ov27_02173d78: ; 0x02173d78 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r2, [sp, #0x24] - ldr r0, _02173e30 ; =data_027e0e60 + ldr r0, _02173e30 ; =gMapManager ldr r1, [sp, #0x28] str r2, [sp, #0x18] ldr r2, [sp, #0x2c] @@ -7451,7 +7451,7 @@ func_ov27_02173d78: ; 0x02173d78 ldr r0, [r0] add r1, sp, #0x18 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x28] ldr r3, _02173e34 ; =0x0000099a mov r0, #0 @@ -7470,7 +7470,7 @@ func_ov27_02173d78: ; 0x02173d78 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov27_02173d78 -_02173e30: .word data_027e0e60 +_02173e30: .word gMapManager _02173e34: .word 0x0000099a _02173e38: .word data_ov00_020e9370 @@ -7965,11 +7965,11 @@ func_ov27_0217440c: ; 0x0217440c bl _ZN5Actor18func_Ov00_020c1bfcEi cmp r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _02174450 ; =data_027e0e60 + ldr r0, _02174450 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmeqia sp!, {r4, pc} add r0, r4, #0x470 @@ -7978,7 +7978,7 @@ func_ov27_0217440c: ; 0x0217440c ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov27_0217440c -_02174450: .word data_027e0e60 +_02174450: .word gMapManager .global func_ov27_02174454 arm_func_start func_ov27_02174454 @@ -8033,7 +8033,7 @@ func_ov27_02174454: ; 0x02174454 strb r1, [r4, #0x1c1] bl _ZN5Actor10SetUnk_11cEc ldr r1, [r4, #0x48] - ldr r0, _021746f8 ; =data_027e0e60 + ldr r0, _021746f8 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -8042,7 +8042,7 @@ func_ov27_02174454: ; 0x02174454 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r1, r4, #0x100 ldrsh r2, [r1, #0x1e] mov r1, #0 @@ -8154,7 +8154,7 @@ _021746e8: .word data_027e0fac _021746ec: .word data_02050f54 _021746f0: .word data_027e0c68 _021746f4: .word 0x00060015 -_021746f8: .word data_027e0e60 +_021746f8: .word gMapManager _021746fc: .word data_027e0f64 _02174700: .word gAdventureFlags @@ -8200,7 +8200,7 @@ func_ov27_02174748: ; 0x02174748 mov r0, #0x2000 str r0, [r4, #0x4c] ldr r1, [r4, #0x48] - ldr r0, _021747d0 ; =data_027e0e60 + ldr r0, _021747d0 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -8209,7 +8209,7 @@ func_ov27_02174748: ; 0x02174748 add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] ldrsb r1, [r4, #0x2c] mov r0, r4 @@ -8219,7 +8219,7 @@ func_ov27_02174748: ; 0x02174748 .align 2, 0 arm_func_end func_ov27_02174748 _021747cc: .word data_027e0d0c -_021747d0: .word data_027e0e60 +_021747d0: .word gMapManager .global func_ov27_021747d4 arm_func_start func_ov27_021747d4 @@ -8228,7 +8228,7 @@ func_ov27_021747d4: ; 0x021747d4 sub sp, sp, #0xc mov r5, r0 ldr r1, [r5, #0x48] - ldr r0, _021748d4 ; =data_027e0e60 + ldr r0, _021748d4 ; =gMapManager str r1, [sp] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -8237,7 +8237,7 @@ func_ov27_021747d4: ; 0x021747d4 add r1, sp, #0 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r4, r0 mov r0, r5 bl func_ov14_02145508 @@ -8293,7 +8293,7 @@ _021748c8: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov27_021747d4 -_021748d4: .word data_027e0e60 +_021748d4: .word gMapManager _021748d8: .word 0x00000222 _021748dc: .word gAdventureFlags _021748e0: .word 0x00000266 @@ -9142,7 +9142,7 @@ func_ov27_021752a8: ; 0x021752a8 bic r0, r0, #0x1f orr r0, r0, #9 str r0, [sp, #4] - ldr r0, _021753d4 ; =data_027e0e60 + ldr r0, _021753d4 ; =gMapManager str ip, [sp, #8] str r3, [sp, #0xc] ldr r1, [r1, #8] @@ -9153,7 +9153,7 @@ func_ov27_021752a8: ; 0x021752a8 str r1, [sp, #0x1c] ldrh r1, [r4, #0x20] add r2, sp, #8 - bl func_ov00_020836bc + bl _ZN10MapManager18func_ov00_020836bcEjPi add r0, r4, #0xb8 add r0, r0, #0x400 str r0, [sp] @@ -9177,7 +9177,7 @@ _021753c4: .word func_ov27_02174f08 _021753c8: .word data_ov27_0217903c _021753cc: .word func_ov27_02175048 _021753d0: .word data_027e0d0c -_021753d4: .word data_027e0e60 +_021753d4: .word gMapManager .global func_ov27_021753d8 arm_func_start func_ov27_021753d8 @@ -9236,11 +9236,11 @@ _02175454: mov r2, r1 bl _ZN5Actor18func_ov00_020c243cEiPi _021754a4: - ldr r0, _02175554 ; =data_027e0e60 + ldr r0, _02175554 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _021754cc add r0, r4, #0x470 @@ -9286,7 +9286,7 @@ _02175538: .align 2, 0 arm_func_end func_ov27_021753d8 _02175550: .word data_027e0cbc -_02175554: .word data_027e0e60 +_02175554: .word gMapManager _02175558: .word data_027e0fc8 _0217555c: .word data_027e0f6c @@ -9377,11 +9377,11 @@ func_ov27_02175660: ; 0x02175660 ldrb r0, [r4, #0x285] cmp r0, #0 bne _021757e4 - ldr r0, _02175810 ; =data_027e0e60 + ldr r0, _02175810 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldreqb r0, [r4, #0x4e7] cmpeq r0, #1 @@ -9484,7 +9484,7 @@ _021757e4: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov27_02175660 -_02175810: .word data_027e0e60 +_02175810: .word gMapManager _02175814: .word 0x0000038e _02175818: .word 0x00000e39 _0217581c: .word 0x000078e4 diff --git a/asm/ov28.inc b/asm/ov28.inc index 0a742d5b..861283c8 100644 --- a/asm/ov28.inc +++ b/asm/ov28.inc @@ -1,5 +1,15 @@ #pragma once .extern Approach_thunk +.extern _ZN10MapManager17GetMapData_Unk_4cEv +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_02082b3cEi +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p +.extern _ZN10MapManager18func_ov00_020843ecEPi +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084be0Eii +.extern _ZN10MapManager8SpawnNPCEP5Vec3pii .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN14AdventureFlags18func_Ov00_02097810Ei @@ -92,7 +102,6 @@ .extern data_027e0c68 .extern data_027e0ce0 .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -171,16 +180,6 @@ .extern func_ov00_0207c31c .extern func_ov00_0207c444 .extern func_ov00_0207c474 -.extern func_ov00_02082680 -.extern func_ov00_02082b3c -.extern func_ov00_020836dc -.extern func_ov00_020838e8 -.extern func_ov00_02083f44 -.extern func_ov00_02084120 -.extern func_ov00_020843ec -.extern func_ov00_02084a5c -.extern func_ov00_02084b38 -.extern func_ov00_02084be0 .extern func_ov00_0208726c .extern func_ov00_020876bc .extern func_ov00_02087ab0 @@ -323,7 +322,7 @@ .extern func_ov09_0211c45c .extern func_ov09_0211c724 .extern func_ov09_0211c808 -.extern func_ov09_0211ca20 +.extern GiveShipPart .extern func_ov09_0211cac0 .extern func_ov14_02120ac4 .extern func_ov14_021231d4 @@ -401,6 +400,7 @@ .extern func_ov14_0214aa2c .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern gOverlayManager .extern strcat .extern strcpy diff --git a/asm/ov28.s b/asm/ov28.s index 1526b066..efb5b4a4 100644 --- a/asm/ov28.s +++ b/asm/ov28.s @@ -2701,7 +2701,7 @@ _0216faf8: blx func_ov09_0211c724 ldr r0, [sp, #4] ldr r1, [sp] - blx func_ov09_0211ca20 + blx GiveShipPart _0216fb20: mov r0, r4 add sp, sp, #0xc @@ -3512,12 +3512,12 @@ func_ov28_021704b0: ; 0x021704b0 bl _ZN14AdventureFlags3GetEj cmp r0, #0 beq _02170524 - ldr r0, _02170630 ; =data_027e0e60 + ldr r0, _02170630 ; =gMapManager mov r1, #1 ldr r0, [r0] mov r2, r1 mov r3, r1 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii b _02170604 _02170524: ldr r0, _02170624 ; =gAdventureFlags @@ -3532,12 +3532,12 @@ _02170524: bl _ZN14AdventureFlags3GetEj cmp r0, #0 beq _02170570 - ldr r0, _02170630 ; =data_027e0e60 + ldr r0, _02170630 ; =gMapManager mov r2, #1 ldr r0, [r0] mov r3, r2 mov r1, #2 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii b _02170604 _02170570: ldr r0, _02170624 ; =gAdventureFlags @@ -3552,12 +3552,12 @@ _02170570: bl _ZN14AdventureFlags3GetEj cmp r0, #0 beq _021705bc - ldr r0, _02170630 ; =data_027e0e60 + ldr r0, _02170630 ; =gMapManager mov r2, #1 ldr r0, [r0] mov r3, r2 mov r1, #3 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii b _02170604 _021705bc: ldr r0, _02170624 ; =gAdventureFlags @@ -3572,12 +3572,12 @@ _021705bc: bl _ZN14AdventureFlags3GetEj cmp r0, #0 beq _02170604 - ldr r0, _02170630 ; =data_027e0e60 + ldr r0, _02170630 ; =gMapManager mov r2, #1 ldr r0, [r0] mov r3, r2 mov r1, #4 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii _02170604: add r0, r4, #0x74 add r0, r0, #0x400 @@ -3593,7 +3593,7 @@ _02170618: _02170624: .word gAdventureFlags _02170628: .word 0x00000126 _0217062c: .word 0x0000012a -_02170630: .word data_027e0e60 +_02170630: .word gMapManager _02170634: .word 0x00000127 _02170638: .word 0x0000012b _0217063c: .word 0x00000129 @@ -3941,7 +3941,7 @@ _021709a4: mov r2, #0 strb r2, [r4, #0x48d] ldr r1, [r4, #0x48] - ldr r0, _02170a94 ; =data_027e0e60 + ldr r0, _02170a94 ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r6, [r0] @@ -3950,10 +3950,10 @@ _021709a4: mov r0, r6 add r1, sp, #0 str r3, [sp, #8] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p mov r5, r0 mov r0, r6 - bl func_ov00_02084120 + bl _ZN10MapManager17GetMapData_Unk_4cEv add r0, r5, r0 str r0, [r4, #0x4c] ldrsb r0, [r4, #0x2c] @@ -3981,7 +3981,7 @@ _02170a84: .align 2, 0 arm_func_end func_ov28_02170930 _02170a90: .word data_ov28_0217827c -_02170a94: .word data_027e0e60 +_02170a94: .word gMapManager _02170a98: .word 0xffffec78 .global func_ov28_02170a9c @@ -5545,7 +5545,7 @@ func_ov28_02171d10: ; 0x02171d10 add r0, r7, #2 cmp r7, r0 bge _02171f28 - ldr r10, _02171f74 ; =data_027e0e60 + ldr r10, _02171f74 ; =gMapManager add r5, sp, #4 mov r4, #1 _02171ed4: @@ -5560,7 +5560,7 @@ _02171ee8: mov r2, r4 strb r6, [sp, #4] strb r8, [sp, #5] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrb r0, [r9, #0x15] add r8, r8, #1 add r0, r0, #1 @@ -5595,7 +5595,7 @@ _02171f58: .align 2, 0 arm_func_end func_ov28_02171d10 _02171f70: .word data_027e0f6c -_02171f74: .word data_027e0e60 +_02171f74: .word gMapManager .global func_ov28_02171f78 arm_func_start func_ov28_02171f78 @@ -5660,11 +5660,11 @@ _02172008: add r0, r4, #0x70 mov r1, #3 bl func_ov00_02094884 - ldr r0, _021720d0 ; =data_027e0e60 + ldr r0, _021720d0 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi mov r0, #0xc strb r0, [r4, #0x12] b _021720c4 @@ -5685,11 +5685,11 @@ _02172068: add r0, r4, #0x70 mov r1, #1 bl func_ov00_02094884 - ldr r0, _021720d0 ; =data_027e0e60 + ldr r0, _021720d0 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi mov r0, #1 strb r0, [r4, #0x12] _021720c4: @@ -5698,7 +5698,7 @@ _021720c4: .align 2, 0 arm_func_end func_ov28_02171fe8 _021720cc: .word data_027e0f68 -_021720d0: .word data_027e0e60 +_021720d0: .word gMapManager .global func_ov28_021720d4 arm_func_start func_ov28_021720d4 @@ -5927,7 +5927,7 @@ func_ov28_02172280: ; 0x02172280 add r0, r7, #2 cmp r7, r0 bge _02172404 - ldr r10, _02172450 ; =data_027e0e60 + ldr r10, _02172450 ; =gMapManager add r5, sp, #4 mov r4, #1 _021723b0: @@ -5942,7 +5942,7 @@ _021723c4: mov r2, r4 strb r6, [sp, #4] strb r8, [sp, #5] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldrb r0, [r9, #0x15] add r8, r8, #1 add r0, r0, #1 @@ -5977,7 +5977,7 @@ _02172434: .align 2, 0 arm_func_end func_ov28_02172280 _0217244c: .word 0x0000059a -_02172450: .word data_027e0e60 +_02172450: .word gMapManager .global func_ov28_02172454 arm_func_start func_ov28_02172454 @@ -6061,11 +6061,11 @@ _02172528: add r0, r4, #0x38 mov r1, #0 bl func_ov00_02094884 - ldr r0, _021725e4 ; =data_027e0e60 + ldr r0, _021725e4 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #0 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldr r0, [r4, #4] orr r0, r0, #0x14 str r0, [r4, #4] @@ -6084,11 +6084,11 @@ _02172580: add r0, r4, #0x38 mov r1, #3 bl func_ov00_02094884 - ldr r0, _021725e4 ; =data_027e0e60 + ldr r0, _021725e4 ; =gMapManager add r1, r4, #0x38 ldr r0, [r0] mov r2, #1 - bl func_ov00_020843ec + bl _ZN10MapManager18func_ov00_020843ecEPi ldr r0, [r4, #4] bic r0, r0, #4 bic r0, r0, #0x10 @@ -6099,7 +6099,7 @@ _021725d8: .align 2, 0 arm_func_end func_ov28_02172508 _021725e0: .word data_027e0f68 -_021725e4: .word data_027e0e60 +_021725e4: .word gMapManager .global func_ov28_021725e8 arm_func_start func_ov28_021725e8 @@ -6536,11 +6536,11 @@ _02172af4: .word data_ov28_02179274 func_ov28_02172af8: ; 0x02172af8 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _02172b3c ; =data_027e0e60 + ldr r0, _02172b3c ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 @@ -6553,7 +6553,7 @@ func_ov28_02172af8: ; 0x02172af8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov28_02172af8 -_02172b3c: .word data_027e0e60 +_02172b3c: .word gMapManager .global func_ov28_02172b40 arm_func_start func_ov28_02172b40 @@ -6611,11 +6611,11 @@ _02172bc4: .word data_ov28_02179274 func_ov28_02172bc8: ; 0x02172bc8 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _02172c24 ; =data_027e0e60 + ldr r0, _02172c24 ; =gMapManager ldrh r1, [r4, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmneia sp!, {r4, pc} mov r0, r4 @@ -6634,7 +6634,7 @@ func_ov28_02172bc8: ; 0x02172bc8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov28_02172bc8 -_02172c24: .word data_027e0e60 +_02172c24: .word gMapManager .global func_ov28_02172c28 arm_func_start func_ov28_02172c28 @@ -8451,13 +8451,13 @@ func_ov28_021742b0: ; 0x021742b0 strb r2, [sp, #0x10] strb r2, [sp, #0x16] bl _ZN14AdventureFlags18func_Ov00_02097810Ei - ldr r1, _02174384 ; =data_027e0e60 + ldr r1, _02174384 ; =gMapManager str r0, [r4, #0x228] ldr r0, [r1] add r1, r4, #0x48 mov r2, #1 mov r3, #0 - bl func_ov00_02084a5c + bl _ZN10MapManager8SpawnNPCEP5Vec3pii add r0, sp, #0 bl func_ov00_0209a508 add sp, sp, #0xb0 @@ -8467,7 +8467,7 @@ func_ov28_021742b0: ; 0x021742b0 _02174378: .word 0x00000666 _0217437c: .word data_ov28_021794e4 _02174380: .word gAdventureFlags -_02174384: .word data_027e0e60 +_02174384: .word gMapManager .global func_ov28_02174388 arm_func_start func_ov28_02174388 @@ -8947,7 +8947,7 @@ func_ov28_02174958: ; 0x02174958 func_ov28_0217496c: ; 0x0217496c stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #0x18 - ldr r1, _02174a0c ; =data_027e0e60 + ldr r1, _02174a0c ; =gMapManager mov lr, #0 mov r4, r0 ldr r0, [r1] @@ -8965,17 +8965,17 @@ func_ov28_0217496c: ; 0x0217496c strb lr, [sp, #0x13] strb lr, [sp, #0x14] strb lr, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02174a10 ; =gOverlayManager ldr r2, _02174a14 ; =0x00000004 mov r1, #2 blx _ZN14OverlayManager15LoadIfNotLoadedEjj - ldr r0, _02174a0c ; =data_027e0e60 + ldr r0, _02174a0c ; =gMapManager mov r2, #1 ldr r0, [r0] add r1, sp, #0 strb r2, [sp, #0x15] - bl func_ov00_02082b3c + bl _ZN10MapManager18func_ov00_02082b3cEi ldr r0, _02174a10 ; =gOverlayManager ldr r2, _02174a18 ; =0x00000005 mov r1, #2 @@ -8987,7 +8987,7 @@ func_ov28_0217496c: ; 0x0217496c ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov28_0217496c -_02174a0c: .word data_027e0e60 +_02174a0c: .word gMapManager _02174a10: .word gOverlayManager _02174a14: .word 0x00000004 _02174a18: .word 0x00000005 @@ -9501,13 +9501,13 @@ _0217504c: bl func_ov28_02174948 ldrb ip, [r4, #0x2a] ldrsb r3, [r0, #0xb] - ldr r1, _0217509c ; =data_027e0e60 + ldr r1, _0217509c ; =gMapManager ldrb r2, [r4, #0x28] ldr r0, [r1] add r1, ip, r3 and r1, r1, #0xff mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii mov r1, #0 str r1, [r4, #0x130] ldr r0, _021750a0 ; =data_ov28_02179684 @@ -9520,7 +9520,7 @@ _0217504c: .align 2, 0 arm_func_end func_ov28_02175028 _02175098: .word data_027e0e58 -_0217509c: .word data_027e0e60 +_0217509c: .word gMapManager _021750a0: .word data_ov28_02179684 .global func_ov28_021750a4 @@ -9617,13 +9617,13 @@ _02175184: bl func_ov28_02174948 ldrsb r1, [r0, #0xb] ldrb r3, [r4, #0x2a] - ldr r0, _0217525c ; =data_027e0e60 + ldr r0, _0217525c ; =gMapManager ldrb r2, [r4, #0x28] add r1, r3, r1 ldr r0, [r0] and r1, r1, #0xff mov r3, #1 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldr r0, _02175260 ; =data_ov28_02179684 mov r5, #0 ldr r1, [r0, #0x18] @@ -9662,7 +9662,7 @@ _0217524c: .word 0x000001bd _02175250: .word data_027e0ffc _02175254: .word 0x000001a9 _02175258: .word data_ov28_02178348 -_0217525c: .word data_027e0e60 +_0217525c: .word gMapManager _02175260: .word data_ov28_02179684 _02175264: .word data_ov00_020eec68 _02175268: .word data_027e0c68 @@ -9728,10 +9728,10 @@ _02175308: ldr r0, [r2, #0x44] cmp r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _021753dc ; =data_027e0e60 + ldr r0, _021753dc ; =gMapManager ldrb r2, [r4, #0x29] ldr r0, [r0] - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 ldmeqia sp!, {r4, pc} ldr r0, [r4, #0x1bc] @@ -9743,13 +9743,13 @@ _02175364: bl func_ov28_02174948 ldrb ip, [r4, #0x2a] ldrsb r3, [r0, #0xb] - ldr r1, _021753dc ; =data_027e0e60 + ldr r1, _021753dc ; =gMapManager ldrb r2, [r4, #0x28] ldr r0, [r1] add r1, ip, r3 and r1, r1, #0xff mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii mov r0, r4 bl func_ov28_02175028 bl func_ov28_02174948 @@ -9774,7 +9774,7 @@ _021753c0: .align 2, 0 arm_func_end func_ov28_02175274 _021753d8: .word data_027e0c68 -_021753dc: .word data_027e0e60 +_021753dc: .word gMapManager _021753e0: .word data_ov00_020eec9c _021753e4: .word 0x00000403 _021753e8: .word 0x00000404 @@ -9790,13 +9790,13 @@ func_ov28_021753f0: ; 0x021753f0 bl func_ov28_02174948 ldrb ip, [r4, #0x2a] ldrsb r3, [r0, #0xb] - ldr r1, _02175464 ; =data_027e0e60 + ldr r1, _02175464 ; =gMapManager ldrb r2, [r4, #0x28] ldr r0, [r1] add r1, ip, r3 and r1, r1, #0xff mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldr r1, _02175468 ; =data_ov28_02178348 add r0, r4, #0x1c0 ldr r1, [r1] @@ -9814,7 +9814,7 @@ func_ov28_021753f0: ; 0x021753f0 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov28_021753f0 -_02175464: .word data_027e0e60 +_02175464: .word gMapManager _02175468: .word data_ov28_02178348 _0217546c: .word data_ov28_02179684 @@ -12080,11 +12080,11 @@ _021772a0: ; jump table b _02177300 ; case 2 b _021773f8 ; case 3 _021772b0: - ldr r0, _02177478 ; =data_027e0e60 + ldr r0, _02177478 ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _02177408 mov r0, r4 @@ -12206,7 +12206,7 @@ _02177458: _0217746c: .word data_027e0e58 _02177470: .word data_ov00_020eec9c _02177474: .word 0x0000042a -_02177478: .word data_027e0e60 +_02177478: .word gMapManager _0217747c: .word 0x00000ccd _02177480: .word data_027e0ffc _02177484: .word 0x00000429 diff --git a/asm/ov29.inc b/asm/ov29.inc index fd7cee09..36a8a66f 100644 --- a/asm/ov29.inc +++ b/asm/ov29.inc @@ -1,7 +1,16 @@ #pragma once .extern Approach_thunk .extern Divide -.extern _ZN11ItemManager18func_ov00_020ae4dcEj +.extern _ZN10MapManager16MapData_vfunc_6cEv +.extern _ZN10MapManager18Set_MapData_Unk_16Eci +.extern _ZN10MapManager18func_ov00_02082680Eii +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083908EcPi +.extern _ZN10MapManager18func_ov00_02083928EPci +.extern _ZN10MapManager18func_ov00_02083938Ei +.extern _ZN10MapManager18func_ov00_020846a4Ev +.extern _ZN10MapManager18func_ov00_02084d24Ecci +.extern _ZN11ItemManager18func_ov00_020ae4dcEi .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager18func_ov00_020c3b2cEPi @@ -81,7 +90,6 @@ .extern data_027e0d38 .extern data_027e0db0 .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -185,15 +193,6 @@ .extern func_ov00_0207c444 .extern func_ov00_0207c474 .extern func_ov00_02081f4c -.extern func_ov00_02082680 -.extern func_ov00_020836dc -.extern func_ov00_02083908 -.extern func_ov00_02083928 -.extern func_ov00_02083938 -.extern func_ov00_02083948 -.extern func_ov00_02083f80 -.extern func_ov00_020846a4 -.extern func_ov00_02084d24 .extern func_ov00_02087400 .extern func_ov00_0208b5a4 .extern func_ov00_0208b5bc @@ -391,4 +390,5 @@ .extern func_ov38_02185720 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern strcpy diff --git a/asm/ov29.s b/asm/ov29.s index 935b7723..81c19ba6 100644 --- a/asm/ov29.s +++ b/asm/ov29.s @@ -755,7 +755,7 @@ _0216df70: ldr r0, _0216e008 ; =gItemManager mvn r1, #0 ldr r0, [r0] - bl _ZN11ItemManager18func_ov00_020ae4dcEj + bl _ZN11ItemManager18func_ov00_020ae4dcEi add r0, r6, r4 add r1, r7, r5 ldr r3, _0216e000 ; =data_027e0fc8 @@ -1502,9 +1502,9 @@ func_ov29_0216ea08: ; 0x0216ea08 ldr r0, [r4, #0x4dc] cmp r0, #2 ldmneia sp!, {r4, pc} - ldr r0, _0216ea68 ; =data_027e0e60 + ldr r0, _0216ea68 ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev cmp r0, #0xd beq _0216ea48 cmp r0, #0xe @@ -1522,7 +1522,7 @@ _0216ea58: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov29_0216ea08 -_0216ea68: .word data_027e0e60 +_0216ea68: .word gMapManager .global func_ov29_0216ea6c arm_func_start func_ov29_0216ea6c @@ -2282,13 +2282,13 @@ _0216f4b0: _0216f4bc: cmp r3, #2 blo _0216f4b0 - ldr r0, _0216f6a4 ; =data_027e0e60 + ldr r0, _0216f6a4 ; =gMapManager add r1, sp, #4 ldr r0, [r0] mov r2, #0 - bl func_ov00_02083928 + bl _ZN10MapManager18func_ov00_02083928EPci ldrb r1, [sp, #8] - ldr r0, _0216f6a4 ; =data_027e0e60 + ldr r0, _0216f6a4 ; =gMapManager add r2, r4, #0x1f0 strb r1, [r4, #0x1c7] ldrh r1, [r4, #0x22] @@ -2297,17 +2297,17 @@ _0216f4bc: and r1, r1, #0xff and r5, r3, #0xff mov r6, #1 - bl func_ov00_02083908 - ldr r0, _0216f6a4 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083908EcPi + ldr r0, _0216f6a4 ; =gMapManager mov r1, r5 ldr r0, [r0] add r2, r4, #0x20c - bl func_ov00_02083908 - ldr r0, _0216f6a4 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083908EcPi + ldr r0, _0216f6a4 ; =gMapManager mov r1, r6 ldr r0, [r0] add r2, r4, #0x228 - bl func_ov00_02083908 + bl _ZN10MapManager18func_ov00_02083908EcPi ldr r1, _0216f6a8 ; =data_02052f54 add r0, r4, #0x1c8 ldrsh r2, [r1, #2] @@ -2404,7 +2404,7 @@ _0216f4bc: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov29_0216f470 -_0216f6a4: .word data_027e0e60 +_0216f6a4: .word gMapManager _0216f6a8: .word data_02052f54 _0216f6ac: .word data_027e0f68 _0216f6b0: .word data_ov29_0217933c @@ -2645,18 +2645,18 @@ _0216f9a0: mov r3, #0 bl func_ov00_02087400 _0216f9b0: - ldr r0, _0216fbf8 ; =data_027e0e60 + ldr r0, _0216fbf8 ; =gMapManager ldrb r5, [r4, #0x22c] ldr r0, [r0] mov r1, #0 - bl func_ov00_02083938 + bl _ZN10MapManager18func_ov00_02083938Ei cmp r0, r5 beq _0216fbe8 - ldr r0, _0216fbf8 ; =data_027e0e60 + ldr r0, _0216fbf8 ; =gMapManager ldrb r1, [r4, #0x22c] ldr r0, [r0] mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci b _0216fbe8 _0216f9e4: ldr r0, _0216fbf4 ; =data_027e0f64 @@ -2679,18 +2679,18 @@ _0216fa1c: mov r3, #0 bl func_ov00_02087400 _0216fa2c: - ldr r0, _0216fbf8 ; =data_027e0e60 + ldr r0, _0216fbf8 ; =gMapManager ldrb r5, [r4, #0x1f4] ldr r0, [r0] mov r1, #0 - bl func_ov00_02083938 + bl _ZN10MapManager18func_ov00_02083938Ei cmp r0, r5 beq _0216fbe8 - ldr r0, _0216fbf8 ; =data_027e0e60 + ldr r0, _0216fbf8 ; =gMapManager ldrb r1, [r4, #0x1f4] ldr r0, [r0] mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci b _0216fbe8 _0216fa60: ldr r0, _0216fbf4 ; =data_027e0f64 @@ -2713,18 +2713,18 @@ _0216fa98: mov r3, #0 bl func_ov00_02087400 _0216faa8: - ldr r0, _0216fbf8 ; =data_027e0e60 + ldr r0, _0216fbf8 ; =gMapManager ldrb r5, [r4, #0x210] ldr r0, [r0] mov r1, #0 - bl func_ov00_02083938 + bl _ZN10MapManager18func_ov00_02083938Ei cmp r0, r5 beq _0216fbe8 - ldr r0, _0216fbf8 ; =data_027e0e60 + ldr r0, _0216fbf8 ; =gMapManager ldrb r1, [r4, #0x210] ldr r0, [r0] mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci b _0216fbe8 _0216fadc: add r0, r4, #0x250 @@ -2802,7 +2802,7 @@ _0216fbe8: .align 2, 0 arm_func_end func_ov29_0216f918 _0216fbf4: .word data_027e0f64 -_0216fbf8: .word data_027e0e60 +_0216fbf8: .word gMapManager _0216fbfc: .word data_027e0f6c _0216fc00: .word data_027e0e58 _0216fc04: .word data_ov00_020eec9c @@ -2887,15 +2887,15 @@ func_ov29_0216fc94: ; 0x0216fc94 func_ov29_0216fcd4: ; 0x0216fcd4 stmdb sp!, {lr} sub sp, sp, #0x1c - ldr r2, _0216fd78 ; =data_027e0e60 + ldr r2, _0216fd78 ; =gMapManager ldrb r1, [r0, #0x1c6] ldr r0, [r2] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0216fd6c ldr r1, _0216fd7c ; =data_027e0f94 - ldr r0, _0216fd78 ; =data_027e0e60 + ldr r0, _0216fd78 ; =gMapManager ldr r3, [r1] ldr r2, [r1, #4] str r3, [sp, #0x10] @@ -2906,7 +2906,7 @@ func_ov29_0216fcd4: ; 0x0216fcd4 add r2, sp, #0 add r3, sp, #4 str ip, [sp, #0x18] - bl func_ov00_02083f80 + bl _ZN10MapManager16MapData_vfunc_6cEv ldr r0, [sp, #4] cmp r0, #0 ldreq r0, [sp, #8] @@ -2930,7 +2930,7 @@ _0216fd6c: ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov29_0216fcd4 -_0216fd78: .word data_027e0e60 +_0216fd78: .word gMapManager _0216fd7c: .word data_027e0f94 .global func_ov29_0216fd80 @@ -10598,7 +10598,7 @@ func_ov29_021765f0: ; 0x021765f0 add r0, r7, #2 cmp r7, r0 bge _021766b8 - ldr r4, _02176784 ; =data_027e0e60 + ldr r4, _02176784 ; =gMapManager add r5, sp, #2 mov r11, #1 _0217661c: @@ -10615,24 +10615,24 @@ _02176630: mov r2, r11 strb r6, [sp, #2] strb r8, [sp, #3] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r7 mov r2, r8 mov r3, #9 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci b _02176690 _02176668: add r1, sp, #0 mov r2, #0 strb r6, [sp] strb r8, [sp, #1] - bl func_ov00_02082680 + bl _ZN10MapManager18func_ov00_02082680Eii ldr r0, [r4] mov r1, r7 mov r2, r8 mov r3, #0x35 - bl func_ov00_02084d24 + bl _ZN10MapManager18func_ov00_02084d24Ecci _02176690: ldrb r0, [r10, #0x15] add r8, r8, #1 @@ -10700,7 +10700,7 @@ _0217673c: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov29_021765f0 -_02176784: .word data_027e0e60 +_02176784: .word gMapManager _02176788: .word data_027e0f6c .global func_ov29_0217678c diff --git a/asm/ov30.inc b/asm/ov30.inc index 5370e24f..4913a1a2 100644 --- a/asm/ov30.inc +++ b/asm/ov30.inc @@ -84,7 +84,7 @@ .extern data_027e0d38 .extern data_027e0d3c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f90 @@ -140,14 +140,14 @@ .extern func_ov00_0207c1f8 .extern func_ov00_02081f4c .extern func_ov00_02081f50 -.extern func_ov00_02082d08 -.extern func_ov00_02083770 -.extern func_ov00_02083ee0 -.extern func_ov00_02084324 -.extern func_ov00_0208433c -.extern func_ov00_0208439c -.extern func_ov00_02084740 -.extern func_ov00_02084924 +.extern _ZN10MapManager18func_ov00_02082d08Ev +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_a4Ev +.extern _ZN10MapManager18func_ov00_0208433cEP5Vec3pi +.extern _ZN10MapManager18func_ov00_0208439cEv +.extern _ZN10MapManager18func_ov00_02084740Ev +.extern _ZN10MapManager18func_ov00_02084924Ej .extern func_ov00_02087d34 .extern func_ov00_020884b4 .extern func_ov00_02093a1c diff --git a/asm/ov30.s b/asm/ov30.s index 26a4350a..d903a630 100644 --- a/asm/ov30.s +++ b/asm/ov30.s @@ -229,7 +229,7 @@ _0217c050: stmia sp, {r0, r6} mov r0, #0 str r0, [sp, #8] - ldr r0, _0217c104 ; =data_027e0e60 + ldr r0, _0217c104 ; =gMapManager mov r3, r7 ldr r0, [r0] add r1, sp, #0x18 @@ -251,7 +251,7 @@ _0217c0f4: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov30_0217c020 -_0217c104: .word data_027e0e60 +_0217c104: .word gMapManager .global func_ov30_0217c108 arm_func_start func_ov30_0217c108 @@ -1558,7 +1558,7 @@ func_ov30_0217d09c: ; 0x0217d09c addeq sp, sp, #0x58 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} - ldr r0, _0217d390 ; =data_027e0e60 + ldr r0, _0217d390 ; =gMapManager ldr lr, [r4] ldr ip, [r4, #4] ldr r3, [r4, #8] @@ -1568,7 +1568,7 @@ func_ov30_0217d09c: ; 0x0217d09c str lr, [sp, #0x28] str ip, [sp, #0x2c] str r3, [sp, #0x30] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 addne sp, sp, #0x58 movne r0, #0 @@ -1722,7 +1722,7 @@ _0217d2cc: str r0, [sp, #4] add r1, sp, #0xc str r1, [sp, #8] - ldr r0, _0217d390 ; =data_027e0e60 + ldr r0, _0217d390 ; =gMapManager add r1, sp, #0x1c ldr r0, [r0] add r2, sp, #0x10 @@ -1745,7 +1745,7 @@ _0217d37c: arm_func_end func_ov30_0217d09c _0217d388: .word data_027e0f90 _0217d38c: .word data_027e0f94 -_0217d390: .word data_027e0e60 +_0217d390: .word gMapManager _0217d394: .word 0xffff8001 _0217d398: .word 0x00002aaa _0217d39c: .word 0x00005555 @@ -1777,7 +1777,7 @@ func_ov30_0217d3b8: ; 0x0217d3b8 addeq sp, sp, #0x20 moveq r0, #0 ldmeqia sp!, {r3, r4, r5, pc} - ldr r0, _0217d4e0 ; =data_027e0e60 + ldr r0, _0217d4e0 ; =gMapManager ldr lr, [r4] ldr ip, [r4, #4] ldr r3, [r4, #8] @@ -1787,7 +1787,7 @@ func_ov30_0217d3b8: ; 0x0217d3b8 str lr, [sp, #4] str ip, [sp, #8] str r3, [sp, #0xc] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 addne sp, sp, #0x20 movne r0, #0 @@ -1840,7 +1840,7 @@ func_ov30_0217d3b8: ; 0x0217d3b8 arm_func_end func_ov30_0217d3b8 _0217d4d8: .word data_027e0f90 _0217d4dc: .word data_027e0f94 -_0217d4e0: .word data_027e0e60 +_0217d4e0: .word gMapManager _0217d4e4: .word 0x0000019a .global func_ov30_0217d4e8 @@ -1857,7 +1857,7 @@ func_ov30_0217d4e8: ; 0x0217d4e8 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} ldr r1, [r4] - ldr r0, _0217d684 ; =data_027e0e60 + ldr r0, _0217d684 ; =gMapManager str r1, [sp] ldr r1, [r4, #4] ldr r0, [r0] @@ -1866,7 +1866,7 @@ func_ov30_0217d4e8: ; 0x0217d4e8 add r2, sp, #0 mov r1, #0xff str r3, [sp, #8] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 addne sp, sp, #0x18 movne r0, #0 @@ -1956,7 +1956,7 @@ _0217d664: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov30_0217d4e8 -_0217d684: .word data_027e0e60 +_0217d684: .word gMapManager _0217d688: .word 0xffff8001 _0217d68c: .word 0x00002aaa @@ -1973,7 +1973,7 @@ func_ov30_0217d690: ; 0x0217d690 addne sp, sp, #0x48 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} - ldr r0, _0217d7d0 ; =data_027e0e60 + ldr r0, _0217d7d0 ; =gMapManager ldr ip, [r4] ldr r6, [r4, #4] ldr r3, [r4, #8] @@ -1983,7 +1983,7 @@ func_ov30_0217d690: ; 0x0217d690 str ip, [sp, #0x24] str r6, [sp, #0x28] str r3, [sp, #0x2c] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 addne sp, sp, #0x48 movne r0, #0 @@ -2028,7 +2028,7 @@ func_ov30_0217d690: ; 0x0217d690 mov r0, #6 str r0, [sp] ldrh r2, [r5, #0x9c] - ldr r0, _0217d7d0 ; =data_027e0e60 + ldr r0, _0217d7d0 ; =gMapManager add r1, sp, #0x18 str r2, [sp, #4] ldr r3, [r5, #0xa0] @@ -2045,7 +2045,7 @@ func_ov30_0217d690: ; 0x0217d690 .align 2, 0 arm_func_end func_ov30_0217d690 _0217d7cc: .word data_027e0f94 -_0217d7d0: .word data_027e0e60 +_0217d7d0: .word gMapManager _0217d7d4: .word 0x00000333 .global func_ov30_0217d7d8 @@ -2057,7 +2057,7 @@ func_ov30_0217d7d8: ; 0x0217d7d8 mov r11, #0 ldr r5, [r3] ldr r4, [r3, #4] - ldr r2, _0217d98c ; =data_027e0e60 + ldr r2, _0217d98c ; =gMapManager mov r10, r0 ldr r0, [r2] str r1, [sp] @@ -2069,7 +2069,7 @@ func_ov30_0217d7d8: ; 0x0217d7d8 add r1, sp, #0x18 add r2, sp, #0x14 str r3, [sp, #0x20] - bl func_ov00_0208433c + bl _ZN10MapManager18func_ov00_0208433cEP5Vec3pi mov r0, r11 ldrsh r2, [sp, #0x16] ldrsh r1, [sp, #0x14] @@ -2086,7 +2086,7 @@ func_ov30_0217d7d8: ; 0x0217d7d8 mov r4, r2, lsl #0x10 _0217d85c: ldr r0, [sp, #4] - ldr r5, _0217d98c ; =data_027e0e60 + ldr r5, _0217d98c ; =gMapManager mov r0, r0, lsl #0x10 mov r8, #0 mov r7, r0, asr #0x10 @@ -2097,7 +2097,7 @@ _0217d874: strh r0, [sp, #0xe] ldr r0, [r5] mov r1, r6 - bl func_ov00_02084324 + bl _ZN10MapManager16MapData_vfunc_a4Ev cmp r0, #0 beq _0217d934 ldrsh r1, [sp, #0x16] @@ -2114,7 +2114,7 @@ _0217d874: ldr r0, [r5] mov r1, r6 add r2, sp, #0x24 - bl func_ov00_0208439c + bl _ZN10MapManager18func_ov00_0208439cEv ldr r1, [r10, #8] ldr r0, [sp, #0x2c] ldr r3, [r10] @@ -2154,11 +2154,11 @@ _0217d934: blt _0217d85c cmp r11, #0 beq _0217d97c - ldr r0, _0217d98c ; =data_027e0e60 + ldr r0, _0217d98c ; =gMapManager ldr r2, [sp] ldr r0, [r0] add r1, sp, #0x10 - bl func_ov00_0208439c + bl _ZN10MapManager18func_ov00_0208439cEv _0217d97c: mov r0, r11 add sp, sp, #0x30 @@ -2166,7 +2166,7 @@ _0217d97c: .align 2, 0 arm_func_end func_ov30_0217d7d8 _0217d988: .word data_027e0f94 -_0217d98c: .word data_027e0e60 +_0217d98c: .word gMapManager .global func_ov30_0217d990 arm_func_start func_ov30_0217d990 @@ -4030,7 +4030,7 @@ _0217f250: add r3, sp, #0x5c ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0217f548 ; =data_027e0e60 + ldr r0, _0217f548 ; =gMapManager ldr r2, [sp, #0x5c] ldr r4, [sp, #0x60] ldr r3, [sp, #0x64] @@ -4040,7 +4040,7 @@ _0217f250: mov r2, #1 str r4, [sp, #0x18] str r3, [sp, #0x1c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x60] add r0, sp, #0x5c bl func_ov30_0217f088 @@ -4090,7 +4090,7 @@ _0217f2f4: ldr r0, [r0] bl func_ov00_020c47cc ldr r6, [r0, #4] - ldr r2, _0217f548 ; =data_027e0e60 + ldr r2, _0217f548 ; =gMapManager str r6, [sp, #0x50] ldr r4, [r0, #8] add r1, sp, #8 @@ -4102,7 +4102,7 @@ _0217f2f4: str r6, [sp, #8] str r4, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x54] _0217f3b8: ldr r0, _0217f55c ; =data_027e10b4 @@ -4214,7 +4214,7 @@ _0217f53c: .align 2, 0 arm_func_end func_ov30_0217f1c4 _0217f544: .word gAdventureFlags -_0217f548: .word data_027e0e60 +_0217f548: .word gMapManager _0217f54c: .word data_027e0ffc _0217f550: .word data_ov00_020e8398 _0217f554: .word data_027e0ff0 @@ -4296,7 +4296,7 @@ _0217f5f8: add r1, sp, #0x24 ldr r0, [r0] bl func_ov00_020c47cc - ldr r1, _0217f750 ; =data_027e0e60 + ldr r1, _0217f750 ; =gMapManager ldr r5, [r0, #4] ldr r3, [r0, #8] ldr r7, [r0, #0xc] @@ -4306,7 +4306,7 @@ _0217f5f8: str r5, [sp, #0x18] str r3, [sp, #0x1c] str r7, [sp, #0x20] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r6, r0 _0217f69c: str r5, [r4, #0x48] @@ -4360,7 +4360,7 @@ _0217f730: _0217f744: .word data_ov00_020e8398 _0217f748: .word data_027e0ff0 _0217f74c: .word data_027e0f94 -_0217f750: .word data_027e0e60 +_0217f750: .word gMapManager _0217f754: .word data_027e0f64 .global func_ov30_0217f758 @@ -4467,7 +4467,7 @@ _0217f880: add r3, sp, #0xc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0217faa0 ; =data_027e0e60 + ldr r0, _0217faa0 ; =gMapManager ldr r2, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] @@ -4477,7 +4477,7 @@ _0217f880: mov r2, #1 str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x10] add r0, sp, #0xc bl func_ov30_0217f088 @@ -4596,7 +4596,7 @@ _0217fa98: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_0217f77c -_0217faa0: .word data_027e0e60 +_0217faa0: .word gMapManager _0217faa4: .word data_027e0ffc _0217faa8: .word data_027e10b4 @@ -4701,7 +4701,7 @@ _0217fbb4: add r3, sp, #0xc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0217fd3c ; =data_027e0e60 + ldr r0, _0217fd3c ; =gMapManager ldr r2, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] @@ -4711,7 +4711,7 @@ _0217fbb4: mov r2, #1 str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x10] add r0, sp, #0xc bl func_ov30_0217f088 @@ -4788,7 +4788,7 @@ _0217fcf8: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_0217fb7c -_0217fd3c: .word data_027e0e60 +_0217fd3c: .word gMapManager _0217fd40: .word data_027e0ffc .global func_ov30_0217fd44 @@ -5410,9 +5410,9 @@ func_ov30_02180548: ; 0x02180548 bl func_ov00_020a5e9c cmp r0, #0x25 bne _02180594 - ldr r0, _021805a0 ; =data_027e0e60 + ldr r0, _021805a0 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r0, #7 bne _02180594 ldr r0, _021805a4 ; =gAdventureFlags @@ -5428,7 +5428,7 @@ _02180594: .align 2, 0 arm_func_end func_ov30_02180548 _0218059c: .word data_027e0d38 -_021805a0: .word data_027e0e60 +_021805a0: .word gMapManager _021805a4: .word gAdventureFlags _021805a8: .word data_ov30_021887ac @@ -5442,9 +5442,9 @@ func_ov30_021805ac: ; 0x021805ac bl func_ov00_020a5e9c cmp r0, #0x25 bne _021805f8 - ldr r0, _02180604 ; =data_027e0e60 + ldr r0, _02180604 ; =gMapManager ldr r0, [r0] - bl func_ov00_02082d08 + bl _ZN10MapManager18func_ov00_02082d08Ev cmp r0, #7 bne _021805f8 ldr r0, _02180608 ; =gAdventureFlags @@ -5460,7 +5460,7 @@ _021805f8: .align 2, 0 arm_func_end func_ov30_021805ac _02180600: .word data_027e0d38 -_02180604: .word data_027e0e60 +_02180604: .word gMapManager _02180608: .word gAdventureFlags _0218060c: .word data_ov30_021887b4 @@ -8261,7 +8261,7 @@ func_ov30_021824cc: ; 0x021824cc str r2, [sp, #4] str r1, [sp, #8] str r0, [sp, #0xc] - ldr r0, _02182628 ; =data_027e0e60 + ldr r0, _02182628 ; =gMapManager str r3, [sp, #0x10] add r2, r4, #0x860 ldr r0, [r0] @@ -8315,7 +8315,7 @@ _02182618: .align 2, 0 arm_func_end func_ov30_021824cc _02182624: .word 0x0000ffff -_02182628: .word data_027e0e60 +_02182628: .word gMapManager _0218262c: .word data_027e0fe4 _02182630: .word 0x424f4d42 @@ -8356,7 +8356,7 @@ func_ov30_02182634: ; 0x02182634 str r0, [sp, #8] str r2, [sp, #0xc] str r2, [sp, #0x10] - ldr r0, _02182ab8 ; =data_027e0e60 + ldr r0, _02182ab8 ; =gMapManager add r2, r4, #0x860 ldr r0, [r0] add r1, sp, #0x13c @@ -8618,7 +8618,7 @@ _02182960: .align 2, 0 arm_func_end func_ov30_02182634 _02182ab4: .word 0x0000ffff -_02182ab8: .word data_027e0e60 +_02182ab8: .word gMapManager _02182abc: .word _ZTV11FilterActor _02182ac0: .word 0x424f4d42 _02182ac4: .word data_027e0fe4 @@ -10040,7 +10040,7 @@ func_ov30_02183ca8: ; 0x02183ca8 ldr r2, [r2, #0x8c] ldr r1, [r0] ldr r4, [r2, #0x98] - ldr r2, _02183d7c ; =data_027e0e60 + ldr r2, _02183d7c ; =gMapManager str r1, [sp, #0x30] ldr r3, [r0, #4] add r1, sp, #0x30 @@ -10049,9 +10049,9 @@ func_ov30_02183ca8: ; 0x02183ca8 ldr r0, [r2] str r3, [sp, #0x38] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r2, [r7] - ldr r1, _02183d7c ; =data_027e0e60 + ldr r1, _02183d7c ; =gMapManager str r2, [sp, #0x24] ldr r2, [r7, #4] add r5, r4, r0 @@ -10061,7 +10061,7 @@ func_ov30_02183ca8: ; 0x02183ca8 str r2, [sp, #0x2c] add r1, sp, #0x24 mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _02183d78 ; =data_ov30_021894a0 add r0, r4, r0 str r0, [sp, #0x10] @@ -10076,7 +10076,7 @@ func_ov30_02183ca8: ; 0x02183ca8 str r1, [sp] str r0, [sp, #4] ldr r1, [r2, #0xa0] - ldr r0, _02183d7c ; =data_027e0e60 + ldr r0, _02183d7c ; =gMapManager str r1, [sp, #8] ldr r0, [r0] add r1, sp, #0x18 @@ -10088,7 +10088,7 @@ func_ov30_02183ca8: ; 0x02183ca8 .align 2, 0 arm_func_end func_ov30_02183ca8 _02183d78: .word data_ov30_021894a0 -_02183d7c: .word data_027e0e60 +_02183d7c: .word gMapManager .global func_ov30_02183d80 arm_func_start func_ov30_02183d80 @@ -10516,18 +10516,18 @@ _021841ec: ldr r0, _02184304 ; =data_ov00_020eec68 mov r1, #0xf bl func_ov00_020d716c - ldr r0, _02184308 ; =data_027e0e60 + ldr r0, _02184308 ; =gMapManager ldr r0, [r0] - bl func_ov00_02084740 + bl _ZN10MapManager18func_ov00_02084740Ev mov r1, r0 ldr r0, _02184304 ; =data_ov00_020eec68 mov r2, #0 mov r3, #0x7f bl func_ov00_020d70a4 - ldr r0, _02184308 ; =data_027e0e60 + ldr r0, _02184308 ; =gMapManager mov r1, #0 ldr r0, [r0] - bl func_ov00_02084924 + bl _ZN10MapManager18func_ov00_02084924Ej b _02184298 _0218424c: ldr r0, [r10, #0x88] @@ -10545,10 +10545,10 @@ _0218424c: mov r2, #0 mov r3, #0x7f bl func_ov00_020d70a4 - ldr r0, _02184308 ; =data_027e0e60 + ldr r0, _02184308 ; =gMapManager mov r1, #1 ldr r0, [r0] - bl func_ov00_02084924 + bl _ZN10MapManager18func_ov00_02084924Ej _02184298: ldr r0, [r10, #0x94] cmp r0, #0 @@ -10581,7 +10581,7 @@ _021842d4: _021842fc: .word data_027e0fc8 _02184300: .word data_027e0fe4 _02184304: .word data_ov00_020eec68 -_02184308: .word data_027e0e60 +_02184308: .word gMapManager _0218430c: .word data_ov00_020eec9c .global func_ov30_02184310 @@ -11340,7 +11340,7 @@ _021848f4: ldrh r10, [r4, #0x20] ble _021849cc ldr r9, [sp, #0x18] - ldr r11, _02185254 ; =data_027e0e60 + ldr r11, _02185254 ; =gMapManager ldr r5, _02185250 ; =data_027e0fe4 _02184940: ldr r1, [sp, #0x530] @@ -11362,7 +11362,7 @@ _02184940: ldr r3, [r7, #0x50] add r2, sp, #0x74 str r3, [sp, #0x7c] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 movne r8, #1 _02184998: @@ -11428,7 +11428,7 @@ _02184a34: ldrh r10, [r4, #0x20] ble _02184b10 ldr r9, [sp, #0x14] - ldr r11, _02185254 ; =data_027e0e60 + ldr r11, _02185254 ; =gMapManager ldr r5, _02185250 ; =data_027e0fe4 _02184a84: ldr r1, [sp, #0x4a4] @@ -11450,7 +11450,7 @@ _02184a84: ldr r3, [r7, #0x50] add r2, sp, #0x68 str r3, [sp, #0x70] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 movne r8, #1 _02184adc: @@ -11528,7 +11528,7 @@ _02184ba8: ldrh r10, [r4, #0x20] ble _02184c84 ldr r9, [sp, #0x10] - ldr r11, _02185254 ; =data_027e0e60 + ldr r11, _02185254 ; =gMapManager ldr r5, _02185250 ; =data_027e0fe4 _02184bf8: ldr r1, [sp, #0x3d0] @@ -11550,7 +11550,7 @@ _02184bf8: ldr r3, [r7, #0x50] add r2, sp, #0x5c str r3, [sp, #0x64] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 movne r8, #1 _02184c50: @@ -11626,7 +11626,7 @@ _02184d18: ldrh r10, [r4, #0x20] ble _02184df0 ldr r9, [sp, #0xc] - ldr r11, _02185254 ; =data_027e0e60 + ldr r11, _02185254 ; =gMapManager ldr r5, _02185250 ; =data_027e0fe4 _02184d64: ldr r1, [sp, #0x2fc] @@ -11648,7 +11648,7 @@ _02184d64: ldr r3, [r7, #0x50] add r2, sp, #0x50 str r3, [sp, #0x58] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 movne r8, #1 _02184dbc: @@ -11724,7 +11724,7 @@ _02184e84: ldrh r10, [r4, #0x20] ble _02184f50 ldr r9, [sp, #8] - ldr r5, _02185254 ; =data_027e0e60 + ldr r5, _02185254 ; =gMapManager ldr r6, _02185250 ; =data_027e0fe4 mov r11, r7 _02184ed4: @@ -11747,7 +11747,7 @@ _02184ed4: ldr r3, [r0, #0x50] ldr r0, [r5] str r3, [sp, #0x4c] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 movne r8, #1 _02184f2c: @@ -11819,7 +11819,7 @@ _02184fe4: ldrh r10, [r4, #0x20] ble _021850b0 ldr r9, [sp, #4] - ldr r5, _02185254 ; =data_027e0e60 + ldr r5, _02185254 ; =gMapManager ldr r6, _02185250 ; =data_027e0fe4 mov r11, r7 _02185034: @@ -11842,7 +11842,7 @@ _02185034: ldr r3, [r0, #0x50] ldr r0, [r5] str r3, [sp, #0x40] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 movne r8, #1 _0218508c: @@ -11914,7 +11914,7 @@ _02185144: ldrh r10, [r4, #0x20] ble _02185210 ldr r9, [sp] - ldr r5, _02185254 ; =data_027e0e60 + ldr r5, _02185254 ; =gMapManager ldr r6, _02185250 ; =data_027e0fe4 mov r11, r7 _02185194: @@ -11937,7 +11937,7 @@ _02185194: ldr r3, [r0, #0x50] ldr r0, [r5] str r3, [sp, #0x34] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 movne r8, #1 _021851ec: @@ -11973,7 +11973,7 @@ _02185240: arm_func_end func_ov30_02184868 _0218524c: .word data_ov30_02188b08 _02185250: .word data_027e0fe4 -_02185254: .word data_027e0e60 +_02185254: .word gMapManager _02185258: .word _ZTV11FilterActor _0218525c: .word 0x57544352 _02185260: .word 0x43485352 @@ -14280,7 +14280,7 @@ func_ov30_021872c4: ; 0x021872c4 stmdb sp!, {lr} sub sp, sp, #0xc ldr r2, [r1] - ldr r3, _02187300 ; =data_027e0e60 + ldr r3, _02187300 ; =gMapManager str r2, [sp] ldr ip, [r1, #4] mov r2, r0 @@ -14289,27 +14289,27 @@ func_ov30_021872c4: ; 0x021872c4 ldr r0, [r3] add r1, sp, #0 str ip, [sp, #8] - bl func_ov00_0208433c + bl _ZN10MapManager18func_ov00_0208433cEP5Vec3pi add sp, sp, #0xc ldmia sp!, {pc} .align 2, 0 arm_func_end func_ov30_021872c4 -_02187300: .word data_027e0e60 +_02187300: .word gMapManager .global func_ov30_02187304 arm_func_start func_ov30_02187304 func_ov30_02187304: ; 0x02187304 - ldr r2, _02187320 ; =data_027e0e60 + ldr r2, _02187320 ; =gMapManager mov r3, r0 ldr r0, [r2] mov r2, r1 - ldr ip, _02187324 ; =func_ov00_0208439c + ldr ip, _02187324 ; =_ZN10MapManager18func_ov00_0208439cEv mov r1, r3 bx ip .align 2, 0 arm_func_end func_ov30_02187304 -_02187320: .word data_027e0e60 -_02187324: .word func_ov00_0208439c +_02187320: .word gMapManager +_02187324: .word _ZN10MapManager18func_ov00_0208439cEv .global func_ov30_02187328 arm_func_start func_ov30_02187328 @@ -14373,11 +14373,11 @@ func_ov30_02187388: ; 0x02187388 func_ov30_021873bc: ; 0x021873bc stmdb sp!, {r3, r4, r5, lr} sub sp, sp, #8 - ldr r2, _02187568 ; =data_027e0e60 + ldr r2, _02187568 ; =gMapManager mov r5, r0 ldr r0, [r2] mov r4, r1 - bl func_ov00_02084324 + bl _ZN10MapManager16MapData_vfunc_a4Ev cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 @@ -14465,16 +14465,16 @@ _021874e8: sub r0, r0, #1 strh r0, [sp, #2] _02187524: - ldr r0, _02187568 ; =data_027e0e60 + ldr r0, _02187568 ; =gMapManager add r1, sp, #4 ldr r0, [r0] - bl func_ov00_02084324 + bl _ZN10MapManager16MapData_vfunc_a4Ev cmp r0, #0 beq _0218755c - ldr r0, _02187568 ; =data_027e0e60 + ldr r0, _02187568 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02084324 + bl _ZN10MapManager16MapData_vfunc_a4Ev cmp r0, #0 addne sp, sp, #8 movne r0, #1 @@ -14485,7 +14485,7 @@ _0218755c: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov30_021873bc -_02187568: .word data_027e0e60 +_02187568: .word gMapManager .global func_ov30_0218756c arm_func_start func_ov30_0218756c @@ -14522,15 +14522,15 @@ _021875d0: .word 0x000016a1 .global func_ov30_021875d4 arm_func_start func_ov30_021875d4 func_ov30_021875d4: ; 0x021875d4 - ldr r2, _021875e8 ; =data_027e0e60 - ldr ip, _021875ec ; =func_ov00_02084324 + ldr r2, _021875e8 ; =gMapManager + ldr ip, _021875ec ; =_ZN10MapManager16MapData_vfunc_a4Ev mov r1, r0 ldr r0, [r2] bx ip .align 2, 0 arm_func_end func_ov30_021875d4 -_021875e8: .word data_027e0e60 -_021875ec: .word func_ov00_02084324 +_021875e8: .word gMapManager +_021875ec: .word _ZN10MapManager16MapData_vfunc_a4Ev .global func_ov30_021875f0 arm_func_start func_ov30_021875f0 @@ -15178,7 +15178,7 @@ func_ov30_02187e18: ; 0x02187e18 mov r7, r3 ldr r6, [sp, #0x60] bl func_ov30_02187dfc - ldr r11, _02187eec ; =data_027e0e60 + ldr r11, _02187eec ; =gMapManager add r5, sp, #0x24 mov r4, #6 _02187e44: @@ -15231,7 +15231,7 @@ func_ov30_02187ee4: ; 0x02187ee4 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov30_02187ee4 -_02187eec: .word data_027e0e60 +_02187eec: .word gMapManager .global func_ov30_02187ef0 arm_func_start func_ov30_02187ef0 diff --git a/asm/ov31.inc b/asm/ov31.inc index 8e1593c2..0a95d7f1 100644 --- a/asm/ov31.inc +++ b/asm/ov31.inc @@ -1,7 +1,8 @@ #pragma once .extern Divide +.extern GiveShipPart .extern LoadTreasureItemFanfare -.extern _ZN11ItemManager10GiveRupeesEjj +.extern _ZN11ItemManager10GiveRupeesEsb .extern _ZN11ItemManager8GiveAmmoEit .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN14AdventureFlags3GetEj @@ -72,7 +73,7 @@ .extern data_027e0d78 .extern data_027e0dbc .extern data_027e0e28 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f94 .extern data_027e0fc8 @@ -153,7 +154,7 @@ .extern func_ov00_0207b89c .extern func_ov00_0207ba90 .extern func_ov00_0207bc48 -.extern func_ov00_02083918 +.extern _ZN10MapManager18func_ov00_02083918EiPi .extern func_ov00_0208726c .extern func_ov00_02087338 .extern func_ov00_02087400 @@ -183,7 +184,6 @@ .extern func_ov09_0211c1a8 .extern func_ov09_0211c980 .extern func_ov09_0211c9a0 -.extern func_ov09_0211ca20 .extern func_ov09_0211cac0 .extern func_ov09_0211cca4 .extern func_ov09_0211ccb4 diff --git a/asm/ov31.s b/asm/ov31.s index d3af2dc4..e6d08795 100644 --- a/asm/ov31.s +++ b/asm/ov31.s @@ -269,11 +269,11 @@ _0217c040: mov r2, ip mov r1, #0x44 bl func_ov00_02087338 - ldr r0, _0217c218 ; =data_027e0e60 + ldr r0, _0217c218 ; =gMapManager mov r1, #0x45 ldr r0, [r0] add r2, sp, #0x50 - bl func_ov00_02083918 + bl _ZN10MapManager18func_ov00_02083918EiPi cmp r0, #0 beq _0217c0f0 ldr r0, _0217c214 ; =data_027e0f64 @@ -362,7 +362,7 @@ _0217c184: .align 2, 0 arm_func_end func_ov31_0217bfb4 _0217c214: .word data_027e0f64 -_0217c218: .word data_027e0e60 +_0217c218: .word gMapManager _0217c21c: .word 0x0000ffff _0217c220: .word data_027e0fc8 @@ -1049,7 +1049,7 @@ _0217cae4: ldr r0, [r0] rsb r1, r1, #0 mov r2, #1 - bl _ZN11ItemManager10GiveRupeesEjj + bl _ZN11ItemManager10GiveRupeesEsb bl func_ov31_0217cf1c ldr r0, [r0, #0x470] cmp r0, #0 @@ -5443,7 +5443,7 @@ func_ov31_0217ff08: ; 0x0217ff08 bl func_ov31_02180260 mov r1, r0 mov r0, r4 - blx func_ov09_0211ca20 + blx GiveShipPart bl func_ov31_0217bdb8 bl func_ov31_0217bd80 cmp r0, #0 diff --git a/asm/ov32.inc b/asm/ov32.inc index a11b7585..28d66cbe 100644 --- a/asm/ov32.inc +++ b/asm/ov32.inc @@ -1,6 +1,11 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083780Ei +.extern _ZN10MapManager18func_ov00_02084be0Eii +.extern _ZN10MapManager18func_ov00_02084cc8Ei .extern _ZN10PlayerBase10SetVisibleEb .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList @@ -85,7 +90,6 @@ .extern data_027e0d78 .extern data_027e0e58 .extern data_027e0e5c -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c @@ -159,11 +163,6 @@ .extern func_ov00_02081f4c .extern func_ov00_02081f58 .extern func_ov00_02081f6c -.extern func_ov00_020836dc -.extern func_ov00_02083780 -.extern func_ov00_02083ee0 -.extern func_ov00_02084be0 -.extern func_ov00_02084cc8 .extern func_ov00_020875f8 .extern func_ov00_02087d34 .extern func_ov00_020888e8 @@ -347,4 +346,5 @@ .extern func_ov14_0213b984 .extern func_ov14_0213d480 .extern gAdventureFlags +.extern gMapManager .extern strncpy diff --git a/asm/ov32.s b/asm/ov32.s index 7d8f21a8..b13b71aa 100644 --- a/asm/ov32.s +++ b/asm/ov32.s @@ -1366,11 +1366,11 @@ func_ov32_0217cdd8: ; 0x0217cdd8 bl func_ov32_0217d354 cmp r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _0217ce1c ; =data_027e0e60 + ldr r0, _0217ce1c ; =gMapManager ldrh r1, [r4, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 ldmeqia sp!, {r4, pc} ldr r0, [r4, #0x184] @@ -1380,7 +1380,7 @@ func_ov32_0217cdd8: ; 0x0217cdd8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov32_0217cdd8 -_0217ce1c: .word data_027e0e60 +_0217ce1c: .word gMapManager .global func_ov32_0217ce20 arm_func_start func_ov32_0217ce20 @@ -1525,11 +1525,11 @@ _0217cfc4: bl func_ov00_020cca50 cmp r0, #0 beq _0217d030 - ldr r0, _0217d174 ; =data_027e0e60 + ldr r0, _0217d174 ; =gMapManager ldrh r1, [r5, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0217d030 mov r0, r5 @@ -1625,7 +1625,7 @@ _0217d0f8: .align 2, 0 arm_func_end func_ov32_0217cfa4 _0217d170: .word data_027e0f90 -_0217d174: .word data_027e0e60 +_0217d174: .word gMapManager _0217d178: .word 0x0000071c _0217d17c: .word data_027e0764 _0217d180: .word 0x0000038e @@ -1929,7 +1929,7 @@ _0217d500: cmpne r0, #1 bne _0217d570 ldr r1, [r5, #0x48] - ldr r0, _0217d750 ; =data_027e0e60 + ldr r0, _0217d750 ; =gMapManager str r1, [sp, #0x10] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -1938,7 +1938,7 @@ _0217d500: add r1, sp, #0x10 str r2, [sp, #0x18] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r5, #0x4c] ldr r0, [r5, #0x184] mov r1, #2 @@ -2074,7 +2074,7 @@ _0217d744: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov32_0217d478 -_0217d750: .word data_027e0e60 +_0217d750: .word gMapManager _0217d754: .word func_ov32_0217c850 _0217d758: .word data_027e0e58 _0217d75c: .word 0x00000239 @@ -3065,11 +3065,11 @@ _0217e3e4: bl func_ov00_020cca50 cmp r0, #0 beq _0217e448 - ldr r0, _0217e590 ; =data_027e0e60 + ldr r0, _0217e590 ; =gMapManager ldrh r1, [r5, #0x24] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0217e448 mov r0, r5 @@ -3166,7 +3166,7 @@ _0217e514: .align 2, 0 arm_func_end func_ov32_0217e3c4 _0217e58c: .word data_027e0f90 -_0217e590: .word data_027e0e60 +_0217e590: .word gMapManager _0217e594: .word 0x0000071c _0217e598: .word data_027e0764 _0217e59c: .word 0x0000038e @@ -5190,7 +5190,7 @@ func_ov32_0217feac: ; 0x0217feac cmp r0, #0 beq _0217ff6c ldr r1, _02180048 ; =data_027e0f94 - ldr r0, _0218004c ; =data_027e0e60 + ldr r0, _0218004c ; =gMapManager ldr r3, [r1] ldr r2, [r1, #4] str r3, [sp, #8] @@ -5206,11 +5206,11 @@ func_ov32_0217feac: ; 0x0217feac str r2, [sp, #0x18] ldr r2, [r6, #0x50] str r2, [sp, #0x1c] - bl func_ov00_02083780 + bl _ZN10MapManager18func_ov00_02083780Ei mov r7, r0 add r1, sp, #8 mov r0, r5 - bl func_ov00_02083780 + bl _ZN10MapManager18func_ov00_02083780Ei cmp r7, r0 moveq r4, #1 _0217ff6c: @@ -5274,7 +5274,7 @@ _0217ffd0: arm_func_end func_ov32_0217feac _02180044: .word data_027e0f90 _02180048: .word data_027e0f94 -_0218004c: .word data_027e0e60 +_0218004c: .word gMapManager _02180050: .word data_027e0764 _02180054: .word 0x0000ffff _02180058: .word data_02050f54 @@ -6827,10 +6827,10 @@ _0218158c: blx r3 ldmia sp!, {r4, pc} _021815b8: - ldr r0, _02181624 ; =data_027e0e60 + ldr r0, _02181624 ; =gMapManager ldrsh r1, [r4, #0x34] ldr r0, [r0] - bl func_ov00_02084cc8 + bl _ZN10MapManager18func_ov00_02084cc8Ei cmp r0, #0 mov r0, r4 beq _021815ec @@ -6858,7 +6858,7 @@ _02181614: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov32_02181558 -_02181624: .word data_027e0e60 +_02181624: .word gMapManager .global func_ov32_02181628 arm_func_start func_ov32_02181628 @@ -7977,7 +7977,7 @@ func_ov32_0218252c: ; 0x0218252c add r1, r4, #0x78 mov r2, r0 bl func_01ff9bc4 - ldr r1, _0218269c ; =data_027e0e60 + ldr r1, _0218269c ; =gMapManager mov r0, r4 ldr r5, [r1] bl func_ov00_0208b9cc @@ -8039,7 +8039,7 @@ _02182670: arm_func_end func_ov32_0218252c _02182694: .word 0x0000ffff _02182698: .word data_ov32_02185c24 -_0218269c: .word data_027e0e60 +_0218269c: .word gMapManager _021826a0: .word 0x0000019a _021826a4: .word data_027e0e58 _021826a8: .word data_027e0ffc @@ -8063,14 +8063,14 @@ func_ov32_021826c4: ; 0x021826c4 cmp r1, #0 moveq r0, #1 ldmeqia sp!, {r3, pc} - ldr r0, _021826ec ; =data_027e0e60 + ldr r0, _021826ec ; =gMapManager mov r2, #3 ldr r0, [r0] - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov32_021826c4 -_021826ec: .word data_027e0e60 +_021826ec: .word gMapManager .global func_ov32_021826f0 arm_func_start func_ov32_021826f0 @@ -8992,7 +8992,7 @@ func_ov32_0218318c: ; 0x0218318c mov r6, r2, lsr #0xc orr r6, r6, r0, lsl #20 ldr r0, [r4, #0x50] - ldr r5, _02183344 ; =data_027e0e60 + ldr r5, _02183344 ; =gMapManager add r0, r0, r6 str r0, [r4, #0x238] ldr r0, [r5] @@ -9021,7 +9021,7 @@ func_ov32_0218318c: ; 0x0218318c mla r6, r5, r3, r6 mov r2, #1 add r5, r6, #0x800 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, r5 str r0, [r4, #0x234] mov r0, #0 @@ -9037,7 +9037,7 @@ _02183334: .word 0x00000e39 _02183338: .word 0xfffff8e4 _0218333c: .word 0x00001801 _02183340: .word data_02050f54 -_02183344: .word data_027e0e60 +_02183344: .word gMapManager .global func_ov32_02183348 arm_func_start func_ov32_02183348 @@ -9098,7 +9098,7 @@ _02183414: ldr r5, [lr] str r0, [sp, #0xc] ldr r0, [r4, #0x4c] - ldr ip, _0218353c ; =data_027e0e60 + ldr ip, _0218353c ; =gMapManager str r0, [sp, #0x10] ldr r6, [r4, #0x50] ldr r0, [lr, #4] @@ -9122,7 +9122,7 @@ _02183414: mov r2, #1 str r6, [lr, #4] sub r5, r5, #0x400 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x800 add r0, r0, r5 str r0, [r4, #0x234] @@ -9132,7 +9132,7 @@ _02183498: ldr r5, [lr] str r0, [sp] ldr r0, [r4, #0x4c] - ldr ip, _0218353c ; =data_027e0e60 + ldr ip, _0218353c ; =gMapManager str r0, [sp, #4] ldr r6, [r4, #0x50] ldr r0, [lr, #4] @@ -9156,7 +9156,7 @@ _02183498: mov r2, #1 str r6, [lr, #4] sub r5, r5, #0x400 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x800 add r0, r0, r5 str r0, [r4, #0x234] @@ -9172,7 +9172,7 @@ _02183518: arm_func_end func_ov32_02183348 _02183534: .word data_027e0764 _02183538: .word 0x00002001 -_0218353c: .word data_027e0e60 +_0218353c: .word gMapManager .global func_ov32_02183540 arm_func_start func_ov32_02183540 @@ -9384,7 +9384,7 @@ func_ov32_02183818: ; 0x02183818 mov r4, r0 ldmia r1, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _021838cc ; =data_027e0e60 + ldr r0, _021838cc ; =gMapManager ldr lr, [sp, #0x18] ldr ip, [sp, #0x1c] ldr r3, [sp, #0x20] @@ -9394,7 +9394,7 @@ func_ov32_02183818: ; 0x02183818 str lr, [sp] str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x1c] cmp r1, r0 strlt r0, [sp, #0x1c] @@ -9424,7 +9424,7 @@ func_ov32_02183818: ; 0x02183818 .align 2, 0 arm_func_end func_ov32_02183818 _021838c8: .word data_027e0f94 -_021838cc: .word data_027e0e60 +_021838cc: .word gMapManager _021838d0: .word 0x00000333 .global func_ov32_021838d4 @@ -10633,7 +10633,7 @@ func_ov32_02184890: ; 0x02184890 cmp r3, #0 beq _021848f8 ldr r1, [r3, #0x48] - ldr r0, _02184948 ; =data_027e0e60 + ldr r0, _02184948 ; =gMapManager str r1, [r4, #0x48] ldr r2, [r3, #0x4c] add r1, sp, #0 @@ -10648,7 +10648,7 @@ func_ov32_02184890: ; 0x02184890 str r3, [sp, #4] ldr r3, [r4, #0x50] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x9a add r0, r0, #0x900 str r0, [r4, #0x4c] @@ -10678,7 +10678,7 @@ _0218493c: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov32_02184890 -_02184948: .word data_027e0e60 +_02184948: .word gMapManager .global func_ov32_0218494c arm_func_start func_ov32_0218494c @@ -10810,7 +10810,7 @@ func_ov32_02184a9c: ; 0x02184a9c mov r1, r1, lsl #0x2 ldrsh r1, [r0, r1] ldr r2, [sp, #0x24] - ldr lr, _02184b9c ; =data_027e0e60 + ldr lr, _02184b9c ; =gMapManager smulbb r1, r1, ip add r1, r1, #0x800 add r3, r2, r1, asr #12 @@ -10836,7 +10836,7 @@ func_ov32_02184a9c: ; 0x02184a9c str r3, [sp, #0x18] str r5, [sp, #0x1c] str r6, [sp, #0x20] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x28] ldr r3, _02184ba0 ; =0x0000059a mov r0, #0x1f @@ -10859,7 +10859,7 @@ func_ov32_02184a9c: ; 0x02184a9c arm_func_end func_ov32_02184a9c _02184b94: .word data_02050f54 _02184b98: .word 0x00000266 -_02184b9c: .word data_027e0e60 +_02184b9c: .word gMapManager _02184ba0: .word 0x0000059a _02184ba4: .word data_ov00_020e9370 diff --git a/asm/ov33.inc b/asm/ov33.inc index af65f5a6..48d15b00 100644 --- a/asm/ov33.inc +++ b/asm/ov33.inc @@ -68,14 +68,13 @@ .extern data_027e0c68 .extern data_027e0e28 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f68 .extern data_027e0f6c .extern data_027e0f94 .extern data_027e0fa0 .extern data_027e0fac -.extern data_027e0fbc .extern data_027e0fc8 .extern data_027e0fe0 .extern data_027e0fe4 @@ -115,8 +114,8 @@ .extern func_ov00_0207a1c8 .extern func_ov00_0207c474 .extern func_ov00_02081f4c -.extern func_ov00_020836dc -.extern func_ov00_02083ee0 +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager16MapData_vfunc_68Ev .extern func_ov00_0208726c .extern func_ov00_02087338 .extern func_ov00_020876bc @@ -249,4 +248,5 @@ .extern func_ov14_02145f0c .extern func_ov18_02160a54 .extern func_ov18_02160a64 +.extern gHealthManager .extern strncpy diff --git a/asm/ov33.s b/asm/ov33.s index c866e95e..23556bb9 100644 --- a/asm/ov33.s +++ b/asm/ov33.s @@ -846,7 +846,7 @@ func_ov33_0217c808: ; 0x0217c808 sub sp, sp, #0xc mov r4, r0 ldr r1, [r4, #0x48] - ldr r0, _0217c8ec ; =data_027e0e60 + ldr r0, _0217c8ec ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -855,7 +855,7 @@ func_ov33_0217c808: ; 0x0217c808 add r1, sp, #0 mov r2, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r1, r0, #0x800 mov r0, r4 str r1, [r4, #0x4c] @@ -901,7 +901,7 @@ func_ov33_0217c808: ; 0x0217c808 ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov33_0217c808 -_0217c8ec: .word data_027e0e60 +_0217c8ec: .word gMapManager _0217c8f0: .word data_02050f54 _0217c8f4: .word 0x00000666 _0217c8f8: .word data_027e0ffc @@ -917,7 +917,7 @@ func_ov33_0217c8fc: ; 0x0217c8fc mov r3, #0 str r0, [sp, #0x18] ldr r1, [r4, #0x4c] - ldr r0, _0217c988 ; =data_027e0e60 + ldr r0, _0217c988 ; =gMapManager str r1, [sp, #0x1c] ldr r2, [r4, #0x50] add r1, sp, #0x18 @@ -947,7 +947,7 @@ _0217c97c: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov33_0217c8fc -_0217c988: .word data_027e0e60 +_0217c988: .word gMapManager .global func_ov33_0217c98c arm_func_start func_ov33_0217c98c @@ -1126,11 +1126,11 @@ _0217cb94: ; jump table b _0217cc8c ; case 3 b _0217ccc8 ; case 4 _0217cba8: - ldr r0, _0217cf20 ; =data_027e0e60 + ldr r0, _0217cf20 ; =gMapManager ldrh r1, [r5, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0217cf08 mov r0, r5 @@ -1162,7 +1162,7 @@ _0217cc24: mov r0, r5 bl func_ov33_0217c98c ldr r1, [r5, #0x48] - ldr r0, _0217cf20 ; =data_027e0e60 + ldr r0, _0217cf20 ; =gMapManager str r1, [sp, #0x1c] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -1171,7 +1171,7 @@ _0217cc24: add r1, sp, #0x1c str r2, [sp, #0x24] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x4c] add r0, r0, #0x800 cmp r1, r0 @@ -1276,11 +1276,11 @@ _0217cdbc: ; jump table b _0217ceb4 ; case 3 b _0217cef0 ; case 4 _0217cdd0: - ldr r0, _0217cf20 ; =data_027e0e60 + ldr r0, _0217cf20 ; =gMapManager ldrh r1, [r5, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0217cf08 mov r0, r5 @@ -1312,7 +1312,7 @@ _0217ce4c: mov r0, r5 bl func_ov33_0217c98c ldr r1, [r5, #0x48] - ldr r0, _0217cf20 ; =data_027e0e60 + ldr r0, _0217cf20 ; =gMapManager str r1, [sp, #0x10] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -1321,7 +1321,7 @@ _0217ce4c: add r1, sp, #0x10 str r2, [sp, #0x18] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x4c] add r0, r0, #0x800 cmp r1, r0 @@ -1368,7 +1368,7 @@ _0217cf08: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov33_0217ca88 -_0217cf20: .word data_027e0e60 +_0217cf20: .word gMapManager _0217cf24: .word data_027e0ffc _0217cf28: .word 0x000001fb @@ -1755,7 +1755,7 @@ _0217d3b0: mov r0, #1 ldmia sp!, {r4, pc} _0217d3d0: - ldr r0, _0217d3f4 ; =data_027e0fbc + ldr r0, _0217d3f4 ; =gHealthManager mov r2, #5 ldr r1, [r0] mov r0, #1 @@ -1767,7 +1767,7 @@ _0217d3e8: .align 2, 0 arm_func_end func_ov33_0217d394 _0217d3f0: .word data_027e0e28 -_0217d3f4: .word data_027e0fbc +_0217d3f4: .word gHealthManager .global func_ov33_0217d3f8 arm_func_start func_ov33_0217d3f8 @@ -1780,7 +1780,7 @@ func_ov33_0217d3f8: ; 0x0217d3f8 beq _0217d444 cmp r1, #0x1f bne _0217d484 - ldr r1, _0217d48c ; =data_027e0fbc + ldr r1, _0217d48c ; =gHealthManager ldr r1, [r1] ldrsh r1, [r1, #8] mov r1, r1, lsl #0x18 @@ -1793,7 +1793,7 @@ _0217d43c: mov r0, r4 ldmia sp!, {r4, pc} _0217d444: - ldr r0, _0217d48c ; =data_027e0fbc + ldr r0, _0217d48c ; =gHealthManager ldr r0, [r0] ldrsh r0, [r0, #4] sub r1, r0, #0x10 @@ -1815,7 +1815,7 @@ _0217d484: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov33_0217d3f8 -_0217d48c: .word data_027e0fbc +_0217d48c: .word gHealthManager .global func_ov33_0217d490 arm_func_start func_ov33_0217d490 diff --git a/asm/ov34.inc b/asm/ov34.inc index 451d7192..bda56769 100644 --- a/asm/ov34.inc +++ b/asm/ov34.inc @@ -71,7 +71,7 @@ .extern data_027e0764 .extern data_027e0d0c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f94 @@ -129,11 +129,11 @@ .extern func_ov00_0207c31c .extern func_ov00_0207c444 .extern func_ov00_02081f4c -.extern func_ov00_02083908 -.extern func_ov00_02083948 -.extern func_ov00_02083a1c -.extern func_ov00_02083ee0 -.extern func_ov00_02084088 +.extern _ZN10MapManager18func_ov00_02083908EcPi +.extern _ZN10MapManager18Set_MapData_Unk_16Eci +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_54Ev .extern func_ov00_02087400 .extern func_ov00_02087d34 .extern func_ov00_02087d84 diff --git a/asm/ov34.s b/asm/ov34.s index 5fbf04f8..0e2e4280 100644 --- a/asm/ov34.s +++ b/asm/ov34.s @@ -1321,7 +1321,7 @@ func_ov34_0217ceb0: ; 0x0217ceb0 func_ov34_0217cf74: ; 0x0217cf74 stmdb sp!, {r3, r4, lr} sub sp, sp, #0x1c - ldr r0, _0217d008 ; =data_027e0e60 + ldr r0, _0217d008 ; =gMapManager mov r3, #0 mov r1, #0xff strb r1, [sp, #4] @@ -1340,14 +1340,14 @@ _0217cfa4: add r2, sp, #0 mov r0, r4 mov r1, #1 - bl func_ov00_02083908 + bl _ZN10MapManager18func_ov00_02083908EcPi cmp r0, #0 addeq sp, sp, #0x1c ldmeqia sp!, {r3, r4, pc} mov r0, r4 mov r1, #1 mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci ldr r0, _0217d00c ; =data_027e0f64 add r1, sp, #0 ldr r0, [r0] @@ -1359,7 +1359,7 @@ _0217cfa4: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov34_0217cf74 -_0217d008: .word data_027e0e60 +_0217d008: .word gMapManager _0217d00c: .word data_027e0f64 .global func_ov34_0217d010 @@ -1367,7 +1367,7 @@ _0217d00c: .word data_027e0f64 func_ov34_0217d010: ; 0x0217d010 stmdb sp!, {r3, r4, lr} sub sp, sp, #0x1c - ldr r0, _0217d0a4 ; =data_027e0e60 + ldr r0, _0217d0a4 ; =gMapManager mov r3, #0 mov r1, #0xff strb r1, [sp, #4] @@ -1386,14 +1386,14 @@ _0217d040: add r2, sp, #0 mov r0, r4 mov r1, #4 - bl func_ov00_02083908 + bl _ZN10MapManager18func_ov00_02083908EcPi cmp r0, #0 addeq sp, sp, #0x1c ldmeqia sp!, {r3, r4, pc} mov r0, r4 mov r1, #4 mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci ldr r0, _0217d0a8 ; =data_027e0f64 add r1, sp, #0 ldr r0, [r0] @@ -1405,7 +1405,7 @@ _0217d040: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov34_0217d010 -_0217d0a4: .word data_027e0e60 +_0217d0a4: .word gMapManager _0217d0a8: .word data_027e0f64 .global func_ov34_0217d0ac @@ -1413,7 +1413,7 @@ _0217d0a8: .word data_027e0f64 func_ov34_0217d0ac: ; 0x0217d0ac stmdb sp!, {r3, r4, lr} sub sp, sp, #0x1c - ldr r0, _0217d140 ; =data_027e0e60 + ldr r0, _0217d140 ; =gMapManager mov r3, #0 mov r1, #0xff strb r1, [sp, #4] @@ -1432,14 +1432,14 @@ _0217d0dc: add r2, sp, #0 mov r0, r4 mov r1, #3 - bl func_ov00_02083908 + bl _ZN10MapManager18func_ov00_02083908EcPi cmp r0, #0 addeq sp, sp, #0x1c ldmeqia sp!, {r3, r4, pc} mov r0, r4 mov r1, #3 mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci ldr r0, _0217d144 ; =data_027e0f64 add r1, sp, #0 ldr r0, [r0] @@ -1451,7 +1451,7 @@ _0217d0dc: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov34_0217d0ac -_0217d140: .word data_027e0e60 +_0217d140: .word gMapManager _0217d144: .word data_027e0f64 .global func_ov34_0217d148 @@ -2223,11 +2223,11 @@ _0217db48: ldr r0, [r0] ldr r1, _0217decc ; =0x000b00df bl func_ov00_020cfc70 - ldr r0, _0217ded0 ; =data_027e0e60 + ldr r0, _0217ded0 ; =gMapManager mov r1, #1 ldr r0, [r0] mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci ldr r0, _0217de98 ; =data_ov34_021861a0 mov r1, #0 ldr r2, [r0, #0x8c] @@ -2386,7 +2386,7 @@ _0217dec0: .word data_ov34_02186308 _0217dec4: .word data_ov34_02186320 _0217dec8: .word data_027e103c _0217decc: .word 0x000b00df -_0217ded0: .word data_027e0e60 +_0217ded0: .word gMapManager .global func_ov34_0217ded4 arm_func_start func_ov34_0217ded4 @@ -6619,7 +6619,7 @@ _02181b50: add r2, r6, #0x1000 ldrh r4, [r0, #0x86] ldr r3, [r2, #0xd04] - ldr r1, _02181d00 ; =data_027e0e60 + ldr r1, _02181d00 ; =gMapManager str r3, [sp, #0xc] ldr r3, [r2, #0xd08] ldr r0, [r1] @@ -6628,7 +6628,7 @@ _02181b50: add r1, sp, #0xc mov r2, #0 str r3, [sp, #0x14] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev mov r1, r4, asr #0x4 mov r5, r1, lsl #0x1 add r0, r0, #0xcd @@ -6722,7 +6722,7 @@ _02181c8c: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov34_02181a00 -_02181d00: .word data_027e0e60 +_02181d00: .word gMapManager _02181d04: .word data_02050f54 _02181d08: .word data_027e0ffc _02181d0c: .word 0x000002fa @@ -10712,16 +10712,16 @@ _021853d8: .word func_ov00_020b7d74 func_ov34_021853dc: ; 0x021853dc stmdb sp!, {r4, lr} sub sp, sp, #0x30 - ldr r1, _02185580 ; =data_027e0e60 + ldr r1, _02185580 ; =gMapManager mov r4, r0 ldr r1, [r1] add r0, sp, #8 add r2, r4, #0x48 - bl func_ov00_02083a1c - ldr r0, _02185580 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + ldr r0, _02185580 ; =gMapManager add r1, sp, #8 ldr r0, [r0] - bl func_ov00_02084088 + bl _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #5 cmpne r0, #6 cmpne r0, #0x14 @@ -10821,7 +10821,7 @@ _02185568: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov34_021853dc -_02185580: .word data_027e0e60 +_02185580: .word gMapManager _02185584: .word data_027e0fec _02185588: .word data_027e0f6c _0218558c: .word data_027e0e58 diff --git a/asm/ov35.inc b/asm/ov35.inc index 65396aad..ae55a040 100644 --- a/asm/ov35.inc +++ b/asm/ov35.inc @@ -1,6 +1,8 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_020836bcEjPi .extern _ZN10PlayerBase10SetVisibleEb .extern _ZN11ItemManager12GetItemModelEj .extern _ZN11ItemManager7AddItemEi @@ -88,7 +90,7 @@ .extern data_027e0c68 .extern data_027e0d0c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f90 .extern data_027e0f94 @@ -164,8 +166,6 @@ .extern func_ov00_0207c444 .extern func_ov00_0207c474 .extern func_ov00_02081f4c -.extern func_ov00_020836bc -.extern func_ov00_02083ee0 .extern func_ov00_02087584 .extern func_ov00_020875f8 .extern func_ov00_02087d34 diff --git a/asm/ov35.s b/asm/ov35.s index 4253f687..be34b773 100644 --- a/asm/ov35.s +++ b/asm/ov35.s @@ -2798,7 +2798,7 @@ func_ov35_0217e320: ; 0x0217e320 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} ldr r2, [sp, #0x24] - ldr r0, _0217e3d4 ; =data_027e0e60 + ldr r0, _0217e3d4 ; =gMapManager ldr r1, [sp, #0x28] str r2, [sp, #0x18] ldr r2, [sp, #0x2c] @@ -2807,7 +2807,7 @@ func_ov35_0217e320: ; 0x0217e320 ldr r0, [r0] add r1, sp, #0x18 mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x28] mov r3, #0x800 str r3, [sp] @@ -2826,7 +2826,7 @@ func_ov35_0217e320: ; 0x0217e320 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov35_0217e320 -_0217e3d4: .word data_027e0e60 +_0217e3d4: .word gMapManager _0217e3d8: .word data_ov00_020e9370 .global func_ov35_0217e3dc @@ -8082,11 +8082,11 @@ _02182d70: str r1, [sp, #0xac] str r0, [sp, #0xb4] _02182d84: - ldr r0, _02182f94 ; =data_027e0e60 + ldr r0, _02182f94 ; =gMapManager add r2, sp, #0x94 ldr r0, [r0] mov r1, #1 - bl func_ov00_020836bc + bl _ZN10MapManager18func_ov00_020836bcEjPi ldr r5, [sp, #0xac] ldr r3, [sp, #0xb0] ldr r2, [sp, #0xb4] @@ -8177,7 +8177,7 @@ _02182e40: str r8, [sp, #0xc] mov r1, #1 str r1, [sp, #0x10] - ldr r0, _02182f94 ; =data_027e0e60 + ldr r0, _02182f94 ; =gMapManager add r1, sp, #0xb8 ldr r0, [r0] add r2, sp, #0x28 @@ -8217,7 +8217,7 @@ _02182e40: _02182f88: .word data_027e0f64 _02182f8c: .word data_027e0f94 _02182f90: .word data_027e0764 -_02182f94: .word data_027e0e60 +_02182f94: .word gMapManager _02182f98: .word 0x0000ffff _02182f9c: .word 0x0000099a _02182fa0: .word data_027e0fe8 @@ -9242,7 +9242,7 @@ _02183d8c: adc r0, r0, #0 mov r1, r1, lsr #0xc ldr r2, [sp, #0x24] - ldr lr, _02183e90 ; =data_027e0e60 + ldr lr, _02183e90 ; =gMapManager adds r8, ip, #0x800 orr r1, r1, r0, lsl #20 add ip, r2, r1 @@ -9259,7 +9259,7 @@ _02183d8c: str ip, [sp, #0x18] str r3, [sp, #0x1c] str r8, [sp, #0x20] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x28] str r5, [sp] ldrsh r1, [r7, #0x78] @@ -9293,7 +9293,7 @@ _02183e80: .word 0x0000019a _02183e84: .word 0x00000ccd _02183e88: .word 0x00000555 _02183e8c: .word data_02050f54 -_02183e90: .word data_027e0e60 +_02183e90: .word gMapManager _02183e94: .word data_ov00_020e9370 .global func_ov35_02183e98 diff --git a/asm/ov36.inc b/asm/ov36.inc index daedd1b4..69cbd0f8 100644 --- a/asm/ov36.inc +++ b/asm/ov36.inc @@ -76,7 +76,7 @@ .extern data_027e0d0c .extern data_027e0d3c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f90 @@ -157,17 +157,17 @@ .extern func_ov00_0207c5d4 .extern func_ov00_02081f58 .extern func_ov00_02081f6c -.extern func_ov00_020833f4 -.extern func_ov00_02083400 -.extern func_ov00_020836dc -.extern func_ov00_02083770 -.extern func_ov00_02083918 -.extern func_ov00_02083948 -.extern func_ov00_02083958 -.extern func_ov00_020839d4 -.extern func_ov00_020839f8 -.extern func_ov00_02084b38 -.extern func_ov00_02084be0 +.extern _ZN10MapManager18Get_MapData_Unk_d0Ev +.extern _ZN10MapManager18Get_MapData_Unk_d8Ev +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_02083918EiPi +.extern _ZN10MapManager18Set_MapData_Unk_16Eci +.extern _ZN10MapManager18func_ov00_02083958Ei +.extern _ZN10MapManager18func_ov00_020839d4Ev +.extern _ZN10MapManager18func_ov00_020839f8Ev +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084be0Eii .extern func_ov00_0208726c .extern func_ov00_02087d34 .extern func_ov00_02088000 diff --git a/asm/ov36.s b/asm/ov36.s index a62b2ce8..57175a4b 100644 --- a/asm/ov36.s +++ b/asm/ov36.s @@ -1824,18 +1824,18 @@ _0217d56c: ldr r1, [r1, #0x28] add r0, r0, #0x1800 bl func_ov17_02168660 - ldr r0, _0217d6b0 ; =data_027e0e60 + ldr r0, _0217d6b0 ; =gMapManager mov r1, #3 ldr r0, [r0] mov r2, r1 mov r3, #0 - bl func_ov00_02084b38 - ldr r0, _0217d6b0 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02084b38Eiii + ldr r0, _0217d6b0 ; =gMapManager mov r1, #4 ldr r0, [r0] mov r2, #3 mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldr r0, _0217d680 ; =gAdventureFlags mov r1, #0xeb ldr r0, [r0] @@ -1871,7 +1871,7 @@ _0217d6a0: .word data_ov36_0218683e _0217d6a4: .word 0x00000333 _0217d6a8: .word 0x00001610 _0217d6ac: .word data_027e0fec -_0217d6b0: .word data_027e0e60 +_0217d6b0: .word gMapManager _0217d6b4: .word 0x0000011e _0217d6b8: .word 0x0000011f @@ -2371,11 +2371,11 @@ func_ov36_0217dd98: ; 0x0217dd98 moveq r0, #0 streq r0, [r4, #0x138] ldmeqia sp!, {r4, pc} - ldr r0, _0217ddfc ; =data_027e0e60 + ldr r0, _0217ddfc ; =gMapManager ldrh r1, [r4, #0x20] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0217ddf0 ldr r0, [r4, #0x138] @@ -2391,7 +2391,7 @@ _0217ddf0: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov36_0217dd98 -_0217ddfc: .word data_027e0e60 +_0217ddfc: .word gMapManager .global func_ov36_0217de00 arm_func_start func_ov36_0217de00 @@ -3203,7 +3203,7 @@ _0217e970: str r0, [r6, #0x88] _0217e978: ldr r1, [r6, #0x48] - ldr r0, _0217eb4c ; =data_027e0e60 + ldr r0, _0217eb4c ; =gMapManager str r1, [sp, #0xc] ldr r1, [r6, #0x4c] ldr r0, [r0] @@ -3213,7 +3213,7 @@ _0217e978: str r1, [sp, #0x14] ldrh r1, [r6, #0x22] ldr r4, _0217eb34 ; =0x00000337 - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji ldrh r2, [r6, #0x78] ldr r5, _0217eb50 ; =data_02050f54 mov r1, #0x3800 @@ -3323,7 +3323,7 @@ _0217eb3c: .word data_027e0fc8 _0217eb40: .word data_027e0fe4 _0217eb44: .word 0x504c444d _0217eb48: .word 0x0000219a -_0217eb4c: .word data_027e0e60 +_0217eb4c: .word gMapManager _0217eb50: .word data_02050f54 _0217eb54: .word data_027e0e58 @@ -3510,7 +3510,7 @@ func_ov36_0217ed50: ; 0x0217ed50 b _0217eef8 _0217ede8: ldr r1, [r4, #0x48] - ldr r0, _0217ef0c ; =data_027e0e60 + ldr r0, _0217ef0c ; =gMapManager str r1, [sp] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -3519,31 +3519,31 @@ _0217ede8: add r2, sp, #0 str r1, [sp, #8] ldrh r1, [r4, #0x22] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r0, #1 movne r0, #0 cmp r0, #0 beq _0217eee8 - ldr r0, _0217ef0c ; =data_027e0e60 + ldr r0, _0217ef0c ; =gMapManager ldr r1, [r4, #0x54] ldr r0, [r0] - bl func_ov00_020839d4 - ldr r1, _0217ef0c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020839d4Ev + ldr r1, _0217ef0c ; =gMapManager mov r6, r0 ldr r0, [r1] ldr r1, [r4, #0x5c] - bl func_ov00_020839f8 - ldr r1, _0217ef0c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020839f8Ev + ldr r1, _0217ef0c ; =gMapManager mov r7, r0 ldr r0, [r1] ldr r1, [r4, #0x48] - bl func_ov00_020839d4 - ldr r1, _0217ef0c ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_020839d4Ev + ldr r1, _0217ef0c ; =gMapManager mov r5, r0 ldr r0, [r1] ldr r1, [r4, #0x50] - bl func_ov00_020839f8 + bl _ZN10MapManager18func_ov00_020839f8Ev cmp r6, r5 mov r2, #0 beq _0217ee8c @@ -3589,7 +3589,7 @@ _0217eef8: arm_func_end func_ov36_0217ed50 _0217ef04: .word data_ov36_02186c9c _0217ef08: .word data_027e0d0c -_0217ef0c: .word data_027e0e60 +_0217ef0c: .word gMapManager .global func_ov36_0217ef10 arm_func_start func_ov36_0217ef10 @@ -5422,7 +5422,7 @@ _02180774: str r0, [sp, #0x14] ldr r0, [r7, #8] stmia sp, {r0, r9, r11} - ldr r0, _02180994 ; =data_027e0e60 + ldr r0, _02180994 ; =gMapManager ldr r0, [r0] bl func_01ffe1cc cmp r0, #0 @@ -5518,7 +5518,7 @@ _02180984: .word data_ov36_02186cd4 _02180988: .word data_ov36_02186838 _0218098c: .word data_02050f54 _02180990: .word 0x000004cd -_02180994: .word data_027e0e60 +_02180994: .word gMapManager _02180998: .word data_027e0f64 _0218099c: .word gAdventureFlags _021809a0: .word data_027e0c68 @@ -6914,11 +6914,11 @@ _02181dc8: bl func_0202d7ac cmp r0, #0 bne _02181e34 - ldr r0, _02181f30 ; =data_027e0e60 + ldr r0, _02181f30 ; =gMapManager mov r1, #2 ldr r0, [r0] mov r2, #1 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 addeq sp, sp, #0x14 ldmeqia sp!, {r3, r4, pc} @@ -6969,26 +6969,26 @@ _02181e34: str r0, [r4, #0x66c] ldr r0, _02181f34 ; =0x0000011e bl func_ov19_0216e7b0 - ldr r0, _02181f30 ; =data_027e0e60 + ldr r0, _02181f30 ; =gMapManager mov r1, #3 ldr r0, [r0] mov r2, r1 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 addne sp, sp, #0x14 ldmneia sp!, {r3, r4, pc} - ldr r0, _02181f30 ; =data_027e0e60 + ldr r0, _02181f30 ; =gMapManager mov r1, #3 ldr r0, [r0] mov r2, r1 mov r3, #1 - bl func_ov00_02084b38 - ldr r0, _02181f30 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02084b38Eiii + ldr r0, _02181f30 ; =gMapManager mov r1, #4 ldr r0, [r0] mov r2, #3 mov r3, #1 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii add sp, sp, #0x14 ldmia sp!, {r3, r4, pc} .align 2, 0 @@ -7003,7 +7003,7 @@ _02181f20: .word data_ov36_02186ce4 _02181f24: .word data_027e0e58 _02181f28: .word 0x000002c7 _02181f2c: .word data_027e071c -_02181f30: .word data_027e0e60 +_02181f30: .word gMapManager _02181f34: .word 0x0000011e _02181f38: .word data_027e0f90 @@ -7016,17 +7016,17 @@ func_ov36_02181f3c: ; 0x02181f3c mov r1, #3 orr r2, r0, #0x100000 str r2, [r4, #0x878] - ldr r0, _02181fc8 ; =data_027e0e60 + ldr r0, _02181fc8 ; =gMapManager mov r2, r1 ldr r0, [r0] mov r3, #0 - bl func_ov00_02084b38 - ldr r0, _02181fc8 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02084b38Eiii + ldr r0, _02181fc8 ; =gMapManager mov r1, #4 ldr r0, [r0] mov r2, #3 mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii mov r2, #0 ldr r1, _02181fcc ; =data_027e0f64 strb r2, [r4, #0x8aa] @@ -7047,7 +7047,7 @@ func_ov36_02181f3c: ; 0x02181f3c ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov36_02181f3c -_02181fc8: .word data_027e0e60 +_02181fc8: .word gMapManager _02181fcc: .word data_027e0f64 .global func_ov36_02181fd0 @@ -7658,18 +7658,18 @@ _021828dc: strh r1, [r0, #0x18] cmp r3, #2 blo _021828dc - ldr r0, _0218298c ; =data_027e0e60 + ldr r0, _0218298c ; =gMapManager add r2, sp, #0x2c ldr r0, [r0] mov r1, #0x5b - bl func_ov00_02083918 + bl _ZN10MapManager18func_ov00_02083918EiPi cmp r0, #0 beq _02182934 - ldr r0, _0218298c ; =data_027e0e60 + ldr r0, _0218298c ; =gMapManager ldrb r1, [sp, #0x30] ldr r0, [r0] mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci ldr r0, _02182954 ; =data_027e0f64 mov r1, #0 ldr r0, [r0] @@ -7701,18 +7701,18 @@ _0218297c: .word 0x0000199a _02182980: .word 0x00001003 _02182984: .word 0x000002c2 _02182988: .word 0x000002cd -_0218298c: .word data_027e0e60 +_0218298c: .word gMapManager .global func_ov36_02182990 arm_func_start func_ov36_02182990 func_ov36_02182990: ; 0x02182990 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, lr} sub sp, sp, #0x124 - ldr r1, _02182c64 ; =data_027e0e60 + ldr r1, _02182c64 ; =gMapManager mov r4, r0 ldr r0, [r1] mov r1, #0 - bl func_ov00_02083958 + bl _ZN10MapManager18func_ov00_02083958Ei ldr r0, _02182c68 ; =data_027e0f64 mov r1, #0 ldr r0, [r0] @@ -7892,7 +7892,7 @@ _02182a7c: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov36_02182990 -_02182c64: .word data_027e0e60 +_02182c64: .word gMapManager _02182c68: .word data_027e0f64 _02182c6c: .word data_027e0ffc _02182c70: .word data_027e0fc8 @@ -10044,16 +10044,16 @@ _02184a9c: add r1, sp, #0 bl func_ov00_02087d34 mov r1, #0 - ldr r0, _02184de0 ; =data_027e0e60 + ldr r0, _02184de0 ; =gMapManager str r1, [sp, #0x1c] ldr r0, [r0] str r1, [sp, #0x20] str r1, [sp, #0x24] - bl func_ov00_02083400 - ldr r1, _02184de0 ; =data_027e0e60 + bl _ZN10MapManager18Get_MapData_Unk_d8Ev + ldr r1, _02184de0 ; =gMapManager mov r4, r0 ldr r0, [r1] - bl func_ov00_020833f4 + bl _ZN10MapManager18Get_MapData_Unk_d0Ev mov r2, #0 mov r1, r2 cmp r6, #0 @@ -10245,7 +10245,7 @@ _02184dc8: arm_func_end func_ov36_02184a64 _02184dd8: .word gAdventureFlags _02184ddc: .word data_027e0f64 -_02184de0: .word data_027e0e60 +_02184de0: .word gMapManager _02184de4: .word 0x0000038e _02184de8: .word 0x00001e84 @@ -10366,7 +10366,7 @@ func_ov36_02184f44: ; 0x02184f44 mov r4, r0 _02184f6c: ldr r1, [r6, #0x48] - ldr r0, _0218504c ; =data_027e0e60 + ldr r0, _0218504c ; =gMapManager str r1, [sp] ldr r1, [r6, #0x4c] ldr r0, [r0] @@ -10375,7 +10375,7 @@ _02184f6c: add r2, sp, #0 str r1, [sp, #8] ldrh r1, [r6, #0x22] - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji strb r0, [r5] cmp r4, #0 beq _02185040 @@ -10429,7 +10429,7 @@ _02185040: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov36_02184f44 -_0218504c: .word data_027e0e60 +_0218504c: .word gMapManager .global func_ov36_02185050 arm_func_start func_ov36_02185050 diff --git a/asm/ov37.inc b/asm/ov37.inc index b704e649..ea051adb 100644 --- a/asm/ov37.inc +++ b/asm/ov37.inc @@ -1,6 +1,9 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18Set_MapData_Unk_16Eci +.extern _ZN10MapManager18func_ov00_02083908EcPi .extern _ZN10PlayerBase10SetVisibleEb .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder .extern _ZN11ItemManager12GetItemModelEj @@ -76,7 +79,6 @@ .extern data_027e0c54 .extern data_027e0d0c .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f90 @@ -145,9 +147,6 @@ .extern func_ov00_02081f4c .extern func_ov00_02081f58 .extern func_ov00_02081f6c -.extern func_ov00_02083908 -.extern func_ov00_02083948 -.extern func_ov00_02083ee0 .extern func_ov00_02087400 .extern func_ov00_02087d34 .extern func_ov00_02088000 @@ -276,4 +275,5 @@ .extern func_ov17_021687f0 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern strncpy diff --git a/asm/ov37.s b/asm/ov37.s index 13e46b59..ce4eff94 100644 --- a/asm/ov37.s +++ b/asm/ov37.s @@ -3058,18 +3058,18 @@ _0217e78c: strh r1, [r0, #0x18] cmp r3, #2 blo _0217e78c - ldr r0, _0217f0f4 ; =data_027e0e60 + ldr r0, _0217f0f4 ; =gMapManager add r2, sp, #0x7c ldr r0, [r0] mov r1, #3 - bl func_ov00_02083908 + bl _ZN10MapManager18func_ov00_02083908EcPi cmp r0, #0 beq _0217e7ec - ldr r0, _0217f0f4 ; =data_027e0e60 + ldr r0, _0217f0f4 ; =gMapManager mov r1, #3 ldr r0, [r0] mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci ldr r0, _0217e334 ; =data_027e0f64 mov r2, #0 ldr r0, [r0] @@ -3171,18 +3171,18 @@ _0217e93c: strh r1, [r0, #0x18] cmp r3, #2 blo _0217e93c - ldr r0, _0217f0f4 ; =data_027e0e60 + ldr r0, _0217f0f4 ; =gMapManager add r2, sp, #0x54 ldr r0, [r0] mov r1, #1 - bl func_ov00_02083908 + bl _ZN10MapManager18func_ov00_02083908EcPi cmp r0, #0 beq _0217e99c - ldr r0, _0217f0f4 ; =data_027e0e60 + ldr r0, _0217f0f4 ; =gMapManager mov r1, #1 ldr r0, [r0] mov r2, #0 - bl func_ov00_02083948 + bl _ZN10MapManager18Set_MapData_Unk_16Eci ldr r0, _0217e334 ; =data_027e0f64 mov r2, #0 ldr r0, [r0] @@ -3675,7 +3675,7 @@ _0217f0e8: add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 -_0217f0f4: .word data_027e0e60 +_0217f0f4: .word gMapManager _0217f0f8: .word data_027e0e58 _0217f0fc: .word 0x00001020 _0217f100: .word 0x00001021 @@ -3929,7 +3929,7 @@ func_ov37_0217f468: ; 0x0217f468 add r3, sp, #0xc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0217f4d0 ; =data_027e0e60 + ldr r0, _0217f4d0 ; =gMapManager ldr lr, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] @@ -3939,7 +3939,7 @@ func_ov37_0217f468: ; 0x0217f468 str lr, [sp] str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x10] add r1, sp, #0xc mov r0, r4 @@ -3948,7 +3948,7 @@ func_ov37_0217f468: ; 0x0217f468 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov37_0217f468 -_0217f4d0: .word data_027e0e60 +_0217f4d0: .word gMapManager .global func_ov37_0217f4d4 arm_func_start func_ov37_0217f4d4 @@ -3962,7 +3962,7 @@ func_ov37_0217f4d4: ; 0x0217f4d4 add r3, sp, #0xc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0217f53c ; =data_027e0e60 + ldr r0, _0217f53c ; =gMapManager ldr lr, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] @@ -3972,7 +3972,7 @@ func_ov37_0217f4d4: ; 0x0217f4d4 str lr, [sp] str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x10] add r1, sp, #0xc mov r0, r4 @@ -3981,7 +3981,7 @@ func_ov37_0217f4d4: ; 0x0217f4d4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov37_0217f4d4 -_0217f53c: .word data_027e0e60 +_0217f53c: .word gMapManager .global func_ov37_0217f540 arm_func_start func_ov37_0217f540 @@ -3993,7 +3993,7 @@ func_ov37_0217f540: ; 0x0217f540 mov r5, r0 ldmia r4, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0217f650 ; =data_027e0e60 + ldr r0, _0217f650 ; =gMapManager ldr lr, [sp, #0x20] ldr ip, [sp, #0x24] ldr r3, [sp, #0x28] @@ -4003,7 +4003,7 @@ func_ov37_0217f540: ; 0x0217f540 str lr, [sp, #0x14] str ip, [sp, #0x18] str r3, [sp, #0x1c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x24] ldr r1, [sp, #0x20] add r0, r5, #0x2000 @@ -4056,7 +4056,7 @@ func_ov37_0217f540: ; 0x0217f540 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov37_0217f540 -_0217f650: .word data_027e0e60 +_0217f650: .word gMapManager _0217f654: .word data_027e0e58 _0217f658: .word 0x00001013 _0217f65c: .word 0x00001014 @@ -6741,7 +6741,7 @@ _02181b64: add r3, sp, #0x224 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02181f34 ; =data_027e0e60 + ldr r0, _02181f34 ; =gMapManager ldr r6, [sp, #0x224] ldr r4, [sp, #0x228] ldr r3, [sp, #0x22c] @@ -6751,7 +6751,7 @@ _02181b64: str r6, [sp, #0x44] str r4, [sp, #0x48] str r3, [sp, #0x4c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x228] mov r1, #0 str r1, [sp] @@ -6795,7 +6795,7 @@ _02181c30: add r3, sp, #0x218 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02181f34 ; =data_027e0e60 + ldr r0, _02181f34 ; =gMapManager ldr r6, [sp, #0x218] ldr r4, [sp, #0x21c] ldr r3, [sp, #0x220] @@ -6805,7 +6805,7 @@ _02181c30: str r6, [sp, #0x38] str r4, [sp, #0x3c] str r3, [sp, #0x40] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x21c] mov r1, #0 str r1, [sp] @@ -6928,7 +6928,7 @@ _02181e2c: add r3, sp, #0x1f4 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02181f34 ; =data_027e0e60 + ldr r0, _02181f34 ; =gMapManager ldr r2, [sp, #0x1f4] ldr r6, [sp, #0x1f8] ldr r3, [sp, #0x1fc] @@ -6938,7 +6938,7 @@ _02181e2c: mov r2, #1 str r6, [sp, #0x30] str r3, [sp, #0x34] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x1f8] mov r0, #0 str r0, [sp] @@ -6984,7 +6984,7 @@ _02181f24: .word 0x0000100f _02181f28: .word 0x00001010 _02181f2c: .word data_ov37_0218801c _02181f30: .word 0x00001011 -_02181f34: .word data_027e0e60 +_02181f34: .word gMapManager _02181f38: .word 0x00000153 _02181f3c: .word data_ov37_02188028 _02181f40: .word 0x000002ae @@ -7157,7 +7157,7 @@ _0218219c: add r3, sp, #0x1b8 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02181f34 ; =data_027e0e60 + ldr r0, _02181f34 ; =gMapManager ldr r2, [sp, #0x1b8] ldr r6, [sp, #0x1bc] ldr r3, [sp, #0x1c0] @@ -7167,7 +7167,7 @@ _0218219c: mov r2, #1 str r6, [sp, #0x24] str r3, [sp, #0x28] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x1bc] mov r0, #0 str r0, [sp] @@ -7276,7 +7276,7 @@ _02182368: add r3, sp, #0x194 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02181f34 ; =data_027e0e60 + ldr r0, _02181f34 ; =gMapManager ldr r6, [sp, #0x194] ldr r4, [sp, #0x198] ldr r3, [sp, #0x19c] @@ -7286,7 +7286,7 @@ _02182368: str r6, [sp, #0x14] str r4, [sp, #0x18] str r3, [sp, #0x1c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x198] mov r1, #0 str r1, [sp] @@ -7331,7 +7331,7 @@ _02182438: add r3, sp, #0x188 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02181f34 ; =data_027e0e60 + ldr r0, _02181f34 ; =gMapManager ldr r6, [sp, #0x188] ldr r4, [sp, #0x18c] ldr r3, [sp, #0x190] @@ -7341,7 +7341,7 @@ _02182438: str r6, [sp, #8] str r4, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18c] mov r1, #0 str r1, [sp] @@ -12114,7 +12114,7 @@ func_ov37_02186458: ; 0x02186458 add r1, r4, #0x48 bl func_ov00_020c5330 ldr r1, [r4, #0x48] - ldr r0, _02186670 ; =data_027e0e60 + ldr r0, _02186670 ; =gMapManager str r1, [sp, #8] ldr r2, [r4, #0x4c] ldr r0, [r0] @@ -12123,7 +12123,7 @@ func_ov37_02186458: ; 0x02186458 add r1, sp, #8 mov r2, #1 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x4c] ldr r1, [r4, #0x48] add r0, r4, #0x21c @@ -12153,7 +12153,7 @@ _02186660: .word data_027e0f6c _02186664: .word data_027e0fe8 _02186668: .word 0x57534243 _0218666c: .word data_027e0fe4 -_02186670: .word data_027e0e60 +_02186670: .word gMapManager .global func_ov37_02186674 arm_func_start func_ov37_02186674 @@ -12286,7 +12286,7 @@ func_ov37_02186720: ; 0x02186720 str r1, [sp, #4] str r0, [sp, #8] str r5, [sp, #0xc] - ldr r0, _02186858 ; =data_027e0e60 + ldr r0, _02186858 ; =gMapManager str r5, [sp, #0x10] ldr r0, [r0] add r1, sp, #0x44 @@ -12302,7 +12302,7 @@ func_ov37_02186720: ; 0x02186720 arm_func_end func_ov37_02186720 _02186850: .word data_027e0fe4 _02186854: .word 0x0000ffff -_02186858: .word data_027e0e60 +_02186858: .word gMapManager .global func_ov37_0218685c arm_func_start func_ov37_0218685c @@ -12593,7 +12593,7 @@ func_ov37_02186b68: ; 0x02186b68 add r3, sp, #0x14 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02186cac ; =data_027e0e60 + ldr r0, _02186cac ; =gMapManager ldr lr, [sp, #0x14] ldr ip, [sp, #0x18] ldr r3, [sp, #0x1c] @@ -12603,7 +12603,7 @@ func_ov37_02186b68: ; 0x02186b68 str lr, [sp, #8] str ip, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0xcd add r0, r0, #0x400 str r0, [sp, #0x18] @@ -12632,7 +12632,7 @@ func_ov37_02186b68: ; 0x02186b68 .align 2, 0 arm_func_end func_ov37_02186b68 _02186ca8: .word 0x66666667 -_02186cac: .word data_027e0e60 +_02186cac: .word gMapManager _02186cb0: .word data_027e0e58 _02186cb4: .word 0x000001a9 _02186cb8: .word data_027e0ffc @@ -13254,7 +13254,7 @@ _021874d8: add r3, sp, #0x20 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02187770 ; =data_027e0e60 + ldr r0, _02187770 ; =gMapManager ldr ip, [sp, #0x20] ldr r4, [sp, #0x24] ldr r3, [sp, #0x28] @@ -13264,7 +13264,7 @@ _021874d8: str ip, [sp, #0x14] str r4, [sp, #0x18] str r3, [sp, #0x1c] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x24] mov r1, #0 str r1, [sp] @@ -13422,7 +13422,7 @@ _02187760: .word 0x000002b9 _02187764: .word 0x00000191 _02187768: .word data_ov00_020eec68 _0218776c: .word 0x00000333 -_02187770: .word data_027e0e60 +_02187770: .word gMapManager _02187774: .word data_027e0e58 _02187778: .word 0x00001011 _0218777c: .word 0x000002ba diff --git a/asm/ov38.inc b/asm/ov38.inc index e834cb13..6b3fc53a 100644 --- a/asm/ov38.inc +++ b/asm/ov38.inc @@ -1,6 +1,9 @@ #pragma once .extern Approach_thunk .extern Divide +.extern PlaySoundEffect +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084be0Eii .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN14AdventureFlags18func_Ov00_02097810Ei @@ -60,6 +63,8 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN9ActorTypeC1EjPFP5ActorvEPv +.extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern __register_global_object @@ -75,7 +80,6 @@ .extern data_027e0d0c .extern data_027e0e58 .extern data_027e0e5c -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f94 @@ -152,8 +156,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 +164,6 @@ .extern func_ov00_0207c358 .extern func_ov00_0207c444 .extern func_ov00_0207c7e8 -.extern func_ov00_02084b38 -.extern func_ov00_02084be0 .extern func_ov00_02087d34 .extern func_ov00_02087d84 .extern func_ov00_02088000 @@ -218,7 +218,6 @@ .extern func_ov00_020d5f98 .extern func_ov00_020d70a4 .extern func_ov00_020d716c -.extern func_ov00_020d73bc .extern func_ov00_020d73f0 .extern func_ov00_020d7c8c .extern func_ov00_020d7d18 @@ -273,4 +272,5 @@ .extern func_ov57_02199e24 .extern gAdventureFlags .extern gItemManager +.extern gMapManager .extern strcpy diff --git a/asm/ov38.s b/asm/ov38.s index 05366951..966dfbbc 100644 --- a/asm/ov38.s +++ b/asm/ov38.s @@ -208,7 +208,7 @@ func_ov38_0217bf48: ; 0x0217bf48 bl func_ov00_020d8388 ldr r0, _0217c048 ; =data_ov00_020eec68 mov r1, #0xcf - bl func_ov00_020d73bc + bl PlaySoundEffect ldr r0, _0217c04c ; =data_ov38_021891e0 ldr r0, [r0, #0x58] bl func_ov38_02184a18 @@ -10962,11 +10962,11 @@ _02185790: ldr r0, [r2, #0x78] cmp r0, #0 ldmneia sp!, {r4, pc} - ldr r0, _02185828 ; =data_027e0e60 + ldr r0, _02185828 ; =gMapManager mov r1, #3 ldr r0, [r0] mov r2, #1 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 ldmneia sp!, {r4, pc} mov r0, r4 @@ -11002,7 +11002,7 @@ _02185818: .align 2, 0 arm_func_end func_ov38_02185720 _02185824: .word 0x00000708 -_02185828: .word data_027e0e60 +_02185828: .word gMapManager _0218582c: .word data_ov29_0217a4ac .global func_ov38_02185830 @@ -11045,11 +11045,11 @@ _021858ac: ldr r0, [r4, #0x2d8] cmp r0, #0x10 ldmneia sp!, {r4, pc} - ldr r0, _02185a64 ; =data_027e0e60 + ldr r0, _02185a64 ; =gMapManager mov r1, #3 ldr r0, [r0] mov r2, #1 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 ldmeqia sp!, {r4, pc} ldr r0, [r4, #0xff8] @@ -11060,19 +11060,19 @@ _021858ac: bl func_ov29_021772f8 ldmia sp!, {r4, pc} _021858f0: - ldr r0, _02185a64 ; =data_027e0e60 + ldr r0, _02185a64 ; =gMapManager mov r1, #6 ldr r0, [r0] mov r2, #1 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _02185a64 ; =data_027e0e60 + ldr r0, _02185a64 ; =gMapManager mov r1, #6 ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldr r0, _02185a68 ; =data_ov29_0217a4ac mov r1, #0 strb r1, [r0, #0x56] @@ -11100,11 +11100,11 @@ _02185968: bl func_ov38_02185720 ldmia sp!, {r4, pc} _02185984: - ldr r0, _02185a64 ; =data_027e0e60 + ldr r0, _02185a64 ; =gMapManager mov r1, #5 ldr r0, [r0] mov r2, #1 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 ldmeqia sp!, {r4, pc} ldr r0, [r4, #0xff8] @@ -11113,12 +11113,12 @@ _02185984: ldmneia sp!, {r4, pc} mov r1, #0 bl func_ov29_021772f8 - ldr r0, _02185a64 ; =data_027e0e60 + ldr r0, _02185a64 ; =gMapManager mov r1, #5 ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii add r0, r4, #0x1000 ldrsh r1, [r0, #0x9c] sub r1, r1, #1 @@ -11143,12 +11143,12 @@ _021859e4: mov r1, #5 mov r2, #1 bl func_ov38_0217bf0c - ldr r0, _02185a64 ; =data_027e0e60 + ldr r0, _02185a64 ; =gMapManager mov r2, #1 ldr r0, [r0] mov r3, r2 mov r1, #5 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii add r0, r4, #0x1000 ldrsh r1, [r0, #0x9c] sub r1, r1, #1 @@ -11160,7 +11160,7 @@ _02185a58: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov38_02185830 -_02185a64: .word data_027e0e60 +_02185a64: .word gMapManager _02185a68: .word data_ov29_0217a4ac _02185a6c: .word gItemManager @@ -11493,12 +11493,12 @@ _02185ef8: str r0, [r1, #0x210] cmp r0, #0x82 ble _02185f3c - ldr r0, _02186a14 ; =data_027e0e60 + ldr r0, _02186a14 ; =gMapManager mov r1, #1 ldr r0, [r0] mov r2, r1 mov r3, r1 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldr r0, _02186a10 ; =data_ov38_021891e0 mov r1, #0 ldr r2, [r0, #0x20c] @@ -11738,11 +11738,11 @@ _02186268: add sp, sp, #0x154 ldmia sp!, {r4, r5, pc} _021862c8: - ldr r0, _02186a14 ; =data_027e0e60 + ldr r0, _02186a14 ; =gMapManager mov r1, #2 ldr r0, [r0] mov r2, #1 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 beq _02186304 ldr r0, _02186a20 ; =data_027e0fc8 @@ -12220,7 +12220,7 @@ _021869dc: .align 2, 0 arm_func_end func_ov38_02185ebc _02186a10: .word data_ov38_021891e0 -_02186a14: .word data_027e0e60 +_02186a14: .word gMapManager _02186a18: .word 0x00000ccd _02186a1c: .word data_027e0f94 _02186a20: .word data_027e0fc8 diff --git a/asm/ov39.inc b/asm/ov39.inc index 73a4568b..88466feb 100644 --- a/asm/ov39.inc +++ b/asm/ov39.inc @@ -1,6 +1,9 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_02084b38Eiii +.extern _ZN10MapManager18func_ov00_02084be0Eii .extern _ZN10PlayerBase18EquipItem_vfunc_2cEv .extern _ZN10PlayerBase18EquipItem_vfunc_3cEP8Cylinderi .extern _ZN10PlayerBase18func_ov00_020a7c60EP5Vec3pS1_i @@ -77,7 +80,7 @@ .extern data_027e0c54 .extern data_027e0c68 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f90 .extern data_027e0f94 @@ -149,9 +152,6 @@ .extern func_ov00_0207c444 .extern func_ov00_0207c474 .extern func_ov00_0207c5d4 -.extern func_ov00_02083ee0 -.extern func_ov00_02084b38 -.extern func_ov00_02084be0 .extern func_ov00_02087584 .extern func_ov00_020875f8 .extern func_ov00_02087d34 @@ -230,7 +230,7 @@ .extern func_ov00_020d18f4 .extern func_ov00_020d1980 .extern func_ov00_020d716c -.extern func_ov00_020d73bc +.extern PlaySoundEffect .extern func_ov00_020d73f0 .extern func_ov00_020d77e4 .extern func_ov00_020d7ad4 diff --git a/asm/ov39.s b/asm/ov39.s index 10f07dd1..362cbf5b 100644 --- a/asm/ov39.s +++ b/asm/ov39.s @@ -112,7 +112,7 @@ _0217bed4: bl func_ov00_0207c5d4 ldr r0, _0217bf2c ; =data_ov00_020eec68 mov r1, #0xd2 - bl func_ov00_020d73bc + bl PlaySoundEffect ldr r1, [r4, #8] ldr r0, [r1, #0x158] bic r0, r0, #0x4000000 @@ -1767,7 +1767,7 @@ func_ov39_0217d534: ; 0x0217d534 sub sp, sp, #0x14 mov r4, r0 ldr r1, [r4, #0x4c] - ldr r0, _0217d5c4 ; =data_027e0e60 + ldr r0, _0217d5c4 ; =gMapManager add r1, r1, #0x3000 str r1, [r4, #0x4c] ldr r1, [r4, #0x48] @@ -1779,7 +1779,7 @@ func_ov39_0217d534: ; 0x0217d534 ldr r3, [r4, #0x50] mov r2, #0 str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, _0217d5c8 ; =data_027e0f94 mov r3, r0 str r0, [r4, #0x4c] @@ -1801,7 +1801,7 @@ func_ov39_0217d534: ; 0x0217d534 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov39_0217d534 -_0217d5c4: .word data_027e0e60 +_0217d5c4: .word gMapManager _0217d5c8: .word data_027e0f94 _0217d5cc: .word data_027e0fe4 _0217d5d0: .word 0x4e415649 @@ -3453,17 +3453,17 @@ func_ov39_0217ec34: ; 0x0217ec34 ldr r0, _0217ec88 ; =data_027e0c68 add r1, r5, #0xc60 bl func_02036ce4 - ldr r0, _0217ec8c ; =data_027e0e60 + ldr r0, _0217ec8c ; =gMapManager mov r1, r4 ldr r0, [r0] mov r2, #1 mov r3, r2 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov39_0217ec34 _0217ec88: .word data_027e0c68 -_0217ec8c: .word data_027e0e60 +_0217ec8c: .word gMapManager .global func_ov39_0217ec90 arm_func_start func_ov39_0217ec90 @@ -3989,23 +3989,23 @@ _0217f3b8: orr r0, r0, #4 str r0, [r4, #0x158] _0217f3c4: - ldr r0, _0217f47c ; =data_027e0e60 + ldr r0, _0217f47c ; =gMapManager mov r1, #3 ldr r0, [r0] mov r2, #1 - bl func_ov00_02084be0 + bl _ZN10MapManager18func_ov00_02084be0Eii cmp r0, #0 beq _0217f40c ldr r0, _0217f480 ; =data_ov29_0217bd28 ldr r0, [r0] cmp r0, #0 ldmeqia sp!, {r4, pc} - ldr r0, _0217f47c ; =data_027e0e60 + ldr r0, _0217f47c ; =gMapManager mov r1, #3 ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldmia sp!, {r4, pc} _0217f40c: ldr r0, _0217f480 ; =data_ov29_0217bd28 @@ -4038,7 +4038,7 @@ _0217f40c: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov39_0217f32c -_0217f47c: .word data_027e0e60 +_0217f47c: .word gMapManager _0217f480: .word data_ov29_0217bd28 _0217f484: .word gItemManager @@ -7582,18 +7582,18 @@ func_ov39_021825e8: ; 0x021825e8 add r0, r4, #0x3ec add r0, r0, #0x400 bl func_ov39_0217ca2c - ldr r0, _02182670 ; =data_027e0e60 + ldr r0, _02182670 ; =gMapManager mov r1, #1 ldr r0, [r0] mov r2, r1 mov r3, #0 - bl func_ov00_02084b38 - ldr r0, _02182670 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02084b38Eiii + ldr r0, _02182670 ; =gMapManager mov r1, #2 ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii mov r0, r4 mov r1, #8 mov r2, #7 @@ -7607,7 +7607,7 @@ func_ov39_021825e8: ; 0x021825e8 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov39_021825e8 -_02182670: .word data_027e0e60 +_02182670: .word gMapManager .global func_ov39_02182674 arm_func_start func_ov39_02182674 diff --git a/asm/ov40.inc b/asm/ov40.inc index ad82a2af..6a455933 100644 --- a/asm/ov40.inc +++ b/asm/ov40.inc @@ -2,7 +2,7 @@ .extern Divide .extern FastDivide .extern _ZN11ItemManager7AddItemEi -.extern _ZN11ItemManager8GiveItemEjjj +.extern _ZN11ItemManager8GiveItemEi .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN14AdventureFlags15Get_FlagsUnk_18EiP9FlagsUnk2 @@ -89,7 +89,7 @@ .extern data_027e0de4 .extern data_027e0e2c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f78 @@ -260,12 +260,12 @@ .extern func_ov00_0207c074 .extern func_ov00_0207c1f8 .extern func_ov00_0207c444 -.extern func_ov00_02082650 -.extern func_ov00_02082660 -.extern func_ov00_02082670 -.extern func_ov00_0208344c -.extern func_ov00_020838e8 -.extern func_ov00_020846a4 +.extern _ZN10MapManager18func_ov00_02082650Eiii +.extern _ZN10MapManager18func_ov00_02082660Eii +.extern _ZN10MapManager18func_ov00_02082670Eii +.extern _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_020846a4Ev .extern func_ov00_02089b08 .extern func_ov00_02089b50 .extern func_ov00_02089b88 diff --git a/asm/ov40.s b/asm/ov40.s index 9f9050fc..0843b9f9 100644 --- a/asm/ov40.s +++ b/asm/ov40.s @@ -4428,7 +4428,7 @@ _0217f5a4: mov r1, r1, lsl #0x8 ldr r0, [r0] mov r1, r1, lsr #0x10 - blx _ZN11ItemManager8GiveItemEjjj + blx _ZN11ItemManager8GiveItemEi add sp, sp, #8 ldmia sp!, {r3, pc} _0217f5c4: @@ -4789,10 +4789,10 @@ func_ov40_0217fa44: ; 0x0217fa44 bne _0217fb0c strb r1, [r5, #0xd6] strb r1, [r5, #0xd7] - ldr r0, _0217fbb4 ; =data_027e0e60 + ldr r0, _0217fbb4 ; =gMapManager add r1, sp, #0x70 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p add r0, sp, #0x44 bl func_ov00_020c1500 mvn r1, #0 @@ -4849,10 +4849,10 @@ _0217fb0c: ldr r1, [r5, #0xdc] cmp r1, r0 bne _0217fb98 - ldr r0, _0217fbb4 ; =data_027e0e60 + ldr r0, _0217fbb4 ; =gMapManager add r1, sp, #0x38 ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p add r0, sp, #0xc bl func_ov00_020c1500 mvn r1, #0 @@ -4878,7 +4878,7 @@ _0217fb98: .align 2, 0 arm_func_end func_ov40_0217fa44 _0217fbb0: .word 0x444d4348 -_0217fbb4: .word data_027e0e60 +_0217fbb4: .word gMapManager _0217fbb8: .word 0x444d5452 _0217fbbc: .word 0x444d4b53 _0217fbc0: .word 0x444d5350 @@ -8485,7 +8485,7 @@ func_ov40_02182694: ; 0x02182694 mov r3, #0x47 sub r2, r3, #0x49 mov r1, #0xff - ldr r0, _021827ac ; =data_027e0e60 + ldr r0, _021827ac ; =gMapManager str r2, [sp, #0xc] str r3, [sp] str r4, [sp, #4] @@ -8498,7 +8498,7 @@ func_ov40_02182694: ; 0x02182694 ldrb r1, [r5, #0xf] ldr r0, [r0] add r2, sp, #0 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi cmp r0, #0 beq _02182798 ldr r0, [sp, #4] @@ -8512,7 +8512,7 @@ _02182798: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov40_02182694 -_021827ac: .word data_027e0e60 +_021827ac: .word gMapManager .global func_ov40_021827b0 arm_func_start func_ov40_021827b0 @@ -11718,7 +11718,7 @@ func_ov40_02184fb4: ; 0x02184fb4 str r0, [r4, #0x84] str r0, [r4, #0x88] ldr r1, [r4, #0x7c] - ldr r0, _02185028 ; =data_027e0e60 + ldr r0, _02185028 ; =gMapManager str r1, [r4, #0x8c] ldr r2, [r4, #0x80] add r1, sp, #0xc @@ -11728,7 +11728,7 @@ func_ov40_02184fb4: ; 0x02184fb4 ldr r2, [r4, #0x88] str r2, [r4, #0x98] ldr r0, [r0] - bl func_ov00_0208344c + bl _ZN10MapManager17GetMapData_Unk_d0EP5Vec3p ldr r1, [sp, #0xc] mov r0, #1 str r1, [r4, #0x48] @@ -11740,7 +11740,7 @@ func_ov40_02184fb4: ; 0x02184fb4 ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov40_02184fb4 -_02185028: .word data_027e0e60 +_02185028: .word gMapManager .global func_ov40_0218502c arm_func_start func_ov40_0218502c @@ -12505,9 +12505,9 @@ func_ov40_02185878: ; 0x02185878 beq _02185b10 b _02185b38 _021858c8: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev sub r0, r0, #0xd cmp r0, #3 addls pc, pc, r0, lsl #2 @@ -12518,11 +12518,11 @@ _021858e4: ; jump table b _02185994 ; case 2 b _02185994 ; case 3 _021858f4: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0xd - bl func_ov00_02082650 + bl _ZN10MapManager18func_ov00_02082650Eiii ldr r0, _02185b44 ; =gAdventureFlags ldr r0, [r0] bl _ZN14AdventureFlags18func_ov00_02097c08Ev @@ -12542,54 +12542,54 @@ _02185924: ; jump table b _0218594c ; case 8 b _02185964 ; case 9 _0218594c: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0x2b - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _02185964: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0x2c - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _0218597c: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0x1d - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _02185994: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0xf - bl func_ov00_02082650 - ldr r0, _02185b40 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02082650Eiii + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #4 - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _021859c0: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #6 - bl func_ov00_02082650 - ldr r0, _02185b40 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02082650Eiii + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #4 - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _021859ec: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev sub r0, r0, #0xd cmp r0, #3 addls pc, pc, r0, lsl #2 @@ -12600,11 +12600,11 @@ _02185a08: ; jump table b _02185ab8 ; case 2 b _02185ab8 ; case 3 _02185a18: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0xe - bl func_ov00_02082650 + bl _ZN10MapManager18func_ov00_02082650Eiii ldr r0, _02185b44 ; =gAdventureFlags ldr r0, [r0] bl _ZN14AdventureFlags18func_ov00_02097c08Ev @@ -12624,67 +12624,67 @@ _02185a48: ; jump table b _02185a70 ; case 8 b _02185a88 ; case 9 _02185a70: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0x25 - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _02185a88: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0x2d - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _02185aa0: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0x25 - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _02185ab8: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0x10 - bl func_ov00_02082650 - ldr r0, _02185b40 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02082650Eiii + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #2 - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _02185ae4: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #2 - bl func_ov00_02082650 - ldr r0, _02185b40 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02082650Eiii + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #2 - bl func_ov00_02082660 + bl _ZN10MapManager18func_ov00_02082660Eii b _02185b38 _02185b10: - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager ldr r0, [r0] - bl func_ov00_020846a4 + bl _ZN10MapManager18func_ov00_020846a4Ev cmp r0, #0xe bne _02185b38 - ldr r0, _02185b40 ; =data_027e0e60 + ldr r0, _02185b40 ; =gMapManager mov r2, r5 ldr r0, [r0] mov r1, #0xe - bl func_ov00_02082670 + bl _ZN10MapManager18func_ov00_02082670Eii _02185b38: str r4, [r6, #0x158] ldmia sp!, {r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov40_02185878 -_02185b40: .word data_027e0e60 +_02185b40: .word gMapManager _02185b44: .word gAdventureFlags .global func_ov40_02185b48 diff --git a/asm/ov41.inc b/asm/ov41.inc index 1cd11506..c4f6c7ce 100644 --- a/asm/ov41.inc +++ b/asm/ov41.inc @@ -1,4 +1,9 @@ #pragma once +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_7cEv +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083770Eji +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager8GetActorEP8ActorRef @@ -74,7 +79,7 @@ .extern data_027e0d04 .extern data_027e0e58 .extern data_027e0e5c -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f68 .extern data_027e0f6c .extern data_027e0f78 @@ -132,11 +137,6 @@ .extern func_ov00_0207c31c .extern func_ov00_0207c7e8 .extern func_ov00_02081f4c -.extern func_ov00_020828c0 -.extern func_ov00_020836dc -.extern func_ov00_02083770 -.extern func_ov00_02083a1c -.extern func_ov00_02083ee0 .extern func_ov00_0208cd48 .extern func_ov00_02093a5c .extern func_ov00_02094824 diff --git a/asm/ov41.s b/asm/ov41.s index 62ff46e4..d4fa1d52 100644 --- a/asm/ov41.s +++ b/asm/ov41.s @@ -3833,11 +3833,11 @@ _0218c668: str r1, [sp, #0x24] str r0, [sp, #0x1c] _0218c680: - ldr r1, _0218c71c ; =data_027e0e60 + ldr r1, _0218c71c ; =gMapManager add r0, sp, #4 ldr r1, [r1] add r2, sp, #0x1c - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p mov r2, #0 sub r1, r2, #1 mov r0, #1 @@ -3862,11 +3862,11 @@ _0218c6cc: blo _0218c6cc add r1, sp, #8 str r1, [sp] - ldr r0, _0218c71c ; =data_027e0e60 + ldr r0, _0218c71c ; =gMapManager add r2, sp, #4 ldr r0, [r0] mov r1, #2 - bl func_ov00_020828c0 + bl _ZN10MapManager16MapData_vfunc_7cEv add r4, r4, #1 cmp r4, #4 blt _0218c608 @@ -3876,7 +3876,7 @@ _0218c6cc: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov41_0218c5e0 -_0218c71c: .word data_027e0e60 +_0218c71c: .word gMapManager .global func_ov41_0218c720 arm_func_start func_ov41_0218c720 @@ -4010,12 +4010,12 @@ func_ov41_0218c834: ; 0x0218c834 add r1, r1, #0x400 ldr r0, [r0] bl _ZN12ActorManager8GetActorEP8ActorRef - ldr r1, _0218cbec ; =data_027e0e60 + ldr r1, _0218cbec ; =gMapManager mov r4, r0 ldr r0, [r1] mov r1, r5 mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 bne _0218ca3c mov r0, r6 @@ -4222,7 +4222,7 @@ _0218cbdc: .word data_027e0f68 _0218cbe0: .word gAdventureFlags _0218cbe4: .word data_027e0fc8 _0218cbe8: .word data_027e0fe4 -_0218cbec: .word data_027e0e60 +_0218cbec: .word gMapManager _0218cbf0: .word data_02050f54 _0218cbf4: .word 0x4b4f4b4f @@ -4742,14 +4742,14 @@ func_ov41_0218d210: ; 0x0218d210 ldr r3, [sp, #0xc] ldr r2, [sp, #0x10] ldr r1, [sp, #0x14] - ldr r0, _0218d31c ; =data_027e0e60 + ldr r0, _0218d31c ; =gMapManager str r2, [sp, #4] str r3, [sp] str r1, [sp, #8] ldr r0, [r0] ldr r1, [r6, #0x514] add r2, sp, #0 - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r5, #1 _0218d2b8: @@ -4781,7 +4781,7 @@ _0218d2fc: _0218d310: .word data_027e0f94 _0218d314: .word data_027e0f90 _0218d318: .word data_027e0fac -_0218d31c: .word data_027e0e60 +_0218d31c: .word gMapManager _0218d320: .word 0xffff8001 .global func_ov41_0218d324 @@ -4921,7 +4921,7 @@ _0218d438: ldr r0, [r0] bl func_ov00_020c47cc ldr r1, [r0, #4] - ldr r3, _0218d618 ; =data_027e0e60 + ldr r3, _0218d618 ; =gMapManager str r1, [r4, #0x48] ldr r2, [r0, #8] add r1, sp, #0 @@ -4936,7 +4936,7 @@ _0218d438: str r3, [sp, #4] ldr r3, [r4, #0x50] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add sp, sp, #0x3c str r0, [r4, #0x4c] ldmia sp!, {r3, r4, pc} @@ -5006,7 +5006,7 @@ _0218d608: arm_func_end func_ov41_0218d3e0 _0218d610: .word data_ov00_020e8398 _0218d614: .word data_027e0ff0 -_0218d618: .word data_027e0e60 +_0218d618: .word gMapManager .global func_ov41_0218d61c arm_func_start func_ov41_0218d61c @@ -5134,7 +5134,7 @@ _0218d790: b _0218d970 _0218d7c0: ldr r1, [r4, #0x48] - ldr r0, _0218d97c ; =data_027e0e60 + ldr r0, _0218d97c ; =gMapManager str r1, [sp, #4] ldr r1, [r4, #0x4c] ldr r0, [r0] @@ -5143,7 +5143,7 @@ _0218d7c0: add r1, sp, #4 str r2, [sp, #0xc] mov r2, #1 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r4, #0x4c] cmp r1, r0 movge r0, #1 @@ -5253,7 +5253,7 @@ _0218d970: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov41_0218d668 -_0218d97c: .word data_027e0e60 +_0218d97c: .word gMapManager _0218d980: .word data_027e0ffc _0218d984: .word 0x00000309 _0218d988: .word data_027e103c diff --git a/asm/ov42.inc b/asm/ov42.inc index 6ff28d52..c91bb449 100644 --- a/asm/ov42.inc +++ b/asm/ov42.inc @@ -1,5 +1,6 @@ #pragma once -.extern _ZN11ItemManager13ForceEquipItemEi +.extern _ZN10MapManager18func_ov00_02083918EiPi +.extern _ZN11ItemManager14ForceEquipItemEi .extern _ZN11ItemManager20ClearForcedEquipItemEv .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN14AdventureFlags3GetEj @@ -61,7 +62,7 @@ .extern data_027e0d44 .extern data_027e0de4 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f78 .extern data_027e0f94 @@ -112,7 +113,6 @@ .extern func_ov00_0207a1c8 .extern func_ov00_0207bb1c .extern func_ov00_0207c1b0 -.extern func_ov00_02083918 .extern func_ov00_0208726c .extern func_ov00_02087400 .extern func_ov00_020a61ac diff --git a/asm/ov42.s b/asm/ov42.s index d1ba68d7..4b73f54e 100644 --- a/asm/ov42.s +++ b/asm/ov42.s @@ -293,11 +293,11 @@ _02189894: strh r1, [r0, #0x18] cmp r3, #2 blo _02189894 - ldr r0, _02189af4 ; =data_027e0e60 + ldr r0, _02189af4 ; =gMapManager add r2, sp, #0x48 ldr r0, [r0] mov r1, #0x42 - bl func_ov00_02083918 + bl _ZN10MapManager18func_ov00_02083918EiPi cmp r0, #0 beq _021898e0 ldr r0, _02189af8 ; =data_027e0f64 @@ -308,11 +308,11 @@ _02189894: mov r3, r2 bl func_ov00_02087400 _021898e0: - ldr r0, _02189af4 ; =data_027e0e60 + ldr r0, _02189af4 ; =gMapManager add r2, sp, #0x64 ldr r0, [r0] mov r1, #0x43 - bl func_ov00_02083918 + bl _ZN10MapManager18func_ov00_02083918EiPi cmp r0, #0 beq _02189918 ldr r0, _02189af8 ; =data_027e0f64 @@ -326,7 +326,7 @@ _02189918: ldr r0, _02189afc ; =gItemManager mov r1, #5 ldr r0, [r0] - blx _ZN11ItemManager13ForceEquipItemEi + blx _ZN11ItemManager14ForceEquipItemEi ldr r1, _02189b00 ; =data_027e0fc8 mov r0, r7 ldr r4, [r1] @@ -447,7 +447,7 @@ _02189a74: ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .align 2, 0 arm_func_end func_ov42_02189834 -_02189af4: .word data_027e0e60 +_02189af4: .word gMapManager _02189af8: .word data_027e0f64 _02189afc: .word gItemManager _02189b00: .word data_027e0fc8 diff --git a/asm/ov43.inc b/asm/ov43.inc index d42e675d..7b5ae442 100644 --- a/asm/ov43.inc +++ b/asm/ov43.inc @@ -62,7 +62,7 @@ .extern data_027e0c68 .extern data_027e0d0c .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f90 @@ -97,8 +97,8 @@ .extern func_ov00_0207c474 .extern func_ov00_02081f4c .extern func_ov00_02081f50 -.extern func_ov00_020836dc -.extern func_ov00_02083770 +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_02083770Eji .extern func_ov00_02087d34 .extern func_ov00_02093a1c .extern _ZN14AdventureFlags18func_Ov00_02097810Ei diff --git a/asm/ov43.s b/asm/ov43.s index 41992889..0539e50f 100644 --- a/asm/ov43.s +++ b/asm/ov43.s @@ -2995,11 +2995,11 @@ _0218bcfc: str r0, [r4, #0x3d4] b _0218c970 _0218bd3c: - ldr r0, _0218c98c ; =data_027e0e60 + ldr r0, _0218c98c ; =gMapManager ldrh r1, [r4, #0x26] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _0218c970 ldr r0, [r4, #0x3d4] @@ -3811,11 +3811,11 @@ _0218c920: ldrh r0, [r4, #0x20] cmp r0, #5 bne _0218c950 - ldr r0, _0218c98c ; =data_027e0e60 + ldr r0, _0218c98c ; =gMapManager ldrh r1, [r4, #0x26] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 addeq sp, sp, #0x150 moveq r0, #1 @@ -3839,7 +3839,7 @@ _0218c97c: .word data_027e0fe4 _0218c980: .word 0x0000ffff _0218c984: .word data_027e0fe8 _0218c988: .word 0x50425a4b -_0218c98c: .word data_027e0e60 +_0218c98c: .word gMapManager _0218c990: .word data_027e0d0c _0218c994: .word data_027e0c68 _0218c998: .word 0x00690330 @@ -4213,14 +4213,14 @@ _0218ceac: ldrb r2, [r10, #0x3e6] cmp r2, #0 beq _0218cf04 - ldr r0, _0218cf8c ; =data_027e0e60 + ldr r0, _0218cf8c ; =gMapManager str r11, [sp, #0xc] str r4, [sp, #0x10] str r5, [sp, #0x14] ldrh r1, [r10, #0x26] ldr r0, [r0] add r2, sp, #0xc - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r0, #1 movne r0, #0 @@ -4230,14 +4230,14 @@ _0218ceac: mov r0, #0 ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} _0218cf04: - ldr r2, _0218cf8c ; =data_027e0e60 + ldr r2, _0218cf8c ; =gMapManager str r0, [sp] ldr r0, [r2] str r3, [sp, #8] str r1, [sp, #4] ldrh r1, [r10, #0x26] add r2, sp, #0 - bl func_ov00_02083770 + bl _ZN10MapManager18func_ov00_02083770Eji cmp r0, #0 moveq r0, #1 movne r0, #0 @@ -4269,7 +4269,7 @@ _0218cf78: arm_func_end func_ov43_0218cd7c _0218cf84: .word data_027e0fc8 _0218cf88: .word data_027e0f94 -_0218cf8c: .word data_027e0e60 +_0218cf8c: .word gMapManager .global func_ov43_0218cf90 arm_func_start func_ov43_0218cf90 diff --git a/asm/ov44.inc b/asm/ov44.inc index b48c4015..080ba9c4 100644 --- a/asm/ov44.inc +++ b/asm/ov44.inc @@ -68,7 +68,7 @@ .extern data_027e0194 .extern data_027e0764 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f94 .extern data_027e0fe0 .extern data_027e0fe4 @@ -109,8 +109,8 @@ .extern func_ov00_0207c1b0 .extern func_ov00_0207c474 .extern func_ov00_02081f4c -.extern func_ov00_02083a1c -.extern func_ov00_020840c4 +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager16MapData_vfunc_78Ev .extern func_ov00_020a95a4 .extern func_ov00_020a9b6c .extern func_ov00_020a9b78 diff --git a/asm/ov44.s b/asm/ov44.s index b19298c1..1157f439 100644 --- a/asm/ov44.s +++ b/asm/ov44.s @@ -6537,16 +6537,16 @@ _0218e49c: .word 0xfffff852 func_ov44_0218e4a0: ; 0x0218e4a0 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x4c - ldr r1, _0218e588 ; =data_027e0e60 + ldr r1, _0218e588 ; =gMapManager mov r4, r0 ldr r5, [r1] add r0, sp, #0 mov r1, r5 add r2, r4, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r5 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _0218e4ec ldr r0, [r0, #4] @@ -6596,7 +6596,7 @@ _0218e4ec: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov44_0218e4a0 -_0218e588: .word data_027e0e60 +_0218e588: .word gMapManager _0218e58c: .word _ZTV11FilterActor _0218e590: .word 0x5053424c _0218e594: .word data_027e0fe4 diff --git a/asm/ov45.inc b/asm/ov45.inc index 723a7f5d..c49e3b9e 100644 --- a/asm/ov45.inc +++ b/asm/ov45.inc @@ -1,7 +1,7 @@ #pragma once .extern _ZN11ItemManager16SetShipPartCountEjjc .extern _ZN11ItemManager16SetTreasureCountEjc -.extern _ZN11ItemManager19SetTreasureSalvagedEjj +.extern _ZN11ItemManager21AddShipPartPriceShownEjj .extern _ZN11ItemManager21AddTreasurePriceShownEj .extern _ZN14AdventureFlags3GetEj .extern _ZN5Actor10SetUnk_11bEv @@ -46,7 +46,7 @@ .extern _ZN9SysObjectnwEmPjj .extern _ZNK11ItemManager16GetShipPartCountEjj .extern _ZNK11ItemManager16GetTreasureCountEj -.extern _ZNK11ItemManager18IsTreasureSalvagedEjj +.extern _ZNK11ItemManager21HasShipPartPriceShownEjj .extern _ZNK11ItemManager21HasTreasurePriceShownEj .extern __register_global_object .extern data_020691a0 @@ -239,7 +239,7 @@ .extern func_ov09_0211c9a0 .extern func_ov09_0211c9a8 .extern func_ov09_0211c9e8 -.extern func_ov09_0211ca20 +.extern GiveShipPart .extern func_ov09_0211cac0 .extern func_ov09_0211cb3c .extern func_ov09_0211cb5c diff --git a/asm/ov45.s b/asm/ov45.s index 6ec20f6f..a1c29d5c 100644 --- a/asm/ov45.s +++ b/asm/ov45.s @@ -1976,7 +1976,7 @@ func_ov45_0218ad80: ; 0x0218ad80 add r0, ip, r0, asr #1 sub r1, lr, r1 mov r4, #0x2b - blx func_ov09_0211ca20 + blx GiveShipPart b _0218ae0c _0218ae00: sub r0, lr, #0x48 @@ -5128,7 +5128,7 @@ func_ov45_0218d4d4: ; 0x0218d4d4 mov r1, r0 ldr r2, [r5, #0x1c] mov r0, r4 - blx _ZN11ItemManager19SetTreasureSalvagedEjj + blx _ZN11ItemManager21AddShipPartPriceShownEjj ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov45_0218d4d4 @@ -6012,7 +6012,7 @@ _0218de84: mov r1, r0 ldr r2, [r5, #0x1c] mov r0, r6 - blx _ZNK11ItemManager18IsTreasureSalvagedEjj + blx _ZNK11ItemManager21HasShipPartPriceShownEjj cmp r0, #0 beq _0218df54 add ip, sp, #0x28 diff --git a/asm/ov46.inc b/asm/ov46.inc index 27a26d9c..094317f1 100644 --- a/asm/ov46.inc +++ b/asm/ov46.inc @@ -1,6 +1,9 @@ #pragma once .extern Approach_thunk -.extern _ZN11ItemManager10GiveRupeesEjj +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN11ItemManager10GiveRupeesEsb .extern _ZN11ItemManager16SetTreasureCountEjc .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager22FindNearestActorOfTypeEP8ActorRefPS_jP5Vec3p @@ -55,6 +58,8 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN9ActorTypeC1EjPFP5ActorvEPv +.extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern _ZNK11ItemManager16GetTreasureCountEj @@ -69,7 +74,6 @@ .extern data_027e0d38 .extern data_027e0dbc .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f6c .extern data_027e0f94 .extern data_027e0fc8 @@ -116,16 +120,11 @@ .extern func_02036ce4 .extern func_02036f68 .extern func_02037628 -.extern _ZN9ActorTypeC1EjPFP5ActorvEPv -.extern _ZN9ActorTypeD1Ev .extern func_ov00_02079e68 .extern func_ov00_0207a1c8 .extern func_ov00_0207ba90 .extern func_ov00_0207c1b0 .extern func_ov00_0207c1f8 -.extern func_ov00_02083a1c -.extern func_ov00_02083fb0 -.extern func_ov00_020840c4 .extern func_ov00_02093a5c .extern func_ov00_02093af0 .extern func_ov00_02094824 @@ -232,3 +231,4 @@ .extern func_ov34_0217bf5c .extern gAdventureFlags .extern gItemManager +.extern gMapManager diff --git a/asm/ov46.s b/asm/ov46.s index 98e030f1..58abc6f7 100644 --- a/asm/ov46.s +++ b/asm/ov46.s @@ -27,16 +27,16 @@ _02190070: .word 0x000004dc func_ov46_02190074: ; 0x02190074 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 - ldr r1, _021901cc ; =data_027e0e60 + ldr r1, _021901cc ; =gMapManager mov r6, r0 ldr r5, [r1] add r0, sp, #0 mov r1, r5 mov r2, r6 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r5 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r7, r0 ldr r4, _021901d0 ; =0x0000036d beq _021900d8 @@ -60,7 +60,7 @@ _021900d8: ldr r3, [r6, #8] mov r1, r5 str r3, [sp, #0x10] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #4] and r0, r0, #0x1f cmp r0, #0xe @@ -129,7 +129,7 @@ _021901b4: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov46_02190074 -_021901cc: .word data_027e0e60 +_021901cc: .word gMapManager _021901d0: .word 0x0000036d _021901d4: .word 0x0000036e _021901d8: .word 0x0000036f @@ -750,16 +750,16 @@ _021909a8: .word 0x000004d8 func_ov46_021909ac: ; 0x021909ac stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 - ldr r1, _02190b04 ; =data_027e0e60 + ldr r1, _02190b04 ; =gMapManager mov r6, r0 ldr r5, [r1] add r0, sp, #0 mov r1, r5 mov r2, r6 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0 mov r0, r5 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r7, r0 ldr r4, _02190b08 ; =0x0000036d beq _02190a10 @@ -783,7 +783,7 @@ _02190a10: ldr r3, [r6, #8] mov r1, r5 str r3, [sp, #0x10] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #4] and r0, r0, #0x1f cmp r0, #0xe @@ -852,7 +852,7 @@ _02190aec: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov46_021909ac -_02190b04: .word data_027e0e60 +_02190b04: .word gMapManager _02190b08: .word 0x0000036d _02190b0c: .word 0x0000036e _02190b10: .word 0x0000036f @@ -3035,7 +3035,7 @@ _02192754: strb r2, [r5, #0x48b] ldr r0, [r0] mov r2, #1 - bl _ZN11ItemManager10GiveRupeesEjj + bl _ZN11ItemManager10GiveRupeesEsb ldrb r2, [r5, #0x48a] ldr r0, _021927d0 ; =gItemManager sub r1, r4, #1 diff --git a/asm/ov47.inc b/asm/ov47.inc index ddc643d0..af2f158f 100644 --- a/asm/ov47.inc +++ b/asm/ov47.inc @@ -1,12 +1,71 @@ #pragma once .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder +.extern _ZN5Actor10SetUnk_11bEv +.extern _ZN5Actor11SetVelocityEP5Vec3p +.extern _ZN5Actor12ApplyGravityEv +.extern _ZN5Actor12CollidesWithEPKS_ +.extern _ZN5Actor12GetOffsetPosEP5Vec3p +.extern _ZN5Actor12KillInBoundsEv +.extern _ZN5Actor12SetTransformEP9Transform +.extern _ZN5Actor12XzDistanceToEP5Vec3p +.extern _ZN5Actor15IsHitboxTouchedEb +.extern _ZN5Actor15TrySetTransformEP9Transform +.extern _ZN5Actor16CollidesWithLinkEv +.extern _ZN5Actor16XzDistanceToLinkEv +.extern _ZN5Actor18CollidesWithShieldEP8Cylinder +.extern _ZN5Actor18func_Ov00_020c1bfcEi +.extern _ZN5Actor18func_ov00_020c1c20Eiii +.extern _ZN5Actor18func_ov00_020c1cf8Ev +.extern _ZN5Actor18func_ov00_020c1da0EiP5Vec3p +.extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p +.extern _ZN5Actor18func_ov00_020c313cEj +.extern _ZN5Actor18func_ov00_020c3200Ei +.extern _ZN5Actor20IncreaseActiveFramesEv +.extern _ZN5Actor4KillEv +.extern _ZN5Actor6GetPosEv +.extern _ZN5Actor8vfunc_08Ev +.extern _ZN5Actor8vfunc_0cEv +.extern _ZN5Actor8vfunc_10Ej +.extern _ZN5Actor8vfunc_18Ej +.extern _ZN5Actor8vfunc_1cEt +.extern _ZN5Actor8vfunc_20Ei +.extern _ZN5Actor8vfunc_24Ev +.extern _ZN5Actor8vfunc_28Ev +.extern _ZN5Actor8vfunc_2cEv +.extern _ZN5Actor8vfunc_30Ev +.extern _ZN5Actor8vfunc_38Ev +.extern _ZN5Actor8vfunc_48Ei +.extern _ZN5Actor8vfunc_4cEPi +.extern _ZN5Actor8vfunc_54Ev +.extern _ZN5Actor8vfunc_60Ev +.extern _ZN5Actor8vfunc_64Ev +.extern _ZN5Actor8vfunc_68Ev +.extern _ZN5Actor8vfunc_6cEv +.extern _ZN5Actor8vfunc_70Ev +.extern _ZN5Actor8vfunc_74Ev +.extern _ZN5Actor8vfunc_78Ev +.extern _ZN5Actor8vfunc_7cEv +.extern _ZN5Actor8vfunc_80Ev +.extern _ZN5Actor8vfunc_84Ev +.extern _ZN5Actor8vfunc_88Ev +.extern _ZN5Actor8vfunc_8cEv +.extern _ZN5Actor8vfunc_90Ev +.extern _ZN5Actor8vfunc_94Ev +.extern _ZN5Actor8vfunc_98Ev +.extern _ZN5Actor8vfunc_9cEv +.extern _ZN5Actor8vfunc_a8Ev +.extern _ZN5Actor8vfunc_acEv +.extern _ZN5Actor8vfunc_b0Ev +.extern _ZN5Actor9GetHitboxEP8Cylinder +.extern _ZN5ActorC2Ev +.extern _ZN5ActorD2Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern _ZNK11ItemManager19GetActiveFairyLevelEi .extern data_02050f54 .extern data_027e0764 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f6c .extern data_027e0f90 .extern data_027e0f94 @@ -51,12 +110,12 @@ .extern func_ov00_0207c444 .extern func_ov00_02081f4c .extern func_ov00_02081f50 -.extern func_ov00_020836dc -.extern func_ov00_02083ee0 -.extern func_ov00_02083f44 -.extern func_ov00_020840c4 -.extern func_ov00_02084120 -.extern func_ov00_02084740 +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager17GetMapData_Unk_4cEv +.extern _ZN10MapManager18func_ov00_02084740Ev .extern func_ov00_02093a1c .extern func_ov00_0209a4f4 .extern func_ov00_0209a508 @@ -86,65 +145,6 @@ .extern func_ov00_020c070c .extern func_ov00_020c0c08 .extern func_ov00_020c1500 -.extern _ZN5ActorC2Ev -.extern _ZN5ActorD2Ev -.extern _ZN5Actor8vfunc_08Ev -.extern _ZN5Actor8vfunc_0cEv -.extern _ZN5Actor8vfunc_10Ej -.extern _ZN5Actor8vfunc_24Ev -.extern _ZN5Actor8vfunc_28Ev -.extern _ZN5Actor12GetOffsetPosEP5Vec3p -.extern _ZN5Actor8vfunc_38Ev -.extern _ZN5Actor8vfunc_2cEv -.extern _ZN5Actor8vfunc_30Ev -.extern _ZN5Actor8vfunc_18Ej -.extern _ZN5Actor8vfunc_1cEt -.extern _ZN5Actor8vfunc_20Ei -.extern _ZN5Actor10SetUnk_11bEv -.extern _ZN5Actor11SetVelocityEP5Vec3p -.extern _ZN5Actor8vfunc_60Ev -.extern _ZN5Actor8vfunc_64Ev -.extern _ZN5Actor8vfunc_68Ev -.extern _ZN5Actor8vfunc_6cEv -.extern _ZN5Actor8vfunc_70Ev -.extern _ZN5Actor8vfunc_74Ev -.extern _ZN5Actor8vfunc_7cEv -.extern _ZN5Actor8vfunc_78Ev -.extern _ZN5Actor8vfunc_80Ev -.extern _ZN5Actor8vfunc_84Ev -.extern _ZN5Actor8vfunc_88Ev -.extern _ZN5Actor8vfunc_8cEv -.extern _ZN5Actor8vfunc_90Ev -.extern _ZN5Actor8vfunc_94Ev -.extern _ZN5Actor8vfunc_98Ev -.extern _ZN5Actor8vfunc_9cEv -.extern _ZN5Actor15TrySetTransformEP9Transform -.extern _ZN5Actor12SetTransformEP9Transform -.extern _ZN5Actor8vfunc_a8Ev -.extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor18func_ov00_020c1c20Eiii -.extern _ZN5Actor8vfunc_48Ei -.extern _ZN5Actor8vfunc_4cEPi -.extern _ZN5Actor18func_ov00_020c1cf8Ev -.extern _ZN5Actor18func_ov00_020c1da0EiP5Vec3p -.extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p -.extern _ZN5Actor18CollidesWithShieldEP8Cylinder -.extern _ZN5Actor12CollidesWithEPKS_ -.extern _ZN5Actor16CollidesWithLinkEv -.extern _ZN5Actor12XzDistanceToEP5Vec3p -.extern _ZN5Actor16XzDistanceToLinkEv -.extern _ZN5Actor9GetHitboxEP8Cylinder -.extern _ZN5Actor20IncreaseActiveFramesEv -.extern _ZN5Actor15IsHitboxTouchedEb -.extern _ZN5Actor12ApplyGravityEv -.extern _ZN5Actor6GetPosEv -.extern _ZN5Actor8vfunc_54Ev -.extern _ZN5Actor18func_ov00_020c313cEj -.extern _ZN5Actor4KillEv -.extern _ZN5Actor12KillInBoundsEv -.extern _ZN5Actor8vfunc_acEv -.extern _ZN5Actor18func_ov00_020c3200Ei -.extern _ZN5Actor8vfunc_b0Ev .extern func_ov00_020c3348 .extern func_ov00_020c4048 .extern func_ov00_020c4588 diff --git a/asm/ov47.s b/asm/ov47.s index 32a6ebd1..3e0b40d6 100644 --- a/asm/ov47.s +++ b/asm/ov47.s @@ -1181,10 +1181,10 @@ _02190fdc: str r1, [sp] cmp r0, #0 beq _02191060 - ldr r0, _021910ec ; =data_027e0e60 + ldr r0, _021910ec ; =gMapManager add r1, r5, #0x108 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev ldr r1, [r0] ldr r1, [r1, #0x54] blx r1 @@ -1235,7 +1235,7 @@ _021910cc: arm_func_end func_ov47_02190f58 _021910e4: .word data_027e0ffc _021910e8: .word 0x00000397 -_021910ec: .word data_027e0e60 +_021910ec: .word gMapManager _021910f0: .word data_027e0f6c _021910f4: .word data_ov00_020eec9c _021910f8: .word 0x00000393 @@ -1596,7 +1596,7 @@ _02191578: add r1, r4, #0x21c bl func_ov00_020cb140 ldr r1, [r4, #0x14] - ldr r0, _021916c8 ; =data_027e0e60 + ldr r0, _021916c8 ; =gMapManager str r1, [r4, #0x338] ldr r2, [r4, #0x18] add r1, sp, #0 @@ -1619,7 +1619,7 @@ _02191578: str r3, [sp, #4] ldr r3, [r4, #0x340] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x33c] ldrh r0, [r4, #0x20] cmp r0, #4 @@ -1668,7 +1668,7 @@ _021916b8: .align 2, 0 arm_func_end func_ov47_02191548 _021916c4: .word data_ov47_021946d8 -_021916c8: .word data_027e0e60 +_021916c8: .word gMapManager .global func_ov47_021916cc arm_func_start func_ov47_021916cc @@ -2795,7 +2795,7 @@ _02192408: mov r4, #4 str r1, [sp, #0x34] ldr r1, [r6, #0x54] - ldr r3, _02192f7c ; =data_027e0e60 + ldr r3, _02192f7c ; =gMapManager str r1, [sp, #0x20] ldr r2, [r6, #0x58] add r1, sp, #0xe8 @@ -2888,11 +2888,11 @@ _021925ec: cmp r0, #1 bne _02192ecc _0219260c: - ldr r0, _02192f7c ; =data_027e0e60 + ldr r0, _02192f7c ; =gMapManager ldrh r1, [r6, #0x22] ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _02192ecc ldrh r0, [r6, #0x20] @@ -3487,9 +3487,9 @@ _02192e70: bl func_ov47_02191a1c cmp r0, #0 beq _02192eb4 - ldr r0, _02192f7c ; =data_027e0e60 + ldr r0, _02192f7c ; =gMapManager ldr r0, [r0] - bl func_ov00_02084740 + bl _ZN10MapManager18func_ov00_02084740Ev mov r1, r0 ldr r0, _02192f80 ; =data_ov00_020eec68 mov r2, #0 @@ -3508,7 +3508,7 @@ _02192ecc: cmpne r0, #2 cmpne r0, #6 bne _02192f68 - ldr r0, _02192f7c ; =data_027e0e60 + ldr r0, _02192f7c ; =gMapManager ldr r4, [r6, #0x48] ldr r8, [r0] ldr r3, [r6, #0x4c] @@ -3519,10 +3519,10 @@ _02192ecc: str r4, [sp, #0x14] str r3, [sp, #0x18] str r5, [sp, #0x1c] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p mov r7, r0 mov r0, r8 - bl func_ov00_02084120 + bl _ZN10MapManager17GetMapData_Unk_4cEv ldr r1, [r6, #0x344] add r2, r7, r0 cmp r1, #0 @@ -3550,7 +3550,7 @@ _02192f68: arm_func_end func_ov47_02192350 _02192f74: .word 0x55555556 _02192f78: .word 0x0000ffff -_02192f7c: .word data_027e0e60 +_02192f7c: .word gMapManager _02192f80: .word data_ov00_020eec68 _02192f84: .word 0x0000019a _02192f88: .word data_027e0764 @@ -4701,7 +4701,7 @@ func_ov47_02193e80: ; 0x02193e80 add r3, sp, #0x14 ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02193f40 ; =data_027e0e60 + ldr r0, _02193f40 ; =gMapManager ldr lr, [sp, #0x14] ldr ip, [sp, #0x18] ldr r3, [sp, #0x1c] @@ -4711,7 +4711,7 @@ func_ov47_02193e80: ; 0x02193e80 str lr, [sp, #8] str ip, [sp, #0xc] str r3, [sp, #0x10] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x18] ldr r1, _02193f44 ; =func_ov47_02193e68 str r4, [sp] @@ -4744,7 +4744,7 @@ _02193f20: ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov47_02193e80 -_02193f40: .word data_027e0e60 +_02193f40: .word gMapManager _02193f44: .word func_ov47_02193e68 _02193f48: .word data_027e0e58 _02193f4c: .word func_ov47_02193e18 diff --git a/asm/ov48.inc b/asm/ov48.inc index 597d90be..f897a1c1 100644 --- a/asm/ov48.inc +++ b/asm/ov48.inc @@ -63,6 +63,66 @@ .extern _ZN5Actor9GetHitboxEP8Cylinder .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList +.extern _ZN12ActorManager8GetActorEP8ActorRef +.extern _ZN5Actor10SetUnk_11bEv +.extern _ZN5Actor11SetVelocityEP5Vec3p +.extern _ZN5Actor12ApplyGravityEv +.extern _ZN5Actor12CollidesWithEPKS_ +.extern _ZN5Actor12GetOffsetPosEP5Vec3p +.extern _ZN5Actor12SetTransformEP9Transform +.extern _ZN5Actor12XzDistanceToEP5Vec3p +.extern _ZN5Actor14GetAngleToLinkEv +.extern _ZN5Actor15IsHitboxTouchedEb +.extern _ZN5Actor15TrySetTransformEP9Transform +.extern _ZN5Actor16CollidesWithLinkEv +.extern _ZN5Actor16XzDistanceToLinkEv +.extern _ZN5Actor18CollidesWithShieldEP8Cylinder +.extern _ZN5Actor18func_ov00_020c1cf8Ev +.extern _ZN5Actor18func_ov00_020c1d58Ev +.extern _ZN5Actor18func_ov00_020c1f5cEP5Vec3pS1_iS1_ii +.extern _ZN5Actor18func_ov00_020c1fc8Ej +.extern _ZN5Actor18func_ov00_020c243cEiPi +.extern _ZN5Actor18func_ov00_020c313cEj +.extern _ZN5Actor18func_ov00_020c3200Ei +.extern _ZN5Actor20IncreaseActiveFramesEv +.extern _ZN5Actor4KillEv +.extern _ZN5Actor6GetPosEv +.extern _ZN5Actor8vfunc_08Ev +.extern _ZN5Actor8vfunc_0cEv +.extern _ZN5Actor8vfunc_10Ej +.extern _ZN5Actor8vfunc_18Ej +.extern _ZN5Actor8vfunc_1cEt +.extern _ZN5Actor8vfunc_20Ei +.extern _ZN5Actor8vfunc_24Ev +.extern _ZN5Actor8vfunc_28Ev +.extern _ZN5Actor8vfunc_2cEv +.extern _ZN5Actor8vfunc_30Ev +.extern _ZN5Actor8vfunc_38Ev +.extern _ZN5Actor8vfunc_4cEPi +.extern _ZN5Actor8vfunc_54Ev +.extern _ZN5Actor8vfunc_60Ev +.extern _ZN5Actor8vfunc_64Ev +.extern _ZN5Actor8vfunc_68Ev +.extern _ZN5Actor8vfunc_6cEv +.extern _ZN5Actor8vfunc_70Ev +.extern _ZN5Actor8vfunc_74Ev +.extern _ZN5Actor8vfunc_78Ev +.extern _ZN5Actor8vfunc_7cEv +.extern _ZN5Actor8vfunc_80Ev +.extern _ZN5Actor8vfunc_84Ev +.extern _ZN5Actor8vfunc_88Ev +.extern _ZN5Actor8vfunc_8cEv +.extern _ZN5Actor8vfunc_90Ev +.extern _ZN5Actor8vfunc_94Ev +.extern _ZN5Actor8vfunc_98Ev +.extern _ZN5Actor8vfunc_9cEv +.extern _ZN5Actor8vfunc_a8Ev +.extern _ZN5Actor8vfunc_acEv +.extern _ZN5Actor8vfunc_b0Ev +.extern _ZN5Actor9GetHitboxEP8Cylinder +.extern _ZN5ActorC2Ev +.extern _ZN5ActorD2Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern _ZNK11ItemManager19GetActiveFairyLevelEi @@ -73,7 +133,7 @@ .extern data_027e0d38 .extern data_027e0e58 .extern data_027e0e5c -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f90 .extern data_027e0f94 .extern data_027e0fac diff --git a/asm/ov48.s b/asm/ov48.s index d1f2425c..e0ffa4b0 100644 --- a/asm/ov48.s +++ b/asm/ov48.s @@ -2035,7 +2035,7 @@ _021917c4: ldr r0, _02191c1c ; =data_ov48_02195468 add r1, sp, #0xb4 str r0, [sp, #0xc] - ldr r0, _02191c30 ; =data_027e0e60 + ldr r0, _02191c30 ; =gMapManager str r6, [sp, #0x10] ldr r0, [r0] add r2, sp, #0x20 @@ -2296,7 +2296,7 @@ _02191c20: .word func_ov48_02191c60 _02191c24: .word data_ov48_0219545c _02191c28: .word 0x0000ffff _02191c2c: .word 0x00000333 -_02191c30: .word data_027e0e60 +_02191c30: .word gMapManager _02191c34: .word gItemManager _02191c38: .word data_027e0f90 _02191c3c: .word data_027e0fac diff --git a/asm/ov49.inc b/asm/ov49.inc index 2e2b5486..7ff8c456 100644 --- a/asm/ov49.inc +++ b/asm/ov49.inc @@ -2,7 +2,7 @@ .extern Divide .extern _ZN10ActorRupee18func_ov14_0213b5f4EjiP5Vec3pb .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder -.extern _ZN11ItemManager10GiveRupeesEjj +.extern _ZN11ItemManager10GiveRupeesEsb .extern _ZN11ItemManager10RemoveItemEi .extern _ZN11ItemManager12GetItemModelEj .extern _ZN14AdventureFlags18func_Ov00_02097810Ei @@ -76,7 +76,7 @@ .extern data_02052f54 .extern data_027e0764 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f90 .extern data_027e0f94 @@ -118,11 +118,11 @@ .extern func_ov00_0207c1b0 .extern func_ov00_0207c474 .extern func_ov00_02081f4c -.extern func_ov00_020836dc -.extern func_ov00_020839b4 -.extern func_ov00_020839c4 -.extern func_ov00_02083ee0 -.extern func_ov00_02083fb0 +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_020839b4Ei +.extern _ZN10MapManager18func_ov00_020839c4Ei +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i .extern func_ov00_02088000 .extern func_ov00_02094824 .extern func_ov00_0209a4f4 diff --git a/asm/ov49.s b/asm/ov49.s index f0673b70..cdf531cb 100644 --- a/asm/ov49.s +++ b/asm/ov49.s @@ -454,7 +454,7 @@ func_ov49_02195930: ; 0x02195930 mov r2, #0 str r0, [r4, #0x570] ldr r1, [sp, #0x20] - ldr r0, _02195b78 ; =data_027e0e60 + ldr r0, _02195b78 ; =gMapManager str r1, [r4, #0x574] ldr r3, [sp, #0x24] add r1, r4, #0x168 @@ -462,7 +462,7 @@ func_ov49_02195930: ; 0x02195930 strb r2, [r4, #0x56c] ldr r0, [r0] add r1, r1, #0x400 - bl func_ov00_020839b4 + bl _ZN10MapManager18func_ov00_020839b4Ei mov r0, r4 add r1, r4, #0x254 bl func_ov00_020cb140 @@ -477,7 +477,7 @@ _02195b68: .word data_ov49_021986e8 _02195b6c: .word data_ov00_020e2f04 _02195b70: .word data_ov00_020e2dd8 _02195b74: .word 0xfffff666 -_02195b78: .word data_027e0e60 +_02195b78: .word gMapManager .global func_ov49_02195b7c arm_func_start func_ov49_02195b7c @@ -495,12 +495,12 @@ func_ov49_02195b7c: ; 0x02195b7c func_ov49_02195b94: ; 0x02195b94 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x38 - ldr r2, _02195cb4 ; =data_027e0e60 + ldr r2, _02195cb4 ; =gMapManager mov r4, r0 add r1, r4, #0x168 ldr r0, [r2] add r1, r1, #0x400 - bl func_ov00_020839c4 + bl _ZN10MapManager18func_ov00_020839c4Ei ldrb r0, [r4, #0x5c8] cmp r0, #0 bne _02195c24 @@ -572,7 +572,7 @@ _02195c84: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 arm_func_end func_ov49_02195b94 -_02195cb4: .word data_027e0e60 +_02195cb4: .word gMapManager _02195cb8: .word data_027e0fe8 _02195cbc: .word 0x4e534844 @@ -894,7 +894,7 @@ _02196068: mov r0, r5 rsb r1, r1, #0 mov r2, #0 - bl _ZN11ItemManager10GiveRupeesEjj + bl _ZN11ItemManager10GiveRupeesEsb ldrb r1, [r4, #0x5c9] ldr r0, _021960f0 ; =gItemManager add r1, r1, #1 @@ -2528,7 +2528,7 @@ func_ov49_021976bc: ; 0x021976bc b _021977b8 _02197764: ldr r1, [r4, #0x48] - ldr r0, _021977d0 ; =data_027e0e60 + ldr r0, _021977d0 ; =gMapManager str r1, [r4, #0x15c] ldr r2, [r4, #0x4c] add r1, sp, #0 @@ -2543,7 +2543,7 @@ _02197764: str r3, [sp, #4] ldr r3, [r4, #0x164] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [r4, #0x160] mov r0, r4 mov r1, #0 @@ -2557,7 +2557,7 @@ _021977b8: .align 2, 0 arm_func_end func_ov49_021976bc _021977cc: .word 0x000005f3 -_021977d0: .word data_027e0e60 +_021977d0: .word gMapManager .global func_ov49_021977d4 arm_func_start func_ov49_021977d4 @@ -2652,7 +2652,7 @@ _021978a8: cmp r0, #0 beq _021979e0 ldr r1, [r5, #0x48] - ldr r0, _02197b10 ; =data_027e0e60 + ldr r0, _02197b10 ; =gMapManager str r1, [sp, #4] ldr r2, [r5, #0x4c] ldr r1, [r0] @@ -2661,7 +2661,7 @@ _021978a8: add r0, sp, #0 add r2, sp, #4 str r3, [sp, #0xc] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp] mov r0, r0, lsr #0x5 and r0, r0, #3 @@ -2805,7 +2805,7 @@ _02197b08: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov49_02197860 -_02197b10: .word data_027e0e60 +_02197b10: .word gMapManager _02197b14: .word data_027e0ffc _02197b18: .word 0x000001ab _02197b1c: .word 0xfffffe66 @@ -3316,16 +3316,16 @@ _02198160: .word 0x0000048e .global func_ov49_02198164 arm_func_start func_ov49_02198164 func_ov49_02198164: ; 0x02198164 - ldr r2, _0219817c ; =data_027e0e60 - ldr ip, _02198180 ; =func_ov00_020836dc + ldr r2, _0219817c ; =gMapManager + ldr ip, _02198180 ; =_ZN10MapManager18func_ov00_020836dcEii ldrb r1, [r0, #0x15c] ldr r0, [r2] mov r2, #0 bx ip .align 2, 0 arm_func_end func_ov49_02198164 -_0219817c: .word data_027e0e60 -_02198180: .word func_ov00_020836dc +_0219817c: .word gMapManager +_02198180: .word _ZN10MapManager18func_ov00_020836dcEii .global func_ov49_02198184 arm_func_start func_ov49_02198184 diff --git a/asm/ov50.inc b/asm/ov50.inc index 3f6bd505..cde44167 100644 --- a/asm/ov50.inc +++ b/asm/ov50.inc @@ -1,6 +1,10 @@ #pragma once .extern Approach_thunk .extern Divide +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_020840dcEv .extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager13FindActorByIdEj @@ -73,7 +77,6 @@ .extern data_027e0194 .extern data_027e0764 .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f90 @@ -119,10 +122,6 @@ .extern func_ov00_02081f50 .extern func_ov00_02081f58 .extern func_ov00_02081f6c -.extern func_ov00_02083a1c -.extern func_ov00_02083ee0 -.extern func_ov00_020840c4 -.extern func_ov00_020840dc .extern func_ov00_020884b4 .extern func_ov00_02093a1c .extern func_ov00_02093a5c @@ -191,3 +190,4 @@ .extern func_ov14_02148334 .extern func_ov14_02148364 .extern gAdventureFlags +.extern gMapManager diff --git a/asm/ov50.s b/asm/ov50.s index 56fa69b3..af947e52 100644 --- a/asm/ov50.s +++ b/asm/ov50.s @@ -396,10 +396,10 @@ _02195a34: str r1, [sp, #0x1c] cmp r0, #0 beq _02195a84 - ldr r0, _02195cac ; =data_027e0e60 + ldr r0, _02195cac ; =gMapManager add r1, r6, #0x108 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev ldr r1, [r0] ldr r1, [r1, #0x54] blx r1 @@ -563,7 +563,7 @@ _02195c90: .align 2, 0 arm_func_end func_ov50_02195950 _02195ca8: .word data_ov50_021989d0 -_02195cac: .word data_027e0e60 +_02195cac: .word gMapManager _02195cb0: .word data_027e0f6c _02195cb4: .word data_027e0e58 _02195cb8: .word 0x000001a5 @@ -920,7 +920,7 @@ _02196168: ldmia sp!, {r3, r4, r5, r6, r7, r8, pc} _02196184: ldr r1, [r5, #0x48] - ldr r0, _021963e4 ; =data_027e0e60 + ldr r0, _021963e4 ; =gMapManager str r1, [sp] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -929,7 +929,7 @@ _02196184: add r1, sp, #0 str r2, [sp, #8] mov r2, #0 - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x4c] sub r1, r1, r0 mov r0, r5 @@ -1084,7 +1084,7 @@ _021963d4: arm_func_end func_ov50_021960c8 _021963dc: .word data_027e0ffc _021963e0: .word 0x00000396 -_021963e4: .word data_027e0e60 +_021963e4: .word gMapManager _021963e8: .word data_027e0fc8 _021963ec: .word gAdventureFlags @@ -1341,59 +1341,59 @@ func_ov50_02196698: ; 0x02196698 str r3, [sp, #0x10] str ip, [sp, #0x14] bl func_01ff9bc4 - ldr r1, _0219683c ; =data_027e0e60 + ldr r1, _0219683c ; =gMapManager add r0, sp, #8 ldr r1, [r1] add r2, r4, #0x48 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r1, [sp, #8] - ldr r0, _0219683c ; =data_027e0e60 + ldr r0, _0219683c ; =gMapManager ldrb r2, [sp, #9] sub r3, r1, #1 ldr r0, [r0] add r1, sp, #6 strb r3, [sp, #6] strb r2, [sp, #7] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x48] ldrb r1, [sp, #8] subeq r0, r0, #0x800 streq r0, [sp, #0x48] add r3, r1, #1 - ldr r0, _0219683c ; =data_027e0e60 + ldr r0, _0219683c ; =gMapManager ldrb r2, [sp, #9] ldr r0, [r0] add r1, sp, #4 strb r3, [sp, #4] strb r2, [sp, #5] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x3c] ldrb r1, [sp, #9] addeq r0, r0, #0x800 streq r0, [sp, #0x3c] sub r2, r1, #1 - ldr r0, _0219683c ; =data_027e0e60 + ldr r0, _0219683c ; =gMapManager ldrb r3, [sp, #8] ldr r0, [r0] add r1, sp, #2 strb r3, [sp, #2] strb r2, [sp, #3] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x50] ldrb r1, [sp, #9] subeq r0, r0, #0x800 streq r0, [sp, #0x50] add r2, r1, #1 - ldr r0, _0219683c ; =data_027e0e60 + ldr r0, _0219683c ; =gMapManager ldrb r3, [sp, #8] ldr r0, [r0] add r1, sp, #0 strb r3, [sp] strb r2, [sp, #1] - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 ldreq r0, [sp, #0x44] addeq r0, r0, #0x800 @@ -1415,7 +1415,7 @@ func_ov50_02196698: ; 0x02196698 ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov50_02196698 -_0219683c: .word data_027e0e60 +_0219683c: .word gMapManager .global func_ov50_02196840 arm_func_start func_ov50_02196840 @@ -3024,10 +3024,10 @@ func_ov50_02197d04: ; 0x02197d04 strb r2, [sp] strb r2, [sp, #1] bl func_ov00_020c5374 - ldr r0, _02197dc0 ; =data_027e0e60 + ldr r0, _02197dc0 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _02197da0 ldr r1, [r0] @@ -3059,7 +3059,7 @@ _02197da0: ldmia sp!, {r3, r4, pc} .align 2, 0 arm_func_end func_ov50_02197d04 -_02197dc0: .word data_027e0e60 +_02197dc0: .word gMapManager .global func_ov50_02197dc4 arm_func_start func_ov50_02197dc4 diff --git a/asm/ov51.inc b/asm/ov51.inc index 9a208a59..c6a423aa 100644 --- a/asm/ov51.inc +++ b/asm/ov51.inc @@ -1,11 +1,67 @@ #pragma once .extern _ZN10PlayerBase18EquipItem_vfunc_3cEP8Cylinderi +.extern _ZN12ActorManager8GetActorEP8ActorRef +.extern _ZN5Actor10SetUnk_11bEv +.extern _ZN5Actor11SetVelocityEP5Vec3p +.extern _ZN5Actor12CollidesWithEPKS_ +.extern _ZN5Actor12GetOffsetPosEP5Vec3p +.extern _ZN5Actor12SetTransformEP9Transform +.extern _ZN5Actor15IsHitboxTouchedEb +.extern _ZN5Actor15TrySetTransformEP9Transform +.extern _ZN5Actor16CollidesWithLinkEv +.extern _ZN5Actor16XzDistanceToLinkEv +.extern _ZN5Actor18func_Ov00_020c1bfcEi +.extern _ZN5Actor18func_ov00_020c1cf8Ev +.extern _ZN5Actor18func_ov00_020c1da0EiP5Vec3p +.extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p +.extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii +.extern _ZN5Actor18func_ov00_020c1fc8Ej +.extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ +.extern _ZN5Actor18func_ov00_020c243cEiPi +.extern _ZN5Actor18func_ov00_020c313cEj +.extern _ZN5Actor18func_ov00_020c3200Ei +.extern _ZN5Actor20IncreaseActiveFramesEv +.extern _ZN5Actor4KillEv +.extern _ZN5Actor6GetPosEv +.extern _ZN5Actor8vfunc_0cEv +.extern _ZN5Actor8vfunc_10Ej +.extern _ZN5Actor8vfunc_18Ej +.extern _ZN5Actor8vfunc_1cEt +.extern _ZN5Actor8vfunc_24Ev +.extern _ZN5Actor8vfunc_28Ev +.extern _ZN5Actor8vfunc_2cEv +.extern _ZN5Actor8vfunc_30Ev +.extern _ZN5Actor8vfunc_38Ev +.extern _ZN5Actor8vfunc_48Ei +.extern _ZN5Actor8vfunc_4cEPi +.extern _ZN5Actor8vfunc_54Ev +.extern _ZN5Actor8vfunc_60Ev +.extern _ZN5Actor8vfunc_64Ev +.extern _ZN5Actor8vfunc_68Ev +.extern _ZN5Actor8vfunc_6cEv +.extern _ZN5Actor8vfunc_70Ev +.extern _ZN5Actor8vfunc_74Ev +.extern _ZN5Actor8vfunc_78Ev +.extern _ZN5Actor8vfunc_7cEv +.extern _ZN5Actor8vfunc_80Ev +.extern _ZN5Actor8vfunc_84Ev +.extern _ZN5Actor8vfunc_88Ev +.extern _ZN5Actor8vfunc_8cEv +.extern _ZN5Actor8vfunc_90Ev +.extern _ZN5Actor8vfunc_94Ev +.extern _ZN5Actor8vfunc_98Ev +.extern _ZN5Actor8vfunc_9cEv +.extern _ZN5Actor8vfunc_a8Ev +.extern _ZN5Actor8vfunc_acEv +.extern _ZN5Actor8vfunc_b0Ev +.extern _ZN5ActorC2Ev +.extern _ZN5ActorD2Ev .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj .extern data_02050f54 .extern data_027e0764 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f6c .extern data_027e0f90 .extern data_027e0f94 @@ -52,9 +108,9 @@ .extern func_ov00_02081f4c .extern func_ov00_02081f58 .extern func_ov00_02081f6c -.extern func_ov00_020826a0 -.extern func_ov00_02083a1c -.extern func_ov00_02083ee0 +.extern _ZN10MapManager18func_ov00_020826a0Eiii +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager16MapData_vfunc_68Ev .extern func_ov00_0208e6b0 .extern func_ov00_0208e82c .extern func_ov00_02093a5c @@ -73,63 +129,7 @@ .extern func_ov00_020c0cc8 .extern func_ov00_020c0e04 .extern func_ov00_020c1500 -.extern _ZN5ActorC2Ev -.extern _ZN5ActorD2Ev -.extern _ZN5Actor8vfunc_0cEv -.extern _ZN5Actor8vfunc_10Ej -.extern _ZN5Actor8vfunc_24Ev -.extern _ZN5Actor8vfunc_28Ev -.extern _ZN5Actor12GetOffsetPosEP5Vec3p -.extern _ZN5Actor8vfunc_38Ev -.extern _ZN5Actor8vfunc_2cEv -.extern _ZN5Actor8vfunc_30Ev -.extern _ZN5Actor8vfunc_18Ej -.extern _ZN5Actor8vfunc_1cEt -.extern _ZN5Actor10SetUnk_11bEv -.extern _ZN5Actor11SetVelocityEP5Vec3p -.extern _ZN5Actor8vfunc_60Ev -.extern _ZN5Actor8vfunc_64Ev -.extern _ZN5Actor8vfunc_68Ev -.extern _ZN5Actor8vfunc_6cEv -.extern _ZN5Actor8vfunc_70Ev -.extern _ZN5Actor8vfunc_74Ev -.extern _ZN5Actor8vfunc_7cEv -.extern _ZN5Actor8vfunc_78Ev -.extern _ZN5Actor8vfunc_80Ev -.extern _ZN5Actor8vfunc_84Ev -.extern _ZN5Actor8vfunc_88Ev -.extern _ZN5Actor8vfunc_8cEv -.extern _ZN5Actor8vfunc_90Ev -.extern _ZN5Actor8vfunc_94Ev -.extern _ZN5Actor8vfunc_98Ev -.extern _ZN5Actor8vfunc_9cEv -.extern _ZN5Actor15TrySetTransformEP9Transform -.extern _ZN5Actor12SetTransformEP9Transform -.extern _ZN5Actor8vfunc_a8Ev -.extern _ZN5Actor18func_Ov00_020c1bfcEi -.extern _ZN5Actor8vfunc_48Ei -.extern _ZN5Actor8vfunc_4cEPi -.extern _ZN5Actor18func_ov00_020c1cf8Ev -.extern _ZN5Actor18func_ov00_020c1da0EiP5Vec3p -.extern _ZN5Actor18func_ov00_020c1e2cEiP5Vec3p -.extern _ZN5Actor18func_ov00_020c1ef8EP8CylinderP5Vec3pii -.extern _ZN5Actor18func_ov00_020c1fc8Ej -.extern _ZN5Actor18func_ov00_020c23c4EP8ActorRefPS_ -.extern _ZN5Actor18func_ov00_020c243cEiPi -.extern _ZN5Actor12CollidesWithEPKS_ -.extern _ZN5Actor16CollidesWithLinkEv -.extern _ZN5Actor16XzDistanceToLinkEv -.extern _ZN5Actor20IncreaseActiveFramesEv -.extern _ZN5Actor15IsHitboxTouchedEb -.extern _ZN5Actor6GetPosEv -.extern _ZN5Actor8vfunc_54Ev -.extern _ZN5Actor18func_ov00_020c313cEj -.extern _ZN5Actor4KillEv -.extern _ZN5Actor8vfunc_acEv -.extern _ZN5Actor18func_ov00_020c3200Ei -.extern _ZN5Actor8vfunc_b0Ev .extern func_ov00_020c3348 -.extern _ZN12ActorManager8GetActorEP8ActorRef .extern func_ov00_020c4048 .extern func_ov00_020c4588 .extern func_ov00_020c57fc diff --git a/asm/ov51.s b/asm/ov51.s index 6c613bd4..c620ed3a 100644 --- a/asm/ov51.s +++ b/asm/ov51.s @@ -692,7 +692,7 @@ _02195db4: add r3, sp, #0xc ldmia r0, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _02195e9c ; =data_027e0e60 + ldr r0, _02195e9c ; =gMapManager ldr lr, [sp, #0xc] ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] @@ -702,7 +702,7 @@ _02195db4: str lr, [sp] str ip, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x10] ldr r0, [r5, #0x15c] cmp r0, #0 @@ -751,7 +751,7 @@ _02195e80: .align 2, 0 arm_func_end func_ov51_02195c80 _02195e98: .word data_027e0fe4 -_02195e9c: .word data_027e0e60 +_02195e9c: .word gMapManager .global func_ov51_02195ea0 arm_func_start func_ov51_02195ea0 @@ -1993,7 +1993,7 @@ func_ov51_02196e18: ; 0x02196e18 ldmia r1, {r0, r1, r2} mov r9, #0 stmia r8, {r0, r1, r2} - ldr r4, _02196f04 ; =data_027e0e60 + ldr r4, _02196f04 ; =gMapManager mov r5, r9 mov r7, #0xa000 mov r6, #0x800 @@ -2048,7 +2048,7 @@ _02196ee0: .align 2, 0 arm_func_end func_ov51_02196e18 _02196f00: .word data_027e0f94 -_02196f04: .word data_027e0e60 +_02196f04: .word gMapManager .global func_ov51_02196f08 arm_func_start func_ov51_02196f08 @@ -2542,18 +2542,18 @@ _02197588: add r1, r4, #0x100 ldrsh ip, [r1, #0xd0] ldrsh r3, [r1, #0xd2] - ldr r2, _02197634 ; =data_027e0e60 + ldr r2, _02197634 ; =gMapManager add r0, sp, #0xc add r3, ip, r3 strh r3, [r1, #0xd0] ldr r5, [r2] add r2, r4, #0x48 mov r1, r5 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0xc mov r0, r5 mov r2, #1 - bl func_ov00_020826a0 + bl _ZN10MapManager18func_ov00_020826a0Eiii ldr r0, [r4, #0x154] cmp r0, #0 addgt sp, sp, #0x48 @@ -2584,7 +2584,7 @@ _02197588: arm_func_end func_ov51_02197314 _0219762c: .word 0x0000099a _02197630: .word data_ov51_02198280 -_02197634: .word data_027e0e60 +_02197634: .word gMapManager _02197638: .word 0x000007ae _0219763c: .word data_027e0ff8 diff --git a/asm/ov52.inc b/asm/ov52.inc index 8dee865c..98a301f7 100644 --- a/asm/ov52.inc +++ b/asm/ov52.inc @@ -1,4 +1,8 @@ #pragma once +.extern _ZN10MapManager18func_ov00_02082b3cEi +.extern _ZN10MapManager18func_ov00_020836dcEii +.extern _ZN10MapManager18func_ov00_020838e8EjPi +.extern _ZN10MapManager18func_ov00_02084b38Eiii .extern _ZN12ActorManager13FindActorByIdEj .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN14AdventureFlags18func_ov00_02097738Ev @@ -69,7 +73,6 @@ .extern data_027e0ce0 .extern data_027e0d3c .extern data_027e0e58 -.extern data_027e0e60 .extern data_027e0f68 .extern data_027e0f78 .extern data_027e0fa0 @@ -126,10 +129,6 @@ .extern func_ov00_0207a1c8 .extern func_ov00_0207b89c .extern func_ov00_0207c1b0 -.extern func_ov00_02082b3c -.extern func_ov00_020836dc -.extern func_ov00_020838e8 -.extern func_ov00_02084b38 .extern func_ov00_0208d01c .extern func_ov00_020a9588 .extern func_ov00_020a95a4 @@ -168,7 +167,7 @@ .extern func_ov05_021082e4 .extern func_ov09_0211c724 .extern func_ov09_0211c808 -.extern func_ov09_0211ca20 +.extern GiveShipPart .extern func_ov09_0211cac0 .extern func_ov14_021448f4 .extern func_ov14_02144a90 @@ -208,5 +207,6 @@ .extern func_ov14_0214a92c .extern func_ov14_0214aa0c .extern gAdventureFlags +.extern gMapManager .extern gOverlayManager .extern strcpy diff --git a/asm/ov52.s b/asm/ov52.s index c18ed485..13915b53 100644 --- a/asm/ov52.s +++ b/asm/ov52.s @@ -397,13 +397,13 @@ func_ov52_02195908: ; 0x02195908 mov r2, #1 strb r2, [r4, #0x13] mov r3, #0 - ldr r0, _02195a08 ; =data_027e0e60 + ldr r0, _02195a08 ; =gMapManager strb r3, [r4, #0xc] ldr r0, [r0] mov r1, #0x1e - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii mov r1, #0 - ldr r0, _02195a08 ; =data_027e0e60 + ldr r0, _02195a08 ; =gMapManager str r1, [sp, #4] str r1, [sp, #8] strh r1, [sp, #0x10] @@ -419,15 +419,15 @@ func_ov52_02195908: ; 0x02195908 ldr r0, [r0] add r2, sp, #0 mov r1, #2 - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02195a0c ; =gOverlayManager ldr r2, _02195a10 ; =0x00000004 mov r1, #2 blx _ZN14OverlayManager15LoadIfNotLoadedEjj - ldr r0, _02195a08 ; =data_027e0e60 + ldr r0, _02195a08 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02082b3c + bl _ZN10MapManager18func_ov00_02082b3cEi ldr r0, _02195a0c ; =gOverlayManager ldr r2, _02195a14 ; =0x00000005 mov r1, #2 @@ -450,7 +450,7 @@ func_ov52_02195908: ; 0x02195908 .align 2, 0 arm_func_end func_ov52_02195908 _02195a04: .word gAdventureFlags -_02195a08: .word data_027e0e60 +_02195a08: .word gMapManager _02195a0c: .word gOverlayManager _02195a10: .word 0x00000004 _02195a14: .word 0x00000005 @@ -480,7 +480,7 @@ _02195a60: mov r4, #0 strb r4, [r5, #0x13] mov lr, #0x47 - ldr r0, _02195b38 ; =data_027e0e60 + ldr r0, _02195b38 ; =gMapManager sub ip, lr, #0x49 mov r3, #0xff ldr r0, [r0] @@ -495,15 +495,15 @@ _02195a60: strb r4, [sp, #0x13] strb r4, [sp, #0x14] strb r4, [sp, #0x15] - bl func_ov00_020838e8 + bl _ZN10MapManager18func_ov00_020838e8EjPi ldr r0, _02195b3c ; =gOverlayManager ldr r2, _02195b40 ; =0x00000004 mov r1, #2 blx _ZN14OverlayManager15LoadIfNotLoadedEjj - ldr r0, _02195b38 ; =data_027e0e60 + ldr r0, _02195b38 ; =gMapManager add r1, sp, #0 ldr r0, [r0] - bl func_ov00_02082b3c + bl _ZN10MapManager18func_ov00_02082b3cEi ldr r0, _02195b3c ; =gOverlayManager ldr r2, _02195b44 ; =0x00000005 mov r1, #2 @@ -533,7 +533,7 @@ _02195a60: .align 2, 0 arm_func_end func_ov52_02195a20 _02195b34: .word data_ov52_02197c40 -_02195b38: .word data_027e0e60 +_02195b38: .word gMapManager _02195b3c: .word gOverlayManager _02195b40: .word 0x00000004 _02195b44: .word 0x00000005 @@ -547,19 +547,19 @@ _02195b58: .word data_027e103c arm_func_start func_ov52_02195b5c func_ov52_02195b5c: ; 0x02195b5c stmdb sp!, {r4, lr} - ldr r1, _02195ba8 ; =data_027e0e60 + ldr r1, _02195ba8 ; =gMapManager mov r4, r0 ldr r0, [r1] mov r1, #0x1f mov r2, #1 mov r3, #0 - bl func_ov00_02084b38 - ldr r0, _02195ba8 ; =data_027e0e60 + bl _ZN10MapManager18func_ov00_02084b38Eiii + ldr r0, _02195ba8 ; =gMapManager mov r1, #0x1e ldr r0, [r0] mov r2, #1 mov r3, #0 - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii ldr r0, _02195bac ; =data_ov09_0211f5b4 blx func_ov03_020f4048 mov r0, #2 @@ -567,7 +567,7 @@ func_ov52_02195b5c: ; 0x02195b5c ldmia sp!, {r4, pc} .align 2, 0 arm_func_end func_ov52_02195b5c -_02195ba8: .word data_027e0e60 +_02195ba8: .word gMapManager _02195bac: .word data_ov09_0211f5b4 .global func_ov52_02195bb0 @@ -594,21 +594,21 @@ _02195be0: ldr r0, _02195d18 ; =data_ov00_020eec9c ldr r1, _02195d1c ; =0x000003fd bl func_ov00_020d77e4 - ldr r0, _02195d20 ; =data_027e0e60 + ldr r0, _02195d20 ; =gMapManager mov r2, #1 ldr r0, [r0] mov r3, r2 mov r1, #0x1f - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii mov r0, #1 strb r0, [r4, #0xc] b _02195ca4 _02195c20: - ldr r0, _02195d20 ; =data_027e0e60 + ldr r0, _02195d20 ; =gMapManager mov r1, #5 ldr r0, [r0] mov r2, #0 - bl func_ov00_020836dc + bl _ZN10MapManager18func_ov00_020836dcEii cmp r0, #0 beq _02195ca4 ldrb r0, [r4, #0x11] @@ -629,12 +629,12 @@ _02195c5c: bl _ZN14AdventureFlags18func_ov00_02097738Ev cmp r0, #0 ldmneia sp!, {r4, pc} - ldr r0, _02195d20 ; =data_027e0e60 + ldr r0, _02195d20 ; =gMapManager mov r2, #1 ldr r0, [r0] mov r3, r2 mov r1, #0x1e - bl func_ov00_02084b38 + bl _ZN10MapManager18func_ov00_02084b38Eiii mov r0, #3 strb r0, [r4, #0xc] _02195ca0: @@ -675,7 +675,7 @@ _02195ce8: _02195d14: .word data_ov52_02197c70 _02195d18: .word data_ov00_020eec9c _02195d1c: .word 0x000003fd -_02195d20: .word data_027e0e60 +_02195d20: .word gMapManager _02195d24: .word gAdventureFlags _02195d28: .word data_ov00_020eec68 @@ -1159,7 +1159,7 @@ _021963c4: blx func_ov09_0211c724 ldr r0, [sp, #4] ldr r1, [sp] - blx func_ov09_0211ca20 + blx GiveShipPart _021963ec: mov r0, r4 add sp, sp, #0xc diff --git a/asm/ov53.inc b/asm/ov53.inc index 4590adba..58bb5851 100644 --- a/asm/ov53.inc +++ b/asm/ov53.inc @@ -20,7 +20,7 @@ .extern data_02050f54 .extern data_027e0d0c .extern data_027e0de4 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f94 .extern data_027e0fb8 @@ -40,8 +40,8 @@ .extern func_0204f614 .extern func_ov00_0207bb1c .extern func_ov00_02081f4c -.extern func_ov00_02083ee0 -.extern func_ov00_020840c4 +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager16MapData_vfunc_78Ev .extern func_ov00_02087f08 .extern func_ov00_0208967c .extern func_ov00_020b17ec diff --git a/asm/ov53.s b/asm/ov53.s index f40d9598..61dd8876 100644 --- a/asm/ov53.s +++ b/asm/ov53.s @@ -444,7 +444,7 @@ func_ov53_021991ec: ; 0x021991ec cmp r9, r0 bge _02199280 ldr r8, _02199308 ; =data_ov53_0219a5bc - ldr r4, _0219930c ; =data_027e0e60 + ldr r4, _0219930c ; =gMapManager add r6, sp, #0x20 mov r11, #2 add r7, sp, #4 @@ -456,7 +456,7 @@ _02199220: mov r1, r7 strb r3, [sp, #4] strb r2, [sp, #5] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _02199270 ldr r3, [r0] @@ -514,7 +514,7 @@ _021992ec: arm_func_end func_ov53_021991ec _02199304: .word data_ov53_0219a580 _02199308: .word data_ov53_0219a5bc -_0219930c: .word data_027e0e60 +_0219930c: .word gMapManager _02199310: .word data_ov53_0219a5e4 _02199314: .word data_027e0fe4 @@ -742,7 +742,7 @@ _02199518: str r1, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] - ldr r0, _021996ec ; =data_027e0e60 + ldr r0, _021996ec ; =gMapManager add r1, sp, #0x60 ldr r0, [r0] add r2, sp, #0x44 @@ -788,7 +788,7 @@ _021996dc: .word 0x0000019f _021996e0: .word 0x0000ffff _021996e4: .word data_ov53_0219a580 _021996e8: .word data_ov53_0219a5bc -_021996ec: .word data_027e0e60 +_021996ec: .word gMapManager _021996f0: .word data_027e0fe4 _021996f4: .word data_ov53_0219a180 _021996f8: .word data_ov53_0219a5e4 @@ -1206,7 +1206,7 @@ func_ov53_02199c48: ; 0x02199c48 mov lr, #0 str r2, [sp, #0x24] ldr r2, [r0, #0x50] - ldr ip, _02199cc4 ; =data_027e0e60 + ldr ip, _02199cc4 ; =gMapManager str r2, [sp, #0x28] ldr r3, [r0, #0x54] add r2, sp, #0x20 @@ -1230,7 +1230,7 @@ func_ov53_02199c48: ; 0x02199c48 ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov53_02199c48 -_02199cc4: .word data_027e0e60 +_02199cc4: .word gMapManager .global func_ov53_02199cc8 arm_func_start func_ov53_02199cc8 @@ -1267,7 +1267,7 @@ _02199d28: str r2, [r0, #0x1c] str r2, [r0, #0x18] ldr r1, [r5, #0x48] - ldr r0, _02199f78 ; =data_027e0e60 + ldr r0, _02199f78 ; =gMapManager str r1, [sp] ldr r1, [r5, #0x4c] ldr r0, [r0] @@ -1275,7 +1275,7 @@ _02199d28: ldr r3, [r5, #0x50] add r1, sp, #0 str r3, [sp, #8] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [r5, #0x4c] cmp r1, r0 movlt r6, #1 @@ -1417,7 +1417,7 @@ _02199f68: .word data_ov53_0219a680 _02199f6c: .word data_ov53_0219a15c _02199f70: .word func_ov53_02199f88 _02199f74: .word data_ov53_0219a674 -_02199f78: .word data_027e0e60 +_02199f78: .word gMapManager _02199f7c: .word data_027e0ffc _02199f80: .word 0x0000019d _02199f84: .word 0x00000555 diff --git a/asm/ov54.inc b/asm/ov54.inc index 80c6bab4..c0e3c208 100644 --- a/asm/ov54.inc +++ b/asm/ov54.inc @@ -1,4 +1,9 @@ #pragma once +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +.extern _ZN10MapManager18func_ov00_02084ebcEi +.extern _ZN10MapManager18func_ov00_02085594Ev +.extern _ZN10MapManager18func_ov00_02085a34Eii .extern _ZN11ItemManager12GetItemModelEj .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager22FindNearestActorOfTypeEP8ActorRefPS_jP5Vec3p @@ -21,11 +26,12 @@ .extern _ZN13PlayerControl20UpdateUsingEquipItemEv .extern _ZNK11ItemManager16GetEquippedFairyEv .extern _ZNK11ItemManager8GetFairyEi +.extern __register_global_object .extern data_02050f54 .extern data_02054654 .extern data_027e0d38 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0fb8 .extern data_027e0fcc .extern data_027e0fd4 @@ -38,14 +44,8 @@ .extern func_01ffa9fc .extern func_01fffcec .extern func_0202af4c -.extern __register_global_object .extern func_ov00_0207c1b0 .extern func_ov00_0207c2e8 -.extern func_ov00_02083a1c -.extern func_ov00_02083c7c -.extern func_ov00_02084ebc -.extern func_ov00_02085594 -.extern func_ov00_02085a34 .extern func_ov00_020a5e9c .extern func_ov00_020a9588 .extern func_ov00_020a95a4 diff --git a/asm/ov54.s b/asm/ov54.s index df1afc4a..646034ae 100644 --- a/asm/ov54.s +++ b/asm/ov54.s @@ -112,31 +112,31 @@ func_ov54_02198e04: ; 0x02198e04 .global func_ov54_02198e08 arm_func_start func_ov54_02198e08 func_ov54_02198e08: ; 0x02198e08 - ldr r0, _02198e1c ; =data_027e0e60 - ldr ip, _02198e20 ; =func_ov00_02085a34 + ldr r0, _02198e1c ; =gMapManager + ldr ip, _02198e20 ; =_ZN10MapManager18func_ov00_02085a34Eii mov r2, #1 ldr r0, [r0] bx ip .align 2, 0 arm_func_end func_ov54_02198e08 -_02198e1c: .word data_027e0e60 -_02198e20: .word func_ov00_02085a34 +_02198e1c: .word gMapManager +_02198e20: .word _ZN10MapManager18func_ov00_02085a34Eii .global func_ov54_02198e24 arm_func_start func_ov54_02198e24 func_ov54_02198e24: ; 0x02198e24 stmdb sp!, {r3, lr} - ldr r0, _02198e48 ; =data_027e0e60 + ldr r0, _02198e48 ; =gMapManager mov r2, #2 ldr r0, [r0] - bl func_ov00_02085a34 + bl _ZN10MapManager18func_ov00_02085a34Eii cmp r0, #0 movgt r0, #1 movle r0, #0 ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov54_02198e24 -_02198e48: .word data_027e0e60 +_02198e48: .word gMapManager .global func_ov54_02198e4c arm_func_start func_ov54_02198e4c @@ -228,11 +228,11 @@ func_ov54_02198efc: ; 0x02198efc mov r6, r5 cmp r4, r0 beq _02198fb4 - ldr r1, _02199290 ; =data_027e0e60 + ldr r1, _02199290 ; =gMapManager add r0, sp, #0xc ldr r1, [r1] add r2, r7, #0x38 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldrb r2, [sp, #0xc] ldrb r1, [sp, #0xd] mov r0, r7 @@ -315,10 +315,10 @@ _02199050: bl _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList cmp r0, #0 bgt _021990c4 - ldr r0, _02199290 ; =data_027e0e60 + ldr r0, _02199290 ; =gMapManager add r1, r7, #0x38 ldr r0, [r0] - bl func_ov00_02085594 + bl _ZN10MapManager18func_ov00_02085594Ev mov r4, r0 _021990c4: cmp r4, #1 @@ -446,7 +446,7 @@ _02199284: ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 arm_func_end func_ov54_02198efc -_02199290: .word data_027e0e60 +_02199290: .word gMapManager _02199294: .word 0x00000333 _02199298: .word data_ov54_02199a00 _0219929c: .word data_027e0fe4 @@ -833,7 +833,7 @@ func_ov54_021997f0: ; 0x021997f0 bl _ZN13PlayerControl18func_ov00_020af01cEPc cmp r0, #0 beq _02199898 - ldr r0, _021998d0 ; =data_027e0e60 + ldr r0, _021998d0 ; =gMapManager ldrb r2, [sp] ldrb r1, [sp, #1] ldr r0, [r0] @@ -842,11 +842,11 @@ func_ov54_021997f0: ; 0x021997f0 strb r1, [r3, #1] ldr r2, [r3] add r1, sp, #0x10 - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi cmp r4, #0 mov r4, #1 beq _02199884 - ldr r0, _021998d0 ; =data_027e0e60 + ldr r0, _021998d0 ; =gMapManager ldr ip, [sp, #0x10] ldr r3, [sp, #0x14] ldr r2, [sp, #0x18] @@ -855,7 +855,7 @@ func_ov54_021997f0: ; 0x021997f0 str ip, [sp, #4] str r3, [sp, #8] str r2, [sp, #0xc] - bl func_ov00_02084ebc + bl _ZN10MapManager18func_ov00_02084ebcEi cmp r0, #0 moveq r4, #0 _02199884: @@ -881,7 +881,7 @@ _02199898: .align 2, 0 arm_func_end func_ov54_021997f0 _021998cc: .word data_027e0fb8 -_021998d0: .word data_027e0e60 +_021998d0: .word gMapManager .global func_ov54_021998d4 arm_func_start func_ov54_021998d4 diff --git a/asm/ov55.inc b/asm/ov55.inc index 15e9e682..ddf48887 100644 --- a/asm/ov55.inc +++ b/asm/ov55.inc @@ -1,7 +1,7 @@ #pragma once .extern _ZN11ItemManager12GetItemModelEj .extern _ZN11ItemManager17EquipPreviousItemEv -.extern _ZN11ItemManager9SetPotionEjj +.extern _ZN11ItemManager9SetPotionEjh .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN13LinkStateBase12GetGrabActorEv .extern _ZN13LinkStateBase12GetPlayerPosEv @@ -25,7 +25,7 @@ .extern _ZN17LinkStateInteract24SetNormalizedThrowOffsetEP5Vec3p .extern __register_global_object .extern data_027e0c54 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f90 .extern data_027e0fb8 @@ -40,7 +40,7 @@ .extern func_01fffcec .extern func_02019570 .extern func_020385b8 -.extern func_ov00_02083f44 +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p .extern func_ov00_02087d34 .extern func_ov00_0209a4f4 .extern func_ov00_0209a508 diff --git a/asm/ov55.s b/asm/ov55.s index ea2867fb..0491b3f9 100644 --- a/asm/ov55.s +++ b/asm/ov55.s @@ -432,7 +432,7 @@ _02199244: ldr r1, [r4, #0xc] ldr r0, [r0] mov r2, #0 - bl _ZN11ItemManager9SetPotionEjj + bl _ZN11ItemManager9SetPotionEjh ldr r0, _0219926c ; =gItemManager ldr r0, [r0] bl _ZN11ItemManager17EquipPreviousItemEv @@ -585,7 +585,7 @@ func_ov55_021993b8: ; 0x021993b8 mov r5, #0 cmp r0, #0 bne _021994d4 - ldr r0, _02199640 ; =data_027e0e60 + ldr r0, _02199640 ; =gMapManager ldr r9, [sp, #0x1c] ldr r7, [sp, #0x20] ldr r10, [sp, #0x18] @@ -598,10 +598,10 @@ func_ov55_021993b8: ; 0x021993b8 str r10, [sp, #0xc] str r9, [sp, #0x10] str r3, [sp, #0x14] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p cmp r0, r8 bge _021994cc - ldr r0, _02199640 ; =data_027e0e60 + ldr r0, _02199640 ; =gMapManager ldr r10, [sp, #0x18] ldr r0, [r0] add r3, r7, #0x3000 @@ -610,7 +610,7 @@ func_ov55_021993b8: ; 0x021993b8 str r10, [sp] str r9, [sp, #4] str r3, [sp, #8] - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p cmp r0, r8 movlt r6, r5 _021994cc: @@ -710,7 +710,7 @@ _021994d4: arm_func_end func_ov55_021993b8 _02199638: .word data_027e0f64 _0219963c: .word data_027e0c54 -_02199640: .word data_027e0e60 +_02199640: .word gMapManager _02199644: .word 0x0000105b _02199648: .word 0x0000038e _0219964c: .word gAdventureFlags diff --git a/asm/ov57.inc b/asm/ov57.inc index 142d8ebb..767a9d3c 100644 --- a/asm/ov57.inc +++ b/asm/ov57.inc @@ -30,7 +30,7 @@ .extern data_027e0d0c .extern data_027e0de4 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f64 .extern data_027e0f6c .extern data_027e0f94 @@ -57,7 +57,7 @@ .extern func_ov00_0207c1f8 .extern func_ov00_0207c444 .extern func_ov00_02081f4c -.extern func_ov00_020840c4 +.extern _ZN10MapManager16MapData_vfunc_78Ev .extern func_ov00_02087f08 .extern func_ov00_0208967c .extern func_ov00_02093a1c diff --git a/asm/ov57.s b/asm/ov57.s index 5f2ea21c..d0a17125 100644 --- a/asm/ov57.s +++ b/asm/ov57.s @@ -143,10 +143,10 @@ func_ov57_02198e80: ; 0x02198e80 beq _02198f60 b _02198fac _02198ea4: - ldr r0, _02198fb8 ; =data_027e0e60 + ldr r0, _02198fb8 ; =gMapManager add r1, r4, #0x14 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev movs r6, r0 addeq sp, sp, #0x1c moveq r0, #0 @@ -218,7 +218,7 @@ _02198fac: ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 arm_func_end func_ov57_02198e80 -_02198fb8: .word data_027e0e60 +_02198fb8: .word gMapManager _02198fbc: .word data_027e0fe4 .global func_ov57_02198fc0 @@ -613,10 +613,10 @@ func_ov57_02199454: ; 0x02199454 beq _02199490 b _021994b0 _02199470: - ldr r0, _021994b8 ; =data_027e0e60 + ldr r0, _021994b8 ; =gMapManager add r1, r1, #0x14 ldr r0, [r0] - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 movne r0, #1 moveq r0, #0 @@ -635,7 +635,7 @@ _021994b0: ldmia sp!, {r3, pc} .align 2, 0 arm_func_end func_ov57_02199454 -_021994b8: .word data_027e0e60 +_021994b8: .word gMapManager _021994bc: .word data_027e0fe4 .global func_ov57_021994c0 @@ -760,7 +760,7 @@ _021995fc: mov r1, #0 str r0, [sp, #0xc] str r1, [sp, #0x10] - ldr r0, _021996ac ; =data_027e0e60 + ldr r0, _021996ac ; =gMapManager add r1, sp, #0x48 ldr r0, [r0] add r3, sp, #0x3c @@ -774,7 +774,7 @@ _0219969c: .word 0x0000199a _021996a0: .word 0x0000ffff _021996a4: .word data_ov57_0219ab00 _021996a8: .word data_ov57_0219ab0c -_021996ac: .word data_027e0e60 +_021996ac: .word gMapManager .global func_ov57_021996b0 arm_func_start func_ov57_021996b0 @@ -1189,7 +1189,7 @@ func_ov57_02199c78: ; 0x02199c78 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x20 mov r10, r0 - ldr r11, _02199d4c ; =data_027e0e60 + ldr r11, _02199d4c ; =gMapManager mov r7, r10 add r8, r10, #0x2c add r9, r10, #0x24 @@ -1206,7 +1206,7 @@ _02199ca0: _02199cb8: ldr r0, [r11] mov r1, r8 - bl func_ov00_020840c4 + bl _ZN10MapManager16MapData_vfunc_78Ev cmp r0, #0 beq _02199d2c ldr r3, [r0] @@ -1245,7 +1245,7 @@ _02199d2c: ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} .align 2, 0 arm_func_end func_ov57_02199c78 -_02199d4c: .word data_027e0e60 +_02199d4c: .word gMapManager _02199d50: .word data_027e0fe4 .global func_ov57_02199d54 @@ -1988,7 +1988,7 @@ func_ov57_0219a6b8: ; 0x0219a6b8 mov ip, #1 str r1, [sp, #0x2c] ldr r2, [r5, #0x50] - ldr r0, _0219a84c ; =data_027e0e60 + ldr r0, _0219a84c ; =gMapManager str r2, [sp, #0x30] ldr r3, [r5, #0x54] add r1, r5, #0xb8 @@ -2066,7 +2066,7 @@ _0219a830: arm_func_end func_ov57_0219a6b8 _0219a844: .word data_027e0ffc _0219a848: .word data_ov57_0219ab1c -_0219a84c: .word data_027e0e60 +_0219a84c: .word gMapManager .global func_ov57_0219a850 arm_func_start func_ov57_0219a850 diff --git a/asm/ov58.inc b/asm/ov58.inc index b1be52dd..4ce7c74e 100644 --- a/asm/ov58.inc +++ b/asm/ov58.inc @@ -2,6 +2,7 @@ .extern Divide .extern _ZN11ItemManager12GetEquipItemEi .extern _ZN11ItemManager12GetItemModelEj +.extern _ZN12ActorManager13FindActorByIdEj .extern _ZN13LinkStateBase14GetPlayerAngleEv .extern _ZN13LinkStateBase15ChangeLinkStateEi .extern _ZN13LinkStateBase15GetGrabActorRefEv @@ -20,7 +21,7 @@ .extern data_027e0d3c .extern data_027e0d78 .extern data_027e0de4 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f6c .extern data_027e0f94 .extern data_027e0fb8 @@ -70,17 +71,17 @@ .extern func_ov00_0207c0ac .extern func_ov00_0207c0cc .extern func_ov00_02081f4c -.extern func_ov00_0208346c -.extern func_ov00_02083a1c -.extern func_ov00_02083c7c -.extern func_ov00_02083e58 -.extern func_ov00_02083ee0 -.extern func_ov00_02083f44 -.extern func_ov00_02083f80 -.extern func_ov00_02083fb0 -.extern func_ov00_02084088 -.extern func_ov00_020840dc -.extern func_ov00_0208499c +.extern _ZN10MapManager18func_ov00_0208346cEP4AABB +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi +.extern _ZN10MapManager16MapData_vfunc_60Ev +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_02083f44EP5Vec3p +.extern _ZN10MapManager16MapData_vfunc_6cEv +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager16MapData_vfunc_54Ev +.extern _ZN10MapManager18func_ov00_020840dcEv +.extern _ZN10MapManager18func_ov00_0208499cEv .extern func_ov00_0208e72c .extern func_ov00_020a5e9c .extern func_ov00_020a61ac @@ -107,7 +108,6 @@ .extern func_ov00_020c0e5c .extern func_ov00_020c1500 .extern func_ov00_020c3348 -.extern _ZN12ActorManager13FindActorByIdEj .extern func_ov00_020c4048 .extern func_ov00_020cf01c .extern func_ov00_020d00c4 diff --git a/asm/ov58.s b/asm/ov58.s index 809266de..33b2e70a 100644 --- a/asm/ov58.s +++ b/asm/ov58.s @@ -86,22 +86,22 @@ func_ov58_02198d00: ; 0x02198d00 add r1, sp, #8 mov r2, r0 bl func_01ff9bc4 - ldr r1, _02198ef0 ; =data_027e0e60 + ldr r1, _02198ef0 ; =gMapManager add r0, sp, #4 ldr r6, [r1] add r2, sp, #0x14 mov r1, r6 - bl func_ov00_02083a1c + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #4 mov r0, r6 - bl func_ov00_020840dc + bl _ZN10MapManager18func_ov00_020840dcEv cmp r0, #0x46 bne _02198eb4 - ldr r0, _02198ef0 ; =data_027e0e60 + ldr r0, _02198ef0 ; =gMapManager add r1, sp, #0x14 ldr r0, [r0] mov r2, #0 - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p ldr r1, [sp, #0x18] add r1, r1, #0xff add r1, r1, #0x1700 @@ -133,7 +133,7 @@ _02198eb4: _02198ee4: .word func_ov58_02198ef4 _02198ee8: .word func_ov58_02198ef8 _02198eec: .word data_027e0f6c -_02198ef0: .word data_027e0e60 +_02198ef0: .word gMapManager .global func_ov58_02198ef4 arm_func_start func_ov58_02198ef4 @@ -592,11 +592,11 @@ _021992c0: .word data_ov58_0219afc0 arm_func_start func_ov58_021992c4 func_ov58_021992c4: ; 0x021992c4 stmdb sp!, {r3, r4, r5, lr} - ldr r2, _021993e8 ; =data_027e0e60 + ldr r2, _021993e8 ; =gMapManager mov r5, r0 ldr r0, [r2] mov r4, r1 - bl func_ov00_0208499c + bl _ZN10MapManager18func_ov00_0208499cEv cmp r0, #0 beq _0219930c ldr r0, _021993ec ; =data_027e0c54 @@ -676,7 +676,7 @@ _021993e0: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov58_021992c4 -_021993e8: .word data_027e0e60 +_021993e8: .word gMapManager _021993ec: .word data_027e0c54 _021993f0: .word data_027e0d38 _021993f4: .word data_027e0fd4 @@ -786,10 +786,10 @@ _021994ba: mov r0, #0 pop {r4, r5, r6, r7, pc} _021994c2: - ldr r0, _021997f4 ; =data_027e0e60 + ldr r0, _021997f4 ; =gMapManager add r1, sp, #0x1bc ldr r0, [r0] - blx func_ov00_0208346c + blx _ZN10MapManager18func_ov00_0208346cEP4AABB ldr r0, [r4] add r1, sp, #0x128 str r0, [sp, #0x128] @@ -820,12 +820,12 @@ _021994fa: mov r0, #0 pop {r4, r5, r6, r7, pc} _02199502: - ldr r1, _021997f4 ; =data_027e0e60 + ldr r1, _021997f4 ; =gMapManager add r0, sp, #0x58 ldr r1, [r1] add r0, #2 add r2, r4, #0 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p ldr r0, [r4] add r3, sp, #0x58 str r0, [sp, #0x1b0] @@ -835,7 +835,7 @@ _02199502: ldr r0, [r4, #8] mov r2, sp str r0, [sp, #0x1b8] - ldr r0, _021997f4 ; =data_027e0e60 + ldr r0, _021997f4 ; =gMapManager ldrb r6, [r3] ldr r0, [r0] sub r2, r2, #4 @@ -844,7 +844,7 @@ _02199502: add r1, sp, #0x1b0 strb r3, [r2, #1] ldr r2, [r2] - blx func_ov00_02083c7c + blx _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi ldr r0, [r4, #4] str r0, [sp, #0x1b4] ldr r1, [r5, #0x18] @@ -882,7 +882,7 @@ _02199502: mov r0, #0 pop {r4, r5, r6, r7, pc} _02199580: - ldr r0, _021997f4 ; =data_027e0e60 + ldr r0, _021997f4 ; =gMapManager add r3, sp, #0x24 mov r2, sp ldrb r6, [r3, #6] @@ -893,7 +893,7 @@ _02199580: add r1, sp, #0x1a4 strb r3, [r2, #1] ldr r2, [r2] - blx func_ov00_02083c7c + blx _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi ldr r1, [r4] ldr r0, [sp, #0x1a4] sub r1, r1, r0 @@ -946,9 +946,9 @@ _021995e2: str r0, [sp, #0x120] ldr r0, [sp, #0x1b8] str r0, [sp, #0x124] - ldr r0, _021997f4 ; =data_027e0e60 + ldr r0, _021997f4 ; =gMapManager ldr r0, [r0] - blx func_ov00_02083ee0 + blx _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x1b4] _02199606: ldr r1, [sp, #0x198] @@ -1030,11 +1030,11 @@ _0219968e: ldr r1, [sp, #0x190] ldr r0, [sp, #0x14] add r0, r0, r1 - ldr r1, _021997f4 ; =data_027e0e60 + ldr r1, _021997f4 ; =gMapManager str r0, [sp, #0x1b8] ldr r1, [r1] add r0, sp, #0x58 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r0, sp, #0x58 ldrb r1, [r0] add r7, sp, #0x58 @@ -1044,7 +1044,7 @@ _0219968e: mov r3, sp sub r3, r3, #4 strb r0, [r7, #1] - ldr r0, _021997f4 ; =data_027e0e60 + ldr r0, _021997f4 ; =gMapManager ldrb r2, [r7] ldr r0, [r0] add r1, sp, #0x1b0 @@ -1052,7 +1052,7 @@ _0219968e: ldrb r2, [r7, #1] strb r2, [r3, #1] ldr r2, [r3] - blx func_ov00_02083c7c + blx _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi ldr r1, [sp, #0x1b4] ldr r0, _021997fc ; =0x00000999 mov r2, #0 @@ -1063,10 +1063,10 @@ _0219968e: ldr r0, [sp, #0x1b8] str r1, [sp, #0x108] str r0, [sp, #0x10c] - ldr r0, _021997f4 ; =data_027e0e60 + ldr r0, _021997f4 ; =gMapManager add r1, sp, #0x104 ldr r0, [r0] - blx func_ov00_02083ee0 + blx _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 @@ -1148,23 +1148,23 @@ _02199750: add r6, r0, #0 _02199796: ldr r2, [r5, #0x18] - ldr r0, _021997f4 ; =data_027e0e60 + ldr r0, _021997f4 ; =gMapManager sub r2, r2, #1 ldr r1, [r5, #0x1c] lsl r2, r2, #1 ldr r0, [r0] add r1, r1, r2 - blx func_ov00_02084088 + blx _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #0x19 bne _021997ec ldr r1, [r5, #0x18] - ldr r0, _021997f4 ; =data_027e0e60 + ldr r0, _021997f4 ; =gMapManager sub r1, r1, #1 ldr r2, [r5, #0x1c] lsl r1, r1, #1 ldr r0, [r0] add r1, r2, r1 - blx func_ov00_02083e58 + blx _ZN10MapManager16MapData_vfunc_60Ev ldr r1, [sp, #0x18] mov r2, #0 str r1, [sp, #0xf8] @@ -1174,9 +1174,9 @@ _02199796: ldr r0, [sp, #0x14] add r1, sp, #0xf8 str r0, [sp, #0x100] - ldr r0, _021997f4 ; =data_027e0e60 + ldr r0, _021997f4 ; =gMapManager ldr r0, [r0] - blx func_ov00_02083ee0 + blx _ZN10MapManager16MapData_vfunc_68Ev add r6, r0, #0 ldr r0, [sp, #0x1b4] sub r1, r0, r6 @@ -1193,7 +1193,7 @@ _021997ec: .align 2, 0 thumb_func_end func_ov58_02199498 _021997f0: .word data_ov58_0219aec0 -_021997f4: .word data_027e0e60 +_021997f4: .word gMapManager _021997f8: .word data_027e0f94 _021997fc: .word 0x00000999 _02199800: .word 0x00001333 @@ -1233,11 +1233,11 @@ _0219983e: ldr r0, [sp, #0x14] add r2, sp, #0x64 str r0, [sp, #0xf4] - ldr r0, _02199b44 ; =data_027e0e60 + ldr r0, _02199b44 ; =gMapManager add r3, sp, #0x17c ldr r0, [r0] str r6, [sp, #0xf0] - blx func_ov00_02083f80 + blx _ZN10MapManager16MapData_vfunc_6cEv ldr r0, [sp, #0x17c] cmp r0, #0 bne _02199862 @@ -1283,7 +1283,7 @@ _02199872: str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] - ldr r0, _02199b44 ; =data_027e0e60 + ldr r0, _02199b44 ; =gMapManager ldr r0, [r0] blx func_01ffbe78 ldr r1, _02199b4c ; =data_ov58_0219b100 @@ -1311,12 +1311,12 @@ _021998c8: str r1, [sp, #0x1b4] str r0, [sp, #0x1b8] ldr r0, [r5, #0x24] - ldr r1, _02199b44 ; =data_027e0e60 + ldr r1, _02199b44 ; =gMapManager str r0, [sp, #0x1b4] add r0, sp, #0x54 ldr r1, [r1] add r0, #2 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0x54 add r1, #2 ldrb r2, [r1] @@ -1362,7 +1362,7 @@ _02199932: pop {r4, r5, r6, r7, pc} _02199940: ldr r0, [sp, #0x1d4] - ldr r1, _02199b44 ; =data_027e0e60 + ldr r1, _02199b44 ; =gMapManager str r0, [sp, #0x170] ldr r0, [sp, #0x1d8] ldr r1, [r1] @@ -1371,7 +1371,7 @@ _02199940: add r2, sp, #0x170 str r0, [sp, #0x178] add r0, sp, #0x54 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r0, sp, #0x54 ldrb r1, [r0] add r2, sp, #0x58 @@ -1396,7 +1396,7 @@ _02199940: pop {r4, r5, r6, r7, pc} _02199986: add r7, sp, #0x58 - ldr r0, _02199b44 ; =data_027e0e60 + ldr r0, _02199b44 ; =gMapManager add r7, #2 mov r3, sp ldrb r2, [r7] @@ -1407,7 +1407,7 @@ _02199986: add r1, sp, #0x170 strb r2, [r3, #1] ldr r2, [r3] - blx func_ov00_02083c7c + blx _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi add r0, r7, #0 ldrb r2, [r0] add r1, sp, #0x24 @@ -1488,12 +1488,12 @@ _02199a30: mov r0, #0 pop {r4, r5, r6, r7, pc} _02199a38: - ldr r1, _02199b44 ; =data_027e0e60 + ldr r1, _02199b44 ; =gMapManager add r0, sp, #0x50 ldr r1, [r1] add r0, #2 add r2, sp, #0x170 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r0, sp, #0x50 add r0, #2 ldrb r1, [r0] @@ -1539,7 +1539,7 @@ _02199a76: str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] - ldr r0, _02199b44 ; =data_027e0e60 + ldr r0, _02199b44 ; =gMapManager add r3, sp, #0xb0 ldr r0, [r0] blx func_01ffbe78 @@ -1554,11 +1554,11 @@ _02199a76: _02199aba: cmp r0, #0 bne _02199b30 - ldr r1, _02199b44 ; =data_027e0e60 + ldr r1, _02199b44 ; =gMapManager add r0, sp, #0x50 ldr r1, [r1] add r2, sp, #0x170 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0x50 ldrb r2, [r1] add r0, sp, #0x58 @@ -1597,7 +1597,7 @@ _02199aba: mov r0, #0 pop {r4, r5, r6, r7, pc} _02199b14: - ldr r0, _02199b44 ; =data_027e0e60 + ldr r0, _02199b44 ; =gMapManager add r7, sp, #0x24 mov r3, sp ldrb r2, [r7, #4] @@ -1608,7 +1608,7 @@ _02199b14: add r1, sp, #0x170 strb r2, [r3, #1] ldr r2, [r3] - blx func_ov00_02083c7c + blx _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi b _02199bde _02199b30: add r0, sp, #0x214 @@ -1616,11 +1616,11 @@ _02199b30: cmp r0, #0 beq _02199bd6 ldr r0, [sp, #0x1d4] - ldr r1, _02199b44 ; =data_027e0e60 + ldr r1, _02199b44 ; =gMapManager b _02199b58 nop _02199b40: .word 0x00000999 -_02199b44: .word data_027e0e60 +_02199b44: .word gMapManager _02199b48: .word 0x0000099a _02199b4c: .word data_ov58_0219b100 _02199b50: .word data_ov58_0219b0f0 @@ -1635,7 +1635,7 @@ _02199b58: str r0, [sp, #0x178] add r0, sp, #0x4c add r0, #2 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0x4c add r1, #2 ldrb r2, [r1] @@ -1675,7 +1675,7 @@ _02199b58: mov r0, #0 pop {r4, r5, r6, r7, pc} _02199bba: - ldr r0, _02199ee4 ; =data_027e0e60 + ldr r0, _02199ee4 ; =gMapManager add r7, sp, #0x24 mov r3, sp ldrb r2, [r7, #2] @@ -1686,7 +1686,7 @@ _02199bba: add r1, sp, #0x170 strb r2, [r3, #1] ldr r2, [r3] - blx func_ov00_02083c7c + blx _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi b _02199bde _02199bd6: add sp, #0x1fc @@ -1700,7 +1700,7 @@ _02199bde: ldr r1, _02199ee8 ; =0x00000999 str r0, [sp, #0x1b0] str r0, [sp, #0xa4] - ldr r0, _02199ee4 ; =data_027e0e60 + ldr r0, _02199ee4 ; =gMapManager add r1, r3, r1 str r3, [sp, #0x1b4] ldr r0, [r0] @@ -1710,7 +1710,7 @@ _02199bde: str r1, [sp, #0xa8] add r1, sp, #0xa4 mov r2, #0 - blx func_ov00_02083ee0 + blx _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 @@ -1727,7 +1727,7 @@ _02199c18: cmp r0, #0 beq _02199cc8 ldr r0, [sp, #0x1d4] - ldr r1, _02199ee4 ; =data_027e0e60 + ldr r1, _02199ee4 ; =gMapManager str r0, [sp, #0x158] ldr r0, [sp, #0x1d8] ldr r1, [r1] @@ -1736,7 +1736,7 @@ _02199c18: add r2, sp, #0x158 str r0, [sp, #0x160] add r0, sp, #0x4c - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0x4c ldrb r2, [r1] add r0, sp, #0x58 @@ -1775,7 +1775,7 @@ _02199c18: mov r0, #0 pop {r4, r5, r6, r7, pc} _02199c80: - ldr r0, _02199ee4 ; =data_027e0e60 + ldr r0, _02199ee4 ; =gMapManager add r7, sp, #0x24 mov r3, sp ldrb r2, [r7] @@ -1786,14 +1786,14 @@ _02199c80: add r1, sp, #0x158 strb r2, [r3, #1] ldr r2, [r3] - blx func_ov00_02083c7c + blx _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi ldr r0, [sp, #0x158] ldr r2, [sp, #0x160] ldr r3, [sp, #0x15c] ldr r1, _02199ee8 ; =0x00000999 str r0, [sp, #0x1b0] str r0, [sp, #0x98] - ldr r0, _02199ee4 ; =data_027e0e60 + ldr r0, _02199ee4 ; =gMapManager add r1, r3, r1 str r3, [sp, #0x1b4] ldr r0, [r0] @@ -1803,7 +1803,7 @@ _02199c80: str r1, [sp, #0x9c] add r1, sp, #0x98 mov r2, #0 - blx func_ov00_02083ee0 + blx _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 @@ -1815,28 +1815,28 @@ _02199cc8: mov r0, #0 pop {r4, r5, r6, r7, pc} _02199cd0: - ldr r0, _02199ee4 ; =data_027e0e60 + ldr r0, _02199ee4 ; =gMapManager add r2, sp, #0x1b0 ldr r7, [r0] add r0, sp, #0x48 add r0, #2 add r1, r7, #0 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0x48 add r0, r7, #0 add r1, #2 - blx func_ov00_02084088 + blx _ZN10MapManager16MapData_vfunc_54Ev cmp r0, #0x19 bne _02199d0c - ldr r0, _02199ee4 ; =data_027e0e60 + ldr r0, _02199ee4 ; =gMapManager add r2, sp, #0x1b0 ldr r7, [r0] add r0, sp, #0x48 add r1, r7, #0 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r0, r7, #0 add r1, sp, #0x48 - blx func_ov00_02083e58 + blx _ZN10MapManager16MapData_vfunc_60Ev ldr r1, _02199eec ; =0x00001333 str r0, [sp, #0x1b4] sub r0, r0, r1 @@ -1850,9 +1850,9 @@ _02199d0c: str r0, [sp, #0x90] ldr r0, [sp, #0x1b8] str r0, [sp, #0x94] - ldr r0, _02199ee4 ; =data_027e0e60 + ldr r0, _02199ee4 ; =gMapManager ldr r0, [r0] - blx func_ov00_02083ee0 + blx _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x1b4] _02199d26: ldr r0, [sp, #0x18] @@ -1877,11 +1877,11 @@ _02199d3e: beq _02199d50 mov r6, #0 _02199d50: - ldr r1, _02199ee4 ; =data_027e0e60 + ldr r1, _02199ee4 ; =gMapManager add r0, sp, #0x60 ldr r1, [r1] add r2, r7, #0 - blx func_ov00_02083fb0 + blx _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r1, [sp, #0x60] ldr r0, [sp, #0x60] lsr r2, r1, #5 @@ -1901,7 +1901,7 @@ _02199d50: ldr r3, [sp, #0x140] str r0, [sp, #0x1b4] str r0, [sp, #0x84] - ldr r0, _02199ee4 ; =data_027e0e60 + ldr r0, _02199ee4 ; =gMapManager str r1, [sp, #0x1b8] str r1, [sp, #0x88] ldr r0, [r0] @@ -1909,13 +1909,13 @@ _02199d50: mov r2, #0 str r3, [sp, #0x1b0] str r3, [sp, #0x80] - blx func_ov00_02083ee0 + blx _ZN10MapManager16MapData_vfunc_68Ev ldr r1, [sp, #0x198] str r0, [sp, #0x1b4] add r0, r0, r1 str r0, [sp, #0x1b4] ldr r0, [sp, #0x1b0] - ldr r1, _02199ee4 ; =data_027e0e60 + ldr r1, _02199ee4 ; =gMapManager str r0, [r4] ldr r0, [sp, #0x1b4] add r2, sp, #0x1b0 @@ -1925,7 +1925,7 @@ _02199d50: add r0, sp, #0x44 ldr r1, [r1] add r0, #2 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r0, sp, #0x44 add r0, #2 ldrb r2, [r0] @@ -1983,11 +1983,11 @@ _02199e0c: blx func_ov58_0219a3b4 cmp r0, #0 beq _02199e54 - ldr r1, _02199ee4 ; =data_027e0e60 + ldr r1, _02199ee4 ; =gMapManager add r0, sp, #0x44 ldr r1, [r1] add r2, sp, #0x1b0 - blx func_ov00_02083a1c + blx _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p add r1, sp, #0x44 mov r3, sp ldrb r2, [r1] @@ -2005,7 +2005,7 @@ _02199e0c: b _02199e8a _02199e54: ldr r0, [sp, #0x1b0] - ldr r1, _02199ee4 ; =data_027e0e60 + ldr r1, _02199ee4 ; =gMapManager str r0, [sp, #0x74] ldr r0, [sp, #0x1b4] ldr r1, [r1] @@ -2014,7 +2014,7 @@ _02199e54: add r2, sp, #0x74 str r0, [sp, #0x7c] add r0, sp, #0x5c - blx func_ov00_02083fb0 + blx _ZN10MapManager18func_ov00_02083fb0EiPS_i ldr r0, [sp, #0x5c] ldr r2, [sp, #0x5c] lsr r1, r0, #5 @@ -2077,7 +2077,7 @@ _02199eda: add sp, #0x38 pop {r4, r5, r6, r7, pc} .align 2, 0 -_02199ee4: .word data_027e0e60 +_02199ee4: .word gMapManager _02199ee8: .word 0x00000999 _02199eec: .word 0x00001333 @@ -2087,7 +2087,7 @@ func_ov58_02199ef0: ; 0x02199ef0 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0x24 - ldr r0, _02199fd4 ; =data_027e0e60 + ldr r0, _02199fd4 ; =gMapManager ldrb r1, [sp, #0x4c] ldr r0, [r0] sub r3, sp, #4 @@ -2096,9 +2096,9 @@ func_ov58_02199ef0: ; 0x02199ef0 add r1, sp, #0x18 strb r2, [r3, #1] ldr r2, [r3] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi mov r8, #0 - ldr r4, _02199fd4 ; =data_027e0e60 + ldr r4, _02199fd4 ; =gMapManager mov r9, r8 add r5, sp, #0xc mov r7, r8 @@ -2127,11 +2127,11 @@ _02199f40: mov r2, #0 mov r1, r5 bne _02199fa4 - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p mov r10, r0 b _02199fb0 _02199fa4: - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p cmp r10, r0 movle r10, r0 _02199fb0: @@ -2146,7 +2146,7 @@ _02199fb0: bx lr .align 2, 0 arm_func_end func_ov58_02199ef0 -_02199fd4: .word data_027e0e60 +_02199fd4: .word gMapManager .global func_ov58_02199fd8 arm_func_start func_ov58_02199fd8 @@ -2204,7 +2204,7 @@ func_ov58_0219a084: ; 0x0219a084 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} sub sp, sp, #0xcc - ldr r0, _0219a3a8 ; =data_027e0e60 + ldr r0, _0219a3a8 ; =gMapManager ldrb r1, [sp, #0xf4] ldr r0, [r0] sub r3, sp, #4 @@ -2213,9 +2213,9 @@ func_ov58_0219a084: ; 0x0219a084 add r1, sp, #0x30 strb r2, [r3, #1] ldr r2, [r3] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi mov r8, #0 - ldr r4, _0219a3a8 ; =data_027e0e60 + ldr r4, _0219a3a8 ; =gMapManager add r10, sp, #0x3c mov r9, r8 mov r7, r8 @@ -2243,7 +2243,7 @@ _0219a0d8: ldr r0, [r4] mov r1, r10 mov r2, r11 - bl func_ov00_02083f44 + bl _ZN10MapManager18func_ov00_02083f44EP5Vec3p str r0, [r10, #4] add r9, r9, #0x4000 add r10, r10, #0xc @@ -2285,7 +2285,7 @@ _0219a0d8: add r1, sp, #0x6c str r0, [sp, #0xc] str r2, [sp, #0x10] - ldr r0, _0219a3a8 ; =data_027e0e60 + ldr r0, _0219a3a8 ; =gMapManager add r2, sp, #0x3c ldr r0, [r0] add r3, sp, #0x54 @@ -2306,7 +2306,7 @@ _0219a0d8: mov r1, #0 str r0, [sp, #0xc] str r1, [sp, #0x10] - ldr r0, _0219a3a8 ; =data_027e0e60 + ldr r0, _0219a3a8 ; =gMapManager add r1, sp, #0x6c ldr r0, [r0] add r2, sp, #0x48 @@ -2328,7 +2328,7 @@ _0219a0d8: mov r1, #0 str r0, [sp, #0xc] str r1, [sp, #0x10] - ldr r0, _0219a3a8 ; =data_027e0e60 + ldr r0, _0219a3a8 ; =gMapManager add r1, sp, #0x6c ldr r0, [r0] add r2, sp, #0x54 @@ -2350,7 +2350,7 @@ _0219a0d8: mov r1, #0 str r0, [sp, #0xc] str r1, [sp, #0x10] - ldr r0, _0219a3a8 ; =data_027e0e60 + ldr r0, _0219a3a8 ; =gMapManager add r1, sp, #0x6c ldr r0, [r0] add r2, sp, #0x60 @@ -2390,12 +2390,12 @@ _0219a338: add sp, sp, #0x10 bx lr _0219a368: - ldr r0, _0219a3a8 ; =data_027e0e60 + ldr r0, _0219a3a8 ; =gMapManager add r1, sp, #0x30 ldr r0, [r0] add r2, sp, #0x14 add r3, sp, #0x18 - bl func_ov00_02083f80 + bl _ZN10MapManager16MapData_vfunc_6cEv ldr r0, [sp, #0x18] cmp r0, #0 ldreq r0, [sp, #0x20] @@ -2408,7 +2408,7 @@ _0219a368: bx lr .align 2, 0 arm_func_end func_ov58_0219a084 -_0219a3a8: .word data_027e0e60 +_0219a3a8: .word gMapManager _0219a3ac: .word 0x0000ffff _0219a3b0: .word data_ov58_0219b0f0 @@ -2529,7 +2529,7 @@ func_ov58_0219a47c: ; 0x0219a47c add lr, sp, #4 ldmia r0, {r0, r1, r2} stmia lr, {r0, r1, r2} - ldr r3, _0219a5b0 ; =data_027e0e60 + ldr r3, _0219a5b0 ; =gMapManager sub ip, sp, #4 ldr r0, [r3] mov r1, lr @@ -2538,7 +2538,7 @@ func_ov58_0219a47c: ; 0x0219a47c ldr r2, [ip] strb r7, [sp] strb r6, [sp, #1] - bl func_ov00_02083c7c + bl _ZN10MapManager18func_ov00_02083c7cEP5Vec3pi bl func_020385b8 add r1, sp, #4 bl _ZN17LinkStateInteract24SetNormalizedThrowOffsetEP5Vec3p @@ -2569,7 +2569,7 @@ _0219a59c: arm_func_end func_ov58_0219a47c _0219a5a8: .word data_027e077c _0219a5ac: .word data_027e103c -_0219a5b0: .word data_027e0e60 +_0219a5b0: .word gMapManager _0219a5b4: .word data_027e0fb8 .global func_ov58_0219a5b8 diff --git a/asm/ov59.inc b/asm/ov59.inc index 2a3e99cf..b1008d20 100644 --- a/asm/ov59.inc +++ b/asm/ov59.inc @@ -1,4 +1,7 @@ #pragma once +.extern _ZN10MapManager16MapData_vfunc_68Ev +.extern _ZN10MapManager18func_ov00_02083fb0EiPS_i +.extern _ZN10MapManager18func_ov00_020858b0Ev .extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j .extern _ZN12ActorManager8GetActorEP8ActorRef .extern _ZN13LinkStateBase12GetPlayerPosEv @@ -15,7 +18,7 @@ .extern data_02050f54 .extern data_027e0d38 .extern data_027e0e58 -.extern data_027e0e60 +.extern gMapManager .extern data_027e0f94 .extern data_027e0fb8 .extern data_027e0fc8 @@ -43,9 +46,6 @@ .extern func_ov00_02078b40 .extern func_ov00_0207c1b0 .extern func_ov00_0207c358 -.extern func_ov00_02083ee0 -.extern func_ov00_02083fb0 -.extern func_ov00_020858b0 .extern func_ov00_020a5e9c .extern func_ov00_020b853c .extern func_ov00_020b8c50 diff --git a/asm/ov59.s b/asm/ov59.s index 79b12542..894f00e9 100644 --- a/asm/ov59.s +++ b/asm/ov59.s @@ -212,10 +212,10 @@ func_ov59_02198f10: ; 0x02198f10 str r0, [sp, #8] ldr r0, [r5, #0x20] cmp r0, #0 - ldr r0, _02198fa4 ; =data_027e0e60 + ldr r0, _02198fa4 ; =gMapManager moveq r2, #1 ldr r0, [r0] - bl func_ov00_020858b0 + bl _ZN10MapManager18func_ov00_020858b0Ev _02198f88: mov r0, #0 strb r0, [r5, #0x1c] @@ -226,7 +226,7 @@ _02198f88: ldmia sp!, {r4, r5, pc} .align 2, 0 arm_func_end func_ov59_02198f10 -_02198fa4: .word data_027e0e60 +_02198fa4: .word gMapManager .global func_ov59_02198fa8 arm_func_start func_ov59_02198fa8 @@ -749,7 +749,7 @@ _02199620: mov r7, #0 str r0, [r4, #0x50] ldr r0, [r2, #4] - ldr r1, _0219a088 ; =data_027e0e60 + ldr r1, _0219a088 ; =gMapManager add r0, r0, #0x99 add r0, r0, #0x900 str r0, [r4, #0x4c] @@ -971,7 +971,7 @@ _02199968: ldr r0, [sp, #0x5c] orr ip, ip, r6, lsl #20 add r6, r0, ip - ldr r3, _0219a088 ; =data_027e0e60 + ldr r3, _0219a088 ; =gMapManager orr r5, r5, r1, lsl #20 ldr r0, [sp, #0x64] ldr r1, [r3] @@ -982,7 +982,7 @@ _02199968: str r6, [sp, #0x38] str r5, [sp, #0x64] str r5, [sp, #0x40] - bl func_ov00_02083fb0 + bl _ZN10MapManager18func_ov00_02083fb0EiPS_i bl func_ov59_02198e2c ldrb r1, [r0, #0x27] mov r2, #0 @@ -1089,7 +1089,7 @@ _02199bcc: bl func_ov00_020ceb24 b _02199fa4 _02199bdc: - ldr r0, _0219a088 ; =data_027e0e60 + ldr r0, _0219a088 ; =gMapManager ldr r6, [sp, #0x5c] ldr r5, [sp, #0x60] ldr r3, [sp, #0x64] @@ -1099,7 +1099,7 @@ _02199bdc: str r6, [sp, #0x2c] str r5, [sp, #0x30] str r3, [sp, #0x34] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev add r0, r0, #0x99 ldr r1, [sp, #0x60] add r0, r0, #0x900 @@ -1108,7 +1108,7 @@ _02199bdc: movgt r0, #0 cmp r0, #0 beq _02199f70 - ldr r0, _0219a088 ; =data_027e0e60 + ldr r0, _0219a088 ; =gMapManager ldr r6, [sp, #0x5c] ldr r5, [sp, #0x60] ldr r3, [sp, #0x64] @@ -1118,7 +1118,7 @@ _02199bdc: str r6, [sp, #0x20] str r5, [sp, #0x24] str r3, [sp, #0x28] - bl func_ov00_02083ee0 + bl _ZN10MapManager16MapData_vfunc_68Ev str r0, [sp, #0x60] ldr r1, [sp, #0x1c] ldr r2, [r4, #0x344] @@ -1408,7 +1408,7 @@ _0219a078: .word data_02050f54 _0219a07c: .word data_027e0e58 _0219a080: .word data_027e0ffc _0219a084: .word 0x0000ffff -_0219a088: .word data_027e0e60 +_0219a088: .word gMapManager _0219a08c: .word 0xfffff999 _0219a090: .word 0x00000666 _0219a094: .word data_027e0fe4 @@ -1543,7 +1543,7 @@ _0219a24c: stmia r6, {r0, r1, r2} ldmia r4, {r0, r1, r2} stmia r3, {r0, r1, r2} - ldr r0, _0219a9fc ; =data_027e0e60 + ldr r0, _0219a9fc ; =gMapManager ldr r4, [r10, #8] ldr r0, [r0] ldr r2, [r10, #0x98] @@ -1618,7 +1618,7 @@ _0219a24c: strh r7, [r0, #0x6e] mov r6, #0 strh r6, [r0, #0x70] - ldr r11, _0219a9fc ; =data_027e0e60 + ldr r11, _0219a9fc ; =gMapManager strb r6, [sp, #0x1ae] strb r6, [sp, #0x1af] strb r6, [sp, #0x1b0] @@ -1832,7 +1832,7 @@ _0219a668: mov r8, r3 ldmia r0, {r0, r1, r2} stmia r8, {r0, r1, r2} - ldr r0, _0219a9fc ; =data_027e0e60 + ldr r0, _0219a9fc ; =gMapManager ldr r8, [r10, #8] ldr r0, [r0] ldr r2, [r10, #0x98] @@ -1967,7 +1967,7 @@ _0219a8c8: mov ip, r3 ldmia r5, {r0, r1, r2} stmia ip, {r0, r1, r2} - ldr r0, _0219a9fc ; =data_027e0e60 + ldr r0, _0219a9fc ; =gMapManager ldr r2, [r10, #8] ldr r0, [r0] ldr ip, [r10, #0x98] @@ -2034,7 +2034,7 @@ _0219a9ec: .word data_ov59_0219b110 _0219a9f0: .word data_027e0f94 _0219a9f4: .word 0x00000666 _0219a9f8: .word data_02050f54 -_0219a9fc: .word data_027e0e60 +_0219a9fc: .word gMapManager _0219aa00: .word 0xfffff99a _0219aa04: .word 0x0000ffff @@ -2203,7 +2203,7 @@ _0219abcc: str r7, [sp, #0x3c] str r8, [sp, #0x40] ldr r1, [r5, #0x98] - ldr r0, _0219af00 ; =data_027e0e60 + ldr r0, _0219af00 ; =gMapManager str r1, [sp] ldr r2, [r5, #8] add r1, sp, #0xc8 @@ -2298,7 +2298,7 @@ _0219ad18: str lr, [sp, #0x18] str r7, [sp, #0x1c] ldr r1, [r5, #0x98] - ldr r0, _0219af00 ; =data_027e0e60 + ldr r0, _0219af00 ; =gMapManager stmia sp, {r1, ip} ldrh r7, [r5, #0x9c] add r1, sp, #0x68 @@ -2375,7 +2375,7 @@ _0219aebc: _0219aef4: .word data_027e0fd4 _0219aef8: .word data_027e0f94 _0219aefc: .word 0x0000ffff -_0219af00: .word data_027e0e60 +_0219af00: .word gMapManager _0219af04: .word data_027e0fb8 _0219af08: .word gItemManager _0219af0c: .word data_ov00_020dc7d0 diff --git a/docs/build_system.md b/docs/build_system.md new file mode 100644 index 00000000..ee46340f --- /dev/null +++ b/docs/build_system.md @@ -0,0 +1,268 @@ +# Build system +This document describes the build system used for this decompilation project, for those interested to learn about how we build +the ROM. +- [Extracting assets](#extracting-assets) +- [Assembling code](#assembling-code) +- [Compiling code](#compiling-code) +- [Postprocessing ELF files](#postprocessing-elf-files) +- [Generating a linker command file](#generating-a-linker-command-file) +- [Linking modules](#linking-modules) +- [Compressing modules](#compressing-modules) +- [Building the ROM](#building-the-rom) + +## Extracting assets +We implemented a tool called [`extractrom`](/tools/rom/extract.c) that extracts assets from a base ROM that you +provide yourself. It extracts the following data: +- ARM7 program + - Code for the DS coprocessor CPU, aka ARM7 + - The program is likely similar to other retail games, so it is not decompiled in this project +- Banner + - Logo and text that is displayed on the DS home menu +- Assets + - Models, textures, maps, etc. +- Overlay data + - We need the file ID for each overlay, since there is currently no other way to determine the file IDs correctly + +## Assembling code +Files in the `/asm/` directory with the `.s` extension is assembly code. These files are grouped into modules, which consists +of overlays, a main module, an Instruction TCM (ITCM) module and a Data TCM (DTCM) module. + +> [!NOTE] +> For interested readers: +> All modules are loaded into RAM. This is different from the DS predecessor, the Game Boy Advance (GBA), in which all code was +> simply on the ROM at all times. As a result, the GBA's RAM only consisted of variable data. +> +> For the DS, however, code and data is competing for space on the same RAM. For reference, the original DS has 4 MB of general +> purpose RAM. Phantom Hourglass consists of about 4.2 MB of code. Not only would there be no space for variables, the RAM +> wouldn't even contain all code at once! +> +> This is why overlays have to exist. They are code modules which are loaded at runtime, and some of them share the same +> address space with each other. Such overlays cannot be loaded at the same time, for obvious reasons. +> +> Note that the DS does have other memory components used by ARM9, namely the ITCM and DTCM. TCM stands for tightly coupled +> memory and has predictable access time unlike typical RAM. However, they are fully static, which means no heap or stack will +> live there. So, they are mostly reserved for hot code and data. + +The assembly files themselves consist of multiple sections: +- `.text`: Functions +- `.init`: Static initializers +- `.ctor`: List of static initializers +- `.rodata`: Global constants +- `.data`: Global variables +- `.bss`/`.sbss`: Global uninitialized variables + +When the code is linked, all code of the same section will be written adjacent to each other. More on this in [Linking modules](#linking-modules) below. + +## Compiling code +This game was written in C++, so most of the code we decompile will be in this programming language. In C++, we typically don't +have to express which section we want the code to be written to. Instead, the compiler determines the section automatically. +Here are a few examples of how to + +- `.text` + - Functions and member functions (aka methods) + - Example: +```cpp +void GlobalFunction() {} +void MyClass::MemberFunction() {} +``` +- `.init` + - Static initializers, i.e. global variables that are initialized by a constructor + - To our knowledge, there is at most one static initializer per source file. This means that multiple variables can be + initialized in one static initializer, if they are in the same source file. + - See the example below. Since `foo` is initialized by a constructor and not as plain data, this constructor has to be + called at some point before `foo` can be used. In the case of an overlay, this happens as soon as the overlay has been + loaded. +```cpp +class Foo { + int myValue; + Foo(int value): myValue(value) {} +}; + +// This will be a static initializer +Foo foo = Foo(42); +``` +- `.ctor` + - List of static initializers + - Generated automatically as soon as you make a static initializer +- `.rodata` + - Global or static constants + - Example: +```cpp +// This will be .rodata +const unsigned int fibonacciLimit = 8; + +int BadFibonacci(unsigned int n) { + assert(n < fibonacciLimit); + + // This will also be .rodata + static const int fibonacciNumbers[] = { + 1, 1, 2, 3, 5, 8, 13, 21 + }; + return fibonacciNumbers[n]; +} +``` +- `.data` + - Global or static variables + - Example: +```cpp +// .data variables must have an initial value other than 0 +int maxPlayerHealth = 20; + +void DamagePlayer(int damage) { + static int playerHealth = maxPlayerHealth; + playerHealth -= damage; +} +``` +- `.bss` + - Global or static uninitialized variables + - Example: +```cpp +// .bss variables always have an initial value of 0 +int bssInt = 0; +bool bssBool = false; + +// ...but you don't have to explicitly assign 0 +short bssShort; +``` +- `.sbss`: + - "Small" global or static uninitialized variables + - Not part of the ARM standard, but appears to exist in the game in some way + - Example: +```cpp +#pragma section sbss begin +int thisWillBeSbss; +#pragma section sbss end +``` + +## Postprocessing ELF files +The result of compiling and assembling is an ELF (Executable and Linkable Format) file. We do some postprocessing on these +files to ensure that we can get a matching ROM: +- Killing implicit functions + - Writing a constructor/destructor often generates multiple functions used for different purposes. The game does not always + use each type of ctor/dtor, so some functions must be killed before building the ROM. This is done by writing + `KILL(FunctionToKill)` in any C/C++ file, which is postprocessed by [`elfkill`](/tools/elf/elfkill.cpp) which puts such + functions in a section called `.dead`, instead of `.text`. + +## Generating a linker command file + +The linker command file (LCF), also known as linker script, tells the linker in which order it should link the compiled or +assembled files. It is generated by [`lcf.py`](/tools/lcf.py), which is also the file where we define our source files. + +In `lcf.py` we can see how the source/assembly files are grouped into modules. These groups are then used to generate the LCF. +You can see the generated LCF in `/build/arm9_linker_script.lcf` after you've built the ROM. + +The LCF also decides in what order the sections are linked in each module. In the main module, the order is: + + `.text` | `.init` | `.rodata` | `.ctor` | `data` | `.bss` | `.sbss` +---------|---------|-----------|---------|--------|--------|--------- +
+ +For overlays, `.init` comes after `.rodata`: + + `.text` | `.rodata` | `.init` | `.ctor` | `data` | `.bss` | `.sbss` +---------|-----------|---------|---------|--------|--------|--------- +
+ +The ITCM module contains mostly `.text`, but has an unused `.bss` section at the end to pad out the ITCM to exactly 32 kB, +which is exactly the size of the ITCM. + +The DTCM module contains only `.data` and `.bss` and is exactly 16 kB, i.e. the size of the DTCM. + +The LCF also decides the file names where each module is written to. Overlays have one file each (`ov00.bin`, `ov01.bin`, etc), +while the main module, ITCM and DTCM are linked to the same file (`arm9.bin`). + +Lastly, the LCF creates extra files that do not come from code: +- `arm9_footer.bin` + - To be appended to the ROM after `arm9.bin`. + - This file contains an offset to some build information in the main module. This information then points to the ITCM and + DTCM modules inside `arm9.bin`. Technically, the TCMs are placed in the main module's `.bss` section, and will be moved + over to the actual ITCM and DTCM when the game boots up. +- `arm9_metadata.bin` + - Contains some data which will be inserted into the main module build information mentioned above. Some of this data is + also needed during the [ROM building step](#building-the-rom), which is why they are placed in this metadata file. +- `arm9_ovt.bin` + - ARM9 overlay table + - This is a segment in the ROM which declares the address space for each overlay. Some data is missing in this table, and + will be completed during the [ROM building step](#building-the-rom). + +## Linking modules +The LCF and list of compiled/assembled files will be passed to the linker, which generates the files mentioned in the previous +section. + +## Compressing modules +All ARM9 code is compressed, to save space on the ROM. The compression algorithm is a variant of [LZ77](https://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77) +but compressed backwards, starting from the end of the file and working its way to the start. + +In short, LZ77 works as follows. The file is read back to front, byte for byte. Anytime a new byte is read, the algorithm +searches forward through the file for any sequence of bytes that match the bytes being read. + +If such a sequence exists, and is 3 bytes or longer, the algorithm emits a **length-distance pair**. A length-distance pair +encodes this sequence as 4 bits of length, and 12 bits of distance. The length ranges between 3 and 18, and the distance can be +up to 4095 bytes ahead. + +If no such sequence exists within this 4095 byte window, the algorithm instead emits a **literal**, which is simply one +uncompressed byte. + +Length-distance pairs and literals are collectively called **tokens**. For every 8 tokens, the algorithm emits a flag byte. +In this byte, each of the 8 bits determines if an upcoming token is a literal or a length-distance pair. + +This project implements [`compress`](/tools/compress/main.c), which manages to match this algorithm, including several edge +case improvements to the compressed file. + +For instance, as you approach the start of the file, you may lose a few bytes due to lack of length-distance pairs. In that +case, it's actually better not to compress the start of the file, as it would waste both ROM space and CPU time when +decompressing. + +The code that decompresses the modules is located in the main module. This means that the first 16 kB of the main module is not +compressed. This segment is called the secure area, and includes the entrypoint function and decompression algorithm, among +others. + +## Building the ROM + +At this stage, we have obtained the following resources to put in the final ROM: +- Extracted: + - ARM7 program + - Banner + - Assets + - Overlay data (file IDs) +- Built: + - ARM9 main module (compressed), including ITCM and DTCM + - ARM9 main footer + - ARM9 metadata + - ARM9 overlay modules (compressed) + - ARM9 overlay table +- Other: + - Assets listing [`assets.txt`](/assets.txt) + - ARM7 BIOS (dumped from your own DS device) + +We implement the [`buildrom`](/tools/rom/build.c) tool which combines these files in order to build a ROM, in such a way that +it can match the original base ROM. + +The procedure is quite long, but here's a summary of the content in the ROM, listed in order of appearance: + + Section | Description +----------------------|------------- +Header | Game ID, region, offsets to other sections, CRC checksums, ARM9/ARM7 entrypoint addresses +ARM9 main module | The full contents of `arm9.lz` +ARM9 main footer | The full contents of `arm9_footer.bin` +ARM9 overlay table | The full contents of `arm9_ovt.bin`, plus file IDs from `extractrom` and overlay file sizes after compression +ARM9 overlay modules | The full contents of `ov00.lz`, `ov01.lz`, etc +ARM7 program | Taken directly from `extractrom` +File name table | Assets file hierarchy, directory/file names, file IDs for each asset file +File allocation table | Maps file ID to an offset within the ROM where the asset file is located +Assets | Taken directly from `extractrom`, prioritized by `assets.txt` + +> [!NOTE] +> For interested readers: +> The ROM file format has been documented online for a very long time, but there are some details that are necessary for +> building a matching ROM that there was no documentation for, until now: +> +> The file name table (FNT) is sorted with special priority rules: +> 1. Directories before files +> 2. Alphabetic, case-insensitive ordering +> 3. Shortest name first +> +> The order that assets are written to the ROM is sorted in a different way: +> 1. Traverse directories listed in `assets.txt` from top to bottom +> 2. ASCII ordering, i.e. case-sensitive +> 3. Shortest name first diff --git a/docs/courses.md b/docs/courses.md new file mode 100644 index 00000000..2a73d15b --- /dev/null +++ b/docs/courses.md @@ -0,0 +1,81 @@ +# Courses +Courses are collections of maps in the same area. This file documents what is known about courses in the game. +- [List of courses](#list-of-courses) + +## List of courses +This table shows data about all courses. Much of this data can be found in `Map/courselist.clb` in the assets. Feel free to +contribute to this list! + +Index | Name | Type | Internal Name | Description +------|----------------|------|---------------|------ +0 | `sea` | 2 | `*ƒEƒ~` | Sea +1 | `sea_minigame` | 2 | `*ƒ~ƒjƒQ[ƒ€ƒEƒ~` | Cannon Game +2 | `sea_fishing` | 2 | `*ƒcƒŠ` | Fishing +3 | `sea_salvage` | 2 | `*ƒTƒ‹ƒx[ƒW` | Salvage +4 | `ship` | 0 | `*ƒtƒl` | S.S. Linebeck +5 | `ship_terry` | 0 | `*ƒeƒŠ[ƒZƒ“` | Beedle's Shop Ship +6 | `ship_wonder` | 0 | `*ƒtƒVƒMƒtƒl` | Man of Smiles's Boat +7 | `ship_flink` | 0 | `*ƒjƒZƒŠƒ“ƒNƒtƒl` | Prince of Red Lions Ship +8 | `ship_fisher` | 0 | `*ƒŠƒ‡ƒEƒVƒtƒl` | S.S. Wayfarer +9 | `ship_hoho` | 0 | `*ƒz[ƒz[ƒtƒl` | Ho Ho Tribe +10 | `ship_guard` | 0 | `*ƒPƒCƒrƒCƒ“ƒtƒl` | Nyave's Boat +11 | `isle_main` | 0 | `*ƒƒCƒ“ƒWƒ}` | Mercay Island +12 | `isle_pluck` | 0 | `*ƒ†ƒEƒLƒWƒ}` | Molida Island +13 | `isle_flame` | 0 | `*ƒqƒVƒ}` | Isle of Ember +14 | `isle_wind` | 0 | `*ƒJƒ[ƒWƒ}` | Isle of Gust +15 | `isle_water` | 0 | `*ƒRƒIƒŠƒVƒ}` | Isle of Frost +16 | `isle_power` | 0 | `*ƒ`ƒJƒ‰ƒVƒ}` | Goron Island +17 | `isle_wisdom` | 0 | `*ƒ`ƒGƒWƒ}` | Isle of Ruins (High Water) +18 | `isle_wisdom2` | 0 | `*ƒ`ƒGƒWƒ}2` | Isle of Ruins (Low Water) +19 | `isle_torii` | 0 | `*ƒgƒŠƒCƒVƒ}` | Cannon Island +20 | `isle_hidari` | 0 | `*ƒqƒ_ƒŠƒ_ƒCƒVƒ}` | Bannan Island +21 | `isle_myou` | 0 | `*ƒ~ƒ‡ƒEƒWƒ}` | Isle of the Dead +22 | `isle_wizard` | 0 | `*ƒZƒ“ƒjƒ“ƒWƒ}` | Zauz's Island +23 | `isle_shrine` | 0 | `*ƒzƒRƒ‰ƒWƒ}` | Spirit Island +24 | `isle_small1` | 0 | `*ƒRƒWƒ}1` | Harrow Island +25 | `isle_small2` | 0 | `*ƒRƒWƒ}2` | Maze Island +26 | `isle_small3` | 0 | `*ƒRƒWƒ}3` | Uncharted Island +27 | `isle_small5` | 0 | `*ƒRƒWƒ}5` | Dee Ess Island +28 | `dngn_flame` | 1 | `*ƒqƒVƒ“ƒfƒ“` | Temple of Fire +29 | `dngn_wind` | 1 | `*ƒJƒ[ƒVƒ“ƒfƒ“` | Temple of Wind +30 | `dngn_pluck` | 1 | `*ƒ†ƒEƒLƒVƒ“ƒfƒ“` | Temple of Courage +31 | `dngn_water` | 1 | `*ƒRƒIƒŠƒVƒ“ƒfƒ“` | Temple of Ice +32 | `dngn_power` | 1 | `*ƒ`ƒJƒ‰ƒVƒ“ƒfƒ“` | Goron Temple +33 | `dngn_wisdom` | 1 | `*ƒ`ƒGƒVƒ“ƒfƒ“` | Mutoh's Temple +34 | `dngn_wisdom2` | 1 | `*ƒ`ƒGƒVƒ“ƒfƒ“2` | Doylan's Temple +35 | `dngn_wisdom3` | 1 | `*ƒ`ƒGƒVƒ“ƒfƒ“3` | Max's Temple +36 | `dngn_wisdom4` | 1 | `*ƒ`ƒGƒVƒ“ƒfƒ“4` | Bremeur's Temple +37 | `dngn_main` | 3 | `*ƒƒCƒ“ƒ_ƒ“` | Temple of the Ocean King +38 | `dngn_main_f` | 1 | `*ƒƒCƒ“ƒ[ƒ“ƒVƒc` | Temple of the Ocean King Lobby +39 | `dngn_first` | 1 | `*ƒ`ƒ…[ƒgƒŠƒAƒ‹` | Mountain Passage +40 | `dngn_torii` | 1 | `*ƒgƒŠƒCƒ_ƒ“` | Cannon Island Cave +41 | `dngn_ghost` | 1 | `*ƒ†ƒEƒŒƒCƒZƒ“` | Ghost Ship +42 | `boss_wind` | 1 | `*ƒJƒ[ƒ{ƒX` | Cyclok +43 | `boss_flame` | 1 | `*ƒqƒ{ƒX` | Blaaz +44 | `boss_pluck` | 1 | `*ƒ†ƒEƒLƒ{ƒX` | Crayk +45 | `boss_water` | 1 | `*ƒRƒIƒŠƒ{ƒX` | Gleeok +46 | `boss_power` | 1 | `*ƒ`ƒJƒ‰ƒ{ƒX` | Dongorongo +47 | `boss_wisdom` | 1 | `*ƒ`ƒGƒ{ƒX` | Eox +48 | `boss_ghost` | 1 | `*ƒ†ƒEƒŒƒCƒ{ƒX` | Diabolical Cubus Sisters +49 | `boss_last1` | 1 | `*ƒ‰ƒXƒ{ƒX1` | Bellum +50 | `boss_last2` | 2 | `*ƒ‰ƒXƒ{ƒX2` | Bellum's Ghost Ship +51 | `boss_last3` | 1 | `*ƒ‰ƒXƒ{ƒX3` | Bellumbeck +52 | `demo_op` | 0 | `*ƒI[ƒvƒjƒ“ƒO` +53 | `demo_title` | 0 | `*ƒLƒƒƒNƒ}ƒ`` +54 | `demo_end` | 0 | `*ƒGƒ“ƒfƒBƒ“ƒO` +55 | `demo_chase` | 0 | `*ƒfƒ‚26_03` +56 | `seatest` | 2 | `Sea Test` +57 | `wmtest2` | 1 | `MapTest` +58 | `player_dngn` | 1 | `Player Dngn` +59 | `enemytest` | 0 | `Enemy Test` +60 | `eventtest` | 1 | `Event Test` +61 | `roomtest` | 0 | `RoomTest` +62 | `battle00` | 4 | `*Battle 0` +63 | `battle01` | 4 | `*Battle 1` +64 | `battle02` | 4 | `*Battle 2` +65 | `battle03` | 4 | `*Battle 3` +66 | `battle04` | 4 | `*Battle 4` +67 | `battle05` | 4 | `*Battle 5` +68 | `battle06` | 4 | `*Battle 6` +69 | `battle07` | 4 | `*Battle 7` +70 | `battle11` | 4 | `*ƒoƒgƒ‹11` diff --git a/docs/decompiling.md b/docs/decompiling.md index bedb1cbb..3ff23f2b 100644 --- a/docs/decompiling.md +++ b/docs/decompiling.md @@ -2,6 +2,7 @@ This document describes how you can start decompiling code and contribute to the project. Feel free to ask for help if you get stuck or need assistance. - [Pick a source file](#pick-a-source-file) +- [Decompiling a source file](#decompiling-a-source-file) - [Decompiling a function](#decompiling-a-function) - [Decompiling `.init` functions](#decompiling-init-functions) - [The Ghidra project](#the-ghidra-project) @@ -18,13 +19,24 @@ If you want to unclaim the file, leave another comment so we can be certain that again. Remember to make a pull request of any notable progress you made on the source file, which can include [non-matching functions](/CONTRIBUTING.md#non-matching-functions). +## Decompiling a source file +It can be tricky to fully decompile an assembly file into a C/C++ source file, so here's some advice to make it easier: +- C/C++ code is built before assembly code + - This means you can take one function from the top of your assembly file, decompile it, and append it to the bottom of + your C/C++ file. +- Build the ROM often + - We recommend building every time you decompile a function. + - This is because functions can sometimes match in decomp.me, but not when building. + - If your ROM doesn't match, it's easier to know which function is wrong if it's the only function added since the last + successful build. + ## Decompiling a function Say you've found a function you want to decompile. Here are the steps we recommend for decompiling it: 1. Visit [decomp.me](https://decomp.me/) and start decomping. 1. Under the platforms, select "Nintendo DS". -1. Select compiler version `2.0sp1p5`. -1. Copy and paste the target assembly for your function, including the `func_start` and `func_end` macros, and the pool constants. -For example: +1. Select compiler preset "Phantom Hourglass". +1. Copy and paste the target assembly for your function, including the `func_start` and `func_end` macros, and the pool +constants. For example: ```arm .global func_ov09_0211bf48 thumb_func_start func_ov09_0211bf48 @@ -36,13 +48,9 @@ func_ov09_0211bf48: ; 0x0211bf48 thumb_func_end func_ov09_0211bf48 _0211bf50: .word data_ov09_0211f59c ``` -6. Run `m2ctx.py include/MyHeader.hpp -c` to generate a context and put it in your clipboard. +5. Run `m2ctx.py include/MyHeader.hpp -c` to generate a context and put it in your clipboard. - If no suitable header file exists, make a new one and put any structs and types you need in there. 1. Paste the context into decomp.me, and create the scratch. -1. Copy the `CC_FLAGS` from `Makefile` into the arguments field in decomp.me. - - Also copy `CXX_FLAGS` if your function comes from a `.cpp` file. Otherwise, copy `C_FLAGS` if it's a `.c` file. - - Replace the `-d $(REGION)` flag with whichever region you intend to decompile for. You can also delete the flag entirely - if the function contains no region differences. 1. Decompile the function and try to get a 100% match. - There's no ARM decompiler in decomp.me yet, but Ghidra does the job quite well. See [the Ghidra section](#the-ghidra-project) for more info. @@ -70,6 +78,18 @@ is 12 (`0xc`) bytes long and is also implicit, so we don't need to define it our > [!IMPORTANT] > An important thing to keep in mind is that a static initializer can construct multiple global objects. +## Decompiling data +> [!NOTE] +> Under construction! It's not fully clear how data is decompiled, as the compiler is strict on how it orders global variables. +> Feel free to contribute to this section or provide us with more information! + +Other than `.text` and `.init` which contain code, there are the following sections for data: +- `.rodata`: Global or static constants +- `.data`: Global or static variables +- `.bss`/`.sbss`: Global or static uninitialized variables + +You can see examples of these data sections in the [compilation section in `build_system.md`](/docs/build_system.md#compiling-code). + ## The Ghidra project We use a shared Ghidra project to analyze the game and decompile functions. To gain access to the project, install [Ghidra version 10.2.3](https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_10.2.3_build) and request access diff --git a/include/DTCM/UnkStruct_027e0f78.hpp b/include/DTCM/UnkStruct_027e0f78.hpp new file mode 100644 index 00000000..04353f37 --- /dev/null +++ b/include/DTCM/UnkStruct_027e0f78.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e0f78 { + /* 00 */ unk8 mUnk_00[0x18]; + /* 18 */ u16 mUnk_18; + /* 1a */ u16 mUnk_1a; + /* 1c */ u16 mUnk_1c; + /* 1e */ u16 mUnk_1e; + /* 20 */ +}; + +extern UnkStruct_027e0f78 *data_027e0f78; diff --git a/include/Item/Item.hpp b/include/Item/Item.hpp index 5aab40dc..39b1c6f3 100644 --- a/include/Item/Item.hpp +++ b/include/Item/Item.hpp @@ -5,78 +5,122 @@ typedef s32 ItemFlag; enum ItemFlag_ { ItemFlag_None = -1, - ItemFlag_OshusSword = 0, - ItemFlag_WoodenShield = 1, - ItemFlag_Boomerang = 2, - ItemFlag_Shovel = 3, - ItemFlag_BombBag = 4, - ItemFlag_Bow = 5, - ItemFlag_GrapplingHook = 6, - ItemFlag_BombchuBag = 7, - ItemFlag_Hammer = 8, - ItemFlag_PotionA = 9, - ItemFlag_PotionB = 10, + /* 0x00 */ ItemFlag_OshusSword = 0, + /* 0x01 */ ItemFlag_WoodenShield = 1, + /* 0x02 */ ItemFlag_Boomerang = 2, + /* 0x03 */ ItemFlag_Shovel = 3, + /* 0x04 */ ItemFlag_BombBag = 4, + /* 0x05 */ ItemFlag_Bow = 5, + /* 0x06 */ ItemFlag_GrapplingHook = 6, + /* 0x07 */ ItemFlag_BombchuBag = 7, + /* 0x08 */ ItemFlag_Hammer = 8, + /* 0x09 */ ItemFlag_PotionA = 9, + /* 0x0a */ ItemFlag_PotionB = 10, ItemFlag_EQUIP_START = ItemFlag_OshusSword, ItemFlag_EQUIP_END = ItemFlag_PotionB + 1, ItemFlag_EQUIP_COUNT = ItemFlag_EQUIP_END - ItemFlag_EQUIP_START, - ItemFlag_SpiritOfCourage = 20, - ItemFlag_SpiritOfPower = 21, - ItemFlag_SpiritOfWisdom = 22, - ItemFlag_CourageLv1 = 23, - ItemFlag_PowerLv1 = 24, - ItemFlag_WisdomLv1 = 25, + /* 0x14 */ ItemFlag_SpiritOfCourage = 20, + /* 0x15 */ ItemFlag_SpiritOfPower = 21, + /* 0x16 */ ItemFlag_SpiritOfWisdom = 22, + /* 0x17 */ ItemFlag_CourageLv1 = 23, + /* 0x18 */ ItemFlag_PowerLv1 = 24, + /* 0x19 */ ItemFlag_WisdomLv1 = 25, ItemFlag_FAIRY_LV1 = ItemFlag_CourageLv1, - ItemFlag_CourageLv2 = 26, - ItemFlag_PowerLv2 = 27, - ItemFlag_WisdomLv2 = 28, + /* 0x1a */ ItemFlag_CourageLv2 = 26, + /* 0x1b */ ItemFlag_PowerLv2 = 27, + /* 0x1c */ ItemFlag_WisdomLv2 = 28, ItemFlag_FAIRY_LV2 = ItemFlag_CourageLv2, - ItemFlag_Hourglass = 32, - ItemFlag_SeaChartSW = 33, - ItemFlag_SeaChartNW = 34, - ItemFlag_SeaChartSE = 35, - ItemFlag_SeaChartNE = 36, - ItemFlag_PhantomSword = 37, - ItemFlag_SunKey = 38, + /* 0x20 */ ItemFlag_Hourglass = 32, + /* 0x21 */ ItemFlag_SeaChartSW = 33, + /* 0x22 */ ItemFlag_SeaChartNW = 34, + /* 0x23 */ ItemFlag_SeaChartSE = 35, + /* 0x24 */ ItemFlag_SeaChartNE = 36, + /* 0x25 */ ItemFlag_PhantomSword = 37, + /* 0x26 */ ItemFlag_SunKey = 38, + /* 0x27 */ ItemFlag_Unk_39 = 39, + /* 0x28 */ ItemFlag_FishingRod = 40, + /* 0x29 */ ItemFlag_Cannon = 41, + /* 0x2a */ ItemFlag_KingsKey = 42, + /* 0x2b */ ItemFlag_GhostKey = 43, + /* 0x2c */ ItemFlag_SalvageArm = 44, - ItemFlag_KingsKey = 42, - ItemFlag_GhostKey = 43, + /* 0x2d */ ItemFlag_SwordsmansScroll = 45, + /* 0x2e */ ItemFlag_CycloneSlate = 46, + /* 0x2f */ ItemFlag_Unk_47 = 47, - ItemFlag_SwordsmansScroll = 45, + /* 0x60 */ ItemFlag_TreasureChart1 = 96, + /* 0x61 */ ItemFlag_TreasureChart2 = 97, + /* 0x62 */ ItemFlag_TreasureChart3 = 98, + /* 0x63 */ ItemFlag_TreasureChart4 = 99, + /* 0x64 */ ItemFlag_TreasureChart5 = 100, + /* 0x65 */ ItemFlag_TreasureChart6 = 101, + /* 0x66 */ ItemFlag_TreasureChart7 = 102, + /* 0x67 */ ItemFlag_TreasureChart8 = 103, + /* 0x68 */ ItemFlag_TreasureChart9 = 104, + /* 0x69 */ ItemFlag_TreasureChart10 = 105, + /* 0x6a */ ItemFlag_TreasureChart11 = 106, + /* 0x6b */ ItemFlag_TreasureChart12 = 107, + /* 0x6c */ ItemFlag_TreasureChart13 = 108, + /* 0x6d */ ItemFlag_TreasureChart14 = 109, + /* 0x6e */ ItemFlag_TreasureChart15 = 110, + /* 0x6f */ ItemFlag_TreasureChart16 = 111, + /* 0x70 */ ItemFlag_TreasureChart17 = 112, + /* 0x71 */ ItemFlag_TreasureChart18 = 113, + /* 0x72 */ ItemFlag_TreasureChart19 = 114, + /* 0x73 */ ItemFlag_TreasureChart20 = 115, + /* 0x74 */ ItemFlag_TreasureChart21 = 116, + /* 0x75 */ ItemFlag_TreasureChart22 = 117, + /* 0x76 */ ItemFlag_TreasureChart23 = 118, + /* 0x77 */ ItemFlag_TreasureChart24 = 119, + /* 0x78 */ ItemFlag_TreasureChart25 = 120, + /* 0x79 */ ItemFlag_TreasureChart26 = 121, + /* 0x7a */ ItemFlag_TreasureChart27 = 122, + /* 0x7b */ ItemFlag_TreasureChart28 = 123, + /* 0x7c */ ItemFlag_TreasureChart29 = 124, + /* 0x7d */ ItemFlag_TreasureChart30 = 125, + /* 0x7e */ ItemFlag_TreasureChart31 = 126, + /* 0x7f */ ItemFlag_TreasureChart32 = 127, + ItemFlag_TREASURE_CHART_START = ItemFlag_TreasureChart1, - ItemFlag_COUNT = 128, + ItemFlag_COUNT = 128, }; typedef s32 ItemId; enum ItemId_ { /* -1 */ ItemId_None = -1, + /* 0x00 */ ItemId_Nothing = 0, /* 0x01 */ ItemId_SmallKey = 1, /* 0x02 */ ItemId_GreenRupee = 2, /* 0x03 */ ItemId_OshusSword = 3, /* 0x04 */ ItemId_WoodenShield = 4, - + /* 0x05 */ ItemId_Unk_5 = 5, + /* 0x06 */ ItemId_Unk_6 = 6, /* 0x07 */ ItemId_BombBag = 7, /* 0x08 */ ItemId_Bow = 8, /* 0x09 */ ItemId_BigGreenRupee = 9, /* 0x0a */ ItemId_HeartContainer = 10, - + /* 0x0b */ ItemId_Unk_11 = 11, /* 0x0c */ ItemId_Boomerang = 12, /* 0x0d */ ItemId_Scoop = 13, /* 0x0e */ ItemId_BombchuBag = 14, /* 0x0f */ ItemId_BossKey = 15, - + /* 0x10 */ ItemId_Unk_16 = 16, + /* 0x11 */ ItemId_Unk_17 = 17, /* 0x12 */ ItemId_PhantomHourglass = 18, /* 0x13 */ ItemId_SWSeaChart = 19, /* 0x14 */ ItemId_NWSeaChart = 20, /* 0x15 */ ItemId_SESeaChart = 21, /* 0x16 */ ItemId_NESeaChart = 22, - + /* 0x17 */ ItemId_Unk_23 = 23, /* 0x18 */ ItemId_BlueRupee = 24, /* 0x19 */ ItemId_RedRupee = 25, /* 0x1a */ ItemId_BigRedRupee = 26, /* 0x1b */ ItemId_GoldRupee = 27, - + /* 0x1c */ ItemId_Unk_28 = 28, + /* 0x1d */ ItemId_Unk_29 = 29, + /* 0x1e */ ItemId_Unk_30 = 30, /* 0x1f */ ItemId_Hammer = 31, /* 0x20 */ ItemId_Rope = 32, /* 0x21 */ ItemId_SquareCrystal = 33, @@ -85,7 +129,7 @@ enum ItemId_ { /* 0x24 */ ItemId_FishingRod = 36, /* 0x25 */ ItemId_Cannon = 37, /* 0x26 */ ItemId_SunKey = 38, - + /* 0x27 */ ItemId_Unk_39 = 39, /* 0x28 */ ItemId_Quiver = 40, /* 0x29 */ ItemId_BigBombBag = 41, /* 0x2a */ ItemId_BigBombchuBag = 42, @@ -178,12 +222,14 @@ enum ItemId_ { /* 0x7d */ ItemId_Unk_125 = 125, /* 0x7e */ ItemId_Unk_126 = 126, /* 0x7f */ ItemId_CycloneSlate = 127, - + /* 0x80 */ ItemId_Unk_128 = 128, /* 0x81 */ ItemId_Rupoor10 = 129, /* 0x82 */ ItemId_Rupoor50 = 130, - + /* 0x83 */ ItemId_Unk_131 = 131, + /* 0x84 */ ItemId_Unk_132 = 132, /* 0x85 */ ItemId_Unk_133 = 133, - + /* 0x86 */ ItemId_Unk_134 = 134, + /* 0x87 */ ItemId_Unk_135 = 135, /* 0x88 */ ItemId_Unk_136 = 136, }; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 44defa6f..e50fb673 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -1,17 +1,29 @@ #pragma once +extern "C" { + #include +} + #include "global.h" #include "types.h" #include "lib/math.h" #include "Actor/ActorNavi.hpp" +#include "DTCM/UnkStruct_027e0f78.hpp" +#include "Save/AdventureFlags.hpp" #include "Item/Item.hpp" +#include "Map/MapManager.hpp" #include "Player/EquipItem.hpp" +#include "Player/HealthManager.hpp" +#include "Sound/Sfx.hpp" #include "System/SysNew.hpp" #include "System/OverlayManager.hpp" #include "Render/ModelRender.hpp" #define MAX_HOURGLASS_SECONDS 1500 // 25 minutes +#define MAX_AMMO_UPGRADE 2 +#define MAX_UNK_0BA 9 +#define MAX_POTIONS 2 typedef s32 FairyId; enum FairyId_ { @@ -79,7 +91,7 @@ typedef u8 Potion; enum Potion_ { Potion_None, Potion_Red, - Potion_Blue, + Potion_Purple, Potion_Yellow, Potion_COUNT, }; @@ -197,23 +209,23 @@ private: /* 0b4 */ u16 mQuiverSize; /* 0b6 */ u16 mBombBagSize; /* 0b8 */ u16 mBombchuBagSize; - /* 0ba */ unk16 mUnk_0ba; // only between 0 and 9 - /* 0bc */ Potion mPotions[2]; + /* 0ba */ u16 mUnk_0ba; // only between 0 and 9 + /* 0bc */ Potion mPotions[MAX_POTIONS]; /* 0be */ unk8 mUnk_0be[2]; // padding? /* 0c0 */ ItemModel *mItemModels[ItemModelId_COUNT]; /* 100 */ ItemModel *mDungeonItemModels[DungeonItemModelId_COUNT]; // non-null in dungeons/caves /* 114 */ ModelRender *mUnk_114; /* 118 */ ItemId mFanfareItem; - /* 11c */ unk32 mUnk_11c; + /* 11c */ SfxId mFanfareSfx; /* 120 */ void *mFanfareItemModel; /* 124 */ void *mUnk_124; /* 128 */ ItemFlags mItemFlags; /* 138 */ u32 mSalvagedTreasureFlags; /* 13c */ ShipPartPricesShown mShipPartPricesShown; /* 148 */ u32 mTreasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)]; - /* 14c */ unk8 mUnk_14c; + /* 14c */ bool mMuteNextFanfare; /* 14d */ u8 mUnk_14d; - /* 14e */ unk8 mUnk_14e[0x2]; + /* 14e */ unk8 mUnk_14e[0x2]; // padding? /* 150 */ public: @@ -267,6 +279,7 @@ public: void LoadFanfareItem(ItemId id); bool GetFanfareItemScale(Vec3p *pScale) const; void LoadDungeonItemModels(); + static void PlayItemFanfareSfx(ItemId item); // Ship ShipType GetEquippedShipPart(ShipPart part) const; @@ -296,12 +309,12 @@ public: bool HasItem(ItemFlag item) const; void AddItem(ItemFlag item); void RemoveItem(ItemFlag item); - void GiveItem(ItemId id, unk32 param2, unk32 param3); + void GiveItem(ItemId id); void GiveEquipItem(ItemFlag item, u16 ammo); // Rupees - u32 GetMaxRupees() const; - void GiveRupees(u16 amount, unk32 param2); + s32 GetMaxRupees() const; + void GiveRupees(s16 amount, bool param2); // Potion void SetPotion(u32 index, Potion potion); @@ -310,11 +323,12 @@ public: bool HasPurplePotion() const; void UnequipPotion(); - // Unknown - void func_ov00_020ae350() const; + // Keys + unk32 GetNumKeys() const; void GiveKeys(u32 amount); - void func_ov00_020ae4dc(unk32 param1); // sets mUnk_0ba - void func_ov00_020ae648(unk32 param1, unk32 param2, unk32 param3); + + // Unknown + void func_ov00_020ae4dc(s32 param1); }; extern ItemManager *gItemManager; diff --git a/include/Map/CameraViewpoint.hpp b/include/Map/CameraViewpoint.hpp new file mode 100644 index 00000000..c952078b --- /dev/null +++ b/include/Map/CameraViewpoint.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "System/SysNew.hpp" + +class CameraViewpoint : public SysObject { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk8 mUnk_04; + /* 05 */ unk8 mUnk_05[3]; + /* 08 */ Vec3p mPos; + /* 14 */ unk16 mUnk_14; + /* 16 */ unk16 mUnk_16; + /* 18 */ unk16 mUnk_18[2]; + /* 1c */ +}; diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp new file mode 100644 index 00000000..352cae1b --- /dev/null +++ b/include/Map/Course.hpp @@ -0,0 +1,114 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Map/Course_Unk_c8.hpp" +#include "Map/MapData.hpp" +#include "Physics/AABB.hpp" +#include "System/SysNew.hpp" + +#define MAX_KEYS 8 + +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 */ Vec2b mCurrMapPos; // position in the map grid + /* 01e */ unk8 mUnk_01e; + /* 01f */ unk8 mUnk_01f; + /* 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 mNumMaps; + /* 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 */ Course_Unk_c8 *mUnk_0c8; + /* 0cc */ MapData *mMapData[100]; + /* 25c */ bool mUnk_25c; + /* 25d */ bool mBlueWarpOpen; + /* 25e */ unk8 mUnk_25e; + /* 25f */ unk8 mUnk_25f; + /* 260 */ unk32 mNumKeys; + /* 260 */ unk32 mFlags0[1]; + /* 268 */ unk32 mFlags1[1]; // knows which doors are open in a dungeon + /* 26c */ + + 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* FindMapCenter(unk32 map); + void func_ov00_0207cbe8(s32 param_2); + unk8 func_ov00_0207cc24(s32 param_2); + unk32 FindMapData_Unk_08(unk32 map); + void GetMCSFilePath(unk32 buf, s32 fileIndex, unk32 fileType); + void GetMRCFilePath(unk32 param_2, unk32 buf, unk32 param_4); + 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 FindCurrentMapData_Unk_04(); + u32 FindMapData_Unk_04(unk32 param_2); + unk32 FindMapData_Unk_0c(unk32 map); + void func_ov00_0207d7bc(); + void SetFlag0(u32 index, bool value); + bool GetFlag0(u32 index); + void SetFlag1(u32 index, bool value); + bool SetFlag1(u32 index); + void SetMapDataFlag0(unk32 index, bool value); + bool GetMapDataFlag0(unk32 param_2); + void SetMapDataFlag1(unk32 param_2, bool param_3); + bool GetMapDataFlag1(unk32 param_2); + void SetMapDataFlag2(unk32 param_2, bool param_3); + bool GetMapDataFlag2(unk32 param_2); + void SetMapDataFlag3(unk32 param_2, bool param_3); + bool GetMapDataFlag3(unk32 param_2); + void SetMapDataFlag4(unk32 param_2, unk32 param_3); + bool GetMapDataFlag4(unk32 param_2); + MapData* FindMapData(u32 map); + MapData* FindCurrentMapData(); +}; 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/Entrance.hpp b/include/Map/Entrance.hpp new file mode 100644 index 00000000..d9bea6ef --- /dev/null +++ b/include/Map/Entrance.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "System/SysNew.hpp" + +class Entrance : public SysObject { + /* 00 */ Vec3p mPos; + /* 0c */ unk16 mAngle; + /* 0e */ s8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ s32 mUnk_10; + /* 14 */ +}; diff --git a/include/Map/Exit.hpp b/include/Map/Exit.hpp new file mode 100644 index 00000000..d9fda9bd --- /dev/null +++ b/include/Map/Exit.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +class Exit : public SysObject { + /* 00 */ unk32 mDestCourse; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk16 mUnk_10; + /* 12 */ unk8 mDestMap; + /* 13 */ unk8 mDestEntrance; + /* 14 */ unk8 mUnk_14; + /* 15 */ unk8 mUnk_15; + /* 16 */ unk8 mUnk_16; + /* 17 */ unk8 mUnk_17; + /* 18 */ +}; diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp new file mode 100644 index 00000000..c9497a0a --- /dev/null +++ b/include/Map/MapBase.hpp @@ -0,0 +1,237 @@ +#pragma once + +#include + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "Map/Course.hpp" +#include "Map/Entrance.hpp" +#include "Map/TriggerBase.hpp" +#include "Map/Exit.hpp" +#include "Map/CameraViewpoint.hpp" +#include "System/SysNew.hpp" + +#define MAX_ENTRANCES 0x40 +#define MAX_TRIGGERS 0x40 +#define MAX_EXITS 0x40 +#define MAX_VIEWPOINTS 8 +#define MAX_MAP_UNK_130 0x20 + +struct MapBase_Unk_180 { + /* 0 */ unk32 mUnk_0; + /* 4 */ + + ~MapBase_Unk_180(); +}; + +struct MapBase_Unk1 { + /* 00 */ s32 mUnk_00; + /* 04 */ Exit mExit_04; + /* 1c */ Exit mExit_1c; + /* 34 */ + + void func_ov00_02080324(s32 param_2, s32 param_3, s32 param_4); +}; + +struct MapBase_Unk2 { + /* 00 */ TriggerBase **mTrigger; + /* 04 */ Vec3p mVec; + /* 10 */ + + void func_ov00_02080ad0(TriggerBase **param_2, TriggerBase **param_3); +}; + +class MapBase : public SysObject { +public: + /* 000 (vtable) */ + /* 004 */ unk8 mUnk_004; + /* 005 */ unk8 mUnk_005; + /* 006 */ unk8 mUnk_006; + /* 007 */ unk8 mUnk_007; + /* 008 */ unk8 mUnk_008; + /* 009 */ unk8 mUnk_009; + /* 00a */ unk8 mUnk_00a; + /* 00b */ unk8 mUnk_00b; + /* 00c */ unk8 mUnk_00c; + /* 00d */ unk8 mUnk_00d; + /* 00e */ unk8 mUnk_00e; + /* 00f */ unk8 mUnk_00f; + /* 010 */ unk8 mUnk_010; + /* 011 */ unk8 mUnk_011; + /* 012 */ unk8 mUnk_012; + /* 013 */ unk8 mUnk_013; + /* 014 */ unk8 mUnk_014; + /* 015 */ unk8 mUnk_015; + /* 016 */ unk8 mUnk_016[2]; + /* 018 */ unk8 mUnk_018[2]; + /* 01a */ unk8 mUnk_01a; + /* 01b */ unk8 mUnk_01b; + /* 01c */ unk8 mUnk_01c; + /* 01d */ unk8 mUnk_01d; + /* 01e */ unk8 mUnk_01e; + /* 01f */ unk8 mUnk_01f; + /* 020 */ unk32 mUnk_020; + /* 024 */ unk32 mUnk_024; + /* 028 */ s16 mUnk_028; + /* 02a */ s16 mUnk_02a; + /* 02c */ unk16 mUnk_02c; + /* 02e */ unk16 mUnk_02e; + /* 030 */ s16 mUnk_030; + /* 032 */ unk8 mUnk_032[2]; + /* 034 */ unk32 mUnk_034; + /* 038 */ unk32 mUnk_038; + /* 03c */ unk32 mUnk_03c; + /* 040 */ unk32 mUnk_040; + /* 044 */ unk32 mUnk_044; + /* 048 */ u32 mUnk_048; + /* 04c */ unk32 mUnk_04c; + /* 050 */ unk8 mUnk_050[0x80]; + /* 0d0 */ Vec3p mUnk_0d0; + /* 0dc */ Vec3p mUnk_0dc; + /* 0e8 */ Vec3p mUnk_0e8; + /* 0f4 */ Vec3p mUnk_0f4; + /* 100 */ std::vector mEntrances; + /* 10c */ std::vector mTriggers; + /* 118 */ std::vector mExits; + /* 124 */ std::vector mViewpoints; + /* 130 */ std::vector mUnk_130; + /* 13c */ unk32 mUnk_13c; + /* 140 */ unk32 mUnk_140; + /* 144 */ void *mUnk_144; + /* 148 */ s32 mUnk_148; + /* 14c */ s32 mUnk_14c; + /* 150 */ unk32 mUnk_150; + /* 154 */ unk32 mUnk_154; + /* 158 */ unk8 mUnk_158[8]; + /* 160 */ unk32 mUnk_160; + /* 164 */ unk8 mUnk_164[0x1c]; + /* 180 */ MapBase_Unk_180 mUnk_180[2]; + /* 188 */ unk8 mUnk_188[0x14]; + /* 19c */ unk32 mUnk_19c; + /* 1a0 */ unk8 mUnk_1a0[0xc]; + /* 1ac */ s16 mUnk_1ac; + /* 1ae */ unk8 mUnk_1ae[2]; + /* 1b0 */ + + /* 00 */ virtual ~MapBase(); + /* 08 */ virtual void vfunc_08(u32 param_2, u32 param_3, Course *param_4); + /* 0c */ virtual void vfunc_0c(Course *param_2); + /* 10 */ virtual void vfunc_10(); + /* 14 */ virtual void vfunc_14(); + /* 18 */ virtual void vfunc_18(); + /* 1c */ virtual void vfunc_1c(bool param_2); + /* 20 */ virtual void vfunc_20(s32 param_2); + /* 24 */ virtual void vfunc_24(); + /* 28 */ virtual void vfunc_28(s32 param_2); + /* 2c */ virtual void vfunc_2c(); + /* 30 */ virtual void vfunc_30(s32 param_2); + /* 34 */ virtual bool vfunc_34(char *param_2); + /* 38 */ virtual void vfunc_38(); + /* 3c */ virtual void vfunc_3c(); + /* 40 */ virtual void vfunc_40(); + /* 44 */ virtual void vfunc_44(); + /* 48 */ virtual void vfunc_48(); + /* 4c */ virtual void vfunc_4c() = 0; + /* 50 */ virtual unk32 vfunc_50(); + /* 54 */ virtual unk32 vfunc_54(); + /* 58 */ virtual unk32 vfunc_58(); + /* 5c */ virtual unk32 vfunc_5c(); + /* 60 */ virtual unk32 vfunc_60(); + /* 64 */ virtual unk32 vfunc_64(); + /* 68 */ virtual unk8 vfunc_68(unk32 param_2, unk32 param_3); + /* 6c */ virtual unk8 vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4); + /* 70 */ virtual unk32 vfunc_70(Vec3p *param_2); + /* 74 */ virtual s32* vfunc_74(Vec3p *param_2); + /* 78 */ virtual unk32 vfunc_78(); + /* 7c */ virtual unk32 vfunc_7c(); + /* 80 */ virtual unk32 vfunc_80(); + /* 84 */ virtual void vfunc_84(unk32 param_2); + /* 88 */ virtual unk32 vfunc_88(); + /* 8c */ virtual unk32 vfunc_8c(); + /* 90 */ virtual unk8 vfunc_90(unk32 param_2, unk32 param_3, unk32 param_4); + /* 94 */ virtual void vfunc_94(); + /* 98 */ virtual void vfunc_98(); + /* 9c */ virtual void vfunc_9c(); + /* a0 */ virtual void vfunc_a0(); + /* a4 */ virtual unk32 vfunc_a4(); + /* a8 */ virtual void vfunc_a8(); + /* ac */ virtual void vfunc_ac(); + /* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3); + /* b4 */ virtual void vfunc_b4(); + /* b8 */ virtual unk32 vfunc_b8(); + /* bc */ virtual void vfunc_bc(); + /* c0 */ virtual void vfunc_c0(); + /* c4 */ + + void SetBounds(unk32 map, unk32 course); + void GetMapFilePath(char *courseName, unk32 num1, unk32 buf); + void func_ov00_0207ddf8(bool param_2); + void func_ov00_0207de68(unk32 param_2); + void func_ov00_0207de88(); + void func_ov00_0207dea0(bool param_2); + bool func_ov00_0207e08c(unk32 param_2, unk32 param_3); + s32 func_ov00_0207e0f0(unk32 param_2); + s32 func_ov00_0207e28c(unk32 param_2); + static unk8 func_ov00_0207e940(unk8 *param_1); + static unk8 func_ov00_0207e968(); + static unk8 func_ov00_0207e96c(); + static unk8 func_ov00_0207f100(); + bool func_ov00_0207f104(unk32 param_2, unk32 param_3); + unk32 func_ov00_0207f1f4(Vec3p *param_2, unk32 *param_3); + unk8 func_ov00_0207f38c(unk32 param_2); + void func_ov00_0207f4a4(Vec2s *param_2, unk32 param_3); + static void func_ov00_0207f53c(Vec2s *param_1, MapBase *param_2, Vec3p *param_3); + static void func_ov00_0207f588(Vec2s *param_1, MapBase *param_2, Vec2b *param_3, unk32 param_4); + void func_ov00_0207f630(Vec2s *param_2, Vec3p *param_3); + unk8 GetTileStartX(unk32 x); + unk8 GetTileStartZ(unk32 z); + s32 GetTileEndX(unk32 x); + s32 GetTileEndZ(unk32 z); + void GetTileBounds(Vec2b *tilePos, AABB *bounds); + unk8 GetClampedTileX(unk32 worldX); + unk8 GetClampedTileY(unk32 worldZ); + unk8 GetTileX(unk32 worldX); + unk8 GetTileY(unk32 worldZ); + bool IsInBounds(Vec3p *tileWorldPos); + s32 AddEntrance(Entrance *param_2); + unk8 FindEntrance(unk32 id); + unk8 func_ov00_0207f924(unk32 param_2); + unk8 func_ov00_0207f934(); + unk8 func_ov00_0207f948(unk32 param_2); + void AddTrigger(TriggerParams *param_2); + s32 GetTriggerBoundingBox(unk32 param_2, AABB *param_3); + unk8 GetTriggerBoundingBoxes(unk32 param_2, AABB *param_3, unk32 param_4); + unk32 GetOverlappingTrigger(Vec3p *param_2); + unk8 FindTrigger(unk32 type); + unk8 GetOverlappingTriggers(Vec3p *param_2, TriggerBase * *triggers, unk32 capacity); + bool IsTriggerTypeOverlapped(unk32 type, Vec3p *param_3); + bool AnyTrigger_func_0c(unk32 type); + unk8 Trigger_vfunc_08(); + bool AddTrigger(unk32 param_2); + bool func_ov00_0207ff88(unk32 param_2); + void func_ov00_0208005c(s32 param_2, s32 param_3, unk32 param_4); + void func_ov00_0208006c(unk32 param_2, s32 param_3); + void func_ov00_0208007c(s32 param_2, s32 param_3); + void func_ov00_0208008c(u32 param_2); + unk8 AddExit(Exit *param_2); + unk8 func_ov00_02080140(Exit *param_2); + bool FindExit(unk32 param_2, Exit *param_3); + unk8 AddCameraViewpoint(CameraViewpoint *param_2); + bool FindViewpoint_Unk_4(unk8 id, CameraViewpoint *param_3); + bool FindViewpoint_Unk_0(unk32 param_2, CameraViewpoint *param_3); + void GetCurrentViewpoint(CameraViewpoint *param_2, unk32 param_3); + unk8 GetCurrentViewpoint_Unk_00(s32 param_2); + bool func_ov00_02080824(unk32 param_2, unk32 param_3); + bool AddUnk_130(unk32 param_2); + bool func_ov00_020809b8(unk32 param_2); + unk8 func_ov00_02080a78(Vec3p *param_2); + unk8 func_ov00_02080b24(Vec2b *param_2); + void func_ov00_02080d08(unk32 param_2); + bool TriggerOfType_vfunc_10(unk32 type); + void func_ov00_02080de4(); + unk8 func_ov00_02080de8(unk32 param_2); + void func_ov00_02080edc(); +}; diff --git a/include/Map/MapData.hpp b/include/Map/MapData.hpp new file mode 100644 index 00000000..be4b691f --- /dev/null +++ b/include/Map/MapData.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "System/SysNew.hpp" + +class MapData : 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 mCenter; + /* 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/Map/MapManager.hpp b/include/Map/MapManager.hpp new file mode 100644 index 00000000..e773ef19 --- /dev/null +++ b/include/Map/MapManager.hpp @@ -0,0 +1,243 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "Map/Course.hpp" +#include "Map/MapBase.hpp" +#include "Physics/AABB.hpp" +#include "System/SysNew.hpp" + +struct MapManager_Unk1 { + /* 0 */ unk32 mUnk_0; + /* 4 */ unk32 mUnk_4; + /* 8 */ + + ~MapManager_Unk1(); +}; + +struct MapManager_Unk2 { + /* 0 */ unk32 mUnk_0; + /* 4 */ unk32 mUnk_4; + /* 8 */ + + ~MapManager_Unk2(); +}; + +class MapManager : public SysObject { +public: + /* 00 */ Course *mCourse; + /* 04 */ MapBase *mMap; + /* 08 */ unk8 mUnk_08; + /* 09 */ unk8 mUnk_09; + /* 0a */ unk8 mUnk_0a; + /* 0b */ unk8 mUnk_0b; + /* 0c */ unk8 mUnk_0c; + /* 0d */ unk8 mUnk_0d; + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ + + void func_ov00_020820ec(unk32 *param_2); + void func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_4); + unk8 func_ov00_0208210c(unk32 param_2, unk32 param_3); + unk8 func_ov00_0208230c(unk32 param_2); + unk8 func_ov00_02082348(unk32 param_2); + void func_ov00_020823a4(unk32 param_2); + unk8 func_ov00_020823b4(); + bool func_ov00_020823c4(unk32 *param_2, s32 param_3); + s32 func_ov00_020823d4(s32 param_2); + s32 func_ov00_020823e4(s32 param_2); + unk8 MapData_vfunc_b4(); + unk8 MapData_vfunc_9c(); + s32 func_ov00_02082424(); + unk8 func_ov00_02082454(unk32 param_2, unk32 param_3); + unk8 func_ov00_02082494(unk32 param_2); + unk8 func_ov00_020824cc(unk32 param_2); + unk8 func_ov00_02082504(); + unk8 * func_ov00_02082538(); + void func_ov00_02082594(); + void func_ov00_020825ac(); + s32 GetCourseFilePath(char *courseName, char *buf); + unk8 func_ov00_020825e4(unk32 param_2, unk32 param_3); + unk8 func_ov00_02082614(unk32 param_2, unk32 param_3); + unk8 MapData_vfunc_b0(); + void func_ov00_02082650(s32 param_2, s32 param_3, unk32 param_4); + void func_ov00_02082660(s32 param_2, s32 param_3); + void func_ov00_02082670(unk32 param_2, s32 param_3); + void func_ov00_02082680(unk32 param_2, unk32 param_3); + unk8 func_ov00_020826a0(unk32 param_2, unk32 param_3, unk32 param_4); + unk8 CreateMap(unk32 mapType, unk32 param_3, unk32 param_4); + unk8 DestroyMap(); + unk8 MapData_vfunc_44(); + static unk8 func_ov00_02082808(); + unk8 MapData_vfunc_7c(); + unk8 MapData_vfunc_84(); + bool func_ov00_020828f8(s32 *param_2); + unk8 GetCourseData_Unk_b0(); + s32 func_ov00_02082914(unk32 param_2); + unk8 func_ov00_02082acc(); + unk32 * func_ov00_02082adc(); + unk8 func_ov00_02082af4(); + bool func_ov00_02082b3c(s32 param_2); + unk8 func_ov00_02082d08(); + unk8 GetCourseData_Unk_1c(); + unk8 GetCourseData_Unk_1d(); + unk8 func_ov00_02082d40(); + u32 func_ov00_02082d74(unk32 param_2); + static unk8 func_ov00_02082d84(); + bool func_ov00_02082e1c(s32 *param_2, s32 *param_3); + static unk8 func_ov00_0208306c(); + void func_ov00_0208315c(s32 *param_2, s32 *param_3); + void func_ov00_02083244(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5); + void func_ov00_02083298(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5); + unk8 GetCourseData_Unk_25c(); + bool func_ov00_02083318(unk32 param_2); + static unk8 func_ov00_02083328(); + unk8 GetCourseData_Unk_86(); + unk8 GetCourseData_Unk_87(); + unk8 Get_MapData_Unk28(); + unk8 Get_MapData_Unk2a(); + static unk8 func_ov00_02083374(); + static unk8 func_ov00_02083384(); + unk8 GetCourseMinX(); + unk8 GetCourseMinZ(); + unk8 GetCourseMaxX(); + unk8 GetCourseMaxZ(); + unk8 func_ov00_020833c4(); + unk8 func_ov00_020833d0(); + unk8 func_ov00_020833dc(); + unk8 func_ov00_020833e8(); + unk8 Get_MapData_Unk_d0(); + unk8 Get_MapData_Unk_d8(); + unk8 GetMapData_Unk_dc(Vec3p *param_2); + unk8 GetMapData_Unk_e8(Vec3p *param_2); + unk8 GetMapData_Unk_d0(Vec3p *param_2); + unk8 func_ov00_0208346c(AABB *param_2); + unk8 func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4); + unk8 func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 param_4); + static void func_ov00_02083560(unk32 param_1, MapManager *param_2, u32 param_3); + unk8 func_ov00_02083570(unk32 param_2, unk32 param_3); + unk32 func_ov00_02083588(); + unk32 func_ov00_020835a4(); + unk32 func_ov00_020835b4(); + unk8 func_ov00_020835c4(unk32 param_2, unk32 param_3); + bool func_ov00_020835e4(s32 param_2, unk32 *param_3, unk32 *param_4); + unk32 func_ov00_020835f4(s32 param_2); + void func_ov00_02083604(s32 param_2); + unk8 func_ov00_02083614(s32 param_2); + bool GetEntrancePos(Vec3p *param_2, unk32 entranceId); + bool func_ov00_02083664(Vec3p *param_2, unk32 entranceId); + s32 func_ov00_020836bc(u32 param_2, unk32 *param_3); + u32 func_ov00_020836cc(u32 param_2, AABB *param_3, u32 param_4); + unk8 func_ov00_020836dc(unk32 param_2, unk32 param_3); + bool func_ov00_02083770(u32 param_2, unk32 param_3); + bool func_ov00_02083780(unk32 param_2); + bool func_ov00_02083790(unk32 param_2); + unk8 func_ov00_02083840(unk32 param_2); + bool func_ov00_020838c8(s32 param_2); + bool func_ov00_020838d8(s32 param_2); + bool func_ov00_020838e8(u32 param_2, unk32 *param_3); + char func_ov00_020838f8(unk32 *param_2); + bool func_ov00_02083908(char param_2, unk32 *param_3); + void func_ov00_02083918(s32 param_2, s32 *param_3); + void func_ov00_02083928(unk8 *param_2, s32 param_3); + unk32 func_ov00_02083938(s32 param_2); + unk8 Set_MapData_Unk_16(unk8 value, unk32 index); + void func_ov00_02083958(s32 param_2); + void func_ov00_02083968(u32 param_2, unk8 *param_3); + bool func_ov00_02083978(unk32 param_2, Vec3p *param_3); + bool func_ov00_020839b4(s32 param_2); + bool func_ov00_020839c4(s32 param_2); + static unk8 func_ov00_020839d4(); + static unk8 func_ov00_020839f8(); + static void func_ov00_02083a1c(unk32 param_1, MapManager *param_2, Vec3p *param_3); + static unk8 func_ov00_02083a54(unk32 param_1, MapManager *param_2, unk32 param_3, unk32 param_4, unk32 param_5); + static unk8 func_ov00_02083b84(); + static unk8 func_ov00_02083bac(); + static unk8 func_ov00_02083bd4(); + static unk8 func_ov00_02083bfc(); + unk8 func_ov00_02083c24(unk32 param_2); + unk8 func_ov00_02083c50(unk32 param_2); + unk8 func_ov00_02083c7c(Vec3p *param_2, unk32 param_3); + static unk8 func_ov00_02083ce8(unk8 param_1, unk8 param_2, unk8 param_3, unk8 param_4, unk32 param_5); + unk8 func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4); + unk8 MapData_vfunc_60(); + static unk8 func_ov00_02083e70(); + unk8 MapData_vfunc_68(); + void func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3); + void func_ov00_02083f44(Vec3p *param_2); + unk8 MapData_vfunc_6c(); + unk8 MapData_vfunc_70(); + static unk8 func_ov00_02083fb0(unk32 param_1, MapManager *param_2, unk32 param_3); + void func_ov00_02084024(unk32 param_2, AABB *param_3); + unk8 MapData_vfunc_54(); + unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4); + unk8 MapData_vfunc_78(); + static unk8 func_ov00_020840dc(); + static unk8 func_ov00_02084100(unk32 param_1, MapManager *param_2); + unk8 GetMapData_Unk_48(); + unk8 GetMapData_Unk_4c(); + unk32 func_ov00_0208412c(); + void func_ov00_0208413c(unk32 param_2); + unk8 MapData_vfunc_58(); + static unk8 func_ov00_02084164(); + unk8 GetMapData_Unk_0a(); + unk8 GetMapData_Unk_0b(); + unk8 MapData_vfunc_a4(); + unk8 func_ov00_0208433c(Vec3p *param_2, unk32 param_3); + static unk8 func_ov00_0208439c(); + void func_ov00_020843ec(s32 *param_2); + unk8 GetMapData_Unk_38(); + unk8 func_ov00_020846a4(); + static unk8 func_ov00_02084700(); + unk8 func_ov00_02084740(); + unk8 func_ov00_020847e0(); + unk8 func_ov00_020847f0(); + bool func_ov00_02084838(); + bool func_ov00_020848b8(); + void func_ov00_02084924(u32 param_2); + static unk8 func_ov00_02084934(); + unk8 GetMapData_Unk_06(); + unk8 GetMapData_Unk_07(); + unk8 func_ov00_0208499c(); + unk8 func_ov00_020849c0(); + unk8 func_ov00_020849dc(); + static bool func_ov00_020849f8(unk32 param_1); + unk8 func_ov00_02084a50(); + void SpawnNPC(Vec3p *param_2, unk32 param_3, unk32 param_4); + bool func_ov00_02084ac4(u32 actorId); + unk8 SetNumKeys(unk32 keys); + unk8 GetNumKeys(); + unk8 SetCourseData_Unk_25c(unk8 param_2); + unk8 GetCourseData_Unk_25d(); + unk8 func_ov00_02084b38(unk32 param_2, unk32 param_3, unk32 param_4); + bool func_ov00_02084be0(unk32 param_2, unk32 param_3); + void func_ov00_02084c5c(unk32 param_2, unk32 param_3); + bool func_ov00_02084c6c(unk32 param_2); + unk8 func_ov00_02084c7c(unk32 param_2); + unk8 func_ov00_02084c94(unk32 param_2); + unk8 func_ov00_02084cb0(unk32 param_2); + unk8 func_ov00_02084cc8(unk32 param_2); + unk8 func_ov00_02084ce4(unk32 param_2); + unk8 func_ov00_02084cfc(unk32 param_2); + unk8 GetMapData_Unk_09(); + unk8 func_ov00_02084d24(unk8 param_2, unk8 param_3, unk32 param_4); + s32 func_ov00_02084d4c(unk32 param_2, unk32 param_3, Vec3p *param_4); + unk8 func_ov00_02084ebc(unk32 param_2); + s32 func_ov00_02085108(s32 *param_2); + static unk8 func_ov00_0208527c(); + static unk8 func_ov00_020853fc(); + static unk8 func_ov00_02085594(); + static void func_ov00_0208583c(unk32 param_1, Vec3p *param_2, unk32 param_3); + static unk8 func_ov00_020858b0(); + s32 func_ov00_02085a34(unk32 param_2, unk32 param_3); + unk8 func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); + unk8 func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4); + bool func_ov00_02086284(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, u16 param_6, Vec3p *param_7, Vec3p *param_8); + bool func_ov00_02086a84(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, s32 param_6, unk32 param_7, Vec3p *param_8, Vec3p *param_9); +}; + +extern MapManager *gMapManager; diff --git a/include/Map/TriggerAABB.hpp b/include/Map/TriggerAABB.hpp new file mode 100644 index 00000000..19ac0f55 --- /dev/null +++ b/include/Map/TriggerAABB.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Physics/AABB.hpp" +#include "Map/TriggerBase.hpp" + +class TriggerAABB : public TriggerBase { + /* 00 (base) */ + /* 14 */ AABB mAABB; + /* 2c */ +}; diff --git a/include/Map/TriggerAABB_Unk1.hpp b/include/Map/TriggerAABB_Unk1.hpp new file mode 100644 index 00000000..55edbfca --- /dev/null +++ b/include/Map/TriggerAABB_Unk1.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Map/TriggerAABB.hpp" + +class TriggerAABB_Unk1 : public TriggerAABB { + /* 00 (base) */ + /* 2c */ unk8 mUnk_2c; + /* 2d */ unk8 mUnk_2d[3]; + /* 30 */ void *mUnk_30; + /* 34 */ unk8 mUnk_34; + /* 35 */ unk8 mUnk_35; + /* 36 */ unk8 mUnk_36[2]; + /* 38 */ unk32 mUnk_38; + /* 3c */ unk32 mUnk_3c; + /* 40 */ unk32 mUnk_40; + /* 44 */ +}; diff --git a/include/Map/TriggerAABB_Unk2.hpp b/include/Map/TriggerAABB_Unk2.hpp new file mode 100644 index 00000000..c87c34ba --- /dev/null +++ b/include/Map/TriggerAABB_Unk2.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Map/TriggerAABB.hpp" + +class TriggerAABB_Unk2 : public TriggerAABB { + /* 00 (base) */ + /* 2c */ unk32 mUnk_2c; + /* 30 */ unk8 mUnk_30[0x2c][4]; // non-documented class which inherits from base class + /* e0 */ +}; diff --git a/include/Map/TriggerBase.hpp b/include/Map/TriggerBase.hpp new file mode 100644 index 00000000..03046e71 --- /dev/null +++ b/include/Map/TriggerBase.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +struct TriggerParams { + /* 0 */ s8 id; + /* 1 */ unk8 zMin; + /* 2 */ unk8 zMax; + /* 3 */ unk8 xMin; + /* 4 */ unk8 xMax; + /* 5 */ bool isAABB_Unk1; + /* 6 */ s8 mUnk_6; + /* 7 */ s8 mUnk_7; + /* 8 */ s8 mUnk_8; + /* 9 */ bool isAABB_Unk2; + /* a */ bool isSphere; + /* b */ +}; + +class TriggerBase : public SysObject { + /* 00 (vtable) */ + /* 04 */ unk8 mUnk_04; + /* 05 */ u8 mId; + /* 06 */ unk8 mUnk_06[2]; + /* 08 */ u32 mUnk_08; + /* 0c */ u32 mUnk_0c; + /* 10 */ u32 mUnk_10; + /* 14 */ + + /* 00 */ virtual ~TriggerBase(); + /* 08 */ void vfunc_08(); + /* 0c */ unk32 vfunc_0c(); + /* 10 */ unk32 vfunc_10(); + /* 14 */ bool Overlaps(); + /* 18 */ bool GetBoundingBox(); + /* 1c */ +}; diff --git a/include/Map/TriggerSphere.hpp b/include/Map/TriggerSphere.hpp new file mode 100644 index 00000000..e6bb6b39 --- /dev/null +++ b/include/Map/TriggerSphere.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Physics/Sphere.hpp" +#include "Map/TriggerBase.hpp" + +class TriggerSphere : public TriggerBase { + /* 00 (base) */ + /* 14 */ Sphere mSphere; + /* 24 */ s32 mHeight; + /* 28 */ +}; diff --git a/include/Player/HealthManager.hpp b/include/Player/HealthManager.hpp new file mode 100644 index 00000000..5ebb7181 --- /dev/null +++ b/include/Player/HealthManager.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +class HealthManager : public SysObject { +public: + /* 00 */ u16 mMaxHealth; + /* 02 */ u16 mHealth; + /* 04 */ s16 mMaxShipHealth; + /* 06 */ s16 mShipHealth; + /* 08 */ u16 mSalvageArmHealth; + /* 0a */ s16 mFlags; + /* 0c */ unk16 mUnk_0c; + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ +}; + +extern HealthManager *gHealthManager; diff --git a/include/Player/TouchControl.hpp b/include/Player/TouchControl.hpp index 804078c9..b5c79750 100644 --- a/include/Player/TouchControl.hpp +++ b/include/Player/TouchControl.hpp @@ -42,4 +42,5 @@ public: bool func_ov00_0207aeac(); void UpdateConditionally(TouchState *state, u16 speed); void func_ov00_0207af38(u16 speed, bool param2); + ~TouchControl(); }; diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index 411d3a55..bfe511f9 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -9,7 +9,33 @@ typedef u32 AdventureFlag; enum AdventureFlag_ { - AdventureFlag_COUNT = 391, + /* 0x09 */ AdventureFlag_SWSeaChart = 9, + /* 0x0a */ AdventureFlag_NWSeaChart = 10, + /* 0x0b */ AdventureFlag_SESeaChart = 11, + /* 0x0c */ AdventureFlag_NESeaChart = 12, + + /* 0x13 */ AdventureFlag_Hourglass = 19, + + /* 0x16 */ AdventureFlag_SunKey = 22, + /* 0x17 */ AdventureFlag_Unk_23 = 23, + + /* 0x2b */ AdventureFlag_FishingRod = 43, + + /* 0x30 */ AdventureFlag_Cannon = 48, + + /* 0x7d */ AdventureFlag_Azurine = 125, + /* 0x7e */ AdventureFlag_Crimsonine = 126, + /* 0x7f */ AdventureFlag_Aquanine = 127, + /* 0x80 */ AdventureFlag_Unk_128 = 128, + + /* 0x8c */ AdventureFlag_SalvageArm = 140, + + /* 0x126 */ AdventureFlag_ReceivedGoldenChimney = 294, + /* 0x127 */ AdventureFlag_ReceivedGoldenHandrail = 295, + /* 0x128 */ AdventureFlag_ReceivedGoldenCannon = 296, + /* 0x129 */ AdventureFlag_ReceivedGoldenHull = 297, + + /* 0x187 */ AdventureFlag_COUNT = 391, }; struct FlagsUnk2 { @@ -46,6 +72,7 @@ struct FlagsUnk { }; class AdventureFlags : public SysObject { +public: /* 00 */ unk32 mFlags[16]; /* 40 */ CutsceneHandler *mCutsceneHandler; /* 44 */ void *mUnk_44; diff --git a/include/Sound/Sfx.hpp b/include/Sound/Sfx.hpp new file mode 100644 index 00000000..38b66d51 --- /dev/null +++ b/include/Sound/Sfx.hpp @@ -0,0 +1,221 @@ +#pragma once + +#include "global.h" +#include "types.h" + +typedef u32 SfxId; +enum SfxId_ { + SfxId_None = 0x0, + + SfxId_Music_StoryIntro = 0x2, + SfxId_Music_StoryOutsetIsland = 0x3, + SfxId_Music_StoryZeldasLullaby = 0x4, + SfxId_Music_DarkKingGanon = 0x5, + SfxId_Music_TheHeroOfTheWinds = 0x6, + SfxId_Music_OffToTheSeas = 0x7, + SfxId_Music_ThePirateShip_1 = 0x8, + SfxId_Music_TheKingOfTheOceans = 0x9, + SfxId_Music_InTheDarkDungeon_1 = 0xa, + SfxId_Music_LinebecksTheme = 0xb, + SfxId_Fanfare_KeyDizzy = 0xc, + SfxId_Music_MagicInTheAir_1 = 0xd, + SfxId_Music_TheSandsOfTime_1 = 0xe, + SfxId_Fanfare_Discovery_1 = 0xf, + SfxId_Music_MagicInTheAir_2 = 0x10, + SfxId_Music_TheSandsOfTime_2 = 0x11, + SfxId_Fanfare_Discovery_2 = 0x12, + SfxId_Music_MagicInTheAir_3 = 0x13, + + SfxId_Music_MagicInTheAir_4 = 0x15, + SfxId_Music_Credits = 0x16, + + SfxId_Music_DarkMemories = 0x18, + SfxId_Music_TheSandsOfTime_3 = 0x19, + SfxId_Fanfare_Discovery_3 = 0x1a, + + SfxId_Fanfare_Nothing_1 = 0x1c, + SfxId_Music_TheSandsOfTime_4 = 0x1d, + SfxId_Music_ZeldasLullaby = 0x1e, + + SfxId_Music_BellumLoop = 0x21, + + SfxId_Music_ThePirateShip_2 = 0x25, + + SfxId_Music_FairyFountain = 0x27, + SfxId_Fanfare_Treasure = 0x28, + SfxId_Fanfare_Rupee = 0x29, + SfxId_Fanfare_GoldRupee = 0x2a, + SfxId_Fanfare_Rupoor = 0x2b, + SfxId_Fanfare_Nothing_2 = 0x2c, + SfxId_Fanfare_HeartContainer = 0x2d, + SfxId_Fanfare_Gem = 0x2e, + SfxId_Fanfare_Discovery_4 = 0x2f, + SfxId_Music_Indoors_1 = 0x30, + SfxId_Music_Indoors_2 = 0x31, + SfxId_Music_Lithoroves = 0x32, + SfxId_Music_Indoors_3 = 0x33, + SfxId_Music_AstridsTheme = 0x34, + + SfxId_Music_Indoors_4 = 0x38, + SfxId_Music_Indoors_5 = 0x39, + SfxId_Music_Indoors_6 = 0x3a, + SfxId_Music_Indoors_7 = 0x3b, + SfxId_Music_Indoors_8 = 0x3c, + + SfxId_Music_ThePirateShip_3 = 0x3e, + SfxId_Music_BeedlesShopShip_1 = 0x3f, + SfxId_Music_BeedlesShopShip_2 = 0x40, + + SfxId_Music_Indoors_9 = 0x42, + SfxId_Music_Indoors_10 = 0x43, + SfxId_Music_Indoors_11 = 0x44, + SfxId_Music_Indoors_12 = 0x45, + SfxId_Music_Indoors_13 = 0x46, + SfxId_Music_DangerInTheGreatBlueSea_1 = 0x47, + SfxId_Music_DangerInTheGreatBlueSea_2 = 0x48, + SfxId_Music_TheDarkCaves_1 = 0x49, + SfxId_Fanfare_OhNo = 0x4a, + SfxId_Music_GameOver = 0x4b, + SfxId_Fanfare_TempleOfTheOceanKing = 0x4c, + SfxId_Music_EnemyBattle_1 = 0x4d, + SfxId_Music_MercayIsland_1 = 0x4e, + SfxId_Music_UnchartedTerritory_1 = 0x4f, + SfxId_Music_MercayIsland_2 = 0x50, + SfxId_Music_UnchartedTerritory_2 = 0x51, + SfxId_Music_MercayIsland_3 = 0x52, + SfxId_Music_UnchartedTerritory_3 = 0x53, + SfxId_Music_UnchartedTerritory_4 = 0x54, + SfxId_Music_UnchartedTerritory_5 = 0x55, + SfxId_Music_MercayIsland_4 = 0x56, + SfxId_Music_UnchartedTerritory_6 = 0x57, + SfxId_Music_TheGorons = 0x58, + SfxId_Music_UnchartedTerritory_7 = 0x59, + SfxId_Music_UnchartedTerritory_8 = 0x5a, + SfxId_Music_UnchartedTerritory_9 = 0x5b, + SfxId_Music_UnchartedTerritory_10 = 0x5c, + SfxId_Music_MercayIsland_5 = 0x5d, + SfxId_Music_UnchartedTerritory_11 = 0x5e, + SfxId_Music_UnchartedTerritory_12 = 0x5f, + + SfxId_Music_MercayIsland_6 = 0x61, + SfxId_Music_MercayIsland_7 = 0x62, + SfxId_Music_MercayIsland_8 = 0x63, + SfxId_Music_UnchartedTerritory_13 = 0x64, + + SfxId_Music_GhostShip = 0x66, + SfxId_Music_ChasingTheGhostShip = 0x67, + SfxId_Music_EnemyBattle_2 = 0x68, + SfxId_Music_JoleneAppears = 0x69, + SfxId_Music_JoleneAppearsLoop = 0x6a, + SfxId_Music_JoleneVsLink_1 = 0x6b, + SfxId_Music_JoleneVsLink_2 = 0x6c, + SfxId_Music_JoleneVsLinkEnd = 0x6d, + SfxId_Music_InTheDarkDungeon_2 = 0x6e, + SfxId_Music_InTheDarkDungeon_3 = 0x6f, + + SfxId_Music_InTheDarkDungeon_4 = 0x72, + + SfxId_Music_InTheDarkDungeon_5 = 0x75, + + SfxId_Music_InTheDarkDungeon_6 = 0x78, + SfxId_Music_InTheDarkDungeon_7 = 0x79, + SfxId_Music_InTheDarkDungeon_8 = 0x7a, + SfxId_Music_InTheDarkDungeon_9 = 0x7b, + SfxId_Music_TheDarkCaves_2 = 0x7c, + + SfxId_Music_InTheDarkDungeon_10 = 0x7f, + SfxId_Music_TheDarkCaves_3 = 0x80, + + SfxId_Music_InTheDarkDungeon_11 = 0x83, + SfxId_Music_TheDarkCaves_4 = 0x84, + + SfxId_Music_InTheDarkDungeon_12 = 0x87, + SfxId_Music_TheDarkCaves_5 = 0x88, + SfxId_Music_InTheDarkDungeon_13 = 0x89, + SfxId_Music_InTheDarkDungeon_14 = 0x8b, + SfxId_Music_InTheDarkDungeon_15 = 0x8c, + SfxId_Music_InTheDarkDungeon_16 = 0x8d, + SfxId_Music_InTheDarkDungeon_17 = 0x8e, + SfxId_Music_InTheDarkDungeon_18 = 0x8f, + SfxId_Music_InTheDarkDungeon_19 = 0x90, + SfxId_Music_InTheDarkDungeon_20 = 0x91, + SfxId_Music_InTheDarkDungeon_21 = 0x92, + SfxId_Music_InTheDarkDungeon_22 = 0x93, + SfxId_Music_InTheDarkDungeon_23 = 0x94, + SfxId_Music_InTheDarkDungeon_24 = 0x95, + SfxId_Music_InTheDarkDungeon_25 = 0x96, + SfxId_Music_TheDarkCaves_6 = 0x97, + SfxId_Music_TheDarkCaves_7 = 0x98, + SfxId_Music_TheDarkCaves_8 = 0x99, + SfxId_Music_TheDarkCaves_9 = 0x9a, + SfxId_Music_TheDarkCaves_10 = 0x9b, + + SfxId_Music_InTheDarkDungeon_26 = 0x9e, + SfxId_Music_InTheDarkDungeon_27 = 0x9f, + SfxId_Music_InTheDarkDungeon_28 = 0xa0, + SfxId_Music_TheDarkCaves_11 = 0xa1, + SfxId_Music_TheDarkCaves_12 = 0xa2, + SfxId_Music_InTheDarkDungeon_29 = 0xa3, + SfxId_Music_TheDarkCaves_13 = 0xa4, + SfxId_Music_TheDarkCaves_14 = 0xa5, + + SfxId_Music_PhantomChase_1 = 0xa7, + SfxId_Music_FencingPractice_1 = 0xa8, + SfxId_Music_FencingPractice_2 = 0xa9, + SfxId_Music_FencingPractice_3 = 0xaa, + SfxId_Music_FencingPractice_4 = 0xab, + SfxId_Music_FencingPractice_5 = 0xac, + SfxId_Music_FencingPractice_6 = 0xad, + SfxId_Music_FencingPractice_7 = 0xae, + SfxId_Music_FencingPractice_8 = 0xaf, + SfxId_Music_FencingPractice_9 = 0xb0, + SfxId_Music_FencingPractice_10 = 0xb1, + SfxId_Music_FencingPractice_11 = 0xb2, + SfxId_Music_FencingPractice_12 = 0xb3, + SfxId_Mandolin_Chord_1 = 0xb4, + SfxId_Mandolin_Chord_2 = 0xb5, + SfxId_Mandolin_Chord_3 = 0xb6, + SfxId_Mandolin_Chord_4 = 0xb7, + SfxId_Mandolin_Chord_5 = 0xb8, + SfxId_Mandolin_Chord_6 = 0xb9, + SfxId_Mandolin_Chord_7 = 0xba, + SfxId_Mandolin_Chord_8 = 0xbb, + SfxId_Music_BeginContactMode = 0xbc, + SfxId_Fanfare_Checkpoint_1 = 0xbd, + SfxId_Fanfare_Checkpoint_2 = 0xbe, + SfxId_Fanfare_Checkpoint_3 = 0xbf, + SfxId_Fanfare_Checkpoint_4 = 0xc0, + SfxId_Fanfare_Checkpoint_5 = 0xc1, + SfxId_Fanfare_Victory = 0xc2, + SfxId_Drumroll = 0xc3, + SfxId_Fanfare_Stumble = 0xc4, + SfxId_Music_BossBattle_1 = 0xc5, + SfxId_Music_BossBattle_2 = 0xc6, + SfxId_Music_BossBattle_3 = 0xc7, + SfxId_Music_BossBattle_4 = 0xc8, + SfxId_Music_BossBattle_5 = 0xc9, + SfxId_Music_BossBattle_6 = 0xca, + SfxId_Music_BossBattle_7 = 0xcb, + + SfxId_Music_SpinSpinSpin_1 = 0xcf, + + SfxId_Music_SpinSpinSpin_2 = 0xd2, + SfxId_Music_FencingPractice_13 = 0xd3, + SfxId_Music_FencingPracticeStart = 0xd4, + SfxId_Music_BattleStageSelection_1 = 0xd5, + SfxId_Music_FencingPractice_14 = 0xd6, + SfxId_Music_FencingPractice_15 = 0xd7, + SfxId_Music_FencingPractice_16 = 0xd8, + SfxId_Music_FencingPractice_17 = 0xd9, + SfxId_Music_IntoTheCrystalBall = 0xe0, + + SfxId_Music_PhantomChase_2 = 0xe2, + SfxId_Fanfare_GreatLoss = 0xe3, + SfxId_Fanfare_Incoming = 0xe4, + SfxId_Fanfare_GoalReached = 0xe5, + SfxId_Fanfare_LostGame_1 = 0xe6, + SfxId_Fanfare_LostGame_2 = 0xe7, + SfxId_Fanfare_BattleStart = 0xe8, + SfxId_Music_BattleEnd = 0xe9, + SfxId_Music_BattleStageSelection_2 = 0xea, +}; diff --git a/include/global.h b/include/global.h index e3d80975..10a927aa 100644 --- a/include/global.h +++ b/include/global.h @@ -15,6 +15,9 @@ #define NONMATCH(name) asm name #endif +// KILL(name) causes a function to be excluded from the output ROM, see elfkill.cpp +#define KILL(name) + // Prevent the IDE from reporting errors that the compiler/linker won't report #ifdef __INTELLISENSE__ #endif @@ -28,4 +31,7 @@ // Define .sbss variables by using #pragma section sbss begin|end #pragma define_section sbss ".data" ".sbss" +// Force variables to be in .data by using #pragma section force_data begin|end +#pragma define_section force_data ".data" ".data" + #endif diff --git a/include/lib/math.h b/include/lib/math.h index 8790c9f6..a8951eb4 100644 --- a/include/lib/math.h +++ b/include/lib/math.h @@ -13,6 +13,18 @@ typedef s16 q4; #define ROUND_Q20(n) (((s32)(n) + 0x800) >> 12) +typedef struct { + /* 0 */ s8 x; + /* 1 */ s8 y; + /* 2 */ +} Vec2b; + +typedef struct { + /* 0 */ s16 x; + /* 1 */ s16 y; + /* 2 */ +} Vec2s; + typedef struct { /* 0 */ q20 x; /* 4 */ q20 y; diff --git a/libs/cpp/include/vector b/libs/cpp/include/vector new file mode 100644 index 00000000..e775aba0 --- /dev/null +++ b/libs/cpp/include/vector @@ -0,0 +1,11 @@ +#pragma once + +namespace std { + template + class vector { + public: + T *elements; + int size; + int capacity; + }; +} diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp index 614f9a50..17538f4f 100644 --- a/src/00_Core/Item/ItemManager.cpp +++ b/src/00_Core/Item/ItemManager.cpp @@ -1,7 +1,8 @@ #include "Item/ItemManager.hpp" -extern u32 *data_027e0ce0[]; +static const char *sShipPartTypes[] = { "anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg" }; +extern u32 *data_027e0ce0[]; THUMB ItemManager* ItemManager::Create() { gItemManager = new(data_027e0ce0[1], 4) ItemManager(); return gItemManager; @@ -235,8 +236,7 @@ extern "C" unk32 func_ov00_02078b40(UnkStruct_027e0d38 *param1); extern void *data_027e10a4; extern "C" bool func_ov15_02136670(void *param1); extern unk8 data_ov29_0217a4ac[]; -extern void *data_027e0e60; -extern "C" bool func_ov00_020849f8(void *param1); +extern "C" bool _ZN10MapManager18func_ov00_020849f8Ei(void *param1); extern unk32 data_027e0fc8; extern "C" bool func_ov00_020bbd80(unk32 param1, unk32 param2); extern "C" bool _ZNK11ItemManager7HasItemEi(); @@ -254,7 +254,7 @@ ARM bool NONMATCH(ItemManager::func_ov00_020ad790)(unk32 param1) { } ItemFlag equipId = mForcedItem; - bool unk2 = !func_ov00_020849f8(data_027e0e60); + bool unk2 = !gMapManager->func_ov00_020849f8(); if ( mEquippedItem != ItemFlag_None && (unk2 || (u32) mEquippedItem - 9 <= 1) && @@ -380,3 +380,703 @@ THUMB void ItemManager::RemoveItem(ItemFlag item) { (*mAmmo)[item] = 0; } } + +extern ItemModel **data_027e1058; +extern ItemModel **data_027e105c; +extern "C" ItemModel* func_ov00_02079ffc(void*, const char *modelName, const char *textureName, unk32 param4, unk8 param5, unk8 param6, bool param7); +extern "C" ItemModel* LoadTreasureItemFanfare(ItemModel**, s32 treasureType, bool, bool); +static char *sDefaultItemModel = "key"; +static char *sItemModelNames[70] = { + [ItemId_Nothing] = "key", + [ItemId_SmallKey] = "key", + [ItemId_GreenRupee] = "rupee_g", + [ItemId_OshusSword] = "swA", + [ItemId_WoodenShield] = "shA", + [ItemId_Unk_5] = NULL, + [ItemId_Unk_6] = "force_y", + [ItemId_BombBag] = "bomb\0\0\0", + [ItemId_Bow] = "bow", + [ItemId_BigGreenRupee] = "rupee_g", + [ItemId_HeartContainer] = "heart_utu\0\0", + [ItemId_Unk_11] = NULL, + [ItemId_Boomerang] = "boomerang\0\0", + [ItemId_Scoop] = "scp", + [ItemId_BombchuBag] = "bomchu\0", + [ItemId_BossKey] = "bosskey", + [ItemId_Unk_16] = "rev_bin", + [ItemId_Unk_17] = NULL, + [ItemId_PhantomHourglass] = NULL, + [ItemId_SWSeaChart] = "mapSea\0", + [ItemId_NWSeaChart] = "mapSea\0", + [ItemId_SESeaChart] = "mapSea\0", + [ItemId_NESeaChart] = "mapSea\0", + [ItemId_Unk_23] = NULL, + [ItemId_BlueRupee] = "rupee_b", + [ItemId_RedRupee] = "rupee_r", + [ItemId_BigRedRupee] = "rupee_r", + [ItemId_GoldRupee] = "rupee_go\0\0\0", + [ItemId_Unk_28] = "force_y", + [ItemId_Unk_29] = "force_r", + [ItemId_Unk_30] = "force_b", + [ItemId_Hammer] = "ham", + [ItemId_Rope] = "rope\0\0\0", + [ItemId_SquareCrystal] = "cstl_c\0", + [ItemId_RoundCrystal] = "cstl_s\0", + [ItemId_TriangleCrystal] = "cstl_t\0", + [ItemId_FishingRod] = "fp\0", + [ItemId_Cannon] = NULL, + [ItemId_SunKey] = "key_su\0", + [ItemId_Unk_39] = NULL, + [ItemId_Quiver] = "arrowpod\0\0\0", + [ItemId_BigBombBag] = "bmbagM\0", + [ItemId_BigBombchuBag] = "bcbagM\0", + [ItemId_Unk_43] = NULL, + [ItemId_KingsKey] = "key_ki\0", + [ItemId_PowerGem] = "minaP\0\0", + [ItemId_WisdomGem] = "minaC\0\0", + [ItemId_CourageGem] = "minaY\0\0", + [ItemId_PinkCoral] = NULL, + [ItemId_WhitePearlLoop] = NULL, + [ItemId_DarkPearlLoop] = NULL, + [ItemId_ZoraScale] = NULL, + [ItemId_GoronAmber] = NULL, + [ItemId_RutoCrown] = NULL, + [ItemId_HelmarocPlume] = NULL, + [ItemId_RegalRing] = NULL, + [ItemId_GhostKey] = "key_gh\0", + [ItemId_FreebieCard] = "tic_tada\0\0\0", + [ItemId_ComplimentCard] = "tic_ohome\0\0", + [ItemId_ComplimentaryCard] = "tic_rare\0\0\0", + [ItemId_RegalNecklace] = "neckl\0\0", + [ItemId_SalvageArm] = "slvarm\0", + [ItemId_HerosNewClothes] = NULL, + [ItemId_Kaleidoscope] = "telescope\0\0", + [ItemId_GuardNotebook] = "notebook\0\0\0", + [ItemId_JolenesLetter] = "letter\0", + [ItemId_PrizePostcard] = "card\0\0\0", + [ItemId_WoodHeart] = "marron\0", + [ItemId_PhantomSwordBlade] = "swBedge", + [ItemId_PhantomSword] = NULL, +}; +static char *sItemModelNames2[8] = { + [ItemId_SwordsmanScroll - ItemId_SwordsmanScroll] = "makimono\0\0\0", + [ItemId_Crimsonine - ItemId_SwordsmanScroll] = "hagaH\0\0", + [ItemId_Azurine - ItemId_SwordsmanScroll] = "hagaK\0\0", + [ItemId_Aquanine - ItemId_SwordsmanScroll] = "hagaS\0\0", + [ItemId_RedPotion - ItemId_SwordsmanScroll] = "rev_bin", + [ItemId_PurplePotion - ItemId_SwordsmanScroll] = "rev_binP\0\0\0", + [ItemId_YellowPotion - ItemId_SwordsmanScroll] = "rev_binY\0\0\0", + [ItemId_SandOfHours - ItemId_SwordsmanScroll] = "sand_m\0", +}; +static char *sItemModelNames3[9] = { + [ItemId_CycloneSlate - ItemId_CycloneSlate] = "compass", + [ItemId_Unk_128 - ItemId_CycloneSlate] = "lure\0\0\0", + [ItemId_Rupoor10 - ItemId_CycloneSlate] = "rupee_bb\0\0\0", + [ItemId_Rupoor50 - ItemId_CycloneSlate] = "rupee_bb\0\0\0", + [ItemId_Unk_131 - ItemId_CycloneSlate] = NULL, + [ItemId_Unk_132 - ItemId_CycloneSlate] = NULL, + [ItemId_Unk_133 - ItemId_CycloneSlate] = NULL, + [ItemId_Unk_134 - ItemId_CycloneSlate] = NULL, + [ItemId_Unk_135 - ItemId_CycloneSlate] = NULL, +}; +char *sSpecialItemModelNames[7] = { + "mapTakara\0\0", + "arrowpodL\0\0", + "bmbagL\0", + "bcbagL\0", + "Player/get/gd_\0", + ".nsbmd\0", + ".nsbtx\0", +}; +THUMB void ItemManager::LoadFanfareItem(ItemId id) { + mFanfareItem = id; + + ItemModel *model; + if ( + id == ItemId_Unk_43 || + id == ItemId_Cannon || + (id >= ItemId_GOLDEN_SHIP_START && id <= ItemId_GOLDEN_SHIP_END) || + id == ItemId_Unk_126 || + id == ItemId_Unk_133 + ) { + model = *data_027e1058; + } else if ( + id >= ItemId_TREASURE_START && + id <= ItemId_TREASURE_END + ) { + model = LoadTreasureItemFanfare(data_027e105c, id - ItemId_TREASURE_START, true, false); + } else if (id == ItemId_Unk_125) { + model = *data_027e105c; + } else { + char modelName[0x80] = {}; + char textureName[0x80] = {}; + const char *itemName = NULL; + if (id == ItemId_Quiver && (s32) mQuiverSize >= 1) { + itemName = sSpecialItemModelNames[1]; + } else if (id == ItemId_BigBombBag && (s32) mBombBagSize >= 1) { + itemName = sSpecialItemModelNames[2]; + } else if (id == ItemId_BigBombchuBag && (s32) mBombchuBagSize >= 1) { + itemName = sSpecialItemModelNames[3]; + } else if (id == ItemId_HerosNewClothes) { + itemName = sShipPartTypes[11]; + } else if (id < ItemId_Unk_70) { + itemName = sItemModelNames[id]; + } else if (id >= ItemId_SwordsmanScroll && id < ItemId_GoldenChimney) { + itemName = sItemModelNames2[id - ItemId_SwordsmanScroll]; + } else if (id >= ItemId_CycloneSlate && id < ItemId_Unk_136) { + itemName = sItemModelNames3[id - ItemId_CycloneSlate]; + } else if (id >= ItemId_TREASURE_CHART_START && id <= ItemId_TREASURE_CHART_END) { + itemName = sSpecialItemModelNames[0]; + } + if (!itemName) { + itemName = sDefaultItemModel; + } + strcat(modelName, sSpecialItemModelNames[4]); + strcat(modelName, itemName); + strcat(modelName, sSpecialItemModelNames[5]); + strcat(textureName, sSpecialItemModelNames[4]); + strcat(textureName, itemName); + strcat(textureName, sSpecialItemModelNames[6]); + model = func_ov00_02079ffc(mFanfareItemModel, modelName, textureName, 0, 0, 0, true); + } + mUnk_114->vfunc_0c(model); +} + +THUMB bool ItemManager::GetFanfareItemScale(Vec3p *scale) const { + switch (mFanfareItem) { + case ItemId_BigGreenRupee: + case ItemId_BigRedRupee: + case ItemId_GoldRupee: + case ItemId_Rupoor50: + scale->x = FLOAT_TO_Q20(1.4); + scale->y = FLOAT_TO_Q20(1.4); + scale->z = FLOAT_TO_Q20(1.4); + return true; + } + return false; +} + +extern "C" void GiveShipPart(ShipPart part, ShipType type); +extern "C" void EquipLinebeckCannon(); +THUMB void ItemManager::GiveItem(ItemId id) { + switch (id) { + case ItemId_SmallKey: { + this->GiveKeys(1); + } break; + + case ItemId_GreenRupee: { + this->GiveRupees(1, true); + } break; + + case ItemId_BlueRupee: { + this->GiveRupees(5, true); + } break; + + case ItemId_RedRupee: { + this->GiveRupees(20, true); + } break; + + case ItemId_BigGreenRupee: { + this->GiveRupees(100, true); + } break; + + case ItemId_BigRedRupee: { + this->GiveRupees(200, true); + } break; + + case ItemId_GoldRupee: { + this->GiveRupees(300, true); + } break; + + case ItemId_OshusSword: { + SET_FLAG(mItemFlags.flags, ItemFlag_OshusSword); + this->GetEquipItem(ItemFlag_OshusSword)->GiveAmmo(1); + } break; + + case ItemId_WoodenShield: { + SET_FLAG(mItemFlags.flags, ItemFlag_WoodenShield); + this->GetEquipItem(ItemFlag_WoodenShield)->GiveAmmo(1); + } break; + + case ItemId_BombBag: { + this->GiveEquipItem(ItemFlag_BombBag, 10); + } break; + + case ItemId_BombchuBag: { + this->GiveEquipItem(ItemFlag_BombchuBag, 10); + } break; + + case ItemId_Bow: { + this->GiveEquipItem(ItemFlag_Bow, 20); + } break; + + case ItemId_Boomerang: { + this->GiveEquipItem(ItemFlag_Boomerang, 1); + } break; + + case ItemId_Scoop: { + this->GiveEquipItem(ItemFlag_Shovel, 1); + } break; + + case ItemId_Hammer: { + this->GiveEquipItem(ItemFlag_Hammer, 1); + } break; + + case ItemId_Rope: { + this->GiveEquipItem(ItemFlag_GrapplingHook, 1); + } break; + + case ItemId_PhantomHourglass: { + SET_FLAG(mItemFlags.flags, ItemFlag_Hourglass); + gAdventureFlags->Set(AdventureFlag_Hourglass, true); + } break; + + case ItemId_SWSeaChart: { + SET_FLAG(mItemFlags.flags, ItemFlag_SeaChartSW); + gAdventureFlags->Set(AdventureFlag_SWSeaChart, true); + } break; + + case ItemId_NWSeaChart: { + SET_FLAG(mItemFlags.flags, ItemFlag_SeaChartNW); + gAdventureFlags->Set(AdventureFlag_NWSeaChart, true); + } break; + + case ItemId_SESeaChart: { + SET_FLAG(mItemFlags.flags, ItemFlag_SeaChartSE); + gAdventureFlags->Set(AdventureFlag_SESeaChart, true); + } break; + + case ItemId_NESeaChart: { + SET_FLAG(mItemFlags.flags, ItemFlag_SeaChartNE); + gAdventureFlags->Set(AdventureFlag_NESeaChart, true); + } break; + + case ItemId_FishingRod: { + SET_FLAG(mItemFlags.flags, ItemFlag_FishingRod); + gAdventureFlags->Set(AdventureFlag_FishingRod, true); + } break; + + case ItemId_Cannon: { + SET_FLAG(mItemFlags.flags, ItemFlag_Cannon); + gAdventureFlags->Set(AdventureFlag_Cannon, true); + GiveShipPart(ShipPart_Cannon, ShipType_Linebeck); + EquipLinebeckCannon(); + } break; + + case ItemId_SunKey: { + SET_FLAG(mItemFlags.flags, ItemFlag_SunKey); + gAdventureFlags->Set(AdventureFlag_SunKey, true); + } break; + + case ItemId_Unk_39: { + SET_FLAG(mItemFlags.flags, ItemFlag_Unk_39); + gAdventureFlags->Set(AdventureFlag_Unk_23, true); + } break; + + case ItemId_Quiver: { + this->UpgradeQuiver(); + } break; + + case ItemId_BigBombBag: { + this->UpgradeBombBag(); + } break; + + case ItemId_BigBombchuBag: { + this->UpgradeBombchuBag(); + } break; + + case ItemId_KingsKey: { + SET_FLAG(mItemFlags.flags, ItemFlag_KingsKey); + } break; + + case ItemId_GhostKey: { + SET_FLAG(mItemFlags.flags, ItemFlag_GhostKey); + } break; + + case ItemId_PowerGem: { + mNumGems[Gem_Power] += 1; + } break; + + case ItemId_WisdomGem: { + mNumGems[Gem_Wisdom] += 1; + } break; + + case ItemId_CourageGem: { + mNumGems[Gem_Courage] += 1; + } break; + + case ItemId_SalvageArm: { + SET_FLAG(mItemFlags.flags, ItemFlag_SalvageArm); + gAdventureFlags->Set(AdventureFlag_SalvageArm, true); + gHealthManager->mSalvageArmHealth = 5; + } break; + + case ItemId_SwordsmanScroll: { + SET_FLAG(mItemFlags.flags, ItemFlag_SwordsmansScroll); + } break; + + case ItemId_Crimsonine: { + gAdventureFlags->Set(AdventureFlag_Crimsonine, true); + } break; + + case ItemId_Azurine: { + gAdventureFlags->Set(AdventureFlag_Azurine, true); + } break; + + case ItemId_Aquanine: { + gAdventureFlags->Set(AdventureFlag_Aquanine, true); + } break; + + case ItemId_SpiritOfPowerUpgradeLvl1: { + SET_FLAG(mItemFlags.flags, ItemFlag_PowerLv1); + } break; + + case ItemId_SpiritOfWisdomUpgradeLvl1: { + SET_FLAG(mItemFlags.flags, ItemFlag_WisdomLv1); + } break; + + case ItemId_SpiritOfCourageUpgradeLvl1: { + SET_FLAG(mItemFlags.flags, ItemFlag_CourageLv1); + } break; + + case ItemId_SpiritOfPowerUpgradeLvl2: { + SET_FLAG(mItemFlags.flags, ItemFlag_PowerLv2); + } break; + + case ItemId_SpiritOfWisdomUpgradeLvl2: { + SET_FLAG(mItemFlags.flags, ItemFlag_WisdomLv2); + } break; + + case ItemId_SpiritOfCourageUpgradeLvl2: { + SET_FLAG(mItemFlags.flags, ItemFlag_CourageLv2); + } break; + + case ItemId_RedPotion: { + for (s32 i = 0; i < MAX_POTIONS; ++i) { + if (mPotions[i] != Potion_None) continue; + this->SetPotion(i, Potion_Red); + break; + } + } break; + + case ItemId_PurplePotion: { + for (s32 i = 0; i < MAX_POTIONS; ++i) { + if (mPotions[i] != Potion_None) continue; + this->SetPotion(i, Potion_Purple); + break; + } + } break; + + case ItemId_YellowPotion: { + for (s32 i = 0; i < MAX_POTIONS; ++i) { + if (mPotions[i] != Potion_None) continue; + this->SetPotion(i, Potion_Yellow); + break; + } + } break; + + case ItemId_SandOfHours: { + mHourglassSandFrames += 3600; + } break; + + case ItemId_GoldenChimney: { + gAdventureFlags->Set(AdventureFlag_ReceivedGoldenChimney, true); + GiveShipPart(ShipPart_Chimney, ShipType_Golden); + } break; + + case ItemId_GoldenHandrail: { + gAdventureFlags->Set(AdventureFlag_ReceivedGoldenHandrail, true); + GiveShipPart(ShipPart_Handrail, ShipType_Golden); + } break; + + case ItemId_GoldenCannon: { + gAdventureFlags->Set(AdventureFlag_ReceivedGoldenCannon, true); + GiveShipPart(ShipPart_Cannon, ShipType_Golden); + } break; + + case ItemId_GoldenHull: { + gAdventureFlags->Set(AdventureFlag_ReceivedGoldenHull, true); + GiveShipPart(ShipPart_Hull, ShipType_Golden); + } break; + + case ItemId_CycloneSlate: { + SET_FLAG(mItemFlags.flags, ItemFlag_CycloneSlate); + } break; + + case ItemId_Unk_128: { + SET_FLAG(mItemFlags.flags, ItemFlag_Unk_47); + } break; + + case ItemId_Rupoor10: { + this->GiveRupees(-10, true); + } break; + + case ItemId_Rupoor50: { + this->GiveRupees(-50, true); + } break; + + case ItemId_Nothing: break; + case ItemId_Unk_5: break; + case ItemId_Unk_16: break; + case ItemId_Unk_131: break; + case ItemId_Unk_132: break; + + default: { + if (ItemId_TREASURE_CHART_START <= id && id <= ItemId_TREASURE_CHART_END) { + SET_FLAG(mItemFlags.flags, id + ItemFlag_TREASURE_CHART_START - ItemId_TREASURE_CHART_START); + } + } break; + } + if ( + gAdventureFlags->Get(AdventureFlag_Azurine) && + gAdventureFlags->Get(AdventureFlag_Crimsonine) && + gAdventureFlags->Get(AdventureFlag_Aquanine) + ) { + gAdventureFlags->Set(AdventureFlag_Unk_128, true); + } +} + +THUMB void ItemManager::GiveEquipItem(ItemFlag item, u16 ammo) { + u16 flag = item; + SET_FLAG(mItemFlags.flags, flag); + this->GetEquipItem(item)->GiveAmmo(ammo); + if (mEquippedItem == ItemFlag_None) { + this->mEquippedItem = item; + this->mEquipLoadTimer = 1; + } +} + +THUMB void ItemManager::UnequipPotion() { + switch (mEquippedItem) { + case ItemFlag_PotionA: + case ItemFlag_PotionB: { + this->EquipPreviousItem(); + } break; + } +} + +ARM s32 ItemManager::GetMaxRupees() const { + return 9999; +} + +extern void *data_027e103c; +extern "C" s32 func_ov00_020cf374(void *param1, bool param2); +extern "C" void func_ov05_02104004(void *param1); +ARM void ItemManager::GiveRupees(s16 amount, bool param2) { + s32 newRupees = mNumRupees + amount; + if (newRupees > this->GetMaxRupees()) { + newRupees = this->GetMaxRupees(); + } else if (newRupees < 0) { + newRupees = 0; + } + + s32 currRupees = func_ov00_020cf374(data_027e103c, true); + if (param2) { + currRupees = mNumRupees; + if (currRupees != newRupees) { + func_ov05_02104004(data_027e103c); + } + } + mNumRupees = newRupees; +} + +ARM unk32 ItemManager::GetNumKeys() const { + return gMapManager->GetNumKeys(); +} + +THUMB void ItemManager::GiveKeys(u32 amount) { + s32 keys = amount + gMapManager->GetNumKeys(); + if (keys >= MAX_KEYS) keys = MAX_KEYS; + if (keys <= 0) keys = 0; + gMapManager->SetNumKeys(keys); +} + +ARM ItemFlag ItemManager::GetEquippedItem() const { + if (mForcedItem != ItemFlag_None) return mForcedItem; + return mEquippedItem; +} + +ARM bool ItemManager::SetEquippedItem(ItemFlag equipId) { + mPrevEquippedItem = mEquippedItem; + mEquippedItem = equipId; + mEquipLoadTimer = 2; + return true; +} + +ARM void ItemManager::EquipPreviousItem() { + this->SetEquippedItem(mPrevEquippedItem); +} + +THUMB void ItemManager::ForceEquipItem(ItemFlag equipId) { + for (ItemFlag i = ItemFlag_EQUIP_START; i < ItemFlag_EQUIP_END; ++i) { + if (i == equipId) continue; + (*mEquipItems)[i - ItemFlag_EQUIP_START]->UpdateInUse(0); + } + mForcedItem = equipId; + mEquipLoadTimer = 1; +} + +THUMB bool ItemManager::ClearForcedEquipItem() { + mForcedItem = ItemFlag_None; + if (mEquippedItem != ItemFlag_None) return this->SetEquippedItem(mEquippedItem); + return false; +} + +ARM void ItemManager::UpdateSwordShieldInUse() { + this->GetEquipItem(ItemFlag_OshusSword)->UpdateInUse(1); + this->GetEquipItem(ItemFlag_WoodenShield)->UpdateInUse(1); +} + +THUMB void ItemManager::UpgradeQuiver() { + if (mQuiverSize < MAX_AMMO_UPGRADE) mQuiverSize += 1; + (*mAmmo)[ItemFlag_Bow] = this->GetMaxAmmo(ItemFlag_Bow); +} + +THUMB void ItemManager::UpgradeBombBag() { + if (mBombBagSize < MAX_AMMO_UPGRADE) mBombBagSize += 1; + (*mAmmo)[ItemFlag_BombBag] = this->GetMaxAmmo(ItemFlag_BombBag); +} + +THUMB void ItemManager::UpgradeBombchuBag() { + if (mBombchuBagSize < MAX_AMMO_UPGRADE) mBombchuBagSize += 1; + (*mAmmo)[ItemFlag_BombchuBag] = this->GetMaxAmmo(ItemFlag_BombchuBag); +} + +ARM void ItemManager::func_ov00_020ae4dc(s32 param1) { + s32 newValue = mUnk_0ba + param1; + if (newValue > MAX_UNK_0BA) { + mUnk_0ba = MAX_UNK_0BA; + } else if (mUnk_0ba < -param1) { + mUnk_0ba = 0; + } else { + mUnk_0ba = newValue; + } +} + +ARM void ItemManager::SetPotion(u32 index, Potion potion) { + mPotions[index] = potion; + if (potion == Potion_None) { + RESET_FLAG(mItemFlags.flags, index + ItemFlag_PotionA); + } else { + SET_FLAG(mItemFlags.flags, index + ItemFlag_PotionA); + } +} + +ARM bool ItemManager::HasPotion(u32 index) const { + switch (mPotions[index]) { + case Potion_Red: + case Potion_Purple: + case Potion_Yellow: + return true; + + case Potion_None: + default: + return false; + } +} + +ARM bool ItemManager::HasAllPotions() const { + for (s32 i = 0; i < MAX_POTIONS; ++i) { + if (!this->HasPotion(i)) return false; + } + return true; +} + +ARM bool ItemManager::HasPurplePotion() const { + for (s32 i = 0; i < MAX_POTIONS; ++i) { + if (mPotions[i] == Potion_Purple) return true; + } + return false; +} + +extern "C" void func_020196bc(ItemModel *param1, unk32 param2); +extern "C" void func_020196fc(ItemModel *param1, unk32 param2); +THUMB void ItemManager::LoadDungeonItemModels() { + for (s32 i = 0; i < DungeonItemModelId_COUNT; ++i) { + if (mDungeonItemModels[i] == NULL) continue; + + u16 unk1, unk2; + switch (i) { + case DungeonItemModelId_RoundCrystal: + case DungeonItemModelId_SquareCrystal: + case DungeonItemModelId_TriangleCrystal: { + unk1 = data_027e0f78->mUnk_1e; + unk2 = data_027e0f78->mUnk_1c; + } break; + + default: { + unk1 = data_027e0f78->mUnk_1a; + unk2 = data_027e0f78->mUnk_18; + } break; + } + func_020196bc(mDungeonItemModels[i], unk1); + func_020196fc(mDungeonItemModels[i], unk2); + } +} + +extern unk32 data_ov00_020eec68; +extern "C" void PlaySoundEffect(void *param1, SfxId sfx); +THUMB void ItemManager::PlayItemFanfareSfx(ItemId item) { + if (gItemManager->mMuteNextFanfare == true) { + gItemManager->mMuteNextFanfare = false; + return; + } + SfxId sfx; + switch (item) { + case ItemId_PowerGem: + case ItemId_WisdomGem: + case ItemId_CourageGem: { + sfx = SfxId_Fanfare_Gem; + } break; + + case ItemId_GoldRupee: { + sfx = SfxId_Fanfare_GoldRupee; + } break; + + case ItemId_SmallKey: + case ItemId_GreenRupee: + case ItemId_BlueRupee: + case ItemId_RedRupee: { + sfx = SfxId_Fanfare_Rupee; + } break; + + case ItemId_Rupoor10: + case ItemId_Rupoor50: { + sfx = SfxId_Fanfare_Rupoor; + } break; + + case ItemId_Nothing: + case ItemId_HerosNewClothes: { + sfx = SfxId_Fanfare_Nothing_2; + } break; + + case ItemId_HeartContainer: { + sfx = SfxId_Fanfare_HeartContainer; + } break; + + default: { + sfx = SfxId_Fanfare_Treasure; + } break; + } + if (gItemManager->mFanfareSfx != SfxId_None) { + sfx = gItemManager->mFanfareSfx; + gItemManager->mFanfareSfx = SfxId_None; + } + PlaySoundEffect(&data_ov00_020eec68, sfx); +} + +THUMB bool ItemManager::HasShipPartPriceShown(ShipPart part, ShipType type) const { + return GET_FLAG(mShipPartPricesShown.flags, part * ShipType_COUNT + type); +} + +THUMB void ItemManager::AddShipPartPriceShown(ShipPart part, ShipType type) { + SET_FLAG(mShipPartPricesShown.flags, part * ShipType_COUNT + type); +} + +THUMB bool ItemManager::HasTreasurePriceShown(Treasure treasure) const { + return GET_FLAG(mTreasurePriceShownFlags, treasure); +} + +THUMB void ItemManager::AddTreasurePriceShown(Treasure treasure) { + SET_FLAG(mTreasurePriceShownFlags, treasure); +} diff --git a/src/00_Core/Map/Course.cpp b/src/00_Core/Map/Course.cpp new file mode 100644 index 00000000..560169e8 --- /dev/null +++ b/src/00_Core/Map/Course.cpp @@ -0,0 +1,55 @@ +#include "Map/Course.hpp" + +#ifdef STUBS + +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::FindMapCenter(unk32 map) {} +void Course::func_ov00_0207cbe8(s32 param_2) {} +unk8 Course::func_ov00_0207cc24(s32 param_2) {} +unk32 Course::FindMapData_Unk_08(unk32 map) {} +void Course::GetMCSFilePath(unk32 buf, s32 fileIndex, unk32 fileType) {} +void Course::GetMRCFilePath(unk32 param_2, unk32 buf, unk32 param_4) {} +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::FindCurrentMapData_Unk_04() {} +u32 Course::FindMapData_Unk_04(unk32 param_2) {} +unk32 Course::FindMapData_Unk_0c(unk32 map) {} +void Course::func_ov00_0207d7bc() {} +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::SetMapDataFlag0(unk32 index, bool value) {} +bool Course::GetMapDataFlag0(unk32 param_2) {} +void Course::SetMapDataFlag1(unk32 param_2, bool param_3) {} +bool Course::GetMapDataFlag1(unk32 param_2) {} +void Course::SetMapDataFlag2(unk32 param_2, bool param_3) {} +bool Course::GetMapDataFlag2(unk32 param_2) {} +void Course::SetMapDataFlag3(unk32 param_2, bool param_3) {} +bool Course::GetMapDataFlag3(unk32 param_2) {} +void Course::SetMapDataFlag4(unk32 param_2, unk32 param_3) {} +bool Course::GetMapDataFlag4(unk32 param_2) {} +MapData* Course::FindMapData(u32 map) {} +MapData* Course::FindCurrentMapData() {} + +#endif diff --git a/src/00_Core/Map/MapBase.cpp b/src/00_Core/Map/MapBase.cpp new file mode 100644 index 00000000..5a5ed636 --- /dev/null +++ b/src/00_Core/Map/MapBase.cpp @@ -0,0 +1,116 @@ +#include "Map/MapBase.hpp" +#include "Map/MapManager.hpp" + +#ifdef STUBS + +MapBase::~MapBase() {} +MapBase_Unk_180::~MapBase_Unk_180() {} +void MapBase::SetBounds(unk32 map, unk32 course) {} +MapManager_Unk2::~MapManager_Unk2() {} +void MapBase::GetMapFilePath(char *courseName, unk32 num1, unk32 buf) {} +void MapBase::vfunc_18() {} +void MapBase::func_ov00_0207ddf8(bool param_2) {} +void MapBase::func_ov00_0207de68(unk32 param_2) {} +void MapBase::func_ov00_0207de88() {} +void MapBase::func_ov00_0207dea0(bool param_2) {} +unk8 MapBase::vfunc_b0(unk32 param_2, unk32 param_3) {} +bool MapBase::func_ov00_0207e08c(unk32 param_2, unk32 param_3) {} +s32 MapBase::func_ov00_0207e0f0(unk32 param_2) {} +s32 MapBase::func_ov00_0207e28c(unk32 param_2) {} +void MapBase::vfunc_b4() {} +void MapBase::vfunc_48() {} +unk32 MapBase::vfunc_50() {} +unk32 MapBase::vfunc_54() {} +unk32 MapBase::vfunc_58() {} +unk32 MapBase::vfunc_5c() {} +unk32 MapBase::vfunc_60() {} +unk32 MapBase::vfunc_64() {} +unk8 MapBase::vfunc_68(unk32 param_2, unk32 param_3) {} +unk8 MapBase::func_ov00_0207e940(unk8 *param_1) {} +unk8 MapBase::func_ov00_0207e968() {} +unk8 MapBase::func_ov00_0207e96c() {} +unk8 MapBase::vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4) {} +unk32 MapBase::vfunc_70(Vec3p *param_2) {} +s32* MapBase::vfunc_74(Vec3p *param_2) {} +unk8 MapBase::func_ov00_0207f100() {} +bool MapBase::func_ov00_0207f104(unk32 param_2, unk32 param_3) {} +unk32 MapBase::func_ov00_0207f1f4(Vec3p *param_2, unk32 *param_3) {} +unk32 MapBase::vfunc_88() {} +unk32 MapBase::vfunc_8c() {} +void MapBase::vfunc_9c() {} +void MapBase::vfunc_a0() {} +unk32 MapBase::vfunc_a4() {} +void MapBase::vfunc_a8() {} +void MapBase::vfunc_ac() {} +unk32 MapBase::vfunc_78() {} +unk32 MapBase::vfunc_7c() {} +unk32 MapBase::vfunc_80() {} +void MapBase::vfunc_84(unk32 param_2) {} +unk8 MapBase::func_ov00_0207f38c(unk32 param_2) {} +unk8 MapBase::vfunc_90(unk32 param_2, unk32 param_3, unk32 param_4) {} +void MapBase::vfunc_94() {} +void MapBase::func_ov00_0207f4a4(Vec2s *param_2, unk32 param_3) {} +void MapBase::func_ov00_0207f53c(Vec2s *param_1, MapBase *param_2, Vec3p *param_3) {} +void MapBase::func_ov00_0207f588(Vec2s *param_1, MapBase *param_2, Vec2b *param_3, unk32 param_4) {} +void MapBase::func_ov00_0207f630(Vec2s *param_2, Vec3p *param_3) {} +unk8 MapBase::GetTileStartX(unk32 x) {} +unk8 MapBase::GetTileStartZ(unk32 z) {} +s32 MapBase::GetTileEndX(unk32 x) {} +s32 MapBase::GetTileEndZ(unk32 z) {} +void MapBase::GetTileBounds(Vec2b *tilePos, AABB *bounds) {} +unk8 MapBase::GetClampedTileX(unk32 worldX) {} +unk8 MapBase::GetClampedTileY(unk32 worldZ) {} +unk8 MapBase::GetTileX(unk32 worldX) {} +unk8 MapBase::GetTileY(unk32 worldZ) {} +bool MapBase::IsInBounds(Vec3p *tileWorldPos) {} +s32 MapBase::AddEntrance(Entrance *param_2) {} +unk8 MapBase::FindEntrance(unk32 id) {} +unk8 MapBase::func_ov00_0207f924(unk32 param_2) {} +unk8 MapBase::func_ov00_0207f934() {} +unk8 MapBase::func_ov00_0207f948(unk32 param_2) {} +void MapBase::AddTrigger(TriggerParams *param_2) {} +void TriggerBase::vfunc_08() {} +s32 MapBase::GetTriggerBoundingBox(unk32 param_2, AABB *param_3) {} +bool TriggerBase::GetBoundingBox() {} +unk8 MapBase::GetTriggerBoundingBoxes(unk32 param_2, AABB *param_3, unk32 param_4) {} +unk32 MapBase::GetOverlappingTrigger(Vec3p *param_2) {} +bool TriggerBase::Overlaps() {} +unk8 MapBase::FindTrigger(unk32 type) {} +unk8 MapBase::GetOverlappingTriggers(Vec3p *param_2, TriggerBase * *triggers, unk32 capacity) {} +bool MapBase::IsTriggerTypeOverlapped(unk32 type, Vec3p *param_3) {} +bool MapBase::AnyTrigger_func_0c(unk32 type) {} +unk32 TriggerBase::vfunc_0c() {} +unk8 MapBase::Trigger_vfunc_08() {} +bool MapBase::AddTrigger(unk32 param_2) {} +bool MapBase::func_ov00_0207ff88(unk32 param_2) {} +void MapBase::func_ov00_0208005c(s32 param_2, s32 param_3, unk32 param_4) {} +void MapBase::func_ov00_0208006c(unk32 param_2, s32 param_3) {} +void MapBase::func_ov00_0208007c(s32 param_2, s32 param_3) {} +void MapBase::func_ov00_0208008c(u32 param_2) {} +unk8 MapBase::AddExit(Exit *param_2) {} +unk8 MapBase::func_ov00_02080140(Exit *param_2) {} +void MapBase_Unk1::func_ov00_02080324(s32 param_2, s32 param_3, s32 param_4) {} +bool MapBase::FindExit(unk32 param_2, Exit *param_3) {} +unk8 MapBase::AddCameraViewpoint(CameraViewpoint *param_2) {} +bool MapBase::FindViewpoint_Unk_4(unk8 id, CameraViewpoint *param_3) {} +bool MapBase::FindViewpoint_Unk_0(unk32 param_2, CameraViewpoint *param_3) {} +void MapBase::GetCurrentViewpoint(CameraViewpoint *param_2, unk32 param_3) {} +unk8 MapBase::GetCurrentViewpoint_Unk_00(s32 param_2) {} +unk32 MapBase::vfunc_b8() {} +bool MapBase::func_ov00_02080824(unk32 param_2, unk32 param_3) {} +bool MapBase::AddUnk_130(unk32 param_2) {} +bool MapBase::func_ov00_020809b8(unk32 param_2) {} +unk8 MapBase::func_ov00_02080a78(Vec3p *param_2) {} +void MapBase_Unk2::func_ov00_02080ad0(TriggerBase * *param_2, TriggerBase * *param_3) {} +unk8 MapBase::func_ov00_02080b24(Vec2b *param_2) {} +void MapBase::func_ov00_02080d08(unk32 param_2) {} +void MapBase::vfunc_bc() {} +void MapBase::vfunc_98() {} +void MapBase::vfunc_c0() {} +bool MapBase::TriggerOfType_vfunc_10(unk32 type) {} +unk32 TriggerBase::vfunc_10() {} +void MapBase::func_ov00_02080de4() {} +unk8 MapBase::func_ov00_02080de8(unk32 param_2) {} +void MapBase::func_ov00_02080edc() {} + +#endif diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp new file mode 100644 index 00000000..802043ac --- /dev/null +++ b/src/00_Core/Map/MapManager.cpp @@ -0,0 +1,204 @@ +#include "Map/MapManager.hpp" + +#ifdef STUBS + +void MapManager::func_ov00_020820ec(unk32 *param_2) {} +void MapManager::func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_4) {} +unk8 MapManager::func_ov00_0208210c(unk32 param_2, unk32 param_3) {} +unk8 MapManager::func_ov00_0208230c(unk32 param_2) {} +unk8 MapManager::func_ov00_02082348(unk32 param_2) {} +void MapManager::func_ov00_020823a4(unk32 param_2) {} +unk8 MapManager::func_ov00_020823b4() {} +bool MapManager::func_ov00_020823c4(unk32 *param_2, s32 param_3) {} +s32 MapManager::func_ov00_020823d4(s32 param_2) {} +s32 MapManager::func_ov00_020823e4(s32 param_2) {} +unk8 MapManager::MapData_vfunc_b4() {} +unk8 MapManager::MapData_vfunc_9c() {} +s32 MapManager::func_ov00_02082424() {} +unk8 MapManager::func_ov00_02082454(unk32 param_2, unk32 param_3) {} +unk8 MapManager::func_ov00_02082494(unk32 param_2) {} +unk8 MapManager::func_ov00_020824cc(unk32 param_2) {} +unk8 MapManager::func_ov00_02082504() {} +unk8 * MapManager::func_ov00_02082538() {} +void MapManager::func_ov00_02082594() {} +void MapManager::func_ov00_020825ac() {} +s32 MapManager::GetCourseFilePath(char *courseName, char *buf) {} +unk8 MapManager::func_ov00_020825e4(unk32 param_2, unk32 param_3) {} +unk8 MapManager::func_ov00_02082614(unk32 param_2, unk32 param_3) {} +unk8 MapManager::MapData_vfunc_b0() {} +void MapManager::func_ov00_02082650(s32 param_2, s32 param_3, unk32 param_4) {} +void MapManager::func_ov00_02082660(s32 param_2, s32 param_3) {} +void MapManager::func_ov00_02082670(unk32 param_2, s32 param_3) {} +void MapManager::func_ov00_02082680(unk32 param_2, unk32 param_3) {} +unk8 MapManager::func_ov00_020826a0(unk32 param_2, unk32 param_3, unk32 param_4) {} +unk8 MapManager::CreateMap(unk32 mapType, unk32 param_3, unk32 param_4) {} +unk8 MapManager::DestroyMap() {} +unk8 MapManager::MapData_vfunc_44() {} +unk8 MapManager::func_ov00_02082808() {} +unk8 MapManager::MapData_vfunc_7c() {} +unk8 MapManager::MapData_vfunc_84() {} +bool MapManager::func_ov00_020828f8(s32 *param_2) {} +unk8 MapManager::GetCourseData_Unk_b0() {} +s32 MapManager::func_ov00_02082914(unk32 param_2) {} +unk8 MapManager::func_ov00_02082acc() {} +unk32 * MapManager::func_ov00_02082adc() {} +unk8 MapManager::func_ov00_02082af4() {} +bool MapManager::func_ov00_02082b3c(s32 param_2) {} +unk8 MapManager::func_ov00_02082d08() {} +unk8 MapManager::GetCourseData_Unk_1c() {} +unk8 MapManager::GetCourseData_Unk_1d() {} +unk8 MapManager::func_ov00_02082d40() {} +u32 MapManager::func_ov00_02082d74(unk32 param_2) {} +unk8 MapManager::func_ov00_02082d84() {} +bool MapManager::func_ov00_02082e1c(s32 *param_2, s32 *param_3) {} +unk8 MapManager::func_ov00_0208306c() {} +void MapManager::func_ov00_0208315c(s32 *param_2, s32 *param_3) {} +void MapManager::func_ov00_02083244(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5) {} +void MapManager::func_ov00_02083298(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5) {} +unk8 MapManager::GetCourseData_Unk_25c() {} +bool MapManager::func_ov00_02083318(unk32 param_2) {} +unk8 MapManager::func_ov00_02083328() {} +unk8 MapManager::GetCourseData_Unk_86() {} +unk8 MapManager::GetCourseData_Unk_87() {} +unk8 MapManager::Get_MapData_Unk28() {} +unk8 MapManager::Get_MapData_Unk2a() {} +unk8 MapManager::func_ov00_02083374() {} +unk8 MapManager::func_ov00_02083384() {} +unk8 MapManager::GetCourseMinX() {} +unk8 MapManager::GetCourseMinZ() {} +unk8 MapManager::GetCourseMaxX() {} +unk8 MapManager::GetCourseMaxZ() {} +unk8 MapManager::func_ov00_020833c4() {} +unk8 MapManager::func_ov00_020833d0() {} +unk8 MapManager::func_ov00_020833dc() {} +unk8 MapManager::func_ov00_020833e8() {} +unk8 MapManager::Get_MapData_Unk_d0() {} +unk8 MapManager::Get_MapData_Unk_d8() {} +unk8 MapManager::GetMapData_Unk_dc(Vec3p *param_2) {} +unk8 MapManager::GetMapData_Unk_e8(Vec3p *param_2) {} +unk8 MapManager::GetMapData_Unk_d0(Vec3p *param_2) {} +unk8 MapManager::func_ov00_0208346c(AABB *param_2) {} +unk8 MapManager::func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4) {} +unk8 MapManager::func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 param_4) {} +void MapManager::func_ov00_02083560(unk32 param_1, MapManager *param_2, u32 param_3) {} +unk8 MapManager::func_ov00_02083570(unk32 param_2, unk32 param_3) {} +unk32 MapManager::func_ov00_02083588() {} +unk32 MapManager::func_ov00_020835a4() {} +unk32 MapManager::func_ov00_020835b4() {} +unk8 MapManager::func_ov00_020835c4(unk32 param_2, unk32 param_3) {} +bool MapManager::func_ov00_020835e4(s32 param_2, unk32 *param_3, unk32 *param_4) {} +unk32 MapManager::func_ov00_020835f4(s32 param_2) {} +void MapManager::func_ov00_02083604(s32 param_2) {} +unk8 MapManager::func_ov00_02083614(s32 param_2) {} +bool MapManager::GetEntrancePos(Vec3p *param_2, unk32 entranceId) {} +bool MapManager::func_ov00_02083664(Vec3p *param_2, unk32 entranceId) {} +s32 MapManager::func_ov00_020836bc(u32 param_2, unk32 *param_3) {} +u32 MapManager::func_ov00_020836cc(u32 param_2, AABB *param_3, u32 param_4) {} +unk8 MapManager::func_ov00_020836dc(unk32 param_2, unk32 param_3) {} +bool MapManager::func_ov00_02083770(u32 param_2, unk32 param_3) {} +bool MapManager::func_ov00_02083780(unk32 param_2) {} +bool MapManager::func_ov00_02083790(unk32 param_2) {} +unk8 MapManager::func_ov00_02083840(unk32 param_2) {} +bool MapManager::func_ov00_020838c8(s32 param_2) {} +bool MapManager::func_ov00_020838d8(s32 param_2) {} +bool MapManager::func_ov00_020838e8(u32 param_2, unk32 *param_3) {} +char MapManager::func_ov00_020838f8(unk32 *param_2) {} +bool MapManager::func_ov00_02083908(char param_2, unk32 *param_3) {} +void MapManager::func_ov00_02083918(s32 param_2, s32 *param_3) {} +void MapManager::func_ov00_02083928(unk8 *param_2, s32 param_3) {} +unk32 MapManager::func_ov00_02083938(s32 param_2) {} +unk8 MapManager::Set_MapData_Unk_16(unk8 value, unk32 index) {} +void MapManager::func_ov00_02083958(s32 param_2) {} +void MapManager::func_ov00_02083968(u32 param_2, unk8 *param_3) {} +bool MapManager::func_ov00_02083978(unk32 param_2, Vec3p *param_3) {} +bool MapManager::func_ov00_020839b4(s32 param_2) {} +bool MapManager::func_ov00_020839c4(s32 param_2) {} +unk8 MapManager::func_ov00_020839d4() {} +unk8 MapManager::func_ov00_020839f8() {} +void MapManager::func_ov00_02083a1c(unk32 param_1, MapManager *param_2, Vec3p *param_3) {} +unk8 MapManager::func_ov00_02083a54(unk32 param_1, MapManager *param_2, unk32 param_3, unk32 param_4, unk32 param_5) {} +unk8 MapManager::func_ov00_02083b84() {} +unk8 MapManager::func_ov00_02083bac() {} +unk8 MapManager::func_ov00_02083bd4() {} +unk8 MapManager::func_ov00_02083bfc() {} +unk8 MapManager::func_ov00_02083c24(unk32 param_2) {} +unk8 MapManager::func_ov00_02083c50(unk32 param_2) {} +unk8 MapManager::func_ov00_02083c7c(Vec3p *param_2, unk32 param_3) {} +unk8 MapManager::func_ov00_02083ce8(unk8 param_1, unk8 param_2, unk8 param_3, unk8 param_4, unk32 param_5) {} +unk8 MapManager::func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4) {} +unk8 MapManager::MapData_vfunc_60() {} +unk8 MapManager::func_ov00_02083e70() {} +unk8 MapManager::MapData_vfunc_68() {} +void MapManager::func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3) {} +void MapManager::func_ov00_02083f44(Vec3p *param_2) {} +unk8 MapManager::MapData_vfunc_6c() {} +unk8 MapManager::MapData_vfunc_70() {} +unk8 MapManager::func_ov00_02083fb0(unk32 param_1, MapManager *param_2, unk32 param_3) {} +void MapManager::func_ov00_02084024(unk32 param_2, AABB *param_3) {} +unk8 MapManager::MapData_vfunc_54() {} +unk8 MapManager::func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4) {} +unk8 MapManager::MapData_vfunc_78() {} +unk8 MapManager::func_ov00_020840dc() {} +unk8 MapManager::func_ov00_02084100(unk32 param_1, MapManager *param_2) {} +unk8 MapManager::GetMapData_Unk_48() {} +unk8 MapManager::GetMapData_Unk_4c() {} +unk32 MapManager::func_ov00_0208412c() {} +void MapManager::func_ov00_0208413c(unk32 param_2) {} +unk8 MapManager::MapData_vfunc_58() {} +unk8 MapManager::func_ov00_02084164() {} +unk8 MapManager::GetMapData_Unk_0a() {} +unk8 MapManager::GetMapData_Unk_0b() {} +unk8 MapManager::MapData_vfunc_a4() {} +unk8 MapManager::func_ov00_0208433c(Vec3p *param_2, unk32 param_3) {} +unk8 MapManager::func_ov00_0208439c() {} +void MapManager::func_ov00_020843ec(s32 *param_2) {} +unk8 MapManager::GetMapData_Unk_38() {} +unk8 MapManager::func_ov00_020846a4() {} +unk8 MapManager::func_ov00_02084700() {} +unk8 MapManager::func_ov00_02084740() {} +unk8 MapManager::func_ov00_020847e0() {} +unk8 MapManager::func_ov00_020847f0() {} +bool MapManager::func_ov00_02084838() {} +bool MapManager::func_ov00_020848b8() {} +void MapManager::func_ov00_02084924(u32 param_2) {} +unk8 MapManager::func_ov00_02084934() {} +unk8 MapManager::GetMapData_Unk_06() {} +unk8 MapManager::GetMapData_Unk_07() {} +unk8 MapManager::func_ov00_0208499c() {} +unk8 MapManager::func_ov00_020849c0() {} +unk8 MapManager::func_ov00_020849dc() {} +bool MapManager::func_ov00_020849f8(unk32 param_1) {} +unk8 MapManager::func_ov00_02084a50() {} +void MapManager::SpawnNPC(Vec3p *param_2, unk32 param_3, unk32 param_4) {} +bool MapManager::func_ov00_02084ac4(u32 actorId) {} +unk8 MapManager::SetNumKeys(unk32 keys) {} +unk8 MapManager::GetNumKeys() {} +unk8 MapManager::SetCourseData_Unk_25c(unk8 param_2) {} +unk8 MapManager::GetCourseData_Unk_25d() {} +unk8 MapManager::func_ov00_02084b38(unk32 param_2, unk32 param_3, unk32 param_4) {} +bool MapManager::func_ov00_02084be0(unk32 param_2, unk32 param_3) {} +void MapManager::func_ov00_02084c5c(unk32 param_2, unk32 param_3) {} +bool MapManager::func_ov00_02084c6c(unk32 param_2) {} +unk8 MapManager::func_ov00_02084c7c(unk32 param_2) {} +unk8 MapManager::func_ov00_02084c94(unk32 param_2) {} +unk8 MapManager::func_ov00_02084cb0(unk32 param_2) {} +unk8 MapManager::func_ov00_02084cc8(unk32 param_2) {} +unk8 MapManager::func_ov00_02084ce4(unk32 param_2) {} +unk8 MapManager::func_ov00_02084cfc(unk32 param_2) {} +unk8 MapManager::GetMapData_Unk_09() {} +unk8 MapManager::func_ov00_02084d24(unk8 param_2, unk8 param_3, unk32 param_4) {} +s32 MapManager::func_ov00_02084d4c(unk32 param_2, unk32 param_3, Vec3p *param_4) {} +unk8 MapManager::func_ov00_02084ebc(unk32 param_2) {} +s32 MapManager::func_ov00_02085108(s32 *param_2) {} +unk8 MapManager::func_ov00_0208527c() {} +unk8 MapManager::func_ov00_020853fc() {} +unk8 MapManager::func_ov00_02085594() {} +void MapManager::func_ov00_0208583c(unk32 param_1, Vec3p *param_2, unk32 param_3) {} +unk8 MapManager::func_ov00_020858b0() {} +s32 MapManager::func_ov00_02085a34(unk32 param_2, unk32 param_3) {} +unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5) {} +unk8 MapManager::func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4) {} +bool MapManager::func_ov00_02086284(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, u16 param_6, Vec3p *param_7, Vec3p *param_8) {} +bool MapManager::func_ov00_02086a84(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, s32 param_6, unk32 param_7, Vec3p *param_8, Vec3p *param_9) {} + +#endif diff --git a/src/00_Core/Player/TouchControl.cpp b/src/00_Core/Player/TouchControl.cpp index 6eba289c..df8bbfe0 100644 --- a/src/00_Core/Player/TouchControl.cpp +++ b/src/00_Core/Player/TouchControl.cpp @@ -10,5 +10,6 @@ void TouchControl::Update(TouchState *state, u16 speed) {} bool TouchControl::func_ov00_0207aeac() {} void TouchControl::UpdateConditionally(TouchState *state, u16 speed) {} void TouchControl::func_ov00_0207af38(u16 speed, bool param2) {} +TouchControl::~TouchControl() {} #endif diff --git a/tools/.gitignore b/tools/.gitignore index 04555228..a013c9f3 100644 --- a/tools/.gitignore +++ b/tools/.gitignore @@ -1,2 +1,3 @@ mwccarm/ temp/ +deps/ diff --git a/tools/elf/.gitignore b/tools/elf/.gitignore new file mode 100644 index 00000000..ea95eb29 --- /dev/null +++ b/tools/elf/.gitignore @@ -0,0 +1,2 @@ +elfkill +elfkill.exe diff --git a/tools/elf/Makefile b/tools/elf/Makefile new file mode 100644 index 00000000..16cfdfca --- /dev/null +++ b/tools/elf/Makefile @@ -0,0 +1,22 @@ +CXX := g++ +CFLAGS := -std=c++17 -g -Wall -I../include -I../deps/elfio + +ifneq ($(DEBUG),1) + CFLAGS += -O2 -DNDEBUG +endif + +ifeq ($(OS),Windows_NT) + ELFKILLFILE := elfkill.exe +else + ELFKILLFILE := elfkill +endif + +.PHONY: all clean + +all: $(ELFKILLFILE) + +clean: + rm -f $(ELFKILLFILE) + +$(ELFKILLFILE): elfkill.cpp + $(CXX) $(CFLAGS) -o $(ELFKILLFILE) elfkill.cpp diff --git a/tools/elf/elfkill.cpp b/tools/elf/elfkill.cpp new file mode 100644 index 00000000..da4d77d1 --- /dev/null +++ b/tools/elf/elfkill.cpp @@ -0,0 +1,293 @@ +#include // cout, cerr, endl +#include // setw +#include // vector +#include // string +#include // unordered_set +#include // strcmp, strncpy +#include // ifstream +#include // remove + +#include +#include + +#define VERSION "1.0" + +using namespace ELFIO; + +struct SymbolSection { + Elf_Half index; + section *elfSection; + std::string name; + + bool Get(const elfio &elf, Elf_Half index) { + this->index = index; + + elfSection = elf.sections[index]; + if (elfSection == nullptr) { + std::cerr << "Failed to get section " << index << std::endl; + return false; + } + + name = elfSection->get_name(); + return true; + } + + bool SetName(const elfio &elf, const std::string &name) { + elfSection->set_name(name); + this->name = name; + + Elf_Word nameIndex = elfSection->get_name_string_offset(); + + section *shstrtab = elf.sections[".shstrtab"]; + if (shstrtab == nullptr) { + std::cerr << "Failed to get string section" << std::endl; + return false; + } + + string_section_accessor strAccessor(shstrtab); + const char *tabStr = strAccessor.get_string(nameIndex); + size_t len = strlen(tabStr); + + if (len < name.length()) { + std::cerr << "Cannot rename section " << tabStr << " because it is shorter than " << name << std::endl; + return false; + } + + // HACK: Strings shorter than `name` can't be renamed due to lack of space + strncpy((char*) tabStr, name.c_str(), len); + return true; + } +}; + +struct Symbol { + Elf_Xword index; + std::string name; + Elf64_Addr value; + Elf_Xword size; + unsigned char bind; + unsigned char type; + SymbolSection section; + unsigned char other; + + bool Get(const elfio &elf, const symbol_section_accessor &accessor, Elf_Xword index) { + this->index = index; + + if (!accessor.get_symbol(index, name, value, size, bind, type, section.index, other)) { + std::cerr << "Failed to get symbol at index " << index << std::endl; + return false; + } + + if (!section.Get(elf, section.index)) { + std::cerr << "...for symbol '" << name << "'" << std::endl; + return false; + } + + return true; + } + + static void PrintHeader() { + std::cout + << std::setw(75) << "name" + << std::setw(6) << "value" + << std::setw(6) << "size" + << std::setw(5) << "bind" + << std::setw(5) << "type" + << std::setw(8) << "section" + << std::setw(12) << "" + << std::setw(6) << "other" + << std::endl; + } + + void Print() const { + std::cout + << std::setw(75) << name + << std::setw(6) << value + << std::setw(6) << size + << std::setw(5) << (int) bind + << std::setw(5) << (int) type + << std::setw(5) << section.index << ' ' + << std::setw(14) << std::left << section.name << std::right + << std::setw(6) << (int) other + << std::endl; + } +}; + +bool GetFunctionSymbols(const elfio &elf, std::vector &outSymbols) { + section *symtab = elf.sections[".symtab"]; + if (symtab == nullptr) { + std::cerr << "No section called .symtab" << std::endl; + return false; + } + + symbol_section_accessor symAccessor(elf, symtab); + std::vector symbols; + for (Elf_Xword i = 0; i < symAccessor.get_symbols_num(); ++i) { + Symbol symbol; + if (!symbol.Get(elf, symAccessor, i)) return false; + + if (symbol.name.find("@", 0) == 0) continue; + if (symbol.name.find("$", 0) == 0) continue; + if (symbol.name.find(".", 0) == 0) continue; + if (symbol.section.name != ".text") continue; + + symbols.push_back(symbol); + } + + outSymbols = symbols; + return true; +} + +bool FindSymbolsToKill(const char *srcFile, std::unordered_set &outSymbolsToKill) { + std::ifstream file(srcFile); + + const std::string killMacro = "KILL("; + std::string line; + size_t row = 0; + std::unordered_set symbolsToKill; + while (std::getline(file, line)) { + row += 1; + size_t endOffset = 0; + while (true) { + size_t macroOffset = line.find(killMacro, endOffset); + if (macroOffset == std::string::npos) break; + + size_t symbolOffset = macroOffset + killMacro.length(); + symbolOffset = line.find_first_not_of(" \t", symbolOffset); + if (symbolOffset == std::string::npos) { + std::cerr + << srcFile << ':' << row << ':' << macroOffset + 1 + << ": Expected non-whitespace character after " << killMacro << std::endl; + return false; + } + + endOffset = line.find_first_of(" \t)", symbolOffset); + if (endOffset == std::string::npos) { + std::cerr + << srcFile << ':' << row << ':' << symbolOffset + 1 + << ": Expected whitespace character or ')' after kill symbol" << std::endl; + return false; + } + + std::string symbolToKill = line.substr(symbolOffset, endOffset - symbolOffset); + symbolsToKill.insert(symbolToKill); + } + } + + file.close(); + outSymbolsToKill = symbolsToKill; + return true; +} + +bool KillFunctionSymbols( + const elfio &elf, + std::vector &symbols, + std::unordered_set &symbolsToKill, + const char *srcFile +) { + for (Symbol &symbol : symbols) { + auto it = symbolsToKill.find(symbol.name); + if (it == symbolsToKill.end()) continue; + + if (!symbol.section.SetName(elf, ".dead")) return false; + symbolsToKill.erase(it); + } + + if (symbolsToKill.empty()) return true; + + std::cerr << srcFile << ": the following functions couldn't be killed because they do not exist:\n"; + for (const std::string &symbolToKill : symbolsToKill) { + std::cerr << " " << symbolToKill << '\n'; + } + std::cerr << std::endl; + return false; +} + +bool DeleteElf(const char *elfFile) { + // Delete ELF file so the Makefile doesn't skip elfkill on next build + if (std::remove(elfFile) == 0) return true; + std::cerr << "Failed to delete ELF '" << elfFile << "' upon previous error" << std::endl; + return false; +} + +void PrintUsage(const char *program) { + std::cout + << "elfkill " VERSION "\n" + << "\n" + << "Usage: " << program << " -s SRCFILE -e ELFFILE\n" + << " -s SRCFILE\tSource C/C++ file\n" + << " -e ELFFILE\tELF file corresponding to SRCFILE\n" + << std::endl; +} + +int main(int argc, const char **argv) { + const char *program = argv[0]; + if (argc == 1) { + PrintUsage(program); + return 0; + } + const char *srcFile = nullptr; + const char *elfFile = nullptr; + for (int i = 1; i < argc; ++i) { + if (strcmp(argv[i], "-s") == 0) { + if (++i >= argc) { + std::cerr << "Expected filename after -s" << std::endl; + return 1; + } + srcFile = argv[i]; + } else if (strcmp(argv[i], "-e") == 0) { + if (++i >= argc) { + std::cerr << "Expected filename after -e" << std::endl; + return 1; + } + elfFile = argv[i]; + } else { + std::cerr << "Unknown option '" << argv[i] << "'" << std::endl; + return 1; + } + } + if (srcFile == nullptr) { + PrintUsage(program); + std::cerr << "Please provide a source file, see usage above" << std::endl; + return 1; + } + if (elfFile == nullptr) { + PrintUsage(program); + std::cerr << "Please provide an ELF file, see usage above" << std::endl; + return 1; + } + + elfio elf; + if (!elf.load(elfFile)) { + std::cerr << "Failed to load ELF file '" << elfFile << "'" << std::endl; + return 1; + } + + std::vector symbols; + if (!GetFunctionSymbols(elf, symbols)) { + DeleteElf(elfFile); + return 1; + } + + // Symbol::PrintHeader(); + // for (const Symbol &symbol : symbols) { + // symbol.Print(); + // } + // return 0; + + std::unordered_set symbolsToKill; + if (!FindSymbolsToKill(srcFile, symbolsToKill)) { + DeleteElf(elfFile); + return 1; + } + if (!KillFunctionSymbols(elf, symbols, symbolsToKill, srcFile)) { + DeleteElf(elfFile); + return 1; + } + + // Symbol::PrintHeader(); + // for (const Symbol &symbol : symbols) { + // symbol.Print(); + // } + + elf.save(elfFile); +} diff --git a/tools/lcf.py b/tools/lcf.py index e0da36bc..69efc7e4 100644 --- a/tools/lcf.py +++ b/tools/lcf.py @@ -13,8 +13,8 @@ def name(path: str): return path.split("/")[-1] ARM9_OBJECTS = [ 'asm/main/main_02000000.s', - 'asm/main/Actor/ActorType.s', 'src/Main/Actor/ActorType.cpp', + 'asm/main/Actor/ActorType.s', 'asm/main/main_0203e8a0.s', @@ -37,7 +37,19 @@ ov00 = Overlay(name='ov00', after='ARM9', objects=[ 'src/00_Core/Player/TouchControl.cpp', 'asm/ov00/Player/TouchControl.s', - 'asm/ov00/ov00_0207af9c.s', + 'asm/ov00/ov00_0207afa0.s', + + 'asm/ov00/Map/Course.s', + 'src/00_Core/Map/Course.cpp', + 'asm/ov00/Map/MapBase.s', + 'src/00_Core/Map/MapBase.cpp', + + 'asm/ov00/ov00_0207da38.s', + + 'asm/ov00/Map/MapManager.s', + 'src/00_Core/Map/MapManager.cpp', + + 'asm/ov00/ov00_02086cd0.s', 'src/00_Core/Save/AdventureFlags.cpp', 'asm/ov00/Save/AdventureFlags.s', @@ -66,7 +78,6 @@ ov00 = Overlay(name='ov00', after='ARM9', objects=[ 'src/00_Core/Item/Item.cpp', 'asm/ov00/Item/Item.s', 'src/00_Core/Item/ItemManager.cpp', - 'asm/ov00/Item/ItemManager.s', 'src/00_Core/Player/LinkStateRoll.cpp', 'asm/ov00/Player/LinkStateRoll.s', 'src/00_Core/Player/PlayerControl.cpp', @@ -74,13 +85,13 @@ ov00 = Overlay(name='ov00', after='ARM9', objects=[ 'asm/ov00/ov00_020b1498.s', - 'asm/ov00/Actor/Actor.s', 'src/00_Core/Actor/Actor.cpp', + 'asm/ov00/Actor/Actor.s', 'asm/ov00/ov00_020c3348.s', - 'asm/ov00/Actor/ActorManager.s', 'src/00_Core/Actor/ActorManager.cpp', + 'asm/ov00/Actor/ActorManager.s', 'asm/ov00/ov00_020c3e54.s', ]) diff --git a/tools/m2ctx.py b/tools/m2ctx.py index 71562c0a..1ddb71d7 100755 --- a/tools/m2ctx.py +++ b/tools/m2ctx.py @@ -5,73 +5,39 @@ import pyperclip import subprocess import os from pathlib import Path +import argparse + +parser = argparse.ArgumentParser(description="Generates a context for decomp.me") +parser.add_argument('file', help="Input file to preprocess") +parser.add_argument('-f', type=str, dest='out_file', required=False, help='Output context file') +parser.add_argument('-c', action=argparse.BooleanOptionalAction, dest='clipboard', required=False, help='Copy output to clipboard') +parser.add_argument('-e', type=str, dest='encoding', required=False, default="Shift-JIS", help='Input file encoding') +parser.add_argument('-v', action=argparse.BooleanOptionalAction, dest='verbose', required=False, help='Verbose error output') +args = parser.parse_args() CXX_FLAGS = [ '-nostdinc', '-Iinclude', - '-Ilibs/c/include' + '-Ilibs/c/include', + '-Ilibs/cpp/include' ] script_dir = Path(os.path.dirname(os.path.realpath(__file__))) root_dir = script_dir / ".." -program = os.path.basename(sys.argv[0]) - def eprint(*args, **kwargs): print(*args, file=sys.stderr, **kwargs) -def print_usage(): - eprint(f"Usage: {program} INFILE [-f OUTFILE] [-c] [-e ENCODING] [-v]") - eprint(" INFILE \tInput file to preprocess") - eprint(" -f OUTFILE \tOutput context file") - eprint(" -c \tCopy output to clipboard") - eprint(" -e ENCODING\tInput file encoding (Default: Shift-JIS)") - eprint(" -v \tVerbose error output") - -if len(sys.argv) == 1: - print_usage() - exit(1) - - -in_file = None -out_file = None -clipboard = False -encoding = "Shift-JIS" -verbose = False -i = 1 -while i < len(sys.argv): - arg = sys.argv[i] - if arg == "-f": - i += 1 - if i >= len(sys.argv): - eprint("Expected output file after -f") - exit(1) - out_file = sys.argv[i] - elif arg == "-c": - clipboard = True - elif arg == "-e": - i += 1 - if i >= len(sys.argv): - eprint("Expected input file encoding after -e") - exit(1) - encoding = sys.argv[i] - elif arg == "-v": - verbose = True - elif arg.startswith("-"): - eprint(f"Unknown option '{arg}'") - elif in_file is None: - in_file = arg - else: - eprint(f"Duplicate input file '{arg}'") - exit(1) - i += 1 - - try: - ctx: str = subprocess.check_output(['gcc', '-E', '-P', '-undef', '-dD', *CXX_FLAGS, in_file], cwd=root_dir, encoding=encoding) + ctx: str = subprocess.check_output([ + 'gcc', + '-E', '-P', '-fworking-directory', '-undef', '-dD', + *CXX_FLAGS, + args.file + ], cwd=root_dir, encoding=args.encoding) except subprocess.CalledProcessError as e: - eprint(f"Failed to preprocess '{in_file}'") - if verbose: eprint(e) + eprint(f"Failed to preprocess '{args.file}'") + if args.verbose: eprint(e) else: eprint("Use -v for more verbose error output") exit(1) @@ -85,17 +51,17 @@ for i in reversed(range(len(lines))): ctx = ''.join(lines) -if out_file: +if args.out_file: try: - with open(out_file, "w") as file: + with open(args.out_file, "w") as file: file.write(ctx) except OSError as e: - eprint(f"Failed to write file '{out_file}'") - if verbose: eprint(e) + eprint(f"Failed to write file '{args.out_file}'") + if args.verbose: eprint(e) else: eprint("Use -v for more verbose error output") exit(1) -if clipboard: +if args.clipboard: pyperclip.copy(ctx) eprint("Copied context to clipboard") -if out_file is None and not clipboard: +if args.out_file is None and not args.clipboard: print(ctx) diff --git a/tools/mangle.py b/tools/mangle.py index 50bf9538..a9bfcadf 100644 --- a/tools/mangle.py +++ b/tools/mangle.py @@ -12,6 +12,9 @@ tools_dir = Path(os.path.dirname(os.path.realpath(__file__))) cc_path = tools_dir / 'mwccarm' / '2.0' / 'sp1p5' / 'mwccarm.exe' root_dir = tools_dir.parent include_dir = root_dir / 'include' +libs_dir = root_dir / 'libs' +libc_include_dir = libs_dir / 'c' / 'include' +libcpp_include_dir = libs_dir / 'cpp' / 'include' if platform.system() == 'Windows': cc = [str(cc_path)] else: cc = ['wine', str(cc_path)] @@ -19,13 +22,22 @@ else: cc = ['wine', str(cc_path)] args = parser.parse_args() cc.extend([ - '-nolink', - '-proc', 'arm946e', - '-interworking', + '-enum', 'int', '-char', 'signed', + '-proc', 'arm946e', + '-gccext,on', + '-fp', 'soft', + '-inline', 'on,noauto', + '-Cpp_exceptions', 'off', + '-RTTI', 'off', + '-interworking', + '-nolink', '-msgstyle', 'gcc', '-dis', - f'-I{include_dir}', + '-gccinc', + '-i', include_dir, + '-i', libc_include_dir, + '-i', libcpp_include_dir, '-DSTUBS', args.file ]) diff --git a/tools/setup.py b/tools/setup.py index d3f420bf..e4433ca8 100644 --- a/tools/setup.py +++ b/tools/setup.py @@ -4,8 +4,11 @@ import io from pathlib import Path import subprocess import sys +import shutil tools_path = Path(__file__).parent +deps_path = tools_path / 'deps' +if not deps_path.exists(): deps_path.mkdir() print('\nInstalling toolchain...') response = requests.get('http://decomp.aetias.com/mwccarm.zip') @@ -14,3 +17,12 @@ zip_file.extractall(tools_path) print('\nPatching...') subprocess.run([sys.executable, 'patch_mwcc.py', 'mwccarm/2.0/sp1p5/mwasmarm.exe'], cwd=tools_path) + +print('\nInstalling ELFIO...') +response = requests.get('https://github.com/serge1/ELFIO/releases/download/Release_3.12/elfio-3.12.zip') +zip_file = zipfile.ZipFile(io.BytesIO(response.content)) +zip_file.extractall(deps_path) +elfio_path = deps_path / 'elfio-3.12' +elfio_new_path = deps_path / 'elfio' +if elfio_new_path.exists(): shutil.rmtree(elfio_new_path) +elfio_path.rename(elfio_new_path)