decompiled up to sub_81C13B0
This commit is contained in:
@@ -5,481 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_81C1070
|
|
||||||
sub_81C1070: @ 81C1070
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
adds r7, r0, 0
|
|
||||||
adds r4, r1, 0
|
|
||||||
mov r8, r2
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
mov r0, r8
|
|
||||||
ldrb r6, [r0]
|
|
||||||
movs r2, 0
|
|
||||||
lsls r4, 24
|
|
||||||
asrs r4, 24
|
|
||||||
mov r12, r4
|
|
||||||
movs r1, 0
|
|
||||||
ldrsh r4, [r7, r1]
|
|
||||||
ldrb r0, [r7]
|
|
||||||
lsls r3, r0, 24
|
|
||||||
_081C109C:
|
|
||||||
lsls r0, r6, 24
|
|
||||||
asrs r0, 24
|
|
||||||
add r0, r12
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
asrs r0, 24
|
|
||||||
cmp r0, r4
|
|
||||||
ble _081C10B0
|
|
||||||
movs r6, 0
|
|
||||||
b _081C10B6
|
|
||||||
_081C10B0:
|
|
||||||
cmp r0, 0
|
|
||||||
bge _081C10B6
|
|
||||||
lsrs r6, r3, 24
|
|
||||||
_081C10B6:
|
|
||||||
lsls r0, r6, 24
|
|
||||||
asrs r1, r0, 24
|
|
||||||
mov r9, r0
|
|
||||||
cmp r1, 0x4
|
|
||||||
bne _081C10C2
|
|
||||||
b _081C11CC
|
|
||||||
_081C10C2:
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r0]
|
|
||||||
lsls r1, 1
|
|
||||||
adds r0, 0x84
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r5, [r0]
|
|
||||||
cmp r5, 0
|
|
||||||
bne _081C10E2
|
|
||||||
lsls r0, r2, 24
|
|
||||||
movs r1, 0x80
|
|
||||||
lsls r1, 17
|
|
||||||
adds r0, r1
|
|
||||||
lsrs r2, r0, 24
|
|
||||||
asrs r0, 24
|
|
||||||
cmp r0, 0x3
|
|
||||||
ble _081C109C
|
|
||||||
_081C10E2:
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl sub_81C240C
|
|
||||||
movs r0, 0x1
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
movs r0, 0x2
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl sub_81C3E9C
|
|
||||||
mov r1, r8
|
|
||||||
ldrb r0, [r1]
|
|
||||||
cmp r0, 0x4
|
|
||||||
bne _081C1110
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, =0x000040c4
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C1118
|
|
||||||
_081C1110:
|
|
||||||
movs r1, 0x2
|
|
||||||
ldrsh r0, [r7, r1]
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _081C115E
|
|
||||||
_081C1118:
|
|
||||||
movs r0, 0x13
|
|
||||||
bl ClearWindowTilemap
|
|
||||||
ldr r2, =gSprites
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, =0x000040d5
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r1, [r0]
|
|
||||||
lsls r0, r1, 4
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
adds r0, 0x3E
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 29
|
|
||||||
cmp r0, 0
|
|
||||||
blt _081C1142
|
|
||||||
movs r0, 0xD
|
|
||||||
bl ClearWindowTilemap
|
|
||||||
_081C1142:
|
|
||||||
movs r0, 0
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
movs r4, 0x3
|
|
||||||
negs r4, r4
|
|
||||||
movs r0, 0x9
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl sub_81C1DA4
|
|
||||||
movs r0, 0x9
|
|
||||||
adds r1, r4, 0
|
|
||||||
adds r2, r5, 0
|
|
||||||
bl sub_81C1EFC
|
|
||||||
_081C115E:
|
|
||||||
mov r1, r8
|
|
||||||
ldrb r0, [r1]
|
|
||||||
cmp r0, 0x4
|
|
||||||
beq _081C11A0
|
|
||||||
mov r1, r9
|
|
||||||
asrs r0, r1, 24
|
|
||||||
cmp r0, 0x4
|
|
||||||
bne _081C11A0
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, =0x000040c4
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _081C11A0
|
|
||||||
movs r0, 0xE
|
|
||||||
bl ClearWindowTilemap
|
|
||||||
movs r0, 0xF
|
|
||||||
bl ClearWindowTilemap
|
|
||||||
movs r0, 0
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x3
|
|
||||||
bl sub_81C1DA4
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x3
|
|
||||||
movs r2, 0
|
|
||||||
bl sub_81C1EFC
|
|
||||||
_081C11A0:
|
|
||||||
mov r0, r8
|
|
||||||
strb r6, [r0]
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, =0x000040c6
|
|
||||||
adds r0, r1
|
|
||||||
cmp r8, r0
|
|
||||||
bne _081C11E0
|
|
||||||
movs r0, 0x8
|
|
||||||
bl sub_81C4D18
|
|
||||||
b _081C11E6
|
|
||||||
.pool
|
|
||||||
_081C11CC:
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, =0x000040c4
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r5, [r0]
|
|
||||||
b _081C10E2
|
|
||||||
.pool
|
|
||||||
_081C11E0:
|
|
||||||
movs r0, 0x12
|
|
||||||
bl sub_81C4D18
|
|
||||||
_081C11E6:
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_81C1070
|
|
||||||
|
|
||||||
thumb_func_start sub_81C11F4
|
|
||||||
sub_81C11F4: @ 81C11F4
|
|
||||||
push {r4,r5,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r5, r0, 24
|
|
||||||
movs r0, 0x8
|
|
||||||
bl sub_81C4C60
|
|
||||||
movs r0, 0x6
|
|
||||||
bl ClearWindowTilemap
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PutWindowTilemap
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_81C3E9C
|
|
||||||
ldr r4, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r1, =0x000020bc
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x3
|
|
||||||
movs r2, 0x1
|
|
||||||
bl sub_81C2194
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r1, =0x000030bc
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x1
|
|
||||||
movs r2, 0x1
|
|
||||||
bl sub_81C2194
|
|
||||||
bl sub_81C4064
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r1, =0x000040c6
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x4
|
|
||||||
beq _081C125E
|
|
||||||
movs r0, 0xE
|
|
||||||
bl ClearWindowTilemap
|
|
||||||
movs r0, 0xF
|
|
||||||
bl ClearWindowTilemap
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x3
|
|
||||||
bl sub_81C1DA4
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x3
|
|
||||||
movs r2, 0
|
|
||||||
bl sub_81C1EFC
|
|
||||||
_081C125E:
|
|
||||||
movs r0, 0
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
movs r0, 0x1
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
movs r0, 0x2
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
ldr r0, =gTasks
|
|
||||||
lsls r1, r5, 2
|
|
||||||
adds r1, r5
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, =sub_81C0510
|
|
||||||
str r0, [r1]
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_81C11F4
|
|
||||||
|
|
||||||
thumb_func_start sub_81C129C
|
|
||||||
sub_81C129C: @ 81C129C
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r2, =0x000040c6
|
|
||||||
adds r1, r0, r2
|
|
||||||
ldrb r1, [r1]
|
|
||||||
adds r2, 0x1
|
|
||||||
adds r0, r2
|
|
||||||
strb r1, [r0]
|
|
||||||
movs r0, 0x1
|
|
||||||
bl sub_81C4C84
|
|
||||||
movs r0, 0x12
|
|
||||||
bl sub_81C4AF8
|
|
||||||
ldr r1, =gTasks
|
|
||||||
lsls r0, r4, 2
|
|
||||||
adds r0, r4
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, =sub_81C12E4
|
|
||||||
str r1, [r0]
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_81C129C
|
|
||||||
|
|
||||||
thumb_func_start sub_81C12E4
|
|
||||||
sub_81C12E4: @ 81C12E4
|
|
||||||
push {r4-r6,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r5, r0, 24
|
|
||||||
adds r6, r5, 0
|
|
||||||
lsls r0, r5, 2
|
|
||||||
adds r0, r5
|
|
||||||
lsls r0, 3
|
|
||||||
ldr r1, =gTasks + 0x8
|
|
||||||
adds r4, r0, r1
|
|
||||||
bl sub_81221EC
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _081C13AA
|
|
||||||
ldr r0, =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x40
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C1338
|
|
||||||
movs r0, 0x3
|
|
||||||
strh r0, [r4]
|
|
||||||
movs r1, 0x1
|
|
||||||
negs r1, r1
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r2, [r0]
|
|
||||||
ldr r0, =0x000040c7
|
|
||||||
adds r2, r0
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_81C1070
|
|
||||||
b _081C13AA
|
|
||||||
.pool
|
|
||||||
_081C1338:
|
|
||||||
movs r0, 0x80
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C1360
|
|
||||||
movs r0, 0x3
|
|
||||||
strh r0, [r4]
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r2, [r0]
|
|
||||||
ldr r0, =0x000040c7
|
|
||||||
adds r2, r0
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x1
|
|
||||||
bl sub_81C1070
|
|
||||||
b _081C13AA
|
|
||||||
.pool
|
|
||||||
_081C1360:
|
|
||||||
movs r0, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C139A
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r2, =0x000040c6
|
|
||||||
adds r1, r0, r2
|
|
||||||
adds r2, 0x1
|
|
||||||
adds r0, r2
|
|
||||||
ldrb r1, [r1]
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r1, r0
|
|
||||||
bne _081C1390
|
|
||||||
adds r0, r5, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_81C13B0
|
|
||||||
b _081C13AA
|
|
||||||
.pool
|
|
||||||
_081C1390:
|
|
||||||
adds r0, r5, 0
|
|
||||||
movs r1, 0x1
|
|
||||||
bl sub_81C13B0
|
|
||||||
b _081C13AA
|
|
||||||
_081C139A:
|
|
||||||
movs r0, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C13AA
|
|
||||||
adds r0, r6, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_81C13B0
|
|
||||||
_081C13AA:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_81C12E4
|
|
||||||
|
|
||||||
thumb_func_start sub_81C13B0
|
|
||||||
sub_81C13B0: @ 81C13B0
|
|
||||||
push {r4-r7,lr}
|
|
||||||
adds r4, r1, 0
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r7, r0, 24
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_81C4C84
|
|
||||||
movs r0, 0x12
|
|
||||||
bl sub_81C4C60
|
|
||||||
cmp r4, 0x1
|
|
||||||
bne _081C1464
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r3, [r0]
|
|
||||||
ldr r1, =0x000040bd
|
|
||||||
adds r0, r3, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _081C1410
|
|
||||||
ldr r0, [r3]
|
|
||||||
ldr r2, =0x000040be
|
|
||||||
adds r1, r3, r2
|
|
||||||
ldrb r2, [r1]
|
|
||||||
movs r1, 0x64
|
|
||||||
muls r1, r2
|
|
||||||
adds r0, r1
|
|
||||||
ldr r4, =0x000040c6
|
|
||||||
adds r1, r3, r4
|
|
||||||
ldrb r1, [r1]
|
|
||||||
adds r4, 0x1
|
|
||||||
adds r2, r3, r4
|
|
||||||
ldrb r2, [r2]
|
|
||||||
bl sub_81C14BC
|
|
||||||
b _081C1430
|
|
||||||
.pool
|
|
||||||
_081C1410:
|
|
||||||
ldr r0, [r3]
|
|
||||||
ldr r2, =0x000040be
|
|
||||||
adds r1, r3, r2
|
|
||||||
ldrb r2, [r1]
|
|
||||||
lsls r1, r2, 2
|
|
||||||
adds r1, r2
|
|
||||||
lsls r1, 4
|
|
||||||
adds r0, r1
|
|
||||||
ldr r4, =0x000040c6
|
|
||||||
adds r1, r3, r4
|
|
||||||
ldrb r1, [r1]
|
|
||||||
adds r4, 0x1
|
|
||||||
adds r2, r3, r4
|
|
||||||
ldrb r2, [r2]
|
|
||||||
bl sub_81C15EC
|
|
||||||
_081C1430:
|
|
||||||
ldr r5, =gUnknown_0203CF1C
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, 0xC
|
|
||||||
bl sub_81C0098
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldr r6, =0x000040c6
|
|
||||||
adds r0, r1, r6
|
|
||||||
ldrb r0, [r0]
|
|
||||||
ldr r4, =0x000040c7
|
|
||||||
adds r1, r4
|
|
||||||
ldrb r1, [r1]
|
|
||||||
bl sub_81C40A0
|
|
||||||
ldr r1, [r5]
|
|
||||||
adds r0, r1, r6
|
|
||||||
ldrb r0, [r0]
|
|
||||||
adds r1, r4
|
|
||||||
ldrb r1, [r1]
|
|
||||||
bl sub_81C4568
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r4, r0, r4
|
|
||||||
ldrb r1, [r4]
|
|
||||||
adds r0, r6
|
|
||||||
strb r1, [r0]
|
|
||||||
_081C1464:
|
|
||||||
ldr r0, =gUnknown_0203CF1C
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r2, =0x000040c6
|
|
||||||
adds r0, r1, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 1
|
|
||||||
adds r1, 0x84
|
|
||||||
adds r1, r0
|
|
||||||
ldrh r4, [r1]
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_81C3E9C
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_81C240C
|
|
||||||
movs r0, 0x1
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
movs r0, 0x2
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
ldr r1, =gTasks
|
|
||||||
lsls r0, r7, 2
|
|
||||||
adds r0, r7
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, =sub_81C0F44
|
|
||||||
str r1, [r0]
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_81C13B0
|
|
||||||
|
|
||||||
thumb_func_start sub_81C14BC
|
thumb_func_start sub_81C14BC
|
||||||
sub_81C14BC: @ 81C14BC
|
sub_81C14BC: @ 81C14BC
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
|
|||||||
+247
-76
@@ -18,6 +18,7 @@ extern struct BgTemplate gUnknown_0861CBB4;
|
|||||||
extern u8 gUnknown_0203CF20;
|
extern u8 gUnknown_0203CF20;
|
||||||
extern struct MusicPlayerInfo gMPlay_BGM;
|
extern struct MusicPlayerInfo gMPlay_BGM;
|
||||||
extern s8 gUnknown_0861CC1C[];
|
extern s8 gUnknown_0861CC1C[];
|
||||||
|
extern u8 gUnknown_08329D22[];
|
||||||
|
|
||||||
extern void sub_806F2AC(u8 a, u8 b);
|
extern void sub_806F2AC(u8 a, u8 b);
|
||||||
void sub_81C488C(u8 a);
|
void sub_81C488C(u8 a);
|
||||||
@@ -61,7 +62,7 @@ u8 sub_81BFEB0();
|
|||||||
void sub_81C2554();
|
void sub_81C2554();
|
||||||
void sub_81C1BA0();
|
void sub_81C1BA0();
|
||||||
void sub_81C0098(struct Pokemon* a);
|
void sub_81C0098(struct Pokemon* a);
|
||||||
u8 sub_81C00F0(struct Pokemon* a);
|
bool8 sub_81C00F0(struct Pokemon* a);
|
||||||
void sub_81C25E8();
|
void sub_81C25E8();
|
||||||
void sub_81C286C();
|
void sub_81C286C();
|
||||||
void sub_81C2D9C(u8 a);
|
void sub_81C2D9C(u8 a);
|
||||||
@@ -98,7 +99,7 @@ s8 sub_81C09B4(s8 a);
|
|||||||
s8 sub_81C08F8(s8 a);
|
s8 sub_81C08F8(s8 a);
|
||||||
void sub_81C4204(u8 a, u8 b);
|
void sub_81C4204(u8 a, u8 b);
|
||||||
void sub_81C20F0(u8 taskId);
|
void sub_81C20F0(u8 taskId);
|
||||||
u8 sub_81C0A50(struct Pokemon* mon);
|
bool8 sub_81C0A50(struct Pokemon* mon);
|
||||||
void sub_81C49E0();
|
void sub_81C49E0();
|
||||||
void sub_81C0E24();
|
void sub_81C0E24();
|
||||||
void sub_81C2C38();
|
void sub_81C2C38();
|
||||||
@@ -117,24 +118,33 @@ void sub_81C4AF8(u8 a);
|
|||||||
void sub_81C1070(s16* a, s8 b, u8* c);
|
void sub_81C1070(s16* a, s8 b, u8* c);
|
||||||
void sub_81C11F4(u8 a);
|
void sub_81C11F4(u8 a);
|
||||||
void sub_81C129C(u8 a);
|
void sub_81C129C(u8 a);
|
||||||
u8 sub_81C1040();
|
bool8 sub_81C1040();
|
||||||
|
void sub_81C4064();
|
||||||
|
void sub_81C4C60(u8 a);
|
||||||
|
void sub_81C12E4(u8 taskId);
|
||||||
|
void sub_81C4C84(u8 a);
|
||||||
|
void sub_81C13B0(u8 a, u8 b);
|
||||||
|
void sub_81C14BC(struct Pokemon *mon, u8 a, u8 b);
|
||||||
|
void sub_81C15EC(struct BoxPokemon *mon, u8 a, u8 b);
|
||||||
|
void sub_81C40A0(u8 a, u8 b);
|
||||||
|
void sub_81C4568(u8 a, u8 b);
|
||||||
|
|
||||||
void SetBgAttribute(u8 bg, u8 attributeId, u8 value);
|
void SetBgAttribute(u8 bg, u8 attributeId, u8 value);
|
||||||
|
|
||||||
u8 sub_81BFB10();
|
bool8 sub_81BFB10();
|
||||||
u8 sub_81B1250();
|
u8 sub_81B1250();
|
||||||
|
|
||||||
union unkUnion{
|
union unkUnion
|
||||||
|
{
|
||||||
struct Pokemon mons[6];
|
struct Pokemon mons[6];
|
||||||
struct BoxPokemon boxMons[6];
|
struct BoxPokemon boxMons[6];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
u8 sub_80D214C(union unkUnion* a, u8 b, u8 c, u8 d);
|
u8 sub_80D214C(union unkUnion* a, u8 b, u8 c, u8 d);
|
||||||
|
|
||||||
struct pokeSummary{
|
struct pokeSummary
|
||||||
|
{
|
||||||
u16 species; // 0x0
|
u16 species; // 0x0
|
||||||
u16 species2; // 0x2
|
u16 species2; // 0x2
|
||||||
u8 isEgg; // 0x4
|
u8 isEgg; // 0x4
|
||||||
@@ -167,12 +177,13 @@ struct pokeSummary{
|
|||||||
u32 OTID; // 0x48
|
u32 OTID; // 0x48
|
||||||
};
|
};
|
||||||
|
|
||||||
struct unkSummaryStruct{
|
struct unkSummaryStruct
|
||||||
union unkUnion* unk0;
|
{
|
||||||
void* unk4;
|
/*0x00*/ union unkUnion *unk0;
|
||||||
void* unk8;
|
/*0x04*/ void *unk4;
|
||||||
struct Pokemon currentPoke;
|
/*0x08*/ void *unk8;
|
||||||
struct pokeSummary summary;
|
/*0x0C*/ struct Pokemon currentPoke;
|
||||||
|
/*0x70*/ struct pokeSummary summary;
|
||||||
u8 unkTilemap0[0x800];
|
u8 unkTilemap0[0x800];
|
||||||
u8 unkTilemap0_1[0x800];
|
u8 unkTilemap0_1[0x800];
|
||||||
u8 unkTilemap1[0x800];
|
u8 unkTilemap1[0x800];
|
||||||
@@ -189,16 +200,9 @@ struct unkSummaryStruct{
|
|||||||
u8 unk40C1;
|
u8 unk40C1;
|
||||||
u8 unk40C2;
|
u8 unk40C2;
|
||||||
u8 unk40C3;
|
u8 unk40C3;
|
||||||
union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
u16 unk40C4;
|
u16 unk40C4;
|
||||||
u8 unk40C6;
|
u8 unk40C6;
|
||||||
u8 unkfiller3;
|
u8 unk40C7;
|
||||||
} fooFiller;
|
|
||||||
u32 loadThis;
|
|
||||||
} unionThing;
|
|
||||||
u8 unk40C8;
|
u8 unk40C8;
|
||||||
u8 unk40C9;
|
u8 unk40C9;
|
||||||
u8 unk_filler2[0x9];
|
u8 unk_filler2[0x9];
|
||||||
@@ -253,7 +257,7 @@ void sub_81BF8EC(u8 a, void* b, u8 c, u8 d, void* e)
|
|||||||
void sub_81BFA38(void *a, u8 b, u8 c, void *d, u16 e)
|
void sub_81BFA38(void *a, u8 b, u8 c, void *d, u16 e)
|
||||||
{
|
{
|
||||||
sub_81BF8EC(3, a, b, c, d);
|
sub_81BF8EC(3, a, b, c, d);
|
||||||
gUnknown_0203CF1C->unionThing.fooFiller.unk40C4 = e;
|
gUnknown_0203CF1C->unk40C4 = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81BFA80(u8 a, void *b, u8 c, u8 d, void *e)
|
void sub_81BFA80(u8 a, void *b, u8 c, u8 d, void *e)
|
||||||
@@ -282,12 +286,12 @@ void sub_81BFAE4()
|
|||||||
{
|
{
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (sub_81221EC() == 1 || sub_81BFB10() == 1 || sub_81221AC() == 1)
|
if (sub_81221EC() == 1 || sub_81BFB10() == TRUE || sub_81221AC() == 1)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_81BFB10()
|
bool8 sub_81BFB10(void)
|
||||||
{
|
{
|
||||||
switch (gMain.state)
|
switch (gMain.state)
|
||||||
{
|
{
|
||||||
@@ -409,9 +413,9 @@ u8 sub_81BFB10()
|
|||||||
default:
|
default:
|
||||||
SetVBlankCallback(sub_81BFAD0);
|
SetVBlankCallback(sub_81BFAD0);
|
||||||
SetMainCallback2(sub_81BFAB4);
|
SetMainCallback2(sub_81BFAB4);
|
||||||
return 1;
|
return TRUE;
|
||||||
}
|
}
|
||||||
return 0;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81BFE24()
|
void sub_81BFE24()
|
||||||
@@ -512,13 +516,12 @@ void sub_81C0098(struct Pokemon* poke)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_81C00F0(struct Pokemon* a)
|
bool8 sub_81C00F0(struct Pokemon *a)
|
||||||
{
|
{
|
||||||
u32 i;
|
u32 i;
|
||||||
struct pokeSummary *sum = &gUnknown_0203CF1C->summary;
|
struct pokeSummary *sum = &gUnknown_0203CF1C->summary;
|
||||||
switch (gUnknown_0203CF1C->unk40F0)
|
switch (gUnknown_0203CF1C->unk40F0)
|
||||||
{
|
{
|
||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
sum->species = GetMonData(a, MON_DATA_SPECIES);
|
sum->species = GetMonData(a, MON_DATA_SPECIES);
|
||||||
sum->species2 = GetMonData(a, MON_DATA_SPECIES2);
|
sum->species2 = GetMonData(a, MON_DATA_SPECIES2);
|
||||||
@@ -578,23 +581,22 @@ u8 sub_81C00F0(struct Pokemon* a)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sum->ribbons = GetMonData(a, MON_DATA_RIBBON_COUNT);
|
sum->ribbons = GetMonData(a, MON_DATA_RIBBON_COUNT);
|
||||||
return 1;
|
return TRUE;
|
||||||
}
|
}
|
||||||
gUnknown_0203CF1C->unk40F0++;
|
gUnknown_0203CF1C->unk40F0++;
|
||||||
return 0;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81C0348()
|
void sub_81C0348(void)
|
||||||
{
|
{
|
||||||
u8 a = gUnknown_0203CF1C->unk40C0 - 2;
|
if (gUnknown_0203CF1C->unk40C0 != 2 && gUnknown_0203CF1C->unk40C0 != 3)
|
||||||
if (a > 1)
|
|
||||||
{
|
{
|
||||||
sub_81C1DA4(0, 255);
|
sub_81C1DA4(0, 255);
|
||||||
sub_81C1EFC(0, 255, 0);
|
sub_81C1EFC(0, 255, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_81C240C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unionThing.fooFiller.unk40C6]);
|
sub_81C240C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]);
|
||||||
sub_81C2194(&gUnknown_0203CF1C->unkTilemap2, 3, 0);
|
sub_81C2194(&gUnknown_0203CF1C->unkTilemap2, 3, 0);
|
||||||
sub_81C2194(&gUnknown_0203CF1C->unkTilemap3, 1, 0);
|
sub_81C2194(&gUnknown_0203CF1C->unkTilemap3, 1, 0);
|
||||||
SetBgTilemapBuffer(1, &gUnknown_0203CF1C->unkTilemap3);
|
SetBgTilemapBuffer(1, &gUnknown_0203CF1C->unkTilemap3);
|
||||||
@@ -604,11 +606,12 @@ void sub_81C0348()
|
|||||||
ClearWindowTilemap(0xD);
|
ClearWindowTilemap(0xD);
|
||||||
}
|
}
|
||||||
if (gUnknown_0203CF1C->summary.unk7 == 0)
|
if (gUnknown_0203CF1C->summary.unk7 == 0)
|
||||||
|
{
|
||||||
sub_81C2074(0, 0xFF);
|
sub_81C2074(0, 0xFF);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
u8 b = gUnknown_0203CF1C->unk40C0 - 2;
|
if (gUnknown_0203CF1C->unk40C0 != 2 && gUnknown_0203CF1C->unk40C0 != 3)
|
||||||
if (b > 1)
|
|
||||||
PutWindowTilemap(0xD);
|
PutWindowTilemap(0xD);
|
||||||
}
|
}
|
||||||
sub_81C2524();
|
sub_81C2524();
|
||||||
@@ -629,7 +632,7 @@ void sub_81C044C(u8 taskId)
|
|||||||
|
|
||||||
void sub_81C0484(u8 taskId)
|
void sub_81C0484(u8 taskId)
|
||||||
{
|
{
|
||||||
if (sub_81221EC() != 1 && gPaletteFade.active == 0)
|
if (sub_81221EC() != 1 && !gPaletteFade.active)
|
||||||
{
|
{
|
||||||
SetMainCallback2(gUnknown_0203CF1C->unk4);
|
SetMainCallback2(gUnknown_0203CF1C->unk4);
|
||||||
gUnknown_0203CF20 = gUnknown_0203CF1C->unk40BE;
|
gUnknown_0203CF20 = gUnknown_0203CF1C->unk40BE;
|
||||||
@@ -647,18 +650,24 @@ void sub_81C0484(u8 taskId)
|
|||||||
|
|
||||||
void sub_81C0510(u8 taskId)
|
void sub_81C0510(u8 taskId)
|
||||||
{
|
{
|
||||||
if (sub_81221EC() != 1 && gPaletteFade.active == 0)
|
if (sub_81221EC() != 1 && !gPaletteFade.active)
|
||||||
{
|
{
|
||||||
if (gMain.newKeys & DPAD_UP)
|
if (gMain.newKeys & DPAD_UP)
|
||||||
|
{
|
||||||
sub_81C0604(taskId, -1);
|
sub_81C0604(taskId, -1);
|
||||||
|
}
|
||||||
else if (gMain.newKeys & DPAD_DOWN)
|
else if (gMain.newKeys & DPAD_DOWN)
|
||||||
{
|
{
|
||||||
sub_81C0604(taskId, 1);
|
sub_81C0604(taskId, 1);
|
||||||
}
|
}
|
||||||
else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1)
|
else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1)
|
||||||
|
{
|
||||||
sub_81C0A8C(taskId, -1);
|
sub_81C0A8C(taskId, -1);
|
||||||
|
}
|
||||||
else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2)
|
else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2)
|
||||||
|
{
|
||||||
sub_81C0A8C(taskId, 1);
|
sub_81C0A8C(taskId, 1);
|
||||||
|
}
|
||||||
else if (gMain.newKeys & A_BUTTON)
|
else if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
if (gUnknown_0203CF1C->unk40C0 != 1)
|
if (gUnknown_0203CF1C->unk40C0 != 1)
|
||||||
@@ -666,12 +675,12 @@ void sub_81C0510(u8 taskId)
|
|||||||
if (gUnknown_0203CF1C->unk40C0 == 0)
|
if (gUnknown_0203CF1C->unk40C0 == 0)
|
||||||
{
|
{
|
||||||
sub_81C48F0();
|
sub_81C48F0();
|
||||||
PlaySE(5);
|
PlaySE(SE_SELECT);
|
||||||
sub_81C044C(taskId);
|
sub_81C044C(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PlaySE(5);
|
PlaySE(SE_SELECT);
|
||||||
sub_81C0E48(taskId);
|
sub_81C0E48(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -679,7 +688,7 @@ void sub_81C0510(u8 taskId)
|
|||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
sub_81C48F0();
|
sub_81C48F0();
|
||||||
PlaySE(5);
|
PlaySE(SE_SELECT);
|
||||||
sub_81C044C(taskId);
|
sub_81C044C(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -756,7 +765,7 @@ void sub_81C0704(u8 taskId)
|
|||||||
gUnknown_0203CF1C->unk40F0 = 0;
|
gUnknown_0203CF1C->unk40F0 = 0;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (sub_81C00F0(&gUnknown_0203CF1C->currentPoke) == 0)
|
if (sub_81C00F0(&gUnknown_0203CF1C->currentPoke) == FALSE)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
@@ -853,21 +862,19 @@ s8 sub_81C09B4(s8 a)
|
|||||||
if (r5 < 0 || r5 >= 6)
|
if (r5 < 0 || r5 >= 6)
|
||||||
return -1;
|
return -1;
|
||||||
b = c[r5];
|
b = c[r5];
|
||||||
if (sub_81C0A50(&mons[b]) == 1)
|
if (sub_81C0A50(&mons[b]) == TRUE)
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_81C0A50(struct Pokemon* mon)
|
bool8 sub_81C0A50(struct Pokemon* mon)
|
||||||
{
|
{
|
||||||
if (GetMonData(mon, MON_DATA_SPECIES) == 0)
|
if (GetMonData(mon, MON_DATA_SPECIES) == 0)
|
||||||
{
|
return FALSE;
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else if (gUnknown_0203CF1C->unk40BE != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0)
|
else if (gUnknown_0203CF1C->unk40BE != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0)
|
||||||
return 1;
|
return TRUE;
|
||||||
else
|
else
|
||||||
return 0;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81C0A8C(u8 taskId, s8 b)
|
void sub_81C0A8C(u8 taskId, s8 b)
|
||||||
@@ -920,10 +927,8 @@ void sub_81C0B8C(u8 taskId)
|
|||||||
ChangeBgX(data[1], 0x2000, 1);
|
ChangeBgX(data[1], 0x2000, 1);
|
||||||
data[0] += 32;
|
data[0] += 32;
|
||||||
if (data[0] > 0xFF)
|
if (data[0] > 0xFF)
|
||||||
{
|
|
||||||
gTasks[taskId].func = sub_81C0C68;
|
gTasks[taskId].func = sub_81C0C68;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void sub_81C0C68(u8 taskId)
|
void sub_81C0C68(u8 taskId)
|
||||||
{
|
{
|
||||||
@@ -996,8 +1001,8 @@ void sub_81C0E24()
|
|||||||
void sub_81C0E48(u8 taskId)
|
void sub_81C0E48(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 move;
|
u16 move;
|
||||||
gUnknown_0203CF1C->unionThing.fooFiller.unk40C6 = 0;
|
gUnknown_0203CF1C->unk40C6 = 0;
|
||||||
move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unionThing.fooFiller.unk40C6];
|
move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
|
||||||
ClearWindowTilemap(0x13);
|
ClearWindowTilemap(0x13);
|
||||||
if (gSprites[gUnknown_0203CF1C->unk40D5].invisible == 0)
|
if (gSprites[gUnknown_0203CF1C->unk40D5].invisible == 0)
|
||||||
ClearWindowTilemap(0xD);
|
ClearWindowTilemap(0xD);
|
||||||
@@ -1024,32 +1029,36 @@ void sub_81C0F44(u8 taskId)
|
|||||||
{
|
{
|
||||||
u8 id = taskId;
|
u8 id = taskId;
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
|
|
||||||
if (sub_81221EC() != 1)
|
if (sub_81221EC() != 1)
|
||||||
{
|
{
|
||||||
if (gMain.newKeys & DPAD_UP)
|
if (gMain.newKeys & DPAD_UP)
|
||||||
{
|
{
|
||||||
data[0] = 4;
|
data[0] = 4;
|
||||||
sub_81C1070(data, -1, &gUnknown_0203CF1C->unionThing.fooFiller.unk40C6);
|
sub_81C1070(data, -1, &gUnknown_0203CF1C->unk40C6);
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_DOWN)
|
else if (gMain.newKeys & DPAD_DOWN)
|
||||||
{
|
{
|
||||||
data[0] = 4;
|
data[0] = 4;
|
||||||
sub_81C1070(data, 1, &gUnknown_0203CF1C->unionThing.fooFiller.unk40C6);
|
sub_81C1070(data, 1, &gUnknown_0203CF1C->unk40C6);
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & A_BUTTON)
|
else if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
if (gUnknown_0203CF1C->unk40C8 == 1 || ((int)(gUnknown_0203CF1C->unionThing.loadThis & 0xFFFFFF) == 0x40000))
|
if (gUnknown_0203CF1C->unk40C8 == 1
|
||||||
|
|| (gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4))
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_81C11F4(taskId);
|
sub_81C11F4(taskId);
|
||||||
}
|
}
|
||||||
else if (sub_81C1040() == 1)
|
else if (sub_81C1040() == TRUE)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_81C129C(taskId);
|
sub_81C129C(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
PlaySE(0x20);
|
{
|
||||||
|
PlaySE(SE_HAZURE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
@@ -1059,32 +1068,194 @@ void sub_81C0F44(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_81C1040()
|
bool8 sub_81C1040(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
for (i = 1; i <= 3; i++)
|
for (i = 1; i < 4; i++)
|
||||||
{
|
{
|
||||||
if (gUnknown_0203CF1C->summary.moves[i] != 0)
|
if (gUnknown_0203CF1C->summary.moves[i] != 0)
|
||||||
return 1;
|
return TRUE;
|
||||||
}
|
}
|
||||||
return 0;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* void sub_81C1070(s16* a, s8 b, u8* c)
|
void sub_81C4D18();
|
||||||
|
|
||||||
|
void sub_81C1070(s16 *a, s8 b, u8 *c)
|
||||||
{
|
{
|
||||||
s8 i;
|
s8 i;
|
||||||
s8 d = c*;
|
s8 moveIndex;
|
||||||
PlaySE(SE_SELECT);
|
u16 move;
|
||||||
i = 0;
|
|
||||||
while (i <= 3)
|
|
||||||
{
|
|
||||||
d += b
|
|
||||||
if (d > a[0])
|
|
||||||
d = 0;
|
|
||||||
else if (d < 0)
|
|
||||||
d = data[0];
|
|
||||||
if (d == 4)
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
moveIndex = *c;
|
||||||
|
for (i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
moveIndex += b;
|
||||||
|
if (moveIndex > a[0])
|
||||||
|
moveIndex = 0;
|
||||||
|
else if (moveIndex < 0)
|
||||||
|
moveIndex = a[0];
|
||||||
|
if (moveIndex == 4)
|
||||||
|
{
|
||||||
|
move = gUnknown_0203CF1C->unk40C4;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
move = gUnknown_0203CF1C->summary.moves[moveIndex];
|
||||||
|
if (move != 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
sub_81C240C(move);
|
||||||
|
schedule_bg_copy_tilemap_to_vram(1);
|
||||||
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
|
sub_81C3E9C(move);
|
||||||
|
if ((*c == 4 && gUnknown_0203CF1C->unk40C4 == 0) || a[1] == 1)
|
||||||
|
{
|
||||||
|
ClearWindowTilemap(19);
|
||||||
|
if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
|
||||||
|
ClearWindowTilemap(13);
|
||||||
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
|
sub_81C1DA4(9, -3);
|
||||||
|
sub_81C1EFC(9, -3, move);
|
||||||
|
}
|
||||||
|
if (*c != 4 && moveIndex == 4 && gUnknown_0203CF1C->unk40C4 == 0)
|
||||||
|
{
|
||||||
|
ClearWindowTilemap(14);
|
||||||
|
ClearWindowTilemap(15);
|
||||||
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
|
sub_81C1DA4(0, 3);
|
||||||
|
sub_81C1EFC(0, 3, 0);
|
||||||
|
}
|
||||||
|
*c = moveIndex;
|
||||||
|
if (c == &gUnknown_0203CF1C->unk40C6)
|
||||||
|
sub_81C4D18(8);
|
||||||
|
else
|
||||||
|
sub_81C4D18(18);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81C11F4(u8 taskId)
|
||||||
|
{
|
||||||
|
sub_81C4C60(8);
|
||||||
|
ClearWindowTilemap(6);
|
||||||
|
PutWindowTilemap(5);
|
||||||
|
sub_81C3E9C(0);
|
||||||
|
sub_81C2194(&gUnknown_0203CF1C->unkTilemap2, 3, 1);
|
||||||
|
sub_81C2194(&gUnknown_0203CF1C->unkTilemap3, 1, 1);
|
||||||
|
sub_81C4064();
|
||||||
|
if (gUnknown_0203CF1C->unk40C6 != 4)
|
||||||
|
{
|
||||||
|
ClearWindowTilemap(14);
|
||||||
|
ClearWindowTilemap(15);
|
||||||
|
sub_81C1DA4(0, 3);
|
||||||
|
sub_81C1EFC(0, 3, 0);
|
||||||
|
}
|
||||||
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
|
schedule_bg_copy_tilemap_to_vram(1);
|
||||||
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
|
gTasks[taskId].func = sub_81C0510;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81C129C(u8 taskId)
|
||||||
|
{
|
||||||
|
gUnknown_0203CF1C->unk40C7 = gUnknown_0203CF1C->unk40C6;
|
||||||
|
sub_81C4C84(1);
|
||||||
|
sub_81C4AF8(18);
|
||||||
|
gTasks[taskId].func = sub_81C12E4;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81C12E4(u8 taskId)
|
||||||
|
{
|
||||||
|
u8 a = taskId;
|
||||||
|
s16* data = gTasks[taskId].data;
|
||||||
|
if (sub_81221EC() != 1)
|
||||||
|
{
|
||||||
|
if (gMain.newKeys & DPAD_UP)
|
||||||
|
{
|
||||||
|
data[0] = 3;
|
||||||
|
sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->unk40C7);
|
||||||
|
}
|
||||||
|
else if (gMain.newKeys & DPAD_DOWN)
|
||||||
|
{
|
||||||
|
data[0] = 3;
|
||||||
|
sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->unk40C7);
|
||||||
|
}
|
||||||
|
else if (gMain.newKeys & A_BUTTON)
|
||||||
|
{
|
||||||
|
if (gUnknown_0203CF1C->unk40C6 == gUnknown_0203CF1C->unk40C7)
|
||||||
|
{
|
||||||
|
sub_81C13B0(taskId, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sub_81C13B0(taskId, 1);
|
||||||
|
}
|
||||||
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
|
sub_81C13B0(a, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81C13B0(u8 taskId, u8 b)
|
||||||
|
{
|
||||||
|
u16 move;
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
sub_81C4C84(0);
|
||||||
|
sub_81C4C60(18);
|
||||||
|
if (b == 1)
|
||||||
|
{
|
||||||
|
if (gUnknown_0203CF1C->unk40BD == 0)
|
||||||
|
{
|
||||||
|
struct Pokemon *why = gUnknown_0203CF1C->unk0->mons;
|
||||||
|
sub_81C14BC(&why[gUnknown_0203CF1C->unk40BE], gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
struct BoxPokemon *why = gUnknown_0203CF1C->unk0->boxMons;
|
||||||
|
sub_81C15EC(&why[gUnknown_0203CF1C->unk40BE], gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7);
|
||||||
|
}
|
||||||
|
sub_81C0098(&gUnknown_0203CF1C->currentPoke);
|
||||||
|
sub_81C40A0(gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7);
|
||||||
|
sub_81C4568(gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7);
|
||||||
|
gUnknown_0203CF1C->unk40C6 = gUnknown_0203CF1C->unk40C7;
|
||||||
|
}
|
||||||
|
move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
|
||||||
|
sub_81C3E9C(move);
|
||||||
|
sub_81C240C(move);
|
||||||
|
schedule_bg_copy_tilemap_to_vram(1);
|
||||||
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
|
gTasks[taskId].func = sub_81C0F44;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct struct_moveSwap
|
||||||
|
{
|
||||||
|
u16 field_0;
|
||||||
|
u16 field_2;
|
||||||
|
u8 field_4;
|
||||||
|
u8 field_5;
|
||||||
|
u8 field_6;
|
||||||
|
u16* ptr_8;
|
||||||
|
u16* ptr_C;
|
||||||
|
u8* ptr_10;
|
||||||
|
u8* ptr_14;
|
||||||
|
u8* ptr_18;
|
||||||
|
u16* ptr_1C;
|
||||||
|
u8* ptr_20;
|
||||||
|
u8* ptr_24;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* void sub_81C14BC(struct Pokemon *mon, u8 a, u8 b)
|
||||||
|
{
|
||||||
|
struct struct_moveSwap sp;
|
||||||
|
u8 r2;
|
||||||
|
sp.ptr_8 = &gUnknown_0203CF1C->summary.moves[a];
|
||||||
|
sp.ptr_1C = &sp.field_2;
|
||||||
|
sp.field_2 = gUnknown_0203CF1C->summary.moves[a];
|
||||||
|
sp.ptr_C = &gUnknown_0203CF1C->summary.moves[b];
|
||||||
|
sp.field_0 = gUnknown_0203CF1C->summary.moves[b];
|
||||||
|
sp.ptr_10 = &gUnknown_0203CF1C->summary.pp[a];
|
||||||
|
sp.ptr_24 = &sp.field_5;
|
||||||
|
sp.field_5 = gUnknown_0203CF1C->summary.pp[a];
|
||||||
|
sp.ptr_14 = &gUnknown_0203CF1C->summary.pp[b];
|
||||||
|
sp.ptr_20 = &sp.field_4;
|
||||||
|
sp.field_4 = gUnknown_0203CF1C->summary.pp[b];
|
||||||
|
sp.ptr_18 = &gUnknown_0203CF1C->summary.ppBonuses;
|
||||||
|
sp.field_6 = gUnknown_0203CF1C->summary.ppBonuses;
|
||||||
} */
|
} */
|
||||||
Reference in New Issue
Block a user