mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-02-25 05:35:29 +01:00
Merge branch 'master' into battle_engine_v2
This commit is contained in:
commit
cd3de7821e
@ -6401,7 +6401,7 @@ sub_8027BEC: @ 8027BEC
|
||||
adds r0, r7, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0xD
|
||||
bl sub_8098858
|
||||
bl DrawTextBorderOuter
|
||||
adds r0, r7, 0
|
||||
movs r1, 0x11
|
||||
bl FillWindowPixelBuffer
|
||||
|
@ -39,8 +39,8 @@ mevent_srv_new_wcard: @ 801D0A0
|
||||
.pool
|
||||
thumb_func_end mevent_srv_new_wcard
|
||||
|
||||
thumb_func_start sub_801D0C4
|
||||
sub_801D0C4: @ 801D0C4
|
||||
thumb_func_start mevent_srv_common_do_exec
|
||||
mevent_srv_common_do_exec: @ 801D0C4
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
ldr r4, =gUnknown_02022C7C
|
||||
@ -69,7 +69,7 @@ _0801D0F8:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_801D0C4
|
||||
thumb_func_end mevent_srv_common_do_exec
|
||||
|
||||
thumb_func_start mevent_srv_init_common
|
||||
mevent_srv_init_common: @ 801D100
|
||||
@ -493,7 +493,7 @@ _0801D422:
|
||||
b _0801D464
|
||||
_0801D43C:
|
||||
ldr r4, [r5, 0x1C]
|
||||
bl sub_801B00C
|
||||
bl sav1_get_mevent_buffer_0
|
||||
adds r1, r0, 0
|
||||
movs r2, 0xDE
|
||||
lsls r2, 1
|
||||
|
@ -5,11 +5,11 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_801D484
|
||||
sub_801D484: @ 801D484
|
||||
thumb_func_start mevent_srv_ish_do_init
|
||||
mevent_srv_ish_do_init: @ 801D484
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r4, =gUnknown_02022C80
|
||||
ldr r4, =s_mevent_srv_ish_ptr
|
||||
movs r0, 0x50
|
||||
bl AllocZeroed
|
||||
str r0, [r4]
|
||||
@ -22,13 +22,13 @@ sub_801D484: @ 801D484
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_801D484
|
||||
thumb_func_end mevent_srv_ish_do_init
|
||||
|
||||
thumb_func_start sub_801D4A8
|
||||
sub_801D4A8: @ 801D4A8
|
||||
thumb_func_start mevent_srv_ish_do_exec
|
||||
mevent_srv_ish_do_exec: @ 801D4A8
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
ldr r4, =gUnknown_02022C80
|
||||
ldr r4, =s_mevent_srv_ish_ptr
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _0801D4BC
|
||||
@ -43,7 +43,7 @@ _0801D4BC:
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r0, 0x4]
|
||||
strh r1, [r6]
|
||||
bl sub_801D55C
|
||||
bl mevent_srv_ish_free_resources
|
||||
ldr r0, [r4]
|
||||
bl Free
|
||||
movs r0, 0
|
||||
@ -54,36 +54,36 @@ _0801D4DC:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_801D4A8
|
||||
thumb_func_end mevent_srv_ish_do_exec
|
||||
|
||||
thumb_func_start sub_801D4E4
|
||||
sub_801D4E4: @ 801D4E4
|
||||
ldr r0, =gUnknown_02022C80
|
||||
thumb_func_start mevent_srv_ish_inc_flag
|
||||
mevent_srv_ish_inc_flag: @ 801D4E4
|
||||
ldr r0, =s_mevent_srv_ish_ptr
|
||||
ldr r1, [r0]
|
||||
ldr r0, [r1, 0xC]
|
||||
adds r0, 0x1
|
||||
str r0, [r1, 0xC]
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_801D4E4
|
||||
thumb_func_end mevent_srv_ish_inc_flag
|
||||
|
||||
thumb_func_start sub_801D4F4
|
||||
sub_801D4F4: @ 801D4F4
|
||||
ldr r0, =gUnknown_02022C80
|
||||
thumb_func_start mevent_srv_ish_get_buffer
|
||||
mevent_srv_ish_get_buffer: @ 801D4F4
|
||||
ldr r0, =s_mevent_srv_ish_ptr
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x20]
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_801D4F4
|
||||
thumb_func_end mevent_srv_ish_get_buffer
|
||||
|
||||
thumb_func_start sub_801D500
|
||||
sub_801D500: @ 801D500
|
||||
ldr r1, =gUnknown_02022C80
|
||||
thumb_func_start mevent_srv_ish_set_param
|
||||
mevent_srv_ish_set_param: @ 801D500
|
||||
ldr r1, =s_mevent_srv_ish_ptr
|
||||
ldr r1, [r1]
|
||||
str r0, [r1, 0x4]
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_801D500
|
||||
thumb_func_end mevent_srv_ish_set_param
|
||||
|
||||
thumb_func_start mevent_srv_ish_init
|
||||
mevent_srv_ish_init: @ 801D50C
|
||||
@ -123,8 +123,8 @@ mevent_srv_ish_init: @ 801D50C
|
||||
bx r0
|
||||
thumb_func_end mevent_srv_ish_init
|
||||
|
||||
thumb_func_start sub_801D55C
|
||||
sub_801D55C: @ 801D55C
|
||||
thumb_func_start mevent_srv_ish_free_resources
|
||||
mevent_srv_ish_free_resources: @ 801D55C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r4, 0x14]
|
||||
@ -138,10 +138,10 @@ sub_801D55C: @ 801D55C
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_801D55C
|
||||
thumb_func_end mevent_srv_ish_free_resources
|
||||
|
||||
thumb_func_start sub_801D580
|
||||
sub_801D580: @ 801D580
|
||||
thumb_func_start mevent_srv_ish_jmp_buffer
|
||||
mevent_srv_ish_jmp_buffer: @ 801D580
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r4, 0x1C]
|
||||
@ -154,7 +154,7 @@ sub_801D580: @ 801D580
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_801D580
|
||||
thumb_func_end mevent_srv_ish_jmp_buffer
|
||||
|
||||
thumb_func_start sub_801D59C
|
||||
sub_801D59C: @ 801D59C
|
||||
@ -340,7 +340,7 @@ _0801D708:
|
||||
bne _0801D804
|
||||
_0801D70E:
|
||||
adds r0, r4, 0
|
||||
bl sub_801D580
|
||||
bl mevent_srv_ish_jmp_buffer
|
||||
b _0801D804
|
||||
_0801D716:
|
||||
ldr r0, [r4, 0x20]
|
||||
|
@ -5491,7 +5491,7 @@ _0802D4A4:
|
||||
ldrb r0, [r0, 0x12]
|
||||
movs r1, 0x1
|
||||
movs r2, 0xE
|
||||
bl sub_8098858
|
||||
bl DrawTextBorderOuter
|
||||
movs r0, 0x17
|
||||
movs r1, 0x7
|
||||
movs r2, 0
|
||||
@ -5575,7 +5575,7 @@ _0802D550:
|
||||
ldrb r0, [r0, 0x12]
|
||||
movs r1, 0x1
|
||||
movs r2, 0xE
|
||||
bl sub_8098858
|
||||
bl DrawTextBorderOuter
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
_0802D574:
|
||||
@ -5693,7 +5693,7 @@ _0802D640:
|
||||
ldrb r0, [r0, 0x12]
|
||||
movs r1, 0x1
|
||||
movs r2, 0xE
|
||||
bl sub_8098858
|
||||
bl DrawTextBorderOuter
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
_0802D664:
|
||||
@ -5773,7 +5773,7 @@ _0802D6E4:
|
||||
ldrb r0, [r0, 0x12]
|
||||
movs r1, 0x1
|
||||
movs r2, 0xE
|
||||
bl sub_8098858
|
||||
bl DrawTextBorderOuter
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
_0802D708:
|
||||
@ -6107,7 +6107,7 @@ _0802D99A:
|
||||
ldrb r0, [r0, 0x12]
|
||||
movs r1, 0x1
|
||||
movs r2, 0xE
|
||||
bl sub_8098858
|
||||
bl DrawTextBorderOuter
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
ldr r1, [r4]
|
||||
@ -7596,7 +7596,7 @@ sub_802E500: @ 802E500
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xD
|
||||
bl sub_8098858
|
||||
bl DrawTextBorderOuter
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x11
|
||||
bl FillWindowPixelBuffer
|
||||
|
@ -8104,7 +8104,7 @@ sub_81CC09C: @ 81CC09C
|
||||
ldrb r0, [r4, 0x14]
|
||||
movs r1, 0x1
|
||||
movs r2, 0x4
|
||||
bl sub_8098858
|
||||
bl DrawTextBorderOuter
|
||||
ldrb r0, [r4, 0x14]
|
||||
movs r1, 0x11
|
||||
bl FillWindowPixelBuffer
|
||||
@ -9354,7 +9354,7 @@ sub_81CCA1C: @ 81CCA1C
|
||||
ldrb r0, [r5, 0x8]
|
||||
movs r1, 0x42
|
||||
movs r2, 0x4
|
||||
bl sub_8098858
|
||||
bl DrawTextBorderOuter
|
||||
ldr r1, =gUnknown_08622888
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
|
File diff suppressed because it is too large
Load Diff
412
data/contest.s
412
data/contest.s
@ -1,412 +0,0 @@
|
||||
#include "constants/species.h"
|
||||
#include "constants/moves.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_08587A6C:: @ 8587A6C
|
||||
.byte 0x24, 0x4c, 0x74, 0x9c
|
||||
|
||||
gUnknown_08587A70:: @ 8587A70
|
||||
.byte 0x24, 0x4c, 0x74, 0x9c
|
||||
|
||||
.align 2
|
||||
gUnknown_08587A74:: @ 8587A74
|
||||
obj_tiles gTiles_8C19450, 0x0020, 0x4e20
|
||||
|
||||
.align 2
|
||||
gOamData_8587A7C:: @ 8587A7C
|
||||
.2byte 0x0000
|
||||
.2byte 0x0000
|
||||
.2byte 0x0000
|
||||
|
||||
.align 2
|
||||
gSpriteAffineAnim_8587A84:: @ 8587A84
|
||||
obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
|
||||
obj_rot_scal_anim_end
|
||||
|
||||
.align 2
|
||||
gSpriteAffineAnim_8587A94:: @ 8587A94
|
||||
obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
|
||||
obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, -20, 20
|
||||
obj_rot_scal_anim_end
|
||||
|
||||
.align 2
|
||||
gSpriteAffineAnim_8587AAC:: @ 8587AAC
|
||||
obj_rot_scal_anim_frame 0x38, 0x38, 0, 0
|
||||
obj_rot_scal_anim_frame 0xA, 0xA, 20, 20
|
||||
obj_rot_scal_anim_end
|
||||
|
||||
.align 2
|
||||
gSpriteAffineAnimTable_8587AC4:: @ 8587AC4
|
||||
.4byte gSpriteAffineAnim_8587A84
|
||||
.4byte gSpriteAffineAnim_8587A94
|
||||
.4byte gSpriteAffineAnim_8587AAC
|
||||
|
||||
.align 2
|
||||
gSpriteTemplate_8587AD0:: @ 8587AD0
|
||||
spr_template 0x4e20, 0xabe0, gOamData_8587A7C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8587AC4, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_08587AE8:: @ 8587AE8
|
||||
obj_tiles gContestNextTurnGfx, 0x0100, 0x4e22
|
||||
obj_tiles gContestNextTurnGfx, 0x0100, 0x4e23
|
||||
obj_tiles gContestNextTurnGfx, 0x0100, 0x4e24
|
||||
obj_tiles gContestNextTurnGfx, 0x0100, 0x4e25
|
||||
|
||||
.align 2
|
||||
gUnknown_08587B08:: @ 8587B08
|
||||
obj_pal gContestPal, 0x4e22
|
||||
|
||||
.align 2
|
||||
gOamData_8587B10:: @ 8587B10
|
||||
.2byte 0x4000
|
||||
.2byte 0x4000
|
||||
.2byte 0x0000
|
||||
|
||||
.align 2
|
||||
gSpriteTemplate_8587B18:: @ 8587B18
|
||||
spr_template 0x4e22, 0x4e22, gOamData_8587B10, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
spr_template 0x4e23, 0x4e22, gOamData_8587B10, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
spr_template 0x4e24, 0x4e22, gOamData_8587B10, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
spr_template 0x4e25, 0x4e22, gOamData_8587B10, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gSubspriteTable_8587B78:: @ 8587B78
|
||||
subsprite -28, -4, 0, 0, 32x8
|
||||
subsprite 4, -4, 0, 4, 32x8
|
||||
|
||||
.align 2
|
||||
gSubspriteTables_8587B80:: @ 8587B80
|
||||
.4byte 2, gSubspriteTable_8587B78
|
||||
|
||||
.align 2
|
||||
gUnknown_08587B88:: @ 8587B88
|
||||
obj_tiles gUnknown_08C19168, 0x0180, 0xabe1
|
||||
|
||||
.align 2
|
||||
gOamData_8587B90:: @ 8587B90
|
||||
.2byte 0x0000
|
||||
.2byte 0x4000
|
||||
.2byte 0x0000
|
||||
|
||||
.align 2
|
||||
gSpriteTemplate_8587B98:: @ 8587B98
|
||||
spr_template 0xabe1, 0xabe0, gOamData_8587B90, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_08587BB0:: @ 8587BB0
|
||||
obj_tiles gContestApplauseGfx, 0x0400, 0xabe2
|
||||
|
||||
.align 2
|
||||
gUnknown_08587BB8:: @ 8587BB8
|
||||
obj_pal gContestPal, 0xabe2
|
||||
|
||||
.align 2
|
||||
gOamData_8587BC0:: @ 8587BC0
|
||||
.2byte 0x4000
|
||||
.2byte 0xC000
|
||||
.2byte 0x0000
|
||||
|
||||
.align 2
|
||||
gSpriteTemplate_8587BC8:: @ 8587BC8
|
||||
spr_template 0xabe2, 0xabe2, gOamData_8587BC0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gOamData_8587BE0:: @ 8587BE0
|
||||
.2byte 0x0000
|
||||
.2byte 0xC000
|
||||
.2byte 0x2C00
|
||||
|
||||
.align 2
|
||||
gSpriteTemplate_8587BE8:: @ 8587BE8
|
||||
spr_template 0x4e21, 0x4e21, gOamData_8587BE0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_08587C00:: @ 8587C00
|
||||
obj_tiles gContestJudgeGfx, 0x0800, 0x4e21
|
||||
|
||||
.align 2
|
||||
gUnknown_08587C08:: @ 8587C08
|
||||
obj_tiles gContestJudgeSymbolsGfx, 0x0380, 0xabe0
|
||||
|
||||
.align 2
|
||||
gUnknown_08587C10:: @ 8587C10
|
||||
obj_pal gContest3Pal, 0xabe0
|
||||
|
||||
.align 2
|
||||
gSpriteTemplate_8587C18:: @ 8587C18
|
||||
spr_template 0xabe0, 0xabe0, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_08587C30:: @ 8587C30
|
||||
.incbin "graphics/unknown/unknown_587C30.gbapal"
|
||||
|
||||
@ 8587C50
|
||||
.include "data/text/contest_text_pointers.inc"
|
||||
|
||||
.align 2
|
||||
gUnknown_08587D5C:: @ 8587D5C
|
||||
.4byte gText_0827D5C1
|
||||
.4byte gText_0827D5DC
|
||||
.4byte gText_0827D600
|
||||
.4byte gText_0827D612
|
||||
.4byte gText_0827D612
|
||||
.4byte gText_0827D62D
|
||||
.4byte gText_0827D654
|
||||
.4byte gText_0827D67E
|
||||
.4byte gText_0827D69C
|
||||
.4byte gText_0827D6BA
|
||||
.4byte gText_0827D6E5
|
||||
.4byte gText_0827D706
|
||||
.4byte gText_0827D71D
|
||||
|
||||
.align 2
|
||||
gUnknown_08587D90:: @ 8587D90
|
||||
.4byte gText_0827D743
|
||||
.4byte gText_0827D764
|
||||
.4byte gText_0827D785
|
||||
.4byte gText_0827D7A5
|
||||
.4byte gText_0827D7C8
|
||||
.4byte gText_0827D7E8
|
||||
.4byte gText_0827D831
|
||||
.4byte gText_0827D855
|
||||
.4byte gText_0827D830
|
||||
.4byte gText_0827D872
|
||||
.4byte gText_0827D88F
|
||||
.4byte gText_0827D8B5
|
||||
.4byte gText_0827D8E4
|
||||
.4byte gText_0827D8FE
|
||||
.4byte gText_0827D926
|
||||
.4byte gText_0827D947
|
||||
.4byte gText_0827D961
|
||||
.4byte gText_0827D986
|
||||
.4byte gText_0827D9B1
|
||||
.4byte gText_0827D9D9
|
||||
.4byte gText_0827DA03
|
||||
.4byte gText_0827DA31
|
||||
.4byte gText_0827DA5B
|
||||
.4byte gText_0827DA85
|
||||
.4byte gText_0827DAB2
|
||||
.4byte gText_0827DADA
|
||||
.4byte gText_0827DB03
|
||||
.4byte gText_0827D830
|
||||
.4byte gText_0827D830
|
||||
.4byte gText_0827D830
|
||||
.4byte gText_0827DB1F
|
||||
.4byte gText_0827DB4E
|
||||
|
||||
.align 2
|
||||
gUnknown_08587E10:: @ 8587E10
|
||||
.4byte gText_827DB75
|
||||
.4byte gText_827DBB0
|
||||
.4byte gText_827DBE0
|
||||
.4byte gText_827DC0F
|
||||
.4byte gText_827DC45
|
||||
.4byte gText_827DC7C
|
||||
.4byte gText_827DCB4
|
||||
.4byte gText_827DCE7
|
||||
.4byte gText_827DD12
|
||||
.4byte gText_827DD3D
|
||||
.4byte gText_827DD6F
|
||||
.4byte gText_827DD8E
|
||||
.4byte gText_827DDC7
|
||||
.4byte gText_827DDF2
|
||||
.4byte gText_827DE14
|
||||
.4byte gText_827DE44
|
||||
.4byte gText_827DE73
|
||||
.4byte gText_827DEA5
|
||||
.4byte gText_827DED9
|
||||
.4byte gText_827DF02
|
||||
.4byte gText_827DF3A
|
||||
.4byte gText_827DF63
|
||||
.4byte gText_827DF8C
|
||||
.4byte gText_827DFB8
|
||||
.4byte gText_827DFE2
|
||||
.4byte gText_827E00C
|
||||
.4byte gText_827E02F
|
||||
.4byte gText_827E05F
|
||||
.4byte gText_827E08B
|
||||
.4byte gText_827E0B5
|
||||
.4byte gText_827E0DD
|
||||
.4byte gText_827E107
|
||||
.4byte gText_827E143
|
||||
.4byte gText_827E17F
|
||||
.4byte gText_827E1BB
|
||||
.4byte gText_827E1F3
|
||||
.4byte gText_827E220
|
||||
.4byte gText_827E254
|
||||
.4byte gText_827E289
|
||||
.4byte gText_827E2C5
|
||||
.4byte gText_0827E2FE
|
||||
.4byte gText_0827E32E
|
||||
.4byte gText_0827E35B
|
||||
.4byte gText_0827E38D
|
||||
.4byte gText_0827E3C1
|
||||
.4byte gText_0827E3EB
|
||||
.4byte gText_0827E416
|
||||
.4byte gText_0827E448
|
||||
.4byte gText_0827E473
|
||||
.4byte gText_0827E4A6
|
||||
.4byte gText_0827E4D5
|
||||
.4byte gText_0827E504
|
||||
.4byte gText_0827E531
|
||||
.4byte gText_0827E55A
|
||||
.4byte gText_0827E5B2
|
||||
.4byte gText_0827E5D0
|
||||
.4byte gText_0827E606
|
||||
.4byte gText_0827E638
|
||||
.4byte gText_0827E658
|
||||
.4byte gText_0827E68B
|
||||
.4byte gText_0827E6C4
|
||||
.4byte gText_0827E7BA
|
||||
|
||||
.align 2
|
||||
gUnknown_08587F08:: @ 8587F08
|
||||
.4byte gText_0827E85F
|
||||
.4byte gText_0827E868
|
||||
.4byte gText_0827E86F
|
||||
.4byte gText_0827E878
|
||||
.4byte gText_0827E882
|
||||
|
||||
.align 2
|
||||
gUnknown_08587F1C:: @ 8587F1C
|
||||
.4byte gText_0827E894
|
||||
.4byte gText_0827E89E
|
||||
.4byte gText_0827E8AA
|
||||
.4byte gText_0827E8B4
|
||||
.4byte gText_0827E8BF
|
||||
.4byte gText_0827E8CA
|
||||
|
||||
.align 2
|
||||
gUnknown_08587F34:: @ 8587F34
|
||||
.4byte 0x00000580, 0x000015e9, 0x000005c2, 0x000031a3
|
||||
|
||||
.align 2
|
||||
gUnknown_08587F44:: @ 8587F44
|
||||
window_template 0x00, 0x12, 0x00, 0x0c, 0x02, 0x0f, 0x0200
|
||||
window_template 0x00, 0x12, 0x05, 0x0c, 0x02, 0x0f, 0x0218
|
||||
window_template 0x00, 0x12, 0x0a, 0x0c, 0x02, 0x0f, 0x0230
|
||||
window_template 0x00, 0x12, 0x0f, 0x0c, 0x02, 0x0f, 0x0248
|
||||
window_template 0x00, 0x01, 0x0f, 0x11, 0x04, 0x0f, 0x0260
|
||||
window_template 0x00, 0x01, 0x1f, 0x09, 0x02, 0x0f, 0x02a4
|
||||
window_template 0x00, 0x01, 0x21, 0x09, 0x02, 0x0f, 0x02b6
|
||||
window_template 0x00, 0x01, 0x23, 0x09, 0x02, 0x0f, 0x02c8
|
||||
window_template 0x00, 0x01, 0x25, 0x09, 0x02, 0x0f, 0x02da
|
||||
window_template 0x00, 0x10, 0x1f, 0x01, 0x02, 0x0f, 0x02ec
|
||||
window_template 0x00, 0x0b, 0x23, 0x12, 0x04, 0x0f, 0x02ee
|
||||
null_window_template
|
||||
|
||||
.align 2
|
||||
gUnknown_08587FA4:: @ 8587FA4
|
||||
.4byte NULL, 0xFFFF
|
||||
.2byte SPECIES_ELECTRIKE
|
||||
.byte 2
|
||||
.string "ELECTER$", 11
|
||||
.string "EZRA$", 8
|
||||
.2byte 0
|
||||
.4byte NULL, 0xFFFF
|
||||
.2byte SPECIES_TROPIUS
|
||||
.byte 0
|
||||
.string "TROPO$", 11
|
||||
.string "ALLAN$", 8
|
||||
.2byte 2
|
||||
.4byte NULL, 0xFFFF
|
||||
.2byte SPECIES_XATU
|
||||
.byte 1
|
||||
.string "TUXA$", 11
|
||||
.string "JULIET$", 8
|
||||
.2byte 0
|
||||
.4byte NULL, 0xFFFF
|
||||
.2byte SPECIES_PLUSLE
|
||||
.byte 4
|
||||
.string "PULSE$", 11
|
||||
.string "BAILY$", 8
|
||||
.2byte 3
|
||||
.4byte NULL, 0xFFFF
|
||||
.2byte SPECIES_SHUPPET
|
||||
.byte 3
|
||||
.string "SHUPUP$", 11
|
||||
.string "MELANY$", 8
|
||||
.2byte 1
|
||||
.4byte NULL, 0xFFFF
|
||||
.2byte SPECIES_ZANGOOSE
|
||||
.byte 0
|
||||
.string "GOOZAN$", 11
|
||||
.string "HANA$", 8
|
||||
.2byte 2
|
||||
.4byte NULL, 0xFFFF
|
||||
.2byte SPECIES_LOUDRED
|
||||
.byte 1
|
||||
.string "LOUDED$", 11
|
||||
.string "BRYANT$", 8
|
||||
.2byte 2
|
||||
.4byte NULL, 0xFFFF
|
||||
.2byte SPECIES_DELCATTY
|
||||
.byte 2
|
||||
.string "KITSY$", 11
|
||||
.string "OMAR$", 8
|
||||
.2byte 3
|
||||
|
||||
|
||||
.align 2
|
||||
gContestOpponents:: @ 85880A4
|
||||
.include "data/contest_opponents.inc"
|
||||
|
||||
gUnknown_085898A4:: @ 85898A4
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
|
||||
.byte 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
|
||||
|
||||
.align 2
|
||||
gUnknown_08589904:: @ 8589904
|
||||
obj_tiles gBlankGfxCompressed, 0x1000, 0x80e8
|
||||
obj_tiles gBlankGfxCompressed, 0x1000, 0x80e9
|
||||
obj_tiles gBlankGfxCompressed, 0x1000, 0x80ea
|
||||
obj_tiles gBlankGfxCompressed, 0x1000, 0x80eb
|
||||
|
||||
.align 2
|
||||
gUnknown_08589924:: @ 8589924 Yup this is super dangerous but that's how it is here
|
||||
obj_pal gHeap + 0x1A0A4, 0x80e8
|
||||
obj_pal gHeap + 0x1A0C4, 0x80e9
|
||||
obj_pal gHeap + 0x1A0E4, 0x80ea
|
||||
obj_pal gHeap + 0x1A104, 0x80eb
|
||||
|
||||
.align 2
|
||||
gOamData_8589944:: @ 8589944
|
||||
.2byte 0x0700
|
||||
.2byte 0xC000
|
||||
.2byte 0x0000
|
||||
|
||||
.align 2
|
||||
gSpriteAffineAnim_858994C:: @ 858994C
|
||||
obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
|
||||
obj_rot_scal_anim_end
|
||||
|
||||
.align 2
|
||||
gSpriteAffineAnim_858995C:: @ 858995C
|
||||
obj_rot_scal_anim_frame 0x3, 0x3, 0, 15
|
||||
obj_rot_scal_anim_frame 0xFFFD, 0xFFFD, 0, 15
|
||||
obj_rot_scal_anim_frame 0x3, 0x3, 0, 15
|
||||
obj_rot_scal_anim_frame 0xFFFD, 0xFFFD, 0, 15
|
||||
obj_rot_scal_anim_end
|
||||
|
||||
.align 2
|
||||
gSpriteAffineAnimTable_8589984:: @ 8589984
|
||||
.4byte gSpriteAffineAnim_858994C
|
||||
.4byte gSpriteAffineAnim_858995C
|
||||
|
||||
.align 2
|
||||
gSpriteTemplate_858998C:: @ 858998C
|
||||
spr_template 0x80e8, 0x80e8, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy
|
||||
spr_template 0x80e9, 0x80e9, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy
|
||||
spr_template 0x80ea, 0x80ea, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy
|
||||
spr_template 0x80eb, 0x80eb, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gContestExcitementTable:: @ 85899EC
|
||||
.2byte 0x0001, 0xffff, 0x0000, 0x0001, 0xffff, 0x00ff, 0x0001, 0xffff, 0x00ff, 0x0001, 0xff00, 0x00ff, 0x0001, 0x0000
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -59,4 +59,4 @@
|
||||
],
|
||||
"coord_events": [],
|
||||
"bg_events": []
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276AD5:: @ 8276AD5
|
||||
specialvar VAR_RESULT, sub_813B514
|
||||
compare VAR_RESULT, 1
|
||||
goto_if_eq OldaleTown_PokemonCenter_2F_EventScript_276AFB
|
||||
specialvar VAR_RESULT, sub_801B27C
|
||||
specialvar VAR_RESULT, ValidateReceivedWonderCard
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq OldaleTown_PokemonCenter_2F_EventScript_276AFF
|
||||
goto OldaleTown_PokemonCenter_2F_EventScript_276AFB
|
||||
|
@ -434,7 +434,7 @@ gSpecials:: @ 81DBA64
|
||||
def_special sub_81B8958
|
||||
def_special sub_8018090
|
||||
def_special sub_813990C
|
||||
def_special sub_801B27C
|
||||
def_special ValidateReceivedWonderCard
|
||||
def_special HasAtLeastOneBerry
|
||||
def_special sub_802C920
|
||||
def_special sub_802E3C4
|
||||
|
@ -1,78 +0,0 @@
|
||||
.align 2
|
||||
gContestEffectDescriptionPointers:: @ 8587C50
|
||||
.4byte gContestEffect00hDescription
|
||||
.4byte gContestEffect01hDescription
|
||||
.4byte gContestEffect02hDescription
|
||||
.4byte gContestEffect03hDescription
|
||||
.4byte gContestEffect04hDescription
|
||||
.4byte gContestEffect05hDescription
|
||||
.4byte gContestEffect06hDescription
|
||||
.4byte gContestEffect07hDescription
|
||||
.4byte gContestEffect08hDescription
|
||||
.4byte gContestEffect09hDescription
|
||||
.4byte gContestEffect0AhDescription
|
||||
.4byte gContestEffect0BhDescription
|
||||
.4byte gContestEffect0ChDescription
|
||||
.4byte gContestEffect0DhDescription
|
||||
.4byte gContestEffect0EhDescription
|
||||
.4byte gContestEffect0FhDescription
|
||||
.4byte gContestEffect10hDescription
|
||||
.4byte gContestEffect11hDescription
|
||||
.4byte gContestEffect12hDescription
|
||||
.4byte gContestEffect13hDescription
|
||||
.4byte gContestEffect14hDescription
|
||||
.4byte gContestEffect15hDescription
|
||||
.4byte gContestEffect16hDescription
|
||||
.4byte gContestEffect17hDescription
|
||||
.4byte gContestEffect18hDescription
|
||||
.4byte gContestEffect19hDescription
|
||||
.4byte gContestEffect1AhDescription
|
||||
.4byte gContestEffect1BhDescription
|
||||
.4byte gContestEffect1ChDescription
|
||||
.4byte gContestEffect1DhDescription
|
||||
.4byte gContestEffect1EhDescription
|
||||
.4byte gContestEffect1FhDescription
|
||||
.4byte gContestEffect20hDescription
|
||||
.4byte gContestEffect21hDescription
|
||||
.4byte gContestEffect22hDescription
|
||||
.4byte gContestEffect23hDescription
|
||||
.4byte gContestEffect24hDescription
|
||||
.4byte gContestEffect25hDescription
|
||||
.4byte gContestEffect26hDescription
|
||||
.4byte gContestEffect27hDescription
|
||||
.4byte gContestEffect28hDescription
|
||||
.4byte gContestEffect29hDescription
|
||||
.4byte gContestEffect2AhDescription
|
||||
.4byte gContestEffect2BhDescription
|
||||
.4byte gContestEffect2ChDescription
|
||||
.4byte gContestEffect2DhDescription
|
||||
.4byte gContestEffect2EhDescription
|
||||
.4byte gContestEffect2FhDescription
|
||||
|
||||
@ 8587D10
|
||||
@ Unreferenced array of pointers to move names.
|
||||
@ All of the moves except Conversion are combo starters, so this may have
|
||||
@ been an early list of combo starters.
|
||||
.align 2
|
||||
.4byte gUnusedContestMoveName0
|
||||
.4byte gUnusedContestMoveName0
|
||||
.4byte gUnusedContestMoveName1
|
||||
.4byte gUnusedContestMoveName2
|
||||
.4byte gUnusedContestMoveName3
|
||||
.4byte gUnusedContestMoveName4
|
||||
.4byte gUnusedContestMoveName5
|
||||
.4byte gUnusedContestMoveName6
|
||||
.4byte gUnusedContestMoveName7
|
||||
.4byte gUnusedContestMoveName8
|
||||
.4byte gUnusedContestMoveName9
|
||||
.4byte gUnusedContestMoveName10
|
||||
.4byte gUnusedContestMoveName11
|
||||
.4byte gUnusedContestMoveName12
|
||||
|
||||
.align 2
|
||||
gContestMoveTypeTextPointers:: @ 8587D48
|
||||
.4byte gContestMoveTypeCoolText
|
||||
.4byte gContestMoveTypeBeautyText
|
||||
.4byte gContestMoveTypeCuteText
|
||||
.4byte gContestMoveTypeSmartText
|
||||
.4byte gContestMoveTypeToughText
|
@ -1,99 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
.align 2
|
||||
gUnknown_082F072C:: @ 82F072C
|
||||
.byte 0x21, 0x2c, 0x1f, 0x23, 0x25, 0x24, 0x41, 0x42
|
||||
.byte 0x00, 0x00, 0x22, 0x28, 0x20, 0x2f, 0x2f, 0x0e
|
||||
.byte 0x14, 0x2d, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082F0740:: @ 82F0740
|
||||
.2byte 0x0004, 0x0006, 0x000d, 0x0008
|
||||
.2byte 0x000a, 0x0006, 0x0001, 0x0008
|
||||
.2byte 0x000d, 0x0004, 0x0007, 0x0004
|
||||
.2byte 0x0001, 0x0004, 0x0007, 0x0008
|
||||
|
||||
.align 2
|
||||
gUnknown_082F0760:: @ 82F0760
|
||||
.byte 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00
|
||||
.byte 0x00, 0x01
|
||||
|
||||
gUnknown_082F076A:: @ 82F076A
|
||||
.byte 0x00, 0x02, 0x01, 0x04, 0x03
|
||||
|
||||
gUnknown_082F076F:: @ 82F076F
|
||||
.byte 0x01, 0x03, 0x01, 0x04, 0x02
|
||||
|
||||
gUnknown_082F0774:: @ 82F0774
|
||||
.byte 0x09, 0x08, 0x07, 0x02, 0x06, 0x05, 0x04, 0x03
|
||||
.byte 0xbf, 0x02, 0xc0, 0x02, 0xc1, 0x02, 0xc2, 0x02
|
||||
.byte 0xc3, 0x02, 0xc4, 0x02, 0xc5, 0x02, 0xc6, 0x02
|
||||
|
||||
gUnknown_082F078C:: @ 82F078C
|
||||
.byte 0x9c, 0xfe
|
||||
|
||||
gUnknown_082F078E:: @ 82F078E
|
||||
.byte 0x9d, 0xfe
|
||||
|
||||
.align 2
|
||||
gWirelessInfoScreenPal:: @ 82F0790
|
||||
.incbin "graphics/interface/wireless_info_screen.gbapal"
|
||||
|
||||
.align 2
|
||||
gWirelessInfoScreenGfx:: @ 82F0990
|
||||
.incbin "graphics/interface/wireless_info_screen.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gWirelessInfoScreenTilemap:: @ 82F0BA0
|
||||
.incbin "graphics/interface/wireless_info_screen.bin.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F0D34:: @ 82F0D34
|
||||
.4byte 0x000001f8
|
||||
.4byte 0x00001081
|
||||
|
||||
.align 2
|
||||
gUnknown_082F0D3C:: @ 82F0D3C
|
||||
window_template 0x00, 0x03, 0x00, 0x18, 0x03, 0x0f, 0x0001
|
||||
window_template 0x00, 0x03, 0x04, 0x15, 0x0f, 0x0f, 0x0049
|
||||
window_template 0x00, 0x18, 0x04, 0x03, 0x0f, 0x0f, 0x0184
|
||||
null_window_template
|
||||
|
||||
.align 2
|
||||
gUnknown_082F0D5C:: @ 82F0D5C
|
||||
.4byte gText_WirelessCommStatus
|
||||
.4byte gText_PeopleTrading
|
||||
.4byte gText_PeopleBattling
|
||||
.4byte gText_PeopleInUnionRoom
|
||||
.4byte gText_PeopleCommunicating
|
||||
|
||||
.align 2
|
||||
gUnknown_082F0D70:: @ 82F0D70
|
||||
.byte 0x01, 0x01, 0x02, 0x02, 0x01, 0x02, 0x03, 0x01
|
||||
.byte 0x04, 0x04, 0x00, 0x02, 0x06, 0x03, 0x02, 0x07
|
||||
.byte 0x03, 0x02, 0x09, 0x03, 0x00, 0x0a, 0x03, 0x00
|
||||
.byte 0x0b, 0x03, 0x00, 0x0c, 0xff, 0x00, 0x0d, 0x00
|
||||
.byte 0x00, 0x10, 0x03, 0x00, 0x0f, 0x03, 0x00, 0x40
|
||||
.byte 0x02, 0x01, 0x41, 0x02, 0x02, 0x44, 0x02, 0x02
|
||||
.byte 0x45, 0x02, 0x00, 0x48, 0x02, 0x02, 0x54, 0x02
|
||||
.byte 0x01, 0x53, 0x02, 0x02, 0x51, 0x02, 0x01, 0x52
|
||||
.byte 0x02, 0x01, 0x15, 0x03, 0x02, 0x16, 0x03, 0x02
|
||||
.byte 0x17, 0x03, 0x00, 0x18, 0x03, 0x00, 0x19, 0x03
|
||||
.byte 0x00, 0x1a, 0x03, 0x00, 0x1b, 0x03, 0x00, 0x1c
|
||||
.byte 0x01, 0x02, 0x0e, 0x01, 0x02, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082F0DD0:: @ 82F0DD0
|
||||
.4byte 0x000001FC
|
||||
|
||||
.align 2
|
||||
gUnknown_082F0DD4:: @ 82F0DD4
|
||||
window_template 0x00, 0x03, 0x0f, 0x18, 0x04, 0x0e, 0x0014
|
||||
null_window_template
|
||||
|
||||
.align 2
|
||||
gUnknown_082F0DE4:: @ 82F0DE4
|
||||
.byte 0x01, 0x02, 0x03
|
@ -242,4 +242,6 @@
|
||||
#define MOVEMENT_ACTION_FLY_UP 0x9C
|
||||
#define MOVEMENT_ACTION_FLY_DOWN 0x9D
|
||||
|
||||
#define MOVEMENT_ACTION_STEP_END 0xFE
|
||||
|
||||
#endif // GUARD_CONSTANTS_EVENTOBJMV_H
|
||||
|
@ -51,7 +51,7 @@
|
||||
#define GAME_STAT_USED_DAYCARE 47
|
||||
#define GAME_STAT_RODE_CABLE_CAR 48
|
||||
#define GAME_STAT_ENTERED_HOT_SPRINGS 49
|
||||
#define GAME_STAT_50 50
|
||||
#define GAME_STAT_NUM_UNION_ROOM_BATTLES 50
|
||||
#define GAME_STAT_51 51
|
||||
|
||||
#define NUM_USED_GAME_STATS 52
|
||||
|
@ -9,4 +9,10 @@
|
||||
#define MAP_GROUP(map) (MAP_##map >> 8)
|
||||
#define MAP_NUM(map) (MAP_##map & 0xFF)
|
||||
|
||||
// These groups are used by pokedex_area_screen.c to find wild
|
||||
// pokemon locations.
|
||||
#define MAP_GROUP_OVERWORLD_MONS MAP_GROUP(PETALBURG_CITY)
|
||||
#define MAP_GROUP_SPECIAL_MONS_1 MAP_GROUP(METEOR_FALLS_1F_1R)
|
||||
#define MAP_GROUP_SPECIAL_MONS_2 MAP_GROUP(SAFARI_ZONE_NORTHWEST)
|
||||
|
||||
#endif // GUARD_CONSTANTS_MAPS_H
|
||||
|
@ -196,19 +196,33 @@ enum
|
||||
CONTEST_STRING_NONE = 255
|
||||
};
|
||||
|
||||
enum {
|
||||
CONTEST_RANK_NORMAL,
|
||||
CONTEST_RANK_SUPER,
|
||||
CONTEST_RANK_HYPER,
|
||||
CONTEST_RANK_MASTER,
|
||||
CONTEST_RANK_LINK
|
||||
};
|
||||
|
||||
enum {
|
||||
CONTEST_FILTER_NONE,
|
||||
CONTEST_FILTER_NO_POSTGAME,
|
||||
CONTEST_FILTER_ONLY_POSTGAME
|
||||
};
|
||||
|
||||
struct ContestPokemon
|
||||
{
|
||||
/*0x00*/ u16 species;
|
||||
/*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x0D*/ u8 trainerName[8];
|
||||
/*0x0D*/ u8 trainerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x15*/ u8 trainerGfxId;
|
||||
/*0x18*/ u32 flags;
|
||||
/*0x1C*/ u8 whichRank:2;
|
||||
u8 aiPool_Cool:1;
|
||||
u8 aiPool_Beauty:1;
|
||||
u8 aiPool_Cute:1;
|
||||
u8 aiPool_Smart:1;
|
||||
u8 aiPool_Tough:1;
|
||||
/*0x1C*/ u8 whichRank:2; // 0x1 0x2
|
||||
u8 aiPool_Cool:1; // 0x4
|
||||
u8 aiPool_Beauty:1; // 0x8
|
||||
u8 aiPool_Cute:1; // 0x10
|
||||
u8 aiPool_Smart:1; // 0x20
|
||||
u8 aiPool_Tough:1; // 0x40
|
||||
/*0x1E*/ u16 moves[4]; // moves
|
||||
/*0x26*/ u8 cool; // cool
|
||||
/*0x27*/ u8 beauty; // beauty
|
||||
@ -219,7 +233,7 @@ struct ContestPokemon
|
||||
/*0x2C*/ u8 unk2C[12];
|
||||
/*0x38*/ u32 personality; // personality
|
||||
/*0x3C*/ u32 otId; // otId
|
||||
}; // wow
|
||||
};
|
||||
|
||||
struct Shared18000
|
||||
{
|
||||
|
@ -1,6 +1,6 @@
|
||||
#ifndef GUARD_EREADER_SCREEN_H
|
||||
#define GUARD_EREADER_SCREEN_H
|
||||
|
||||
void sub_81D5014(void);
|
||||
void task_add_00_ereader(void);
|
||||
|
||||
#endif // GUARD_EREADER_SCREEN_H
|
||||
|
@ -413,5 +413,10 @@ u8 MovementType_RunInPlace_Step0(struct EventObject *, struct Sprite *);
|
||||
u8 MovementType_Invisible_Step0(struct EventObject *, struct Sprite *);
|
||||
u8 MovementType_Invisible_Step1(struct EventObject *, struct Sprite *);
|
||||
u8 MovementType_Invisible_Step2(struct EventObject *, struct Sprite *);
|
||||
void sub_8097C44(u8 var, bool32 var2);
|
||||
bool32 sub_8097C8C(u8 var);
|
||||
void sub_8097BB4(u8 var1, u8 graphicsId);
|
||||
void sub_8097CC4(u8 var1, u8 var2);
|
||||
bool32 sub_8097D9C(u8 var);
|
||||
|
||||
#endif //GUARD_FIELD_EVENT_OBJ_H
|
||||
|
@ -1,17 +1,6 @@
|
||||
#ifndef GUARD_FIELD_PLAYER_AVATAR_H
|
||||
#define GUARD_FIELD_PLAYER_AVATAR_H
|
||||
|
||||
enum {
|
||||
PLAYER_AVATAR_STATE_NORMAL,
|
||||
PLAYER_AVATAR_STATE_MACH_BIKE,
|
||||
PLAYER_AVATAR_STATE_ACRO_BIKE,
|
||||
PLAYER_AVATAR_STATE_SURFING,
|
||||
PLAYER_AVATAR_STATE_UNDERWATER,
|
||||
PLAYER_AVATAR_STATE_FIELD_MOVE,
|
||||
PLAYER_AVATAR_STATE_FISHING,
|
||||
PLAYER_AVATAR_STATE_WATERING,
|
||||
};
|
||||
|
||||
void player_step(u8 a, u16 b, u16 c);
|
||||
void ClearPlayerAvatarInfo(void);
|
||||
void SetPlayerAvatarExtraStateTransition(u8, u8);
|
||||
@ -73,5 +62,6 @@ void sub_808D1C8(void);
|
||||
bool32 sub_808D1B4(void);
|
||||
bool32 sub_808D1E8(void);
|
||||
void sub_808C0A8(u8 a);
|
||||
u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y);
|
||||
|
||||
#endif // GUARD_FIELD_PLAYER_AVATAR_H
|
||||
|
@ -50,5 +50,6 @@ void SpriteCB_HallOfFameMonitor(struct Sprite *);
|
||||
|
||||
// field_region_map.c
|
||||
void FieldInitRegionMap(MainCallback callback);
|
||||
void sub_8088B94(int x, int y, int a2);
|
||||
|
||||
#endif //GUARD_FIELDMAP_H
|
||||
|
@ -10,6 +10,7 @@ void FixLongGrassMetatilesWindowTop(s16 x, s16 y);
|
||||
void FixLongGrassMetatilesWindowBottom(s16 x, s16 y);
|
||||
|
||||
extern const struct SpritePalette gFieldEffectObjectPaletteInfo6;
|
||||
extern struct MapPosition gPlayerFacingPosition;
|
||||
|
||||
// groundshake
|
||||
bool8 sub_81BE66C(void);
|
||||
|
@ -232,14 +232,25 @@ struct EventObjectGraphicsInfo
|
||||
/*0x20*/ const union AffineAnimCmd *const *affineAnims;
|
||||
};
|
||||
|
||||
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
|
||||
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
|
||||
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
|
||||
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
|
||||
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4)
|
||||
#define PLAYER_AVATAR_FLAG_5 (1 << 5)
|
||||
#define PLAYER_AVATAR_FLAG_6 (1 << 6)
|
||||
#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
|
||||
enum {
|
||||
PLAYER_AVATAR_STATE_NORMAL,
|
||||
PLAYER_AVATAR_STATE_MACH_BIKE,
|
||||
PLAYER_AVATAR_STATE_ACRO_BIKE,
|
||||
PLAYER_AVATAR_STATE_SURFING,
|
||||
PLAYER_AVATAR_STATE_UNDERWATER,
|
||||
PLAYER_AVATAR_STATE_FIELD_MOVE,
|
||||
PLAYER_AVATAR_STATE_FISHING,
|
||||
PLAYER_AVATAR_STATE_WATERING,
|
||||
};
|
||||
|
||||
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << PLAYER_AVATAR_STATE_NORMAL)
|
||||
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << PLAYER_AVATAR_STATE_MACH_BIKE)
|
||||
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << PLAYER_AVATAR_STATE_ACRO_BIKE)
|
||||
#define PLAYER_AVATAR_FLAG_SURFING (1 << PLAYER_AVATAR_STATE_SURFING)
|
||||
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << PLAYER_AVATAR_STATE_UNDERWATER)
|
||||
#define PLAYER_AVATAR_FLAG_5 (1 << PLAYER_AVATAR_STATE_FIELD_MOVE)
|
||||
#define PLAYER_AVATAR_FLAG_6 (1 << PLAYER_AVATAR_STATE_FISHING)
|
||||
#define PLAYER_AVATAR_FLAG_DASH (1 << PLAYER_AVATAR_STATE_WATERING)
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -5032,6 +5032,14 @@ extern const u32 gUnknown_08C16FA8[];
|
||||
extern const u32 gUnknown_08C16E90[];
|
||||
extern const u32 gUnknown_08C17170[];
|
||||
extern const u32 gUnknown_08C17980[];
|
||||
extern const u32 gTiles_8C19450[];
|
||||
extern const u32 gContestNextTurnGfx[];
|
||||
extern const u16 gContestPal[];
|
||||
extern const u32 gUnknown_08C19168[];
|
||||
extern const u32 gContestApplauseGfx[];
|
||||
extern const u32 gContestJudgeGfx[];
|
||||
extern const u32 gContestJudgeSymbolsGfx[];
|
||||
extern const u32 gContest3Pal[];
|
||||
|
||||
extern const u32 gUnknown_08D95E00[];
|
||||
extern const u32 gUnknown_08D960D0[];
|
||||
|
@ -12,7 +12,7 @@ int GetStringCenterAlignXOffsetWithLetterSpacing(int fontId, const u8 *str, int
|
||||
int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int letterSpacing);
|
||||
int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1);
|
||||
int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2);
|
||||
int sub_81DB41C(const struct ListMenuTemplate *listMenu);
|
||||
int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu);
|
||||
void CopyMonCategoryText(int dexNum, u8 *dest);
|
||||
u8 *sub_81DB494(u8 *str, int fontId, u8 *str2, int totalStringWidth);
|
||||
void PadNameString(u8 *dest, u8 padChar);
|
||||
|
@ -200,8 +200,6 @@ extern bool8 gLinkVSyncDisabled;
|
||||
extern u32 gLinkStatus;
|
||||
|
||||
|
||||
void c2_mystery_gift(void);
|
||||
void sub_801867C(void);
|
||||
bool8 IsWirelessAdapterConnected(void);
|
||||
void Task_DestroySelf(u8 taskId);
|
||||
void OpenLink(void);
|
||||
|
@ -260,7 +260,7 @@ u32 sub_8010714(u16 a0, const u8 *a1);
|
||||
void sub_8011DC0(const u8 *a0, u16 a1);
|
||||
bool8 sub_800EF1C(void);
|
||||
bool32 sub_800EF58(bool32 a0);
|
||||
void sub_800E084(void);
|
||||
void DestroyWirelessStatusIndicatorSprite(void);
|
||||
void sub_801103C(void);
|
||||
void sub_8011C5C(void);
|
||||
void sub_80106D4(void);
|
||||
|
@ -71,6 +71,6 @@ void RestoreSerialTimer3IntrHandlers(void);
|
||||
void StartTimer1(void);
|
||||
void SeedRngAndSetTrainerId(void);
|
||||
u16 GetGeneratedTrainerIdLower(void);
|
||||
|
||||
void sub_819789C(void);
|
||||
|
||||
#endif // GUARD_MAIN_H
|
||||
|
@ -35,7 +35,7 @@ void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram);
|
||||
void DisplayYesNoMenuDefaultYes(void);
|
||||
u32 GetPlayerTextSpeed(void);
|
||||
u8 GetPlayerTextSpeedDelay(void);
|
||||
void sub_81978B0(u16 arg0);
|
||||
void Menu_LoadStdPalAt(u16 arg0);
|
||||
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16));
|
||||
void sub_8199DF0(u32 bg, u8 a1, int a2, int a3);
|
||||
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
|
||||
|
@ -32,23 +32,23 @@ struct MEventStruct_Unk1442CC
|
||||
};
|
||||
|
||||
void sub_801AFD8(void);
|
||||
struct MEventBuffer_3120_Sub *sub_801B00C(void);
|
||||
struct MEventBuffer_3120_Sub *sav1_get_mevent_buffer_0(void);
|
||||
struct MEventBuffer_32E0_Sub *sav1_get_mevent_buffer_1(void);
|
||||
struct MEventBuffer_3430_Sub *sav1_get_mevent_buffer_2(void);
|
||||
struct MysteryEventStruct *sub_801B044(void);
|
||||
u16 *sub_801B058(void);
|
||||
void sub_801B06C(void);
|
||||
void DestroyWonderNews(void);
|
||||
bool32 sub_801B078(const struct MEventBuffer_3120_Sub *src);
|
||||
bool32 sub_801B0CC(void);
|
||||
bool32 sub_801B128(void);
|
||||
bool32 ValidateReceivedWonderNews(void);
|
||||
bool32 WonderNews_Test_Unk_02(void);
|
||||
bool32 sub_801B1A4(const u8 *src);
|
||||
void sub_801B1E8(void);
|
||||
void DestroyWonderCard(void);
|
||||
bool32 sub_801B21C(const struct MEventBuffer_32E0_Sub *data);
|
||||
bool32 sub_801B27C(void);
|
||||
bool32 sub_801B308(void);
|
||||
u16 sub_801B39C(void);
|
||||
bool32 ValidateReceivedWonderCard(void);
|
||||
bool32 WonderCard_Test_Unk_08_6(void);
|
||||
u16 GetWonderCardFlagID(void);
|
||||
void sub_801B3C0(struct MEventBuffer_32E0_Sub *buffer);
|
||||
bool32 sub_801B3F8(void);
|
||||
bool32 CheckReceivedGiftFromWonderCard(void);
|
||||
bool32 sub_801B508(const u16 *data);
|
||||
void sub_801B580(struct MEventStruct_Unk1442CC *data, bool32 a1);
|
||||
bool32 sub_801B6A0(const struct MEventStruct_Unk1442CC *data, bool32 a1);
|
||||
|
@ -1,16 +1,16 @@
|
||||
#ifndef GUARD_MEVENT_801BAAC_H
|
||||
#define GUARD_MEVENT_801BAAC_H
|
||||
|
||||
bool32 sub_801BAAC(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6);
|
||||
bool32 sub_801C6C8(const struct MEventBuffer_3120_Sub * a0);
|
||||
s32 sub_801BB74(void);
|
||||
s32 sub_801C758(void);
|
||||
s32 sub_801BDA4(bool32 flag);
|
||||
void sub_801BB48(void);
|
||||
s32 sub_801CA50(bool32 flag);
|
||||
void sub_801C72C(void);
|
||||
u32 sub_801CCD0(u16 input);
|
||||
void sub_801CC80(void);
|
||||
void sub_801CC38(void);
|
||||
bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6);
|
||||
bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0);
|
||||
s32 FadeToWonderCardMenu(void);
|
||||
s32 FadeToWonderNewsMenu(void);
|
||||
s32 FadeOutFromWonderCard(bool32 flag);
|
||||
void DestroyWonderCardResources(void);
|
||||
s32 FadeOutFromWonderNews(bool32 flag);
|
||||
void DestroyWonderNewsResources(void);
|
||||
u32 MENews_GetInput(u16 input);
|
||||
void MENews_AddScrollIndicatorArrowPair(void);
|
||||
void MENews_RemoveScrollIndicatorArrowPair(void);
|
||||
|
||||
#endif //GUARD_MEVENT_801BAAC_H
|
||||
|
@ -2,6 +2,6 @@
|
||||
#define GUARD_MEVENT_NEWS_H
|
||||
|
||||
void sub_801DBC0(void);
|
||||
void sub_801DB68(u32 a0);
|
||||
void GenerateRandomNews(u32 a0);
|
||||
|
||||
#endif //GUARD_MEVENT_NEWS_H
|
||||
|
@ -3,6 +3,6 @@
|
||||
|
||||
void mevent_srv_new_wcard();
|
||||
void mevent_srv_init_wnews();
|
||||
u32 sub_801D0C4(u16 * a0);
|
||||
u32 mevent_srv_common_do_exec(u16 * a0);
|
||||
|
||||
#endif //GUARD_MEVENT_SERVER_H
|
||||
|
@ -1,10 +1,10 @@
|
||||
#ifndef GUARD_MEVENT_SERVER_ISH_H
|
||||
#define GUARD_MEVENT_SERVER_ISH_H
|
||||
|
||||
void sub_801D484(u32 arg);
|
||||
u32 sub_801D4A8(u16 * a0);
|
||||
void sub_801D4E4(void);
|
||||
void * sub_801D4F4(void);
|
||||
void sub_801D500(u32 a0);
|
||||
void mevent_srv_ish_do_init(u32 arg);
|
||||
u32 mevent_srv_ish_do_exec(u16 * a0);
|
||||
void mevent_srv_ish_inc_flag(void);
|
||||
void * mevent_srv_ish_get_buffer(void);
|
||||
void mevent_srv_ish_set_param(u32 a0);
|
||||
|
||||
#endif //GUARD_MEVENT_SERVER_ISH_H
|
||||
|
@ -1,8 +1,16 @@
|
||||
#ifndef GUARD_MYSTERY_GIFT_H
|
||||
#define GUARD_MYSTERY_GIFT_H
|
||||
|
||||
void sub_8018438(void);
|
||||
void sub_80186EC(bool8 isJapanese, bool32 usePickOkCancel);
|
||||
void sub_8018798(u32 bg);
|
||||
extern bool8 gGiftIsFromEReader;
|
||||
|
||||
u16 GetMysteryGiftBaseBlock(void);
|
||||
void c2_mystery_gift_e_reader_run(void);
|
||||
void PrintMysteryGiftOrEReaderTopMenu(bool8 isJapanese, bool32 usePickOkCancel);
|
||||
void MG_DrawCheckerboardPattern(u32 bg);
|
||||
void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void);
|
||||
bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str);
|
||||
void AddTextPrinterToWindow1(const u8 *src);
|
||||
void c2_ereader(void);
|
||||
void c2_mystery_gift(void);
|
||||
|
||||
#endif //GUARD_MYSTERY_GIFT_H
|
||||
|
@ -2672,5 +2672,13 @@ extern const u8 gText_CommunicationCompleted[];
|
||||
extern const u8 gText_HaventReceivedGiftOkayToDiscard[];
|
||||
extern const u8 gText_SendingWonderCard[];
|
||||
extern const u8 gText_SendingWonderNews[];
|
||||
extern const u8 gText_WirelessCommStatus[];
|
||||
extern const u8 gText_PeopleTrading[];
|
||||
extern const u8 gText_PeopleBattling[];
|
||||
extern const u8 gText_PeopleInUnionRoom[];
|
||||
extern const u8 gText_PeopleCommunicating[];
|
||||
extern const u8 gText_CommStandbyAwaitingOtherPlayer[];
|
||||
extern const u8 gText_RefusedBattle[];
|
||||
extern const u8 gText_BattleWasRefused[];
|
||||
|
||||
#endif // GUARD_STRINGS_H
|
||||
|
@ -17,8 +17,8 @@ void LoadMessageBoxGfx(u8 windowId, u16 destOffset, u8 palOffset);
|
||||
void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palOffset);
|
||||
void LoadWindowGfx(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset);
|
||||
void LoadUserWindowBorderGfx_(u8 windowId, u16 destOffset, u8 palOffset);
|
||||
void sub_8098858(u8 windowId, u16 tileNum, u8 palNum);
|
||||
void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum);
|
||||
void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum);
|
||||
void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum);
|
||||
void rbox_fill_rectangle(u8 windowId);
|
||||
const u16 *stdpal_get(u8 id);
|
||||
const u16 *GetOverworldTextboxPalettePtr(void);
|
||||
|
@ -90,7 +90,7 @@ struct UnkStruct_8019BA8
|
||||
{
|
||||
u8 field_0;
|
||||
u8 field_1;
|
||||
u8 field_2;
|
||||
s8 field_2;
|
||||
u8 field_3;
|
||||
};
|
||||
|
||||
@ -165,14 +165,8 @@ u8 sub_8013F78(void);
|
||||
bool32 sub_802C908(u16);
|
||||
void nullsub_89(u8 taskId);
|
||||
void var_800D_set_xB(void);
|
||||
|
||||
bool32 mevent_0814257C(u8 *textState, const u8 *str);
|
||||
void sub_8018884(const u8 *src);
|
||||
void sub_80186A4(void);
|
||||
void sub_8014EFC(u32 arg0);
|
||||
void sub_80152A8(u32 arg0);
|
||||
void sub_8014A00(u32 arg0);
|
||||
|
||||
extern bool8 gUnknown_02022C60;
|
||||
void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0);
|
||||
void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0);
|
||||
void MEvent_CreateTask_Leader(u32 arg0);
|
||||
|
||||
#endif //GUARD_UNION_ROOM_H
|
||||
|
7
include/union_room_battle.h
Normal file
7
include/union_room_battle.h
Normal file
@ -0,0 +1,7 @@
|
||||
#ifndef GUARD_UNION_ROOM_BATTLE_H
|
||||
#define GUARD_UNION_ROOM_BATTLE_H
|
||||
|
||||
u8 sub_8013C40(void);
|
||||
void sub_8014210(u16 battleFlags);
|
||||
|
||||
#endif //GUARD_UNION_ROOM_BATTLE_H
|
14
include/union_room_player_avatar.h
Normal file
14
include/union_room_player_avatar.h
Normal file
@ -0,0 +1,14 @@
|
||||
#ifndef GUARD_UNION_ROOM_PLAYER_AVATAR_H
|
||||
#define GUARD_UNION_ROOM_PLAYER_AVATAR_H
|
||||
|
||||
u8 sub_8019BA8(struct UnkStruct_8019BA8 * ptr);
|
||||
void sub_8019E3C(void);
|
||||
void sub_8019E70(u8 *arg0, s32 arg1);
|
||||
void sub_8019F04(u8 *spriteIds);
|
||||
void sub_8019F2C(void);
|
||||
void sub_801A274(struct UnkStruct_URoom *arg0);
|
||||
void sub_801A284(struct UnkStruct_URoom *arg0);
|
||||
bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3);
|
||||
void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2);
|
||||
|
||||
#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H
|
@ -56,7 +56,8 @@ SECTIONS {
|
||||
src/link_rfu.o(.text);
|
||||
src/union_room.o(.text);
|
||||
src/mystery_gift.o(.text);
|
||||
asm/union_room_player_avatar.o(.text);
|
||||
src/union_room_player_avatar.o(.text);
|
||||
src/union_room_battle.o(.text);
|
||||
src/mevent2.o(.text);
|
||||
src/mevent_801BAAC.o(.text);
|
||||
asm/mevent_server.o(.text);
|
||||
@ -412,7 +413,8 @@ SECTIONS {
|
||||
src/link_rfu.o(.rodata);
|
||||
src/union_room.o(.rodata);
|
||||
src/mystery_gift.o(.rodata);
|
||||
data/union_room_player_avatar.o(.rodata);
|
||||
src/union_room_player_avatar.o(.rodata);
|
||||
src/union_room_battle.o(.rodata);
|
||||
src/mevent2.o(.rodata);
|
||||
src/mevent_801BAAC.o(.rodata);
|
||||
data/mevent_server.o(.rodata);
|
||||
@ -487,7 +489,7 @@ SECTIONS {
|
||||
src/item_menu_icons.o(.rodata);
|
||||
src/battle_anim_mon_movement.o(.rodata);
|
||||
src/item.o(.rodata);
|
||||
data/contest.o(.rodata);
|
||||
src/contest.o(.rodata);
|
||||
src/shop.o(.rodata);
|
||||
src/fldeff_escalator.o(.rodata);
|
||||
src/berry.o(.rodata);
|
||||
|
@ -709,7 +709,7 @@ void LoadBattleMenuWindowGfx(void)
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||
{
|
||||
sub_81978B0(0x70);
|
||||
Menu_LoadStdPalAt(0x70);
|
||||
LoadMessageBoxGfx(0, 0x30, 0x70);
|
||||
gPlttBufferUnfaded[0x76] = 0;
|
||||
CpuCopy16(&gPlttBufferUnfaded[0x76], &gPlttBufferFaded[0x76], 2);
|
||||
|
@ -940,7 +940,7 @@ static void InitBerryBlenderWindows(void)
|
||||
FillWindowPixelBuffer(i, PIXEL_FILL(0));
|
||||
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14);
|
||||
sub_81978B0(0xE0);
|
||||
Menu_LoadStdPalAt(0xE0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -582,7 +582,7 @@ int sub_802130C(void)
|
||||
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
|
||||
break;
|
||||
case 6:
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
sub_8022960(var0);
|
||||
sub_8034CC8();
|
||||
break;
|
||||
|
642
src/contest.c
642
src/contest.c
@ -218,12 +218,6 @@ EWRAM_DATA u8 gUnknown_02039F5D = 0;
|
||||
// IWRAM common vars.
|
||||
u32 gContestRngValue;
|
||||
|
||||
extern const u16 gUnknown_08587C30[];
|
||||
extern const struct BgTemplate gUnknown_08587F34[4];
|
||||
extern const struct WindowTemplate gUnknown_08587F44[];
|
||||
extern const u8 *const gUnknown_08587D90[];
|
||||
extern const u8 *const gUnknown_08587F08[];
|
||||
extern const u8 *const gUnknown_08587F1C[];
|
||||
extern const u8 *const gUnknown_0827E8DA[];
|
||||
extern const u8 gText_0827D55A[];
|
||||
extern const u8 gText_0827E793[];
|
||||
@ -248,33 +242,615 @@ extern const u8 gText_Contest_Fear[];
|
||||
extern const u8 gText_BDot[];
|
||||
extern const u8 gText_CDot[];
|
||||
extern const u8 *const gUnknown_08587E10[];
|
||||
extern const struct ContestPokemon gContestOpponents[96];
|
||||
extern const u8 gUnknown_085898A4[96];
|
||||
extern const struct CompressedSpriteSheet gUnknown_08587C00;
|
||||
extern const struct SpriteTemplate gSpriteTemplate_8587BE8;
|
||||
extern const struct CompressedSpriteSheet gUnknown_08587C08;
|
||||
extern const struct CompressedSpritePalette gUnknown_08587C10;
|
||||
extern const struct SpriteTemplate gSpriteTemplate_8587C18;
|
||||
extern const union AffineAnimCmd *const gUnknown_082FF6C0[];
|
||||
extern const union AffineAnimCmd *const gUnknown_082FF694[];
|
||||
extern const u8 *const gContestEffectDescriptionPointers[];
|
||||
extern const struct SpriteSheet gUnknown_08587A74;
|
||||
extern const u8 gUnknown_08587A6C[];
|
||||
extern const struct SpriteTemplate gSpriteTemplate_8587AD0;
|
||||
extern const struct SpritePalette gUnknown_08587B08;
|
||||
extern const struct CompressedSpriteSheet gUnknown_08587AE8[];
|
||||
extern const struct SpriteTemplate gSpriteTemplate_8587B18[];
|
||||
extern const u8 gUnknown_08587A70[];
|
||||
extern const struct SubspriteTable gSubspriteTables_8587B80[];
|
||||
extern const struct CompressedSpriteSheet gUnknown_08587BB0;
|
||||
extern const struct SpritePalette gUnknown_08587BB8;
|
||||
extern const struct SpriteTemplate gSpriteTemplate_8587BC8;
|
||||
extern void (*const gContestEffectFuncs[])(void);
|
||||
extern const s8 gContestExcitementTable[][5];
|
||||
extern const struct ContestWinner gUnknown_08587FA4[];
|
||||
extern const struct CompressedSpriteSheet gUnknown_08589904[];
|
||||
extern const struct SpritePalette gUnknown_08589924[];
|
||||
extern const struct SpriteTemplate gSpriteTemplate_858998C[];
|
||||
|
||||
static const u8 gUnknown_08587A6C[] =
|
||||
{
|
||||
0x24, 0x4C, 0x74, 0x9C
|
||||
};
|
||||
|
||||
static const u8 gUnknown_08587A70[] =
|
||||
{
|
||||
0x24, 0x4C, 0x74, 0x9C
|
||||
};
|
||||
|
||||
static const struct SpriteSheet gUnknown_08587A74 =
|
||||
{
|
||||
.data = gTiles_8C19450,
|
||||
.size = 0x20,
|
||||
.tag = 0x4E20
|
||||
};
|
||||
|
||||
static const struct OamData gOamData_8587A7C =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 0,
|
||||
.objMode = 0,
|
||||
.mosaic = 0,
|
||||
.bpp = 0,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(8x8),
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8587A84[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8587A94[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
|
||||
AFFINEANIMCMD_FRAME(0xFFF6, 0xFFF6, -20, 20),
|
||||
AFFINEANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8587AAC[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x38, 0x38, 0, 0),
|
||||
AFFINEANIMCMD_FRAME(10, 10, 20, 20),
|
||||
AFFINEANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd* const gSpriteAffineAnimTable_8587AC4[] =
|
||||
{
|
||||
gSpriteAffineAnim_8587A84,
|
||||
gSpriteAffineAnim_8587A94,
|
||||
gSpriteAffineAnim_8587AAC
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate gSpriteTemplate_8587AD0 =
|
||||
{
|
||||
.tileTag = 0x4E20,
|
||||
.paletteTag = 0xABE0,
|
||||
.oam = &gOamData_8587A7C,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gSpriteAffineAnimTable_8587AC4,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
static const struct CompressedSpriteSheet gUnknown_08587AE8[] =
|
||||
{
|
||||
{
|
||||
.data = gContestNextTurnGfx,
|
||||
.size = 0x100,
|
||||
.tag = 0x4E22
|
||||
},
|
||||
{
|
||||
.data = gContestNextTurnGfx,
|
||||
.size = 0x100,
|
||||
.tag = 0x4E23
|
||||
},
|
||||
{
|
||||
.data = gContestNextTurnGfx,
|
||||
.size = 0x100,
|
||||
.tag = 0x4E24
|
||||
},
|
||||
{
|
||||
.data = gContestNextTurnGfx,
|
||||
.size = 0x100,
|
||||
.tag = 0x4E25
|
||||
}
|
||||
};
|
||||
|
||||
static const struct SpritePalette gUnknown_08587B08 =
|
||||
{
|
||||
.data = gContestPal,
|
||||
.tag = 0x4E22
|
||||
};
|
||||
|
||||
static const struct OamData gOamData_8587B10 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 0,
|
||||
.objMode = 0,
|
||||
.mosaic = 0,
|
||||
.bpp = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate gSpriteTemplate_8587B18[] =
|
||||
{
|
||||
{
|
||||
.tileTag = 0x4E22,
|
||||
.paletteTag = 0x4E22,
|
||||
.oam = &gOamData_8587B10,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy,
|
||||
},
|
||||
{
|
||||
.tileTag = 0x4E23,
|
||||
.paletteTag = 0x4E22,
|
||||
.oam = &gOamData_8587B10,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy,
|
||||
},
|
||||
{
|
||||
.tileTag = 0x4E24,
|
||||
.paletteTag = 0x4E22,
|
||||
.oam = &gOamData_8587B10,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy,
|
||||
},
|
||||
{
|
||||
.tileTag = 0x4E25,
|
||||
.paletteTag = 0x4E22,
|
||||
.oam = &gOamData_8587B10,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy,
|
||||
}
|
||||
};
|
||||
|
||||
const struct Subsprite gSubspriteTable_8587B78[] =
|
||||
{
|
||||
{
|
||||
.x = -28,
|
||||
.y = -4,
|
||||
.shape = ST_OAM_H_RECTANGLE,
|
||||
.size = 1,
|
||||
.tileOffset = 0,
|
||||
.priority = 0
|
||||
},
|
||||
{
|
||||
.x = 4,
|
||||
.y = -4,
|
||||
.shape = ST_OAM_H_RECTANGLE,
|
||||
.size = 1,
|
||||
.tileOffset = 4,
|
||||
.priority = 0
|
||||
}
|
||||
};
|
||||
|
||||
const struct SubspriteTable gSubspriteTables_8587B80[] =
|
||||
{
|
||||
{
|
||||
.subspriteCount = 2,
|
||||
.subsprites = gSubspriteTable_8587B78
|
||||
}
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gUnknown_08587B88 =
|
||||
{
|
||||
.data = gUnknown_08C19168,
|
||||
.size = 0x180,
|
||||
.tag = 0xABE1
|
||||
};
|
||||
|
||||
const struct OamData gOamData_8587B90 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 0,
|
||||
.objMode = 0,
|
||||
.mosaic = 0,
|
||||
.bpp = 0,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(16x16),
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_8587B98 =
|
||||
{
|
||||
.tileTag = 0xABE1,
|
||||
.paletteTag = 0xABE0,
|
||||
.oam = &gOamData_8587B90,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gUnknown_08587BB0 =
|
||||
{
|
||||
.data = gContestApplauseGfx,
|
||||
.size = 0x400,
|
||||
.tag = 0xABE2
|
||||
};
|
||||
|
||||
const struct SpritePalette gUnknown_08587BB8 =
|
||||
{
|
||||
.data = gContestPal,
|
||||
.tag = 0xABE2
|
||||
};
|
||||
|
||||
const struct OamData gOamData_8587BC0 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 0,
|
||||
.objMode = 0,
|
||||
.mosaic = 0,
|
||||
.bpp = 0,
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(64x32),
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_8587BC8 =
|
||||
{
|
||||
.tileTag = 0xABE2,
|
||||
.paletteTag = 0xABE2,
|
||||
.oam = &gOamData_8587BC0,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct OamData gOamData_8587BE0 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 0,
|
||||
.objMode = 0,
|
||||
.mosaic = 0,
|
||||
.bpp = 0,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(64x64),
|
||||
.tileNum = 0,
|
||||
.priority = 3,
|
||||
.paletteNum = 2,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_8587BE8 =
|
||||
{
|
||||
.tileTag = 0x4E21,
|
||||
.paletteTag = 0x4E21,
|
||||
.oam = &gOamData_8587BE0,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gUnknown_08587C00 =
|
||||
{
|
||||
.data = gContestJudgeGfx,
|
||||
.size = 0x800,
|
||||
.tag = 0x4E21
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gUnknown_08587C08 =
|
||||
{
|
||||
.data = gContestJudgeSymbolsGfx,
|
||||
.size = 0x380,
|
||||
.tag = 0xABE0
|
||||
};
|
||||
|
||||
const struct CompressedSpritePalette gUnknown_08587C10 =
|
||||
{
|
||||
.data = gContest3Pal,
|
||||
.tag = 0xABE0
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_8587C18 =
|
||||
{
|
||||
.tileTag = 0xABE0,
|
||||
.paletteTag = 0xABE0,
|
||||
.oam = &gUnknown_0852490C,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const u16 gUnknown_08587C30[] = INCBIN_U16("graphics/unknown/unknown_587C30.gbapal");
|
||||
|
||||
#include "data/contest_text_tables.h"
|
||||
|
||||
const struct BgTemplate gUnknown_08587F34[] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
.charBaseIndex = 0,
|
||||
.mapBaseIndex = 0x18,
|
||||
.screenSize = 2,
|
||||
.paletteMode = 0,
|
||||
.priority = 0,
|
||||
.baseTile = 0
|
||||
},
|
||||
{
|
||||
.bg = 1,
|
||||
.charBaseIndex = 2,
|
||||
.mapBaseIndex = 0x1E,
|
||||
.screenSize = 2,
|
||||
.paletteMode = 0,
|
||||
.priority = 1,
|
||||
.baseTile = 0
|
||||
},
|
||||
{
|
||||
.bg = 2,
|
||||
.charBaseIndex = 0,
|
||||
.mapBaseIndex = 0x1C,
|
||||
.screenSize = 2,
|
||||
.paletteMode = 0,
|
||||
.priority = 0,
|
||||
.baseTile = 0
|
||||
},
|
||||
{
|
||||
.bg = 3,
|
||||
.charBaseIndex = 0,
|
||||
.mapBaseIndex = 0x1A,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
.priority = 3,
|
||||
.baseTile = 0
|
||||
}
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_08587F44[] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 18,
|
||||
.tilemapTop = 0,
|
||||
.width = 12,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x200
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 18,
|
||||
.tilemapTop = 5,
|
||||
.width = 12,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x218
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 18,
|
||||
.tilemapTop = 10,
|
||||
.width = 12,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x230
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 18,
|
||||
.tilemapTop = 15,
|
||||
.width = 12,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x248
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 15,
|
||||
.width = 17,
|
||||
.height = 4,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x260
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 0x1F,
|
||||
.width = 9,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x2A4
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 0x21,
|
||||
.width = 9,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x2B6
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 0x23,
|
||||
.width = 9,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x2C8
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 0x25,
|
||||
.width = 9,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x2DA
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 16,
|
||||
.tilemapTop = 0x1F,
|
||||
.width = 1,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x2EC
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 11,
|
||||
.tilemapTop = 0x23,
|
||||
.width = 18,
|
||||
.height = 4,
|
||||
.paletteNum = 0xF,
|
||||
.baseBlock = 0x2EE
|
||||
},
|
||||
DUMMY_WIN_TEMPLATE
|
||||
};
|
||||
|
||||
#include "data/contest_opponents.h"
|
||||
|
||||
static const struct CompressedSpriteSheet sUnknown_08589904[] =
|
||||
{
|
||||
{
|
||||
.data = gBlankGfxCompressed,
|
||||
.size = 0x1000,
|
||||
.tag = 0x80E8
|
||||
},
|
||||
{
|
||||
.data = gBlankGfxCompressed,
|
||||
.size = 0x1000,
|
||||
.tag = 0x80E9
|
||||
},
|
||||
{
|
||||
.data = gBlankGfxCompressed,
|
||||
.size = 0x1000,
|
||||
.tag = 0x80EA
|
||||
},
|
||||
{
|
||||
.data = gBlankGfxCompressed,
|
||||
.size = 0x1000,
|
||||
.tag = 0x80EB
|
||||
}
|
||||
};
|
||||
|
||||
// Yup this is super dangerous but that's how it is here
|
||||
static const struct SpritePalette sUnknown_08589924[] =
|
||||
{
|
||||
{
|
||||
.data = (u16*)(gHeap + 0x1A0A4),
|
||||
.tag = 0x80E8
|
||||
},
|
||||
{
|
||||
.data = (u16*)(gHeap + 0x1A0C4),
|
||||
.tag = 0x80E9
|
||||
},
|
||||
{
|
||||
.data = (u16*)(gHeap + 0x1A0E4),
|
||||
.tag = 0x80EA
|
||||
},
|
||||
{
|
||||
.data = (u16*)(gHeap + 0x1A104),
|
||||
.tag = 0x80EB
|
||||
}
|
||||
};
|
||||
|
||||
const struct OamData gOamData_8589944 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = 3,
|
||||
.objMode = 1,
|
||||
.mosaic = 0,
|
||||
.bpp = 0,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(64x64),
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
const union AffineAnimCmd gSpriteAffineAnim_858994C[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
|
||||
AFFINEANIMCMD_END
|
||||
};
|
||||
|
||||
const union AffineAnimCmd gSpriteAffineAnim_858995C[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(3, 3, 0, 15),
|
||||
AFFINEANIMCMD_FRAME(-3, -3, 0, 15),
|
||||
AFFINEANIMCMD_FRAME(3, 3, 0, 15),
|
||||
AFFINEANIMCMD_FRAME(-3, -3, 0, 15),
|
||||
AFFINEANIMCMD_END
|
||||
};
|
||||
|
||||
const union AffineAnimCmd *const gSpriteAffineAnimTable_8589984[] =
|
||||
{
|
||||
gSpriteAffineAnim_858994C,
|
||||
gSpriteAffineAnim_858995C
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_858998C[] =
|
||||
{
|
||||
{
|
||||
.tileTag = 0x80E8,
|
||||
.paletteTag = 0x80E8,
|
||||
.oam = &gOamData_8589944,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gSpriteAffineAnimTable_8589984,
|
||||
.callback = SpriteCallbackDummy
|
||||
},
|
||||
{
|
||||
.tileTag = 0x80E9,
|
||||
.paletteTag = 0x80E9,
|
||||
.oam = &gOamData_8589944,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gSpriteAffineAnimTable_8589984,
|
||||
.callback = SpriteCallbackDummy
|
||||
},
|
||||
{
|
||||
.tileTag = 0x80EA,
|
||||
.paletteTag = 0x80EA,
|
||||
.oam = &gOamData_8589944,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gSpriteAffineAnimTable_8589984,
|
||||
.callback = SpriteCallbackDummy
|
||||
},
|
||||
{
|
||||
.tileTag = 0x80EB,
|
||||
.paletteTag = 0x80EB,
|
||||
.oam = &gOamData_8589944,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gSpriteAffineAnimTable_8589984,
|
||||
.callback = SpriteCallbackDummy
|
||||
}
|
||||
};
|
||||
|
||||
const s8 gContestExcitementTable[][5] =
|
||||
{
|
||||
{ 1, 0, -1, -1, 0},
|
||||
{ 0, 1, 0, -1, -1},
|
||||
{-1, 0, 1, 0, -1},
|
||||
{-1, -1, 0, 1, 0},
|
||||
{ 0, -1, -1, 0, 1}
|
||||
};
|
||||
|
||||
static void TaskDummy1(u8 taskId)
|
||||
{
|
||||
@ -2118,7 +2694,7 @@ void sub_80DAB8C(u8 contestType, u8 rank)
|
||||
r7 = TRUE;
|
||||
|
||||
// Find all suitable opponents
|
||||
r3 = gUnknown_085898A4;
|
||||
r3 = gPostgameContestOpponentFilter;
|
||||
for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++)
|
||||
{
|
||||
if (rank == gContestOpponents[i].whichRank)
|
||||
@ -2178,12 +2754,12 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
|
||||
|
||||
if (isPostgame == TRUE)
|
||||
{
|
||||
if (gUnknown_085898A4[i] == 1)
|
||||
if (gPostgameContestOpponentFilter[i] == CONTEST_FILTER_NO_POSTGAME)
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_085898A4[i] == 2)
|
||||
if (gPostgameContestOpponentFilter[i] == CONTEST_FILTER_ONLY_POSTGAME)
|
||||
continue;
|
||||
}
|
||||
if ((contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool)
|
||||
@ -3317,8 +3893,8 @@ static u8 sub_80DC9EC(u8 a)
|
||||
u8 spriteId1, spriteId2;
|
||||
u8 x = gUnknown_02039F26[a] * 40 + 32;
|
||||
|
||||
LoadCompressedSpriteSheet(&gUnknown_08589904[a]);
|
||||
LoadSpritePalette(&gUnknown_08589924[a]);
|
||||
LoadCompressedSpriteSheet(&sUnknown_08589904[a]);
|
||||
LoadSpritePalette(&sUnknown_08589924[a]);
|
||||
spriteId1 = CreateSprite(&gSpriteTemplate_858998C[a], 184, x, 29);
|
||||
spriteId2 = CreateSprite(&gSpriteTemplate_858998C[a], 248, x, 29);
|
||||
gSprites[spriteId2].oam.tileNum += 64;
|
||||
|
@ -778,7 +778,7 @@ static void sub_80F677C(u8 taskId)
|
||||
if (!gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
if (gIsLinkContest & 0x2)
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
|
||||
sub_80F7144();
|
||||
gTasks[taskId].func = sub_80F67C4;
|
||||
|
3066
src/data/contest_opponents.h
Normal file
3066
src/data/contest_opponents.h
Normal file
File diff suppressed because it is too large
Load Diff
414
src/data/contest_text_tables.h
Normal file
414
src/data/contest_text_tables.h
Normal file
@ -0,0 +1,414 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
extern const u8 gContestEffect00hDescription[];
|
||||
extern const u8 gContestEffect01hDescription[];
|
||||
extern const u8 gContestEffect02hDescription[];
|
||||
extern const u8 gContestEffect03hDescription[];
|
||||
extern const u8 gContestEffect04hDescription[];
|
||||
extern const u8 gContestEffect05hDescription[];
|
||||
extern const u8 gContestEffect06hDescription[];
|
||||
extern const u8 gContestEffect07hDescription[];
|
||||
extern const u8 gContestEffect08hDescription[];
|
||||
extern const u8 gContestEffect09hDescription[];
|
||||
extern const u8 gContestEffect0AhDescription[];
|
||||
extern const u8 gContestEffect0BhDescription[];
|
||||
extern const u8 gContestEffect0ChDescription[];
|
||||
extern const u8 gContestEffect0DhDescription[];
|
||||
extern const u8 gContestEffect0EhDescription[];
|
||||
extern const u8 gContestEffect0FhDescription[];
|
||||
extern const u8 gContestEffect10hDescription[];
|
||||
extern const u8 gContestEffect11hDescription[];
|
||||
extern const u8 gContestEffect12hDescription[];
|
||||
extern const u8 gContestEffect13hDescription[];
|
||||
extern const u8 gContestEffect14hDescription[];
|
||||
extern const u8 gContestEffect15hDescription[];
|
||||
extern const u8 gContestEffect16hDescription[];
|
||||
extern const u8 gContestEffect17hDescription[];
|
||||
extern const u8 gContestEffect18hDescription[];
|
||||
extern const u8 gContestEffect19hDescription[];
|
||||
extern const u8 gContestEffect1AhDescription[];
|
||||
extern const u8 gContestEffect1BhDescription[];
|
||||
extern const u8 gContestEffect1ChDescription[];
|
||||
extern const u8 gContestEffect1DhDescription[];
|
||||
extern const u8 gContestEffect1EhDescription[];
|
||||
extern const u8 gContestEffect1FhDescription[];
|
||||
extern const u8 gContestEffect20hDescription[];
|
||||
extern const u8 gContestEffect21hDescription[];
|
||||
extern const u8 gContestEffect22hDescription[];
|
||||
extern const u8 gContestEffect23hDescription[];
|
||||
extern const u8 gContestEffect24hDescription[];
|
||||
extern const u8 gContestEffect25hDescription[];
|
||||
extern const u8 gContestEffect26hDescription[];
|
||||
extern const u8 gContestEffect27hDescription[];
|
||||
extern const u8 gContestEffect28hDescription[];
|
||||
extern const u8 gContestEffect29hDescription[];
|
||||
extern const u8 gContestEffect2AhDescription[];
|
||||
extern const u8 gContestEffect2BhDescription[];
|
||||
extern const u8 gContestEffect2ChDescription[];
|
||||
extern const u8 gContestEffect2DhDescription[];
|
||||
extern const u8 gContestEffect2EhDescription[];
|
||||
extern const u8 gContestEffect2FhDescription[];
|
||||
|
||||
extern const u8 gUnusedContestMoveName0[];
|
||||
extern const u8 gUnusedContestMoveName1[];
|
||||
extern const u8 gUnusedContestMoveName2[];
|
||||
extern const u8 gUnusedContestMoveName3[];
|
||||
extern const u8 gUnusedContestMoveName4[];
|
||||
extern const u8 gUnusedContestMoveName5[];
|
||||
extern const u8 gUnusedContestMoveName6[];
|
||||
extern const u8 gUnusedContestMoveName7[];
|
||||
extern const u8 gUnusedContestMoveName8[];
|
||||
extern const u8 gUnusedContestMoveName9[];
|
||||
extern const u8 gUnusedContestMoveName10[];
|
||||
extern const u8 gUnusedContestMoveName11[];
|
||||
extern const u8 gUnusedContestMoveName12[];
|
||||
|
||||
extern const u8 gContestMoveTypeCoolText[];
|
||||
extern const u8 gContestMoveTypeBeautyText[];
|
||||
extern const u8 gContestMoveTypeCuteText[];
|
||||
extern const u8 gContestMoveTypeSmartText[];
|
||||
extern const u8 gContestMoveTypeToughText[];
|
||||
|
||||
extern const u8 gText_0827D5C1[];
|
||||
extern const u8 gText_0827D5DC[];
|
||||
extern const u8 gText_0827D600[];
|
||||
extern const u8 gText_0827D612[];
|
||||
extern const u8 gText_0827D612[];
|
||||
extern const u8 gText_0827D62D[];
|
||||
extern const u8 gText_0827D654[];
|
||||
extern const u8 gText_0827D67E[];
|
||||
extern const u8 gText_0827D69C[];
|
||||
extern const u8 gText_0827D6BA[];
|
||||
extern const u8 gText_0827D6E5[];
|
||||
extern const u8 gText_0827D706[];
|
||||
extern const u8 gText_0827D71D[];
|
||||
|
||||
extern const u8 gText_0827D743[];
|
||||
extern const u8 gText_0827D764[];
|
||||
extern const u8 gText_0827D785[];
|
||||
extern const u8 gText_0827D7A5[];
|
||||
extern const u8 gText_0827D7C8[];
|
||||
extern const u8 gText_0827D7E8[];
|
||||
extern const u8 gText_0827D831[];
|
||||
extern const u8 gText_0827D855[];
|
||||
extern const u8 gText_0827D830[];
|
||||
extern const u8 gText_0827D872[];
|
||||
extern const u8 gText_0827D88F[];
|
||||
extern const u8 gText_0827D8B5[];
|
||||
extern const u8 gText_0827D8E4[];
|
||||
extern const u8 gText_0827D8FE[];
|
||||
extern const u8 gText_0827D926[];
|
||||
extern const u8 gText_0827D947[];
|
||||
extern const u8 gText_0827D961[];
|
||||
extern const u8 gText_0827D986[];
|
||||
extern const u8 gText_0827D9B1[];
|
||||
extern const u8 gText_0827D9D9[];
|
||||
extern const u8 gText_0827DA03[];
|
||||
extern const u8 gText_0827DA31[];
|
||||
extern const u8 gText_0827DA5B[];
|
||||
extern const u8 gText_0827DA85[];
|
||||
extern const u8 gText_0827DAB2[];
|
||||
extern const u8 gText_0827DADA[];
|
||||
extern const u8 gText_0827DB03[];
|
||||
extern const u8 gText_0827D830[];
|
||||
extern const u8 gText_0827D830[];
|
||||
extern const u8 gText_0827D830[];
|
||||
extern const u8 gText_0827DB1F[];
|
||||
extern const u8 gText_0827DB4E[];
|
||||
|
||||
extern const u8 gText_827DB75[];
|
||||
extern const u8 gText_827DBB0[];
|
||||
extern const u8 gText_827DBE0[];
|
||||
extern const u8 gText_827DC0F[];
|
||||
extern const u8 gText_827DC45[];
|
||||
extern const u8 gText_827DC7C[];
|
||||
extern const u8 gText_827DCB4[];
|
||||
extern const u8 gText_827DCE7[];
|
||||
extern const u8 gText_827DD12[];
|
||||
extern const u8 gText_827DD3D[];
|
||||
extern const u8 gText_827DD6F[];
|
||||
extern const u8 gText_827DD8E[];
|
||||
extern const u8 gText_827DDC7[];
|
||||
extern const u8 gText_827DDF2[];
|
||||
extern const u8 gText_827DE14[];
|
||||
extern const u8 gText_827DE44[];
|
||||
extern const u8 gText_827DE73[];
|
||||
extern const u8 gText_827DEA5[];
|
||||
extern const u8 gText_827DED9[];
|
||||
extern const u8 gText_827DF02[];
|
||||
extern const u8 gText_827DF3A[];
|
||||
extern const u8 gText_827DF63[];
|
||||
extern const u8 gText_827DF8C[];
|
||||
extern const u8 gText_827DFB8[];
|
||||
extern const u8 gText_827DFE2[];
|
||||
extern const u8 gText_827E00C[];
|
||||
extern const u8 gText_827E02F[];
|
||||
extern const u8 gText_827E05F[];
|
||||
extern const u8 gText_827E08B[];
|
||||
extern const u8 gText_827E0B5[];
|
||||
extern const u8 gText_827E0DD[];
|
||||
extern const u8 gText_827E107[];
|
||||
extern const u8 gText_827E143[];
|
||||
extern const u8 gText_827E17F[];
|
||||
extern const u8 gText_827E1BB[];
|
||||
extern const u8 gText_827E1F3[];
|
||||
extern const u8 gText_827E220[];
|
||||
extern const u8 gText_827E254[];
|
||||
extern const u8 gText_827E289[];
|
||||
extern const u8 gText_827E2C5[];
|
||||
extern const u8 gText_0827E2FE[];
|
||||
extern const u8 gText_0827E32E[];
|
||||
extern const u8 gText_0827E35B[];
|
||||
extern const u8 gText_0827E38D[];
|
||||
extern const u8 gText_0827E3C1[];
|
||||
extern const u8 gText_0827E3EB[];
|
||||
extern const u8 gText_0827E416[];
|
||||
extern const u8 gText_0827E448[];
|
||||
extern const u8 gText_0827E473[];
|
||||
extern const u8 gText_0827E4A6[];
|
||||
extern const u8 gText_0827E4D5[];
|
||||
extern const u8 gText_0827E504[];
|
||||
extern const u8 gText_0827E531[];
|
||||
extern const u8 gText_0827E55A[];
|
||||
extern const u8 gText_0827E5B2[];
|
||||
extern const u8 gText_0827E5D0[];
|
||||
extern const u8 gText_0827E606[];
|
||||
extern const u8 gText_0827E638[];
|
||||
extern const u8 gText_0827E658[];
|
||||
extern const u8 gText_0827E68B[];
|
||||
extern const u8 gText_0827E6C4[];
|
||||
extern const u8 gText_0827E7BA[];
|
||||
|
||||
extern const u8 gText_0827E85F[];
|
||||
extern const u8 gText_0827E868[];
|
||||
extern const u8 gText_0827E86F[];
|
||||
extern const u8 gText_0827E878[];
|
||||
extern const u8 gText_0827E882[];
|
||||
|
||||
extern const u8 gText_0827E894[];
|
||||
extern const u8 gText_0827E89E[];
|
||||
extern const u8 gText_0827E8AA[];
|
||||
extern const u8 gText_0827E8B4[];
|
||||
extern const u8 gText_0827E8BF[];
|
||||
extern const u8 gText_0827E8CA[];
|
||||
|
||||
const u8 *const gContestEffectDescriptionPointers[] =
|
||||
{
|
||||
gContestEffect00hDescription,
|
||||
gContestEffect01hDescription,
|
||||
gContestEffect02hDescription,
|
||||
gContestEffect03hDescription,
|
||||
gContestEffect04hDescription,
|
||||
gContestEffect05hDescription,
|
||||
gContestEffect06hDescription,
|
||||
gContestEffect07hDescription,
|
||||
gContestEffect08hDescription,
|
||||
gContestEffect09hDescription,
|
||||
gContestEffect0AhDescription,
|
||||
gContestEffect0BhDescription,
|
||||
gContestEffect0ChDescription,
|
||||
gContestEffect0DhDescription,
|
||||
gContestEffect0EhDescription,
|
||||
gContestEffect0FhDescription,
|
||||
gContestEffect10hDescription,
|
||||
gContestEffect11hDescription,
|
||||
gContestEffect12hDescription,
|
||||
gContestEffect13hDescription,
|
||||
gContestEffect14hDescription,
|
||||
gContestEffect15hDescription,
|
||||
gContestEffect16hDescription,
|
||||
gContestEffect17hDescription,
|
||||
gContestEffect18hDescription,
|
||||
gContestEffect19hDescription,
|
||||
gContestEffect1AhDescription,
|
||||
gContestEffect1BhDescription,
|
||||
gContestEffect1ChDescription,
|
||||
gContestEffect1DhDescription,
|
||||
gContestEffect1EhDescription,
|
||||
gContestEffect1FhDescription,
|
||||
gContestEffect20hDescription,
|
||||
gContestEffect21hDescription,
|
||||
gContestEffect22hDescription,
|
||||
gContestEffect23hDescription,
|
||||
gContestEffect24hDescription,
|
||||
gContestEffect25hDescription,
|
||||
gContestEffect26hDescription,
|
||||
gContestEffect27hDescription,
|
||||
gContestEffect28hDescription,
|
||||
gContestEffect29hDescription,
|
||||
gContestEffect2AhDescription,
|
||||
gContestEffect2BhDescription,
|
||||
gContestEffect2ChDescription,
|
||||
gContestEffect2DhDescription,
|
||||
gContestEffect2EhDescription,
|
||||
gContestEffect2FhDescription
|
||||
};
|
||||
|
||||
// Unreferenced array of pointers to move names.
|
||||
// All of the moves except Conversion are combo starters, so this may have
|
||||
// been an early list of combo starters.
|
||||
const u8 *const gUnknown_8587D10[] =
|
||||
{
|
||||
gUnusedContestMoveName0,
|
||||
gUnusedContestMoveName0,
|
||||
gUnusedContestMoveName1,
|
||||
gUnusedContestMoveName2,
|
||||
gUnusedContestMoveName3,
|
||||
gUnusedContestMoveName4,
|
||||
gUnusedContestMoveName5,
|
||||
gUnusedContestMoveName6,
|
||||
gUnusedContestMoveName7,
|
||||
gUnusedContestMoveName8,
|
||||
gUnusedContestMoveName9,
|
||||
gUnusedContestMoveName10,
|
||||
gUnusedContestMoveName11,
|
||||
gUnusedContestMoveName12
|
||||
};
|
||||
|
||||
const u8 *const gContestMoveTypeTextPointers[] =
|
||||
{
|
||||
gContestMoveTypeCoolText,
|
||||
gContestMoveTypeBeautyText,
|
||||
gContestMoveTypeCuteText,
|
||||
gContestMoveTypeSmartText,
|
||||
gContestMoveTypeToughText
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08587D5C[] =
|
||||
{
|
||||
gText_0827D5C1,
|
||||
gText_0827D5DC,
|
||||
gText_0827D600,
|
||||
gText_0827D612,
|
||||
gText_0827D612,
|
||||
gText_0827D62D,
|
||||
gText_0827D654,
|
||||
gText_0827D67E,
|
||||
gText_0827D69C,
|
||||
gText_0827D6BA,
|
||||
gText_0827D6E5,
|
||||
gText_0827D706,
|
||||
gText_0827D71D
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08587D90[] =
|
||||
{
|
||||
gText_0827D743,
|
||||
gText_0827D764,
|
||||
gText_0827D785,
|
||||
gText_0827D7A5,
|
||||
gText_0827D7C8,
|
||||
gText_0827D7E8,
|
||||
gText_0827D831,
|
||||
gText_0827D855,
|
||||
gText_0827D830,
|
||||
gText_0827D872,
|
||||
gText_0827D88F,
|
||||
gText_0827D8B5,
|
||||
gText_0827D8E4,
|
||||
gText_0827D8FE,
|
||||
gText_0827D926,
|
||||
gText_0827D947,
|
||||
gText_0827D961,
|
||||
gText_0827D986,
|
||||
gText_0827D9B1,
|
||||
gText_0827D9D9,
|
||||
gText_0827DA03,
|
||||
gText_0827DA31,
|
||||
gText_0827DA5B,
|
||||
gText_0827DA85,
|
||||
gText_0827DAB2,
|
||||
gText_0827DADA,
|
||||
gText_0827DB03,
|
||||
gText_0827D830,
|
||||
gText_0827D830,
|
||||
gText_0827D830,
|
||||
gText_0827DB1F,
|
||||
gText_0827DB4E
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08587E10[] =
|
||||
{
|
||||
gText_827DB75,
|
||||
gText_827DBB0,
|
||||
gText_827DBE0,
|
||||
gText_827DC0F,
|
||||
gText_827DC45,
|
||||
gText_827DC7C,
|
||||
gText_827DCB4,
|
||||
gText_827DCE7,
|
||||
gText_827DD12,
|
||||
gText_827DD3D,
|
||||
gText_827DD6F,
|
||||
gText_827DD8E,
|
||||
gText_827DDC7,
|
||||
gText_827DDF2,
|
||||
gText_827DE14,
|
||||
gText_827DE44,
|
||||
gText_827DE73,
|
||||
gText_827DEA5,
|
||||
gText_827DED9,
|
||||
gText_827DF02,
|
||||
gText_827DF3A,
|
||||
gText_827DF63,
|
||||
gText_827DF8C,
|
||||
gText_827DFB8,
|
||||
gText_827DFE2,
|
||||
gText_827E00C,
|
||||
gText_827E02F,
|
||||
gText_827E05F,
|
||||
gText_827E08B,
|
||||
gText_827E0B5,
|
||||
gText_827E0DD,
|
||||
gText_827E107,
|
||||
gText_827E143,
|
||||
gText_827E17F,
|
||||
gText_827E1BB,
|
||||
gText_827E1F3,
|
||||
gText_827E220,
|
||||
gText_827E254,
|
||||
gText_827E289,
|
||||
gText_827E2C5,
|
||||
gText_0827E2FE,
|
||||
gText_0827E32E,
|
||||
gText_0827E35B,
|
||||
gText_0827E38D,
|
||||
gText_0827E3C1,
|
||||
gText_0827E3EB,
|
||||
gText_0827E416,
|
||||
gText_0827E448,
|
||||
gText_0827E473,
|
||||
gText_0827E4A6,
|
||||
gText_0827E4D5,
|
||||
gText_0827E504,
|
||||
gText_0827E531,
|
||||
gText_0827E55A,
|
||||
gText_0827E5B2,
|
||||
gText_0827E5D0,
|
||||
gText_0827E606,
|
||||
gText_0827E638,
|
||||
gText_0827E658,
|
||||
gText_0827E68B,
|
||||
gText_0827E6C4,
|
||||
gText_0827E7BA
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08587F08[] =
|
||||
{
|
||||
gText_0827E85F,
|
||||
gText_0827E868,
|
||||
gText_0827E86F,
|
||||
gText_0827E878,
|
||||
gText_0827E882
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_08587F1C[] =
|
||||
{
|
||||
gText_0827E894,
|
||||
gText_0827E89E,
|
||||
gText_0827E8AA,
|
||||
gText_0827E8B4,
|
||||
gText_0827E8BF,
|
||||
gText_0827E8CA
|
||||
};
|
@ -3721,7 +3721,7 @@ static void sub_811D0BC(void)
|
||||
{
|
||||
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17);
|
||||
LoadUserWindowBorderGfx(1, 1, 0xE0);
|
||||
sub_8098858(1, 1, 14);
|
||||
DrawTextBorderOuter(1, 1, 14);
|
||||
sub_811D104(0);
|
||||
PutWindowTilemap(1);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "ereader_helpers.h"
|
||||
#include "link.h"
|
||||
#include "main.h"
|
||||
#include "union_room.h"
|
||||
#include "mystery_gift.h"
|
||||
#include "save.h"
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
@ -209,7 +209,7 @@ static u32 sub_81D4EE4(u8 *arg0, u16 *arg1)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_81D5014(void)
|
||||
void task_add_00_ereader(void)
|
||||
{
|
||||
int value;
|
||||
struct Unk81D5014 *data;
|
||||
@ -251,7 +251,7 @@ static void sub_81D5084(u8 taskId)
|
||||
switch (data->unk8)
|
||||
{
|
||||
case 0:
|
||||
if (mevent_0814257C(&data->unk9, gUnknown_085EDFD6))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EDFD6))
|
||||
data->unk8 = 1;
|
||||
break;
|
||||
case 1:
|
||||
@ -275,9 +275,9 @@ static void sub_81D5084(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (mevent_0814257C(&data->unk9, gUnknown_085EDFF5))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EDFF5))
|
||||
{
|
||||
sub_8018884(gUnknown_085EE014);
|
||||
AddTextPrinterToWindow1(gUnknown_085EE014);
|
||||
sub_81D505C(&data->unk0);
|
||||
data->unk8 = 5;
|
||||
}
|
||||
@ -324,11 +324,11 @@ static void sub_81D5084(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (mevent_0814257C(&data->unk9, gUnknown_085EE05C))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE05C))
|
||||
data->unk8 = 4;
|
||||
break;
|
||||
case 8:
|
||||
sub_8018884(gUnknown_085EE097);
|
||||
AddTextPrinterToWindow1(gUnknown_085EE097);
|
||||
// XXX: This (u32*) cast is discarding the const qualifier from gUnknown_089A3470
|
||||
sub_81D4D50(&gUnknown_03006370, gMultiBootProgram_BerryGlitchFix_Start - gUnknown_089A3470, (u32*)gUnknown_089A3470);
|
||||
data->unk8 = 9;
|
||||
@ -347,7 +347,7 @@ static void sub_81D5084(u8 taskId)
|
||||
else if (data->unkE == 1)
|
||||
{
|
||||
sub_81D505C(&data->unk0);
|
||||
sub_8018884(gUnknown_085EE120);
|
||||
AddTextPrinterToWindow1(gUnknown_085EE120);
|
||||
data->unk8 = 11;
|
||||
}
|
||||
else
|
||||
@ -361,7 +361,7 @@ static void sub_81D5084(u8 taskId)
|
||||
break;
|
||||
case 12:
|
||||
sub_81D4E30();
|
||||
sub_8018884(gUnknown_085EE0DC);
|
||||
AddTextPrinterToWindow1(gUnknown_085EE0DC);
|
||||
data->unk8 = 13;
|
||||
break;
|
||||
case 13:
|
||||
@ -370,7 +370,7 @@ static void sub_81D5084(u8 taskId)
|
||||
case 0:
|
||||
break;
|
||||
case 2:
|
||||
sub_8018884(gUnknown_085EE097);
|
||||
AddTextPrinterToWindow1(gUnknown_085EE097);
|
||||
data->unk8 = 14;
|
||||
break;
|
||||
case 1:
|
||||
@ -418,7 +418,7 @@ static void sub_81D5084(u8 taskId)
|
||||
case 17:
|
||||
if (sub_81D3AB0((struct Unk81D38FC *)&gDecompressionBuffer))
|
||||
{
|
||||
sub_8018884(gUnknown_085EE0FA);
|
||||
AddTextPrinterToWindow1(gUnknown_085EE0FA);
|
||||
sub_81D505C(&data->unk0);
|
||||
data->unk8 = 18;
|
||||
}
|
||||
@ -430,7 +430,7 @@ static void sub_81D5084(u8 taskId)
|
||||
case 18:
|
||||
if (sub_81D5064(&data->unk0, 120))
|
||||
{
|
||||
sub_8018884(gUnknown_085EE107);
|
||||
AddTextPrinterToWindow1(gUnknown_085EE107);
|
||||
PlayFanfare(MUS_FANFA4);
|
||||
data->unk8 = 19;
|
||||
}
|
||||
@ -440,25 +440,25 @@ static void sub_81D5084(u8 taskId)
|
||||
data->unk8 = 26;
|
||||
break;
|
||||
case 23:
|
||||
if (mevent_0814257C(&data->unk9,gUnknown_085EE06B))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9,gUnknown_085EE06B))
|
||||
data->unk8 = 26;
|
||||
break;
|
||||
case 20:
|
||||
if (mevent_0814257C(&data->unk9, gUnknown_085EE0A3))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE0A3))
|
||||
data->unk8 = 0;
|
||||
break;
|
||||
case 21:
|
||||
if (mevent_0814257C(&data->unk9, gUnknown_085EE0BF))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE0BF))
|
||||
data->unk8 = 0;
|
||||
break;
|
||||
case 22:
|
||||
if (mevent_0814257C(&data->unk9, gUnknown_085EE12D))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE12D))
|
||||
data->unk8 = 0;
|
||||
break;
|
||||
case 26:
|
||||
Free(data->unk10);
|
||||
DestroyTask(taskId);
|
||||
SetMainCallback2(sub_80186A4);
|
||||
SetMainCallback2(MainCB_FreeAllBuffersAndReturnToInitTitleScreen);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1228,7 +1228,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
if (gWirelessCommType)
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
|
||||
Free(GetBgTilemapBuffer(3));
|
||||
Free(GetBgTilemapBuffer(1));
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "constants/songs.h"
|
||||
#include "constants/vars.h"
|
||||
|
||||
extern struct MapPosition gPlayerFacingPosition;
|
||||
EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0};
|
||||
|
||||
static void sub_80F9C90(u8);
|
||||
static void sub_80F9DFC(u8);
|
||||
|
@ -27,9 +27,6 @@ static void sub_813561C(u8 taskId);
|
||||
static void sub_81356C4(void);
|
||||
static void sub_8135714(void);
|
||||
|
||||
// extern RAM loc
|
||||
extern struct MapPosition gPlayerFacingPosition;
|
||||
|
||||
// text
|
||||
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId)
|
||||
{
|
||||
|
@ -62,7 +62,7 @@ int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2)
|
||||
return convert_pixel_width_to_tile_width(var);
|
||||
}
|
||||
|
||||
int sub_81DB41C(const struct ListMenuTemplate *listMenu)
|
||||
int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu)
|
||||
{
|
||||
int i, maxWidth, finalWidth;
|
||||
const struct ListMenuItem *items = listMenu->items;
|
||||
|
@ -2243,7 +2243,7 @@ void CreateWirelessStatusIndicatorSprite(u8 x, u8 y)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800E084(void)
|
||||
void DestroyWirelessStatusIndicatorSprite(void)
|
||||
{
|
||||
if (gSprites[gWirelessStatusIndicatorSpriteId].data[7] == 0x1234)
|
||||
{
|
||||
@ -2356,7 +2356,7 @@ void sub_800E174(void)
|
||||
CpuCopy16(gMain.oamBuffer + 125, (struct OamData *)OAM + 125, sizeof(struct OamData));
|
||||
if (sub_8011A74() == 1)
|
||||
{
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4209,7 +4209,7 @@ void sub_8010DB4(void)
|
||||
{
|
||||
if (gUnknown_03005000.unk_ee == 1 && gUnknown_03004140.unk_02 == 0)
|
||||
{
|
||||
if (gMain.callback2 == sub_8018438 || gUnknown_03004140.unk_3c->unk_04)
|
||||
if (gMain.callback2 == c2_mystery_gift_e_reader_run || gUnknown_03004140.unk_3c->unk_04)
|
||||
gWirelessCommType = 2;
|
||||
SetMainCallback2(CB2_LinkError);
|
||||
gMain.savedCallback = CB2_LinkError;
|
||||
|
@ -324,7 +324,7 @@ s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str
|
||||
case 2:
|
||||
LoadUserWindowBorderGfx(sMysteryGiftLinkMenu.windowId, tileNum, palNum);
|
||||
case 1:
|
||||
sub_8098858(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16);
|
||||
DrawTextBorderOuter(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16);
|
||||
break;
|
||||
}
|
||||
gMultiuseListMenuTemplate = *listMenuTemplate;
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "text_window.h"
|
||||
#include "title_screen.h"
|
||||
#include "window.h"
|
||||
#include "mystery_gift.h"
|
||||
|
||||
/*
|
||||
* Main menu state machine
|
||||
@ -1083,7 +1084,7 @@ static void Task_HandleMainMenuAPressed(u8 taskId)
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
case ACTION_EREADER:
|
||||
SetMainCallback2(sub_801867C);
|
||||
SetMainCallback2(c2_ereader);
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
case ACTION_INVALID:
|
||||
|
@ -914,7 +914,7 @@ struct Story
|
||||
};
|
||||
|
||||
static const struct Story sStorytellerStories[] = {
|
||||
{GAME_STAT_50, 1, MauvilleCity_PokemonCenter_1F_Text_28E930, MauvilleCity_PokemonCenter_1F_Text_28E947, MauvilleCity_PokemonCenter_1F_Text_28E956},
|
||||
{GAME_STAT_NUM_UNION_ROOM_BATTLES, 1, MauvilleCity_PokemonCenter_1F_Text_28E930, MauvilleCity_PokemonCenter_1F_Text_28E947, MauvilleCity_PokemonCenter_1F_Text_28E956},
|
||||
{GAME_STAT_STARTED_TRENDS, 1, MauvilleCity_PokemonCenter_1F_Text_28E9D7, MauvilleCity_PokemonCenter_1F_Text_28E9EF, MauvilleCity_PokemonCenter_1F_Text_28E9FE},
|
||||
{GAME_STAT_PLANTED_BERRIES, 1, MauvilleCity_PokemonCenter_1F_Text_28EA7D, MauvilleCity_PokemonCenter_1F_Text_28EA98, MauvilleCity_PokemonCenter_1F_Text_28EAA8},
|
||||
{GAME_STAT_TRADED_BIKES, 1, MauvilleCity_PokemonCenter_1F_Text_28EB19, MauvilleCity_PokemonCenter_1F_Text_28EB31, MauvilleCity_PokemonCenter_1F_Text_28EB3E},
|
||||
|
@ -432,7 +432,7 @@ void sub_819789C(void)
|
||||
LoadPalette(gUnknown_0860F074, STD_WINDOW_PALETTE_NUM * 0x10, 0x14);
|
||||
}
|
||||
|
||||
void sub_81978B0(u16 offset)
|
||||
void Menu_LoadStdPalAt(u16 offset)
|
||||
{
|
||||
LoadPalette(gUnknown_0860F074, offset, 0x14);
|
||||
}
|
||||
|
@ -14,7 +14,7 @@
|
||||
static EWRAM_DATA bool32 gUnknown_02022C70 = FALSE;
|
||||
|
||||
static void sub_801B180(void);
|
||||
static void sub_801B14C(void);
|
||||
static void s_DestroyWonderNews(void);
|
||||
static bool32 sub_801B114(const struct MEventBuffer_3120_Sub *data);
|
||||
static bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub *data);
|
||||
static void sub_801B330(void);
|
||||
@ -29,7 +29,7 @@ void sub_801AFD8(void)
|
||||
sub_811F8BC();
|
||||
}
|
||||
|
||||
struct MEventBuffer_3120_Sub *sub_801B00C(void)
|
||||
struct MEventBuffer_3120_Sub *sav1_get_mevent_buffer_0(void)
|
||||
{
|
||||
return &gSaveBlock1Ptr->unk_322C.buffer_000.data;
|
||||
}
|
||||
@ -54,9 +54,9 @@ u16 *sub_801B058(void)
|
||||
return gSaveBlock1Ptr->unk_322C.unk_338;
|
||||
}
|
||||
|
||||
void sub_801B06C(void)
|
||||
void DestroyWonderNews(void)
|
||||
{
|
||||
sub_801B14C();
|
||||
s_DestroyWonderNews();
|
||||
}
|
||||
|
||||
bool32 sub_801B078(const struct MEventBuffer_3120_Sub *src)
|
||||
@ -64,13 +64,13 @@ bool32 sub_801B078(const struct MEventBuffer_3120_Sub *src)
|
||||
if (!sub_801B114(src))
|
||||
return FALSE;
|
||||
|
||||
sub_801B14C();
|
||||
s_DestroyWonderNews();
|
||||
gSaveBlock1Ptr->unk_322C.buffer_000.data = *src;
|
||||
gSaveBlock1Ptr->unk_322C.buffer_000.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_801B0CC(void)
|
||||
bool32 ValidateReceivedWonderNews(void)
|
||||
{
|
||||
if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)) != gSaveBlock1Ptr->unk_322C.buffer_000.crc)
|
||||
return FALSE;
|
||||
@ -88,7 +88,7 @@ static bool32 sub_801B114(const struct MEventBuffer_3120_Sub *data)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_801B128(void)
|
||||
bool32 WonderNews_Test_Unk_02(void)
|
||||
{
|
||||
const struct MEventBuffer_3120_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_000.data;
|
||||
if (data->unk_02 == 0)
|
||||
@ -97,9 +97,9 @@ bool32 sub_801B128(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void sub_801B14C(void)
|
||||
static void s_DestroyWonderNews(void)
|
||||
{
|
||||
CpuFill32(0, sub_801B00C(), sizeof(gSaveBlock1Ptr->unk_322C.buffer_000.data));
|
||||
CpuFill32(0, sav1_get_mevent_buffer_0(), sizeof(gSaveBlock1Ptr->unk_322C.buffer_000.data));
|
||||
gSaveBlock1Ptr->unk_322C.buffer_000.crc = 0;
|
||||
}
|
||||
|
||||
@ -113,7 +113,7 @@ bool32 sub_801B1A4(const u8 *src)
|
||||
{
|
||||
const u8 *r5 = (const u8 *)&gSaveBlock1Ptr->unk_322C.buffer_000.data;
|
||||
u32 i;
|
||||
if (!sub_801B0CC())
|
||||
if (!ValidateReceivedWonderNews())
|
||||
return FALSE;
|
||||
|
||||
for (i = 0; i < sizeof(struct MEventBuffer_3120_Sub); i++)
|
||||
@ -125,7 +125,7 @@ bool32 sub_801B1A4(const u8 *src)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_801B1E8(void)
|
||||
void DestroyWonderCard(void)
|
||||
{
|
||||
sub_801B330();
|
||||
sub_801B368();
|
||||
@ -143,7 +143,7 @@ bool32 sub_801B21C(const struct MEventBuffer_32E0_Sub *data)
|
||||
if (!sub_801B2CC(data))
|
||||
return FALSE;
|
||||
|
||||
sub_801B1E8();
|
||||
DestroyWonderCard();
|
||||
memcpy(&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, data, sizeof(struct MEventBuffer_32E0_Sub));
|
||||
gSaveBlock1Ptr->unk_322C.buffer_1c0.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub));
|
||||
r2 = &gSaveBlock1Ptr->unk_322C.buffer_310.data;
|
||||
@ -152,7 +152,7 @@ bool32 sub_801B21C(const struct MEventBuffer_32E0_Sub *data)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_801B27C(void)
|
||||
bool32 ValidateReceivedWonderCard(void)
|
||||
{
|
||||
if (gSaveBlock1Ptr->unk_322C.buffer_1c0.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)))
|
||||
return FALSE;
|
||||
@ -180,7 +180,7 @@ static bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub *data)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_801B308(void)
|
||||
bool32 WonderCard_Test_Unk_08_6(void)
|
||||
{
|
||||
const struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data;
|
||||
if (data->unk_08_6 == 0)
|
||||
@ -201,9 +201,9 @@ static void sub_801B368(void)
|
||||
gSaveBlock1Ptr->unk_322C.buffer_310.crc = 0;
|
||||
}
|
||||
|
||||
u16 sub_801B39C(void)
|
||||
u16 GetWonderCardFlagID(void)
|
||||
{
|
||||
if (sub_801B27C())
|
||||
if (ValidateReceivedWonderCard())
|
||||
return gSaveBlock1Ptr->unk_322C.buffer_1c0.data.unk_00;
|
||||
|
||||
return 0;
|
||||
@ -215,7 +215,7 @@ void sub_801B3C0(struct MEventBuffer_32E0_Sub *buffer)
|
||||
buffer->unk_08_6 = 0;
|
||||
}
|
||||
|
||||
static bool32 sub_801B3D8(u16 a0)
|
||||
static bool32 IsWonderCardFlagIDInValidRange(u16 a0)
|
||||
{
|
||||
if (a0 >= 1000 && a0 < 1020)
|
||||
return TRUE;
|
||||
@ -247,10 +247,10 @@ static const u16 sMysteryGiftFlags[] =
|
||||
FLAG_UNUSED_MYSTERY_GIFT_0x14D,
|
||||
};
|
||||
|
||||
bool32 sub_801B3F8(void)
|
||||
bool32 CheckReceivedGiftFromWonderCard(void)
|
||||
{
|
||||
u16 value = sub_801B39C();
|
||||
if (!sub_801B3D8(value))
|
||||
u16 value = GetWonderCardFlagID();
|
||||
if (!IsWonderCardFlagIDInValidRange(value))
|
||||
return FALSE;
|
||||
|
||||
if (FlagGet(sMysteryGiftFlags[value - 1000]) == TRUE)
|
||||
@ -300,7 +300,7 @@ static bool32 sub_801B4A4(const u16 *data)
|
||||
static int sub_801B4CC(void)
|
||||
{
|
||||
struct MEventBuffer_32E0_Sub *data;
|
||||
if (!sub_801B27C())
|
||||
if (!ValidateReceivedWonderCard())
|
||||
return 0;
|
||||
|
||||
data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data;
|
||||
@ -353,7 +353,7 @@ void sub_801B580(struct MEventStruct_Unk1442CC *data, bool32 a1)
|
||||
data->unk_10 = 0x0200;
|
||||
}
|
||||
|
||||
if (sub_801B27C())
|
||||
if (ValidateReceivedWonderCard())
|
||||
{
|
||||
data->unk_14 = sav1_get_mevent_buffer_1()->unk_00;
|
||||
data->unk_20 = *sav1_get_mevent_buffer_2();
|
||||
@ -554,7 +554,7 @@ bool32 sub_801B94C(u16 a0)
|
||||
if (a0 == 0)
|
||||
return FALSE;
|
||||
|
||||
if (!sub_801B27C())
|
||||
if (!ValidateReceivedWonderCard())
|
||||
return FALSE;
|
||||
|
||||
if (gSaveBlock1Ptr->unk_322C.buffer_1c0.data.unk_00 != a0)
|
||||
|
@ -53,7 +53,7 @@ struct UnkStruct_203F3C8
|
||||
/*045C*/ u8 buffer_045C[0x1000];
|
||||
};
|
||||
|
||||
EWRAM_DATA struct UnkStruct_203F3C8 * gUnknown_02022C74 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_203F3C8 * sWonderCardData = NULL;
|
||||
|
||||
void sub_801BEF8(void);
|
||||
void sub_801C178(u8 whichWindow);
|
||||
@ -150,40 +150,40 @@ const struct UnkStruct_8467FB8 gUnknown_082F1D60[8] = {
|
||||
{1, 0, 0, 7, gWonderCardBgGfx8, gWonderCardBgTilemap8, gWonderCardBgPal8}
|
||||
};
|
||||
|
||||
bool32 sub_801BAAC(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6)
|
||||
bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6)
|
||||
{
|
||||
if (r5 == NULL || r6 == NULL)
|
||||
return FALSE;
|
||||
gUnknown_02022C74 = AllocZeroed(sizeof(struct UnkStruct_203F3C8));
|
||||
if (gUnknown_02022C74 == NULL)
|
||||
sWonderCardData = AllocZeroed(sizeof(struct UnkStruct_203F3C8));
|
||||
if (sWonderCardData == NULL)
|
||||
return FALSE;
|
||||
gUnknown_02022C74->unk_0000 = *r5;
|
||||
gUnknown_02022C74->unk_014C = *r6;
|
||||
if (gUnknown_02022C74->unk_0000.unk_08_2 >= ARRAY_COUNT(gUnknown_082F1D60))
|
||||
gUnknown_02022C74->unk_0000.unk_08_2 = 0;
|
||||
if (gUnknown_02022C74->unk_0000.unk_08_0 >= ARRAY_COUNT(gUnknown_082F0E18))
|
||||
gUnknown_02022C74->unk_0000.unk_08_0 = 0;
|
||||
if (gUnknown_02022C74->unk_0000.unk_09 > ARRAY_COUNT(gUnknown_02022C74->unk_017D))
|
||||
gUnknown_02022C74->unk_0000.unk_09 = 0;
|
||||
gUnknown_02022C74->unk_0170 = &gUnknown_082F1D60[gUnknown_02022C74->unk_0000.unk_08_2];
|
||||
sWonderCardData->unk_0000 = *r5;
|
||||
sWonderCardData->unk_014C = *r6;
|
||||
if (sWonderCardData->unk_0000.unk_08_2 >= ARRAY_COUNT(gUnknown_082F1D60))
|
||||
sWonderCardData->unk_0000.unk_08_2 = 0;
|
||||
if (sWonderCardData->unk_0000.unk_08_0 >= ARRAY_COUNT(gUnknown_082F0E18))
|
||||
sWonderCardData->unk_0000.unk_08_0 = 0;
|
||||
if (sWonderCardData->unk_0000.unk_09 > ARRAY_COUNT(sWonderCardData->unk_017D))
|
||||
sWonderCardData->unk_0000.unk_09 = 0;
|
||||
sWonderCardData->unk_0170 = &gUnknown_082F1D60[sWonderCardData->unk_0000.unk_08_2];
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_801BB48(void)
|
||||
void DestroyWonderCardResources(void)
|
||||
{
|
||||
if (gUnknown_02022C74 != NULL)
|
||||
if (sWonderCardData != NULL)
|
||||
{
|
||||
*gUnknown_02022C74 = (struct UnkStruct_203F3C8){};
|
||||
Free(gUnknown_02022C74);
|
||||
gUnknown_02022C74 = NULL;
|
||||
*sWonderCardData = (struct UnkStruct_203F3C8){};
|
||||
Free(sWonderCardData);
|
||||
sWonderCardData = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_801BB74(void)
|
||||
s32 FadeToWonderCardMenu(void)
|
||||
{
|
||||
if (gUnknown_02022C74 == NULL)
|
||||
if (sWonderCardData == NULL)
|
||||
return -1;
|
||||
switch(gUnknown_02022C74->unk_0174)
|
||||
switch(sWonderCardData->unk_0174)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
@ -199,19 +199,19 @@ s32 sub_801BB74(void)
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
decompress_and_copy_tile_data_to_vram(2, gUnknown_02022C74->unk_0170->tiles, 0, 0x008, 0);
|
||||
gUnknown_02022C74->unk_0176[0] = AddWindow(&gUnknown_082F0E1C[0]);
|
||||
gUnknown_02022C74->unk_0176[1] = AddWindow(&gUnknown_082F0E1C[1]);
|
||||
gUnknown_02022C74->unk_0176[2] = AddWindow(&gUnknown_082F0E1C[2]);
|
||||
decompress_and_copy_tile_data_to_vram(2, sWonderCardData->unk_0170->tiles, 0, 0x008, 0);
|
||||
sWonderCardData->unk_0176[0] = AddWindow(&gUnknown_082F0E1C[0]);
|
||||
sWonderCardData->unk_0176[1] = AddWindow(&gUnknown_082F0E1C[1]);
|
||||
sWonderCardData->unk_0176[2] = AddWindow(&gUnknown_082F0E1C[2]);
|
||||
break;
|
||||
case 3:
|
||||
if (free_temp_tile_data_buffers_if_possible())
|
||||
return 0;
|
||||
LoadPalette(stdpal_get(1), 0x20, 0x20);
|
||||
gPaletteFade.bufferTransferDisabled = TRUE;
|
||||
LoadPalette(gUnknown_02022C74->unk_0170->pal, 0x10, 0x20);
|
||||
LZ77UnCompWram(gUnknown_02022C74->unk_0170->map, gUnknown_02022C74->buffer_045C);
|
||||
CopyRectToBgTilemapBufferRect(2, gUnknown_02022C74->buffer_045C, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0);
|
||||
LoadPalette(sWonderCardData->unk_0170->pal, 0x10, 0x20);
|
||||
LZ77UnCompWram(sWonderCardData->unk_0170->map, sWonderCardData->buffer_045C);
|
||||
CopyRectToBgTilemapBufferRect(2, sWonderCardData->buffer_045C, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0);
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
break;
|
||||
case 4:
|
||||
@ -237,18 +237,18 @@ s32 sub_801BB74(void)
|
||||
default:
|
||||
if (UpdatePaletteFade())
|
||||
return 0;
|
||||
gUnknown_02022C74->unk_0174 = 0;
|
||||
sWonderCardData->unk_0174 = 0;
|
||||
return 1;
|
||||
}
|
||||
++gUnknown_02022C74->unk_0174;
|
||||
++sWonderCardData->unk_0174;
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 sub_801BDA4(bool32 flag)
|
||||
s32 FadeOutFromWonderCard(bool32 flag)
|
||||
{
|
||||
if (gUnknown_02022C74 == NULL)
|
||||
if (sWonderCardData == NULL)
|
||||
return -1;
|
||||
switch (gUnknown_02022C74->unk_0174)
|
||||
switch (sWonderCardData->unk_0174)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
@ -268,26 +268,26 @@ s32 sub_801BDA4(bool32 flag)
|
||||
case 3:
|
||||
HideBg(1);
|
||||
HideBg(2);
|
||||
RemoveWindow(gUnknown_02022C74->unk_0176[2]);
|
||||
RemoveWindow(gUnknown_02022C74->unk_0176[1]);
|
||||
RemoveWindow(gUnknown_02022C74->unk_0176[0]);
|
||||
RemoveWindow(sWonderCardData->unk_0176[2]);
|
||||
RemoveWindow(sWonderCardData->unk_0176[1]);
|
||||
RemoveWindow(sWonderCardData->unk_0176[0]);
|
||||
break;
|
||||
case 4:
|
||||
sub_801C61C();
|
||||
FreeMonIconPalettes();
|
||||
break;
|
||||
case 5:
|
||||
sub_80186EC(gUnknown_02022C60, flag);
|
||||
PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
|
||||
break;
|
||||
default:
|
||||
if (UpdatePaletteFade())
|
||||
return 0;
|
||||
gUnknown_02022C74->unk_0174 = 0;
|
||||
sWonderCardData->unk_0174 = 0;
|
||||
return 1;
|
||||
}
|
||||
++gUnknown_02022C74->unk_0174;
|
||||
++sWonderCardData->unk_0174;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -297,59 +297,59 @@ void sub_801BEF8(void)
|
||||
u16 r6;
|
||||
u16 sp0[3] = {0, 0, 0};
|
||||
|
||||
memcpy(gUnknown_02022C74->unk_018B, gUnknown_02022C74->unk_0000.unk_0A, 40);
|
||||
gUnknown_02022C74->unk_018B[40] = EOS;
|
||||
memcpy(gUnknown_02022C74->unk_01B4, gUnknown_02022C74->unk_0000.unk_32, 40);
|
||||
gUnknown_02022C74->unk_01B4[40] = EOS;
|
||||
if (gUnknown_02022C74->unk_0000.unk_04 > 999999)
|
||||
gUnknown_02022C74->unk_0000.unk_04 = 999999;
|
||||
ConvertIntToDecimalStringN(gUnknown_02022C74->unk_01DD, gUnknown_02022C74->unk_0000.unk_04, STR_CONV_MODE_LEFT_ALIGN, 6);
|
||||
memcpy(sWonderCardData->unk_018B, sWonderCardData->unk_0000.unk_0A, 40);
|
||||
sWonderCardData->unk_018B[40] = EOS;
|
||||
memcpy(sWonderCardData->unk_01B4, sWonderCardData->unk_0000.unk_32, 40);
|
||||
sWonderCardData->unk_01B4[40] = EOS;
|
||||
if (sWonderCardData->unk_0000.unk_04 > 999999)
|
||||
sWonderCardData->unk_0000.unk_04 = 999999;
|
||||
ConvertIntToDecimalStringN(sWonderCardData->unk_01DD, sWonderCardData->unk_0000.unk_04, STR_CONV_MODE_LEFT_ALIGN, 6);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
memcpy(gUnknown_02022C74->unk_01E4[i], gUnknown_02022C74->unk_0000.unk_5A[i], 40);
|
||||
gUnknown_02022C74->unk_01E4[i][40] = EOS;
|
||||
memcpy(sWonderCardData->unk_01E4[i], sWonderCardData->unk_0000.unk_5A[i], 40);
|
||||
sWonderCardData->unk_01E4[i][40] = EOS;
|
||||
}
|
||||
memcpy(gUnknown_02022C74->unk_0288, gUnknown_02022C74->unk_0000.unk_FA, 40);
|
||||
gUnknown_02022C74->unk_0288[40] = EOS;
|
||||
switch (gUnknown_02022C74->unk_0000.unk_08_0)
|
||||
memcpy(sWonderCardData->unk_0288, sWonderCardData->unk_0000.unk_FA, 40);
|
||||
sWonderCardData->unk_0288[40] = EOS;
|
||||
switch (sWonderCardData->unk_0000.unk_08_0)
|
||||
{
|
||||
case 0:
|
||||
memcpy(gUnknown_02022C74->unk_02B1, gUnknown_02022C74->unk_0000.unk_122, 40);
|
||||
gUnknown_02022C74->unk_02B1[40] = EOS;
|
||||
memcpy(sWonderCardData->unk_02B1, sWonderCardData->unk_0000.unk_122, 40);
|
||||
sWonderCardData->unk_02B1[40] = EOS;
|
||||
break;
|
||||
case 1:
|
||||
gUnknown_02022C74->unk_02B1[00] = EOS;
|
||||
sWonderCardData->unk_02B1[00] = EOS;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_02022C74->unk_02B1[00] = EOS;
|
||||
sp0[0] = gUnknown_02022C74->unk_014C.unk_00 < 999 ? gUnknown_02022C74->unk_014C.unk_00 : 999;
|
||||
sp0[1] = gUnknown_02022C74->unk_014C.unk_02 < 999 ? gUnknown_02022C74->unk_014C.unk_02 : 999;
|
||||
sp0[2] = gUnknown_02022C74->unk_014C.unk_04 < 999 ? gUnknown_02022C74->unk_014C.unk_04 : 999;
|
||||
sWonderCardData->unk_02B1[00] = EOS;
|
||||
sp0[0] = sWonderCardData->unk_014C.unk_00 < 999 ? sWonderCardData->unk_014C.unk_00 : 999;
|
||||
sp0[1] = sWonderCardData->unk_014C.unk_02 < 999 ? sWonderCardData->unk_014C.unk_02 : 999;
|
||||
sp0[2] = sWonderCardData->unk_014C.unk_04 < 999 ? sWonderCardData->unk_014C.unk_04 : 999;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
memset(gUnknown_02022C74->unk_02DC[i].unk_42, EOS, 4);
|
||||
memset(gUnknown_02022C74->unk_02DC[i].unk_01, EOS, 41);
|
||||
memset(sWonderCardData->unk_02DC[i].unk_42, EOS, 4);
|
||||
memset(sWonderCardData->unk_02DC[i].unk_01, EOS, 41);
|
||||
}
|
||||
for (i = 0, r6 = 0; i < 40; i++)
|
||||
{
|
||||
if (gUnknown_02022C74->unk_0000.unk_122[i] != 0xF7)
|
||||
if (sWonderCardData->unk_0000.unk_122[i] != 0xF7)
|
||||
{
|
||||
gUnknown_02022C74->unk_02DC[gUnknown_02022C74->unk_0175].unk_01[r6] = gUnknown_02022C74->unk_0000.unk_122[i];
|
||||
sWonderCardData->unk_02DC[sWonderCardData->unk_0175].unk_01[r6] = sWonderCardData->unk_0000.unk_122[i];
|
||||
r6++;
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 r3 = gUnknown_02022C74->unk_0000.unk_122[i + 1];
|
||||
u8 r3 = sWonderCardData->unk_0000.unk_122[i + 1];
|
||||
if (r3 > 2)
|
||||
{
|
||||
i += 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
ConvertIntToDecimalStringN(gUnknown_02022C74->unk_02DC[gUnknown_02022C74->unk_0175].unk_42, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3);
|
||||
gUnknown_02022C74->unk_02DC[gUnknown_02022C74->unk_0175].unk_00 = gUnknown_02022C74->unk_0000.unk_122[i + 2];
|
||||
gUnknown_02022C74->unk_0175++;
|
||||
if (gUnknown_02022C74->unk_0175 > 7)
|
||||
ConvertIntToDecimalStringN(sWonderCardData->unk_02DC[sWonderCardData->unk_0175].unk_42, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3);
|
||||
sWonderCardData->unk_02DC[sWonderCardData->unk_0175].unk_00 = sWonderCardData->unk_0000.unk_122[i + 2];
|
||||
sWonderCardData->unk_0175++;
|
||||
if (sWonderCardData->unk_0175 > 7)
|
||||
break;
|
||||
r6 = 0;
|
||||
i += 2;
|
||||
@ -362,7 +362,7 @@ void sub_801BEF8(void)
|
||||
void sub_801C178(u8 whichWindow)
|
||||
{
|
||||
s8 sp0C = 0;
|
||||
s32 windowId = gUnknown_02022C74->unk_0176[whichWindow];
|
||||
s32 windowId = sWonderCardData->unk_0176[whichWindow];
|
||||
PutWindowTilemap(windowId);
|
||||
FillWindowPixelBuffer(windowId, 0);
|
||||
switch (whichWindow)
|
||||
@ -370,42 +370,42 @@ void sub_801C178(u8 whichWindow)
|
||||
case 0:
|
||||
{
|
||||
s32 x;
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, 1, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal1], 0, gUnknown_02022C74->unk_018B);
|
||||
x = 160 - GetStringWidth(3, gUnknown_02022C74->unk_01B4, GetFontAttribute(3, 2));
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, 1, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_018B);
|
||||
x = 160 - GetStringWidth(3, sWonderCardData->unk_01B4, GetFontAttribute(3, 2));
|
||||
if (x < 0)
|
||||
x = 0;
|
||||
AddTextPrinterParameterized3(windowId, 3, x, 17, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal1], 0, gUnknown_02022C74->unk_01B4);
|
||||
if (gUnknown_02022C74->unk_0000.unk_04 != 0)
|
||||
AddTextPrinterParameterized3(windowId, 3, x, 17, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_01B4);
|
||||
if (sWonderCardData->unk_0000.unk_04 != 0)
|
||||
{
|
||||
AddTextPrinterParameterized3(windowId, 1, 166, 17, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal1], 0, gUnknown_02022C74->unk_01DD);
|
||||
AddTextPrinterParameterized3(windowId, 1, 166, 17, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_01DD);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
for (; sp0C < 4; sp0C++)
|
||||
{
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, 16 * sp0C + 2, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal2], 0, gUnknown_02022C74->unk_01E4[sp0C]);
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, 16 * sp0C + 2, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal2], 0, sWonderCardData->unk_01E4[sp0C]);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, gUnknown_082F0E18[gUnknown_02022C74->unk_0000.unk_08_0], gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_0288);
|
||||
if (gUnknown_02022C74->unk_0000.unk_08_0 != 2)
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0], gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_0288);
|
||||
if (sWonderCardData->unk_0000.unk_08_0 != 2)
|
||||
{
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, 16 + gUnknown_082F0E18[gUnknown_02022C74->unk_0000.unk_08_0], gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_02B1);
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, 16 + gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0], gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02B1);
|
||||
}
|
||||
else
|
||||
{
|
||||
s32 x = 0;
|
||||
s32 y = gUnknown_082F0E18[gUnknown_02022C74->unk_0000.unk_08_0] + 16;
|
||||
s32 y = gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0] + 16;
|
||||
s32 spacing = GetFontAttribute(3, 2);
|
||||
for (; sp0C < gUnknown_02022C74->unk_0175; sp0C++)
|
||||
for (; sp0C < sWonderCardData->unk_0175; sp0C++)
|
||||
{
|
||||
AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_02DC[sp0C].unk_01);
|
||||
if (gUnknown_02022C74->unk_02DC[sp0C].unk_42[0] != EOS)
|
||||
AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02DC[sp0C].unk_01);
|
||||
if (sWonderCardData->unk_02DC[sp0C].unk_42[0] != EOS)
|
||||
{
|
||||
x += GetStringWidth(3, gUnknown_02022C74->unk_02DC[sp0C].unk_01, spacing);
|
||||
AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_02DC[sp0C].unk_42);
|
||||
x += GetStringWidth(3, gUnknown_02022C74->unk_02DC[sp0C].unk_42, spacing) + gUnknown_02022C74->unk_02DC[sp0C].unk_00;
|
||||
x += GetStringWidth(3, sWonderCardData->unk_02DC[sp0C].unk_01, spacing);
|
||||
AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02DC[sp0C].unk_42);
|
||||
x += GetStringWidth(3, sWonderCardData->unk_02DC[sp0C].unk_42, spacing) + sWonderCardData->unk_02DC[sp0C].unk_00;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -417,24 +417,24 @@ void sub_801C178(u8 whichWindow)
|
||||
void sub_801C4C0(void)
|
||||
{
|
||||
u8 r7 = 0;
|
||||
gUnknown_02022C74->unk_017C = 0xFF;
|
||||
if (gUnknown_02022C74->unk_014C.unk_06 != SPECIES_NONE)
|
||||
sWonderCardData->unk_017C = 0xFF;
|
||||
if (sWonderCardData->unk_014C.unk_06 != SPECIES_NONE)
|
||||
{
|
||||
gUnknown_02022C74->unk_017C = sub_80D2D78(sub_80D2E84(gUnknown_02022C74->unk_014C.unk_06), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE);
|
||||
gSprites[gUnknown_02022C74->unk_017C].oam.priority = 2;
|
||||
sWonderCardData->unk_017C = sub_80D2D78(sub_80D2E84(sWonderCardData->unk_014C.unk_06), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE);
|
||||
gSprites[sWonderCardData->unk_017C].oam.priority = 2;
|
||||
}
|
||||
if (gUnknown_02022C74->unk_0000.unk_09 != 0 && gUnknown_02022C74->unk_0000.unk_08_0 == 1)
|
||||
if (sWonderCardData->unk_0000.unk_09 != 0 && sWonderCardData->unk_0000.unk_08_0 == 1)
|
||||
{
|
||||
LoadCompressedSpriteSheetUsingHeap(&gUnknown_082F1D00);
|
||||
LoadSpritePalette(&gUnknown_082F1D08[gUnknown_02022C74->unk_0170->textPal4]);
|
||||
for (; r7 < gUnknown_02022C74->unk_0000.unk_09; r7++)
|
||||
LoadSpritePalette(&gUnknown_082F1D08[sWonderCardData->unk_0170->textPal4]);
|
||||
for (; r7 < sWonderCardData->unk_0000.unk_09; r7++)
|
||||
{
|
||||
gUnknown_02022C74->unk_017D[r7][0] = 0xFF;
|
||||
gUnknown_02022C74->unk_017D[r7][1] = 0xFF;
|
||||
gUnknown_02022C74->unk_017D[r7][0] = CreateSprite(&gUnknown_082F1D48, 0xd8 - 32 * r7, 0x90, 8);
|
||||
if (gUnknown_02022C74->unk_014C.unk_08[0][r7] != 0)
|
||||
sWonderCardData->unk_017D[r7][0] = 0xFF;
|
||||
sWonderCardData->unk_017D[r7][1] = 0xFF;
|
||||
sWonderCardData->unk_017D[r7][0] = CreateSprite(&gUnknown_082F1D48, 0xd8 - 32 * r7, 0x90, 8);
|
||||
if (sWonderCardData->unk_014C.unk_08[0][r7] != 0)
|
||||
{
|
||||
gUnknown_02022C74->unk_017D[r7][1] = sub_80D2D78(sub_80D2E84(gUnknown_02022C74->unk_014C.unk_08[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0);
|
||||
sWonderCardData->unk_017D[r7][1] = sub_80D2D78(sub_80D2E84(sWonderCardData->unk_014C.unk_08[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -443,19 +443,19 @@ void sub_801C4C0(void)
|
||||
void sub_801C61C(void)
|
||||
{
|
||||
u8 r6 = 0;
|
||||
if (gUnknown_02022C74->unk_017C != 0xFF)
|
||||
sub_80D2EF8(&gSprites[gUnknown_02022C74->unk_017C]);
|
||||
if (gUnknown_02022C74->unk_0000.unk_09 != 0 && gUnknown_02022C74->unk_0000.unk_08_0 == 1)
|
||||
if (sWonderCardData->unk_017C != 0xFF)
|
||||
sub_80D2EF8(&gSprites[sWonderCardData->unk_017C]);
|
||||
if (sWonderCardData->unk_0000.unk_09 != 0 && sWonderCardData->unk_0000.unk_08_0 == 1)
|
||||
{
|
||||
for (; r6 < gUnknown_02022C74->unk_0000.unk_09; r6++)
|
||||
for (; r6 < sWonderCardData->unk_0000.unk_09; r6++)
|
||||
{
|
||||
if (gUnknown_02022C74->unk_017D[r6][0] != 0xFF)
|
||||
if (sWonderCardData->unk_017D[r6][0] != 0xFF)
|
||||
{
|
||||
DestroySprite(&gSprites[gUnknown_02022C74->unk_017D[r6][0]]);
|
||||
DestroySprite(&gSprites[sWonderCardData->unk_017D[r6][0]]);
|
||||
}
|
||||
if (gUnknown_02022C74->unk_017D[r6][1] != 0xFF)
|
||||
if (sWonderCardData->unk_017D[r6][1] != 0xFF)
|
||||
{
|
||||
sub_80D2EF8(&gSprites[gUnknown_02022C74->unk_017D[r6][1]]);
|
||||
sub_80D2EF8(&gSprites[sWonderCardData->unk_017D[r6][1]]);
|
||||
}
|
||||
}
|
||||
FreeSpriteTilesByTag(0x8000);
|
||||
@ -484,7 +484,7 @@ struct UnkStruct_203F3CC
|
||||
/*03a4*/ u8 buffer_03A4[0x1000];
|
||||
};
|
||||
|
||||
EWRAM_DATA struct UnkStruct_203F3CC * gUnknown_02022C78 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_203F3CC * sWonderNewsData = NULL;
|
||||
|
||||
void sub_801CDCC(void);
|
||||
void sub_801CE7C(void);
|
||||
@ -542,37 +542,37 @@ const struct UnkStruct_8467FB8 gUnknown_082F24C8[] = {
|
||||
{1, 0, 0, 0, gWonderNewsGfx8, gWonderNewsTilemap8, gWonderNewsPal8}
|
||||
};
|
||||
|
||||
bool32 sub_801C6C8(const struct MEventBuffer_3120_Sub * a0)
|
||||
bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0)
|
||||
{
|
||||
if (a0 == NULL)
|
||||
return FALSE;
|
||||
gUnknown_02022C78 = AllocZeroed(sizeof(struct UnkStruct_203F3CC));
|
||||
if (gUnknown_02022C78 == NULL)
|
||||
sWonderNewsData = AllocZeroed(sizeof(struct UnkStruct_203F3CC));
|
||||
if (sWonderNewsData == NULL)
|
||||
return FALSE;
|
||||
gUnknown_02022C78->unk_0000 = *a0;
|
||||
if (gUnknown_02022C78->unk_0000.unk_03 >= ARRAY_COUNT(gUnknown_082F24C8))
|
||||
gUnknown_02022C78->unk_0000.unk_03 = 0;
|
||||
gUnknown_02022C78->unk_01BC = &gUnknown_082F24C8[gUnknown_02022C78->unk_0000.unk_03];
|
||||
gUnknown_02022C78->unk_01C1 = 0xFF;
|
||||
sWonderNewsData->unk_0000 = *a0;
|
||||
if (sWonderNewsData->unk_0000.unk_03 >= ARRAY_COUNT(gUnknown_082F24C8))
|
||||
sWonderNewsData->unk_0000.unk_03 = 0;
|
||||
sWonderNewsData->unk_01BC = &gUnknown_082F24C8[sWonderNewsData->unk_0000.unk_03];
|
||||
sWonderNewsData->unk_01C1 = 0xFF;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_801C72C(void)
|
||||
void DestroyWonderNewsResources(void)
|
||||
{
|
||||
if (gUnknown_02022C78 != NULL)
|
||||
if (sWonderNewsData != NULL)
|
||||
{
|
||||
*gUnknown_02022C78 = (struct UnkStruct_203F3CC){};
|
||||
Free(gUnknown_02022C78);
|
||||
gUnknown_02022C78 = NULL;
|
||||
*sWonderNewsData = (struct UnkStruct_203F3CC){};
|
||||
Free(sWonderNewsData);
|
||||
sWonderNewsData = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_801C758(void)
|
||||
s32 FadeToWonderNewsMenu(void)
|
||||
{
|
||||
if (gUnknown_02022C78 == NULL)
|
||||
if (sWonderNewsData == NULL)
|
||||
return -1;
|
||||
|
||||
switch (gUnknown_02022C78->unk_01C0_1)
|
||||
switch (sWonderNewsData->unk_01C0_1)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
@ -599,19 +599,19 @@ s32 sub_801C758(void)
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
decompress_and_copy_tile_data_to_vram(3, gUnknown_02022C78->unk_01BC->tiles, 0, 8, 0);
|
||||
gUnknown_02022C78->unk_01C8[0] = AddWindow(&gUnknown_082F1DE8[0]);
|
||||
gUnknown_02022C78->unk_01C8[1] = AddWindow(&gUnknown_082F1DE8[1]);
|
||||
decompress_and_copy_tile_data_to_vram(3, sWonderNewsData->unk_01BC->tiles, 0, 8, 0);
|
||||
sWonderNewsData->unk_01C8[0] = AddWindow(&gUnknown_082F1DE8[0]);
|
||||
sWonderNewsData->unk_01C8[1] = AddWindow(&gUnknown_082F1DE8[1]);
|
||||
break;
|
||||
case 3:
|
||||
if (free_temp_tile_data_buffers_if_possible())
|
||||
return 0;
|
||||
LoadPalette(stdpal_get(1), 0x20, 0x20);
|
||||
gPaletteFade.bufferTransferDisabled = TRUE;
|
||||
LoadPalette(gUnknown_02022C78->unk_01BC->pal, 0x10, 0x20);
|
||||
LZ77UnCompWram(gUnknown_02022C78->unk_01BC->map, gUnknown_02022C78->buffer_03A4);
|
||||
CopyRectToBgTilemapBufferRect(1, gUnknown_02022C78->buffer_03A4, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0);
|
||||
CopyRectToBgTilemapBufferRect(3, gUnknown_02022C78->buffer_03A4, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0);
|
||||
LoadPalette(sWonderNewsData->unk_01BC->pal, 0x10, 0x20);
|
||||
LZ77UnCompWram(sWonderNewsData->unk_01BC->map, sWonderNewsData->buffer_03A4);
|
||||
CopyRectToBgTilemapBufferRect(1, sWonderNewsData->buffer_03A4, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0);
|
||||
CopyRectToBgTilemapBufferRect(3, sWonderNewsData->buffer_03A4, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
break;
|
||||
@ -628,26 +628,26 @@ s32 sub_801C758(void)
|
||||
ShowBg(2);
|
||||
ShowBg(3);
|
||||
gPaletteFade.bufferTransferDisabled = FALSE;
|
||||
gUnknown_02022C78->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_02022C78->unk_0394, &gUnknown_02022C78->unk_01C6);
|
||||
sWonderNewsData->unk_01C1 = AddScrollIndicatorArrowPair(&sWonderNewsData->unk_0394, &sWonderNewsData->unk_01C6);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
|
||||
UpdatePaletteFade();
|
||||
break;
|
||||
default:
|
||||
if (UpdatePaletteFade())
|
||||
return 0;
|
||||
gUnknown_02022C78->unk_01C0_1 = 0;
|
||||
sWonderNewsData->unk_01C0_1 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
++gUnknown_02022C78->unk_01C0_1;
|
||||
++sWonderNewsData->unk_01C0_1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 sub_801CA50(bool32 flag)
|
||||
s32 FadeOutFromWonderNews(bool32 flag)
|
||||
{
|
||||
if (gUnknown_02022C78 == NULL)
|
||||
if (sWonderNewsData == NULL)
|
||||
return -1;
|
||||
switch (gUnknown_02022C78->unk_01C0_1)
|
||||
switch (sWonderNewsData->unk_01C0_1)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
@ -675,21 +675,21 @@ s32 sub_801CA50(bool32 flag)
|
||||
case 3:
|
||||
HideBg(1);
|
||||
HideBg(2);
|
||||
RemoveWindow(gUnknown_02022C78->unk_01C8[1]);
|
||||
RemoveWindow(gUnknown_02022C78->unk_01C8[0]);
|
||||
RemoveWindow(sWonderNewsData->unk_01C8[1]);
|
||||
RemoveWindow(sWonderNewsData->unk_01C8[0]);
|
||||
break;
|
||||
case 4:
|
||||
ChangeBgY(2, 0, 0);
|
||||
ChangeBgY(3, 0, 0);
|
||||
if (gUnknown_02022C78->unk_01C1 != 0xFF)
|
||||
if (sWonderNewsData->unk_01C1 != 0xFF)
|
||||
{
|
||||
RemoveScrollIndicatorArrowPair(gUnknown_02022C78->unk_01C1);
|
||||
gUnknown_02022C78->unk_01C1 = 0xFF;
|
||||
RemoveScrollIndicatorArrowPair(sWonderNewsData->unk_01C1);
|
||||
sWonderNewsData->unk_01C1 = 0xFF;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
sub_80186EC(gUnknown_02022C60, flag);
|
||||
sub_8018798(3);
|
||||
PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag);
|
||||
MG_DrawCheckerboardPattern(3);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
|
||||
@ -697,36 +697,36 @@ s32 sub_801CA50(bool32 flag)
|
||||
default:
|
||||
if (UpdatePaletteFade())
|
||||
return 0;
|
||||
gUnknown_02022C78->unk_01C0_1 = 0;
|
||||
sWonderNewsData->unk_01C0_1 = 0;
|
||||
return 1;
|
||||
}
|
||||
++gUnknown_02022C78->unk_01C0_1;
|
||||
++sWonderNewsData->unk_01C0_1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_801CC38(void)
|
||||
void MENews_RemoveScrollIndicatorArrowPair(void)
|
||||
{
|
||||
if (!gUnknown_02022C78->unk_01C0_0 && gUnknown_02022C78->unk_01C1 != 0xFF)
|
||||
if (!sWonderNewsData->unk_01C0_0 && sWonderNewsData->unk_01C1 != 0xFF)
|
||||
{
|
||||
RemoveScrollIndicatorArrowPair(gUnknown_02022C78->unk_01C1);
|
||||
gUnknown_02022C78->unk_01C1 = 0xFF;
|
||||
gUnknown_02022C78->unk_01C0_0 = TRUE;
|
||||
RemoveScrollIndicatorArrowPair(sWonderNewsData->unk_01C1);
|
||||
sWonderNewsData->unk_01C1 = 0xFF;
|
||||
sWonderNewsData->unk_01C0_0 = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void sub_801CC80(void)
|
||||
void MENews_AddScrollIndicatorArrowPair(void)
|
||||
{
|
||||
if (gUnknown_02022C78->unk_01C0_0)
|
||||
if (sWonderNewsData->unk_01C0_0)
|
||||
{
|
||||
gUnknown_02022C78->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_02022C78->unk_0394, &gUnknown_02022C78->unk_01C6);
|
||||
gUnknown_02022C78->unk_01C0_0 = FALSE;
|
||||
sWonderNewsData->unk_01C1 = AddScrollIndicatorArrowPair(&sWonderNewsData->unk_0394, &sWonderNewsData->unk_01C6);
|
||||
sWonderNewsData->unk_01C0_0 = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_801CCD0(u16 input)
|
||||
u32 MENews_GetInput(u16 input)
|
||||
{
|
||||
if (gUnknown_02022C78->unk_01C2_0)
|
||||
if (sWonderNewsData->unk_01C2_0)
|
||||
{
|
||||
sub_801CFA4();
|
||||
return 0xFF;
|
||||
@ -738,26 +738,26 @@ u32 sub_801CCD0(u16 input)
|
||||
case B_BUTTON:
|
||||
return 1;
|
||||
case DPAD_UP:
|
||||
if (gUnknown_02022C78->unk_01C6 == 0)
|
||||
if (sWonderNewsData->unk_01C6 == 0)
|
||||
return 0xFF;
|
||||
if (gUnknown_02022C78->unk_01C0_0)
|
||||
if (sWonderNewsData->unk_01C0_0)
|
||||
return 0xFF;
|
||||
gUnknown_02022C78->unk_01C3_0 = FALSE;
|
||||
sWonderNewsData->unk_01C3_0 = FALSE;
|
||||
break;
|
||||
case DPAD_DOWN:
|
||||
if (gUnknown_02022C78->unk_01C6 == gUnknown_02022C78->unk_01C4)
|
||||
if (sWonderNewsData->unk_01C6 == sWonderNewsData->unk_01C4)
|
||||
return 0xFF;
|
||||
if (gUnknown_02022C78->unk_01C0_0)
|
||||
if (sWonderNewsData->unk_01C0_0)
|
||||
return 0xFF;
|
||||
gUnknown_02022C78->unk_01C3_0 = TRUE;
|
||||
sWonderNewsData->unk_01C3_0 = TRUE;
|
||||
break;
|
||||
default:
|
||||
return 0xFF;
|
||||
}
|
||||
gUnknown_02022C78->unk_01C2_0 = TRUE;
|
||||
gUnknown_02022C78->unk_01C2_1 = 2;
|
||||
gUnknown_02022C78->unk_01C3_1 = 0;
|
||||
if (gUnknown_02022C78->unk_01C3_0 == FALSE)
|
||||
sWonderNewsData->unk_01C2_0 = TRUE;
|
||||
sWonderNewsData->unk_01C2_1 = 2;
|
||||
sWonderNewsData->unk_01C3_1 = 0;
|
||||
if (sWonderNewsData->unk_01C3_0 == FALSE)
|
||||
return 2;
|
||||
else
|
||||
return 3;
|
||||
@ -766,44 +766,44 @@ u32 sub_801CCD0(u16 input)
|
||||
void sub_801CDCC(void)
|
||||
{
|
||||
u8 i = 0;
|
||||
memcpy(gUnknown_02022C78->unk_01CE, gUnknown_02022C78->unk_0000.unk_04, 40);
|
||||
gUnknown_02022C78->unk_01CE[40] = EOS;
|
||||
memcpy(sWonderNewsData->unk_01CE, sWonderNewsData->unk_0000.unk_04, 40);
|
||||
sWonderNewsData->unk_01CE[40] = EOS;
|
||||
for (; i < 10; ++i)
|
||||
{
|
||||
memcpy(gUnknown_02022C78->unk_01F7[i], gUnknown_02022C78->unk_0000.unk_2C[i], 40);
|
||||
gUnknown_02022C78->unk_01F7[i][40] = EOS;
|
||||
if (i > 7 && gUnknown_02022C78->unk_01F7[i][0] != EOS)
|
||||
++gUnknown_02022C78->unk_01C4;
|
||||
memcpy(sWonderNewsData->unk_01F7[i], sWonderNewsData->unk_0000.unk_2C[i], 40);
|
||||
sWonderNewsData->unk_01F7[i][40] = EOS;
|
||||
if (i > 7 && sWonderNewsData->unk_01F7[i][0] != EOS)
|
||||
++sWonderNewsData->unk_01C4;
|
||||
}
|
||||
gUnknown_02022C78->unk_0394 = gUnknown_082F1DF8;
|
||||
gUnknown_02022C78->unk_0394.fullyDownThreshold = gUnknown_02022C78->unk_01C4;
|
||||
sWonderNewsData->unk_0394 = gUnknown_082F1DF8;
|
||||
sWonderNewsData->unk_0394.fullyDownThreshold = sWonderNewsData->unk_01C4;
|
||||
}
|
||||
|
||||
void sub_801CE7C(void)
|
||||
{
|
||||
u8 i = 0;
|
||||
s32 x;
|
||||
PutWindowTilemap(gUnknown_02022C78->unk_01C8[0]);
|
||||
PutWindowTilemap(gUnknown_02022C78->unk_01C8[1]);
|
||||
FillWindowPixelBuffer(gUnknown_02022C78->unk_01C8[0], 0);
|
||||
FillWindowPixelBuffer(gUnknown_02022C78->unk_01C8[1], 0);
|
||||
x = (0xe0 - GetStringWidth(3, gUnknown_02022C78->unk_01CE, GetFontAttribute(3, 2))) / 2;
|
||||
PutWindowTilemap(sWonderNewsData->unk_01C8[0]);
|
||||
PutWindowTilemap(sWonderNewsData->unk_01C8[1]);
|
||||
FillWindowPixelBuffer(sWonderNewsData->unk_01C8[0], 0);
|
||||
FillWindowPixelBuffer(sWonderNewsData->unk_01C8[1], 0);
|
||||
x = (0xe0 - GetStringWidth(3, sWonderNewsData->unk_01CE, GetFontAttribute(3, 2))) / 2;
|
||||
if (x < 0)
|
||||
x = 0;
|
||||
AddTextPrinterParameterized3(gUnknown_02022C78->unk_01C8[0], 3, x, 6, gUnknown_082F1DE0[gUnknown_02022C78->unk_01BC->textPal1], 0, gUnknown_02022C78->unk_01CE);
|
||||
AddTextPrinterParameterized3(sWonderNewsData->unk_01C8[0], 3, x, 6, gUnknown_082F1DE0[sWonderNewsData->unk_01BC->textPal1], 0, sWonderNewsData->unk_01CE);
|
||||
for (; i < 10; ++i)
|
||||
{
|
||||
AddTextPrinterParameterized3(gUnknown_02022C78->unk_01C8[1], 3, 0, 16 * i + 2, gUnknown_082F1DE0[gUnknown_02022C78->unk_01BC->textPal2], 0, gUnknown_02022C78->unk_01F7[i]);
|
||||
AddTextPrinterParameterized3(sWonderNewsData->unk_01C8[1], 3, 0, 16 * i + 2, gUnknown_082F1DE0[sWonderNewsData->unk_01BC->textPal2], 0, sWonderNewsData->unk_01F7[i]);
|
||||
}
|
||||
CopyWindowToVram(gUnknown_02022C78->unk_01C8[0], 3);
|
||||
CopyWindowToVram(gUnknown_02022C78->unk_01C8[1], 3);
|
||||
CopyWindowToVram(sWonderNewsData->unk_01C8[0], 3);
|
||||
CopyWindowToVram(sWonderNewsData->unk_01C8[1], 3);
|
||||
}
|
||||
|
||||
void sub_801CFA4(void)
|
||||
{
|
||||
u16 r4 = gUnknown_02022C78->unk_01C2_1;
|
||||
u16 r4 = sWonderNewsData->unk_01C2_1;
|
||||
r4 <<= 8;
|
||||
if (gUnknown_02022C78->unk_01C3_0)
|
||||
if (sWonderNewsData->unk_01C3_0)
|
||||
{
|
||||
ChangeBgY(2, r4, 1);
|
||||
ChangeBgY(3, r4, 1);
|
||||
@ -813,14 +813,14 @@ void sub_801CFA4(void)
|
||||
ChangeBgY(2, r4, 2);
|
||||
ChangeBgY(3, r4, 2);
|
||||
}
|
||||
gUnknown_02022C78->unk_01C3_1 += gUnknown_02022C78->unk_01C2_1;
|
||||
if (gUnknown_02022C78->unk_01C3_1 > 15)
|
||||
sWonderNewsData->unk_01C3_1 += sWonderNewsData->unk_01C2_1;
|
||||
if (sWonderNewsData->unk_01C3_1 > 15)
|
||||
{
|
||||
if (gUnknown_02022C78->unk_01C3_0)
|
||||
++gUnknown_02022C78->unk_01C6;
|
||||
if (sWonderNewsData->unk_01C3_0)
|
||||
++sWonderNewsData->unk_01C6;
|
||||
else
|
||||
--gUnknown_02022C78->unk_01C6;
|
||||
gUnknown_02022C78->unk_01C2_0 = FALSE;
|
||||
gUnknown_02022C78->unk_01C3_1 = 0;
|
||||
--sWonderNewsData->unk_01C6;
|
||||
sWonderNewsData->unk_01C2_0 = FALSE;
|
||||
sWonderNewsData->unk_01C3_1 = 0;
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ static u32 sub_801DD44(struct MysteryEventStruct *);
|
||||
static void sub_801DCD8(struct MysteryEventStruct *);
|
||||
static void sub_801DCCC(struct MysteryEventStruct *);
|
||||
|
||||
void sub_801DB68(u32 a0)
|
||||
void GenerateRandomNews(u32 a0)
|
||||
{
|
||||
struct MysteryEventStruct *r5 = sub_801B044();
|
||||
|
||||
@ -59,7 +59,7 @@ u16 sub_801DC20(void)
|
||||
struct MysteryEventStruct *r4 = sub_801B044();
|
||||
u16 r5;
|
||||
|
||||
if (!IsMysteryEventEnabled() || !sub_801B0CC())
|
||||
if (!IsMysteryEventEnabled() || !ValidateReceivedWonderNews())
|
||||
return 0;
|
||||
|
||||
r5 = sub_801DD44(r4);
|
||||
|
@ -94,7 +94,7 @@ void CB2_InitMysteryEventMenu(void)
|
||||
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14);
|
||||
LoadUserWindowBorderGfx(0, 1u, 0xD0u);
|
||||
sub_81978B0(0xE0);
|
||||
Menu_LoadStdPalAt(0xE0);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
CreateTask(Task_DestroySelf, 0);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -23,6 +23,19 @@
|
||||
#include "constants/species.h"
|
||||
#include "constants/vars.h"
|
||||
|
||||
#define AREA_SCREEN_WIDTH 32
|
||||
#define AREA_SCREEN_HEIGHT 20
|
||||
|
||||
#define GLOW_TILE_FULL 0xFFFF
|
||||
#define GLOW_TILE_LEFT (1 << 0)
|
||||
#define GLOW_TILE_RIGHT (1 << 1)
|
||||
#define GLOW_TILE_TOP (1 << 2)
|
||||
#define GLOW_TILE_BOTTOM (1 << 3)
|
||||
#define GLOW_TILE_BOTTOM_RIGHT (1 << 4)
|
||||
#define GLOW_TILE_TOP_RIGHT (1 << 5)
|
||||
#define GLOW_TILE_BOTTOM_LEFT (1 << 6)
|
||||
#define GLOW_TILE_TOP_LEFT (1 << 7)
|
||||
|
||||
struct PokeDexAreaScreenMapIdentity
|
||||
{
|
||||
u8 mapGroup;
|
||||
@ -107,24 +120,114 @@ static const u16 sLandmarkData[][2] =
|
||||
{MAPSEC_NONE}
|
||||
};
|
||||
|
||||
static const u8 sAreaGlowTilemapMapping[] =
|
||||
{
|
||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x11, 0x20, 0x02, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x12, 0x21, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x13, 0x22, 0x02, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x14, 0x01, 0x23, 0x03, 0x26, 0x05, 0x2c, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x15, 0x20, 0x23, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x16, 0x21, 0x23, 0x03, 0x26, 0x05, 0x2c, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x17, 0x22, 0x23, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x18, 0x01, 0x24, 0x03, 0x04, 0x05, 0x06, 0x07, 0x29, 0x09, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x19, 0x20, 0x24, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x29, 0x09, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x1a, 0x21, 0x24, 0x03, 0x04, 0x05, 0x06, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x1b, 0x22, 0x24, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x1c, 0x01, 0x25, 0x03, 0x26, 0x05, 0x2c, 0x07, 0x29, 0x09, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x1d, 0x20, 0x25, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x29, 0x09, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x1e, 0x21, 0x25, 0x03, 0x26, 0x05, 0x2c, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x1f, 0x22, 0x25, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
// Only some parts of this array are acutally used, because corner flags that overlap
|
||||
// with edge flags are cancelled out before lookup. For example, GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_RIGHT
|
||||
// will never be read.
|
||||
//
|
||||
// The rest of the bytes seem to be old data from before the cancellation was implemented.
|
||||
// Most of them line up as you would expect ([BOTTOM_RIGHT | RIGHT] has the same value as [RIGHT]).
|
||||
//
|
||||
// Any unreachable entries are simply listed in order, without the fancy "[FLAGS] = 0xXX" notation.
|
||||
static const u8 sAreaGlowTilemapMapping[] = {
|
||||
[0] = 0x00,
|
||||
[GLOW_TILE_LEFT] = 0x01,
|
||||
[GLOW_TILE_RIGHT] = 0x02,
|
||||
[GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x03,
|
||||
[GLOW_TILE_TOP] = 0x04,
|
||||
[GLOW_TILE_TOP | GLOW_TILE_LEFT] = 0x05,
|
||||
[GLOW_TILE_TOP | GLOW_TILE_RIGHT] = 0x06,
|
||||
[GLOW_TILE_TOP | GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x07,
|
||||
[GLOW_TILE_BOTTOM] = 0x08,
|
||||
[GLOW_TILE_BOTTOM | GLOW_TILE_LEFT] = 0x09,
|
||||
[GLOW_TILE_BOTTOM | GLOW_TILE_RIGHT] = 0x0a,
|
||||
[GLOW_TILE_BOTTOM | GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x0b,
|
||||
[GLOW_TILE_BOTTOM | GLOW_TILE_TOP] = 0x0c,
|
||||
[GLOW_TILE_BOTTOM | GLOW_TILE_TOP | GLOW_TILE_LEFT] = 0x0d,
|
||||
[GLOW_TILE_BOTTOM | GLOW_TILE_TOP | GLOW_TILE_RIGHT] = 0x0e,
|
||||
[GLOW_TILE_BOTTOM | GLOW_TILE_TOP | GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x0f,
|
||||
[GLOW_TILE_BOTTOM_RIGHT] = 0x11,
|
||||
[GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_LEFT] = 0x20,
|
||||
0x02, 0x03,
|
||||
[GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP] = 0x27,
|
||||
[GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP | GLOW_TILE_LEFT] = 0x2d,
|
||||
0x06, 0x07, 0x08, 0x09, 0x0a,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_TOP_RIGHT] = 0x12,
|
||||
[GLOW_TILE_TOP_RIGHT | GLOW_TILE_LEFT] = 0x21,
|
||||
0x02, 0x03, 0x04, 0x05, 0x06,
|
||||
0x07,
|
||||
[GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM] = 0x2a,
|
||||
[GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM | GLOW_TILE_LEFT] = 0x2e,
|
||||
0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
|
||||
0x0f,
|
||||
[GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x13,
|
||||
[GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_LEFT] = 0x22,
|
||||
0x02, 0x03, 0x27, 0x2d, 0x06,
|
||||
0x07, 0x2a, 0x2e, 0x0a, 0x0b,
|
||||
0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_BOTTOM_LEFT] = 0x14,
|
||||
0x01,
|
||||
[GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_RIGHT] = 0x23,
|
||||
0x03,
|
||||
[GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP] = 0x26,
|
||||
0x05,
|
||||
[GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP | GLOW_TILE_RIGHT] = 0x2c,
|
||||
0x07, 0x08, 0x09, 0x0a, 0x0b,
|
||||
0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT] = 0x15,
|
||||
0x20, 0x23, 0x03,
|
||||
[GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP] = 0x28,
|
||||
0x2d, 0x2c, 0x07, 0x08, 0x09,
|
||||
0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
|
||||
0x0f,
|
||||
[GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT] = 0x16,
|
||||
0x21, 0x23, 0x03, 0x26, 0x05,
|
||||
0x2c, 0x07, 0x2a, 0x2e, 0x0a,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x17,
|
||||
0x22, 0x23, 0x03, 0x28, 0x2d,
|
||||
0x2c, 0x07, 0x2a, 0x2e, 0x0a,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_TOP_LEFT] = 0x18,
|
||||
0x01,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_RIGHT] = 0x24,
|
||||
0x03, 0x04, 0x05, 0x06, 0x07,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM] = 0x29,
|
||||
0x09,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM | GLOW_TILE_RIGHT] = 0x2f,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_RIGHT] = 0x19,
|
||||
0x20, 0x24, 0x03, 0x27, 0x2d,
|
||||
0x06, 0x07, 0x29, 0x09, 0x2f,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT] = 0x1a,
|
||||
0x21, 0x24, 0x03, 0x04, 0x05,
|
||||
0x06, 0x07,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM] = 0x2b,
|
||||
0x2e, 0x2f, 0x0b, 0x0c, 0x0d,
|
||||
0x0e, 0x0f,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x1b,
|
||||
0x22, 0x24, 0x03, 0x27, 0x2d,
|
||||
0x06, 0x07, 0x2b, 0x2e, 0x2f,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT] = 0x1c,
|
||||
0x01,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_RIGHT] = 0x25,
|
||||
0x03, 0x26, 0x05, 0x2c, 0x07,
|
||||
0x29, 0x09, 0x2f, 0x0b, 0x0c,
|
||||
0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT] = 0x1d,
|
||||
0x20, 0x25, 0x03, 0x28, 0x2d,
|
||||
0x2c, 0x07, 0x29, 0x09, 0x2f,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT] = 0x1e,
|
||||
0x21, 0x25, 0x03, 0x26, 0x05,
|
||||
0x2c, 0x07, 0x2b, 0x2e, 0x2f,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
[GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x1f,
|
||||
0x22, 0x25, 0x03, 0x28, 0x2d,
|
||||
0x2c, 0x07, 0x2b, 0x2e, 0x2f,
|
||||
0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
};
|
||||
|
||||
static const struct UnkStruct_1C4D70 sUnknown_085B4018 =
|
||||
@ -255,11 +358,11 @@ static void FindMapsWithMon(u16 species)
|
||||
{
|
||||
switch (sFeebasData[i][1])
|
||||
{
|
||||
case MAP_GROUP(PETALBURG_CITY):
|
||||
case MAP_GROUP_OVERWORLD_MONS:
|
||||
SetAreaHasMon(sFeebasData[i][1], sFeebasData[i][2]);
|
||||
break;
|
||||
case MAP_GROUP(METEOR_FALLS_1F_1R):
|
||||
case MAP_GROUP(SAFARI_ZONE_NORTHWEST):
|
||||
case MAP_GROUP_SPECIAL_MONS_1:
|
||||
case MAP_GROUP_SPECIAL_MONS_2:
|
||||
SetSpecialMapHasMon(sFeebasData[i][1], sFeebasData[i][2]);
|
||||
break;
|
||||
}
|
||||
@ -268,15 +371,15 @@ static void FindMapsWithMon(u16 species)
|
||||
|
||||
for (i = 0; gWildMonHeaders[i].mapGroup != 0xFF; i++)
|
||||
{
|
||||
if (MapHasMon(gWildMonHeaders + i, species))
|
||||
if (MapHasMon(&gWildMonHeaders[i], species))
|
||||
{
|
||||
switch (gWildMonHeaders[i].mapGroup)
|
||||
{
|
||||
case MAP_GROUP(PETALBURG_CITY):
|
||||
case MAP_GROUP_OVERWORLD_MONS:
|
||||
SetAreaHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum);
|
||||
break;
|
||||
case MAP_GROUP(METEOR_FALLS_1F_1R):
|
||||
case MAP_GROUP(SAFARI_ZONE_NORTHWEST):
|
||||
case MAP_GROUP_SPECIAL_MONS_1:
|
||||
case MAP_GROUP_SPECIAL_MONS_2:
|
||||
SetSpecialMapHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum);
|
||||
break;
|
||||
}
|
||||
@ -390,18 +493,18 @@ static void BuildAreaGlowTilemap(void)
|
||||
u16 i, y, x, j;
|
||||
u16 val;
|
||||
|
||||
for (i = 0; i < 0x280; i++)
|
||||
for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaGlowTilemap); i++)
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] = 0;
|
||||
|
||||
for (i = 0; i < sPokedexAreaScreen->numOverworldAreas; i++)
|
||||
{
|
||||
j = 0;
|
||||
for (y = 0; y < 20; y++)
|
||||
for (y = 0; y < AREA_SCREEN_HEIGHT; y++)
|
||||
{
|
||||
for (x = 0; x < 32; x++)
|
||||
for (x = 0; x < AREA_SCREEN_WIDTH; x++)
|
||||
{
|
||||
if (GetRegionMapSectionIdAt(x, y) == sPokedexAreaScreen->overworldAreasWithMons[i].regionMapSectionId)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j] = 0xFFFF;
|
||||
sPokedexAreaScreen->areaGlowTilemap[j] = GLOW_TILE_FULL;
|
||||
|
||||
j++;
|
||||
}
|
||||
@ -409,51 +512,58 @@ static void BuildAreaGlowTilemap(void)
|
||||
}
|
||||
|
||||
j = 0;
|
||||
for (y = 0; y < 20; y++)
|
||||
for (y = 0; y < AREA_SCREEN_HEIGHT; y++)
|
||||
{
|
||||
for (x = 0; x < 32; x++)
|
||||
for (x = 0; x < AREA_SCREEN_WIDTH; x++)
|
||||
{
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[j] == 0xFFFF)
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[j] == GLOW_TILE_FULL)
|
||||
{
|
||||
if (x != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 1] != 0xFFFF)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j - 1] |= 0x02;
|
||||
if (x != 31 && sPokedexAreaScreen->areaGlowTilemap[j + 1] != 0xFFFF)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j + 1] |= 0x01;
|
||||
if (y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 32] != 0xFFFF)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j - 32] |= 0x08;
|
||||
if (y != 19 && sPokedexAreaScreen->areaGlowTilemap[j + 32] != 0xFFFF)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j + 32] |= 0x04;
|
||||
if (x != 0 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 33] != 0xFFFF)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j - 33] |= 0x10;
|
||||
if (x != 31 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 31] != 0xFFFF)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j - 31] |= 0x40;
|
||||
if (x != 0 && y != 19 && sPokedexAreaScreen->areaGlowTilemap[j + 31] != 0xFFFF)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j + 31] |= 0x20;
|
||||
if (x != 31 && y != 19 && sPokedexAreaScreen->areaGlowTilemap[j + 33] != 0xFFFF)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j + 33] |= 0x80;
|
||||
// The "tile != GLOW_TILE_FULL" check is pointless in all of these conditionals,
|
||||
// since there's no harm in OR'ing 0xFFFF with anything else.
|
||||
|
||||
// Edges
|
||||
if (x != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 1] != GLOW_TILE_FULL)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j - 1] |= GLOW_TILE_RIGHT;
|
||||
if (x != AREA_SCREEN_WIDTH - 1 && sPokedexAreaScreen->areaGlowTilemap[j + 1] != GLOW_TILE_FULL)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j + 1] |= GLOW_TILE_LEFT;
|
||||
if (y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH] != GLOW_TILE_FULL)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH] |= GLOW_TILE_BOTTOM;
|
||||
if (y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH] != GLOW_TILE_FULL)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH] |= GLOW_TILE_TOP;
|
||||
|
||||
// Diagonals
|
||||
if (x != 0 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH - 1] != GLOW_TILE_FULL)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH - 1] |= GLOW_TILE_BOTTOM_RIGHT;
|
||||
if (x != AREA_SCREEN_WIDTH - 1 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH + 1] != GLOW_TILE_FULL)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH + 1] |= GLOW_TILE_BOTTOM_LEFT;
|
||||
if (x != 0 && y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH - 1] != GLOW_TILE_FULL)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH - 1] |= GLOW_TILE_TOP_RIGHT;
|
||||
if (x != AREA_SCREEN_WIDTH - 1 && y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH + 1] != GLOW_TILE_FULL)
|
||||
sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH + 1] |= GLOW_TILE_TOP_LEFT;
|
||||
}
|
||||
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x280; i++)
|
||||
for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaGlowTilemap); i++)
|
||||
{
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] == 0xFFFF)
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] == GLOW_TILE_FULL)
|
||||
{
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] = 0x10;
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] |= 0xA000;
|
||||
}
|
||||
else if (sPokedexAreaScreen->areaGlowTilemap[i])
|
||||
{
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] & 0x02)
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] &= 0xFFCF;
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] & 0x01)
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] &= 0xFF3F;
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] & 0x08)
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] &= 0xFFAF;
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] & 0x04)
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] &= 0xFF5F;
|
||||
// Get rid of overlapping flags
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_RIGHT)
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP_RIGHT);
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_LEFT)
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_LEFT);
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_BOTTOM)
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT);
|
||||
if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_TOP)
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT);
|
||||
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] = sAreaGlowTilemapMapping[sPokedexAreaScreen->areaGlowTilemap[i]];
|
||||
sPokedexAreaScreen->areaGlowTilemap[i] |= 0xA000;
|
||||
|
@ -4419,7 +4419,7 @@ static void PrintStorageActionText(u8 id)
|
||||
DynamicPlaceholderTextUtil_ExpandPlaceholders(sPSSData->field_2190, gPCStorageActionTexts[id].text);
|
||||
FillWindowPixelBuffer(1, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized(1, 1, sPSSData->field_2190, 0, 1, TEXT_SPEED_FF, NULL);
|
||||
sub_8098858(1, 2, 14);
|
||||
DrawTextBorderOuter(1, 2, 14);
|
||||
PutWindowTilemap(1);
|
||||
CopyWindowToVram(1, 2);
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
|
@ -405,7 +405,7 @@ bool32 sub_80991F8(void)
|
||||
u8 *sub_8099244(void)
|
||||
{
|
||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||
if (!sub_801B27C())
|
||||
if (!ValidateReceivedWonderCard())
|
||||
return NULL;
|
||||
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
||||
return NULL;
|
||||
|
@ -488,7 +488,7 @@ void sub_80F910C(void)
|
||||
if (gIsLinkContest & 2)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1185,7 +1185,7 @@ static bool32 sub_80A03E4(u8 *par1)
|
||||
InitBgsFromTemplates(0, sUnknown_085105A8, ARRAY_COUNT(sUnknown_085105A8));
|
||||
InitWindows(sUnknown_085105AC);
|
||||
LoadUserWindowBorderGfx_(0, 8, 224);
|
||||
sub_81978B0(240);
|
||||
Menu_LoadStdPalAt(240);
|
||||
break;
|
||||
case 3:
|
||||
ShowBg(0);
|
||||
@ -1234,7 +1234,7 @@ static void sub_80A0550(u8 taskId)
|
||||
2,
|
||||
1,
|
||||
3);
|
||||
sub_8098858(0, 8, 14);
|
||||
DrawTextBorderOuter(0, 8, 14);
|
||||
PutWindowTilemap(0);
|
||||
CopyWindowToVram(0, 3);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
|
||||
|
@ -113,7 +113,7 @@ void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palOffset)
|
||||
LoadWindowGfx(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palOffset);
|
||||
}
|
||||
|
||||
void sub_8098858(u8 windowId, u16 tileNum, u8 palNum)
|
||||
void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum)
|
||||
{
|
||||
u8 bgLayer = GetWindowAttribute(windowId, WINDOW_BG);
|
||||
u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT);
|
||||
@ -131,7 +131,7 @@ void sub_8098858(u8 windowId, u16 tileNum, u8 palNum)
|
||||
FillBgTilemapBufferRect(bgLayer, tileNum + 8, tilemapLeft + width, tilemapTop + height, 1, 1, palNum);
|
||||
}
|
||||
|
||||
void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum)
|
||||
void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum)
|
||||
{
|
||||
u8 bgLayer = GetWindowAttribute(windowId, WINDOW_BG);
|
||||
u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT);
|
||||
|
10
src/trade.c
10
src/trade.c
@ -2014,7 +2014,7 @@ static void sub_80781C8(void)
|
||||
FreeAllWindowBuffers();
|
||||
Free(gUnknown_0203229C);
|
||||
gMain.callback1 = NULL;
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
SetMainCallback2(sub_807AE50);
|
||||
}
|
||||
}
|
||||
@ -2543,7 +2543,7 @@ static void sub_8078DBC(void)
|
||||
|
||||
if (gUnknown_0203229C->tradeMenuCursorPosition < 6)
|
||||
{
|
||||
sub_8098858(1, 1, 14);
|
||||
DrawTextBorderOuter(1, 1, 14);
|
||||
FillWindowPixelBuffer(1, PIXEL_FILL(1));
|
||||
PrintMenuTable(1, 2, gUnknown_0832DEAC);
|
||||
InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0);
|
||||
@ -2844,7 +2844,7 @@ static void sub_80794CC(void)
|
||||
Free(gUnknown_02032184);
|
||||
Free(gUnknown_0203229C);
|
||||
FreeAllWindowBuffers();
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
SetMainCallback2(CB2_ReturnToFieldFromMultiplayer);
|
||||
}
|
||||
}
|
||||
@ -3341,7 +3341,7 @@ static void sub_807A19C(u8 a0)
|
||||
{
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized(0, 1, gUnknown_0832DEBC[a0], 0, 1, TEXT_SPEED_FF, NULL);
|
||||
sub_8098858(0, 20, 12);
|
||||
DrawTextBorderOuter(0, 20, 12);
|
||||
PutWindowTilemap(0);
|
||||
CopyWindowToVram(0, 3);
|
||||
}
|
||||
@ -6123,7 +6123,7 @@ static void c2_080543C4(void)
|
||||
FreeMonSpritesGfx();
|
||||
FREE_AND_SET_NULL(gUnknown_020322A0);
|
||||
if (gWirelessCommType)
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
SetMainCallback2(gMain.savedCallback);
|
||||
}
|
||||
RunTasks();
|
||||
|
@ -45,6 +45,8 @@
|
||||
#include "event_obj_lock.h"
|
||||
#include "union_room_chat.h"
|
||||
#include "berry_crush.h"
|
||||
#include "mystery_gift.h"
|
||||
#include "union_room_player_avatar.h"
|
||||
|
||||
EWRAM_DATA u8 gUnknown_02022C20[12] = {};
|
||||
EWRAM_DATA u8 gUnknown_02022C2C = 0;
|
||||
@ -60,8 +62,6 @@ EWRAM_DATA struct TradeUnkStruct gUnknown_02022C40 = {};
|
||||
IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0;
|
||||
IWRAM_DATA struct UnkStruct_Group *gUnknown_03000DA4;
|
||||
IWRAM_DATA struct UnkStruct_URoom *gUnknown_03000DA8;
|
||||
IWRAM_DATA void *gUnknown_03000DAC;
|
||||
IWRAM_DATA bool32 gUnknown_03000DB0;
|
||||
|
||||
// this file's functions
|
||||
void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5);
|
||||
@ -100,21 +100,17 @@ void sub_801AC54(void);
|
||||
void sub_802A9A8(u8 monId, MainCallback callback);
|
||||
void sub_802493C(u8 monId, MainCallback callback);
|
||||
void sub_80149D8(void);
|
||||
u16 sub_8019930(void);
|
||||
void sub_8018784(u8 windowId);
|
||||
s8 sub_8018B08(u8 *textState, u8 *arg1, u8 arg2, const u8 *str);
|
||||
void MG_DrawTextBorder(u8 windowId);
|
||||
s8 mevent_message_print_and_prompt_yes_no(u8 *textState, u8 *arg1, u8 arg2, const u8 *str);
|
||||
bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1);
|
||||
u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2);
|
||||
void sub_8019F2C(void);
|
||||
void sub_8019E70(u8 *arg0, s32 arg1);
|
||||
bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1);
|
||||
void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1);
|
||||
bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3);
|
||||
void sub_80181CC(void);
|
||||
bool32 sub_8017940(void);
|
||||
u8 sub_8016B00(void);
|
||||
void sub_801A274(struct UnkStruct_URoom *arg0);
|
||||
void sub_801A284(struct UnkStruct_URoom *arg0);
|
||||
bool32 sub_8017FD8(struct UnkStruct_URoom *arg0);
|
||||
void sub_801689C(struct UnkStruct_URoom *arg0);
|
||||
u8 sub_80181DC(struct UnkStruct_URoom *arg0);
|
||||
@ -123,7 +119,6 @@ bool32 sub_801704C(void);
|
||||
s32 sub_8017CF8(s32 arg1, struct UnkStruct_Main0 *arg0);
|
||||
s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender);
|
||||
void sub_801818C(bool32 arg0);
|
||||
void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2);
|
||||
s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate);
|
||||
s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6);
|
||||
s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1);
|
||||
@ -133,12 +128,10 @@ void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2);
|
||||
void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender);
|
||||
u32 sub_80179AC(struct UnkStruct_x20 *arg0);
|
||||
void sub_8017E00(u8 *dst, u8 arg1);
|
||||
void sub_8019F04(u8 *spriteIds);
|
||||
void sub_8019E3C(void);
|
||||
void sub_80173B0(void);
|
||||
s32 sub_8017D04(u32 type, u32 species);
|
||||
bool32 sub_8017020(const u8 *src);
|
||||
void sub_8019BA8(void *);
|
||||
u8 sub_8019BA8(struct UnkStruct_8019BA8 * );
|
||||
s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3);
|
||||
void sub_801697C(u8 taskId);
|
||||
bool8 sub_8017630(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1);
|
||||
@ -1555,7 +1548,7 @@ void sub_8012780(u8 taskId)
|
||||
break;
|
||||
case 21:
|
||||
case 23:
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
sub_800EDD4();
|
||||
sub_8012F64(data);
|
||||
data->state++;
|
||||
@ -2076,7 +2069,7 @@ void sub_80134E8(u8 taskId)
|
||||
data->state++;
|
||||
break;
|
||||
case 13:
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()]))
|
||||
{
|
||||
gSpecialVar_Result = 6;
|
||||
@ -2084,12 +2077,12 @@ void sub_80134E8(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
gSpecialVar_Result = 5;
|
||||
data->state = 23;
|
||||
break;
|
||||
case 15:
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()]))
|
||||
{
|
||||
gSpecialVar_Result = 8;
|
||||
@ -2339,7 +2332,7 @@ void sub_8013F90(u8 taskId)
|
||||
if (GetBlockReceivedStatus() == 3)
|
||||
{
|
||||
gEnemyParty[0] = *(struct Pokemon*)(gBlockRecvBuffer[GetMultiplayerId() ^ 1]);
|
||||
IncrementGameStat(GAME_STAT_50);
|
||||
IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES);
|
||||
ResetBlockReceivedFlags();
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
@ -2481,7 +2474,7 @@ void sub_80143E4(void *arg0, bool32 arg1)
|
||||
|
||||
TrainerCard_GenerateCardForPlayer((struct TrainerCard *)argAsU16Ptr);
|
||||
if (arg1)
|
||||
argAsU16Ptr[48] = sub_801B39C();
|
||||
argAsU16Ptr[48] = GetWonderCardFlagID();
|
||||
else
|
||||
argAsU16Ptr[48] = 0;
|
||||
}
|
||||
@ -2680,7 +2673,7 @@ void sub_8014790(u8 taskId)
|
||||
case 8:
|
||||
if (gReceivedRemoteLinkPlayers == 0)
|
||||
{
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
EnableBothScriptContexts();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
@ -2699,7 +2692,7 @@ void sub_80149D8(void)
|
||||
gTasks[taskId].data[0] = 0;
|
||||
}
|
||||
|
||||
void sub_8014A00(u32 arg0)
|
||||
void MEvent_CreateTask_Leader(u32 arg0)
|
||||
{
|
||||
u8 taskId;
|
||||
struct UnkStruct_Leader *dataPtr;
|
||||
@ -2745,10 +2738,10 @@ void sub_8014A40(u8 taskId)
|
||||
data->field_17 = sub_8016FC0(data->field_4, 0xFF);
|
||||
|
||||
winTemplate = gUnknown_082F011C;
|
||||
winTemplate.baseBlock = sub_8019930();
|
||||
winTemplate.baseBlock = GetMysteryGiftBaseBlock();
|
||||
winTemplate.paletteNum = 0xC;
|
||||
data->listWindowId = AddWindow(&winTemplate);
|
||||
sub_8018784(data->listWindowId);
|
||||
MG_DrawTextBorder(data->listWindowId);
|
||||
gMultiuseListMenuTemplate = gUnknown_082F015C;
|
||||
gMultiuseListMenuTemplate.windowId = data->listWindowId;
|
||||
data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
|
||||
@ -2763,7 +2756,7 @@ void sub_8014A40(u8 taskId)
|
||||
data->state = 3;
|
||||
break;
|
||||
case 3:
|
||||
sub_8018884(gStringVar4);
|
||||
AddTextPrinterToWindow1(gStringVar4);
|
||||
data->state = 4;
|
||||
break;
|
||||
case 4:
|
||||
@ -2771,11 +2764,11 @@ void sub_8014A40(u8 taskId)
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
data->state = 13;
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (mevent_0814257C(&data->textState, gUnknown_082EDF40))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EDF40))
|
||||
{
|
||||
data->field_13 = sub_8013398(data->field_0);
|
||||
RedrawListMenu(data->listTaskId);
|
||||
@ -2786,7 +2779,7 @@ void sub_8014A40(u8 taskId)
|
||||
data->state = 7;
|
||||
break;
|
||||
case 7:
|
||||
switch (sub_8018B08(&data->textState, &data->field_14, 0, gStringVar4))
|
||||
switch (mevent_message_print_and_prompt_yes_no(&data->textState, &data->field_14, 0, gStringVar4))
|
||||
{
|
||||
case 0:
|
||||
sub_800E0E8();
|
||||
@ -2837,7 +2830,7 @@ void sub_8014A40(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
sub_8018884(gStringVar4);
|
||||
AddTextPrinterToWindow1(gStringVar4);
|
||||
data->state = 10;
|
||||
break;
|
||||
case 10:
|
||||
@ -2860,7 +2853,7 @@ void sub_8014A40(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
sub_800EDD4();
|
||||
DestroyListMenuTask(data->listTaskId, 0, 0);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
@ -2872,7 +2865,7 @@ void sub_8014A40(u8 taskId)
|
||||
data->state++;
|
||||
break;
|
||||
case 14:
|
||||
if (mevent_0814257C(&data->textState, gText_PleaseStartOver))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_PleaseStartOver))
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
gSpecialVar_Result = 5;
|
||||
@ -2907,7 +2900,7 @@ void sub_8014A40(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8014EFC(u32 arg0)
|
||||
void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0)
|
||||
{
|
||||
u8 taskId;
|
||||
struct UnkStruct_Group *dataPtr;
|
||||
@ -2940,7 +2933,7 @@ void sub_8014F48(u8 taskId)
|
||||
data->state = 1;
|
||||
break;
|
||||
case 1:
|
||||
sub_8018884(gUnknown_082EF7F8);
|
||||
AddTextPrinterToWindow1(gUnknown_082EF7F8);
|
||||
data->state = 2;
|
||||
break;
|
||||
case 2:
|
||||
@ -2949,7 +2942,7 @@ void sub_8014F48(u8 taskId)
|
||||
data->field_11 = sub_8016FC0(data->field_4, data->field_12 + 7);
|
||||
|
||||
winTemplate1 = gUnknown_082F0174;
|
||||
winTemplate1.baseBlock = sub_8019930();
|
||||
winTemplate1.baseBlock = GetMysteryGiftBaseBlock();
|
||||
winTemplate1.paletteNum = 0xC;
|
||||
data->listWindowId = AddWindow(&winTemplate1);
|
||||
|
||||
@ -2957,12 +2950,12 @@ void sub_8014F48(u8 taskId)
|
||||
winTemplate2.paletteNum = 0xC;
|
||||
data->field_D = AddWindow(&winTemplate2);
|
||||
|
||||
sub_8018784(data->listWindowId);
|
||||
MG_DrawTextBorder(data->listWindowId);
|
||||
gMultiuseListMenuTemplate = gUnknown_082F0204;
|
||||
gMultiuseListMenuTemplate.windowId = data->listWindowId;
|
||||
data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
|
||||
|
||||
sub_8018784(data->field_D);
|
||||
MG_DrawTextBorder(data->field_D);
|
||||
FillWindowPixelBuffer(data->field_D, PIXEL_FILL(1));
|
||||
PutWindowTilemap(data->field_D);
|
||||
sub_80125BC(data->field_D);
|
||||
@ -3013,7 +3006,7 @@ void sub_8014F48(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_8018884(gUnknown_082EFC3C);
|
||||
AddTextPrinterToWindow1(gUnknown_082EFC3C);
|
||||
sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]);
|
||||
data->state = 5;
|
||||
break;
|
||||
@ -3032,7 +3025,7 @@ void sub_8014F48(u8 taskId)
|
||||
data->state = 8;
|
||||
break;
|
||||
case 5:
|
||||
sub_8018884(gUnknown_082EDDF4);
|
||||
AddTextPrinterToWindow1(gUnknown_082EDDF4);
|
||||
sub_8011A64(0, 0);
|
||||
break;
|
||||
}
|
||||
@ -3050,17 +3043,17 @@ void sub_8014F48(u8 taskId)
|
||||
data->state++;
|
||||
break;
|
||||
case 9:
|
||||
if (mevent_0814257C(&data->textState, gUnknown_082EDF80[sub_8011A74()]))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EDF80[sub_8011A74()]))
|
||||
{
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
DestroyTask(taskId);
|
||||
sub_800EDD4();
|
||||
gSpecialVar_Result = 5;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
sub_800E084();
|
||||
sub_8018884(gText_PleaseStartOver);
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
AddTextPrinterToWindow1(gText_PleaseStartOver);
|
||||
DestroyTask(taskId);
|
||||
sub_800EDD4();
|
||||
gSpecialVar_Result = 5;
|
||||
@ -3076,7 +3069,7 @@ void sub_8014F48(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80152A8(u32 arg0)
|
||||
void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0)
|
||||
{
|
||||
u8 taskId;
|
||||
struct UnkStruct_Group *dataPtr;
|
||||
@ -3109,7 +3102,7 @@ void sub_80152F4(u8 taskId)
|
||||
data->state = 1;
|
||||
break;
|
||||
case 1:
|
||||
sub_8018884(gUnknown_082EFBC8);
|
||||
AddTextPrinterToWindow1(gUnknown_082EFBC8);
|
||||
data->state = 2;
|
||||
break;
|
||||
case 2:
|
||||
@ -3120,10 +3113,10 @@ void sub_80152F4(u8 taskId)
|
||||
if (data->field_13 != 0)
|
||||
{
|
||||
winTemplate = gUnknown_082F0174;
|
||||
winTemplate.baseBlock = sub_8019930();
|
||||
winTemplate.baseBlock = GetMysteryGiftBaseBlock();
|
||||
data->listWindowId = AddWindow(&winTemplate);
|
||||
|
||||
sub_8018784(data->listWindowId);
|
||||
MG_DrawTextBorder(data->listWindowId);
|
||||
gMultiuseListMenuTemplate = gUnknown_082F0204;
|
||||
gMultiuseListMenuTemplate.windowId = data->listWindowId;
|
||||
data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
|
||||
@ -3178,7 +3171,7 @@ void sub_80152F4(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_8018884(gUnknown_082EFC90);
|
||||
AddTextPrinterToWindow1(gUnknown_082EFC90);
|
||||
sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]);
|
||||
data->state = 5;
|
||||
break;
|
||||
@ -3197,7 +3190,7 @@ void sub_80152F4(u8 taskId)
|
||||
data->state = 8;
|
||||
break;
|
||||
case 5:
|
||||
sub_8018884(gUnknown_082EDEC4);
|
||||
AddTextPrinterToWindow1(gUnknown_082EDEC4);
|
||||
sub_8011A64(0, 0);
|
||||
break;
|
||||
}
|
||||
@ -3218,27 +3211,27 @@ void sub_80152F4(u8 taskId)
|
||||
data->state++;
|
||||
break;
|
||||
case 9:
|
||||
if (mevent_0814257C(&data->textState, gUnknown_082EDF04))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EDF04))
|
||||
{
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
DestroyTask(taskId);
|
||||
sub_800EDD4();
|
||||
gSpecialVar_Result = 5;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (mevent_0814257C(&data->textState, gText_WirelessSearchCanceled))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_WirelessSearchCanceled))
|
||||
{
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
DestroyTask(taskId);
|
||||
sub_800EDD4();
|
||||
gSpecialVar_Result = 5;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
if (mevent_0814257C(&data->textState, gUnknown_082EFD58[data->field_12]))
|
||||
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EFD58[data->field_12]))
|
||||
{
|
||||
sub_800E084();
|
||||
DestroyWirelessStatusIndicatorSprite();
|
||||
DestroyTask(taskId);
|
||||
sub_800EDD4();
|
||||
gSpecialVar_Result = 5;
|
||||
@ -4513,7 +4506,7 @@ s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTe
|
||||
{
|
||||
case 0:
|
||||
winTemplateCopy = *winTemplate;
|
||||
r1 = sub_81DB41C(menuTemplate);
|
||||
r1 = Intl_GetListMenuWidth(menuTemplate);
|
||||
if (winTemplateCopy.width > r1)
|
||||
{
|
||||
winTemplateCopy.width = r1;
|
||||
|
631
src/union_room_battle.c
Normal file
631
src/union_room_battle.c
Normal file
@ -0,0 +1,631 @@
|
||||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "main.h"
|
||||
#include "bg.h"
|
||||
#include "palette.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "alloc.h"
|
||||
#include "menu.h"
|
||||
#include "window.h"
|
||||
#include "text_window.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "m4a.h"
|
||||
#include "dynamic_placeholder_text_util.h"
|
||||
#include "overworld.h"
|
||||
#include "strings.h"
|
||||
#include "string_util.h"
|
||||
#include "international_string_util.h"
|
||||
#include "sound.h"
|
||||
#include "constants/songs.h"
|
||||
#include "party_menu.h"
|
||||
#include "battle_setup.h"
|
||||
#include "link.h"
|
||||
#include "union_room.h"
|
||||
#include "union_room_battle.h"
|
||||
|
||||
struct UnkStruct_3000DAC
|
||||
{
|
||||
/*0x00*/ u32 unk00[4];
|
||||
/*0x10*/ u32 unk10[4];
|
||||
/*0x20*/ u32 unk20[16];
|
||||
/*0x60*/ u8 taskId;
|
||||
/*0x61*/ u8 unk61;
|
||||
/*0x62*/ u8 filler_62[10];
|
||||
};
|
||||
|
||||
struct UnkStruct_2022C6C
|
||||
{
|
||||
s16 a0;
|
||||
};
|
||||
|
||||
IWRAM_DATA struct UnkStruct_3000DAC * gUnknown_03000DAC;
|
||||
IWRAM_DATA bool32 gUnknown_03000DB0;
|
||||
|
||||
EWRAM_DATA struct UnkStruct_2022C6C * gUnknown_02022C6C = NULL;
|
||||
|
||||
void sub_801A43C(void);
|
||||
void sub_801A6C0(u8 taskId);
|
||||
static void sub_801A8B0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 mode);
|
||||
bool32 sub_801AA30(u32 * a0, u32 * a1, u32 * a2, u8 taskId);
|
||||
|
||||
const u16 gWirelessInfoScreenPal[] = INCBIN_U16("graphics/interface/wireless_info_screen.gbapal");
|
||||
const u32 gWirelessInfoScreenGfx[] = INCBIN_U32("graphics/interface/wireless_info_screen.4bpp.lz");
|
||||
const u32 gWirelessInfoScreenTilemap[] = INCBIN_U32("graphics/interface/wireless_info_screen.bin.lz");
|
||||
|
||||
const struct BgTemplate gUnknown_082F0D34[] = {
|
||||
{
|
||||
.bg = 0,
|
||||
.charBaseIndex = 2,
|
||||
.mapBaseIndex = 0x1F,
|
||||
.priority = 0
|
||||
}, {
|
||||
.bg = 1,
|
||||
.charBaseIndex = 0,
|
||||
.mapBaseIndex = 0x08,
|
||||
.priority = 1
|
||||
}
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_082F0D3C[] = {
|
||||
{
|
||||
.bg = 0x00,
|
||||
.tilemapLeft = 0x03,
|
||||
.tilemapTop = 0x00,
|
||||
.width = 0x18,
|
||||
.height = 0x03,
|
||||
.paletteNum = 0x0f,
|
||||
.baseBlock = 0x0001
|
||||
}, {
|
||||
.bg = 0x00,
|
||||
.tilemapLeft = 0x03,
|
||||
.tilemapTop = 0x04,
|
||||
.width = 0x15,
|
||||
.height = 0x0f,
|
||||
.paletteNum = 0x0f,
|
||||
.baseBlock = 0x0049
|
||||
}, {
|
||||
.bg = 0x00,
|
||||
.tilemapLeft = 0x18,
|
||||
.tilemapTop = 0x04,
|
||||
.width = 0x03,
|
||||
.height = 0x0f,
|
||||
.paletteNum = 0x0f,
|
||||
.baseBlock = 0x0184
|
||||
},
|
||||
{ 0xFF }
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_082F0D5C[] = {
|
||||
gText_WirelessCommStatus,
|
||||
gText_PeopleTrading,
|
||||
gText_PeopleBattling,
|
||||
gText_PeopleInUnionRoom,
|
||||
gText_PeopleCommunicating
|
||||
};
|
||||
|
||||
const u8 gUnknown_082F0D70[][3] = {
|
||||
{0x01, 0x01, 0x02},
|
||||
{0x02, 0x01, 0x02},
|
||||
{0x03, 0x01, 0x04},
|
||||
{0x04, 0x00, 0x02},
|
||||
{0x06, 0x03, 0x02},
|
||||
{0x07, 0x03, 0x02},
|
||||
{0x09, 0x03, 0x00},
|
||||
{0x0a, 0x03, 0x00},
|
||||
{0x0b, 0x03, 0x00},
|
||||
{0x0c, 0xff, 0x00},
|
||||
{0x0d, 0x00, 0x00},
|
||||
{0x10, 0x03, 0x00},
|
||||
{0x0f, 0x03, 0x00},
|
||||
{0x40, 0x02, 0x01},
|
||||
{0x41, 0x02, 0x02},
|
||||
{0x44, 0x02, 0x02},
|
||||
{0x45, 0x02, 0x00},
|
||||
{0x48, 0x02, 0x02},
|
||||
{0x54, 0x02, 0x01},
|
||||
{0x53, 0x02, 0x02},
|
||||
{0x51, 0x02, 0x01},
|
||||
{0x52, 0x02, 0x01},
|
||||
{0x15, 0x03, 0x02},
|
||||
{0x16, 0x03, 0x02},
|
||||
{0x17, 0x03, 0x00},
|
||||
{0x18, 0x03, 0x00},
|
||||
{0x19, 0x03, 0x00},
|
||||
{0x1a, 0x03, 0x00},
|
||||
{0x1b, 0x03, 0x00},
|
||||
{0x1c, 0x01, 0x02},
|
||||
{0x0e, 0x01, 0x02}
|
||||
};
|
||||
|
||||
const struct BgTemplate gUnknown_082F0DD0[] = {
|
||||
{
|
||||
.bg = 0,
|
||||
.charBaseIndex = 3,
|
||||
.mapBaseIndex = 31
|
||||
}
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_082F0DD4[] = {
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 3,
|
||||
.tilemapTop = 15,
|
||||
.width = 24,
|
||||
.height = 4,
|
||||
.paletteNum = 0xE,
|
||||
.baseBlock = 0x014
|
||||
},
|
||||
{ 0xFF }
|
||||
};
|
||||
|
||||
const u8 gUnknown_082F0DE4[] = { 1, 2, 3 };
|
||||
|
||||
void sub_801A3F4(void)
|
||||
{
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
RunTasks();
|
||||
RunTextPrinters();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801A418(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void sub_801A42C(void)
|
||||
{
|
||||
SetMainCallback2(sub_801A43C);
|
||||
}
|
||||
|
||||
void sub_801A43C(void)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0x0000);
|
||||
gUnknown_03000DAC = AllocZeroed(sizeof(struct UnkStruct_3000DAC));
|
||||
SetVBlankCallback(NULL);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_082F0D34, ARRAY_COUNT(gUnknown_082F0D34));
|
||||
SetBgTilemapBuffer(1, Alloc(0x800));
|
||||
SetBgTilemapBuffer(0, Alloc(0x800));
|
||||
DecompressAndLoadBgGfxUsingHeap(1, gWirelessInfoScreenGfx, 0, 0, 0);
|
||||
CopyToBgTilemapBuffer(1, gWirelessInfoScreenTilemap, 0, 0);
|
||||
InitWindows(gUnknown_082F0D3C);
|
||||
DeactivateAllTextPrinters();
|
||||
ResetPaletteFade();
|
||||
ResetSpriteData();
|
||||
ResetTasks();
|
||||
ScanlineEffect_Stop();
|
||||
m4aSoundVSyncOn();
|
||||
SetVBlankCallback(sub_801A418);
|
||||
gUnknown_03000DAC->taskId = CreateTask(sub_801A6C0, 0);
|
||||
gUnknown_03000DAC->unk61 = sub_8013C40();
|
||||
gUnknown_03000DAC->unk10[3] = 1;
|
||||
ChangeBgX(0, 0, 0);
|
||||
ChangeBgY(0, 0, 0);
|
||||
ChangeBgX(1, 0, 0);
|
||||
ChangeBgY(1, 0, 0);
|
||||
LoadPalette(gWirelessInfoScreenPal, 0x00, 0x20);
|
||||
Menu_LoadStdPalAt(0xF0);
|
||||
DynamicPlaceholderTextUtil_Reset();
|
||||
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x0F);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
SetMainCallback2(sub_801A3F4);
|
||||
RunTasks();
|
||||
RunTextPrinters();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
void sub_801A584(void)
|
||||
{
|
||||
s32 i;
|
||||
FreeAllWindowBuffers();
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
Free(GetBgTilemapBuffer(i));
|
||||
}
|
||||
Free(gUnknown_03000DAC);
|
||||
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
|
||||
}
|
||||
|
||||
void sub_801A5BC(s16 * a0, s16 * a1)
|
||||
{
|
||||
if (++(*a0) > 5)
|
||||
{
|
||||
if (++(*a1) == 14)
|
||||
{
|
||||
*a1 = 0;
|
||||
}
|
||||
*a0 = 0;
|
||||
}
|
||||
LoadPalette(gWirelessInfoScreenPal + 16 * (*a1 + 2), 0, 0x10);
|
||||
}
|
||||
|
||||
void sub_801A600(void)
|
||||
{
|
||||
s32 i;
|
||||
FillWindowPixelBuffer(0, 0);
|
||||
FillWindowPixelBuffer(1, 0);
|
||||
FillWindowPixelBuffer(2, 0);
|
||||
sub_801A8B0(0, 1, gUnknown_082F0D5C[0], GetStringCenterAlignXOffset(1, gUnknown_082F0D5C[0], 0xC0), 6, 3);
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
sub_801A8B0(1, 1, gUnknown_082F0D5C[i + 1], 0, 30 * i + 8, 1);
|
||||
}
|
||||
sub_801A8B0(1, 1, gUnknown_082F0D5C[i + 1], 0, 30 * i + 8, 2);
|
||||
PutWindowTilemap(0);
|
||||
CopyWindowToVram(0, 2);
|
||||
PutWindowTilemap(1);
|
||||
CopyWindowToVram(1, 2);
|
||||
}
|
||||
|
||||
void sub_801A6C0(u8 taskId)
|
||||
{
|
||||
s32 i;
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
sub_801A600();
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
|
||||
ShowBg(1);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
ShowBg(0);
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 2:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (sub_801AA30(gUnknown_03000DAC->unk00, gUnknown_03000DAC->unk10, gUnknown_03000DAC->unk20, gUnknown_03000DAC->unk61))
|
||||
{
|
||||
FillWindowPixelBuffer(2, 0);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
ConvertIntToDecimalStringN(gStringVar4, gUnknown_03000DAC->unk00[i], STR_CONV_MODE_RIGHT_ALIGN, 2);
|
||||
if (i != 3)
|
||||
{
|
||||
sub_801A8B0(2, 1, gStringVar4, 12, 30 * i + 8, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_801A8B0(2, 1, gStringVar4, 12, 98, 2);
|
||||
}
|
||||
}
|
||||
PutWindowTilemap(2);
|
||||
CopyWindowToVram(2, 3);
|
||||
}
|
||||
if (({gMain.newKeys & A_BUTTON;}) || ({gMain.newKeys & B_BUTTON;}))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gTasks[gUnknown_03000DAC->unk61].data[15] = 0xFF;
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
sub_801A5BC(&gTasks[taskId].data[7], &gTasks[taskId].data[8]);
|
||||
break;
|
||||
case 4:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 5:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetMainCallback2(sub_801A584);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_801A8B0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 mode)
|
||||
{
|
||||
u8 color[3];
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
color[0] = 0;
|
||||
color[1] = 2;
|
||||
color[2] = 3;
|
||||
break;
|
||||
case 1:
|
||||
color[0] = 0;
|
||||
color[1] = 1;
|
||||
color[2] = 3;
|
||||
break;
|
||||
case 2:
|
||||
color[0] = 0;
|
||||
color[1] = 4;
|
||||
color[2] = 5;
|
||||
break;
|
||||
case 3:
|
||||
color[0] = 0;
|
||||
color[1] = 7;
|
||||
color[2] = 6;
|
||||
break;
|
||||
case 4:
|
||||
color[0] = 0;
|
||||
color[1] = 1;
|
||||
color[2] = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
AddTextPrinterParameterized4(windowId, fontId, x, y, 0, 0, color, -1, str);
|
||||
}
|
||||
|
||||
u32 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1)
|
||||
{
|
||||
s32 i, j, r2;
|
||||
u32 result = a0->unk.field_0.unk_0a_0;
|
||||
|
||||
for (i = 0; i < (unsigned)ARRAY_COUNT(gUnknown_082F0D70); i++)
|
||||
{
|
||||
if (result != gUnknown_082F0D70[i][0])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (a0->field_1A_0 != 1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (gUnknown_082F0D70[i][2] == 0)
|
||||
{
|
||||
r2 = 0;
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
if (a0->unk.field_0.unk_04[j] != 0)
|
||||
{
|
||||
r2++;
|
||||
}
|
||||
}
|
||||
r2++;
|
||||
a1[gUnknown_082F0D70[i][1]] += r2;
|
||||
}
|
||||
else
|
||||
{
|
||||
a1[gUnknown_082F0D70[i][1]] += gUnknown_082F0D70[i][2];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool32 sub_801AA08(u32 * a0, u32 * a1)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (a0[i] != a1[i])
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_801AA30(u32 * a0, u32 * a1, u32 * a2, u8 taskId)
|
||||
{
|
||||
bool32 r8 = FALSE;
|
||||
u32 sp0[4] = {0, 0, 0, 0};
|
||||
struct UnkStruct_x20 ** data = (void *)gTasks[taskId].data;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
u32 r1 = sub_801A960(&(*data)[i], sp0);
|
||||
if (r1 != a2[i])
|
||||
{
|
||||
a2[i] = r1;
|
||||
r8 = TRUE;
|
||||
}
|
||||
}
|
||||
if (sub_801AA08(sp0, a1) == 0)
|
||||
{
|
||||
if (r8 != TRUE)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(a0, sp0, sizeof(sp0));
|
||||
memcpy(a1, sp0, sizeof(sp0));
|
||||
a0[3] = a0[0] + a0[1] + a0[2] + a0[3];
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_801AAD4(void)
|
||||
{
|
||||
s32 i;
|
||||
sub_8014210(10);
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
gEnemyParty[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1];
|
||||
}
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
ZeroMonData(&gPlayerParty[i]);
|
||||
}
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
gPlayerParty[i] = gEnemyParty[i];
|
||||
}
|
||||
IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES);
|
||||
CalculatePlayerPartyCount();
|
||||
gTrainerBattleOpponent_A = 0xC00;
|
||||
SetMainCallback2(CB2_InitBattle);
|
||||
}
|
||||
|
||||
void sub_801AB68(u8 windowId, const u8 * str, u8 x, u8 y, s32 speed)
|
||||
{
|
||||
s32 letterSpacing = 0;
|
||||
s32 lineSpacing = 1;
|
||||
FillWindowPixelBuffer(windowId, (gUnknown_082F0DE4[0] << 4) | gUnknown_082F0DE4[0]);
|
||||
AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, gUnknown_082F0DE4, speed, str);
|
||||
}
|
||||
|
||||
bool32 sub_801ABDC(s16 * state, const u8 * str, s32 speed)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
DrawTextBorderOuter(0, 0x001, 0xD);
|
||||
sub_801AB68(0, str, 0, 1, speed);
|
||||
PutWindowTilemap(0);
|
||||
CopyWindowToVram(0, 3);
|
||||
(*state)++;
|
||||
break;
|
||||
case 1:
|
||||
if (!IsTextPrinterActive(0))
|
||||
{
|
||||
*state = 0;
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_801AC40(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void sub_801AC54(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0x0000);
|
||||
gUnknown_02022C6C = AllocZeroed(4);
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
ResetTasks();
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_082F0DD0, 1);
|
||||
reset_temp_tile_data_buffers();
|
||||
if (!InitWindows(gUnknown_082F0DD4))
|
||||
{
|
||||
return;
|
||||
}
|
||||
DeactivateAllTextPrinters();
|
||||
ClearWindowTilemap(0);
|
||||
FillWindowPixelBuffer(0, 0x00);
|
||||
FillWindowPixelBuffer(0, 0x11);
|
||||
FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF);
|
||||
LoadUserWindowBorderGfx(0, 1, 0xD0);
|
||||
LoadUserWindowBorderGfx_(0, 1, 0xD0);
|
||||
sub_819789C();
|
||||
SetVBlankCallback(sub_801AC40);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 1:
|
||||
if (sub_801ABDC(&gUnknown_02022C6C->a0, gText_CommStandbyAwaitingOtherPlayer, 0))
|
||||
{
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
|
||||
ShowBg(0);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 3:
|
||||
if (!UpdatePaletteFade())
|
||||
{
|
||||
memset(gBlockSendBuffer, 0, 0x20);
|
||||
if (gSelectedOrderFromParty[0] == -gSelectedOrderFromParty[1])
|
||||
{
|
||||
gBlockSendBuffer[0] = 0x52;
|
||||
}
|
||||
else
|
||||
{
|
||||
gBlockSendBuffer[0] = 0x51;
|
||||
}
|
||||
SendBlock(0, gBlockSendBuffer, 0x20);
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (GetBlockReceivedStatus() == 3)
|
||||
{
|
||||
if (gBlockRecvBuffer[0][0] == 0x51 && gBlockRecvBuffer[1][0] == 0x51)
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
gMain.state = 50;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_800AC34();
|
||||
if (gBlockRecvBuffer[GetMultiplayerId()][0] == 0x52)
|
||||
{
|
||||
gMain.state = 6;
|
||||
}
|
||||
else
|
||||
{
|
||||
gMain.state = 8;
|
||||
}
|
||||
}
|
||||
ResetBlockReceivedFlags();
|
||||
}
|
||||
break;
|
||||
case 50:
|
||||
if (!UpdatePaletteFade())
|
||||
{
|
||||
sub_800ADF8();
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 51:
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
SetMainCallback2(sub_801AAD4);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (gReceivedRemoteLinkPlayers == 0)
|
||||
{
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (sub_801ABDC(&gUnknown_02022C6C->a0, gText_RefusedBattle, 1))
|
||||
{
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if (gReceivedRemoteLinkPlayers == 0)
|
||||
{
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (sub_801ABDC(&gUnknown_02022C6C->a0, gText_BattleWasRefused, 1))
|
||||
{
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
break;
|
||||
}
|
||||
RunTasks();
|
||||
RunTextPrinters();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
@ -2074,7 +2074,7 @@ static void sub_801FDDC(u8 left, u8 top, u8 initialCursorPos)
|
||||
PutWindowTilemap(gUnknown_02022C88->unk18);
|
||||
AddTextPrinterParameterized(gUnknown_02022C88->unk18, 1, gText_Yes, 8, 1, TEXT_SPEED_FF, NULL);
|
||||
AddTextPrinterParameterized(gUnknown_02022C88->unk18, 1, gText_No, 8, 17, TEXT_SPEED_FF, NULL);
|
||||
sub_8098858(gUnknown_02022C88->unk18, 1, 13);
|
||||
DrawTextBorderOuter(gUnknown_02022C88->unk18, 1, 13);
|
||||
InitMenuInUpperLeftCornerPlaySoundWhenAPressed(gUnknown_02022C88->unk18, 2, initialCursorPos);
|
||||
}
|
||||
}
|
||||
@ -2140,7 +2140,7 @@ static void sub_801FF18(int arg0, u16 arg1)
|
||||
PutWindowTilemap(windowId);
|
||||
if (gUnknown_082F2D40[arg0].unk4 == 1)
|
||||
{
|
||||
sub_80989E0(windowId, 0xA, 2);
|
||||
DrawTextBorderInner(windowId, 0xA, 2);
|
||||
AddTextPrinterParameterized5(
|
||||
windowId,
|
||||
1,
|
||||
@ -2154,7 +2154,7 @@ static void sub_801FF18(int arg0, u16 arg1)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8098858(windowId, 0xA, 2);
|
||||
DrawTextBorderOuter(windowId, 0xA, 2);
|
||||
AddTextPrinterParameterized5(
|
||||
windowId,
|
||||
1,
|
||||
@ -2316,7 +2316,7 @@ static bool32 sub_8020368(void)
|
||||
static void sub_80203B0(void)
|
||||
{
|
||||
FillWindowPixelBuffer(3, PIXEL_FILL(1));
|
||||
sub_8098858(3, 1, 13);
|
||||
DrawTextBorderOuter(3, 1, 13);
|
||||
PrintTextArray(3, 2, 8, 1, 14, 5, gUnknown_082F2DC8);
|
||||
sub_81983AC(3, 2, 0, 1, 14, 5, sub_801F0B0());
|
||||
PutWindowTilemap(3);
|
||||
|
611
src/union_room_player_avatar.c
Normal file
611
src/union_room_player_avatar.c
Normal file
@ -0,0 +1,611 @@
|
||||
#include "global.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/event_object_movement_constants.h"
|
||||
#include "event_data.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "script.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "fieldmap.h"
|
||||
#include "union_room.h"
|
||||
#include "task.h"
|
||||
|
||||
EWRAM_DATA struct UnkStruct_8019BA8 * gUnknown_02022C64 = NULL;
|
||||
EWRAM_DATA u32 gUnknown_02022C68 = 0;
|
||||
|
||||
static u8 sub_8019DF4(void);
|
||||
static u32 sub_8019F8C(u32 playerIdx, u32 arg1);
|
||||
static void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2);
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082F072C[][10] = {
|
||||
{0x21, 0x2c, 0x1f, 0x23, 0x25, 0x24, 0x41, 0x42},
|
||||
{0x22, 0x28, 0x20, 0x2f, 0x2f, 0x0e, 0x14, 0x2d}
|
||||
};
|
||||
|
||||
static const s16 gUnknown_082F0740[][2] = {
|
||||
{0x4, 0x6},
|
||||
{0xd, 0x8},
|
||||
{0xa, 0x6},
|
||||
{0x1, 0x8},
|
||||
{0xd, 0x4},
|
||||
{0x7, 0x4},
|
||||
{0x1, 0x4},
|
||||
{0x7, 0x8}
|
||||
};
|
||||
|
||||
static const s8 gUnknown_082F0760[][2] = {
|
||||
{ 0, 0},
|
||||
{ 1, 0},
|
||||
{ 0, -1},
|
||||
{-1, 0},
|
||||
{ 0, 1}
|
||||
};
|
||||
|
||||
static const u8 gUnknown_082F076A[] = {
|
||||
0x00, 0x02, 0x01, 0x04, 0x03
|
||||
};
|
||||
|
||||
static const u8 gUnknown_082F076F[] = {
|
||||
0x01, 0x03, 0x01, 0x04, 0x02
|
||||
};
|
||||
|
||||
static const u8 gUnknown_082F0774[] = {
|
||||
0x09, 0x08, 0x07, 0x02, 0x06, 0x05, 0x04, 0x03,
|
||||
0xbf, 0x02, 0xc0, 0x02, 0xc1, 0x02, 0xc2, 0x02,
|
||||
0xc3, 0x02, 0xc4, 0x02, 0xc5, 0x02, 0xc6, 0x02
|
||||
};
|
||||
|
||||
static const u8 gUnknown_082F078C[2] = {
|
||||
MOVEMENT_ACTION_FLY_UP,
|
||||
MOVEMENT_ACTION_STEP_END
|
||||
};
|
||||
|
||||
static const u8 gUnknown_082F078E[2] = {
|
||||
MOVEMENT_ACTION_FLY_DOWN,
|
||||
MOVEMENT_ACTION_STEP_END
|
||||
};
|
||||
|
||||
static bool32 is_walking_or_running(void)
|
||||
{
|
||||
if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static u8 sub_8019978(u32 a0, u32 a1)
|
||||
{
|
||||
return gUnknown_082F072C[a0][a1 % 8];
|
||||
}
|
||||
|
||||
static void sub_8019990(u32 a0, u32 a1, s32 * a2, s32 * a3)
|
||||
{
|
||||
*a2 = gUnknown_082F0740[a0][0] + gUnknown_082F0760[a1][0] + 7;
|
||||
*a3 = gUnknown_082F0740[a0][1] + gUnknown_082F0760[a1][1] + 7;
|
||||
}
|
||||
|
||||
static bool32 sub_80199E0(u32 a0, u32 a1, s32 a2, s32 a3)
|
||||
{
|
||||
if (gUnknown_082F0740[a0][0] + gUnknown_082F0760[a1][0] + 7 != a2)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else if (gUnknown_082F0740[a0][1] + gUnknown_082F0760[a1][1] + 7 != a3)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
static bool32 IsUnionRoomPlayerHidden(u32 player_idx)
|
||||
{
|
||||
return FlagGet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx);
|
||||
}
|
||||
|
||||
static void HideUnionRoomPlayer(u32 player_idx)
|
||||
{
|
||||
FlagSet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx);
|
||||
}
|
||||
|
||||
static void ShowUnionRoomPlayer(u32 player_idx)
|
||||
{
|
||||
FlagClear(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx);
|
||||
}
|
||||
|
||||
static void SetUnionRoomPlayerGfx(u32 playerIdx, u32 gfxId)
|
||||
{
|
||||
VarSet(VAR_OBJ_GFX_ID_0 + playerIdx, gfxId);
|
||||
}
|
||||
|
||||
static void CreateUnionRoomPlayerEventObject(u32 playerIdx)
|
||||
{
|
||||
show_sprite(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
}
|
||||
|
||||
static void RemoveUnionRoomPlayerEventObject(u32 playerIdx)
|
||||
{
|
||||
RemoveEventObjectByLocalIdAndMap(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
}
|
||||
|
||||
static bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement)
|
||||
{
|
||||
u8 objectId;
|
||||
struct EventObject * object;
|
||||
if (TryGetEventObjectIdByLocalIdAndMap(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
object = &gEventObjects[objectId];
|
||||
if (EventObjectIsMovementOverridden(object))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (EventObjectSetHeldMovement(object, *movement))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool32 sub_8019B3C(u32 playerIdx)
|
||||
{
|
||||
u8 objectId;
|
||||
struct EventObject * object;
|
||||
if (TryGetEventObjectIdByLocalIdAndMap(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
object = &gEventObjects[objectId];
|
||||
if (!EventObjectClearHeldMovementIfFinished(object))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (!ScriptContext2_IsEnabled())
|
||||
{
|
||||
UnfreezeEventObject(object);
|
||||
}
|
||||
else
|
||||
{
|
||||
FreezeEventObject(object);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u8 sub_8019BA8(struct UnkStruct_8019BA8 * ptr)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gUnknown_02022C68 = 0;
|
||||
gUnknown_02022C64 = ptr;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
ptr[i].field_0 = 0;
|
||||
ptr[i].field_1 = 0;
|
||||
ptr[i].field_2 = 0;
|
||||
ptr[i].field_3 = 0;
|
||||
}
|
||||
return sub_8019DF4();
|
||||
}
|
||||
|
||||
static bool32 sub_8019BDC(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr)
|
||||
{
|
||||
switch (*a0)
|
||||
{
|
||||
case 0:
|
||||
if (SetUnionRoomPlayerEnterExitMovement(playerIdx, gUnknown_082F078C) == TRUE)
|
||||
{
|
||||
HideUnionRoomPlayer(playerIdx);
|
||||
(*a0)++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (sub_8019B3C(playerIdx))
|
||||
{
|
||||
RemoveUnionRoomPlayerEventObject(playerIdx);
|
||||
HideUnionRoomPlayer(playerIdx);
|
||||
*a0 = 0;
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool32 sub_8019C38(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr)
|
||||
{
|
||||
s16 x, y;
|
||||
|
||||
switch (*a0)
|
||||
{
|
||||
case 0:
|
||||
if (!is_walking_or_running())
|
||||
{
|
||||
break;
|
||||
}
|
||||
PlayerGetDestCoords(&x, &y);
|
||||
if (sub_80199E0(playerIdx, 0, x, y) == 1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
player_get_pos_including_state_based_drift(&x, &y);
|
||||
if (sub_80199E0(playerIdx, 0, x, y) == 1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
SetUnionRoomPlayerGfx(playerIdx, ptr->field_1);
|
||||
CreateUnionRoomPlayerEventObject(playerIdx);
|
||||
ShowUnionRoomPlayer(playerIdx);
|
||||
(*a0)++;
|
||||
// fallthrough
|
||||
case 3: // incorrect?
|
||||
if (SetUnionRoomPlayerEnterExitMovement(playerIdx, gUnknown_082F078E) == 1)
|
||||
{
|
||||
(*a0)++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (sub_8019B3C(playerIdx))
|
||||
{
|
||||
*a0 = 0;
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool32 sub_8019CF0(u32 playerIdx, u32 a1, u32 a2)
|
||||
{
|
||||
struct UnkStruct_8019BA8 * ptr = &gUnknown_02022C64[playerIdx];
|
||||
ptr->field_3 = 1;
|
||||
ptr->field_1 = sub_8019978(a1, a2);
|
||||
if (ptr->field_0 == 0)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static bool32 sub_8019D20(u32 playerIdx)
|
||||
{
|
||||
struct UnkStruct_8019BA8 * ptr = &gUnknown_02022C64[playerIdx];
|
||||
ptr->field_3 = 2;
|
||||
if (ptr->field_0 == 1)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8019D44(u32 playerIdx, struct UnkStruct_8019BA8 * ptr)
|
||||
{
|
||||
switch (ptr->field_0)
|
||||
{
|
||||
case 0:
|
||||
if (ptr->field_3 == 1)
|
||||
{
|
||||
ptr->field_0 = 2;
|
||||
ptr->field_2 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
// fallthrough
|
||||
case 2:
|
||||
if (!sub_8019F8C(playerIdx, 0) && ptr->field_3 == 2)
|
||||
{
|
||||
ptr->field_0 = 0;
|
||||
ptr->field_2 = 0;
|
||||
RemoveUnionRoomPlayerEventObject(playerIdx);
|
||||
HideUnionRoomPlayer(playerIdx);
|
||||
}
|
||||
else if (sub_8019C38(&ptr->field_2, playerIdx, ptr) == 1)
|
||||
{
|
||||
ptr->field_0 = 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (ptr->field_3 == 2)
|
||||
{
|
||||
ptr->field_0 = 3;
|
||||
ptr->field_2 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
// fallthrough
|
||||
case 3:
|
||||
if (sub_8019BDC(&ptr->field_2, playerIdx, ptr) == 1)
|
||||
{
|
||||
ptr->field_0 = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ptr->field_3 = 0;
|
||||
}
|
||||
|
||||
static void sub_8019DD0(u8 taskId)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
sub_8019D44(i, &gUnknown_02022C64[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static u8 sub_8019DF4(void)
|
||||
{
|
||||
if (FuncIsActiveTask(sub_8019DD0) == 1)
|
||||
{
|
||||
return NUM_TASKS;
|
||||
}
|
||||
else
|
||||
{
|
||||
return CreateTask(sub_8019DD0, 5);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8019E20(void)
|
||||
{
|
||||
u8 taskId = FindTaskIdByFunc(sub_8019DD0);
|
||||
if (taskId < NUM_TASKS)
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8019E3C(void)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
if (!IsUnionRoomPlayerHidden(i))
|
||||
{
|
||||
RemoveUnionRoomPlayerEventObject(i);
|
||||
HideUnionRoomPlayer(i);
|
||||
}
|
||||
}
|
||||
gUnknown_02022C64 = NULL;
|
||||
sub_8019E20();
|
||||
}
|
||||
|
||||
void sub_8019E70(u8 * sp8, s32 r9)
|
||||
{
|
||||
s32 r7;
|
||||
|
||||
for (r7 = 0; r7 < 5; r7++)
|
||||
{
|
||||
s32 r5 = 5 * r9 + r7;
|
||||
sp8[r5] = sprite_new(0x41, r5 - 0x38, gUnknown_082F0740[r9][0] + gUnknown_082F0760[r7][0], gUnknown_082F0740[r9][1] + gUnknown_082F0760[r7][1], 3, 1);
|
||||
sub_8097C44(r5 - 0x38, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8019F04(u8 * r5)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < 40; i++)
|
||||
{
|
||||
DestroySprite(&gSprites[r5[i]]);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8019F2C(void)
|
||||
{
|
||||
s32 i, j, x, y;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
for (j = 0; j < 5; j++)
|
||||
{
|
||||
sub_8019990(i, j, &x, &y);
|
||||
sub_8088B94(x, y, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static u8 sub_8019F64(u32 r1, u32 unused, struct UnkLinkRfuStruct_02022B14 * r2)
|
||||
{
|
||||
if (r1 != 0)
|
||||
{
|
||||
return gUnknown_082F076F[r1];
|
||||
}
|
||||
else if (r2->unk_0a_0 == 0x45)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
|
||||
static u32 sub_8019F8C(u32 a0, u32 a1)
|
||||
{
|
||||
return sub_8097C8C(5 * a0 + a1 - 0x38);
|
||||
}
|
||||
|
||||
static void sub_8019FA4(u32 r5, u32 r6, u8 r8, struct UnkLinkRfuStruct_02022B14 * r9)
|
||||
{
|
||||
s32 x, y;
|
||||
s32 r7 = 5 * r5 + r6;
|
||||
if (sub_8019F8C(r5, r6) == 1)
|
||||
{
|
||||
sub_8097C44(r7 - 0x38, FALSE);
|
||||
sub_8097CC4(r7 - 0x38, 1);
|
||||
}
|
||||
sub_8097BB4(r7 - 0x38, r8);
|
||||
sub_801A3B0(r6, r5, sub_8019F64(r6, r5, r9));
|
||||
sub_8019990(r5, r6, &x, &y);
|
||||
sub_8088B94(x, y, 1);
|
||||
}
|
||||
|
||||
static void sub_801A02C(u32 a0, u32 a1)
|
||||
{
|
||||
s32 x, y;
|
||||
sub_8097CC4(5 * a0 + a1 - 0x38, 2);
|
||||
sub_8019990(a0, a1, &x, &y);
|
||||
sub_8088B94(x, y, 0);
|
||||
}
|
||||
|
||||
static void sub_801A064(u32 r7, struct UnkLinkRfuStruct_02022B14 * r8)
|
||||
{
|
||||
s16 x, y, x2, y2;
|
||||
s32 i;
|
||||
|
||||
PlayerGetDestCoords(&x, &y);
|
||||
player_get_pos_including_state_based_drift(&x2, &y2);
|
||||
if (sub_8097C8C(5 * r7 - 0x38) == 1)
|
||||
{
|
||||
if (sub_80199E0(r7, 0, x, y) == 1 || sub_80199E0(r7, 0, x2, y2) == 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
sub_8019FA4(r7, 0, sub_8019978(r8->playerGender, r8->unk_00.playerTrainerId[0]), r8);
|
||||
}
|
||||
for (i = 1; i < 5; i++)
|
||||
{
|
||||
if (r8->unk_04[i - 1] == 0)
|
||||
{
|
||||
sub_801A02C(r7, i);
|
||||
}
|
||||
else if (sub_80199E0(r7, i, x, y) == 0 && sub_80199E0(r7, i, x2, y2) == 0)
|
||||
{
|
||||
sub_8019FA4(r7, i, sub_8019978((r8->unk_04[i - 1] >> 3) & 1, r8->unk_04[i - 1] & 7), r8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_801A16C(u32 r5, struct UnkLinkRfuStruct_02022B14 * r4)
|
||||
{
|
||||
u32 i;
|
||||
switch (r4->unk_0a_0)
|
||||
{
|
||||
case 0x40:
|
||||
case 0x54:
|
||||
sub_8019CF0(r5, r4->playerGender, r4->unk_00.playerTrainerId[0]);
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
sub_801A02C(r5, i);
|
||||
}
|
||||
break;
|
||||
case 0x41:
|
||||
case 0x44:
|
||||
case 0x45:
|
||||
case 0x48:
|
||||
case 0x51:
|
||||
case 0x52:
|
||||
case 0x53:
|
||||
sub_8019D20(r5);
|
||||
sub_801A064(r5, r4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_801A214(u32 r5, struct UnkLinkRfuStruct_02022B14 * unused)
|
||||
{
|
||||
s32 i;
|
||||
sub_8019D20(r5);
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
sub_801A02C(r5, i);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_801A234(struct UnkStruct_URoom *r0)
|
||||
{
|
||||
s32 i;
|
||||
struct UnkStruct_x20 * r4;
|
||||
gUnknown_02022C68 = 0;
|
||||
for (i = 0, r4 = r0->field_0->arr; i < 8; i++)
|
||||
{
|
||||
if (r4[i].field_1A_0 == 1)
|
||||
{
|
||||
sub_801A16C(i, &r4[i].unk.field_0);
|
||||
}
|
||||
else if (r4[i].field_1A_0 == 2)
|
||||
{
|
||||
sub_801A214(i, &r4[i].unk.field_0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801A274(struct UnkStruct_URoom *unused)
|
||||
{
|
||||
gUnknown_02022C68 = 300;
|
||||
}
|
||||
|
||||
void sub_801A284(struct UnkStruct_URoom *r2)
|
||||
{
|
||||
if (++gUnknown_02022C68 > 300)
|
||||
{
|
||||
sub_801A234(r2);
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3)
|
||||
{
|
||||
s16 x, y;
|
||||
s32 i, j;
|
||||
struct UnkStruct_x20 * r4;
|
||||
if (!is_walking_or_running())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
|
||||
for (i = 0, r4 = arg0->arr; i < 8; i++)
|
||||
{
|
||||
for (j = 0; j < 5; j++)
|
||||
{
|
||||
s32 r3 = 5 * i + j;
|
||||
if (x != gUnknown_082F0740[i][0] + gUnknown_082F0760[j][0] + 7)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (y != gUnknown_082F0740[i][1] + gUnknown_082F0760[j][1] + 7)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (sub_8097C8C(r3 - 0x38) != 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (sub_8097D9C(r3 - 0x38) != 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (r4[i].field_1A_0 != 1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
sub_801A3B0(j, i, gUnknown_082F076A[GetPlayerFacingDirection()]);
|
||||
*arg1 = j;
|
||||
*arg2 = i;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2)
|
||||
{
|
||||
sub_8097B78(5 * arg1 - 0x38 + arg0, arg2);
|
||||
}
|
||||
|
||||
void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2)
|
||||
{
|
||||
return sub_801A3B0(arg0, arg1, sub_8019F64(arg0, arg1, &arg2->arr[arg1].unk.field_0));
|
||||
}
|
@ -617,7 +617,7 @@ void sub_8166D44(void)
|
||||
StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion);
|
||||
StringCopy(gStringVar4, stringBuffer);
|
||||
FillWindowPixelBuffer(2, 17);
|
||||
sub_8098858(2, 151, 14);
|
||||
DrawTextBorderOuter(2, 151, 14);
|
||||
AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL);
|
||||
PutWindowTilemap(2);
|
||||
CopyWindowToVram(2, 3);
|
||||
@ -645,7 +645,7 @@ s8 sub_8166DE4(void)
|
||||
|
||||
void sub_8166E24(void)
|
||||
{
|
||||
sub_8098858(2, 151, 14);
|
||||
DrawTextBorderOuter(2, 151, 14);
|
||||
FillWindowPixelBuffer(2, 17);
|
||||
|
||||
for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5; gUnknown_0203BC90->field_53++)
|
||||
@ -693,7 +693,7 @@ bool8 sub_8166EDC(void)
|
||||
void sub_8166F50(void)
|
||||
{
|
||||
FillWindowPixelBuffer(2, 17);
|
||||
sub_8098858(2, 151, 14);
|
||||
DrawTextBorderOuter(2, 151, 14);
|
||||
AddTextPrinterParameterized(2, 1, gText_WontEatAnymore, 0, 1, 0, NULL);
|
||||
PutWindowTilemap(2);
|
||||
CopyWindowToVram(2, 3);
|
||||
|
@ -8,6 +8,7 @@
|
||||
.include "src/link.o"
|
||||
.include "src/link_rfu.o"
|
||||
.include "src/union_room.o"
|
||||
.include "src/union_room_battle.o"
|
||||
.include "src/rtc.o"
|
||||
.include "src/main_menu.o"
|
||||
.include "src/rom_8034C54.o"
|
||||
|
@ -8,32 +8,16 @@
|
||||
.include "src/link_rfu.o"
|
||||
.include "src/union_room.o"
|
||||
.include "src/mystery_gift.o"
|
||||
|
||||
.align 3
|
||||
gUnknown_02022C60: @ 2022C60
|
||||
.space 0x4
|
||||
|
||||
gUnknown_02022C64: @ 2022C64
|
||||
.space 0x4
|
||||
|
||||
gUnknown_02022C68: @ 2022C68
|
||||
.space 0x4
|
||||
|
||||
gUnknown_02022C6C: @ 2022C6C
|
||||
.space 0x4
|
||||
|
||||
.include "src/union_room_player_avatar.o"
|
||||
.include "src/union_room_battle.o"
|
||||
.include "src/mevent2.o"
|
||||
.include "src/mevent_801BAAC.o"
|
||||
|
||||
gUnknown_02022C74: @ 2022C74
|
||||
.space 0x4
|
||||
|
||||
gUnknown_02022C78: @ 2022C78
|
||||
.space 0x4
|
||||
|
||||
@ mevent_server
|
||||
gUnknown_02022C7C: @ 2022C7C
|
||||
.space 0x4
|
||||
|
||||
gUnknown_02022C80: @ 2022C80
|
||||
s_mevent_srv_ish_ptr: @ 2022C80
|
||||
.space 0x4
|
||||
|
||||
gUnknown_02022C84: @ 2022C84
|
||||
@ -148,11 +132,7 @@ gUnknown_02022D00: @ 2022D00
|
||||
.include "src/decoration.o"
|
||||
.include "src/slot_machine.o"
|
||||
.include "src/battle_ai_script_commands.o"
|
||||
|
||||
.align 2
|
||||
gPlayerFacingPosition: @ 203AB40
|
||||
.space 0x8
|
||||
|
||||
.include "src/fldeff_misc.o"
|
||||
.include "src/pokeblock.o"
|
||||
.include "src/field_specials.o"
|
||||
.include "src/battle_records.o"
|
||||
|
@ -160,7 +160,7 @@ int main(int argc, char *argv[])
|
||||
// get filename
|
||||
for (arg=1; arg<argc; arg++)
|
||||
{
|
||||
if ((ARGV[0] != '-')) { argfile=ARGV; }
|
||||
if (ARGV[0] != '-') { argfile=ARGV; }
|
||||
if (strncmp("--silent", &ARGV[0], 7) == 0) { silent = 1; }
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user