diff options
author | DizzyEggg <jajkodizzy@wp.pl> | 2018-06-03 09:37:01 +0200 |
---|---|---|
committer | DizzyEggg <jajkodizzy@wp.pl> | 2018-06-03 09:37:01 +0200 |
commit | e95b1156d22e2652b6d13ea1af123aed7ab5221c (patch) | |
tree | a68ef7c837785472831c444472b46b0fcac1d8a8 | |
parent | 83cf2f50dfc906f7f2014570b37863d98fe89bc7 (diff) |
more progress
-rw-r--r-- | asm/rom_8011DC0.s | 2224 | ||||
-rw-r--r-- | data/scripts/contest_hall.inc | 2 | ||||
-rw-r--r-- | data/scripts/maps/LilycoveCity_ContestLobby.inc | 2 | ||||
-rw-r--r-- | data/scripts/pokeblocks.inc | 326 | ||||
-rw-r--r-- | include/librfu.h | 2 | ||||
-rw-r--r-- | include/link_rfu.h | 16 | ||||
-rw-r--r-- | src/link_rfu.c | 12 | ||||
-rw-r--r-- | src/rom_8011DC0.c | 933 |
8 files changed, 1103 insertions, 2414 deletions
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s index 2bc67c5c3..97b27bab9 100644 --- a/asm/rom_8011DC0.s +++ b/asm/rom_8011DC0.s @@ -6,2206 +6,6 @@ .text - thumb_func_start sub_8012780 -sub_8012780: @ 8012780 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_02022C30 - ldr r6, [r0] - ldrb r0, [r6, 0xC] - cmp r0, 0x1E - bls _0801279A - bl _08012F50 -_0801279A: - lsls r0, 2 - ldr r1, =_080127AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080127AC: - .4byte _08012828 - .4byte _08012F50 - .4byte _08012F50 - .4byte _080128A0 - .4byte _080129C8 - .4byte _08012A50 - .4byte _08012A6C - .4byte _08012B8C - .4byte _08012F50 - .4byte _08012AFC - .4byte _08012B14 - .4byte _08012BA8 - .4byte _08012C5C - .4byte _08012D5A - .4byte _08012D78 - .4byte _08012D8A - .4byte _08012DA8 - .4byte _08012E62 - .4byte _08012E78 - .4byte _08012DF2 - .4byte _08012E10 - .4byte _08012ED0 - .4byte _08012EFC - .4byte _08012ED0 - .4byte _08012EE6 - .4byte _08012F50 - .4byte _08012F14 - .4byte _08012F50 - .4byte _08012F50 - .4byte _08012B54 - .4byte _08012EB6 -_08012828: - ldr r0, =gSpecialVar_0x8004 - ldrh r2, [r0] - adds r3, r0, 0 - cmp r2, 0x14 - bne _08012848 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _08012848 - adds r0, r2, 0x1 - strh r0, [r3] -_08012848: - ldr r2, =gUnknown_02022C2C - ldr r1, =gUnknown_082F00C4 - ldrh r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - strb r0, [r2] - ldr r4, =gUnknown_02022C2D - ldrh r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsrs r0, 8 - strb r0, [r4] - ldrb r0, [r2] - movs r1, 0 - movs r2, 0 - bl sub_8010F84 - bl sub_800B488 - bl OpenLink - ldrb r1, [r4] - movs r0, 0xF - ands r0, r1 - bl sub_8011C10 - movs r0, 0x3 - strb r0, [r6, 0xC] - b _08012F50 - .pool -_080128A0: - movs r0, 0x70 - bl AllocZeroed - str r0, [r6, 0x4] - movs r0, 0xA0 - bl AllocZeroed - str r0, [r6] - movs r0, 0xA0 - bl AllocZeroed - str r0, [r6, 0x8] - ldr r0, [r6, 0x4] - movs r1, 0x4 - bl sub_80175EC - ldr r0, [r6] - movs r1, 0x5 - bl sub_8017580 - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x10 - bl sub_800DF90 - ldr r1, [r6] - movs r3, 0 - movs r0, 0 - strh r0, [r1, 0x18] - ldr r2, [r6] - ldrb r1, [r2, 0x1A] - subs r0, 0x4 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1A] - ldr r2, [r6] - ldrb r1, [r2, 0x1A] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1A] - ldr r0, [r6] - strb r3, [r0, 0x1B] - ldr r0, [r6, 0x4] - movs r1, 0xFF - bl sub_8016FC0 - strb r0, [r6, 0x17] - ldr r0, =gUnknown_082F00BC - bl AddWindow - strb r0, [r6, 0x10] - ldr r0, =gUnknown_02022C2D - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - cmp r1, 0x2 - blt _08012938 - cmp r1, 0x4 - ble _08012928 - cmp r1, 0x5 - beq _08012930 - b _08012938 - .pool -_08012928: - ldr r0, =gUnknown_082F011C - b _08012932 - .pool -_08012930: - ldr r0, =gUnknown_082F0124 -_08012932: - bl AddWindow - strb r0, [r6, 0xF] -_08012938: - ldr r0, =gUnknown_082F012C - bl AddWindow - strb r0, [r6, 0x11] - ldrb r0, [r6, 0x10] - movs r1, 0x22 - bl FillWindowPixelBuffer - ldrb r0, [r6, 0x10] - ldr r2, =gUnknown_082EDBC4 - movs r3, 0x1 - mov r8, r3 - str r3, [sp] - movs r4, 0x4 - str r4, [sp, 0x4] - movs r1, 0 - movs r3, 0x8 - bl sub_80173E0 - ldrb r0, [r6, 0x10] - bl PutWindowTilemap - ldrb r0, [r6, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r6, 0xF] - movs r1, 0 - bl NewMenuHelpers_DrawStdWindowFrame - ldr r0, =gMultiuseListMenuTemplate - adds r2, r0, 0 - ldr r1, =gUnknown_082F015C - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldrb r1, [r6, 0xF] - strb r1, [r0, 0x10] - movs r1, 0 - movs r2, 0 - bl ListMenuInit - strb r0, [r6, 0x12] - ldrb r0, [r6, 0x11] - movs r1, 0 - bl NewMenuHelpers_DrawStdWindowFrame - ldrb r0, [r6, 0x11] - bl PutWindowTilemap - ldrb r0, [r6, 0x11] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl CopyBgTilemapBufferToVram - mov r5, r8 - strb r5, [r6, 0x13] - strb r4, [r6, 0xC] - b _08012F50 - .pool -_080129C8: - ldr r0, =gStringVar1 - ldr r2, =gUnknown_082F0048 - ldr r4, =gUnknown_02022C2C - ldrb r1, [r4] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r0, =gUnknown_02022C2D - ldrb r2, [r0] - lsrs r0, r2, 4 - cmp r0, 0 - beq _08012A2C - ldrb r1, [r6, 0x13] - subs r0, 0x1 - cmp r1, r0 - ble _08012A18 - movs r0, 0xF - ands r0, r2 - cmp r0, 0 - beq _08012A18 - ldr r0, =gStringVar4 - ldr r1, =gText_AwaitingLink - bl StringExpandPlaceholders - b _08012A34 - .pool -_08012A18: - ldr r0, =gStringVar4 - ldr r1, =gText_AwaitingCommunication - bl StringExpandPlaceholders - b _08012A34 - .pool -_08012A2C: - ldr r0, =gStringVar4 - ldrb r1, [r4] - bl sub_801262C -_08012A34: - ldrb r0, [r6, 0x11] - ldr r1, =gUnknown_02022C2D - ldrb r1, [r1] - ldrb r2, [r6, 0x13] - bl sub_80124EC - movs r0, 0x5 - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012A50: - adds r0, r6, 0 - adds r0, 0xD - ldr r1, =gStringVar4 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _08012A62 - b _08012F50 -_08012A62: - movs r0, 0x6 - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012A6C: - adds r0, r6, 0 - movs r1, 0x7 - movs r2, 0xA - bl sub_801320C - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08012AA8 - ldrb r0, [r6, 0x13] - cmp r0, 0x1 - bne _08012A90 - movs r0, 0x17 - b _08012AA6 - .pool -_08012A90: - ldr r0, =gUnknown_02022C2D - ldrb r1, [r0] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - beq _08012AA4 - movs r0, 0x1E - b _08012AA6 - .pool -_08012AA4: - movs r0, 0x13 -_08012AA6: - strb r0, [r6, 0xC] -_08012AA8: - ldr r0, =gUnknown_02022C2D - ldrb r2, [r0] - lsrs r0, r2, 4 - cmp r0, 0 - beq _08012ADE - ldrb r1, [r6, 0x13] - subs r0, 0x1 - cmp r1, r0 - ble _08012ADE - movs r4, 0xF - adds r0, r4, 0 - ands r0, r2 - cmp r0, 0 - beq _08012ADE - bl sub_8012240 - cmp r0, 0 - beq _08012ADE - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08012ADE - strb r4, [r6, 0xC] - bl sub_800EF38 -_08012ADE: - ldrb r0, [r6, 0xC] - cmp r0, 0x6 - beq _08012AE6 - b _08012F50 -_08012AE6: - bl sub_80105EC - cmp r0, 0 - bne _08012AF0 - b _08012F50 -_08012AF0: - b _08012C56 - .pool -_08012AFC: - bl sub_80105EC - cmp r0, 0 - beq _08012B06 - b _08012F50 -_08012B06: - movs r0, 0x6 - strb r0, [r6, 0xC] - ldr r0, [r6] - bl sub_8013398 - strb r0, [r6, 0x13] - b _08012F50 -_08012B14: - movs r3, 0 - ldr r0, =gUnknown_02022C2C - ldrb r1, [r0] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x2 - bne _08012B24 - movs r3, 0x1 -_08012B24: - adds r0, r6, 0 - adds r0, 0xD - ldr r2, =gUnknown_082EDDC4 - lsls r1, r3, 2 - adds r1, r2 - ldr r1, [r1] - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _08012B3C - b _08012F50 -_08012B3C: - ldr r0, [r6] - bl sub_8013398 - strb r0, [r6, 0x13] - ldrb r0, [r6, 0x12] - bl sub_81AE70C - b _08012E5C - .pool -_08012B54: - ldr r0, =gUnknown_02022C2D - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - movs r0, 0x2 - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r3, r0, 31 - adds r0, r6, 0 - adds r0, 0xD - ldr r2, =gUnknown_082EDDC4 - lsls r1, r3, 2 - adds r1, r2 - ldr r1, [r1] - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _08012B7E - b _08012F50 -_08012B7E: - movs r0, 0x15 - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012B8C: - adds r0, r6, 0 - adds r0, 0xD - ldr r1, =gStringVar4 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _08012B9E - b _08012F50 -_08012B9E: - movs r0, 0xB - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012BA8: - adds r4, r6, 0 - adds r4, 0xD - ldrb r1, [r6, 0x13] - lsls r1, 5 - ldr r0, [r6] - adds r0, r1 - adds r0, 0x2 - bl ReadAsU16 - lsls r0, 16 - lsrs r0, 16 - ldrb r2, [r6, 0x13] - lsls r2, 5 - ldr r1, [r6] - adds r1, r2 - adds r1, 0x10 - bl sub_801064C - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_80170B8 - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08012C28 - cmp r1, r0 - bgt _08012BEC - subs r0, 0x2 - cmp r1, r0 - beq _08012C56 - b _08012F50 -_08012BEC: - cmp r1, 0 - beq _08012BF6 - cmp r1, 0x1 - beq _08012C28 - b _08012F50 -_08012BF6: - bl sub_800E0E8 - movs r0, 0 - movs r1, 0 - bl CreateWirelessStatusIndicatorSprite - movs r0, 0x5 - strb r0, [r6, 0x19] - ldrb r1, [r6, 0x13] - lsls r1, 5 - ldr r0, [r6] - adds r0, r1 - adds r0, 0x2 - bl ReadAsU16 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldrb r0, [r6, 0x13] - lsls r0, 5 - ldr r2, [r6] - adds r2, r0 - adds r2, 0x10 - movs r0, 0x5 - b _08012C4C -_08012C28: - movs r0, 0x6 - strb r0, [r6, 0x19] - ldrb r1, [r6, 0x13] - lsls r1, 5 - ldr r0, [r6] - adds r0, r1 - adds r0, 0x2 - bl ReadAsU16 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldrb r0, [r6, 0x13] - lsls r0, 5 - ldr r2, [r6] - adds r2, r0 - adds r2, 0x10 - movs r0, 0x6 -_08012C4C: - bl sub_8010688 - movs r0, 0xC - strb r0, [r6, 0xC] - b _08012F50 -_08012C56: - movs r0, 0x9 - strb r0, [r6, 0xC] - b _08012F50 -_08012C5C: - ldrb r1, [r6, 0x13] - lsls r1, 5 - ldr r0, [r6] - adds r0, r1 - adds r0, 0x2 - bl ReadAsU16 - lsls r0, 16 - lsrs r0, 16 - ldrb r2, [r6, 0x13] - lsls r2, 5 - ldr r1, [r6] - adds r1, r2 - adds r1, 0x10 - bl sub_8010714 - cmp r0, 0x1 - bne _08012D4A - ldrb r0, [r6, 0x19] - cmp r0, 0x5 - bne _08012D04 - ldr r1, [r6] - ldrb r0, [r6, 0x13] - lsls r0, 5 - adds r1, r0 - movs r0, 0 - strb r0, [r1, 0x1B] - ldrb r0, [r6, 0x12] - bl sub_81AE70C - ldrb r0, [r6, 0x13] - adds r0, 0x1 - strb r0, [r6, 0x13] - ldr r1, =gUnknown_02022C2D - ldrb r1, [r1] - movs r3, 0xF - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0 - ands r0, r1 - cmp r2, r0 - bne _08012D40 - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - bne _08012CBC - cmp r2, 0x4 - bne _08012CC4 -_08012CBC: - strb r3, [r6, 0xC] - b _08012CE0 - .pool -_08012CC4: - ldr r0, =gStringVar1 - ldrb r2, [r6, 0x13] - lsls r2, 5 - subs r2, 0x20 - ldr r1, [r6] - adds r1, r2 - bl sub_8018404 - ldr r0, =gStringVar4 - ldr r1, =gUnknown_082EDC9C - bl StringExpandPlaceholders - movs r0, 0xD - strb r0, [r6, 0xC] -_08012CE0: - bl sub_800EF38 - ldrb r0, [r6, 0x11] - ldr r1, =gUnknown_02022C2D - ldrb r1, [r1] - ldrb r2, [r6, 0x13] - bl sub_80124EC - b _08012D44 - .pool -_08012D04: - ldrb r1, [r6, 0x13] - lsls r1, 5 - ldr r0, [r6] - adds r0, r1 - adds r4, r0, 0 - adds r4, 0x10 - adds r0, 0x2 - bl ReadAsU16 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8011DC0 - ldr r1, [r6] - ldrb r0, [r6, 0x13] - lsls r0, 5 - adds r1, r0 - ldrb r2, [r1, 0x1A] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1A] - ldr r0, [r6] - bl sub_8013398 - ldrb r0, [r6, 0x12] - bl sub_81AE70C -_08012D40: - movs r0, 0x4 - strb r0, [r6, 0xC] -_08012D44: - movs r0, 0 - strb r0, [r6, 0x19] - b _08012F50 -_08012D4A: - cmp r0, 0x2 - beq _08012D50 - b _08012F50 -_08012D50: - movs r0, 0 - movs r1, 0 - bl sub_8011A64 - b _08012E5C -_08012D5A: - adds r0, r6, 0 - adds r0, 0xD - ldr r1, =gStringVar4 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _08012D6C - b _08012F50 -_08012D6C: - movs r0, 0xE - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012D78: - ldrb r0, [r6, 0xE] - adds r0, 0x1 - strb r0, [r6, 0xE] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x78 - bhi _08012D88 - b _08012F50 -_08012D88: - b _08012DCE -_08012D8A: - adds r0, r6, 0 - adds r0, 0xD - ldr r1, =gUnknown_082EDC5C - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _08012D9C - b _08012F50 -_08012D9C: - movs r0, 0x10 - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012DA8: - adds r0, r6, 0 - adds r0, 0xD - movs r1, 0 - bl sub_80170B8 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08012DCE - cmp r1, 0 - bgt _08012DC8 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08012DD4 - b _08012F50 -_08012DC8: - cmp r1, 0x1 - beq _08012DD4 - b _08012F50 -_08012DCE: - movs r0, 0x11 - strb r0, [r6, 0xC] - b _08012F50 -_08012DD4: - ldr r0, =gUnknown_02022C2D - ldrb r1, [r0] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - beq _08012DEC - movs r0, 0x1E - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012DEC: - movs r0, 0x13 - strb r0, [r6, 0xC] - b _08012F50 -_08012DF2: - adds r0, r6, 0 - adds r0, 0xD - ldr r1, =gUnknown_082EDC78 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _08012E04 - b _08012F50 -_08012E04: - movs r0, 0x14 - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012E10: - adds r0, r6, 0 - adds r0, 0xD - movs r1, 0 - bl sub_80170B8 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08012EC6 - cmp r1, 0 - bgt _08012E30 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08012E36 - b _08012F50 -_08012E30: - cmp r1, 0x1 - beq _08012E36 - b _08012F50 -_08012E36: - ldr r0, =gUnknown_02022C2D - ldrb r2, [r0] - movs r0, 0xF0 - ands r0, r2 - cmp r0, 0 - beq _08012E4C - movs r0, 0xF - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012E4C: - movs r3, 0xF - ldrb r1, [r6, 0x13] - adds r0, r3, 0 - ands r0, r2 - cmp r1, r0 - bne _08012E5C - strb r3, [r6, 0xC] - b _08012F50 -_08012E5C: - movs r0, 0x4 - strb r0, [r6, 0xC] - b _08012F50 -_08012E62: - adds r0, r6, 0 - movs r1, 0x7 - movs r2, 0x1D - bl sub_801320C - lsls r0, 24 - cmp r0, 0 - bne _08012F50 - movs r0, 0x12 - strb r0, [r6, 0xC] - b _08012F50 -_08012E78: - bl sub_800EF1C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08012EAE - movs r0, 0 - bl sub_800EF58 - cmp r0, 0 - beq _08012E94 - movs r0, 0x1A - strb r0, [r6, 0xC] - b _08012F50 -_08012E94: - ldrh r0, [r6, 0x1A] - adds r0, 0x1 - strh r0, [r6, 0x1A] - lsls r0, 16 - movs r1, 0x96 - lsls r1, 17 - cmp r0, r1 - bls _08012F50 - movs r0, 0x1D - strb r0, [r6, 0xC] - movs r0, 0 - strb r0, [r6, 0xD] - b _08012F50 -_08012EAE: - movs r0, 0x1D - strb r0, [r6, 0xC] - strb r1, [r6, 0xD] - b _08012F50 -_08012EB6: - adds r0, r6, 0 - adds r0, 0xD - ldr r1, =gUnknown_082EDD58 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - beq _08012F50 -_08012EC6: - movs r0, 0x17 - strb r0, [r6, 0xC] - b _08012F50 - .pool -_08012ED0: - bl sub_800E084 - bl sub_800EDD4 - adds r0, r6, 0 - bl sub_8012F64 - ldrb r0, [r6, 0xC] - adds r0, 0x1 - strb r0, [r6, 0xC] - b _08012F50 -_08012EE6: - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask - ldr r1, =gSpecialVar_Result - movs r0, 0x5 - strh r0, [r1] - b _08012F50 - .pool -_08012EFC: - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask - ldr r1, =gSpecialVar_Result - movs r0, 0x8 - strh r0, [r1] - b _08012F50 - .pool -_08012F14: - bl sub_8011A80 - cmp r0, 0 - beq _08012F22 - movs r0, 0x1D - strb r0, [r6, 0xC] - b _08012F50 -_08012F22: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _08012F50 - ldr r0, =gUnknown_02022C2C - ldrb r0, [r0] - bl sub_80126CC - cmp r0, 0 - beq _08012F3A - bl sub_801103C -_08012F3A: - movs r0, 0x1 - bl sub_8011068 - bl sub_80149C4 - adds r0, r6, 0 - bl sub_8012F64 - adds r0, r4, 0 - bl DestroyTask -_08012F50: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8012780 - - thumb_func_start sub_8012F64 -sub_8012F64: @ 8012F64 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x11] - bl ClearWindowTilemap - ldrb r0, [r4, 0x11] - movs r1, 0 - bl sub_819746C - ldrb r0, [r4, 0x12] - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - ldrb r0, [r4, 0x10] - bl ClearWindowTilemap - ldrb r0, [r4, 0xF] - movs r1, 0 - bl sub_819746C - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldrb r0, [r4, 0x11] - bl RemoveWindow - ldrb r0, [r4, 0xF] - bl RemoveWindow - ldrb r0, [r4, 0x10] - bl RemoveWindow - ldrb r0, [r4, 0x17] - bl DestroyTask - ldr r0, [r4, 0x8] - bl Free - ldr r0, [r4] - bl Free - ldr r0, [r4, 0x4] - bl Free - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8012F64 - - thumb_func_start sub_8012FC4 -sub_8012FC4: @ 8012FC4 - push {lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - subs r0, r1, 0x1 - cmp r0, 0x1B - bhi _08013070 - lsls r0, 2 - ldr r1, =_08012FE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08012FE0: - .4byte _08013050 - .4byte _08013050 - .4byte _08013068 - .4byte _08013050 - .4byte _08013070 - .4byte _08013070 - .4byte _08013070 - .4byte _08013070 - .4byte _08013068 - .4byte _08013068 - .4byte _08013068 - .4byte _08013070 - .4byte _08013070 - .4byte _08013050 - .4byte _08013068 - .4byte _08013068 - .4byte _08013070 - .4byte _08013070 - .4byte _08013070 - .4byte _08013070 - .4byte _08013058 - .4byte _08013058 - .4byte _08013068 - .4byte _08013068 - .4byte _08013068 - .4byte _08013068 - .4byte _08013068 - .4byte _08013050 -_08013050: - ldr r1, =gUnknown_082EDBE8 - b _0801305A - .pool -_08013058: - ldr r1, =gUnknown_082EDC0C -_0801305A: - adds r0, r2, 0 - bl StringExpandPlaceholders - b _08013070 - .pool -_08013068: - ldr r1, =gUnknown_082EDC34 - adds r0, r2, 0 - bl StringExpandPlaceholders -_08013070: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8012FC4 - - thumb_func_start sub_8013078 -sub_8013078: @ 8013078 - push {lr} - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x44 - beq _08013098 - cmp r1, 0x44 - bgt _0801308E - cmp r1, 0x41 - beq _08013098 - b _080130AA -_0801308E: - cmp r2, 0x45 - beq _080130A4 - cmp r2, 0x48 - beq _080130A4 - b _080130AA -_08013098: - ldr r1, =gUnknown_082EE560 - bl StringExpandPlaceholders - b _080130AA - .pool -_080130A4: - ldr r1, =gUnknown_082EE57C - bl StringExpandPlaceholders -_080130AA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8013078 - - thumb_func_start sub_80130B4 -sub_80130B4: @ 80130B4 - push {lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - subs r0, r1, 0x1 - cmp r0, 0x1B - bhi _08013158 - lsls r0, 2 - ldr r1, =_080130D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080130D0: - .4byte _08013140 - .4byte _08013140 - .4byte _08013150 - .4byte _08013140 - .4byte _08013158 - .4byte _08013158 - .4byte _08013158 - .4byte _08013158 - .4byte _08013150 - .4byte _08013150 - .4byte _08013150 - .4byte _08013158 - .4byte _08013158 - .4byte _08013140 - .4byte _08013150 - .4byte _08013150 - .4byte _08013158 - .4byte _08013158 - .4byte _08013158 - .4byte _08013158 - .4byte _08013140 - .4byte _08013140 - .4byte _08013150 - .4byte _08013150 - .4byte _08013150 - .4byte _08013150 - .4byte _08013150 - .4byte _08013140 -_08013140: - ldr r1, =gUnknown_082EFC3C - adds r0, r2, 0 - bl StringExpandPlaceholders - b _08013158 - .pool -_08013150: - ldr r1, =gUnknown_082EFC54 - adds r0, r2, 0 - bl StringExpandPlaceholders -_08013158: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80130B4 - - thumb_func_start sub_8013160 -sub_8013160: @ 8013160 - push {lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - subs r0, r1, 0x1 - cmp r0, 0x1B - bhi _08013204 - lsls r0, 2 - ldr r1, =_0801317C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0801317C: - .4byte _080131EC - .4byte _080131EC - .4byte _080131FC - .4byte _080131EC - .4byte _08013204 - .4byte _08013204 - .4byte _08013204 - .4byte _08013204 - .4byte _080131FC - .4byte _080131FC - .4byte _080131FC - .4byte _08013204 - .4byte _08013204 - .4byte _080131EC - .4byte _080131FC - .4byte _080131FC - .4byte _08013204 - .4byte _08013204 - .4byte _08013204 - .4byte _08013204 - .4byte _080131EC - .4byte _080131EC - .4byte _080131FC - .4byte _080131FC - .4byte _080131FC - .4byte _080131FC - .4byte _080131FC - .4byte _080131EC -_080131EC: - ldr r1, =gUnknown_082EDDF4 - adds r0, r2, 0 - bl StringExpandPlaceholders - b _08013204 - .pool -_080131FC: - ldr r1, =gUnknown_082EDE0C - adds r0, r2, 0 - bl StringExpandPlaceholders -_08013204: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8013160 - - thumb_func_start sub_801320C -sub_801320C: @ 801320C - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r5, r2, 0 - ldr r0, [r4] - bl sub_80132D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08013228 - cmp r0, 0x2 - beq _0801325C - b _08013270 -_08013228: - movs r0, 0x2 - bl PlaySE - ldrb r0, [r4, 0x12] - bl sub_81AE70C - ldr r0, =gStringVar2 - ldrb r2, [r4, 0x13] - lsls r2, 5 - ldr r1, [r4] - adds r1, r2 - bl sub_8018404 - ldr r0, =gStringVar4 - ldr r1, =gUnknown_02022C2C - ldrb r1, [r1] - bl sub_8012FC4 - strb r6, [r4, 0xC] - b _08013270 - .pool -_0801325C: - movs r0, 0 - movs r1, 0 - bl sub_8011A64 - ldrb r0, [r4, 0x12] - bl sub_81AE70C - strb r5, [r4, 0xC] - movs r0, 0x1 - b _08013272 -_08013270: - movs r0, 0 -_08013272: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_801320C - - thumb_func_start sub_8013278 -sub_8013278: @ 8013278 - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, =gUnknown_02022C30 - ldr r3, [r0] - movs r2, 0 - ldr r1, [r3] - lsls r0, r4, 5 - adds r1, r0 - ldrb r0, [r1, 0x1A] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x1 - beq _080132A8 - cmp r0, 0x2 - beq _080132B2 - b _080132B4 - .pool -_080132A8: - ldrb r0, [r1, 0x1B] - cmp r0, 0 - beq _080132B4 - movs r2, 0x2 - b _080132B4 -_080132B2: - movs r2, 0x1 -_080132B4: - lsls r0, r4, 5 - ldr r3, [r3] - adds r3, r0 - str r2, [sp] - lsls r0, r4, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - adds r2, r6, 0 - bl sub_80178A0 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8013278 - - thumb_func_start sub_80132D4 -sub_80132D4: @ 80132D4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r0, =gUnknown_02022C30 - ldr r5, [r0] - movs r0, 0 - mov r8, r0 - movs r3, 0x1 -_080132E8: - ldr r0, [r5] - lsls r6, r3, 5 - adds r2, r0, r6 - ldrb r0, [r2, 0x1A] - lsls r0, 30 - lsrs r0, 30 - mov r9, r0 - cmp r0, 0x1 - bne _08013348 - ldr r1, [r5, 0x4] - adds r0, r2, 0 - str r3, [sp] - bl sub_80176E4 - adds r4, r0, 0 - ldr r3, [sp] - cmp r4, 0xFF - beq _08013330 - ldr r1, [r5] - ldr r0, [r5, 0x4] - lsls r2, r4, 3 - subs r2, r4 - lsls r2, 2 - adds r1, r6 - adds r0, r2 - ldm r0!, {r2,r4,r7} - stm r1!, {r2,r4,r7} - ldm r0!, {r2,r4,r7} - stm r1!, {r2,r4,r7} - ldr r0, [r5] - adds r0, r6 - mov r1, r9 - strh r1, [r0, 0x18] - b _08013348 - .pool -_08013330: - ldr r2, [r5] - adds r2, r6 - ldrb r1, [r2, 0x1A] - movs r4, 0x4 - negs r4, r4 - adds r0, r4, 0 - ands r1, r0 - movs r0, 0x2 - orrs r1, r0 - strb r1, [r2, 0x1A] - movs r7, 0x2 - mov r8, r7 -_08013348: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x4 - bls _080132E8 - movs r6, 0 - movs r4, 0x3 -_08013356: - ldr r0, [r5] - ldr r1, [r5, 0x4] - adds r1, r6 - movs r2, 0x5 - bl sub_8017734 - adds r6, 0x1C - subs r4, 0x1 - ldr r0, [r5] - cmp r4, 0 - bge _08013356 - mov r1, r8 - cmp r1, 0x2 - beq _08013388 - adds r1, r0, 0 - movs r4, 0x4 -_08013376: - ldrb r0, [r1, 0x1B] - cmp r0, 0 - beq _08013380 - movs r2, 0x1 - mov r8, r2 -_08013380: - adds r1, 0x20 - subs r4, 0x1 - cmp r4, 0 - bge _08013376 -_08013388: - mov r0, r8 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80132D4 - - thumb_func_start sub_8013398 -sub_8013398: @ 8013398 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_02022C30 - ldr r4, [r0] - movs r3, 0 -_080133A8: - ldr r0, [r4, 0x8] - lsls r2, r3, 5 - ldr r1, [r4] - adds r0, r2 - adds r1, r2 - ldm r1!, {r2,r5,r6} - stm r0!, {r2,r5,r6} - ldm r1!, {r2,r5,r7} - stm r0!, {r2,r5,r7} - ldm r1!, {r6,r7} - stm r0!, {r6,r7} - adds r3, 0x1 - ldr r0, [r4, 0x8] - ldr r1, [r4] - cmp r3, 0x4 - ble _080133A8 - movs r5, 0 - mov r8, r1 - mov r9, r0 - movs r3, 0x4 -_080133D0: - mov r1, r9 - ldrb r0, [r1, 0x1A] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x1 - bne _080133F2 - lsls r0, r5, 5 - add r0, r8 - ldm r1!, {r2,r6,r7} - stm r0!, {r2,r6,r7} - ldm r1!, {r2,r6,r7} - stm r0!, {r2,r6,r7} - ldm r1!, {r2,r6} - stm r0!, {r2,r6} - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080133F2: - movs r7, 0x20 - add r9, r7 - subs r3, 0x1 - cmp r3, 0 - bge _080133D0 - mov r10, r5 - cmp r5, 0x4 - bhi _08013454 - ldr r0, =gUnknown_082F045C - mov r9, r0 - movs r1, 0 - mov r12, r1 - movs r2, 0x4 - negs r2, r2 - mov r8, r2 -_08013410: - ldr r1, [r4] - lsls r3, r5, 5 - adds r1, r3 - mov r0, r9 - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldr r0, [r4] - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x18] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1, 0x1A] - mov r0, r8 - ands r0, r2 - strb r0, [r1, 0x1A] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1, 0x1A] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1A] - ldr r0, [r4] - adds r0, r3 - mov r6, r12 - strb r6, [r0, 0x1B] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _08013410 -_08013454: - movs r3, 0 - ldr r1, [r4] - ldrb r0, [r1, 0x1A] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x1 - bne _08013474 - ldrb r0, [r1, 0x1B] - cmp r0, 0x40 - bne _08013474 - mov r10, r3 - b _08013494 - .pool -_08013474: - adds r3, 0x1 - cmp r3, 0x4 - bgt _08013494 - lsls r0, r3, 5 - adds r2, r1, r0 - ldrb r0, [r2, 0x1A] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x1 - bne _08013474 - ldrb r0, [r2, 0x1B] - cmp r0, 0x40 - bne _08013474 - lsls r0, r3, 24 - lsrs r0, 24 - mov r10, r0 -_08013494: - mov r0, r10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8013398 - - thumb_func_start BerryBlenderLinkJoinGroup -BerryBlenderLinkJoinGroup: @ 80134A4 - push {lr} - ldr r0, =sub_80134E8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_02022C30 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r1, r0 - str r1, [r2] - ldr r0, =gUnknown_03000DA4 - str r1, [r0] - movs r0, 0 - strb r0, [r1, 0x8] - strb r0, [r1, 0x9] - ldr r1, =gSpecialVar_Result - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end BerryBlenderLinkJoinGroup - - thumb_func_start sub_80134E8 -sub_80134E8: @ 80134E8 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_02022C30 - ldr r6, [r0] - ldrb r0, [r6, 0x8] - cmp r0, 0x17 - bls _080134FC - b _08013B82 -_080134FC: - lsls r0, 2 - ldr r1, =_08013510 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08013510: - .4byte _08013570 - .4byte _080135E0 - .4byte _0801360C - .4byte _080136D8 - .4byte _08013B82 - .4byte _08013788 - .4byte _080137C4 - .4byte _08013A10 - .4byte _08013A2C - .4byte _08013A7A - .4byte _08013A8C - .4byte _08013B14 - .4byte _08013A8C - .4byte _08013AE4 - .4byte _08013A8C - .4byte _08013B24 - .4byte _08013B82 - .4byte _08013B82 - .4byte _08013A8C - .4byte _08013B44 - .4byte _08013A8C - .4byte _08013B78 - .4byte _08013B82 - .4byte _08013B68 -_08013570: - ldr r0, =gSpecialVar_0x8004 - ldrh r2, [r0] - adds r3, r0, 0 - cmp r2, 0x14 - bne _08013590 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _08013590 - adds r0, r2, 0x1 - strh r0, [r3] -_08013590: - ldr r2, =gUnknown_02022C2C - ldr r1, =gUnknown_082F0530 - ldrh r0, [r3] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldrb r0, [r2] - movs r1, 0 - movs r2, 0 - bl sub_8010F84 - bl sub_800B488 - bl OpenLink - bl sub_8011C5C - movs r0, 0x70 - bl AllocZeroed - str r0, [r6, 0x4] - movs r0, 0x80 - lsls r0, 2 - bl AllocZeroed - str r0, [r6] - movs r0, 0x1 - strb r0, [r6, 0x8] - b _08013B82 - .pool -_080135E0: - adds r0, r6, 0 - adds r0, 0x9 - ldr r2, =gUnknown_082EFB70 - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _080135FC - b _08013B82 -_080135FC: - movs r0, 0x2 - strb r0, [r6, 0x8] - b _08013B82 - .pool -_0801360C: - ldr r0, [r6, 0x4] - movs r1, 0x4 - bl sub_80175EC - ldr r0, [r6] - movs r1, 0x10 - bl sub_8017580 - ldr r0, [r6, 0x4] - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - bl sub_8016FC0 - movs r4, 0 - strb r0, [r6, 0x11] - ldr r0, =gUnknown_082F00BC - bl AddWindow - strb r0, [r6, 0xC] - ldr r0, =gUnknown_082F0174 - bl AddWindow - strb r0, [r6, 0xB] - ldr r0, =gUnknown_082F017C - bl AddWindow - strb r0, [r6, 0xD] - ldrb r0, [r6, 0xC] - movs r1, 0x22 - bl FillWindowPixelBuffer - ldrb r0, [r6, 0xC] - ldr r2, =gUnknown_082EF7DC - movs r1, 0x1 - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0x8 - bl sub_80173E0 - ldrb r0, [r6, 0xC] - bl PutWindowTilemap - ldrb r0, [r6, 0xC] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r6, 0xB] - movs r1, 0 - bl NewMenuHelpers_DrawStdWindowFrame - ldr r0, =gMultiuseListMenuTemplate - adds r2, r0, 0 - ldr r1, =gUnknown_082F0204 - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldrb r1, [r6, 0xB] - strb r1, [r0, 0x10] - movs r1, 0 - movs r2, 0 - bl ListMenuInit - strb r0, [r6, 0xE] - ldrb r0, [r6, 0xD] - movs r1, 0 - bl NewMenuHelpers_DrawStdWindowFrame - ldrb r0, [r6, 0xD] - bl PutWindowTilemap - ldrb r0, [r6, 0xD] - bl sub_80125BC - ldrb r0, [r6, 0xD] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl CopyBgTilemapBufferToVram - strb r4, [r6, 0xF] - movs r0, 0x3 - strb r0, [r6, 0x8] - b _08013B82 - .pool -_080136D8: - bl sub_8013E44 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080136F2 - cmp r4, 0x1 - beq _080136EA - b _08013A72 -_080136EA: - movs r0, 0x2 - bl PlaySE - b _08013A72 -_080136F2: - ldrb r0, [r6, 0xE] - bl ListMenuHandleInputGetItemId - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08013770 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _08013770 - ldr r0, [r6] - lsls r1, r4, 5 - adds r0, r1 - ldrb r1, [r0, 0xA] - ldrb r0, [r0, 0x1A] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x1 - bne _08013768 - lsrs r0, r1, 7 - cmp r0, 0 - bne _08013768 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8013B8C - adds r1, r0, 0 - cmp r1, 0 - bne _08013744 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8013BD8 - movs r0, 0x5 - b _08013756 - .pool -_08013744: - ldr r0, =gStringVar4 - ldr r2, =gUnknown_082EDD50 - subs r1, 0x1 - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - movs r0, 0x12 -_08013756: - strb r0, [r6, 0x8] - movs r0, 0x6E - bl PlaySE - b _08013B82 - .pool -_08013768: - movs r0, 0x7 - bl PlaySE - b _08013B82 -_08013770: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0801377E - b _08013B82 -_0801377E: - movs r0, 0xA - strb r0, [r6, 0x8] - b _08013B82 - .pool -_08013788: - ldr r4, =gStringVar4 - ldr r0, =gUnknown_02022C2C - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80130B4 - adds r0, r6, 0 - adds r0, 0x9 - adds r1, r4, 0 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _080137A6 - b _08013B82 -_080137A6: - ldr r0, =gStringVar1 - ldrb r2, [r6, 0xF] - lsls r2, 5 - ldr r1, [r6] - adds r1, r2 - bl sub_8018404 - b _08013A86 - .pool -_080137C4: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _0801387A - ldr r4, =gUnknown_02022C2C - ldr r1, [r6] - ldrb r0, [r6, 0xF] - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xA] - lsls r0, 25 - lsrs r0, 25 - strb r0, [r4] - movs r0, 0 - movs r1, 0 - bl sub_8011A64 - ldrb r0, [r4] - subs r0, 0x1 - cmp r0, 0x1B - bhi _0801387A - lsls r0, 2 - ldr r1, =_08013804 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08013804: - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _0801387A - .4byte _0801387A - .4byte _0801387A - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _0801387A - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _0801387A - .4byte _0801387A - .4byte _0801387A - .4byte _0801387A - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 - .4byte _08013874 -_08013874: - movs r0, 0x14 - strb r0, [r6, 0x8] - b _08013B82 -_0801387A: - bl sub_8011A74 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x8 - bls _0801388A - b _080139EC -_0801388A: - lsls r0, 2 - ldr r1, =_08013898 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08013898: - .4byte _080138BC - .4byte _080138C2 - .4byte _080139EC - .4byte _080139EC - .4byte _080138C8 - .4byte _080138C2 - .4byte _08013934 - .4byte _080139EC - .4byte _080138C2 -_080138BC: - movs r0, 0xC - strb r0, [r6, 0x8] - b _080139EC -_080138C2: - movs r0, 0xE - strb r0, [r6, 0x8] - b _080139EC -_080138C8: - ldr r5, =gStringVar4 - ldr r4, =gUnknown_02022C2C - ldrb r1, [r4] - adds r0, r5, 0 - bl sub_8013160 - adds r0, r6, 0 - adds r0, 0x9 - adds r1, r5, 0 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _080138E6 - b _080139EC -_080138E6: - ldrb r0, [r4] - cmp r0, 0x1C - beq _080138F0 - cmp r0, 0xE - bne _08013904 -_080138F0: - movs r0, 0xC - movs r1, 0 - bl sub_8011A64 - b _080139EC - .pool -_08013904: - movs r0, 0x7 - movs r1, 0 - bl sub_8011A64 - ldr r0, =gStringVar1 - ldr r2, =gUnknown_082F0048 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r1, =gUnknown_082EDE48 - adds r0, r5, 0 - bl StringExpandPlaceholders - b _080139EC - .pool -_08013934: - ldrb r0, [r6, 0x15] - adds r2, r0, 0 - cmp r2, 0xF0 - bls _0801395C - adds r0, r6, 0 - adds r0, 0x9 - ldr r1, =gStringVar4 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - beq _080139EC - movs r0, 0xC - movs r1, 0 - bl sub_8011A64 - movs r0, 0 - b _080139EA - .pool -_0801395C: - ldr r0, =gUnknown_02022C2C - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x1B - bhi _080139E8 - lsls r0, 2 - ldr r1, =_08013978 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08013978: - .4byte _080139EC - .4byte _080139EC - .4byte _080139E8 - .4byte _080139EC - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139EC - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139E8 - .4byte _080139EC -_080139E8: - adds r0, r2, 0x1 -_080139EA: - strb r0, [r6, 0x15] -_080139EC: - bl sub_8011A74 - lsls r0, 24 - cmp r0, 0 - beq _080139F8 - b _08013B82 -_080139F8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08013A06 - b _08013B82 -_08013A06: - movs r0, 0x7 - strb r0, [r6, 0x8] - b _08013B82 - .pool -_08013A10: - adds r0, r6, 0 - adds r0, 0x9 - ldr r1, =gUnknown_082EDE64 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - bne _08013A22 - b _08013B82 -_08013A22: - movs r0, 0x8 - strb r0, [r6, 0x8] - b _08013B82 - .pool -_08013A2C: - adds r4, r6, 0 - adds r4, 0x9 - bl sub_8011A74 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_80170B8 - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08013A6A - cmp r1, r0 - bgt _08013A58 - subs r0, 0x2 - cmp r1, r0 - beq _08013A6E - b _08013B82 -_08013A58: - cmp r1, 0 - beq _08013A62 - cmp r1, 0x1 - beq _08013A6A - b _08013B82 -_08013A62: - bl sub_80106D4 - movs r0, 0x9 - b _08013A70 -_08013A6A: - movs r0, 0x5 - b _08013A70 -_08013A6E: - movs r0, 0x6 -_08013A70: - strb r0, [r6, 0x8] -_08013A72: - ldrb r0, [r6, 0xE] - bl sub_81AE70C - b _08013B82 -_08013A7A: - bl sub_8011A74 - lsls r0, 24 - cmp r0, 0 - bne _08013A86 - b _08013B82 -_08013A86: - movs r0, 0x6 - strb r0, [r6, 0x8] - b _08013B82 -_08013A8C: - ldrb r0, [r6, 0xD] - bl ClearWindowTilemap - ldrb r0, [r6, 0xD] - movs r1, 0 - bl sub_819746C - ldrb r0, [r6, 0xE] - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - ldrb r0, [r6, 0xC] - bl ClearWindowTilemap - ldrb r0, [r6, 0xB] - movs r1, 0 - bl sub_819746C - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldrb r0, [r6, 0xD] - bl RemoveWindow - ldrb r0, [r6, 0xB] - bl RemoveWindow - ldrb r0, [r6, 0xC] - bl RemoveWindow - ldrb r0, [r6, 0x11] - bl DestroyTask - ldr r0, [r6] - bl Free - ldr r0, [r6, 0x4] - bl Free - ldrb r0, [r6, 0x8] - adds r0, 0x1 - strb r0, [r6, 0x8] - b _08013B82 -_08013AE4: - bl sub_800E084 - adds r5, r6, 0 - adds r5, 0x9 - ldr r4, =gUnknown_082EDE9C - bl sub_8011A74 - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - beq _08013B82 - ldr r0, =gSpecialVar_Result - movs r1, 0x6 - b _08013B58 - .pool -_08013B14: - bl sub_800E084 - ldr r0, =gSpecialVar_Result - movs r1, 0x5 - b _08013B58 - .pool -_08013B24: - bl sub_800E084 - adds r5, r6, 0 - adds r5, 0x9 - ldr r4, =gUnknown_082EDE9C - bl sub_8011A74 - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - b _08013B4A - .pool -_08013B44: - adds r0, r6, 0 - adds r0, 0x9 - ldr r1, =gStringVar4 -_08013B4A: - bl sub_8017064 - lsls r0, 24 - cmp r0, 0 - beq _08013B82 - ldr r0, =gSpecialVar_Result - movs r1, 0x8 -_08013B58: - strh r1, [r0] - movs r0, 0x17 - strb r0, [r6, 0x8] - b _08013B82 - .pool -_08013B68: - adds r0, r4, 0 - bl DestroyTask - bl sub_80173D4 - bl sub_800EDD4 - b _08013B82 -_08013B78: - bl sub_80149C4 - adds r0, r4, 0 - bl DestroyTask -_08013B82: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80134E8 - thumb_func_start sub_8013B8C sub_8013B8C: @ 8013B8C push {lr} @@ -5839,7 +3639,7 @@ _08015D4C: adds r1, r2 adds r1, r3 ldr r1, [r1] - bl sub_8017064 + bl PrintOnTextbox lsls r0, 24 cmp r0, 0 bne _08015D8C @@ -5951,7 +3751,7 @@ _08015E94: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gStringVar4 - bl sub_8017064 + bl PrintOnTextbox lsls r0, 24 cmp r0, 0 bne _08015EA8 @@ -6247,7 +4047,7 @@ _08016158: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gStringVar4 - bl sub_8017064 + bl PrintOnTextbox lsls r0, 24 cmp r0, 0 bne _08016170 @@ -6565,7 +4365,7 @@ _0801645C: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gUnknown_082EF20C - bl sub_8017064 + bl PrintOnTextbox lsls r0, 24 cmp r0, 0 bne _0801646E @@ -6734,7 +4534,7 @@ _080165DC: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gUnknown_082EF5B8 - bl sub_8017064 + bl PrintOnTextbox lsls r0, 24 cmp r0, 0 bne _080165EE @@ -6755,7 +4555,7 @@ _08016610: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gUnknown_082EF1EC - bl sub_8017064 + bl PrintOnTextbox lsls r0, 24 cmp r0, 0 bne _08016622 @@ -6906,7 +4706,7 @@ _0801676C: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gUnknown_082EF4C4 - bl sub_8017064 + bl PrintOnTextbox lsls r0, 24 cmp r0, 0 bne _0801677E @@ -6984,7 +4784,7 @@ _08016838: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gStringVar4 - bl sub_8017064 + bl PrintOnTextbox lsls r0, 24 cmp r0, 0 beq _08016878 @@ -7003,7 +4803,7 @@ _08016864: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gStringVar4 - bl sub_8017064 + bl PrintOnTextbox lsls r0, 24 cmp r0, 0 beq _08016878 @@ -8021,8 +5821,8 @@ _0801705E: bx r1 thumb_func_end sub_801704C - thumb_func_start sub_8017064 -sub_8017064: @ 8017064 + thumb_func_start PrintOnTextbox +PrintOnTextbox: @ 8017064 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -8062,7 +5862,7 @@ _080170B0: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_8017064 + thumb_func_end PrintOnTextbox thumb_func_start sub_80170B8 sub_80170B8: @ 80170B8 diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc index a6a0ebcc2..08af093ef 100644 --- a/data/scripts/contest_hall.inc +++ b/data/scripts/contest_hall.inc @@ -1761,7 +1761,7 @@ LilycoveCity_ContestLobby_Text_27C186: @ 827C186 LilycoveCity_ContestLobby_Text_27C1C3: @ 827C1C3 .string "Which POKéMON would you like to enter?$" -LilycoveCity_ContestLobby_Text_27C1EA: @ 827C1EA +Text_DecideLinkLeader: @ 827C1EA .string "Please decide which of you will\n" .string "become the GROUP LEADER.\p" .string "The other players must then choose\n" diff --git a/data/scripts/maps/LilycoveCity_ContestLobby.inc b/data/scripts/maps/LilycoveCity_ContestLobby.inc index 1c4d21970..0db441592 100644 --- a/data/scripts/maps/LilycoveCity_ContestLobby.inc +++ b/data/scripts/maps/LilycoveCity_ContestLobby.inc @@ -877,7 +877,7 @@ LilycoveCity_ContestLobby_EventScript_21ABA0:: @ 821ABA0 return LilycoveCity_ContestLobby_EventScript_21ABA6:: @ 821ABA6 - message LilycoveCity_ContestLobby_Text_27C1EA + message Text_DecideLinkLeader waitmessage multichoice 16, 6, 81, 0 switch VAR_RESULT diff --git a/data/scripts/pokeblocks.inc b/data/scripts/pokeblocks.inc index 39cca8244..81a83c857 100644 --- a/data/scripts/pokeblocks.inc +++ b/data/scripts/pokeblocks.inc @@ -1,22 +1,36 @@ -LilycoveCity_ContestLobby_Text_292DEE: @ 8292DEE +@ The scripts there concern pokeblock events in LilyCove City's Contest Lobby + +@ 'PblockX' number of offline opponents +@ 'Ask' talking with a blender machine +@ 'Yes' agreeing to blend +@ 'No' refusing to blend +@ 'KnowHow' asking if the player knows the blending process +@ 'Explain' explaining the blender process +@ 'Start' start blending +@ 'TalkX' talking with a person next to a blender machine +@ 'NoBerries' can't blend cause they have no berries +@ 'FullPokeblock' can't blend cause full pokeblock case +@ 'NoPokeblock' can't blend cause they have no pokeblock case + +Text_Pblock1_Ask: @ 8292DEE .string "Oh? Did you want to make some {POKEBLOCK}S\n" .string "with this old-timer?$" -LilycoveCity_ContestLobby_Text_292E28: @ 8292E28 +Text_Pblock1_Yes: @ 8292E28 .string "Excellent!$" -LilycoveCity_ContestLobby_Text_292E33: @ 8292E33 +Text_Pblock1_No: @ 8292E33 .string "Oh…\n" .string "You’ve made this old-timer sad…$" -LilycoveCity_ContestLobby_Text_292E57: @ 8292E57 +Text_Pblock1_KnowHow: @ 8292E57 .string "Do you know how to make a {POKEBLOCK}?$" -LilycoveCity_ContestLobby_Text_292E78: @ 8292E78 +Text_Pblock1_Start: @ 8292E78 .string "Let’s get started, then!\p" .string "Let’s BERRY BLENDER!$" -LilycoveCity_ContestLobby_Text_292EA6: @ 8292EA6 +Text_Pblock1_Explain: @ 8292EA6 .string "Okay, a little explanation, then.\p" .string "Oh, don’t worry, it’s quite simple.\p" .string "When the BLENDER’s arrow comes to\n" @@ -24,7 +38,7 @@ LilycoveCity_ContestLobby_Text_292EA6: @ 8292EA6 .string "That’s all you have to do.\n" .string "You’ll see how easy it is when you try.$" -LilycoveCity_ContestLobby_Text_292F77: @ 8292F77 +Text_Pblock1_NoBerries: @ 8292F77 .string "Oh?\n" .string "You don’t have any BERRIES?\p" .string "If you don’t have any BERRIES,\n" @@ -43,12 +57,12 @@ LilycoveCity_ContestLobby_Text_29307D: @ 829307D .string "But, I don’t have any to spare today.\n" .string "We’ll have to do this another time.$" -LilycoveCity_ContestLobby_Text_293101: @ 8293101 +Text_Pblock1_FullPokeblock: @ 8293101 .string "But your {POKEBLOCK} CASE is full.\p" .string "You should use some {POKEBLOCK}S before\n" .string "you come see me again.$" -LilycoveCity_ContestLobby_Text_293157: @ 8293157 +Text_Pblock1_NoPokeblock: @ 8293157 .string "But you don’t have a {POKEBLOCK} CASE.\p" .string "You should get a {POKEBLOCK} CASE and then\n" .string "come see me.$" @@ -171,43 +185,43 @@ LilycoveCity_ContestLobby_Text_29388F: @ 829388F .string "I’m going to make delicious {POKEBLOCK}S\n" .string "and make my POKéMON cuter.$" -LilycoveCity_ContestLobby_Text_2938CD: @ 82938CD +Text_PblockLink_Ask: @ 82938CD .string "{POKEBLOCK}S will be made with your friends \n" .string "from BERRIES in the BERRY BLENDER.\p" .string "Is it okay to save the game before\n" .string "linking with your friends?$" -LilycoveCity_ContestLobby_Text_293955: @ 8293955 +Text_PblockLink_Searching: @ 8293955 .string "Searching for your friends…\n" .string "… … B Button: Cancel$" -LilycoveCity_ContestLobby_Text_293986: @ 8293986 +Text_PblockLink_1Arrived: @ 8293986 .string "{STR_VAR_1} arrived.$" -LilycoveCity_ContestLobby_Text_293992: @ 8293992 +Text_PblockLink_2Arrived: @ 8293992 .string "{STR_VAR_1} and {STR_VAR_2} arrived.$" -LilycoveCity_ContestLobby_Text_2939A5: @ 82939A5 +Text_PblockLink_3Arrived: @ 82939A5 .string "{STR_VAR_1}, {STR_VAR_2}, and\n" .string "{STR_VAR_3} arrived.$" -LilycoveCity_ContestLobby_Text_2939BD: @ 82939BD +Text_PblockLink_NoBerries: @ 82939BD .string "You have no BERRIES.\n" .string "The BERRY BLENDER can’t be used.$" -LilycoveCity_ContestLobby_Text_2939F3: @ 82939F3 +Text_PblockLink_FullPokeblock: @ 82939F3 .string "Your {POKEBLOCK} CASE is full.\n" .string "The BERRY BLENDER can’t be used.$" -LilycoveCity_ContestLobby_Text_293A2D: @ 8293A2D +Text_PblockLink_NoPokeblock: @ 8293A2D .string "You don’t have a {POKEBLOCK} CASE.\n" .string "The BERRY BLENDER can’t be used.$" -LilycoveCity_ContestLobby_Text_293A6B: @ 8293A6B +Text_Pblock1_Talk_0: @ 8293A6B .string "I love making {POKEBLOCK}S.\p" .string "I always have some BERRIES with me.$" -LilycoveCity_ContestLobby_Text_293AA5: @ 8293AA5 +Text_Pblock1_Talk_1: @ 8293AA5 .string "If you’d like, we could make some\n" .string "{POKEBLOCK}S together using the\l" .string "BERRY BLENDER.$" @@ -231,76 +245,76 @@ LilycoveCity_ContestLobby_Text_293BB4: @ 8293BB4 .string "But, I don’t have any to spare today.\n" .string "Sorry about that.$" -LilycoveCity_ContestLobby_EventScript_293C3E:: @ 8293C3E +EventScript_Pblock1_Ask: @ 8293C3E lockall checkflag FLAG_0x340 goto_if 0, LilycoveCity_ContestLobby_EventScript_293EFB setvar VAR_0x8009, 1 applymovement 16, LilycoveCity_ContestLobby_Movement_294053 waitmovement 0 - msgbox LilycoveCity_ContestLobby_Text_292DEE, 5 + msgbox Text_Pblock1_Ask, 5 compare VAR_RESULT, 1 - goto_eq LilycoveCity_ContestLobby_EventScript_293CEE - goto LilycoveCity_ContestLobby_EventScript_293C70 + goto_eq EventScript_Pblock1_Yes + goto EventScript_Pblock1_No end -LilycoveCity_ContestLobby_EventScript_293C70:: @ 8293C70 - msgbox LilycoveCity_ContestLobby_Text_292E33, 4 +EventScript_Pblock1_No: @ 8293C70 + msgbox Text_Pblock1_No, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293C7A:: @ 8293C7A - msgbox LilycoveCity_ContestLobby_Text_292F77, 4 +EventScript_Pblock1_NoBerries: @ 8293C7A + msgbox Text_Pblock1_NoBerries, 4 dodailyevents checkflag FLAG_0x921 goto_eq LilycoveCity_ContestLobby_EventScript_293C92 goto LilycoveCity_ContestLobby_EventScript_293C9C end -LilycoveCity_ContestLobby_EventScript_293C92:: @ 8293C92 +LilycoveCity_ContestLobby_EventScript_293C92: @ 8293C92 msgbox LilycoveCity_ContestLobby_Text_29307D, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293C9C:: @ 8293C9C +LilycoveCity_ContestLobby_EventScript_293C9C: @ 8293C9C msgbox LilycoveCity_ContestLobby_Text_292FD1, 4 giveitem_std ITEM_PECHA_BERRY setflag FLAG_0x921 - goto LilycoveCity_ContestLobby_EventScript_293CB9 + goto EventScript_Pblock1_KnowHow end -LilycoveCity_ContestLobby_EventScript_293CB9:: @ 8293CB9 - msgbox LilycoveCity_ContestLobby_Text_292E57, 5 +EventScript_Pblock1_KnowHow: @ 8293CB9 + msgbox Text_Pblock1_KnowHow, 5 compare VAR_RESULT, 1 - goto_eq LilycoveCity_ContestLobby_EventScript_293CD2 - goto LilycoveCity_ContestLobby_EventScript_293CE0 + goto_eq EventScript_Pblock1_Start + goto EventScript_Pblock1_Explain end -LilycoveCity_ContestLobby_EventScript_293CD2:: @ 8293CD2 - msgbox LilycoveCity_ContestLobby_Text_292E78, 4 - goto LilycoveCity_ContestLobby_EventScript_293D2C +EventScript_Pblock1_Start: @ 8293CD2 + msgbox Text_Pblock1_Start, 4 + goto EventScript_StartBlending end -LilycoveCity_ContestLobby_EventScript_293CE0:: @ 8293CE0 - msgbox LilycoveCity_ContestLobby_Text_292EA6, 4 - goto LilycoveCity_ContestLobby_EventScript_293CD2 +EventScript_Pblock1_Explain: @ 8293CE0 + msgbox Text_Pblock1_Explain, 4 + goto EventScript_Pblock1_Start end -LilycoveCity_ContestLobby_EventScript_293CEE:: @ 8293CEE +EventScript_Pblock1_Yes: @ 8293CEE checkitem ITEM_POKEBLOCK_CASE, 1 compare VAR_RESULT, 0 - goto_eq LilycoveCity_ContestLobby_EventScript_293D43 + goto_eq EventScript_Pblock1_NoPokeblock specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare VAR_RESULT, 65535 - goto_eq LilycoveCity_ContestLobby_EventScript_293D39 + goto_eq EventScript_Pblock1_FullPokeblock specialvar VAR_RESULT, PlayerHasBerries compare VAR_RESULT, 0 - goto_eq LilycoveCity_ContestLobby_EventScript_293C7A - msgbox LilycoveCity_ContestLobby_Text_292E28, 4 - goto LilycoveCity_ContestLobby_EventScript_293CB9 + goto_eq EventScript_Pblock1_NoBerries + msgbox Text_Pblock1_Yes, 4 + goto EventScript_Pblock1_KnowHow end -LilycoveCity_ContestLobby_EventScript_293D2C:: @ 8293D2C +EventScript_StartBlending: @ 8293D2C copyvar VAR_0x8004, VAR_0x8009 fadescreen 1 special DoBerryBlending @@ -308,17 +322,17 @@ LilycoveCity_ContestLobby_EventScript_293D2C:: @ 8293D2C releaseall end -LilycoveCity_ContestLobby_EventScript_293D39:: @ 8293D39 - msgbox LilycoveCity_ContestLobby_Text_293101, 4 +EventScript_Pblock1_FullPokeblock: @ 8293D39 + msgbox Text_Pblock1_FullPokeblock, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293D43:: @ 8293D43 - msgbox LilycoveCity_ContestLobby_Text_293157, 4 +EventScript_Pblock1_NoPokeblock: @ 8293D43 + msgbox Text_Pblock1_NoPokeblock, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293D4D:: @ 8293D4D +LilycoveCity_ContestLobby_EventScript_293D4D: @ 8293D4D lockall setvar VAR_0x8009, 2 applymovement 10, LilycoveCity_ContestLobby_Movement_2725A2 @@ -330,34 +344,34 @@ LilycoveCity_ContestLobby_EventScript_293D4D:: @ 8293D4D goto LilycoveCity_ContestLobby_EventScript_293D7D end -LilycoveCity_ContestLobby_EventScript_293D7D:: @ 8293D7D +LilycoveCity_ContestLobby_EventScript_293D7D: @ 8293D7D msgbox LilycoveCity_ContestLobby_Text_29323D, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293D87:: @ 8293D87 +LilycoveCity_ContestLobby_EventScript_293D87: @ 8293D87 msgbox LilycoveCity_ContestLobby_Text_293394, 4 release end -LilycoveCity_ContestLobby_EventScript_293D91:: @ 8293D91 +LilycoveCity_ContestLobby_EventScript_293D91: @ 8293D91 msgbox LilycoveCity_ContestLobby_Text_29328C, 5 compare VAR_RESULT, 1 goto_eq LilycoveCity_ContestLobby_EventScript_293DAA goto LilycoveCity_ContestLobby_EventScript_293DB8 end -LilycoveCity_ContestLobby_EventScript_293DAA:: @ 8293DAA +LilycoveCity_ContestLobby_EventScript_293DAA: @ 8293DAA msgbox LilycoveCity_ContestLobby_Text_2932C3, 4 - goto LilycoveCity_ContestLobby_EventScript_293D2C + goto EventScript_StartBlending end -LilycoveCity_ContestLobby_EventScript_293DB8:: @ 8293DB8 +LilycoveCity_ContestLobby_EventScript_293DB8: @ 8293DB8 msgbox LilycoveCity_ContestLobby_Text_2932F1, 4 goto LilycoveCity_ContestLobby_EventScript_293DAA end -LilycoveCity_ContestLobby_EventScript_293DC6:: @ 8293DC6 +LilycoveCity_ContestLobby_EventScript_293DC6: @ 8293DC6 specialvar VAR_RESULT, PlayerHasBerries compare VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293D87 @@ -372,17 +386,17 @@ LilycoveCity_ContestLobby_EventScript_293DC6:: @ 8293DC6 goto_eq LilycoveCity_ContestLobby_EventScript_293E0A end -LilycoveCity_ContestLobby_EventScript_293E0A:: @ 8293E0A +LilycoveCity_ContestLobby_EventScript_293E0A: @ 8293E0A msgbox LilycoveCity_ContestLobby_Text_29343E, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293E14:: @ 8293E14 +LilycoveCity_ContestLobby_EventScript_293E14: @ 8293E14 msgbox LilycoveCity_ContestLobby_Text_2934A2, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293E1E:: @ 8293E1E +LilycoveCity_ContestLobby_EventScript_293E1E: @ 8293E1E lockall setvar VAR_0x8008, 15 setvar VAR_0x8009, 3 @@ -396,34 +410,34 @@ LilycoveCity_ContestLobby_EventScript_293E1E:: @ 8293E1E goto LilycoveCity_ContestLobby_EventScript_293E5A end -LilycoveCity_ContestLobby_EventScript_293E5A:: @ 8293E5A +LilycoveCity_ContestLobby_EventScript_293E5A: @ 8293E5A msgbox LilycoveCity_ContestLobby_Text_293558, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293E64:: @ 8293E64 +LilycoveCity_ContestLobby_EventScript_293E64: @ 8293E64 msgbox LilycoveCity_ContestLobby_Text_29367D, 4 release end -LilycoveCity_ContestLobby_EventScript_293E6E:: @ 8293E6E +LilycoveCity_ContestLobby_EventScript_293E6E: @ 8293E6E msgbox LilycoveCity_ContestLobby_Text_29357E, 5 compare VAR_RESULT, 1 goto_eq LilycoveCity_ContestLobby_EventScript_293E87 goto LilycoveCity_ContestLobby_EventScript_293E95 end -LilycoveCity_ContestLobby_EventScript_293E87:: @ 8293E87 +LilycoveCity_ContestLobby_EventScript_293E87: @ 8293E87 msgbox LilycoveCity_ContestLobby_Text_2935B1, 4 - goto LilycoveCity_ContestLobby_EventScript_293D2C + goto EventScript_StartBlending end -LilycoveCity_ContestLobby_EventScript_293E95:: @ 8293E95 +LilycoveCity_ContestLobby_EventScript_293E95: @ 8293E95 msgbox LilycoveCity_ContestLobby_Text_2935E5, 4 goto LilycoveCity_ContestLobby_EventScript_293E87 end -LilycoveCity_ContestLobby_EventScript_293EA3:: @ 8293EA3 +LilycoveCity_ContestLobby_EventScript_293EA3: @ 8293EA3 specialvar VAR_RESULT, PlayerHasBerries compare VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293E64 @@ -438,17 +452,17 @@ LilycoveCity_ContestLobby_EventScript_293EA3:: @ 8293EA3 goto_eq LilycoveCity_ContestLobby_EventScript_293EE7 end -LilycoveCity_ContestLobby_EventScript_293EE7:: @ 8293EE7 +LilycoveCity_ContestLobby_EventScript_293EE7: @ 8293EE7 msgbox LilycoveCity_ContestLobby_Text_293738, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293EF1:: @ 8293EF1 +LilycoveCity_ContestLobby_EventScript_293EF1: @ 8293EF1 msgbox LilycoveCity_ContestLobby_Text_293792, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293EFB:: @ 8293EFB +LilycoveCity_ContestLobby_EventScript_293EFB: @ 8293EFB lockall setvar VAR_0x8009, 1 msgbox LilycoveCity_ContestLobby_Text_2C42F4, 5 @@ -458,12 +472,12 @@ LilycoveCity_ContestLobby_EventScript_293EFB:: @ 8293EFB releaseall end -LilycoveCity_ContestLobby_EventScript_293F1E:: @ 8293F1E +LilycoveCity_ContestLobby_EventScript_293F1E: @ 8293F1E msgbox LilycoveCity_ContestLobby_Text_2C439D, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293F28:: @ 8293F28 +LilycoveCity_ContestLobby_EventScript_293F28: @ 8293F28 checkitem ITEM_POKEBLOCK_CASE, 1 compare VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293F8E @@ -477,49 +491,49 @@ LilycoveCity_ContestLobby_EventScript_293F28:: @ 8293F28 goto_eq LilycoveCity_ContestLobby_EventScript_293F98 end -LilycoveCity_ContestLobby_EventScript_293F64:: @ 8293F64 +LilycoveCity_ContestLobby_EventScript_293F64: @ 8293F64 msgbox LilycoveCity_ContestLobby_Text_2C43FA, 5 compare VAR_RESULT, 0 call_if 1, LilycoveCity_ContestLobby_EventScript_293F85 msgbox LilycoveCity_ContestLobby_Text_2C451B, 4 - goto LilycoveCity_ContestLobby_EventScript_293D2C + goto EventScript_StartBlending end -LilycoveCity_ContestLobby_EventScript_293F85:: @ 8293F85 +LilycoveCity_ContestLobby_EventScript_293F85: @ 8293F85 msgbox LilycoveCity_ContestLobby_Text_2C444C, 4 return -LilycoveCity_ContestLobby_EventScript_293F8E:: @ 8293F8E +LilycoveCity_ContestLobby_EventScript_293F8E: @ 8293F8E msgbox LilycoveCity_ContestLobby_Text_2C4573, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293F98:: @ 8293F98 +LilycoveCity_ContestLobby_EventScript_293F98: @ 8293F98 msgbox LilycoveCity_ContestLobby_Text_2C45E8, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_293FA2:: @ 8293FA2 +LilycoveCity_ContestLobby_EventScript_293FA2: @ 8293FA2 msgbox LilycoveCity_ContestLobby_Text_2937F9, 2 end -LilycoveCity_ContestLobby_EventScript_293FAB:: @ 8293FAB +LilycoveCity_ContestLobby_EventScript_293FAB: @ 8293FAB msgbox LilycoveCity_ContestLobby_Text_293842, 2 end -LilycoveCity_ContestLobby_EventScript_293FB4:: @ 8293FB4 +LilycoveCity_ContestLobby_EventScript_293FB4: @ 8293FB4 msgbox LilycoveCity_ContestLobby_Text_29388F, 2 end -LilycoveCity_ContestLobby_EventScript_293FBD:: @ 8293FBD +LilycoveCity_ContestLobby_EventScript_293FBD: @ 8293FBD setvar VAR_0x8008, 15 goto LilycoveCity_ContestLobby_EventScript_293FC8 end -LilycoveCity_ContestLobby_EventScript_293FC8:: @ 8293FC8 +LilycoveCity_ContestLobby_EventScript_293FC8: @ 8293FC8 lock faceplayer - msgbox LilycoveCity_ContestLobby_Text_293A6B, 4 + msgbox Text_Pblock1_Talk_0, 4 specialvar VAR_RESULT, PlayerHasBerries compare VAR_RESULT, 1 goto_eq LilycoveCity_ContestLobby_EventScript_293FEE @@ -527,12 +541,12 @@ LilycoveCity_ContestLobby_EventScript_293FC8:: @ 8293FC8 goto_eq LilycoveCity_ContestLobby_EventScript_293FF8 end -LilycoveCity_ContestLobby_EventScript_293FEE:: @ 8293FEE - msgbox LilycoveCity_ContestLobby_Text_293AA5, 4 +LilycoveCity_ContestLobby_EventScript_293FEE: @ 8293FEE + msgbox Text_Pblock1_Talk_1, 4 release end -LilycoveCity_ContestLobby_EventScript_293FF8:: @ 8293FF8 +LilycoveCity_ContestLobby_EventScript_293FF8: @ 8293FF8 checkitem ITEM_POKEBLOCK_CASE, 1 compare VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_294028 @@ -545,12 +559,12 @@ LilycoveCity_ContestLobby_EventScript_293FF8:: @ 8293FF8 goto LilycoveCity_ContestLobby_EventScript_294032 end -LilycoveCity_ContestLobby_EventScript_294028:: @ 8294028 +LilycoveCity_ContestLobby_EventScript_294028: @ 8294028 msgbox LilycoveCity_ContestLobby_Text_293BB4, 4 release end -LilycoveCity_ContestLobby_EventScript_294032:: @ 8294032 +LilycoveCity_ContestLobby_EventScript_294032: @ 8294032 msgbox LilycoveCity_ContestLobby_Text_293AF0, 4 giveitem_std ITEM_PECHA_BERRY setflag FLAG_0x921 @@ -562,73 +576,73 @@ LilycoveCity_ContestLobby_Movement_294053: @ 8294053 step_28 step_end -LilycoveCity_ContestLobby_EventScript_294055:: @ 8294055 +EventScript_PblockLink: @ 8294055 lockall specialvar VAR_RESULT, PlayerHasBerries compare VAR_RESULT, 0 - goto_eq LilycoveCity_ContestLobby_EventScript_2940B1 + goto_eq EventScript_PblocLink_NoBerries checkitem ITEM_POKEBLOCK_CASE, 1 compare VAR_RESULT, 0 - goto_eq LilycoveCity_ContestLobby_EventScript_29416C + goto_eq EventScript_PblocLink_NoPokeblock specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare VAR_RESULT, 65535 - goto_if 5, LilycoveCity_ContestLobby_EventScript_294092 + goto_if 5, EventScript_PblocLink_Ask compare VAR_RESULT, 65535 - goto_eq LilycoveCity_ContestLobby_EventScript_294162 + goto_eq EventScript_PblocLink_FullPokeblock end -LilycoveCity_ContestLobby_EventScript_294092:: @ 8294092 - msgbox LilycoveCity_ContestLobby_Text_2938CD, 5 +EventScript_PblocLink_Ask: @ 8294092 + msgbox Text_PblockLink_Ask, 5 compare VAR_RESULT, 1 - goto_eq LilycoveCity_ContestLobby_EventScript_2940BB + goto_eq EventScript_PblocLink_TryConnect compare VAR_RESULT, 0 - goto_eq LilycoveCity_ContestLobby_EventScript_294160 + goto_eq EventScript_PblocLink_End end -LilycoveCity_ContestLobby_EventScript_2940B1:: @ 82940B1 - msgbox LilycoveCity_ContestLobby_Text_2939BD, 4 +EventScript_PblocLink_NoBerries: @ 82940B1 + msgbox Text_PblockLink_NoBerries, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_2940BB:: @ 82940BB +EventScript_PblocLink_TryConnect: @ 82940BB call LilycoveCity_ContestLobby_EventScript_27134F compare VAR_RESULT, 0 - goto_eq LilycoveCity_ContestLobby_EventScript_294160 + goto_eq EventScript_PblocLink_End specialvar VAR_RESULT, sub_80093CC compare VAR_RESULT, 1 goto_eq LilycoveCity_ContestLobby_EventScript_2941ED - message LilycoveCity_ContestLobby_Text_293955 + message Text_PblockLink_Searching waitmessage special sub_80B2FD8 waitstate compare VAR_RESULT, 1 - goto_eq LilycoveCity_ContestLobby_EventScript_2941AA + goto_eq EventScript_PblocLink_SpawnPartners compare VAR_RESULT, 2 - goto_eq LilycoveCity_ContestLobby_EventScript_294176 + goto_eq EventScript_PblocLink_SomeoneNotReady compare VAR_RESULT, 3 - goto_eq LilycoveCity_ContestLobby_EventScript_294183 + goto_eq EventScript_PblocLink_DifferentSelections compare VAR_RESULT, 5 - goto_eq LilycoveCity_ContestLobby_EventScript_294190 + goto_eq EventScript_PblocLink_CloseLink compare VAR_RESULT, 6 - goto_eq LilycoveCity_ContestLobby_EventScript_29419D + goto_eq EventScript_PblocLink_LinkError end -LilycoveCity_ContestLobby_EventScript_29411D:: @ 829411D - msgbox LilycoveCity_ContestLobby_Text_293986, 4 - goto LilycoveCity_ContestLobby_EventScript_294147 +EventScript_PblocLink_1Arrived: @ 829411D + msgbox Text_PblockLink_1Arrived, 4 + goto EventScript_PblocLink_StartLinkBlending end -LilycoveCity_ContestLobby_EventScript_29412B:: @ 829412B - msgbox LilycoveCity_ContestLobby_Text_293992, 4 - goto LilycoveCity_ContestLobby_EventScript_294147 +EventScript_PblocLink_2Arrived: @ 829412B + msgbox Text_PblockLink_2Arrived, 4 + goto EventScript_PblocLink_StartLinkBlending end -LilycoveCity_ContestLobby_EventScript_294139:: @ 8294139 - msgbox LilycoveCity_ContestLobby_Text_2939A5, 4 - goto LilycoveCity_ContestLobby_EventScript_294147 +EventScript_PblocLink_3Arrived: @ 8294139 + msgbox Text_PblockLink_3Arrived, 4 + goto EventScript_PblocLink_StartLinkBlending end -LilycoveCity_ContestLobby_EventScript_294147:: @ 8294147 +EventScript_PblocLink_StartLinkBlending: @ 8294147 setvar VAR_0x8004, 0 fadescreen 1 removeobject 240 @@ -640,109 +654,109 @@ LilycoveCity_ContestLobby_EventScript_294147:: @ 8294147 releaseall end -LilycoveCity_ContestLobby_EventScript_294160:: @ 8294160 +EventScript_PblocLink_End: @ 8294160 releaseall end -LilycoveCity_ContestLobby_EventScript_294162:: @ 8294162 - msgbox LilycoveCity_ContestLobby_Text_2939F3, 4 +EventScript_PblocLink_FullPokeblock: @ 8294162 + msgbox Text_PblockLink_FullPokeblock, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_29416C:: @ 829416C - msgbox LilycoveCity_ContestLobby_Text_293A2D, 4 +EventScript_PblocLink_NoPokeblock: @ 829416C + msgbox Text_PblockLink_NoPokeblock, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_294176:: @ 8294176 +EventScript_PblocLink_SomeoneNotReady: @ 8294176 special CloseLink msgbox LilycoveCity_ContestLobby_Text_2781C7, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_294183:: @ 8294183 +EventScript_PblocLink_DifferentSelections: @ 8294183 special CloseLink msgbox LilycoveCity_ContestLobby_Text_278255, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_294190:: @ 8294190 +EventScript_PblocLink_CloseLink: @ 8294190 special CloseLink msgbox gUnknown_08272D9C, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_29419D:: @ 829419D +EventScript_PblocLink_LinkError: @ 829419D special CloseLink msgbox LilycoveCity_ContestLobby_Text_27821C, 4 releaseall end -LilycoveCity_ContestLobby_EventScript_2941AA:: @ 82941AA +EventScript_PblocLink_SpawnPartners: @ 82941AA fadescreen 1 specialvar VAR_RESULT, GetLinkPartnerNames copyvar VAR_0x8008, VAR_RESULT copyvar VAR_0x8004, VAR_0x8008 special SpawnLinkPartnerFieldObject - goto LilycoveCity_ContestLobby_EventScript_2941C4 + goto EventScript_PblocLink_Arrived end -LilycoveCity_ContestLobby_EventScript_2941C4:: @ 82941C4 +EventScript_PblocLink_Arrived: @ 82941C4 fadescreen 0 switch VAR_0x8008 - case 2, LilycoveCity_ContestLobby_EventScript_29411D - case 3, LilycoveCity_ContestLobby_EventScript_29412B - case 4, LilycoveCity_ContestLobby_EventScript_294139 + case 2, EventScript_PblocLink_1Arrived + case 3, EventScript_PblocLink_2Arrived + case 4, EventScript_PblocLink_3Arrived end -LilycoveCity_ContestLobby_EventScript_2941ED:: @ 82941ED +LilycoveCity_ContestLobby_EventScript_2941ED: @ 82941ED setvar VAR_0x8004, 13 - goto LilycoveCity_ContestLobby_EventScript_2941F8 + goto EventScript_PblocLink_DecideLeader end -LilycoveCity_ContestLobby_EventScript_2941F8:: @ 82941F8 - message LilycoveCity_ContestLobby_Text_27C1EA +EventScript_PblocLink_DecideLeader: @ 82941F8 + message Text_DecideLinkLeader waitmessage multichoice 16, 6, 81, 0 switch VAR_RESULT - case 0, LilycoveCity_ContestLobby_EventScript_29425D - case 1, LilycoveCity_ContestLobby_EventScript_294235 - case 2, LilycoveCity_ContestLobby_EventScript_294190 - case 127, LilycoveCity_ContestLobby_EventScript_294190 + case 0, EventScript_PblocLink_TryJoinGroup + case 1, EventScript_PblocLink_TryBecomeLeader + case 2, EventScript_PblocLink_CloseLink + case 127, EventScript_PblocLink_CloseLink end -LilycoveCity_ContestLobby_EventScript_294235:: @ 8294235 - call LilycoveCity_ContestLobby_EventScript_294285 +EventScript_PblocLink_TryBecomeLeader: @ 8294235 + call EventScript_PblocLink_BecomeLeader compare VAR_RESULT, 1 - goto_eq LilycoveCity_ContestLobby_EventScript_29428F + goto_eq EventScript_PblocLink_SpawnPartners_ compare VAR_RESULT, 5 - goto_eq LilycoveCity_ContestLobby_EventScript_2941F8 + goto_eq EventScript_PblocLink_DecideLeader compare VAR_RESULT, 8 - goto_eq LilycoveCity_ContestLobby_EventScript_294235 + goto_eq EventScript_PblocLink_TryBecomeLeader release end -LilycoveCity_ContestLobby_EventScript_29425D:: @ 829425D - call LilycoveCity_ContestLobby_EventScript_29428A +EventScript_PblocLink_TryJoinGroup: @ 829425D + call EventScript_PblocLink_JoinGroup compare VAR_RESULT, 1 - goto_eq LilycoveCity_ContestLobby_EventScript_29428F + goto_eq EventScript_PblocLink_SpawnPartners_ compare VAR_RESULT, 5 - goto_eq LilycoveCity_ContestLobby_EventScript_2941F8 + goto_eq EventScript_PblocLink_DecideLeader compare VAR_RESULT, 8 - goto_eq LilycoveCity_ContestLobby_EventScript_29425D + goto_eq EventScript_PblocLink_TryJoinGroup release end -LilycoveCity_ContestLobby_EventScript_294285:: @ 8294285 +EventScript_PblocLink_BecomeLeader: @ 8294285 special BerryBlenderLinkBecomeLeader waitstate return -LilycoveCity_ContestLobby_EventScript_29428A:: @ 829428A +EventScript_PblocLink_JoinGroup: @ 829428A special BerryBlenderLinkJoinGroup waitstate return -LilycoveCity_ContestLobby_EventScript_29428F:: @ 829428F - goto LilycoveCity_ContestLobby_EventScript_2941AA +EventScript_PblocLink_SpawnPartners_: @ 829428F + goto EventScript_PblocLink_SpawnPartners end diff --git a/include/librfu.h b/include/librfu.h index aae7df4e9..2c4d091bd 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -200,8 +200,6 @@ extern struct RfuUnk1* gUnknown_03007870[4]; extern void* sub_82E53F4; extern void rfu_STC_clearAPIVariables(void); -struct UnkLinkRfuStruct_02022B14; - void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam); void rfu_REQ_stopMode(void); void rfu_waitREQComplete(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index ca39c2fb2..b517fba17 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -232,5 +232,21 @@ void sub_8011068(u8 a0); void sub_8011170(u32 a0); void sub_8011A64(u8 a0, u16 a1); u8 sub_801048C(bool32 a0); +void sub_800DF90(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2); +void sub_8010F84(u8 a0, u32 a1, u32 a2); +void sub_8011C10(u32 a0); +bool32 sub_8012240(void); +void sub_800EF38(void); +bool32 sub_80105EC(void); +bool32 sub_801064C(u16 a0, const u8 *a1); +void sub_8010688(u8 a0, u16 a1, const u8 *a2); +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 sub_801103C(void); +void sub_8011C5C(void); +void sub_80106D4(void); #endif //GUARD_LINK_RFU_H diff --git a/src/link_rfu.c b/src/link_rfu.c index 37aa20950..b539c31d6 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -2850,7 +2850,7 @@ void sub_800EF38(void) gUnknown_03005000.unk_ce7 = gUnknown_03004140.unk_00; } -bool8 sub_800EF58(bool32 a0) +bool32 sub_800EF58(bool32 a0) { if (gUnknown_03005000.unk_04 == 17 || a0) { @@ -4104,7 +4104,7 @@ bool8 sub_8010540(void) return retval; } -bool8 sub_80105EC(void) +bool32 sub_80105EC(void) { u8 flags = 0; int i; @@ -4129,7 +4129,7 @@ bool8 sub_80105EC(void) return FALSE; } -bool8 sub_801064C(u16 a0, const u8 *a1) +bool32 sub_801064C(u16 a0, const u8 *a1) { u8 r1 = sub_8011CE4(a1, a0); if (r1 == 0xFF) @@ -4154,14 +4154,14 @@ void sub_80106D4(void) rfu_NI_setSendData(1 << gUnknown_03005000.unk_c3e, 8, &gUnknown_03005000.unk_c85, 1); } -u8 sub_8010714(u16 a0, const u8 *a1) +u32 sub_8010714(u16 a0, const u8 *a1) { u8 r0 = sub_8011CE4(a1, a0); if (r0 == 0xff) return 2; if (gUnknown_03007880[r0]->unk_0 == 0) - return TRUE; - return FALSE; + return 1; + return 0; } void sub_8010750(void) diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index f37b4019f..e73030e75 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -11,47 +11,108 @@ #include "menu.h" #include "list_menu.h" #include "menu_helpers.h" +#include "script.h" +#include "sound.h" +#include "constants/songs.h" -struct UnkStruct_02 +struct UnkStruct_Shared { struct UnkLinkRfuStruct_02022B14 field_0; - u8 field_D; + u8 field_xD; u8 field_E; u8 field_F; u8 playerName[PLAYER_NAME_LENGTH]; +}; + +struct UnkStruct_x1C +{ + struct UnkStruct_Shared unk0; + u8 unk18; +}; + +struct UnkStruct_x20 +{ + struct UnkStruct_Shared unk; u16 field_18; u8 field_1A_0:2; u8 field_1A_1:1; u8 field_1B; + u8 field_1D; + u8 field_1E; + u8 field_1F; }; -struct UnkStruct_01 +struct UnkStruct_Main0 { - struct UnkStruct_02 *field_0; - void *field_4; - void *field_8; - u8 field_C; - u8 field_D; + struct UnkStruct_x20 arr[5]; +}; + +struct UnkStruct_Main4 +{ + struct UnkStruct_x1C arr[5]; +}; + +struct UnkStruct_Main8 +{ + struct UnkStruct_x20 arr[5]; +}; + +struct UnkStruct_Leader +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + struct UnkStruct_Main8 *field_8; + u8 state; + u8 textState; u8 field_E; u8 field_F; u8 field_10; u8 field_11; - u8 field_12; + u8 listTaskId; u8 field_13; u8 field_14; u8 field_15; u8 field_16; u8 field_17; + u8 field_18; + u8 field_19; + u16 field_1A; }; -extern struct UnkStruct_01 *gUnknown_02022C30; +struct UnkStruct_Group +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + u8 state; + u8 textState; + u8 field_A; + u8 field_B; + u8 field_C; + u8 field_D; + u8 listTaskId; + u8 field_F; + u8 field_10; + u8 field_11; + u8 field_12; + u8 field_13; + u8 field_14; + u8 field_15; +}; + +union UnkUnion_Main +{ + struct UnkStruct_Leader *leader; + struct UnkStruct_Group *group; +}; + +extern union UnkUnion_Main gUnknown_02022C30; extern u8 gUnknown_02022C2C; extern u8 gUnknown_02022C2D; // IWRAM vars -IWRAM_DATA struct UnkStruct_01 *gUnknown_03000DA0; -IWRAM_DATA u32 gUnknown_03000DA4; +IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; +IWRAM_DATA struct UnkStruct_Group *gUnknown_03000DA4; IWRAM_DATA void *gUnknown_03000DA8; IWRAM_DATA void *gUnknown_03000DAC; IWRAM_DATA bool32 gUnknown_03000DB0; @@ -60,24 +121,71 @@ IWRAM_DATA bool32 gUnknown_03000DB0; void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5); u16 ReadAsU16(const u8 *ptr); void sub_8012780(u8 taskId); -void sub_80175EC(void *arg0, u8 count); -void sub_8017580(void *arg0, u8 count); -u8 sub_8016FC0(void *arg0, u32 arg1); -bool8 sub_8017064(u8 *arg0, const u8 *str); -void sub_801320C(struct UnkStruct_01 *arg0, u32 arg1, u32 arg2); +void sub_80134E8(u8 taskId); +void sub_80175EC(struct UnkStruct_Main4 *arg0, u8 count); +void sub_8017580(struct UnkStruct_Main0 *arg0, u8 count); +u8 sub_8016FC0(struct UnkStruct_Main4 *arg0, u32 arg1); +bool8 PrintOnTextbox(u8 *textState, const u8 *str); +bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2); +u8 sub_8013398(struct UnkStruct_Main0 *arg0); +s8 sub_80170B8(u8 *arg0, bool32 arg1); +void sub_8018404(u8 *dest, struct UnkStruct_x20 *arg1); +void sub_8012F64(struct UnkStruct_Leader *data); +void sub_80149C4(void); +u8 sub_80132D4(struct UnkStruct_Main0 *arg0); +void sub_80178A0(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); +u32 sub_80176E4(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); +void sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_Shared *arg1, u8 arg2); +u8 sub_8013E44(void); +u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id); +void sub_8013BD8(struct UnkStruct_Group *arg0, s32 id); +void sub_80173D4(void); // const rom data extern const u8 *const gUnknown_082EDB60[][5]; + extern const u8 gText_UnkCtrlCodeF907[]; extern const u8 gUnknown_082EDBC4[]; extern const u8 gText_AwaitingCommunication[]; +extern const u8 gText_AwaitingLink[]; +extern const u8 gUnknown_082EDC5C[]; +extern const u8 gUnknown_082EDC9C[]; +extern const u8 gUnknown_082EDC78[]; +extern const u8 gUnknown_082EDD58[]; +extern const u8 gUnknown_082EDBE8[]; +extern const u8 gUnknown_082EDC0C[]; +extern const u8 gUnknown_082EDC34[]; +extern const u8 gUnknown_082EE560[]; +extern const u8 gUnknown_082EE57C[]; +extern const u8 gUnknown_082EFC54[]; +extern const u8 gUnknown_082EFC3C[]; +extern const u8 gUnknown_082EDE0C[]; +extern const u8 gUnknown_082EDDF4[]; +extern const u8 gUnknown_082EF7DC[]; +extern const u8 gUnknown_082EDE48[]; +extern const u8 gUnknown_082EDE64[]; + extern const u32 gUnknown_082F00C4[]; + +extern const u8 gUnknown_082F0530[]; + extern const struct WindowTemplate gUnknown_082F00BC; extern const struct WindowTemplate gUnknown_082F0124; extern const struct WindowTemplate gUnknown_082F012C; extern const struct WindowTemplate gUnknown_082F011C; +extern const struct WindowTemplate gUnknown_082F0174; +extern const struct WindowTemplate gUnknown_082F017C; + extern const struct ListMenuTemplate gUnknown_082F015C; +extern const struct ListMenuTemplate gUnknown_082F0204; + extern const u8 *const gUnknown_082F0048[]; +extern const u8 *const gUnknown_082EDDC4[]; +extern const u8 *const gUnknown_082EFB70[]; +extern const u8 *const gUnknown_082EDD50[]; +extern const u8 *const gUnknown_082EDE9C[]; + +extern const struct UnkStruct_Shared gUnknown_082F045C[]; // code void nullsub_89(void) @@ -151,25 +259,26 @@ bool32 sub_80126CC(u32 caseId) void BerryBlenderLinkBecomeLeader(void) { u8 taskId; - struct UnkStruct_01 *dataPtr; + struct UnkStruct_Leader *dataPtr; taskId = CreateTask(sub_8012780, 0); - gUnknown_02022C30 = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_02022C30.leader = dataPtr = (void*)(gTasks[taskId].data); gUnknown_03000DA0 = dataPtr; - dataPtr->field_C = 0; - dataPtr->field_D = 0; + dataPtr->state = 0; + dataPtr->textState = 0; gSpecialVar_Result = 0; } void sub_8012780(u8 taskId) { - struct UnkStruct_01 *data = gUnknown_02022C30; + u32 id, val; + struct UnkStruct_Leader *data = gUnknown_02022C30.leader; - switch (data->field_C) + switch (data->state) { case 0: - if (gSpecialVar_0x8004 == 20 || gSaveBlock2Ptr->frontierChosenLvl == 1) + if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontierChosenLvl == 1) gSpecialVar_0x8004++; gUnknown_02022C2C = gUnknown_082F00C4[gSpecialVar_0x8004]; gUnknown_02022C2D = gUnknown_082F00C4[gSpecialVar_0x8004] >> 8; @@ -177,7 +286,7 @@ void sub_8012780(u8 taskId) sub_800B488(); OpenLink(); sub_8011C10(gUnknown_02022C2D & 0xF); - data->field_C = 3; + data->state = 3; break; case 3: data->field_4 = AllocZeroed(0x70); @@ -185,11 +294,11 @@ void sub_8012780(u8 taskId) data->field_8 = AllocZeroed(0xA0); sub_80175EC(data->field_4, 4); sub_8017580(data->field_0, 5); - sub_800DF90(&data->field_0->field_0, data->field_0->playerName); - data->field_0->field_18 = 0; - data->field_0->field_1A_0 = 1; - data->field_0->field_1A_1 = 0; - data->field_0->field_1B = 0; + sub_800DF90(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName); + data->field_0->arr[0].field_18 = 0; + data->field_0->arr[0].field_1A_0 = 1; + data->field_0->arr[0].field_1A_1 = 0; + data->field_0->arr[0].field_1B = 0; data->field_17 = sub_8016FC0(data->field_4, 0xFF); data->field_10 = AddWindow(&gUnknown_082F00BC); switch (gUnknown_02022C2D & 0xF) @@ -213,7 +322,7 @@ void sub_8012780(u8 taskId) NewMenuHelpers_DrawStdWindowFrame(data->field_F, FALSE); gMultiuseListMenuTemplate = gUnknown_082F015C; gMultiuseListMenuTemplate.windowId = data->field_F; - data->field_12 = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); NewMenuHelpers_DrawStdWindowFrame(data->field_11, FALSE); PutWindowTilemap(data->field_11); @@ -221,7 +330,7 @@ void sub_8012780(u8 taskId) CopyBgTilemapBufferToVram(0); data->field_13 = 1; - data->field_C = 4; + data->state = 4; break; case 4: StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]); @@ -238,18 +347,770 @@ void sub_8012780(u8 taskId) } sub_80124EC(data->field_11, gUnknown_02022C2D, data->field_13); - data->field_C = 5; + data->state = 5; break; case 5: - if (sub_8017064(&data->field_D, gStringVar4)) - data->field_C = 6; + if (PrintOnTextbox(&data->textState, gStringVar4)) + data->state = 6; break; case 6: sub_801320C(data, 7, 10); if (gMain.newKeys & B_BUTTON) { - if (data->field_13) + if (data->field_13 == 1) + data->state = 23; + else if ((gUnknown_02022C2D & 0xF0) != 0) + data->state = 30; + else + data->state = 19; + } + if ((gUnknown_02022C2D >> 4) != 0 + && data->field_13 > (gUnknown_02022C2D >> 4) - 1 + && (gUnknown_02022C2D & 0xF) != 0 + && sub_8012240() + && gMain.newKeys & START_BUTTON) + { + data->state = 15; + sub_800EF38(); + } + if (data->state == 6 && sub_80105EC()) + { + data->state = 9; + } + break; + case 9: + if (!sub_80105EC()) + { + data->state = 6; + data->field_13 = sub_8013398(data->field_0); + } + break; + case 10: + id = ((gUnknown_02022C2C & 0xF) == 2) ? 1 : 0; + if (PrintOnTextbox(&data->textState, gUnknown_082EDDC4[id])) + { + data->field_13 = sub_8013398(data->field_0); + sub_81AE70C(data->listTaskId); + data->state = 4; + } + break; + case 29: + id = ((gUnknown_02022C2D & 0xF) == 2) ? 0 : 1; + if (PrintOnTextbox(&data->textState, gUnknown_082EDDC4[id])) + { + data->state = 21; + } + break; + case 7: + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + data->state = 11; + } + break; + case 11: + switch (sub_80170B8(&data->textState, sub_801064C(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName))) + { + case 0: + sub_800E0E8(); + CreateWirelessStatusIndicatorSprite(0, 0); + data->field_19 = 5; + sub_8010688(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + data->state = 12; + break; + case 1: + case -1: + data->field_19 = 6; + sub_8010688(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + data->state = 12; + break; + case -3: + data->state = 9; + break; + } + break; + case 12: + val = sub_8010714(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + if (val == 1) + { + if (data->field_19 == 5) + { + data->field_0->arr[data->field_13].field_1B = 0; + sub_81AE70C(data->listTaskId); + data->field_13++; + if (data->field_13 == (gUnknown_02022C2D & 0xF)) + { + if ((gUnknown_02022C2D & 0xF0) != 0 || data->field_13 == 4) + { + data->state = 15; + } + else + { + sub_8018404(gStringVar1, &data->field_0->arr[data->field_13 - 1]); + StringExpandPlaceholders(gStringVar4, gUnknown_082EDC9C); + data->state = 13; + } + + sub_800EF38(); + sub_80124EC(data->field_11, gUnknown_02022C2D, data->field_13); + } + else + { + data->state = 4; + } + } + else + { + sub_8011DC0(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.playerTrainerId)); + data->field_0->arr[data->field_13].field_1A_0 = 0; + sub_8013398(data->field_0); + sub_81AE70C(data->listTaskId); + data->state = 4; + } + + data->field_19 = 0; } + else if (val == 2) + { + sub_8011A64(0, 0); + data->state = 4; + } + break; + case 13: + if (PrintOnTextbox(&data->textState, gStringVar4)) + data->state = 14; + break; + case 14: + if (++data->field_E > 120) + data->state = 17; + break; + case 15: + if (PrintOnTextbox(&data->textState, gUnknown_082EDC5C)) + data->state = 16; + break; + case 16: + switch (sub_80170B8(&data->textState, FALSE)) + { + case 0: + data->state = 17; + break; + case 1: + case -1: + if ((gUnknown_02022C2D & 0xF0) != 0) + data->state = 30; + else + data->state = 19; + break; + } + break; + case 19: + if (PrintOnTextbox(&data->textState, gUnknown_082EDC78)) + data->state = 20; + break; + case 20: + switch (sub_80170B8(&data->textState, FALSE)) + { + case 0: + data->state = 23; + break; + case 1: + case -1: + if ((gUnknown_02022C2D & 0xF0) != 0) + data->state = 15; + else if (data->field_13 == (gUnknown_02022C2D & 0xF)) + data->state = 15; + else + data->state = 4; + break; + } + break; + case 17: + if (!sub_801320C(data, 7, 29)) + data->state = 18; + break; + case 18: + if (sub_800EF1C()) + { + if (sub_800EF58(FALSE)) + { + data->state = 26; + } + else + { + if (++data->field_1A > 300) + { + data->state = 29; + data->textState = 0; + } + } + } + else + { + data->state = 29; + data->textState = 0; + } + break; + case 30: + if (PrintOnTextbox(&data->textState, gUnknown_082EDD58)) + data->state = 23; + break; + case 21: + case 23: + sub_800E084(); + sub_800EDD4(); + sub_8012F64(data); + data->state++; + break; + case 24: + EnableBothScriptContexts(); + DestroyTask(taskId); + gSpecialVar_Result = 5; + break; + case 22: + EnableBothScriptContexts(); + DestroyTask(taskId); + gSpecialVar_Result = 8; + break; + case 26: + if (sub_8011A80()) + { + data->state = 29; + } + else + { + if (gReceivedRemoteLinkPlayers != 0) + { + if (sub_80126CC(gUnknown_02022C2C)) + sub_801103C(); + sub_8011068(1); + sub_80149C4(); + sub_8012F64(data); + DestroyTask(taskId); + } + } + break; + } +} + +void sub_8012F64(struct UnkStruct_Leader *data) +{ + ClearWindowTilemap(data->field_11); + sub_819746C(data->field_11, FALSE); + DestroyListMenuTask(data->listTaskId, 0, 0); + ClearWindowTilemap(data->field_10); + sub_819746C(data->field_F, FALSE); + CopyBgTilemapBufferToVram(0); + RemoveWindow(data->field_11); + RemoveWindow(data->field_F); + RemoveWindow(data->field_10); + DestroyTask(data->field_17); + + Free(data->field_8); + Free(data->field_0); + Free(data->field_4); +} + +void sub_8012FC4(u8 *dst, u8 caseId) +{ + switch (caseId) + { + case 1: + case 2: + case 4: + case 14: + case 28: + StringExpandPlaceholders(dst, gUnknown_082EDBE8); + break; + case 21: + case 22: + StringExpandPlaceholders(dst, gUnknown_082EDC0C); + break; + case 3: + case 9: + case 10: + case 11: + case 15: + case 16: + case 23: + case 24: + case 25: + case 26: + case 27: + StringExpandPlaceholders(dst, gUnknown_082EDC34); + break; + } +} + +void sub_8013078(u8 *dst, u8 caseId) +{ + switch (caseId) + { + case 65: + case 68: + StringExpandPlaceholders(dst, gUnknown_082EE560); + break; + case 69: + case 72: + StringExpandPlaceholders(dst, gUnknown_082EE57C); + break; + } +} + +void sub_80130B4(u8 *dst, u8 caseId) +{ + switch (caseId) + { + case 1: + case 2: + case 4: + case 14: + case 21: + case 22: + case 28: + StringExpandPlaceholders(dst, gUnknown_082EFC3C); + break; + case 3: + case 9: + case 10: + case 11: + case 15: + case 16: + case 23: + case 24: + case 25: + case 26: + case 27: + StringExpandPlaceholders(dst, gUnknown_082EFC54); + break; + } +} + +void sub_8013160(u8 *dst, u8 caseId) +{ + switch (caseId) + { + case 1: + case 2: + case 4: + case 14: + case 21: + case 22: + case 28: + StringExpandPlaceholders(dst, gUnknown_082EDDF4); + break; + case 3: + case 9: + case 10: + case 11: + case 15: + case 16: + case 23: + case 24: + case 25: + case 26: + case 27: + StringExpandPlaceholders(dst, gUnknown_082EDE0C); + break; + } +} + +bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2) +{ + switch (sub_80132D4(data->field_0)) + { + case 1: + PlaySE(SE_PC_LOGIN); + sub_81AE70C(data->listTaskId); + sub_8018404(gStringVar2, &data->field_0->arr[data->field_13]); + sub_8012FC4(gStringVar4, gUnknown_02022C2C); + data->state = arg1; + break; + case 2: + sub_8011A64(0, 0); + sub_81AE70C(data->listTaskId); + data->state = arg2; + return TRUE; + } + + return FALSE; +} + +void sub_8013278(u8 arg0, u32 id, u8 arg2) +{ + struct UnkStruct_Leader *data = gUnknown_02022C30.leader; + u8 var = 0; + + switch (data->field_0->arr[id].field_1A_0) + { + case 1: + if (data->field_0->arr[id].field_1B != 0) + var = 2; + break; + case 2: + var = 1; + break; + } + + sub_80178A0(arg0, 0, arg2, &data->field_0->arr[id], var, id); +} + +u8 sub_80132D4(struct UnkStruct_Main0 *arg0) +{ + struct UnkStruct_Leader *data = gUnknown_02022C30.leader; + u8 ret = 0; + u8 i; + s32 id; + + for (i = 1; i < 5; i++) + { + u16 var = data->field_0->arr[i].field_1A_0; + if (var == 1) + { + id = sub_80176E4(&data->field_0->arr[i], data->field_4->arr); + if (id != 0xFF) + { + data->field_0->arr[i].unk = data->field_4->arr[id].unk0; + data->field_0->arr[i].field_18 = var; + } + else + { + data->field_0->arr[i].field_1A_0 = 2; + ret = 2; + } + } + } + + for (id = 0; id < 4; id++) + sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 5); + + if (ret != 2) + { + for (id = 0; id < 5; id++) + { + if (data->field_0->arr[id].field_1B != 0) + ret = 1; + } + } + + return ret; +} + +u8 sub_8013398(struct UnkStruct_Main0 *arg0) +{ + struct UnkStruct_Leader *data = gUnknown_02022C30.leader; + u8 copiedCount; + s32 i; + u8 ret; + + for (i = 0; i < 5; i++) + data->field_8->arr[i] = data->field_0->arr[i]; + + copiedCount = 0; + for (i = 0; i < 5; i++) + { + if (data->field_8->arr[i].field_1A_0 == 1) + { + data->field_0->arr[copiedCount] = data->field_8->arr[i]; + copiedCount++; + } + } + + ret = copiedCount; + for (; copiedCount < 5; copiedCount++) + { + data->field_0->arr[copiedCount].unk = gUnknown_082F045C[0]; + data->field_0->arr[copiedCount].field_18 = 0; + data->field_0->arr[copiedCount].field_1A_0 = 0; + data->field_0->arr[copiedCount].field_1A_1 = 0; + data->field_0->arr[copiedCount].field_1B = 0; + } + + for (i = 0; i < 5; i++) + { + if (data->field_0->arr[i].field_1A_0 != 1) + continue; + if (data->field_0->arr[i].field_1B != 0x40) + continue; + + ret = i; + break; + } + + return ret; +} + +void BerryBlenderLinkJoinGroup(void) +{ + u8 taskId; + struct UnkStruct_Group *dataPtr; + + taskId = CreateTask(sub_80134E8, 0); + gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_03000DA4 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + gSpecialVar_Result = 0; +} + +void sub_80134E8(u8 taskId) +{ + s32 id; + struct UnkStruct_Group *data = gUnknown_02022C30.group; + + switch (data->state) + { + case 0: + if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontierChosenLvl == 1) + gSpecialVar_0x8004++; + gUnknown_02022C2C = gUnknown_082F0530[gSpecialVar_0x8004]; + sub_8010F84(gUnknown_02022C2C, 0, 0); + sub_800B488(); + OpenLink(); + sub_8011C5C(); + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x200); + data->state = 1; + break; + case 1: + if (PrintOnTextbox(&data->textState, gUnknown_082EFB70[gSpecialVar_0x8004])) + data->state = 2; + break; + case 2: + sub_80175EC(data->field_4, 4); + sub_8017580(data->field_0, 16); + data->field_11 = sub_8016FC0(data->field_4, gSpecialVar_0x8004); + data->field_C = AddWindow(&gUnknown_082F00BC); + data->field_B = AddWindow(&gUnknown_082F0174); + data->field_D = AddWindow(&gUnknown_082F017C); + + FillWindowPixelBuffer(data->field_C, 0x22); + sub_80173E0(data->field_C, 0, gUnknown_082EF7DC, 8, 1, 4); + PutWindowTilemap(data->field_C); + CopyWindowToVram(data->field_C, 2); + + NewMenuHelpers_DrawStdWindowFrame(data->field_B, FALSE); + gMultiuseListMenuTemplate = gUnknown_082F0204; + gMultiuseListMenuTemplate.windowId = data->field_B; + data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + + NewMenuHelpers_DrawStdWindowFrame(data->field_D, FALSE); + PutWindowTilemap(data->field_D); + sub_80125BC(data->field_D); + CopyWindowToVram(data->field_D, 2); + + CopyBgTilemapBufferToVram(0); + data->field_F = 0; + data->state = 3; + break; + case 3: + id = sub_8013E44(); + switch (id) + { + case 1: + PlaySE(SE_PC_LOGIN); + sub_81AE70C(data->listTaskId); + break; + case 0: + id = ListMenuHandleInputGetItemId(data->listTaskId); + if (gMain.newKeys & A_BUTTON && id != -1) + { + // this unused variable is needed to match + u32 unusedVar; + unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0; + + if (data->field_0->arr[id].field_1A_0 == 1 && data->field_0->arr[id].unk.field_0.unk_0a_7 == 0) + { + u32 var = sub_8013B8C(data, id); + if (var == 0) + { + sub_8013BD8(data, id); + data->state = 5; + PlaySE(SE_PN_ON); + } + else + { + StringCopy(gStringVar4, gUnknown_082EDD50[var - 1]); + data->state = 18; + PlaySE(SE_PN_ON); + } + } + else + { + PlaySE(SE_WALL_HIT); + } + } + else if (gMain.newKeys & B_BUTTON) + { + data->state = 10; + } + break; + default: + sub_81AE70C(data->listTaskId); + break; + } + break; + case 5: + sub_80130B4(gStringVar4, gUnknown_02022C2C); + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); + data->state = 6; + } + break; + case 6: + if (gReceivedRemoteLinkPlayers != 0) + { + gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; + sub_8011A64(0, 0); + switch (gUnknown_02022C2C) + { + case 1 ... 5: + case 9 ... 11: + case 13 ... 16: + case 21 ... 28: + data->state = 20; + return; + } + } + + switch (sub_8011A74()) + { + case 1: + data->state = 12; + break; + case 2: + case 6: + case 9: + data->state = 14; + break; + case 5: + sub_8013160(gStringVar4, gUnknown_02022C2C); + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + if (gUnknown_02022C2C == 28 || gUnknown_02022C2C == 14) + { + sub_8011A64(12, 0); + } + else + { + sub_8011A64(7, 0); + StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]); + StringExpandPlaceholders(gStringVar4, gUnknown_082EDE48); + } + } + break; + case 7: + if (data->field_15 > 0xF0) + { + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + sub_8011A64(12, 0); + data->field_15 = 0; + } + } + else + { + switch (gUnknown_02022C2C) + { + case 1: + case 2: + case 4: + case 14: + case 28: + break; + default: + data->field_15++; + break; + } + } + break; + } + + if (!sub_8011A74() && gMain.newKeys & B_BUTTON) + data->state = 7; + break; + case 7: + if (PrintOnTextbox(&data->textState, gUnknown_082EDE64)) + data->state = 8; + break; + case 8: + switch (sub_80170B8(&data->textState, sub_8011A74())) + { + case 0: + sub_80106D4(); + data->state = 9; + sub_81AE70C(data->listTaskId); + break; + case 1: + case -1: + data->state = 5; + sub_81AE70C(data->listTaskId); + break; + case -3: + data->state = 6; + sub_81AE70C(data->listTaskId); + break; + } + break; + case 9: + if (sub_8011A74()) + data->state = 6; + break; + case 10: + case 12: + case 14: + case 18: + case 20: + ClearWindowTilemap(data->field_D); + sub_819746C(data->field_D, FALSE); + DestroyListMenuTask(data->listTaskId, 0, 0); + ClearWindowTilemap(data->field_C); + sub_819746C(data->field_B, FALSE); + CopyBgTilemapBufferToVram(0); + RemoveWindow(data->field_D); + RemoveWindow(data->field_B); + RemoveWindow(data->field_C); + DestroyTask(data->field_11); + Free(data->field_0); + Free(data->field_4); + data->state++; + break; + case 13: + sub_800E084(); + if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()])) + { + gSpecialVar_Result = 6; + data->state = 23; + } + break; + case 11: + sub_800E084(); + gSpecialVar_Result = 5; + data->state = 23; + break; + case 15: + sub_800E084(); + if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()])) + { + gSpecialVar_Result = 8; + data->state = 23; + } + break; + case 19: + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + gSpecialVar_Result = 8; + data->state = 23; + } + break; + case 23: + DestroyTask(taskId); + sub_80173D4(); + sub_800EDD4(); + break; + case 21: + sub_80149C4(); + DestroyTask(taskId); break; } } |