summaryrefslogtreecommitdiff
path: root/arm9/modules/05/asm/mod05_021E3340.s
blob: 5aeaf2cc9a26d1728efc84c3d5da82c2655820c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
	.include "asm/macros.inc"
	.include "global.inc"
	.section .text
	.balign 4, 0

	thumb_func_start MOD05_021E3340
MOD05_021E3340: ; 0x021E3340
	push {r3, r4, r5, r6, lr}
	sub sp, #4
	add r4, r0, #0
	bl FUN_02046528
	add r5, r0, #0
	add r0, r4, #0
	bl FUN_0204652C
	add r4, r0, #0
	ldr r0, [r4]
	cmp r0, #4
	bhi _021E3414
	add r0, r0, r0
	add r0, pc
	ldrh r0, [r0, #6]
	lsl r0, r0, #0x10
	asr r0, r0, #0x10
	add pc, r0
_021E3366: ; jump table
	.short _021E3370 - _021E3366 - 2 ; case 0
	.short _021E3388 - _021E3366 - 2 ; case 1
	.short _021E33A0 - _021E3366 - 2 ; case 2
	.short _021E33E4 - _021E3366 - 2 ; case 3
	.short _021E33FE - _021E3366 - 2 ; case 4
_021E3370:
	mov r0, #2
	add r1, r0, #0
	str r0, [sp]
	sub r1, #0x12
	mov r2, #0
	mov r3, #0x3f
	bl StartBrightnessTransition
	ldr r0, [r4]
	add r0, r0, #1
	str r0, [r4]
	b _021E3414
_021E3388:
	mov r0, #2
	bl IsBrightnessTransitionActive
	cmp r0, #0
	beq _021E3414
	ldr r0, [r5, #8]
	bl MOD19_022524F4
	ldr r0, [r4]
	add r0, r0, #1
	str r0, [r4]
	b _021E3414
_021E33A0:
	ldr r0, [r5, #8]
	bl MOD19_02252504
	cmp r0, #0
	beq _021E3414
	ldr r0, [r5, #0xc]
	bl Sav2_Poketch_get
	add r6, r0, #0
	ldr r0, _021E341C ; =SDK_OVERLAY_MODULE_19_ID
	bl UnloadOverlayByID
	ldr r0, _021E3420 ; =SDK_OVERLAY_MODULE_20_ID
	mov r1, #2
	bl HandleLoadOverlay
	add r0, r6, #0
	bl Sav2_Poketch_Give
	mov r0, #1
	bl GetOamManager
	str r0, [sp]
	ldr r1, [r5, #4]
	ldr r2, [r5, #0xc]
	ldr r3, [r5, #8]
	add r0, r5, #0
	add r1, #0x14
	bl MOD20_02252448
	ldr r0, [r4]
	add r0, r0, #1
	str r0, [r4]
	b _021E3414
_021E33E4:
	mov r1, #0
	mov r0, #2
	add r2, r1, #0
	str r0, [sp]
	mov r0, #4
	sub r2, #0x10
	mov r3, #0x3f
	bl StartBrightnessTransition
	ldr r0, [r4]
	add r0, r0, #1
	str r0, [r4]
	b _021E3414
_021E33FE:
	mov r0, #2
	bl IsBrightnessTransitionActive
	cmp r0, #0
	beq _021E3414
	add r0, r4, #0
	bl FreeToHeap
	add sp, #4
	mov r0, #1
	pop {r3, r4, r5, r6, pc}
_021E3414:
	mov r0, #0
	add sp, #4
	pop {r3, r4, r5, r6, pc}
	nop
_021E341C: .word SDK_OVERLAY_MODULE_19_ID
_021E3420: .word SDK_OVERLAY_MODULE_20_ID

	thumb_func_start MOD05_021E3424
MOD05_021E3424: ; 0x021E3424
	push {r4, lr}
	add r4, r0, #0
	mov r0, #0xb
	mov r1, #4
	bl AllocFromHeapAtEnd
	add r2, r0, #0
	mov r0, #0
	str r0, [r2]
	ldr r1, _021E3440 ; =MOD05_021E3340
	add r0, r4, #0
	bl FUN_0204640C
	pop {r4, pc}
	.balign 4, 0
_021E3440: .word MOD05_021E3340