mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-02-04 02:10:01 +01:00
Merge branch 'master' of https://github.com/pret/pokeemerald into decompile_item_menu
This commit is contained in:
commit
e78697494c
@ -178,7 +178,7 @@ _080B24C8:
|
||||
b _080B24F2
|
||||
_080B24CC:
|
||||
ldr r4, =gStringVar1
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
@ -239,7 +239,7 @@ sub_80B252C: @ 80B252C
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080B2570
|
||||
bl sub_800B320
|
||||
bl IsLinkConnectionEstablished
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0
|
||||
@ -269,7 +269,7 @@ sub_80B2578: @ 80B2578
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
bl sub_800B320
|
||||
bl IsLinkConnectionEstablished
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080B258E
|
||||
@ -404,7 +404,7 @@ sub_80B2688: @ 80B2688
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
adds r0, r4, 0
|
||||
@ -426,7 +426,7 @@ sub_80B2688: @ 80B2688
|
||||
adds r4, r0, r1
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0xE]
|
||||
bl sub_800ABBC
|
||||
bl IsLinkMaster
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
@ -506,7 +506,7 @@ sub_80B275C: @ 80B275C
|
||||
mov r9, r0
|
||||
mov r7, r8
|
||||
add r7, r9
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
adds r0, r4, 0
|
||||
@ -585,7 +585,7 @@ sub_80B2804: @ 80B2804
|
||||
bne _080B2898
|
||||
bl sub_800AA48
|
||||
adds r4, r0, 0
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r4, 24
|
||||
lsls r0, 24
|
||||
cmp r4, r0
|
||||
@ -652,7 +652,7 @@ sub_80B28A8: @ 80B28A8
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _080B290A
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
adds r4, r0, 0
|
||||
bl sub_800AA48
|
||||
lsls r4, 24
|
||||
@ -729,13 +729,13 @@ _080B297C:
|
||||
cmp r2, 0x9
|
||||
bne _080B2994
|
||||
_080B2984:
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
bl HideFieldMessageBox
|
||||
ldr r0, =sub_80B2CB0
|
||||
b _080B29E4
|
||||
.pool
|
||||
_080B2994:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
ldr r4, =gUnknown_03005DB8
|
||||
strb r0, [r4]
|
||||
bl GetMultiplayerId
|
||||
@ -812,7 +812,7 @@ _080B2A42:
|
||||
cmp r0, 0x9
|
||||
bne _080B2A6C
|
||||
_080B2A4A:
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
_080B2A4E:
|
||||
bl HideFieldMessageBox
|
||||
ldr r0, =gTasks
|
||||
@ -825,7 +825,7 @@ _080B2A4E:
|
||||
b _080B2ACE
|
||||
.pool
|
||||
_080B2A6C:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
ldr r4, =gUnknown_03005DB8
|
||||
strb r0, [r4]
|
||||
bl GetMultiplayerId
|
||||
@ -1610,7 +1610,7 @@ sub_80B3144: @ 80B3144
|
||||
ldrsh r2, [r4, r3]
|
||||
cmp r2, 0
|
||||
bne _080B3178
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
bl sub_800A2BC
|
||||
ldr r0, =task00_08081A90
|
||||
movs r1, 0x50
|
||||
@ -1640,12 +1640,12 @@ sub_80B3194: @ 80B3194
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
adds r5, r4, 0
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bls _080B31DA
|
||||
bl sub_800ABBC
|
||||
bl IsLinkMaster
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
@ -1681,7 +1681,7 @@ sub_80B31E8: @ 80B31E8
|
||||
lsrs r5, r0, 24
|
||||
bl sub_800AA48
|
||||
adds r4, r0, 0
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r4, 24
|
||||
lsls r0, 24
|
||||
cmp r4, r0
|
||||
@ -2651,7 +2651,7 @@ task00_08081A90: @ 80B3A30
|
||||
lsls r0, 17
|
||||
cmp r1, r0
|
||||
ble _080B3A62
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
ldr r0, =c2_800ACD4
|
||||
bl SetMainCallback2
|
||||
adds r0, r4, 0
|
||||
@ -2669,7 +2669,7 @@ _080B3A62:
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080B3A86
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
ldr r0, =c2_800ACD4
|
||||
bl SetMainCallback2
|
||||
_080B3A86:
|
||||
@ -2761,7 +2761,7 @@ _080B3B2A:
|
||||
b _080B3BB8
|
||||
.pool
|
||||
_080B3B40:
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
ldr r0, =task00_08081A90
|
||||
movs r1, 0x1
|
||||
bl CreateTask
|
||||
@ -2779,14 +2779,14 @@ _080B3B54:
|
||||
strh r0, [r5, 0x2]
|
||||
b _080B3B96
|
||||
_080B3B68:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
adds r4, r0, 0
|
||||
bl sub_800AA48
|
||||
lsls r4, 24
|
||||
lsls r0, 24
|
||||
cmp r4, r0
|
||||
bcc _080B3BB8
|
||||
bl sub_800ABBC
|
||||
bl IsLinkMaster
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080B3B96
|
||||
|
@ -1,156 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_809D7BC
|
||||
sub_809D7BC: @ 809D7BC
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D7BC
|
||||
|
||||
thumb_func_start sub_809D7C8
|
||||
sub_809D7C8: @ 809D7C8
|
||||
push {lr}
|
||||
movs r0, 0x2
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D7C8
|
||||
|
||||
thumb_func_start sub_809D7D4
|
||||
sub_809D7D4: @ 809D7D4
|
||||
push {lr}
|
||||
movs r0, 0x3
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D7D4
|
||||
|
||||
thumb_func_start sub_809D7E0
|
||||
sub_809D7E0: @ 809D7E0
|
||||
push {lr}
|
||||
movs r0, 0x4
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D7E0
|
||||
|
||||
thumb_func_start sub_809D7EC
|
||||
sub_809D7EC: @ 809D7EC
|
||||
push {lr}
|
||||
movs r0, 0x5
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D7EC
|
||||
|
||||
thumb_func_start sub_809D7F8
|
||||
sub_809D7F8: @ 809D7F8
|
||||
push {lr}
|
||||
movs r0, 0x6
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D7F8
|
||||
|
||||
thumb_func_start sub_809D804
|
||||
sub_809D804: @ 809D804
|
||||
push {lr}
|
||||
movs r0, 0x9
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D804
|
||||
|
||||
thumb_func_start sub_809D810
|
||||
sub_809D810: @ 809D810
|
||||
push {lr}
|
||||
movs r0, 0x7
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D810
|
||||
|
||||
thumb_func_start sub_809D81C
|
||||
sub_809D81C: @ 809D81C
|
||||
push {lr}
|
||||
movs r0, 0x8
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D81C
|
||||
|
||||
thumb_func_start sub_809D828
|
||||
sub_809D828: @ 809D828
|
||||
push {lr}
|
||||
movs r0, 0xB
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D828
|
||||
|
||||
thumb_func_start sub_809D834
|
||||
sub_809D834: @ 809D834
|
||||
push {lr}
|
||||
movs r0, 0xC
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D834
|
||||
|
||||
thumb_func_start sub_809D840
|
||||
sub_809D840: @ 809D840
|
||||
push {lr}
|
||||
movs r0, 0x14
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D840
|
||||
|
||||
thumb_func_start sub_809D84C
|
||||
sub_809D84C: @ 809D84C
|
||||
push {lr}
|
||||
movs r0, 0x15
|
||||
bl sub_80AEDF0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D84C
|
||||
|
||||
thumb_func_start trigger_activate_weather
|
||||
trigger_activate_weather: @ 809D858
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
movs r2, 0
|
||||
ldr r3, =gUnknown_085102E0
|
||||
_0809D862:
|
||||
lsls r1, r2, 3
|
||||
adds r0, r1, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r4
|
||||
bne _0809D87C
|
||||
adds r0, r3, 0x4
|
||||
adds r0, r1, r0
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
b _0809D886
|
||||
.pool
|
||||
_0809D87C:
|
||||
adds r0, r2, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0xC
|
||||
bls _0809D862
|
||||
_0809D886:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end trigger_activate_weather
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
@ -2155,7 +2155,7 @@ trigger_activate: @ 809D04C
|
||||
cmp r1, 0
|
||||
bne _0809D062
|
||||
ldrb r0, [r4, 0x6]
|
||||
bl trigger_activate_weather
|
||||
bl DoCoordEventWeather
|
||||
b _0809D082
|
||||
_0809D062:
|
||||
ldrh r0, [r4, 0x6]
|
||||
|
@ -1,337 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8098128
|
||||
sub_8098128: @ 8098128
|
||||
ldr r1, =gUnknown_020375BC
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
ldr r2, =gTextFlags
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x2
|
||||
negs r0, r0
|
||||
ands r0, r1
|
||||
movs r1, 0x3
|
||||
negs r1, r1
|
||||
ands r0, r1
|
||||
subs r1, 0x2
|
||||
ands r0, r1
|
||||
subs r1, 0x4
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_8098128
|
||||
|
||||
thumb_func_start sub_8098154
|
||||
sub_8098154: @ 8098154
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
ldr r1, =gTasks
|
||||
adds r4, r0, r1
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x1
|
||||
beq _08098188
|
||||
cmp r0, 0x1
|
||||
bgt _0809817C
|
||||
cmp r0, 0
|
||||
beq _08098182
|
||||
b _080981B0
|
||||
.pool
|
||||
_0809817C:
|
||||
cmp r0, 0x2
|
||||
beq _08098198
|
||||
b _080981B0
|
||||
_08098182:
|
||||
bl sub_81973A4
|
||||
b _08098190
|
||||
_08098188:
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
bl sub_81973C4
|
||||
_08098190:
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
b _080981B0
|
||||
_08098198:
|
||||
bl sub_8197224
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x1
|
||||
beq _080981B0
|
||||
ldr r1, =gUnknown_020375BC
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
adds r0, r5, 0
|
||||
bl DestroyTask
|
||||
_080981B0:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8098154
|
||||
|
||||
thumb_func_start task_add_textbox
|
||||
task_add_textbox: @ 80981BC
|
||||
push {lr}
|
||||
ldr r0, =sub_8098154
|
||||
movs r1, 0x50
|
||||
bl CreateTask
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end task_add_textbox
|
||||
|
||||
thumb_func_start task_del_textbox
|
||||
task_del_textbox: @ 80981D0
|
||||
push {lr}
|
||||
ldr r0, =sub_8098154
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0xFF
|
||||
beq _080981E4
|
||||
bl DestroyTask
|
||||
_080981E4:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end task_del_textbox
|
||||
|
||||
thumb_func_start ShowFieldMessage
|
||||
ShowFieldMessage: @ 80981EC
|
||||
push {r4,lr}
|
||||
adds r1, r0, 0
|
||||
ldr r4, =gUnknown_020375BC
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _0809820C
|
||||
adds r0, r1, 0
|
||||
movs r1, 0x1
|
||||
bl textbox_fdecode_auto_and_task_add
|
||||
movs r0, 0x2
|
||||
strb r0, [r4]
|
||||
movs r0, 0x1
|
||||
b _0809820E
|
||||
.pool
|
||||
_0809820C:
|
||||
movs r0, 0
|
||||
_0809820E:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end ShowFieldMessage
|
||||
|
||||
thumb_func_start sub_8098214
|
||||
sub_8098214: @ 8098214
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
bl sub_8196094
|
||||
adds r1, r0, 0
|
||||
cmp r1, 0
|
||||
bne _0809822E
|
||||
ldr r0, =gUnknown_020375BC
|
||||
strb r1, [r0]
|
||||
adds r0, r4, 0
|
||||
bl DestroyTask
|
||||
_0809822E:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8098214
|
||||
|
||||
thumb_func_start sub_8098238
|
||||
sub_8098238: @ 8098238
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r5, =gUnknown_020375BC
|
||||
ldrb r0, [r5]
|
||||
cmp r0, 0
|
||||
bne _08098270
|
||||
ldr r0, =gStringVar4
|
||||
adds r1, r4, 0
|
||||
bl StringExpandPlaceholders
|
||||
ldr r0, =sub_8098214
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
adds r0, r4, 0
|
||||
bl sub_8196080
|
||||
movs r0, 0x2
|
||||
strb r0, [r5]
|
||||
movs r0, 0x1
|
||||
b _08098272
|
||||
.pool
|
||||
_08098270:
|
||||
movs r0, 0
|
||||
_08098272:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8098238
|
||||
|
||||
thumb_func_start ShowFieldAutoScrollMessage
|
||||
ShowFieldAutoScrollMessage: @ 8098278
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldr r2, =gUnknown_020375BC
|
||||
ldrb r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _08098298
|
||||
movs r0, 0x3
|
||||
strb r0, [r2]
|
||||
adds r0, r1, 0
|
||||
movs r1, 0
|
||||
bl textbox_fdecode_auto_and_task_add
|
||||
movs r0, 0x1
|
||||
b _0809829A
|
||||
.pool
|
||||
_08098298:
|
||||
movs r0, 0
|
||||
_0809829A:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end ShowFieldAutoScrollMessage
|
||||
|
||||
thumb_func_start sub_80982A0
|
||||
sub_80982A0: @ 80982A0
|
||||
push {lr}
|
||||
ldr r2, =gUnknown_020375BC
|
||||
movs r1, 0x3
|
||||
strb r1, [r2]
|
||||
movs r1, 0x1
|
||||
bl textbox_fdecode_auto_and_task_add
|
||||
movs r0, 0x1
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_80982A0
|
||||
|
||||
thumb_func_start sub_80982B8
|
||||
sub_80982B8: @ 80982B8
|
||||
push {lr}
|
||||
ldr r1, =gUnknown_020375BC
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _080982D4
|
||||
movs r0, 0x2
|
||||
strb r0, [r1]
|
||||
bl textbox_auto_and_task_add
|
||||
movs r0, 0x1
|
||||
b _080982D6
|
||||
.pool
|
||||
_080982D4:
|
||||
movs r0, 0
|
||||
_080982D6:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80982B8
|
||||
|
||||
thumb_func_start textbox_fdecode_auto_and_task_add
|
||||
textbox_fdecode_auto_and_task_add: @ 80982DC
|
||||
push {r4,lr}
|
||||
adds r2, r0, 0
|
||||
adds r4, r1, 0
|
||||
ldr r0, =gStringVar4
|
||||
adds r1, r2, 0
|
||||
bl StringExpandPlaceholders
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
adds r0, r4, 0
|
||||
bl AddTextPrinterForMessage
|
||||
bl task_add_textbox
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end textbox_fdecode_auto_and_task_add
|
||||
|
||||
thumb_func_start textbox_auto_and_task_add
|
||||
textbox_auto_and_task_add: @ 8098304
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl AddTextPrinterForMessage
|
||||
bl task_add_textbox
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end textbox_auto_and_task_add
|
||||
|
||||
thumb_func_start HideFieldMessageBox
|
||||
HideFieldMessageBox: @ 8098314
|
||||
push {lr}
|
||||
bl task_del_textbox
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8197434
|
||||
ldr r1, =gUnknown_020375BC
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end HideFieldMessageBox
|
||||
|
||||
thumb_func_start textbox_any_visible
|
||||
textbox_any_visible: @ 8098330
|
||||
ldr r0, =gUnknown_020375BC
|
||||
ldrb r0, [r0]
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end textbox_any_visible
|
||||
|
||||
thumb_func_start IsFieldMessageBoxHidden
|
||||
IsFieldMessageBoxHidden: @ 809833C
|
||||
push {lr}
|
||||
ldr r0, =gUnknown_020375BC
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08098350
|
||||
movs r0, 0
|
||||
b _08098352
|
||||
.pool
|
||||
_08098350:
|
||||
movs r0, 0x1
|
||||
_08098352:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end IsFieldMessageBoxHidden
|
||||
|
||||
thumb_func_start sub_8098358
|
||||
sub_8098358: @ 8098358
|
||||
push {lr}
|
||||
bl task_del_textbox
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
bl sub_81973FC
|
||||
ldr r1, =gUnknown_020375BC
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8098358
|
||||
|
||||
thumb_func_start sub_8098374
|
||||
sub_8098374: @ 8098374
|
||||
push {lr}
|
||||
bl task_del_textbox
|
||||
ldr r1, =gUnknown_020375BC
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8098374
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
@ -2339,43 +2339,43 @@ _080AC290:
|
||||
.4byte _080AC300
|
||||
_080AC2B8:
|
||||
movs r0, 0x1
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
b _080AC306
|
||||
_080AC2C0:
|
||||
movs r0, 0x2
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
b _080AC306
|
||||
_080AC2C8:
|
||||
movs r0, 0x3
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
b _080AC306
|
||||
_080AC2D0:
|
||||
movs r0, 0x4
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
b _080AC306
|
||||
_080AC2D8:
|
||||
movs r0, 0x5
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
b _080AC306
|
||||
_080AC2E0:
|
||||
movs r0, 0x6
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
b _080AC306
|
||||
_080AC2E8:
|
||||
movs r0, 0x9
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
b _080AC306
|
||||
_080AC2F0:
|
||||
movs r0, 0x7
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
b _080AC306
|
||||
_080AC2F8:
|
||||
movs r0, 0x8
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
b _080AC306
|
||||
_080AC300:
|
||||
movs r0, 0xB
|
||||
bl sub_80AEDF0
|
||||
bl SetWeather
|
||||
_080AC306:
|
||||
pop {r0}
|
||||
bx r0
|
||||
@ -7561,8 +7561,8 @@ SetSav1WeatherFromCurrMapHeader: @ 80AEDBC
|
||||
.pool
|
||||
thumb_func_end SetSav1WeatherFromCurrMapHeader
|
||||
|
||||
thumb_func_start sub_80AEDF0
|
||||
sub_80AEDF0: @ 80AEDF0
|
||||
thumb_func_start SetWeather
|
||||
SetWeather: @ 80AEDF0
|
||||
push {lr}
|
||||
bl SetSav1Weather
|
||||
bl GetSav1Weather
|
||||
@ -7571,7 +7571,7 @@ sub_80AEDF0: @ 80AEDF0
|
||||
bl weather_set
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80AEDF0
|
||||
thumb_func_end SetWeather
|
||||
|
||||
thumb_func_start sub_80AEE08
|
||||
sub_80AEE08: @ 80AEE08
|
||||
|
110
asm/link.s
110
asm/link.s
@ -15,7 +15,7 @@ sub_80093CC: @ 80093CC
|
||||
cmp r0, r1
|
||||
beq _080093F4
|
||||
bl sub_800B4A4
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
bl RestoreSerialTimer3IntrHandlers
|
||||
movs r0, 0
|
||||
b _080093FE
|
||||
@ -29,15 +29,15 @@ _080093FE:
|
||||
bx r1
|
||||
thumb_func_end sub_80093CC
|
||||
|
||||
thumb_func_start sub_8009404
|
||||
sub_8009404: @ 8009404
|
||||
thumb_func_start Task_DestroySelf
|
||||
Task_DestroySelf: @ 8009404
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8009404
|
||||
thumb_func_end Task_DestroySelf
|
||||
|
||||
thumb_func_start sub_8009414
|
||||
sub_8009414: @ 8009414
|
||||
@ -210,7 +210,7 @@ sub_8009570: @ 8009570
|
||||
ldr r2, =0x00001111
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
ldr r0, =gMain
|
||||
ldrh r0, [r0, 0x24]
|
||||
bl SeedRng
|
||||
@ -236,7 +236,7 @@ _080095A0:
|
||||
lsls r1, 5
|
||||
movs r0, 0
|
||||
bl SetGpuReg
|
||||
ldr r0, =sub_8009404
|
||||
ldr r0, =Task_DestroySelf
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
bl RunTasks
|
||||
@ -384,8 +384,8 @@ _08009726:
|
||||
.pool
|
||||
thumb_func_end task02_080097CC
|
||||
|
||||
thumb_func_start sub_8009734
|
||||
sub_8009734: @ 8009734
|
||||
thumb_func_start OpenLink
|
||||
OpenLink: @ 8009734
|
||||
push {r4-r6,lr}
|
||||
ldr r0, =gLinkVSyncDisabled
|
||||
ldrb r4, [r0]
|
||||
@ -443,10 +443,10 @@ _080097BE:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8009734
|
||||
thumb_func_end OpenLink
|
||||
|
||||
thumb_func_start sub_80097E8
|
||||
sub_80097E8: @ 80097E8
|
||||
thumb_func_start CloseLink
|
||||
CloseLink: @ 80097E8
|
||||
push {r4,lr}
|
||||
ldr r0, =gReceivedRemoteLinkPlayers
|
||||
movs r4, 0
|
||||
@ -464,7 +464,7 @@ _080097FC:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_80097E8
|
||||
thumb_func_end CloseLink
|
||||
|
||||
thumb_func_start sub_8009818
|
||||
sub_8009818: @ 8009818
|
||||
@ -698,7 +698,7 @@ _080099FC:
|
||||
bls _080099FC
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r5]
|
||||
ldr r0, =gUnknown_030030E0
|
||||
ldr r0, =gLinkStatus
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x40
|
||||
ands r0, r1
|
||||
@ -717,7 +717,7 @@ _080099FC:
|
||||
_08009A34:
|
||||
bl sub_800AEB4
|
||||
_08009A38:
|
||||
ldr r0, =gUnknown_030030E0
|
||||
ldr r0, =gLinkStatus
|
||||
ldrh r0, [r0]
|
||||
_08009A3C:
|
||||
pop {r4,r5}
|
||||
@ -745,7 +745,7 @@ _08009A70:
|
||||
adds r5, r0
|
||||
adds r4, 0x1
|
||||
_08009A78:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r4, r0
|
||||
@ -1378,7 +1378,7 @@ GetLinkPlayerCount: @ 8009FCC
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08009FEC
|
||||
ldr r0, =gUnknown_030030E0
|
||||
ldr r0, =gLinkStatus
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x1C
|
||||
ands r0, r1
|
||||
@ -1514,7 +1514,7 @@ sub_800A0AC: @ 800A0AC
|
||||
str r1, [r0]
|
||||
ldr r0, =gUnknown_020229C8
|
||||
strh r1, [r0]
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
@ -1532,7 +1532,7 @@ sub_800A0C8: @ 800A0C8
|
||||
beq _0800A0DA
|
||||
b _0800A214
|
||||
_0800A0DA:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r5, r0
|
||||
@ -1552,7 +1552,7 @@ _0800A0FC:
|
||||
bne _0800A10E
|
||||
ldr r0, =gUnknown_0300306C
|
||||
strb r4, [r0]
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
_0800A10E:
|
||||
movs r6, 0
|
||||
ldr r4, =gLinkPlayers
|
||||
@ -2211,7 +2211,7 @@ _0800A616:
|
||||
thumb_func_start sub_800A620
|
||||
sub_800A620: @ 800A620
|
||||
push {lr}
|
||||
ldr r0, =gUnknown_030030E0
|
||||
ldr r0, =gLinkStatus
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
@ -2499,7 +2499,7 @@ _0800A81C:
|
||||
thumb_func_start sub_800A824
|
||||
sub_800A824: @ 800A824
|
||||
push {lr}
|
||||
ldr r0, =gUnknown_030030E0
|
||||
ldr r0, =gLinkStatus
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x20
|
||||
ands r0, r1
|
||||
@ -2534,7 +2534,7 @@ task00_link_test: @ 800A850
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_800A6E8
|
||||
ldr r4, =gUnknown_030030E0
|
||||
ldr r4, =gLinkStatus
|
||||
ldr r0, [r4]
|
||||
movs r1, 0xF
|
||||
movs r2, 0x1
|
||||
@ -2606,7 +2606,7 @@ task00_link_test: @ 800A850
|
||||
movs r2, 0x6
|
||||
movs r3, 0x1
|
||||
bl sub_800A6E8
|
||||
bl sub_800B320
|
||||
bl IsLinkConnectionEstablished
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0x19
|
||||
@ -2807,7 +2807,7 @@ _0800AAB4:
|
||||
ldrb r0, [r0]
|
||||
cmp r3, r0
|
||||
bne _0800AAE4
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r1, r9
|
||||
@ -2887,7 +2887,7 @@ _0800AB5A:
|
||||
ldr r1, =gUnknown_0300306C
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
ldr r0, =c2_800ACD4
|
||||
bl SetMainCallback2
|
||||
_0800AB6A:
|
||||
@ -2918,25 +2918,25 @@ sub_800AB98: @ 800AB98
|
||||
.pool
|
||||
thumb_func_end sub_800AB98
|
||||
|
||||
thumb_func_start sub_800ABAC
|
||||
sub_800ABAC: @ 800ABAC
|
||||
ldr r0, =gUnknown_030030E0
|
||||
thumb_func_start GetLinkPlayerCount_2
|
||||
GetLinkPlayerCount_2: @ 800ABAC
|
||||
ldr r0, =gLinkStatus
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x1C
|
||||
ands r0, r1
|
||||
lsrs r0, 2
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_800ABAC
|
||||
thumb_func_end GetLinkPlayerCount_2
|
||||
|
||||
thumb_func_start sub_800ABBC
|
||||
sub_800ABBC: @ 800ABBC
|
||||
thumb_func_start IsLinkMaster
|
||||
IsLinkMaster: @ 800ABBC
|
||||
push {lr}
|
||||
ldr r0, =gLinkVSyncDisabled
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0800ABDC
|
||||
ldr r0, =gUnknown_030030E0
|
||||
ldr r0, =gLinkStatus
|
||||
ldr r0, [r0]
|
||||
lsrs r0, 5
|
||||
movs r1, 0x1
|
||||
@ -2950,7 +2950,7 @@ _0800ABDC:
|
||||
_0800ABE4:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_800ABBC
|
||||
thumb_func_end IsLinkMaster
|
||||
|
||||
thumb_func_start sub_800ABE8
|
||||
sub_800ABE8: @ 800ABE8
|
||||
@ -3074,7 +3074,7 @@ _0800ACD0:
|
||||
ldr r0, =gUnknown_03002748
|
||||
movs r4, 0x1
|
||||
strb r4, [r0]
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
ldr r1, =gUnknown_03003140
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
@ -3178,7 +3178,7 @@ _0800ADB6:
|
||||
ldr r0, =gUnknown_03002748
|
||||
movs r4, 0x1
|
||||
strb r4, [r0]
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
ldr r1, =gUnknown_03003140
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
@ -3290,7 +3290,7 @@ sub_800AEB4: @ 800AEB4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0800AEF4
|
||||
ldr r0, =gUnknown_030030E0
|
||||
ldr r0, =gLinkStatus
|
||||
ldr r2, [r0]
|
||||
movs r0, 0xFE
|
||||
lsls r0, 11
|
||||
@ -3315,7 +3315,7 @@ _0800AEEA:
|
||||
ldr r1, =gUnknown_0300306C
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
_0800AEF4:
|
||||
pop {r0}
|
||||
bx r0
|
||||
@ -3426,7 +3426,7 @@ _0800AF8C:
|
||||
ldr r1, =gSoftResetDisabled
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
ldr r0, =sub_8009404
|
||||
ldr r0, =Task_DestroySelf
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
bl StopMapMusic
|
||||
@ -3740,16 +3740,16 @@ _0800B314:
|
||||
.pool
|
||||
thumb_func_end sub_800B2F8
|
||||
|
||||
thumb_func_start sub_800B320
|
||||
sub_800B320: @ 800B320
|
||||
ldr r0, =gUnknown_030030E0
|
||||
thumb_func_start IsLinkConnectionEstablished
|
||||
IsLinkConnectionEstablished: @ 800B320
|
||||
ldr r0, =gLinkStatus
|
||||
ldr r0, [r0]
|
||||
lsrs r0, 6
|
||||
movs r1, 0x1
|
||||
ands r0, r1
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_800B320
|
||||
thumb_func_end IsLinkConnectionEstablished
|
||||
|
||||
thumb_func_start sub_800B330
|
||||
sub_800B330: @ 800B330
|
||||
@ -3864,7 +3864,7 @@ HandleLinkConnection: @ 800B40C
|
||||
ldr r1, =gSendCmd
|
||||
ldr r2, =gRecvCmds
|
||||
bl sub_800B638
|
||||
ldr r4, =gUnknown_030030E0
|
||||
ldr r4, =gLinkStatus
|
||||
str r0, [r4]
|
||||
ldr r0, =gUnknown_030022EC
|
||||
bl sub_80099E0
|
||||
@ -15025,7 +15025,7 @@ _08010E20:
|
||||
ldrb r1, [r0]
|
||||
movs r1, 0x2
|
||||
strb r1, [r0]
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
b _08010E8E
|
||||
.pool
|
||||
_08010E5C:
|
||||
@ -16613,7 +16613,7 @@ sub_8011AFC: @ 8011AFC
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
ldr r0, =gMain
|
||||
ldrh r0, [r0, 0x24]
|
||||
bl SeedRng
|
||||
@ -18142,7 +18142,7 @@ _08012848:
|
||||
movs r2, 0
|
||||
bl sub_8010F84
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0xF
|
||||
ands r0, r1
|
||||
@ -19650,7 +19650,7 @@ _08013590:
|
||||
movs r2, 0
|
||||
bl sub_8010F84
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
bl sub_8011C5C
|
||||
movs r0, 0x70
|
||||
bl AllocZeroed
|
||||
@ -20398,7 +20398,7 @@ _08013CD0:
|
||||
movs r2, 0
|
||||
bl sub_8010F84
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
bl sub_8011C5C
|
||||
movs r0, 0x1
|
||||
bl sub_80111B0
|
||||
@ -21897,7 +21897,7 @@ _08014AB0:
|
||||
movs r1, 0
|
||||
bl sub_8010FA0
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
movs r0, 0x2
|
||||
bl sub_8011C10
|
||||
movs r0, 0x1
|
||||
@ -22435,7 +22435,7 @@ _08014FA4:
|
||||
movs r2, 0
|
||||
bl sub_8010F84
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
bl sub_8011C5C
|
||||
movs r0, 0x70
|
||||
bl AllocZeroed
|
||||
@ -22823,7 +22823,7 @@ _08015358:
|
||||
movs r2, 0
|
||||
bl sub_8010F84
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
bl sub_8011C5C
|
||||
movs r0, 0x70
|
||||
bl AllocZeroed
|
||||
@ -23373,7 +23373,7 @@ _08015878:
|
||||
ldrh r2, [r2, 0xC]
|
||||
bl sub_8010FCC
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
bl sub_8011C84
|
||||
ldr r0, [r6, 0x8]
|
||||
movs r1, 0x1
|
||||
@ -25223,7 +25223,7 @@ _080169BE:
|
||||
movs r2, 0
|
||||
bl sub_8010F84
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
bl sub_8011C84
|
||||
movs r0, 0x1
|
||||
bl sub_80111B0
|
||||
@ -31098,7 +31098,7 @@ _080198FE:
|
||||
b _08019922
|
||||
.pool
|
||||
_0801990C:
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
ldr r0, [r5, 0x10]
|
||||
bl Free
|
||||
adds r0, r4, 0
|
||||
@ -31433,7 +31433,7 @@ _08019B84:
|
||||
b _08019B9C
|
||||
_08019B96:
|
||||
adds r0, r4, 0
|
||||
bl sub_8097404
|
||||
bl FreezeMapObject
|
||||
_08019B9C:
|
||||
movs r0, 0x1
|
||||
_08019B9E:
|
||||
|
@ -1495,7 +1495,7 @@ _08030478:
|
||||
b _0803048A
|
||||
.pool
|
||||
_08030480:
|
||||
ldr r0, =sub_8178974
|
||||
ldr r0, =CB2_InitMysteryEventMenu
|
||||
b _0803048A
|
||||
.pool
|
||||
_08030488:
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -109,7 +109,7 @@ _0809842A:
|
||||
cmp r0, 0
|
||||
blt _08098452
|
||||
adds r0, r1, 0
|
||||
bl sub_8097404
|
||||
bl FreezeMapObject
|
||||
movs r0, 0x1
|
||||
strh r0, [r5, 0xA]
|
||||
_08098452:
|
||||
@ -154,7 +154,7 @@ LockSelectedMapObject: @ 80984A0
|
||||
push {r4,r5,lr}
|
||||
ldr r4, =gSelectedMapObject
|
||||
ldrb r0, [r4]
|
||||
bl sub_80974D0
|
||||
bl FreezeMapObjectsExceptOne
|
||||
ldr r0, =sub_8098400
|
||||
movs r1, 0x50
|
||||
bl CreateTask
|
||||
@ -171,7 +171,7 @@ LockSelectedMapObject: @ 80984A0
|
||||
cmp r0, 0
|
||||
blt _080984DE
|
||||
adds r0, r1, 0
|
||||
bl sub_8097404
|
||||
bl FreezeMapObject
|
||||
ldr r0, =gTasks
|
||||
lsls r1, r5, 2
|
||||
adds r1, r5
|
||||
@ -317,7 +317,7 @@ _080985E8:
|
||||
cmp r0, 0
|
||||
blt _0809860C
|
||||
adds r0, r1, 0
|
||||
bl sub_8097404
|
||||
bl FreezeMapObject
|
||||
movs r0, 0x1
|
||||
strh r0, [r5, 0xA]
|
||||
_0809860C:
|
||||
@ -385,7 +385,7 @@ sub_8098630: @ 8098630
|
||||
cmp r0, 0
|
||||
blt _0809869A
|
||||
adds r0, r1, 0
|
||||
bl sub_8097404
|
||||
bl FreezeMapObject
|
||||
movs r0, 0x1
|
||||
strh r0, [r6, 0xA]
|
||||
_0809869A:
|
||||
@ -410,14 +410,14 @@ _0809869A:
|
||||
cmp r0, 0
|
||||
blt _0809871A
|
||||
adds r0, r1, 0
|
||||
bl sub_8097404
|
||||
bl FreezeMapObject
|
||||
movs r0, 0x1
|
||||
strh r0, [r4, 0xA]
|
||||
b _0809871A
|
||||
.pool
|
||||
_080986E0:
|
||||
adds r0, r4, 0
|
||||
bl sub_80974D0
|
||||
bl FreezeMapObjectsExceptOne
|
||||
ldr r0, =sub_80985BC
|
||||
movs r1, 0x50
|
||||
bl CreateTask
|
||||
@ -439,7 +439,7 @@ _080986E0:
|
||||
cmp r0, 0
|
||||
blt _0809871A
|
||||
adds r0, r1, 0
|
||||
bl sub_8097404
|
||||
bl FreezeMapObject
|
||||
movs r0, 0x1
|
||||
strh r0, [r5, 0xA]
|
||||
_0809871A:
|
||||
|
@ -1,669 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8178944
|
||||
sub_8178944: @ 8178944
|
||||
push {lr}
|
||||
bl LoadOam
|
||||
bl ProcessSpriteCopyRequests
|
||||
bl TransferPlttBuffer
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8178944
|
||||
|
||||
thumb_func_start sub_8178958
|
||||
sub_8178958: @ 8178958
|
||||
push {lr}
|
||||
movs r2, 0
|
||||
ldr r1, =gLinkPlayers
|
||||
ldrh r0, [r1, 0x1A]
|
||||
ldrh r1, [r1, 0x36]
|
||||
cmp r0, r1
|
||||
bne _08178968
|
||||
movs r2, 0x1
|
||||
_08178968:
|
||||
adds r0, r2, 0
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_8178958
|
||||
|
||||
thumb_func_start sub_8178974
|
||||
sub_8178974: @ 8178974
|
||||
push {r4,lr}
|
||||
sub sp, 0x8
|
||||
bl ResetSpriteData
|
||||
bl FreeAllSpritePalettes
|
||||
bl ResetTasks
|
||||
ldr r0, =sub_8178944
|
||||
bl SetVBlankCallback
|
||||
movs r0, 0
|
||||
bl ResetBgsAndClearDma3BusyFlags
|
||||
ldr r1, =gUnknown_085EFD64
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
bl InitBgsFromTemplates
|
||||
ldr r0, =gUnknown_085EFD68
|
||||
bl InitWindows
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
beq _08178A22
|
||||
bl DeactivateAllTextPrinters
|
||||
movs r4, 0
|
||||
_081789AC:
|
||||
lsls r0, r4, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0
|
||||
bl FillWindowPixelBuffer
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x1
|
||||
ble _081789AC
|
||||
movs r0, 0x1E
|
||||
str r0, [sp]
|
||||
movs r0, 0x14
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect_Palette0
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0xD0
|
||||
bl sub_809882C
|
||||
movs r0, 0xE0
|
||||
bl sub_81978B0
|
||||
movs r1, 0xA0
|
||||
lsls r1, 1
|
||||
movs r0, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x50
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
ldr r0, =sub_8009404
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
bl StopMapMusic
|
||||
bl RunTasks
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
bl RunTextPrinters
|
||||
bl UpdatePaletteFade
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0x2
|
||||
bl FillPalette
|
||||
ldr r0, =sub_8178A78
|
||||
bl SetMainCallback2
|
||||
_08178A22:
|
||||
add sp, 0x8
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8178974
|
||||
|
||||
thumb_func_start sub_8178A40
|
||||
sub_8178A40: @ 8178A40
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r5, 0x1
|
||||
cmp r4, 0
|
||||
bne _08178A54
|
||||
ldr r1, =gText_EventSafelyLoaded
|
||||
bl StringCopy
|
||||
movs r5, 0
|
||||
_08178A54:
|
||||
cmp r4, 0x2
|
||||
bne _08178A5A
|
||||
movs r5, 0
|
||||
_08178A5A:
|
||||
cmp r4, 0x1
|
||||
bne _08178A66
|
||||
ldr r1, =gText_LoadErrorEndingSession
|
||||
adds r0, r6, 0
|
||||
bl StringCopy
|
||||
_08178A66:
|
||||
adds r0, r5, 0
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_8178A40
|
||||
|
||||
thumb_func_start sub_8178A78
|
||||
sub_8178A78: @ 8178A78
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x8
|
||||
ldr r1, =gMain
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
adds r4, r1, 0
|
||||
cmp r0, 0x10
|
||||
bls _08178A8E
|
||||
b _08178E58
|
||||
_08178A8E:
|
||||
lsls r0, 2
|
||||
ldr r1, =_08178AA0
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.pool
|
||||
.align 2, 0
|
||||
_08178AA0:
|
||||
.4byte _08178AE4
|
||||
.4byte _08178B12
|
||||
.4byte _08178B48
|
||||
.4byte _08178B80
|
||||
.4byte _08178BCC
|
||||
.4byte _08178BDC
|
||||
.4byte _08178C54
|
||||
.4byte _08178D28
|
||||
.4byte _08178D38
|
||||
.4byte _08178D58
|
||||
.4byte _08178D60
|
||||
.4byte _08178D74
|
||||
.4byte _08178DBC
|
||||
.4byte _08178DE0
|
||||
.4byte _08178E0C
|
||||
.4byte _08178E24
|
||||
.4byte _08178E48
|
||||
_08178AE4:
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
movs r3, 0xD
|
||||
bl SetWindowBorderStyle
|
||||
movs r0, 0
|
||||
bl PutWindowTilemap
|
||||
movs r0, 0
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
movs r0, 0
|
||||
bl ShowBg
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
b _08178E30
|
||||
_08178B12:
|
||||
ldr r0, =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08178B20
|
||||
b _08178E58
|
||||
_08178B20:
|
||||
ldr r1, =gText_LinkStandby2
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_8178EC4
|
||||
ldr r1, =gMain
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
adds r1, r2
|
||||
b _08178E3C
|
||||
.pool
|
||||
_08178B48:
|
||||
movs r0, 0
|
||||
bl IsTextPrinterActive
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
beq _08178B56
|
||||
b _08178E58
|
||||
_08178B56:
|
||||
ldr r1, =gMain
|
||||
movs r0, 0x87
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r1, =gLinkType
|
||||
ldr r2, =0x00005501
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
bl sub_8009734
|
||||
b _08178E58
|
||||
.pool
|
||||
_08178B80:
|
||||
ldr r0, =gUnknown_030030E0
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08178B8E
|
||||
b _08178D00
|
||||
_08178B8E:
|
||||
movs r0, 0x1C
|
||||
ands r1, r0
|
||||
cmp r1, 0x4
|
||||
bhi _08178B98
|
||||
b _08178D00
|
||||
_08178B98:
|
||||
movs r0, 0x15
|
||||
bl PlaySE
|
||||
ldr r1, =gText_PressAToLoadEvent
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_8178EC4
|
||||
ldr r1, =gMain
|
||||
movs r0, 0x87
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
b _08178D00
|
||||
.pool
|
||||
_08178BCC:
|
||||
movs r0, 0
|
||||
bl IsTextPrinterActive
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
beq _08178BDA
|
||||
b _08178E58
|
||||
_08178BDA:
|
||||
b _08178E34
|
||||
_08178BDC:
|
||||
bl sub_800ABAC
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0x2
|
||||
bne _08178CD0
|
||||
ldr r4, =gMain
|
||||
ldrh r1, [r4, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08178C38
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
bl sub_800A620
|
||||
movs r0, 0x1
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
movs r3, 0xD
|
||||
bl SetWindowBorderStyle
|
||||
ldr r1, =gText_LoadingEvent
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x1
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_8178EC4
|
||||
movs r0, 0x1
|
||||
bl PutWindowTilemap
|
||||
movs r0, 0x1
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
adds r1, r4, r2
|
||||
b _08178E3C
|
||||
.pool
|
||||
_08178C38:
|
||||
adds r0, r2, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08178C42
|
||||
b _08178E58
|
||||
_08178C42:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
bl sub_80097E8
|
||||
movs r0, 0x87
|
||||
lsls r0, 3
|
||||
adds r1, r4, r0
|
||||
b _08178D1E
|
||||
_08178C54:
|
||||
bl sub_800B320
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08178D00
|
||||
ldr r0, =gReceivedRemoteLinkPlayers
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08178C68
|
||||
b _08178E58
|
||||
_08178C68:
|
||||
movs r0, 0x2
|
||||
movs r1, 0x2
|
||||
bl sub_800A0C8
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x3
|
||||
bne _08178CAC
|
||||
bl sub_800AC34
|
||||
ldr r4, =gStringVar4
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8178A40
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
movs r0, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_8178EC4
|
||||
ldr r0, =gMain
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
adds r0, r2
|
||||
b _08178CF2
|
||||
.pool
|
||||
_08178CAC:
|
||||
bl sub_8178958
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08178CCC
|
||||
ldr r1, =gText_DontRemoveCableTurnOff
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_8178EC4
|
||||
b _08178E34
|
||||
.pool
|
||||
_08178CCC:
|
||||
bl sub_80097E8
|
||||
_08178CD0:
|
||||
ldr r4, =gStringVar4
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8178A40
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
movs r0, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_8178EC4
|
||||
ldr r0, =gMain
|
||||
movs r1, 0x87
|
||||
lsls r1, 3
|
||||
adds r0, r1
|
||||
_08178CF2:
|
||||
movs r1, 0xD
|
||||
strb r1, [r0]
|
||||
b _08178E58
|
||||
.pool
|
||||
_08178D00:
|
||||
ldr r4, =gMain
|
||||
ldrh r1, [r4, 0x2E]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08178D0E
|
||||
b _08178E58
|
||||
_08178D0E:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
bl sub_80097E8
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
adds r1, r4, r2
|
||||
_08178D1E:
|
||||
movs r0, 0xF
|
||||
strb r0, [r1]
|
||||
b _08178E58
|
||||
.pool
|
||||
_08178D28:
|
||||
movs r0, 0
|
||||
bl IsTextPrinterActive
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
beq _08178D36
|
||||
b _08178E58
|
||||
_08178D36:
|
||||
b _08178E34
|
||||
_08178D38:
|
||||
bl GetBlockReceivedStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08178D44
|
||||
b _08178E58
|
||||
_08178D44:
|
||||
bl ResetBlockReceivedFlags
|
||||
ldr r1, =gMain
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
adds r1, r2
|
||||
b _08178E3C
|
||||
.pool
|
||||
_08178D58:
|
||||
movs r0, 0x87
|
||||
lsls r0, 3
|
||||
adds r1, r4, r0
|
||||
b _08178E3C
|
||||
_08178D60:
|
||||
bl sub_800AC34
|
||||
ldr r1, =gMain
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
adds r1, r2
|
||||
b _08178E3C
|
||||
.pool
|
||||
_08178D74:
|
||||
ldr r0, =gReceivedRemoteLinkPlayers
|
||||
ldrb r6, [r0]
|
||||
cmp r6, 0
|
||||
bne _08178E58
|
||||
ldr r5, =0x0201c000
|
||||
adds r0, r5, 0
|
||||
bl RunMysteryEventScript
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
str r6, [sp, 0x4]
|
||||
ldr r2, =0x050001f5
|
||||
add r0, sp, 0x4
|
||||
adds r1, r5, 0
|
||||
bl CpuSet
|
||||
ldr r0, =gStringVar4
|
||||
adds r1, r4, 0
|
||||
bl sub_8178A40
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08178E34
|
||||
movs r0, 0
|
||||
bl TrySavingData
|
||||
b _08178E34
|
||||
.pool
|
||||
_08178DBC:
|
||||
ldr r1, =gStringVar4
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_8178EC4
|
||||
ldr r1, =gMain
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
adds r1, r2
|
||||
b _08178E3C
|
||||
.pool
|
||||
_08178DE0:
|
||||
movs r0, 0
|
||||
bl IsTextPrinterActive
|
||||
lsls r0, 16
|
||||
lsrs r2, r0, 16
|
||||
cmp r2, 0
|
||||
bne _08178E58
|
||||
ldr r0, =gMain
|
||||
movs r1, 0x87
|
||||
lsls r1, 3
|
||||
adds r0, r1
|
||||
ldrb r1, [r0]
|
||||
adds r1, 0x1
|
||||
strb r1, [r0]
|
||||
ldr r0, =gUnknown_0203BCF8
|
||||
strb r2, [r0]
|
||||
b _08178E58
|
||||
.pool
|
||||
_08178E0C:
|
||||
ldrh r1, [r4, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08178E58
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
adds r1, r4, r2
|
||||
b _08178E3C
|
||||
_08178E24:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
_08178E30:
|
||||
bl BeginNormalPaletteFade
|
||||
_08178E34:
|
||||
ldr r1, =gMain
|
||||
movs r0, 0x87
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
_08178E3C:
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
b _08178E58
|
||||
.pool
|
||||
_08178E48:
|
||||
ldr r0, =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08178E58
|
||||
bl DoSoftReset
|
||||
_08178E58:
|
||||
ldr r0, =gUnknown_030030E0
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08178E98
|
||||
bl sub_800ABBC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08178E98
|
||||
bl sub_80097E8
|
||||
ldr r4, =gStringVar4
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8178A40
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
movs r0, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_8178EC4
|
||||
ldr r0, =gMain
|
||||
movs r1, 0x87
|
||||
lsls r1, 3
|
||||
adds r0, r1
|
||||
movs r1, 0xD
|
||||
strb r1, [r0]
|
||||
_08178E98:
|
||||
bl RunTasks
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
bl RunTextPrinters
|
||||
bl UpdatePaletteFade
|
||||
add sp, 0x8
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8178A78
|
||||
|
||||
thumb_func_start sub_8178EC4
|
||||
sub_8178EC4: @ 8178EC4
|
||||
push {r4-r6,lr}
|
||||
mov r6, r10
|
||||
mov r5, r9
|
||||
mov r4, r8
|
||||
push {r4-r6}
|
||||
sub sp, 0x1C
|
||||
adds r5, r0, 0
|
||||
mov r10, r1
|
||||
adds r6, r2, 0
|
||||
ldr r4, [sp, 0x38]
|
||||
lsls r5, 24
|
||||
lsrs r5, 24
|
||||
lsls r6, 24
|
||||
lsrs r6, 24
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
movs r0, 0
|
||||
mov r9, r0
|
||||
movs r1, 0x1
|
||||
mov r8, r1
|
||||
add r0, sp, 0x14
|
||||
mov r1, r8
|
||||
strb r1, [r0]
|
||||
adds r1, r0, 0
|
||||
movs r0, 0x2
|
||||
strb r0, [r1, 0x1]
|
||||
movs r0, 0x3
|
||||
strb r0, [r1, 0x2]
|
||||
adds r0, r1, 0
|
||||
ldrb r0, [r0]
|
||||
lsls r1, r0, 4
|
||||
orrs r1, r0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
adds r0, r5, 0
|
||||
str r3, [sp, 0x18]
|
||||
bl FillWindowPixelBuffer
|
||||
mov r0, r9
|
||||
str r0, [sp]
|
||||
mov r1, r8
|
||||
str r1, [sp, 0x4]
|
||||
add r0, sp, 0x14
|
||||
str r0, [sp, 0x8]
|
||||
lsls r4, 24
|
||||
asrs r4, 24
|
||||
str r4, [sp, 0xC]
|
||||
mov r1, r10
|
||||
str r1, [sp, 0x10]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x1
|
||||
adds r2, r6, 0
|
||||
ldr r3, [sp, 0x18]
|
||||
bl AddTextPrinterParameterized2
|
||||
add sp, 0x1C
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8178EC4
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
@ -3584,7 +3584,7 @@ sub_808631C: @ 808631C
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0808632E
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
_0808632E:
|
||||
ldr r0, =gLinkVSyncDisabled
|
||||
ldrb r0, [r0]
|
||||
|
@ -28072,7 +28072,7 @@ sub_81D4E30: @ 81D4E30
|
||||
ldr r2, =0x00005503
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
movs r0, 0x1
|
||||
bl sub_800B330
|
||||
pop {r0}
|
||||
@ -28128,11 +28128,11 @@ _081D4EBA:
|
||||
thumb_func_start sub_81D4EC0
|
||||
sub_81D4EC0: @ 81D4EC0
|
||||
push {lr}
|
||||
bl sub_800ABBC
|
||||
bl IsLinkMaster
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _081D4EDC
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
@ -28186,11 +28186,11 @@ _081D4F20:
|
||||
.4byte _081D4FEC
|
||||
.4byte _081D4FF8
|
||||
_081D4F38:
|
||||
bl sub_800ABBC
|
||||
bl IsLinkMaster
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _081D4F88
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
@ -28212,7 +28212,7 @@ _081D4F54:
|
||||
strb r0, [r4]
|
||||
b _081D500C
|
||||
_081D4F6C:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
@ -28248,7 +28248,7 @@ _081D4FA0:
|
||||
movs r0, 0x5
|
||||
b _081D500E
|
||||
_081D4FB6:
|
||||
bl sub_800B320
|
||||
bl IsLinkConnectionEstablished
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _081D500C
|
||||
@ -28447,7 +28447,7 @@ _081D515C:
|
||||
beq _081D5166
|
||||
b _081D52FC
|
||||
_081D5166:
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
b _081D525C
|
||||
_081D516C:
|
||||
adds r0, r4, 0
|
||||
@ -28500,20 +28500,20 @@ _081D51D0:
|
||||
beq _081D51F4
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
adds r0, r4, 0
|
||||
bl sub_81D505C
|
||||
b _081D535A
|
||||
.pool
|
||||
_081D51F4:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bls _081D5210
|
||||
adds r0, r4, 0
|
||||
bl sub_81D505C
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
movs r0, 0x7
|
||||
strb r0, [r4, 0x8]
|
||||
b _081D548A
|
||||
@ -28523,7 +28523,7 @@ _081D5210:
|
||||
beq _081D522E
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
adds r0, r4, 0
|
||||
bl sub_81D505C
|
||||
movs r0, 0x8
|
||||
@ -28537,7 +28537,7 @@ _081D522E:
|
||||
bne _081D523C
|
||||
b _081D548A
|
||||
_081D523C:
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
bl sub_81D4E30
|
||||
adds r0, r4, 0
|
||||
bl sub_81D505C
|
||||
@ -28654,13 +28654,13 @@ _081D5340:
|
||||
_081D5350:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
_081D535A:
|
||||
movs r0, 0x17
|
||||
strb r0, [r4, 0x8]
|
||||
b _081D548A
|
||||
_081D5360:
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
movs r0, 0x15
|
||||
strb r0, [r4, 0x8]
|
||||
b _081D548A
|
||||
@ -28670,7 +28670,7 @@ _081D536A:
|
||||
cmp r0, 0
|
||||
beq _081D537A
|
||||
_081D5374:
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
b _081D53C0
|
||||
_081D537A:
|
||||
bl GetBlockReceivedStatus
|
||||
|
@ -765,10 +765,10 @@ _080E73B0:
|
||||
movs r0, 0x65
|
||||
b _080E7564
|
||||
_080E73B8:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
bl sub_800ABBC
|
||||
bl IsLinkMaster
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
@ -796,7 +796,7 @@ _080E73EA:
|
||||
_080E73F8:
|
||||
bl sub_800AA48
|
||||
adds r4, r0, 0
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r4, 24
|
||||
lsls r0, 24
|
||||
cmp r4, r0
|
||||
@ -808,7 +808,7 @@ _080E740C:
|
||||
strh r4, [r5, 0x20]
|
||||
lsls r4, 16
|
||||
asrs r4, 16
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 4
|
||||
@ -824,7 +824,7 @@ _080E742A:
|
||||
_080E7432:
|
||||
bl sub_800AA48
|
||||
adds r4, r0, 0
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r4, 24
|
||||
lsls r0, 24
|
||||
cmp r4, r0
|
||||
@ -868,7 +868,7 @@ _080E746E:
|
||||
b _080E7564
|
||||
.pool
|
||||
_080E7490:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0
|
||||
|
@ -553,7 +553,7 @@ _080D36DC:
|
||||
adds r1, r6, 0
|
||||
bl sub_80D355C
|
||||
adds r0, r4, 0
|
||||
bl sub_8097404
|
||||
bl FreezeMapObject
|
||||
b _080D370E
|
||||
.pool
|
||||
_080D36F8:
|
||||
|
18
asm/trade.s
18
asm/trade.s
@ -416,12 +416,12 @@ _080774B2:
|
||||
cmp r0, 0
|
||||
beq _08077528
|
||||
bl sub_800B488
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
bl sub_8011BA4
|
||||
b _08077B46
|
||||
.pool
|
||||
_08077528:
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
ldr r0, =gMain
|
||||
movs r7, 0x87
|
||||
lsls r7, 3
|
||||
@ -466,7 +466,7 @@ _0807757A:
|
||||
b _08077B22
|
||||
.pool
|
||||
_0807758C:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
adds r4, r0, 0
|
||||
bl sub_800AA48
|
||||
lsls r4, 24
|
||||
@ -475,7 +475,7 @@ _0807758C:
|
||||
bcs _080775A0
|
||||
b _08077B46
|
||||
_080775A0:
|
||||
bl sub_800ABBC
|
||||
bl IsLinkMaster
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080775D8
|
||||
@ -7026,7 +7026,7 @@ _0807AC92:
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
bls _0807ACC4
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
ldr r0, =c2_800ACD4
|
||||
bl SetMainCallback2
|
||||
ldr r1, [r4]
|
||||
@ -7264,7 +7264,7 @@ _0807AEAC:
|
||||
ldr r2, =0x00001144
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
bl sub_80097E8
|
||||
bl CloseLink
|
||||
_0807AEC0:
|
||||
ldr r4, =gUnknown_020322A0
|
||||
movs r5, 0x80
|
||||
@ -7332,7 +7332,7 @@ _0807AF58:
|
||||
adds r0, 0xFA
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
bl sub_8009734
|
||||
bl OpenLink
|
||||
ldr r1, =gMain
|
||||
movs r2, 0x87
|
||||
lsls r2, 3
|
||||
@ -7369,13 +7369,13 @@ _0807AFAC:
|
||||
b _0807B0E4
|
||||
.pool
|
||||
_0807AFBC:
|
||||
bl sub_800ABBC
|
||||
bl IsLinkMaster
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807AFC8
|
||||
b _0807B0DC
|
||||
_0807AFC8:
|
||||
bl sub_800ABAC
|
||||
bl GetLinkPlayerCount_2
|
||||
adds r4, r0, 0
|
||||
bl sub_800AA48
|
||||
lsls r4, 24
|
||||
|
@ -1,21 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_085102E0:: @ 85102E0
|
||||
.4byte 0x00000001, sub_809D7BC
|
||||
.4byte 0x00000002, sub_809D7C8
|
||||
.4byte 0x00000003, sub_809D7D4
|
||||
.4byte 0x00000004, sub_809D7E0
|
||||
.4byte 0x00000005, sub_809D7EC
|
||||
.4byte 0x00000006, sub_809D7F8
|
||||
.4byte 0x00000007, sub_809D804
|
||||
.4byte 0x00000008, sub_809D810
|
||||
.4byte 0x00000009, sub_809D81C
|
||||
.4byte 0x0000000a, sub_809D828
|
||||
.4byte 0x0000000b, sub_809D834
|
||||
.4byte 0x00000014, sub_809D840
|
||||
.4byte 0x00000015, sub_809D84C
|
||||
|
@ -1,12 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
gUnknown_085EFD64:: @ 85EFD64
|
||||
.4byte 0x1F8
|
||||
|
||||
gUnknown_085EFD68:: @ 85EFD68
|
||||
window_template 0, 4, 15, 22, 4, 14, 20
|
||||
window_template 0, 7, 6, 16, 4, 14, 0x6C
|
||||
null_window_template
|
@ -231,7 +231,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276C9D:: @ 8276C9D
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_276CB5:: @ 8276CB5
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
setvar VAR_0x4087, 0
|
||||
compare VAR_0x8007, 0
|
||||
goto_eq OldaleTown_PokemonCenter_2F_EventScript_276DD5
|
||||
@ -254,7 +254,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276CE7:: @ 8276CE7
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_276CFF:: @ 8276CFF
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
setvar VAR_0x4087, 0
|
||||
compare VAR_0x8007, 0
|
||||
goto_eq OldaleTown_PokemonCenter_2F_EventScript_276DD5
|
||||
@ -276,7 +276,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276D2C:: @ 8276D2C
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_276D44:: @ 8276D44
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
setvar VAR_0x4087, 0
|
||||
applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27734F
|
||||
waitmovement 0
|
||||
@ -501,25 +501,25 @@ OldaleTown_PokemonCenter_2F_EventScript_277046:: @ 8277046
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_277072:: @ 8277072
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_27833D, 4
|
||||
goto OldaleTown_PokemonCenter_2F_EventScript_2770A5
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_277083:: @ 8277083
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_278307, 4
|
||||
goto OldaleTown_PokemonCenter_2F_EventScript_2770A5
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_277094:: @ 8277094
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_2782D1, 4
|
||||
goto OldaleTown_PokemonCenter_2F_EventScript_2770A5
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_2770A5:: @ 82770A5
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_278372, 4
|
||||
release
|
||||
end
|
||||
@ -658,45 +658,45 @@ OldaleTown_PokemonCenter_2F_EventScript_27724C:: @ 827724C
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_2772AB:: @ 82772AB
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_278565, 4
|
||||
release
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_2772B8:: @ 82772B8
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_2785C9, 4
|
||||
release
|
||||
end
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2772C5:: @ 82772C5
|
||||
OldaleTown_PokemonCenter_2F_EventScript_2772C5:: @ 82772C5
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_27821C, 4
|
||||
release
|
||||
end
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_2772D2:: @ 82772D2
|
||||
OldaleTown_PokemonCenter_2F_EventScript_2772D2:: @ 82772D2
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_2781C7, 4
|
||||
release
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_2772DF:: @ 82772DF
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_278255, 4
|
||||
release
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_2772EC:: @ 82772EC
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_278291, 4
|
||||
release
|
||||
end
|
||||
|
||||
MossdeepCity_GameCorner_1F_EventScript_2772F9:: @ 82772F9
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox MossdeepCity_GameCorner_1F_Text_278D51, 4
|
||||
release
|
||||
end
|
||||
@ -708,19 +708,19 @@ OldaleTown_PokemonCenter_2F_EventScript_277306:: @ 8277306
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_27730E:: @ 827730E
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_2782A8, 4
|
||||
release
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_27731B:: @ 827731B
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_2785E9, 4
|
||||
release
|
||||
end
|
||||
|
||||
OldaleTown_PokemonCenter_2F_EventScript_277328:: @ 8277328
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox OldaleTown_PokemonCenter_2F_Text_278651, 4
|
||||
release
|
||||
end
|
||||
|
@ -725,7 +725,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F0E3:: @ 823F0E3
|
||||
special copy_player_party_from_sav1
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_23F0E6:: @ 823F0E6
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox BattleFrontier_BattleTowerLobby_Text_23FD07, 4
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_23F0F1:: @ 823F0F1
|
||||
@ -951,7 +951,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F2C5:: @ 823F2C5
|
||||
end
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_23F327:: @ 823F327
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
compare VAR_0x8005, 3
|
||||
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F33F
|
||||
msgbox BattleFrontier_BattleTowerLobby_Text_278255, 4
|
||||
@ -966,13 +966,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F33F:: @ 823F33F
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_23F351:: @ 823F351
|
||||
msgbox BattleFrontier_BattleTowerLobby_Text_241240, 4
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox BattleFrontier_BattleTowerLobby_Text_2782A8, 4
|
||||
release
|
||||
end
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_23F366:: @ 823F366
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
compare VAR_0x8005, 0
|
||||
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F394
|
||||
compare VAR_0x8005, 1
|
||||
|
@ -709,7 +709,7 @@ LilycoveCity_ContestLobby_EventScript_21A971:: @ 821A971
|
||||
end
|
||||
|
||||
LilycoveCity_ContestLobby_EventScript_21A97F:: @ 821A97F
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox LilycoveCity_ContestLobby_Text_27BD4F, 4
|
||||
release
|
||||
end
|
||||
@ -811,13 +811,13 @@ LilycoveCity_ContestLobby_EventScript_21AAE1:: @ 821AAE1
|
||||
end
|
||||
|
||||
LilycoveCity_ContestLobby_EventScript_21AAEF:: @ 821AAEF
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox LilycoveCity_ContestLobby_Text_27821C, 4
|
||||
release
|
||||
end
|
||||
|
||||
LilycoveCity_ContestLobby_EventScript_21AAFC:: @ 821AAFC
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox LilycoveCity_ContestLobby_Text_27C879, 4
|
||||
release
|
||||
end
|
||||
|
@ -655,25 +655,25 @@ LilycoveCity_ContestLobby_EventScript_29416C:: @ 829416C
|
||||
end
|
||||
|
||||
LilycoveCity_ContestLobby_EventScript_294176:: @ 8294176
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox LilycoveCity_ContestLobby_Text_2781C7, 4
|
||||
releaseall
|
||||
end
|
||||
|
||||
LilycoveCity_ContestLobby_EventScript_294183:: @ 8294183
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox LilycoveCity_ContestLobby_Text_278255, 4
|
||||
releaseall
|
||||
end
|
||||
|
||||
LilycoveCity_ContestLobby_EventScript_294190:: @ 8294190
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox gUnknown_08272D9C, 4
|
||||
releaseall
|
||||
end
|
||||
|
||||
LilycoveCity_ContestLobby_EventScript_29419D:: @ 829419D
|
||||
special sub_80097E8
|
||||
special CloseLink
|
||||
msgbox LilycoveCity_ContestLobby_Text_27821C, 4
|
||||
releaseall
|
||||
end
|
||||
|
@ -40,7 +40,7 @@ gSpecials:: @ 81DBA64
|
||||
def_special sub_80B2E4C
|
||||
def_special sub_80B2E74
|
||||
def_special sub_80B2EA8
|
||||
def_special sub_80097E8
|
||||
def_special CloseLink
|
||||
def_special sub_80B3968
|
||||
def_special sub_80B3924
|
||||
def_special nullsub_37
|
||||
|
39
include/constants/weather.h
Normal file
39
include/constants/weather.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef GUARD_CONSTANTS_WEATHER_H
|
||||
#define GUARD_CONSTANTS_WEATHER_H
|
||||
|
||||
#define WEATHER_NONE 0
|
||||
#define WEATHER_CLOUDS 1
|
||||
#define WEATHER_SUNNY 2
|
||||
#define WEATHER_RAIN_LIGHT 3
|
||||
#define WEATHER_SNOW 4
|
||||
#define WEATHER_RAIN_MED 5
|
||||
#define WEATHER_FOG_1 6
|
||||
#define WEATHER_ASH 7
|
||||
#define WEATHER_SANDSTORM 8
|
||||
#define WEATHER_FOG_2 9
|
||||
#define WEATHER_FOG_3 10
|
||||
#define WEATHER_SHADE 11
|
||||
#define WEATHER_DROUGHT 12
|
||||
#define WEATHER_RAIN_HEAVY 13
|
||||
#define WEATHER_BUBBLES 14
|
||||
#define WEATHER_ROUTE119_CYCLE 20
|
||||
#define WEATHER_ROUTE123_CYCLE 21
|
||||
|
||||
// These are used in maps' coord_weather_event entries.
|
||||
// They are not a one-to-one mapping with the engine's
|
||||
// internal weather constants above.
|
||||
#define COORD_EVENT_WEATHER_CLOUDS 1
|
||||
#define COORD_EVENT_WEATHER_SUNNY 2
|
||||
#define COORD_EVENT_WEATHER_RAIN_LIGHT 3
|
||||
#define COORD_EVENT_WEATHER_SNOW 4
|
||||
#define COORD_EVENT_WEATHER_RAIN_MED 5
|
||||
#define COORD_EVENT_WEATHER_FOG_1 6
|
||||
#define COORD_EVENT_WEATHER_FOG_2 7
|
||||
#define COORD_EVENT_WEATHER_ASH 8
|
||||
#define COORD_EVENT_WEATHER_SANDSTORM 9
|
||||
#define COORD_EVENT_WEATHER_SHADE 10
|
||||
#define COORD_EVENT_WEATHER_DROUGHT 11
|
||||
#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20
|
||||
#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21
|
||||
|
||||
#endif // GUARD_CONSTANTS_WEATHER_H
|
6
include/coord_event_weather.h
Normal file
6
include/coord_event_weather.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_COORD_EVENT_WEATHER_H
|
||||
#define GUARD_COORD_EVENT_WEATHER_H
|
||||
|
||||
void DoCoordEventWeather(u8);
|
||||
|
||||
#endif // GUARD_COORD_EVENT_WEATHER_H
|
@ -1,7 +1,31 @@
|
||||
#ifndef GUARD_FIELDMAPOBJHELP_H
|
||||
#define GUARD_FIELDMAPOBJHELP_H
|
||||
#ifndef GUARD_FIELD_MAP_OBJ_HELPERS_H
|
||||
#define GUARD_FIELD_MAP_OBJ_HELPERS_H
|
||||
|
||||
// Exported type declarations
|
||||
|
||||
// Exported RAM declarations
|
||||
extern u8 *gUnknown_020375B8;
|
||||
|
||||
// Exported ROM declarations
|
||||
void sub_8097AC8(struct Sprite *);
|
||||
void npc_sync_anim_pause_bits(struct MapObject *);
|
||||
void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
|
||||
u8 sub_8097F78(struct MapObject *);
|
||||
bool8 obj_npc_ministep(struct Sprite *sprite);
|
||||
bool8 sub_80976EC(struct Sprite *sprite);
|
||||
void sub_80976DC(struct Sprite *, u8);
|
||||
void sub_809783C(struct Sprite *, u8, u8, u8);
|
||||
void DoShadowFieldEffect(struct MapObject *);
|
||||
u8 sub_809785C(struct Sprite *);
|
||||
u8 sub_80978E4(struct Sprite *);
|
||||
void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
|
||||
bool8 sub_80979BC(struct Sprite *);
|
||||
void sub_8097750(struct Sprite *);
|
||||
bool8 sub_8097758(struct Sprite *);
|
||||
void sub_8097FA4(struct MapObject *);
|
||||
void sub_8098044(u8);
|
||||
void UnfreezeMapObjects(void);
|
||||
void FreezeMapObjectsExceptOne(u8 mapObjectId);
|
||||
void sub_8097B78(u8, u8);
|
||||
|
||||
#endif
|
||||
#endif //GUARD_FIELD_MAP_OBJ_HELPERS_H
|
||||
|
@ -150,6 +150,8 @@ void PlayRainSoundEffect(void);
|
||||
// ...
|
||||
void SetSav1Weather(u32);
|
||||
u8 GetSav1Weather(void);
|
||||
void sub_80AEDBC(void);
|
||||
|
||||
void SetSav1WeatherFromCurrMapHeader(void);
|
||||
// ...
|
||||
void DoCurrentWeather(void);
|
||||
|
@ -143,8 +143,9 @@ extern struct LinkPlayer gLinkPlayers[];
|
||||
extern u16 word_3002910[];
|
||||
extern bool8 gReceivedRemoteLinkPlayers;
|
||||
extern bool8 gLinkVSyncDisabled;
|
||||
extern u32 gLinkStatus;
|
||||
|
||||
void Task_DestroySelf(u8);
|
||||
void Task_DestroySelf(u8 taskId);
|
||||
void OpenLink(void);
|
||||
void CloseLink(void);
|
||||
u16 LinkMain2(u16 *);
|
||||
@ -188,11 +189,10 @@ bool8 sub_8010500(void);
|
||||
void sub_800DFB4(u8, u8);
|
||||
void sub_800ADF8(void);
|
||||
void sub_800B488(void);
|
||||
void sub_8009734(void);
|
||||
void OpenLink(void);
|
||||
void sub_800A620(void);
|
||||
void sub_8011BD0(void);
|
||||
u8 sub_800ABAC(void);
|
||||
u8 sub_800ABBC(void);
|
||||
void sub_800AC34(void);
|
||||
u8 sub_800A0C8(s32, s32);
|
||||
|
||||
#endif // GUARD_LINK_H
|
||||
|
@ -1,34 +0,0 @@
|
||||
//
|
||||
// Created by scott on 9/7/2017.
|
||||
//
|
||||
|
||||
#ifndef GUARD_MAP_OBJ_8097404_H
|
||||
#define GUARD_MAP_OBJ_8097404_H
|
||||
|
||||
// Exported type declarations
|
||||
|
||||
// Exported RAM declarations
|
||||
extern void *gUnknown_020375B8;
|
||||
|
||||
// Exported ROM declarations
|
||||
void sub_8097AC8(struct Sprite *);
|
||||
void npc_sync_anim_pause_bits(struct MapObject *);
|
||||
void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
|
||||
u8 sub_8097F78(struct MapObject *);
|
||||
bool8 obj_npc_ministep(struct Sprite *sprite);
|
||||
bool8 sub_80976EC(struct Sprite *sprite);
|
||||
void sub_80976DC(struct Sprite *, u8);
|
||||
void sub_809783C(struct Sprite *, u8, u8, u8);
|
||||
void DoShadowFieldEffect(struct MapObject *);
|
||||
u8 sub_809785C(struct Sprite *);
|
||||
u8 sub_80978E4(struct Sprite *);
|
||||
void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
|
||||
bool8 sub_80979BC(struct Sprite *);
|
||||
void sub_8097750(struct Sprite *);
|
||||
bool8 sub_8097758(struct Sprite *);
|
||||
void sub_8097FA4(struct MapObject *);
|
||||
void sub_8098044(u8);
|
||||
void UnfreezeMapObjects(void);
|
||||
void sub_80974D0(u8 mapObjectId);
|
||||
|
||||
#endif //GUARD_MAP_OBJ_8097404_H
|
6
include/mystery_event_menu.h
Normal file
6
include/mystery_event_menu.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_MYSTERY_EVENT_MENU_H
|
||||
#define GUARD_MYSTERY_EVENT_MENU_H
|
||||
|
||||
void CB2_InitMysteryEventMenu(void);
|
||||
|
||||
#endif // GUARD_MYSTERY_EVENT_MENU_H
|
@ -17,5 +17,9 @@ void SetStandardWindowBorderStyle(u8 a0, u8 a1);
|
||||
void sub_8197930(void);
|
||||
u8 GetPlayerTextSpeed(void);
|
||||
void sub_81978B0(u16 arg0);
|
||||
u16 sub_8197224(void);
|
||||
int sub_8196094(void);
|
||||
void sub_8196080(u8*);
|
||||
void AddTextPrinterForMessage(u8);
|
||||
|
||||
#endif // GUARD_NEW_MENU_HELPERS_H
|
||||
|
@ -202,4 +202,12 @@ extern const u8 gText_ButtonMode[];
|
||||
extern const u8 gText_MaleSymbol[];
|
||||
extern const u8 gText_FemaleSymbol[];
|
||||
|
||||
// mystery event menu text
|
||||
extern const u8 gText_EventSafelyLoaded[];
|
||||
extern const u8 gText_LoadErrorEndingSession[];
|
||||
extern const u8 gText_PressAToLoadEvent[];
|
||||
extern const u8 gText_LoadingEvent[];
|
||||
extern const u8 gText_DontRemoveCableTurnOff[];
|
||||
extern const u8 gText_LinkStandby2[];
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
@ -97,15 +97,15 @@ SECTIONS {
|
||||
asm/field_player_avatar.o(.text);
|
||||
src/field_map_obj.o(.text);
|
||||
asm/field_ground_effect.o(.text);
|
||||
asm/map_obj_8097404.o(.text);
|
||||
asm/field_message_box.o(.text);
|
||||
src/field_map_obj_helpers.o(.text);
|
||||
src/field_message_box.o(.text);
|
||||
asm/map_obj_lock.o(.text);
|
||||
src/text_window.o(.text);
|
||||
src/script.o(.text);
|
||||
src/scrcmd.o(.text);
|
||||
asm/field_control_avatar.o(.text);
|
||||
src/event_data.o(.text);
|
||||
asm/coord_event_weather.o(.text);
|
||||
src/coord_event_weather.o(.text);
|
||||
asm/field_tasks.o(.text);
|
||||
src/clock.o(.text);
|
||||
asm/reset_rtc_screen.o(.text);
|
||||
@ -230,7 +230,7 @@ SECTIONS {
|
||||
src/lottery_corner.o(.text);
|
||||
src/diploma.o(.text);
|
||||
asm/berry_tag_screen.o(.text);
|
||||
asm/mystery_event_menu.o(.text);
|
||||
src/mystery_event_menu.o(.text);
|
||||
src/save_failed_screen.o(.text);
|
||||
src/braille_puzzles.o(.text);
|
||||
src/pokeblock_feed.o(.text);
|
||||
@ -408,7 +408,7 @@ SECTIONS {
|
||||
data/map_obj_8097404.o(.rodata);
|
||||
src/text_window.o(.rodata);
|
||||
src/scrcmd.o(.rodata);
|
||||
data/coord_event_weather.o(.rodata);
|
||||
src/coord_event_weather.o(.rodata);
|
||||
data/field_tasks.o(.rodata);
|
||||
data/reset_rtc_screen.o(.rodata);
|
||||
src/start_menu.o(.rodata);
|
||||
@ -506,7 +506,7 @@ SECTIONS {
|
||||
src/diploma.o(.rodata);
|
||||
data/strings.o(.rodata);
|
||||
data/berry_tag_screen.o(.rodata);
|
||||
data/mystery_event_menu.o(.rodata);
|
||||
src/mystery_event_menu.o(.rodata);
|
||||
src/save_failed_screen.o(.rodata);
|
||||
data/braille_puzzles.o(.rodata);
|
||||
src/pokeblock_feed.o(.rodata);
|
||||
|
@ -64,7 +64,7 @@ void HandleLinkBattleSetup(void)
|
||||
if (gLinkVSyncDisabled)
|
||||
sub_800B488();
|
||||
if (!gReceivedRemoteLinkPlayers)
|
||||
sub_8009734();
|
||||
OpenLink();
|
||||
CreateTask(task00_08081A90, 0);
|
||||
CreateTasksForSendRecvLinkBuffers();
|
||||
}
|
||||
@ -793,9 +793,9 @@ static void Task_HandleSendLinkBuffersData(u8 taskId)
|
||||
else
|
||||
var = (gBattleTypeFlags & BATTLE_TYPE_MULTI) ? 4 : 2;
|
||||
|
||||
if (sub_800ABAC() >= var)
|
||||
if (GetLinkPlayerCount_2() >= var)
|
||||
{
|
||||
if (sub_800ABBC())
|
||||
if (IsLinkMaster())
|
||||
{
|
||||
sub_800A620();
|
||||
gTasks[taskId].data[11]++;
|
||||
|
119
src/coord_event_weather.c
Normal file
119
src/coord_event_weather.c
Normal file
@ -0,0 +1,119 @@
|
||||
#include "global.h"
|
||||
#include "constants/weather.h"
|
||||
#include "coord_event_weather.h"
|
||||
#include "field_weather.h"
|
||||
|
||||
struct CoordEventWeather
|
||||
{
|
||||
u8 coordEventWeather;
|
||||
void (*func)(void);
|
||||
};
|
||||
|
||||
static void CoordEventWeather_Clouds(void);
|
||||
static void CoordEventWeather_Sunny(void);
|
||||
static void CoordEventWeather_LightRain(void);
|
||||
static void CoordEventWeather_Snow(void);
|
||||
static void CoordEventWeather_Thunderstorm(void);
|
||||
static void CoordEventWeather_Fog(void);
|
||||
static void CoordEventWeather_DiagonalFog(void);
|
||||
static void CoordEventWeather_Ash(void);
|
||||
static void CoordEventWeather_Sandstorm(void);
|
||||
static void CoordEventWeather_Dark(void);
|
||||
static void CoordEventWeather_Drought(void);
|
||||
static void CoordEventWeather_Route119Cycle(void);
|
||||
static void CoordEventWeather_Route123Cycle(void);
|
||||
|
||||
static const struct CoordEventWeather sCoordEventWeatherFuncs[] =
|
||||
{
|
||||
{ COORD_EVENT_WEATHER_CLOUDS, CoordEventWeather_Clouds },
|
||||
{ COORD_EVENT_WEATHER_SUNNY, CoordEventWeather_Sunny },
|
||||
{ COORD_EVENT_WEATHER_RAIN_LIGHT, CoordEventWeather_LightRain },
|
||||
{ COORD_EVENT_WEATHER_SNOW, CoordEventWeather_Snow },
|
||||
{ COORD_EVENT_WEATHER_RAIN_MED, CoordEventWeather_Thunderstorm },
|
||||
{ COORD_EVENT_WEATHER_FOG_1, CoordEventWeather_Fog },
|
||||
{ COORD_EVENT_WEATHER_FOG_2, CoordEventWeather_DiagonalFog },
|
||||
{ COORD_EVENT_WEATHER_ASH, CoordEventWeather_Ash },
|
||||
{ COORD_EVENT_WEATHER_SANDSTORM, CoordEventWeather_Sandstorm },
|
||||
{ COORD_EVENT_WEATHER_SHADE, CoordEventWeather_Dark },
|
||||
{ COORD_EVENT_WEATHER_DROUGHT, CoordEventWeather_Drought },
|
||||
{ COORD_EVENT_WEATHER_ROUTE119_CYCLE, CoordEventWeather_Route119Cycle },
|
||||
{ COORD_EVENT_WEATHER_ROUTE123_CYCLE, CoordEventWeather_Route123Cycle },
|
||||
};
|
||||
|
||||
static void CoordEventWeather_Clouds(void)
|
||||
{
|
||||
SetWeather(WEATHER_CLOUDS);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Sunny(void)
|
||||
{
|
||||
SetWeather(WEATHER_SUNNY);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_LightRain(void)
|
||||
{
|
||||
SetWeather(WEATHER_RAIN_LIGHT);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Snow(void)
|
||||
{
|
||||
SetWeather(WEATHER_SNOW);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Thunderstorm(void)
|
||||
{
|
||||
SetWeather(WEATHER_RAIN_MED);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Fog(void)
|
||||
{
|
||||
SetWeather(WEATHER_FOG_1);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_DiagonalFog(void)
|
||||
{
|
||||
SetWeather(WEATHER_FOG_2);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Ash(void)
|
||||
{
|
||||
SetWeather(WEATHER_ASH);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Sandstorm(void)
|
||||
{
|
||||
SetWeather(WEATHER_SANDSTORM);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Dark(void)
|
||||
{
|
||||
SetWeather(WEATHER_SHADE);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Drought(void)
|
||||
{
|
||||
SetWeather(WEATHER_DROUGHT);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Route119Cycle(void)
|
||||
{
|
||||
SetWeather(WEATHER_ROUTE119_CYCLE);
|
||||
}
|
||||
|
||||
static void CoordEventWeather_Route123Cycle(void)
|
||||
{
|
||||
SetWeather(WEATHER_ROUTE123_CYCLE);
|
||||
}
|
||||
|
||||
void DoCoordEventWeather(u8 coordEventWeather)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < ARRAY_COUNT(sCoordEventWeatherFuncs); i++)
|
||||
{
|
||||
if (sCoordEventWeatherFuncs[i].coordEventWeather == coordEventWeather)
|
||||
{
|
||||
sCoordEventWeatherFuncs[i].func();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
@ -14,7 +14,7 @@
|
||||
#include "rom_818CFC8.h"
|
||||
#include "rom_81BE66C.h"
|
||||
#include "field_ground_effect.h"
|
||||
#include "map_obj_8097404.h"
|
||||
#include "field_map_obj_helpers.h"
|
||||
#include "mauville_old_man.h"
|
||||
#include "metatile_behavior.h"
|
||||
#include "field_effect.h"
|
||||
|
844
src/field_map_obj_helpers.c
Executable file
844
src/field_map_obj_helpers.c
Executable file
@ -0,0 +1,844 @@
|
||||
#include "global.h"
|
||||
#include "field_ground_effect.h"
|
||||
#include "field_map_obj.h"
|
||||
#include "field_effect.h"
|
||||
#include "field_map_obj_helpers.h"
|
||||
#include "malloc.h"
|
||||
#include "task.h"
|
||||
#include "util.h"
|
||||
|
||||
typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir);
|
||||
|
||||
extern const struct Coords16 gUnknown_0850DB7C[4];
|
||||
extern s16 gUnknown_0850E768[];
|
||||
extern SpriteStepFunc *const gUnknown_0850E754[];
|
||||
extern const s8 gUnknown_0850E772[];
|
||||
extern const s8 gUnknown_0850E7BA[];
|
||||
extern const s8 *const gUnknown_0850E834[];
|
||||
extern s16 gUnknown_0850E840[];
|
||||
extern u8 gUnknown_0850E846[];
|
||||
extern s16 gUnknown_0850E84A[];
|
||||
extern u8 gUnknown_0850E850[];
|
||||
|
||||
void sub_8097D68(struct Sprite *sprite);
|
||||
void sub_8097FE4(u8);
|
||||
|
||||
bool8 FreezeMapObject(struct MapObject *mapObject)
|
||||
{
|
||||
if (mapObject->mapobj_bit_6 || mapObject->mapobj_bit_8)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
mapObject->mapobj_bit_8 = 1;
|
||||
mapObject->mapobj_bit_23 = gSprites[mapObject->spriteId].animPaused;
|
||||
mapObject->mapobj_bit_24 = gSprites[mapObject->spriteId].affineAnimPaused;
|
||||
gSprites[mapObject->spriteId].animPaused = 1;
|
||||
gSprites[mapObject->spriteId].affineAnimPaused = 1;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void FreezeMapObjects(void)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
if (gMapObjects[i].active && i != gPlayerAvatar.mapObjectId)
|
||||
FreezeMapObject(&gMapObjects[i]);
|
||||
}
|
||||
|
||||
void FreezeMapObjectsExceptOne(u8 a1)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
if (i != a1 && gMapObjects[i].active && i != gPlayerAvatar.mapObjectId)
|
||||
FreezeMapObject(&gMapObjects[i]);
|
||||
}
|
||||
|
||||
void npc_sync_anim_pause_bits(struct MapObject *mapObject)
|
||||
{
|
||||
if (mapObject->active && mapObject->mapobj_bit_8)
|
||||
{
|
||||
mapObject->mapobj_bit_8 = 0;
|
||||
gSprites[mapObject->spriteId].animPaused = mapObject->mapobj_bit_23;
|
||||
gSprites[mapObject->spriteId].affineAnimPaused = mapObject->mapobj_bit_24;
|
||||
}
|
||||
}
|
||||
|
||||
void UnfreezeMapObjects(void)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
if (gMapObjects[i].active)
|
||||
npc_sync_anim_pause_bits(&gMapObjects[i]);
|
||||
}
|
||||
|
||||
void little_step(struct Sprite *sprite, u8 dir)
|
||||
{
|
||||
sprite->pos1.x += gUnknown_0850DB7C[dir].x;
|
||||
sprite->pos1.y += gUnknown_0850DB7C[dir].y;
|
||||
}
|
||||
|
||||
void double_little_steps(struct Sprite *sprite, u8 dir)
|
||||
{
|
||||
sprite->pos1.x += 2 * (u16) gUnknown_0850DB7C[dir].x;
|
||||
sprite->pos1.y += 2 * (u16) gUnknown_0850DB7C[dir].y;
|
||||
}
|
||||
|
||||
void triple_little_steps(struct Sprite *sprite, u8 dir)
|
||||
{
|
||||
sprite->pos1.x += 2 * (u16) gUnknown_0850DB7C[dir].x + (u16) gUnknown_0850DB7C[dir].x;
|
||||
sprite->pos1.y += 2 * (u16) gUnknown_0850DB7C[dir].y + (u16) gUnknown_0850DB7C[dir].y;
|
||||
}
|
||||
|
||||
void quad_little_steps(struct Sprite *sprite, u8 dir)
|
||||
{
|
||||
sprite->pos1.x += 4 * (u16) gUnknown_0850DB7C[dir].x;
|
||||
sprite->pos1.y += 4 * (u16) gUnknown_0850DB7C[dir].y;
|
||||
}
|
||||
|
||||
void oct_little_steps(struct Sprite *sprite, u8 dir)
|
||||
{
|
||||
sprite->pos1.x += 8 * (u16) gUnknown_0850DB7C[dir].x;
|
||||
sprite->pos1.y += 8 * (u16) gUnknown_0850DB7C[dir].y;
|
||||
}
|
||||
|
||||
void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3)
|
||||
{
|
||||
sprite->data[3] = a2;
|
||||
sprite->data[4] = a3;
|
||||
sprite->data[5] = 0;
|
||||
}
|
||||
|
||||
bool8 obj_npc_ministep(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[5] >= gUnknown_0850E768[sprite->data[4]])
|
||||
return FALSE;
|
||||
|
||||
gUnknown_0850E754[sprite->data[4]][sprite->data[5]](sprite, sprite->data[3]);
|
||||
|
||||
sprite->data[5]++;
|
||||
|
||||
if (sprite->data[5] < gUnknown_0850E768[sprite->data[4]])
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_80976DC(struct Sprite *sprite, u8 a2)
|
||||
{
|
||||
sprite->data[3] = a2;
|
||||
sprite->data[4] = 0;
|
||||
sprite->data[5] = 0;
|
||||
}
|
||||
|
||||
bool8 sub_80976EC(struct Sprite *sprite)
|
||||
{
|
||||
if (!(sprite->data[4] & 1))
|
||||
{
|
||||
little_step(sprite, sprite->data[3]);
|
||||
sprite->data[5]++;
|
||||
}
|
||||
|
||||
sprite->data[4]++;
|
||||
|
||||
if (sprite->data[5] > 15)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// new helper added here in the middle. Perhaps Game Freak kept these organized in alphebetical order or some other heirarchy?
|
||||
|
||||
s16 sub_8097728(s16 a1)
|
||||
{
|
||||
return gUnknown_0850E7BA[a1];
|
||||
}
|
||||
|
||||
s16 sub_809773C(s16 a1)
|
||||
{
|
||||
return gUnknown_0850E772[a1];
|
||||
}
|
||||
|
||||
void sub_8097750(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[6] = 0;
|
||||
sprite->data[7] = 0;
|
||||
}
|
||||
|
||||
bool8 sub_8097758(struct Sprite *sprite)
|
||||
{
|
||||
bool8 result = FALSE;
|
||||
|
||||
switch(sprite->data[7])
|
||||
{
|
||||
case 0:
|
||||
sprite->pos2.x += sub_809773C(sprite->data[6]);
|
||||
sprite->pos2.y += sub_8097728(sprite->data[6]);
|
||||
break;
|
||||
case 1:
|
||||
sprite->pos2.x -= sub_809773C(0x47 - sprite->data[6]);
|
||||
sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]);
|
||||
break;
|
||||
case 2:
|
||||
sprite->pos2.x -= sub_809773C(sprite->data[6]);
|
||||
sprite->pos2.y += sub_8097728(sprite->data[6]);
|
||||
break;
|
||||
case 3:
|
||||
sprite->pos2.x += sub_809773C(0x47 - sprite->data[6]);
|
||||
sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]);
|
||||
break;
|
||||
}
|
||||
if(++sprite->data[6] == 0x48)
|
||||
{
|
||||
sprite->data[6] = 0;
|
||||
sprite->data[7]++;
|
||||
}
|
||||
if(sprite->data[7] == 0x4)
|
||||
{
|
||||
sprite->pos2.y = 0;
|
||||
sprite->pos2.x = 0;
|
||||
result = TRUE;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
s16 sub_8097820(s16 a1, u8 a2)
|
||||
{
|
||||
return gUnknown_0850E834[a2][a1];
|
||||
}
|
||||
|
||||
void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4)
|
||||
{
|
||||
sprite->data[3] = a2;
|
||||
sprite->data[4] = a3;
|
||||
sprite->data[5] = a4;
|
||||
sprite->data[6] = 0;
|
||||
}
|
||||
|
||||
u8 sub_809785C(struct Sprite *sprite)
|
||||
{
|
||||
s16 v5[3];
|
||||
u8 v6[3];
|
||||
u8 v2;
|
||||
|
||||
memcpy(v5, gUnknown_0850E840, 6); // TODO: get rid of memcpy
|
||||
memcpy(v6, gUnknown_0850E846, 3);
|
||||
v2 = 0;
|
||||
|
||||
if (sprite->data[4])
|
||||
little_step(sprite, sprite->data[3]);
|
||||
|
||||
sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
|
||||
|
||||
sprite->data[6]++;
|
||||
|
||||
if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
|
||||
v2 = 1;
|
||||
|
||||
if (sprite->data[6] >= v5[sprite->data[4]])
|
||||
{
|
||||
sprite->pos2.y = 0;
|
||||
v2 = -1;
|
||||
}
|
||||
|
||||
return v2;
|
||||
}
|
||||
|
||||
u8 sub_80978E4(struct Sprite *sprite)
|
||||
{
|
||||
s16 v5[3];
|
||||
u8 v6[3];
|
||||
u8 v2;
|
||||
|
||||
memcpy(v5, gUnknown_0850E84A, 6);
|
||||
memcpy(v6, gUnknown_0850E850, 3);
|
||||
v2 = 0;
|
||||
|
||||
if (sprite->data[4] && !(sprite->data[6] & 1))
|
||||
little_step(sprite, sprite->data[3]);
|
||||
|
||||
sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
|
||||
|
||||
sprite->data[6]++;
|
||||
|
||||
if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
|
||||
v2 = 1;
|
||||
|
||||
if (sprite->data[6] >= v5[sprite->data[4]])
|
||||
{
|
||||
sprite->pos2.y = 0;
|
||||
v2 = -1;
|
||||
}
|
||||
|
||||
return v2;
|
||||
}
|
||||
|
||||
void SetFieldObjectStepTimer(struct Sprite *sprite, u16 timer)
|
||||
{
|
||||
sprite->data[3] = timer;
|
||||
}
|
||||
|
||||
|
||||
bool8 RunFieldObjectStepTimer(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[3]--;
|
||||
|
||||
if (sprite->data[3] == 0)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3)
|
||||
{
|
||||
sprite->animNum = a2;
|
||||
sprite->animPaused = 0 ;
|
||||
SeekSpriteAnim(sprite, a3);
|
||||
}
|
||||
|
||||
bool8 sub_80979BC(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80979D4(struct Sprite *sprite, bool8 invisible)
|
||||
{
|
||||
u16 x, y;
|
||||
s16 x2, y2;
|
||||
|
||||
sprite->invisible = invisible;
|
||||
|
||||
if (sprite->coordOffsetEnabled)
|
||||
{
|
||||
x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX;
|
||||
y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY;
|
||||
}
|
||||
else
|
||||
{
|
||||
x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX;
|
||||
y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY;
|
||||
}
|
||||
|
||||
x2 = x - (sprite->centerToCornerVecX >> 1);
|
||||
y2 = y - (sprite->centerToCornerVecY >> 1);
|
||||
|
||||
if ((s16)x > 255 || x2 < -16)
|
||||
sprite->invisible = 1;
|
||||
if ((s16)y > 175 || y2 < -16)
|
||||
sprite->invisible = 1;
|
||||
}
|
||||
|
||||
void sub_8097AC8(struct Sprite *sprite)
|
||||
{
|
||||
sub_8097D68(sprite);
|
||||
SetObjectSubpriorityByZCoord(sprite->data[1], sprite, 1);
|
||||
sub_80979D4(sprite, sprite->data[2]);
|
||||
}
|
||||
|
||||
void sub_8097AF0(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i = 0; i < MAX_SPRITES; i++)
|
||||
{
|
||||
struct Sprite *sprite = &gSprites[i];
|
||||
if(sprite->inUse && sprite->callback == sub_8097AC8)
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
int sub_8097B2C(u8 var) // this should return a u8, because all that call this shifts to u8, but it wont match because it doesnt shift u8 at the end.
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i = 0; i < MAX_SPRITES; i++)
|
||||
{
|
||||
struct Sprite *sprite = &gSprites[i];
|
||||
if(sprite->inUse && sprite->callback == sub_8097AC8 && (u8)sprite->data[0] == var)
|
||||
return i;
|
||||
}
|
||||
return MAX_SPRITES;
|
||||
}
|
||||
|
||||
void sub_8097B78(u8 var1, u8 var2)
|
||||
{
|
||||
u8 spriteId = sub_8097B2C(var1);
|
||||
|
||||
if(spriteId != MAX_SPRITES)
|
||||
StartSpriteAnim(&gSprites[spriteId], FieldObjectDirectionToImageAnimId(var2));
|
||||
}
|
||||
|
||||
void sub_8097BB4(u8 var1, u8 var2)
|
||||
{
|
||||
int spriteId = sub_8097B2C(var1);
|
||||
|
||||
if(spriteId != MAX_SPRITES)
|
||||
{
|
||||
struct Sprite *sprite = &gSprites[spriteId];
|
||||
const struct MapObjectGraphicsInfo *gfxInfo = GetFieldObjectGraphicsInfo(var2);
|
||||
u16 tileNum = sprite->oam.tileNum;
|
||||
|
||||
sprite->oam = *gfxInfo->oam;
|
||||
sprite->oam.tileNum = tileNum;
|
||||
sprite->oam.paletteNum = gfxInfo->paletteSlot;
|
||||
sprite->images = gfxInfo->images;
|
||||
|
||||
if(gfxInfo->subspriteTables == NULL)
|
||||
{
|
||||
sprite->subspriteTables = NULL;
|
||||
sprite->subspriteTableNum = 0;
|
||||
sprite->subspriteMode = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetSubspriteTables(sprite, gfxInfo->subspriteTables);
|
||||
sprite->subspriteMode = 2;
|
||||
}
|
||||
StartSpriteAnim(sprite, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8097C44(u8 var, bool32 var2)
|
||||
{
|
||||
u8 spriteId = sub_8097B2C(var);
|
||||
|
||||
if(spriteId == MAX_SPRITES)
|
||||
return;
|
||||
|
||||
if(var2)
|
||||
gSprites[spriteId].data[2] = 1;
|
||||
else
|
||||
gSprites[spriteId].data[2] = 0;
|
||||
}
|
||||
|
||||
bool32 sub_8097C8C(u8 var)
|
||||
{
|
||||
u8 spriteId = sub_8097B2C(var);
|
||||
|
||||
if(spriteId == MAX_SPRITES)
|
||||
return FALSE;
|
||||
|
||||
return (gSprites[spriteId].data[2] == TRUE);
|
||||
}
|
||||
|
||||
void sub_8097CC4(u8 var1, u8 var2)
|
||||
{
|
||||
u8 spriteId = sub_8097B2C(var1);
|
||||
|
||||
if(spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].data[3] = var2;
|
||||
gSprites[spriteId].data[4] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8097CF4(struct Sprite *sprite)
|
||||
{
|
||||
switch(sprite->data[4])
|
||||
{
|
||||
case 0:
|
||||
sprite->pos2.y = 0;
|
||||
sprite->data[4]++;
|
||||
case 1:
|
||||
sprite->pos2.y -= 8;
|
||||
if(sprite->pos2.y == -160)
|
||||
{
|
||||
sprite->pos2.y = 0;
|
||||
sprite->data[2] = 1;
|
||||
sprite->data[3] = 0;
|
||||
sprite->data[4] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8097D30(struct Sprite *sprite)
|
||||
{
|
||||
switch(sprite->data[4])
|
||||
{
|
||||
case 0:
|
||||
sprite->pos2.y = -160;
|
||||
sprite->data[4]++;
|
||||
case 1:
|
||||
sprite->pos2.y += 8;
|
||||
if(sprite->pos2.y == 0)
|
||||
{
|
||||
sprite->data[3] = 0;
|
||||
sprite->data[4] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8097D68(struct Sprite *sprite)
|
||||
{
|
||||
switch(sprite->data[3])
|
||||
{
|
||||
case 1:
|
||||
sub_8097D30(sprite);
|
||||
break;
|
||||
case 2:
|
||||
sub_8097CF4(sprite);
|
||||
break;
|
||||
case 0:
|
||||
break;
|
||||
default:
|
||||
sprite->data[3] = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_8097D9C(u8 var)
|
||||
{
|
||||
u8 spriteId = sub_8097B2C(var);
|
||||
|
||||
if(spriteId == MAX_SPRITES)
|
||||
return FALSE;
|
||||
|
||||
if(gSprites[spriteId].data[3] != FALSE)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct MapObject *mapObject)
|
||||
{
|
||||
FieldObjectGetLocalIdAndMap(mapObject, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
|
||||
return FieldEffectStart(fieldEffectId);
|
||||
}
|
||||
|
||||
void DoShadowFieldEffect(struct MapObject *mapObject)
|
||||
{
|
||||
if (!mapObject->mapobj_bit_22)
|
||||
{
|
||||
mapObject->mapobj_bit_22 = 1;
|
||||
oe_exec_and_other_stuff(FLDEFF_SHADOW, mapObject);
|
||||
}
|
||||
}
|
||||
|
||||
void DoRippleFieldEffect(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
const struct MapObjectGraphicsInfo *gfxInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
|
||||
gFieldEffectArguments[0] = sprite->pos1.x;
|
||||
gFieldEffectArguments[1] = sprite->pos1.y + (gfxInfo->height >> 1) - 2;
|
||||
gFieldEffectArguments[2] = 151;
|
||||
gFieldEffectArguments[3] = 3;
|
||||
FieldEffectStart(FLDEFF_RIPPLE);
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
bool32 sub_8097E50(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
bool32 ableToStore = FALSE;
|
||||
if (gUnknown_020375B8 == NULL)
|
||||
{
|
||||
gUnknown_020375B8 = AllocZeroed(0x14);
|
||||
gUnknown_020375B8[0] = mapObject->localId;
|
||||
gUnknown_020375B8[16] = 1;
|
||||
ableToStore = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 i;
|
||||
u8 firstFreeSlot;
|
||||
bool32 found;
|
||||
for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++)
|
||||
{
|
||||
if (firstFreeSlot == 16 && gUnknown_020375B8[i] == 0)
|
||||
firstFreeSlot = i;
|
||||
|
||||
if (gUnknown_020375B8[i] == mapObject->localId)
|
||||
{
|
||||
found = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found && firstFreeSlot != 16)
|
||||
{
|
||||
gUnknown_020375B8[firstFreeSlot] = mapObject->localId;
|
||||
gUnknown_020375B8[16]++;
|
||||
ableToStore = TRUE; // the nonmatching problem is that ableToStore == TRUE isnt being merged with the above ableToStore = TRUE assignment.
|
||||
}
|
||||
}
|
||||
|
||||
if (ableToStore == TRUE)
|
||||
{
|
||||
mapObject->mapobj_bit_12 = TRUE;
|
||||
mapObject->mapobj_bit_9 = TRUE;
|
||||
}
|
||||
|
||||
sprite->data[2] = 1;
|
||||
return TRUE;
|
||||
}
|
||||
#else
|
||||
__attribute__((naked))
|
||||
bool32 sub_8097E50(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r8\n\
|
||||
push {r7}\n\
|
||||
adds r4, r0, 0\n\
|
||||
mov r8, r1\n\
|
||||
movs r0, 0\n\
|
||||
mov r12, r0\n\
|
||||
ldr r0, =gUnknown_020375B8\n\
|
||||
ldr r1, [r0]\n\
|
||||
adds r6, r0, 0\n\
|
||||
cmp r1, 0\n\
|
||||
bne _08097E80\n\
|
||||
movs r0, 0x14\n\
|
||||
bl AllocZeroed\n\
|
||||
str r0, [r6]\n\
|
||||
ldrb r1, [r4, 0x8]\n\
|
||||
strb r1, [r0]\n\
|
||||
ldr r1, [r6]\n\
|
||||
movs r0, 0x1\n\
|
||||
strb r0, [r1, 0x10]\n\
|
||||
b _08097ECC\n\
|
||||
.pool\n\
|
||||
_08097E80:\n\
|
||||
movs r2, 0x10\n\
|
||||
movs r5, 0\n\
|
||||
movs r1, 0\n\
|
||||
adds r3, r6, 0\n\
|
||||
b _08097E90\n\
|
||||
_08097E8A:\n\
|
||||
adds r0, r1, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r1, r0, 24\n\
|
||||
_08097E90:\n\
|
||||
cmp r1, 0xF\n\
|
||||
bhi _08097EB2\n\
|
||||
cmp r2, 0x10\n\
|
||||
bne _08097EA4\n\
|
||||
ldr r0, [r3]\n\
|
||||
adds r0, r1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
cmp r0, 0\n\
|
||||
bne _08097EA4\n\
|
||||
adds r2, r1, 0\n\
|
||||
_08097EA4:\n\
|
||||
ldr r0, [r3]\n\
|
||||
adds r0, r1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
ldrb r7, [r4, 0x8]\n\
|
||||
cmp r0, r7\n\
|
||||
bne _08097E8A\n\
|
||||
movs r5, 0x1\n\
|
||||
_08097EB2:\n\
|
||||
cmp r5, 0\n\
|
||||
bne _08097ECE\n\
|
||||
cmp r2, 0x10\n\
|
||||
beq _08097ECE\n\
|
||||
ldr r0, [r6]\n\
|
||||
adds r0, r2\n\
|
||||
ldrb r1, [r4, 0x8]\n\
|
||||
strb r1, [r0]\n\
|
||||
ldr r1, [r6]\n\
|
||||
ldrb r0, [r1, 0x10]\n\
|
||||
adds r0, 0x1\n\
|
||||
strb r0, [r1, 0x10]\n\
|
||||
movs r0, 0x1\n\
|
||||
_08097ECC:\n\
|
||||
mov r12, r0\n\
|
||||
_08097ECE:\n\
|
||||
mov r1, r12\n\
|
||||
cmp r1, 0x1\n\
|
||||
bne _08097EE0\n\
|
||||
ldrb r0, [r4, 0x1]\n\
|
||||
movs r1, 0x10\n\
|
||||
orrs r0, r1\n\
|
||||
movs r1, 0x2\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r4, 0x1]\n\
|
||||
_08097EE0:\n\
|
||||
movs r0, 0x1\n\
|
||||
mov r7, r8\n\
|
||||
strh r0, [r7, 0x32]\n\
|
||||
pop {r3}\n\
|
||||
mov r8, r3\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r1}\n\
|
||||
bx r1\n\
|
||||
.syntax divided");
|
||||
}
|
||||
#endif
|
||||
|
||||
// this function is very similar to the above one and I don't want to decompile this one until the above is matching.
|
||||
__attribute__((naked))
|
||||
bool32 sub_8097EF0(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r8\n\
|
||||
push {r7}\n\
|
||||
adds r6, r0, 0\n\
|
||||
mov r8, r1\n\
|
||||
movs r0, 0x1\n\
|
||||
strh r0, [r1, 0x32]\n\
|
||||
ldr r5, =gUnknown_020375B8\n\
|
||||
ldr r0, [r5]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08097F68\n\
|
||||
movs r7, 0\n\
|
||||
adds r0, r6, 0\n\
|
||||
bl sub_8097F78\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r1, r0, 24\n\
|
||||
cmp r1, 0x10\n\
|
||||
beq _08097F28\n\
|
||||
ldr r0, [r5]\n\
|
||||
adds r0, r1\n\
|
||||
movs r1, 0\n\
|
||||
strb r1, [r0]\n\
|
||||
ldr r1, [r5]\n\
|
||||
ldrb r0, [r1, 0x10]\n\
|
||||
subs r0, 0x1\n\
|
||||
strb r0, [r1, 0x10]\n\
|
||||
movs r7, 0x1\n\
|
||||
_08097F28:\n\
|
||||
ldr r0, [r5]\n\
|
||||
ldrb r4, [r0, 0x10]\n\
|
||||
cmp r4, 0\n\
|
||||
bne _08097F36\n\
|
||||
bl Free\n\
|
||||
str r4, [r5]\n\
|
||||
_08097F36:\n\
|
||||
cmp r7, 0x1\n\
|
||||
bne _08097F68\n\
|
||||
ldrb r0, [r6, 0x5]\n\
|
||||
bl GetFieldObjectGraphicsInfo\n\
|
||||
ldrb r1, [r0, 0xC]\n\
|
||||
lsls r1, 25\n\
|
||||
lsrs r1, 31\n\
|
||||
lsls r1, 4\n\
|
||||
ldrb r2, [r6, 0x1]\n\
|
||||
movs r0, 0x11\n\
|
||||
negs r0, r0\n\
|
||||
ands r0, r2\n\
|
||||
orrs r0, r1\n\
|
||||
movs r1, 0x3\n\
|
||||
negs r1, r1\n\
|
||||
ands r0, r1\n\
|
||||
strb r0, [r6, 0x1]\n\
|
||||
mov r2, r8\n\
|
||||
adds r2, 0x2C\n\
|
||||
ldrb r1, [r2]\n\
|
||||
movs r0, 0x41\n\
|
||||
negs r0, r0\n\
|
||||
ands r0, r1\n\
|
||||
strb r0, [r2]\n\
|
||||
_08097F68:\n\
|
||||
movs r0, 0x1\n\
|
||||
pop {r3}\n\
|
||||
mov r8, r3\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r1}\n\
|
||||
bx r1\n\
|
||||
.pool\n\
|
||||
.syntax divided");
|
||||
}
|
||||
|
||||
u8 sub_8097F78(struct MapObject *mapObject)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for(i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
{
|
||||
if(gUnknown_020375B8[i] == mapObject->localId)
|
||||
return i;
|
||||
}
|
||||
return MAP_OBJECTS_COUNT;
|
||||
}
|
||||
|
||||
void sub_8097FA4(struct MapObject *mapObject)
|
||||
{
|
||||
u8 taskId = CreateTask(sub_8097FE4, 0xFF);
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
StoreWordInTwoHalfwords(&task->data[0], (u32)mapObject);
|
||||
mapObject->mapobj_unk_1B = taskId;
|
||||
task->data[3] = 0xFFFF;
|
||||
}
|
||||
|
||||
void sub_8097FE4(u8 taskId)
|
||||
{
|
||||
struct MapObject *mapObject;
|
||||
struct Sprite *sprite;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&mapObject); // load the map object pointer.
|
||||
sprite = &gSprites[mapObject->spriteId];
|
||||
|
||||
if(!(task->data[2] & 0x3))
|
||||
sprite->pos2.y += task->data[3];
|
||||
|
||||
if(!(task->data[2] & 0xF))
|
||||
task->data[3] = -task->data[3];
|
||||
|
||||
task->data[2]++;
|
||||
}
|
||||
|
||||
void sub_8098044(u8 taskId)
|
||||
{
|
||||
u32 word;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
LoadWordFromTwoHalfwords(&task->data[0], &word); // huh??? why does it load a word that never gets used???
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
void sub_8098074(u8 var1, u8 var2)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for(i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
{
|
||||
if(i != var1 && i != var2 &&
|
||||
gMapObjects[i].active && i != gPlayerAvatar.mapObjectId)
|
||||
FreezeMapObject(&gMapObjects[i]);
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_80980C0(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos2.y = 0;
|
||||
sprite->data[2]++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_80980D0(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos2.y -= 8;
|
||||
|
||||
if(sprite->pos2.y == -160)
|
||||
sprite->data[2]++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_80980F4(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos2.y = -160;
|
||||
sprite->data[2]++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_8098108(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos2.y += 8;
|
||||
|
||||
if(!sprite->pos2.y)
|
||||
sprite->data[2]++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// though this function returns TRUE without doing anything, this header is required due to being in an array of functions which needs it.
|
||||
bool32 sub_8098124(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
154
src/field_message_box.c
Executable file
154
src/field_message_box.c
Executable file
@ -0,0 +1,154 @@
|
||||
#include "global.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "string.h"
|
||||
#include "string_util.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
|
||||
EWRAM_DATA u8 gUnknown_020375BC = 0;
|
||||
|
||||
void textbox_fdecode_auto_and_task_add(u8*, int);
|
||||
void textbox_auto_and_task_add(void);
|
||||
|
||||
void sub_8098128(void)
|
||||
{
|
||||
gUnknown_020375BC = 0;
|
||||
gTextFlags.flag_0 = 0;
|
||||
gTextFlags.flag_1 = 0;
|
||||
gTextFlags.flag_2 = 0;
|
||||
gTextFlags.flag_3 = 0;
|
||||
}
|
||||
|
||||
void sub_8098154(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
{
|
||||
case 0:
|
||||
sub_81973A4();
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
sub_81973C4(0, 1);
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 2:
|
||||
if (sub_8197224() != 1)
|
||||
{
|
||||
gUnknown_020375BC = 0;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void task_add_textbox(void)
|
||||
{
|
||||
CreateTask(sub_8098154, 0x50);
|
||||
}
|
||||
|
||||
void task_del_textbox(void)
|
||||
{
|
||||
u8 taskId = FindTaskIdByFunc(sub_8098154);
|
||||
if (taskId != 0xFF)
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
bool8 ShowFieldMessage(u8 *str)
|
||||
{
|
||||
if (gUnknown_020375BC != 0)
|
||||
return FALSE;
|
||||
textbox_fdecode_auto_and_task_add(str, 1);
|
||||
gUnknown_020375BC = 2;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8098214(u8 taskId)
|
||||
{
|
||||
if (sub_8196094() == 0)
|
||||
{
|
||||
gUnknown_020375BC = 0;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8098238(u8 *str)
|
||||
{
|
||||
if (gUnknown_020375BC != 0)
|
||||
return FALSE;
|
||||
StringExpandPlaceholders(gStringVar4, str);
|
||||
CreateTask(sub_8098214, 0);
|
||||
sub_8196080(str);
|
||||
gUnknown_020375BC = 2;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ShowFieldAutoScrollMessage(u8 *str)
|
||||
{
|
||||
if (gUnknown_020375BC != 0)
|
||||
return FALSE;
|
||||
gUnknown_020375BC = 3;
|
||||
textbox_fdecode_auto_and_task_add(str, 0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80982A0(u8 *str)
|
||||
{
|
||||
gUnknown_020375BC = 3;
|
||||
textbox_fdecode_auto_and_task_add(str, 1);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80982B8(void)
|
||||
{
|
||||
if (gUnknown_020375BC != 0)
|
||||
return FALSE;
|
||||
gUnknown_020375BC = 2;
|
||||
textbox_auto_and_task_add();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void textbox_fdecode_auto_and_task_add(u8* str, int a)
|
||||
{
|
||||
StringExpandPlaceholders(gStringVar4, str);
|
||||
AddTextPrinterForMessage(a);
|
||||
task_add_textbox();
|
||||
}
|
||||
|
||||
void textbox_auto_and_task_add(void)
|
||||
{
|
||||
AddTextPrinterForMessage(1);
|
||||
task_add_textbox();
|
||||
}
|
||||
|
||||
void HideFieldMessageBox(void)
|
||||
{
|
||||
task_del_textbox();
|
||||
sub_8197434(0, 1);
|
||||
gUnknown_020375BC = 0;
|
||||
}
|
||||
|
||||
u8 textbox_any_visible(void)
|
||||
{
|
||||
return gUnknown_020375BC;
|
||||
}
|
||||
|
||||
bool8 IsFieldMessageBoxHidden(void)
|
||||
{
|
||||
if (gUnknown_020375BC == 0)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8098358(void)
|
||||
{
|
||||
task_del_textbox();
|
||||
sub_81973FC(0, 1);
|
||||
gUnknown_020375BC = 0;
|
||||
}
|
||||
|
||||
void sub_8098374(void)
|
||||
{
|
||||
task_del_textbox();
|
||||
gUnknown_020375BC = 0;
|
||||
}
|
@ -15,7 +15,7 @@
|
||||
#include "field_screen.h"
|
||||
#include "field_weather.h"
|
||||
#include "item.h"
|
||||
#include "map_obj_8097404.h"
|
||||
#include "field_map_obj_helpers.h"
|
||||
#include "mail.h"
|
||||
#include "metatile_behavior.h"
|
||||
#include "overworld.h"
|
||||
|
303
src/mystery_event_menu.c
Normal file
303
src/mystery_event_menu.c
Normal file
@ -0,0 +1,303 @@
|
||||
#include "global.h"
|
||||
#include "mystery_event_menu.h"
|
||||
#include "link.h"
|
||||
#include "main.h"
|
||||
#include "menu.h"
|
||||
#include "mystery_event_script.h"
|
||||
#include "palette.h"
|
||||
#include "save.h"
|
||||
#include "constants/songs.h"
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "bg.h"
|
||||
#include "window.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "text_window.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "decompress.h"
|
||||
|
||||
// this file's functions
|
||||
static void CB2_MysteryEventMenu(void);
|
||||
static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed);
|
||||
|
||||
// EWRAM vars
|
||||
static EWRAM_DATA u8 sUnknown_0203BCF8 = 0; // set but unused
|
||||
|
||||
// const rom data
|
||||
static const struct BgTemplate sBgTemplates[] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
.charBaseIndex = 2,
|
||||
.mapBaseIndex = 31,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
.priority = 0,
|
||||
.baseTile = 0
|
||||
}
|
||||
};
|
||||
|
||||
static const struct WindowTemplate sWindowTemplates[] =
|
||||
{
|
||||
{0, 4, 15, 22, 4, 14, 20},
|
||||
{0, 7, 6, 16, 4, 14, 0x6C},
|
||||
DUMMY_WIN_TEMPLATE
|
||||
};
|
||||
|
||||
// code
|
||||
static void VBlankCB(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
static bool8 CheckLanguageMatch(void)
|
||||
{
|
||||
return (gLinkPlayers[0].language == gLinkPlayers[1].language);
|
||||
}
|
||||
|
||||
void CB2_InitMysteryEventMenu(void)
|
||||
{
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
ResetTasks();
|
||||
SetVBlankCallback(VBlankCB);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
|
||||
if (InitWindows(sWindowTemplates))
|
||||
{
|
||||
s32 i;
|
||||
|
||||
DeactivateAllTextPrinters();
|
||||
for (i = 0; i < 2; i++)
|
||||
FillWindowPixelBuffer(i, 0);
|
||||
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14);
|
||||
sub_809882C(0, 1u, 0xD0u);
|
||||
sub_81978B0(0xE0);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
CreateTask(Task_DestroySelf, 0);
|
||||
StopMapMusic();
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
RunTextPrinters();
|
||||
UpdatePaletteFade();
|
||||
FillPalette(0, 0, 2);
|
||||
SetMainCallback2(CB2_MysteryEventMenu);
|
||||
}
|
||||
}
|
||||
|
||||
static bool8 GetEventLoadMessage(u8 *dest, u32 status)
|
||||
{
|
||||
bool8 retVal = TRUE;
|
||||
|
||||
if (status == 0)
|
||||
{
|
||||
StringCopy(dest, gText_EventSafelyLoaded);
|
||||
retVal = FALSE;
|
||||
}
|
||||
|
||||
if (status == 2)
|
||||
retVal = FALSE;
|
||||
|
||||
if (status == 1)
|
||||
StringCopy(dest, gText_LoadErrorEndingSession);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static void CB2_MysteryEventMenu(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
SetWindowBorderStyle(0, 1, 1, 0xD);
|
||||
PutWindowTilemap(0);
|
||||
CopyWindowToVram(0, 3);
|
||||
ShowBg(0);
|
||||
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 1:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
PrintMysteryMenuText(0, gText_LinkStandby2, 1, 2, 1);
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!IsTextPrinterActive(0))
|
||||
{
|
||||
gMain.state++;
|
||||
gLinkType = 21761;
|
||||
OpenLink();
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4)
|
||||
{
|
||||
PlaySE(SE_PIN);
|
||||
PrintMysteryMenuText(0, gText_PressAToLoadEvent, 1, 2, 1);
|
||||
gMain.state++;
|
||||
}
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
CloseLink();
|
||||
gMain.state = 15;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (!IsTextPrinterActive(0))
|
||||
gMain.state++;
|
||||
break;
|
||||
case 5:
|
||||
if (GetLinkPlayerCount_2() == 2)
|
||||
{
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sub_800A620();
|
||||
SetWindowBorderStyle(1, 1, 1, 0xD);
|
||||
PrintMysteryMenuText(1, gText_LoadingEvent, 1, 2, 0);
|
||||
PutWindowTilemap(1);
|
||||
CopyWindowToVram(1, 3);
|
||||
gMain.state++;
|
||||
}
|
||||
else if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
CloseLink();
|
||||
gMain.state = 15;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GetEventLoadMessage(gStringVar4, 1);
|
||||
PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
|
||||
gMain.state = 13;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (IsLinkConnectionEstablished())
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers != 0)
|
||||
{
|
||||
if (sub_800A0C8(2, 2) == 3)
|
||||
{
|
||||
sub_800AC34();
|
||||
GetEventLoadMessage(gStringVar4, 1);
|
||||
PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
|
||||
gMain.state = 13;
|
||||
}
|
||||
else if (CheckLanguageMatch())
|
||||
{
|
||||
PrintMysteryMenuText(0, gText_DontRemoveCableTurnOff, 1, 2, 1);
|
||||
gMain.state++;
|
||||
}
|
||||
else
|
||||
{
|
||||
CloseLink();
|
||||
GetEventLoadMessage(gStringVar4, 1);
|
||||
PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
|
||||
gMain.state = 13;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
CloseLink();
|
||||
gMain.state = 15;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (!IsTextPrinterActive(0))
|
||||
gMain.state++;
|
||||
break;
|
||||
case 8:
|
||||
if (GetBlockReceivedStatus())
|
||||
{
|
||||
ResetBlockReceivedFlags();
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
gMain.state++;
|
||||
break;
|
||||
case 10:
|
||||
sub_800AC34();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 11:
|
||||
if (gReceivedRemoteLinkPlayers == 0)
|
||||
{
|
||||
u16 unkVal = RunMysteryEventScript(gDecompressionBuffer);
|
||||
CpuFill32(0, gDecompressionBuffer, 0x7D4);
|
||||
if (!GetEventLoadMessage(gStringVar4, unkVal))
|
||||
TrySavingData(NORMAL_SAVE);
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 13:
|
||||
if (!IsTextPrinterActive(0))
|
||||
{
|
||||
gMain.state++;
|
||||
sUnknown_0203BCF8 = 0;
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 16:
|
||||
if (!gPaletteFade.active)
|
||||
DoSoftReset();
|
||||
break;
|
||||
}
|
||||
|
||||
if (gLinkStatus & 0x40 && !IsLinkMaster())
|
||||
{
|
||||
CloseLink();
|
||||
GetEventLoadMessage(gStringVar4, 1);
|
||||
PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
|
||||
gMain.state = 13;
|
||||
}
|
||||
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
RunTextPrinters();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed)
|
||||
{
|
||||
struct TextColor textColor;
|
||||
u8 letterSpacing = 0;
|
||||
u8 lineSpacing = 1;
|
||||
textColor.fgColor = 1;
|
||||
textColor.bgColor = 2;
|
||||
textColor.shadowColor = 3;
|
||||
|
||||
FillWindowPixelBuffer(windowId, (textColor.fgColor) | (textColor.fgColor << 4));
|
||||
AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, &textColor, speed, text);
|
||||
}
|
@ -6,7 +6,7 @@
|
||||
#include "field_effect.h"
|
||||
#include "field_map_obj.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "map_obj_8097404.h"
|
||||
#include "field_map_obj_helpers.h"
|
||||
#include "pokenav.h"
|
||||
#include "task.h"
|
||||
#include "util.h"
|
||||
@ -639,7 +639,7 @@ void sub_80B45D0(void)
|
||||
gApproachingTrainerId++;
|
||||
gSpecialVar_Result = 1;
|
||||
UnfreezeMapObjects();
|
||||
sub_80974D0(gApproachingTrainers[1].mapObjectId);
|
||||
FreezeMapObjectsExceptOne(gApproachingTrainers[1].mapObjectId);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -84,7 +84,7 @@ gUnknown_03003092: @ 3003092
|
||||
gUnknown_03003094: @ 3003094
|
||||
.space 0x4C
|
||||
|
||||
gUnknown_030030E0: @ 30030E0
|
||||
gLinkStatus: @ 30030E0
|
||||
.space 0x4
|
||||
|
||||
gUnknown_030030E4: @ 30030E4
|
||||
|
@ -642,9 +642,9 @@ gUnknown_020375B6: @ 20375B6
|
||||
gUnknown_020375B8: @ 20375B8
|
||||
.space 0x4
|
||||
|
||||
gUnknown_020375BC: @ 20375BC
|
||||
.space 0x4
|
||||
.include "src/field_message_box.o"
|
||||
|
||||
.align 2
|
||||
gUnknown_020375C0: @ 20375C0
|
||||
.space 0x4
|
||||
|
||||
@ -1270,9 +1270,7 @@ gUnknown_0203BCE8: @ 203BCE8
|
||||
gUnknown_0203BCF4: @ 203BCF4
|
||||
.space 0x4
|
||||
|
||||
gUnknown_0203BCF8: @ 203BCF8
|
||||
.space 0x4
|
||||
|
||||
.include "src/mystery_event_menu.o"
|
||||
.include "src/save_failed_screen.o"
|
||||
|
||||
gBraillePuzzleCallbackFlag: @ 203BD14
|
||||
|
Loading…
x
Reference in New Issue
Block a user