mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-11 06:25:23 -05:00
through sub_80C1920
This commit is contained in:
parent
e2fb677742
commit
e58e6689b8
608
asm/region_map.s
608
asm/region_map.s
|
|
@ -5,614 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80C1478
|
||||
sub_80C1478: @ 80C1478
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x8
|
||||
movs r6, 0
|
||||
ldr r0, _080C1574 @ =gUnknown_20399D8
|
||||
mov r8, r0
|
||||
ldr r5, [r0]
|
||||
ldr r1, _080C1578 @ =0x00001cd4
|
||||
adds r0, r5, r1
|
||||
movs r1, 0x48
|
||||
strh r1, [r0]
|
||||
ldr r4, _080C157C @ =0xffff0000
|
||||
ldr r0, [sp]
|
||||
ands r0, r4
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
ldr r3, _080C1580 @ =0x00001cce
|
||||
adds r2, r5, r3
|
||||
ldr r7, _080C1584 @ =0x00001cca
|
||||
adds r0, r5, r7
|
||||
ldrb r1, [r0]
|
||||
lsls r1, 2
|
||||
ldrh r2, [r2]
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
ldr r0, _080C1588 @ =0x00001cd6
|
||||
adds r3, r5, r0
|
||||
strh r1, [r3]
|
||||
lsls r1, 16
|
||||
ldr r2, _080C158C @ =0x0000ffff
|
||||
ldr r0, [sp]
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
ldr r1, _080C1590 @ =0x00001cd8
|
||||
adds r0, r5, r1
|
||||
movs r1, 0xA8
|
||||
strh r1, [r0]
|
||||
ldr r0, [sp, 0x4]
|
||||
ands r0, r4
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
ldrh r1, [r3]
|
||||
adds r1, 0x20
|
||||
ldr r3, _080C1594 @ =0x00001cda
|
||||
adds r0, r5, r3
|
||||
strh r1, [r0]
|
||||
ands r1, r2
|
||||
lsls r1, 16
|
||||
ldr r0, [sp, 0x4]
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
ldr r0, _080C1598 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080C150E
|
||||
adds r1, r7, 0
|
||||
adds r0, r5, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080C150E
|
||||
movs r0, 0xF5
|
||||
bl PlaySE
|
||||
mov r2, r8
|
||||
ldr r1, [r2]
|
||||
adds r1, r7
|
||||
ldrb r0, [r1]
|
||||
subs r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r6, 0x1
|
||||
_080C150E:
|
||||
ldr r0, _080C1598 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080C1542
|
||||
ldr r4, _080C1574 @ =gUnknown_20399D8
|
||||
ldr r0, [r4]
|
||||
ldr r3, _080C1584 @ =0x00001cca
|
||||
adds r1, r0, r3
|
||||
ldr r2, _080C159C @ =0x00001ccc
|
||||
adds r0, r2
|
||||
ldrb r1, [r1]
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
bcs _080C1542
|
||||
movs r0, 0xF5
|
||||
bl PlaySE
|
||||
ldr r1, [r4]
|
||||
ldr r3, _080C1584 @ =0x00001cca
|
||||
adds r1, r3
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r6, 0x1
|
||||
_080C1542:
|
||||
ldr r2, _080C1598 @ =gMain
|
||||
ldrh r1, [r2, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
ldr r4, _080C1574 @ =gUnknown_20399D8
|
||||
cmp r0, 0
|
||||
beq _080C15A8
|
||||
ldr r0, [r4]
|
||||
ldr r1, _080C15A0 @ =0x00001cdc
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0x6
|
||||
bne _080C15A8
|
||||
movs r0, 0xC7
|
||||
bl PlaySE
|
||||
ldr r0, [r4]
|
||||
ldr r2, _080C1584 @ =0x00001cca
|
||||
adds r1, r0, r2
|
||||
ldrb r1, [r1]
|
||||
ldr r3, _080C15A4 @ =0x00001ccb
|
||||
adds r0, r3
|
||||
strb r1, [r0]
|
||||
movs r0, 0x1
|
||||
b _080C16AC
|
||||
.align 2, 0
|
||||
_080C1574: .4byte gUnknown_20399D8
|
||||
_080C1578: .4byte 0x00001cd4
|
||||
_080C157C: .4byte 0xffff0000
|
||||
_080C1580: .4byte 0x00001cce
|
||||
_080C1584: .4byte 0x00001cca
|
||||
_080C1588: .4byte 0x00001cd6
|
||||
_080C158C: .4byte 0x0000ffff
|
||||
_080C1590: .4byte 0x00001cd8
|
||||
_080C1594: .4byte 0x00001cda
|
||||
_080C1598: .4byte gMain
|
||||
_080C159C: .4byte 0x00001ccc
|
||||
_080C15A0: .4byte 0x00001cdc
|
||||
_080C15A4: .4byte 0x00001ccb
|
||||
_080C15A8:
|
||||
ldrh r1, [r2, 0x2E]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080C1604
|
||||
ldr r0, [r4]
|
||||
ldr r2, _080C15FC @ =0x00001ccb
|
||||
adds r1, r0, r2
|
||||
ldrb r1, [r1]
|
||||
subs r2, 0x1
|
||||
adds r0, r2
|
||||
strb r1, [r0]
|
||||
ldr r3, _080C1600 @ =gUnknown_20399D4
|
||||
ldr r0, [r4]
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r0, r1, 4
|
||||
subs r0, r1
|
||||
lsls r0, 4
|
||||
adds r0, 0x26
|
||||
ldr r1, [r3]
|
||||
adds r1, r0
|
||||
movs r0, 0
|
||||
bl sub_80C0CC8
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
movs r0, 0xFF
|
||||
movs r1, 0x19
|
||||
movs r2, 0x1
|
||||
bl sub_80C48BC
|
||||
movs r0, 0xFF
|
||||
movs r1, 0x19
|
||||
movs r2, 0x1
|
||||
bl sub_80C4960
|
||||
movs r0, 0x1
|
||||
b _080C16AC
|
||||
.align 2, 0
|
||||
_080C15FC: .4byte 0x00001ccb
|
||||
_080C1600: .4byte gUnknown_20399D4
|
||||
_080C1604:
|
||||
cmp r6, 0
|
||||
beq _080C166C
|
||||
ldr r2, _080C168C @ =gUnknown_20399D4
|
||||
ldr r5, _080C1690 @ =gUnknown_20399D8
|
||||
ldr r0, [r5]
|
||||
ldr r4, _080C1694 @ =0x00001cca
|
||||
adds r0, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r0, r1, 4
|
||||
subs r0, r1
|
||||
lsls r0, 4
|
||||
adds r0, 0x26
|
||||
ldr r1, [r2]
|
||||
adds r1, r0
|
||||
movs r0, 0
|
||||
bl sub_80C0CC8
|
||||
ldr r0, _080C1698 @ =gUnknown_8418EB0
|
||||
bl sub_80C4E74
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
movs r0, 0x3
|
||||
bl CopyBgTilemapBufferToVram
|
||||
movs r0, 0xFF
|
||||
movs r1, 0x19
|
||||
movs r2, 0x1
|
||||
bl sub_80C48BC
|
||||
movs r0, 0xFF
|
||||
movs r1, 0x19
|
||||
movs r2, 0x1
|
||||
bl sub_80C4960
|
||||
ldr r0, [r5]
|
||||
adds r0, r4
|
||||
ldrb r0, [r0]
|
||||
movs r1, 0x19
|
||||
movs r2, 0
|
||||
bl sub_80C48BC
|
||||
ldr r0, [r5]
|
||||
adds r0, r4
|
||||
ldrb r0, [r0]
|
||||
movs r1, 0x19
|
||||
movs r2, 0
|
||||
bl sub_80C4960
|
||||
_080C166C:
|
||||
ldr r0, _080C1690 @ =gUnknown_20399D8
|
||||
ldr r4, [r0]
|
||||
ldr r3, _080C1694 @ =0x00001cca
|
||||
adds r4, r3
|
||||
bl sub_80C0E34
|
||||
ldrb r1, [r4]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r1, r0
|
||||
beq _080C169C
|
||||
movs r0, 0x1
|
||||
bl sub_80C4324
|
||||
b _080C16A2
|
||||
.align 2, 0
|
||||
_080C168C: .4byte gUnknown_20399D4
|
||||
_080C1690: .4byte gUnknown_20399D8
|
||||
_080C1694: .4byte 0x00001cca
|
||||
_080C1698: .4byte gUnknown_8418EB0
|
||||
_080C169C:
|
||||
movs r0, 0
|
||||
bl sub_80C4324
|
||||
_080C16A2:
|
||||
movs r0, 0x1
|
||||
mov r1, sp
|
||||
bl sub_80C4CF0
|
||||
movs r0, 0
|
||||
_080C16AC:
|
||||
add sp, 0x8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80C1478
|
||||
|
||||
thumb_func_start sub_80C16B8
|
||||
sub_80C16B8: @ 80C16B8
|
||||
ldr r1, _080C16C8 @ =gUnknown_20399D8
|
||||
ldr r1, [r1]
|
||||
ldr r2, _080C16CC @ =0x00001cd6
|
||||
adds r1, r2
|
||||
ldrh r1, [r1]
|
||||
adds r1, 0x10
|
||||
strh r1, [r0, 0x22]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080C16C8: .4byte gUnknown_20399D8
|
||||
_080C16CC: .4byte 0x00001cd6
|
||||
thumb_func_end sub_80C16B8
|
||||
|
||||
thumb_func_start sub_80C16D0
|
||||
sub_80C16D0: @ 80C16D0
|
||||
push {lr}
|
||||
ldr r0, _080C16EC @ =gUnknown_20399D8
|
||||
ldr r1, [r0]
|
||||
ldr r2, _080C16F0 @ =0x00001cc9
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _080C1708
|
||||
cmp r0, 0x1
|
||||
bgt _080C16F4
|
||||
cmp r0, 0
|
||||
beq _080C16FA
|
||||
b _080C1732
|
||||
.align 2, 0
|
||||
_080C16EC: .4byte gUnknown_20399D8
|
||||
_080C16F0: .4byte 0x00001cc9
|
||||
_080C16F4:
|
||||
cmp r0, 0x2
|
||||
beq _080C171C
|
||||
b _080C1732
|
||||
_080C16FA:
|
||||
ldr r0, _080C1700 @ =gUnknown_83EF3C4
|
||||
ldr r2, _080C1704 @ =0x000014b0
|
||||
b _080C170C
|
||||
.align 2, 0
|
||||
_080C1700: .4byte gUnknown_83EF3C4
|
||||
_080C1704: .4byte 0x000014b0
|
||||
_080C1708:
|
||||
ldr r0, _080C1714 @ =gUnknown_83EF450
|
||||
ldr r2, _080C1718 @ =0x000018bc
|
||||
_080C170C:
|
||||
adds r1, r2
|
||||
bl LZ77UnCompWram
|
||||
b _080C1736
|
||||
.align 2, 0
|
||||
_080C1714: .4byte gUnknown_83EF450
|
||||
_080C1718: .4byte 0x000018bc
|
||||
_080C171C:
|
||||
movs r0, 0
|
||||
movs r1, 0x2
|
||||
movs r2, 0x2
|
||||
bl sub_80C1754
|
||||
movs r0, 0x1
|
||||
movs r1, 0x3
|
||||
movs r2, 0x3
|
||||
bl sub_80C1754
|
||||
b _080C1736
|
||||
_080C1732:
|
||||
movs r0, 0x1
|
||||
b _080C1746
|
||||
_080C1736:
|
||||
ldr r0, _080C174C @ =gUnknown_20399D8
|
||||
ldr r1, [r0]
|
||||
ldr r0, _080C1750 @ =0x00001cc9
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r0, 0
|
||||
_080C1746:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080C174C: .4byte gUnknown_20399D8
|
||||
_080C1750: .4byte 0x00001cc9
|
||||
thumb_func_end sub_80C16D0
|
||||
|
||||
thumb_func_start sub_80C1754
|
||||
sub_80C1754: @ 80C1754
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
lsls r2, 16
|
||||
lsrs r2, 16
|
||||
bl sub_80C176C
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80C1754
|
||||
|
||||
thumb_func_start sub_80C176C
|
||||
sub_80C176C: @ 80C176C
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x28
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, 16
|
||||
lsls r2, 16
|
||||
lsrs r2, 16
|
||||
ldr r3, _080C1848 @ =gUnknown_20399D8
|
||||
mov r8, r3
|
||||
lsls r5, r0, 6
|
||||
adds r5, r0
|
||||
lsls r5, 2
|
||||
subs r5, r0
|
||||
lsls r5, 2
|
||||
ldr r4, _080C184C @ =0x000014b0
|
||||
adds r0, r5, r4
|
||||
ldr r3, [r3]
|
||||
adds r0, r3, r0
|
||||
str r0, [sp, 0x18]
|
||||
movs r4, 0x80
|
||||
lsls r4, 3
|
||||
add r0, sp, 0x18
|
||||
lsrs r6, r1, 16
|
||||
mov r9, r6
|
||||
orrs r1, r4
|
||||
str r1, [r0, 0x4]
|
||||
ldr r1, _080C1850 @ =gUnknown_83EF384
|
||||
str r1, [sp, 0x20]
|
||||
ldr r4, _080C1854 @ =0xffff0000
|
||||
add r6, sp, 0x20
|
||||
ldr r1, [r6, 0x4]
|
||||
ands r1, r4
|
||||
orrs r1, r2
|
||||
str r1, [r6, 0x4]
|
||||
mov r1, sp
|
||||
movs r4, 0
|
||||
mov r7, r9
|
||||
strh r7, [r1]
|
||||
strh r2, [r1, 0x2]
|
||||
ldr r1, _080C1858 @ =gUnknown_83F1B24
|
||||
str r1, [sp, 0x4]
|
||||
ldr r1, _080C185C @ =gUnknown_83F1B38
|
||||
str r1, [sp, 0x8]
|
||||
str r4, [sp, 0xC]
|
||||
ldr r1, _080C1860 @ =gDummySpriteAffineAnimTable
|
||||
str r1, [sp, 0x10]
|
||||
ldr r1, _080C1864 @ =sub_80C16B8
|
||||
str r1, [sp, 0x14]
|
||||
adds r3, r5
|
||||
ldr r4, _080C1868 @ =0x000018b4
|
||||
adds r1, r3, r4
|
||||
strh r7, [r1]
|
||||
ldr r1, _080C186C @ =0x000018b6
|
||||
adds r3, r1
|
||||
strh r2, [r3]
|
||||
bl LoadSpriteSheet
|
||||
adds r0, r6, 0
|
||||
bl LoadSpritePalette
|
||||
mov r3, r8
|
||||
ldr r2, [r3]
|
||||
adds r0, r2, r5
|
||||
adds r4, 0x4
|
||||
adds r0, r4
|
||||
movs r6, 0
|
||||
ldrsh r1, [r0, r6]
|
||||
ldr r7, _080C1870 @ =0x00001cce
|
||||
adds r0, r2, r7
|
||||
ldr r3, _080C1874 @ =0x00001cca
|
||||
adds r2, r3
|
||||
ldrb r2, [r2]
|
||||
lsls r2, 2
|
||||
ldrh r0, [r0]
|
||||
adds r2, r0
|
||||
lsls r2, 19
|
||||
asrs r2, 16
|
||||
mov r0, sp
|
||||
movs r3, 0
|
||||
bl CreateSprite
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r4, r8
|
||||
ldr r2, [r4]
|
||||
ldr r6, _080C1878 @ =0x000018b0
|
||||
adds r2, r6
|
||||
adds r2, r5
|
||||
lsls r1, r0, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, _080C187C @ =gSprites
|
||||
adds r1, r0
|
||||
str r1, [r2]
|
||||
adds r1, 0x3E
|
||||
ldrb r2, [r1]
|
||||
movs r0, 0x5
|
||||
negs r0, r0
|
||||
ands r0, r2
|
||||
strb r0, [r1]
|
||||
add sp, 0x28
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C1848: .4byte gUnknown_20399D8
|
||||
_080C184C: .4byte 0x000014b0
|
||||
_080C1850: .4byte gUnknown_83EF384
|
||||
_080C1854: .4byte 0xffff0000
|
||||
_080C1858: .4byte gUnknown_83F1B24
|
||||
_080C185C: .4byte gUnknown_83F1B38
|
||||
_080C1860: .4byte gDummySpriteAffineAnimTable
|
||||
_080C1864: .4byte sub_80C16B8
|
||||
_080C1868: .4byte 0x000018b4
|
||||
_080C186C: .4byte 0x000018b6
|
||||
_080C1870: .4byte 0x00001cce
|
||||
_080C1874: .4byte 0x00001cca
|
||||
_080C1878: .4byte 0x000018b0
|
||||
_080C187C: .4byte gSprites
|
||||
thumb_func_end sub_80C176C
|
||||
|
||||
thumb_func_start sub_80C1880
|
||||
sub_80C1880: @ 80C1880
|
||||
push {r4-r6,lr}
|
||||
movs r5, 0
|
||||
ldr r6, _080C18D0 @ =gUnknown_20399D8
|
||||
_080C1886:
|
||||
ldr r1, [r6]
|
||||
lsls r0, r5, 6
|
||||
adds r0, r5
|
||||
lsls r0, 2
|
||||
subs r0, r5
|
||||
lsls r4, r0, 2
|
||||
ldr r0, _080C18D4 @ =0x000018b0
|
||||
adds r1, r0
|
||||
adds r1, r4
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _080C18BE
|
||||
bl DestroySprite
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
ldr r1, _080C18D8 @ =0x000018b4
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
bl FreeSpriteTilesByTag
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
ldr r1, _080C18DC @ =0x000018b6
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
bl FreeSpritePaletteByTag
|
||||
_080C18BE:
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0x1
|
||||
bls _080C1886
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C18D0: .4byte gUnknown_20399D8
|
||||
_080C18D4: .4byte 0x000018b0
|
||||
_080C18D8: .4byte 0x000018b4
|
||||
_080C18DC: .4byte 0x000018b6
|
||||
thumb_func_end sub_80C1880
|
||||
|
||||
thumb_func_start sub_80C18E0
|
||||
sub_80C18E0: @ 80C18E0
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
movs r2, 0
|
||||
ldr r3, _080C1904 @ =gUnknown_83F1B3C
|
||||
adds r5, r3, 0
|
||||
adds r5, 0x8
|
||||
_080C18EE:
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r1, r0, 2
|
||||
adds r0, r1, r3
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r4
|
||||
bne _080C1908
|
||||
adds r0, r1, r5
|
||||
ldr r0, [r0]
|
||||
b _080C1914
|
||||
.align 2, 0
|
||||
_080C1904: .4byte gUnknown_83F1B3C
|
||||
_080C1908:
|
||||
adds r0, r2, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0x12
|
||||
bls _080C18EE
|
||||
ldr r0, _080C191C @ =gUnknown_8418EC3
|
||||
_080C1914:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080C191C: .4byte gUnknown_8418EC3
|
||||
thumb_func_end sub_80C18E0
|
||||
|
||||
thumb_func_start sub_80C1920
|
||||
sub_80C1920: @ 80C1920
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
movs r2, 0
|
||||
ldr r3, _080C1940 @ =gUnknown_83F1B3C
|
||||
adds r5, r3, 0x4
|
||||
_080C192C:
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r1, r0, 2
|
||||
adds r0, r1, r3
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r4
|
||||
bne _080C1944
|
||||
adds r0, r1, r5
|
||||
ldr r0, [r0]
|
||||
b _080C1950
|
||||
.align 2, 0
|
||||
_080C1940: .4byte gUnknown_83F1B3C
|
||||
_080C1944:
|
||||
adds r0, r2, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0x12
|
||||
bls _080C192C
|
||||
ldr r0, _080C1958 @ =gUnknown_8418EC3
|
||||
_080C1950:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080C1958: .4byte gUnknown_8418EC3
|
||||
thumb_func_end sub_80C1920
|
||||
|
||||
thumb_func_start sub_80C195C
|
||||
sub_80C195C: @ 80C195C
|
||||
push {r4-r6,lr}
|
||||
|
|
|
|||
|
|
@ -1011,5 +1011,6 @@ extern const u8 gUnknown_8418E95[];
|
|||
extern const u8 gUnknown_8418EA7[];
|
||||
extern const u8 gUnknown_8418EB0[];
|
||||
extern const u8 gUnknown_8418EBC[];
|
||||
extern const u8 gUnknown_8418EC3[];
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
|
|
|||
191
src/region_map.c
191
src/region_map.c
|
|
@ -43,15 +43,20 @@ struct UnkStruct_20399D4
|
|||
MainCallback field_47BC;
|
||||
}; // size = 0x47C0
|
||||
|
||||
struct UnkStruct_20399D8_14B0
|
||||
{
|
||||
u8 field_000[0x400];
|
||||
struct Sprite * field_400;
|
||||
u16 field_404;
|
||||
u16 field_406;
|
||||
s16 field_408;
|
||||
};
|
||||
|
||||
struct UnkStruct_20399D8
|
||||
{
|
||||
u8 field_0000[0x1000];
|
||||
u16 field_1000[0x258];
|
||||
u8 filler_14B0[0x408];
|
||||
u16 field_18B8;
|
||||
u8 filler_18BA[0x40A];
|
||||
u16 field_1CC4;
|
||||
u8 filler_1CC6[0x2];
|
||||
struct UnkStruct_20399D8_14B0 field_14B0[2];
|
||||
u8 field_1CC8;
|
||||
u8 field_1CC9;
|
||||
u8 field_1CCA;
|
||||
|
|
@ -72,6 +77,13 @@ struct UnkStruct_80C4CF0
|
|||
u16 v6;
|
||||
};
|
||||
|
||||
struct UnkStruct_83F1B3C
|
||||
{
|
||||
u16 field_0;
|
||||
const u8 *field_4;
|
||||
const u8 *field_8;
|
||||
};
|
||||
|
||||
EWRAM_DATA struct UnkStruct_20399D4 * gUnknown_20399D4 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_20399D8 * gUnknown_20399D8 = NULL;
|
||||
EWRAM_DATA void * gUnknown_20399DC = NULL;
|
||||
|
|
@ -112,6 +124,8 @@ void sub_80C1390(void);
|
|||
bool8 sub_80C144C(void);
|
||||
bool8 sub_80C1478(void);
|
||||
bool8 sub_80C16D0(void);
|
||||
void sub_80C1754(u8 a0, u16 a1, u16 a2);
|
||||
void sub_80C176C(u8 a0, u16 a1, u16 a2);
|
||||
void sub_80C1880(void);
|
||||
void sub_80C4AAC(u8 a0);
|
||||
void sub_80C4BE4(void);
|
||||
|
|
@ -153,6 +167,9 @@ u16 sub_80C3580(void);
|
|||
#include "data/text/map_section_names.h"
|
||||
extern const u16 gUnknown_83EF23C[];
|
||||
extern const u16 gUnknown_83EF2DC[];
|
||||
extern const u16 gUnknown_83EF384[];
|
||||
extern const u32 gUnknown_83EF3C4[];
|
||||
extern const u32 gUnknown_83EF450[];
|
||||
extern const u32 gUnknown_83EF61C[];
|
||||
extern const u32 gUnknown_83F0580[];
|
||||
extern const u32 gUnknown_83F089C[];
|
||||
|
|
@ -167,10 +184,13 @@ extern const u32 gUnknown_83F19A0[];
|
|||
extern const struct BgTemplate gUnknown_83F1A50[4];
|
||||
extern const struct WindowTemplate gUnknown_83F1A60[];
|
||||
extern const u8 gUnknown_83F1A90[];
|
||||
extern const u8 *const gUnknown_83F1A9C[];
|
||||
extern const u8 sSeviiMapsecs[3][30];
|
||||
extern const u8 gUnknown_83F1B00[3][4];
|
||||
extern const struct UnkStruct_80C4CF0 gUnknown_83F1B0C[3];
|
||||
extern const u8 *const gUnknown_83F1A9C[];
|
||||
extern const struct OamData gUnknown_83F1B24;
|
||||
extern const union AnimCmd *const gUnknown_83F1B38[];
|
||||
extern const struct UnkStruct_83F1B3C gUnknown_83F1B3C[];
|
||||
extern const u8 *const gUnknown_83F1CAC[];
|
||||
|
||||
static void RegionMap_DarkenPalette(u16 *pal, u16 size, u16 tint)
|
||||
|
|
@ -798,8 +818,8 @@ void sub_80C0E70(u8 a0, u8 taskId, TaskFunc taskFunc)
|
|||
gUnknown_20399D8->field_1CCC = 1;
|
||||
else
|
||||
gUnknown_20399D8->field_1CCC = 0;
|
||||
gUnknown_20399D8->field_18B8 = 0x58;
|
||||
gUnknown_20399D8->field_1CC4 = 0x98;
|
||||
gUnknown_20399D8->field_14B0[0].field_408 = 0x58;
|
||||
gUnknown_20399D8->field_14B0[1].field_408 = 0x98;
|
||||
switch (gUnknown_20399D8->field_1CCC)
|
||||
{
|
||||
case 1:
|
||||
|
|
@ -1023,3 +1043,158 @@ bool8 sub_80C144C(void)
|
|||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80C1478(void)
|
||||
{
|
||||
bool8 r6 = FALSE;
|
||||
struct UnkStruct_80C4CF0 data;
|
||||
data.v0 = gUnknown_20399D8->field_1CD4[0] = 0x48;
|
||||
data.v2 = gUnknown_20399D8->field_1CD4[1] = 8 * (gUnknown_20399D8->field_1CCE + 4 * gUnknown_20399D8->field_1CCA);
|
||||
data.v4 = gUnknown_20399D8->field_1CD4[2] = 0xA8;
|
||||
data.v6 = gUnknown_20399D8->field_1CD4[3] = gUnknown_20399D8->field_1CD4[1] + 32;
|
||||
if (JOY_NEW(DPAD_UP) && gUnknown_20399D8->field_1CCA != 0)
|
||||
{
|
||||
PlaySE(SE_BAG1);
|
||||
gUnknown_20399D8->field_1CCA--;
|
||||
r6 = TRUE;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN) && gUnknown_20399D8->field_1CCA < gUnknown_20399D8->field_1CCC)
|
||||
{
|
||||
PlaySE(SE_BAG1);
|
||||
gUnknown_20399D8->field_1CCA++;
|
||||
r6 = TRUE;
|
||||
}
|
||||
if (JOY_NEW(A_BUTTON) && gUnknown_20399D8->field_1CDC == 6)
|
||||
{
|
||||
PlaySE(SE_W129);
|
||||
gUnknown_20399D8->field_1CCB = gUnknown_20399D8->field_1CCA;
|
||||
return TRUE;
|
||||
}
|
||||
if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
gUnknown_20399D8->field_1CCA = gUnknown_20399D8->field_1CCB;
|
||||
sub_80C0CC8(0, gUnknown_20399D4->field_0026[gUnknown_20399D8->field_1CCA]);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
sub_80C48BC(255, 25, 1);
|
||||
sub_80C4960(255, 25, 1);
|
||||
return TRUE;
|
||||
}
|
||||
if (r6)
|
||||
{
|
||||
sub_80C0CC8(0, gUnknown_20399D4->field_0026[gUnknown_20399D8->field_1CCA]);
|
||||
sub_80C4E74(gUnknown_8418EB0);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
sub_80C48BC(255, 25, 1);
|
||||
sub_80C4960(255, 25, 1);
|
||||
sub_80C48BC(gUnknown_20399D8->field_1CCA, 25, 0);
|
||||
sub_80C4960(gUnknown_20399D8->field_1CCA, 25, 0);
|
||||
}
|
||||
if (gUnknown_20399D8->field_1CCA != sub_80C0E34())
|
||||
sub_80C4324(1);
|
||||
else
|
||||
sub_80C4324(0);
|
||||
sub_80C4CF0(1, &data);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80C16B8(struct Sprite * sprite)
|
||||
{
|
||||
sprite->pos1.y = gUnknown_20399D8->field_1CD4[1] + 16;
|
||||
}
|
||||
|
||||
bool8 sub_80C16D0(void)
|
||||
{
|
||||
switch (gUnknown_20399D8->field_1CC9)
|
||||
{
|
||||
case 0:
|
||||
LZ77UnCompWram(gUnknown_83EF3C4, gUnknown_20399D8->field_14B0[0].field_000);
|
||||
break;
|
||||
case 1:
|
||||
LZ77UnCompWram(gUnknown_83EF450, gUnknown_20399D8->field_14B0[1].field_000);
|
||||
break;
|
||||
case 2:
|
||||
sub_80C1754(0, 2, 2);
|
||||
sub_80C1754(1, 3, 3);
|
||||
break;
|
||||
default:
|
||||
return TRUE;
|
||||
}
|
||||
gUnknown_20399D8->field_1CC9++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80C1754(u8 a0, u16 a1, u16 a2)
|
||||
{
|
||||
sub_80C176C(a0, a1, a2);
|
||||
}
|
||||
|
||||
void sub_80C176C(u8 a0, u16 a1, u16 a2)
|
||||
{
|
||||
u8 spriteId;
|
||||
|
||||
struct SpriteSheet spriteSheet = {
|
||||
.data = gUnknown_20399D8->field_14B0[a0].field_000,
|
||||
.size = 0x400,
|
||||
.tag = a1
|
||||
};
|
||||
struct SpritePalette spritePalette = {
|
||||
.data = gUnknown_83EF384,
|
||||
.tag = a2
|
||||
};
|
||||
struct SpriteTemplate template = {
|
||||
.tileTag = a1,
|
||||
.paletteTag = a2,
|
||||
.oam = &gUnknown_83F1B24,
|
||||
.anims = gUnknown_83F1B38,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80C16B8
|
||||
};
|
||||
|
||||
gUnknown_20399D8->field_14B0[a0].field_404 = a1;
|
||||
gUnknown_20399D8->field_14B0[a0].field_406 = a2;
|
||||
|
||||
LoadSpriteSheet(&spriteSheet);
|
||||
LoadSpritePalette(&spritePalette);
|
||||
|
||||
spriteId = CreateSprite(&template, gUnknown_20399D8->field_14B0[a0].field_408, 8 * (gUnknown_20399D8->field_1CCE + 4 * gUnknown_20399D8->field_1CCA), 0);
|
||||
gUnknown_20399D8->field_14B0[a0].field_400 = &gSprites[spriteId];
|
||||
gSprites[spriteId].invisible = FALSE;
|
||||
}
|
||||
|
||||
void sub_80C1880(void)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if (gUnknown_20399D8->field_14B0[i].field_400 != NULL)
|
||||
{
|
||||
DestroySprite(gUnknown_20399D8->field_14B0[i].field_400);
|
||||
FreeSpriteTilesByTag(gUnknown_20399D8->field_14B0[i].field_404);
|
||||
FreeSpritePaletteByTag(gUnknown_20399D8->field_14B0[i].field_406);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const u8 *sub_80C18E0(u16 a0)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < 19; i++)
|
||||
{
|
||||
if (gUnknown_83F1B3C[i].field_0 == a0)
|
||||
return gUnknown_83F1B3C[i].field_8;
|
||||
}
|
||||
return gUnknown_8418EC3;
|
||||
}
|
||||
|
||||
const u8 *sub_80C1920(u16 a0)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < 19; i++)
|
||||
{
|
||||
if (gUnknown_83F1B3C[i].field_0 == a0)
|
||||
return gUnknown_83F1B3C[i].field_4;
|
||||
}
|
||||
return gUnknown_8418EC3;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user