From 10eb952db5d52dbbcba98314f6042e981de2f942 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 2 Sep 2018 18:10:36 +0200 Subject: [PATCH 01/28] Start battle factory --- asm/battle_frontier_2.s | 735 +--------------------------- include/constants/battle_frontier.h | 1 + src/battle_frontier_2.c | 337 +++++++++++++ 3 files changed, 342 insertions(+), 731 deletions(-) create mode 100644 src/battle_frontier_2.c diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 1a2233a977..ebf2008111 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -5,736 +5,9 @@ .text - thumb_func_start sub_819A44C -sub_819A44C: @ 819A44C - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r4, [r5, 0x5] - lsrs r4, 4 - movs r0, 0x65 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsrs r0, 24 - cmp r4, r0 - bne _0819A4BA - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0819A4B0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _0819A484 - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] - b _0819A4C2 -_0819A484: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _0819A4A6 - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAnim - movs r0, 0x20 - strh r0, [r5, 0x2E] - b _0819A4C2 -_0819A4A6: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - b _0819A4C2 -_0819A4B0: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnimIfDifferent - b _0819A4C2 -_0819A4BA: - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent -_0819A4C2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819A44C - thumb_func_start sub_819A4C8 -sub_819A4C8: @ 819A4C8 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_819A4C8 + - thumb_func_start sub_819A4E4 -sub_819A4E4: @ 819A4E4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_819A4E4 - - thumb_func_start sub_819A4F8 -sub_819A4F8: @ 819A4F8 - push {lr} - ldr r0, =gUnknown_0300127C - movs r1, 0 - str r1, [r0] - ldr r0, =sub_819A514 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_819A4F8 - - thumb_func_start sub_819A514 -sub_819A514: @ 819A514 - push {r4,r5,lr} - sub sp, 0xC - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _0819A528 - b _0819A98E -_0819A528: - lsls r0, 2 - ldr r1, =_0819A53C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819A53C: - .4byte _0819A568 - .4byte _0819A5C0 - .4byte _0819A69C - .4byte _0819A77C - .4byte _0819A7CC - .4byte _0819A868 - .4byte _0819A8A4 - .4byte _0819A8AC - .4byte _0819A8C4 - .4byte _0819A8DC - .4byte _0819A8FC -_0819A568: - ldr r4, =gUnknown_0203CE3C - ldr r0, [r4] - cmp r0, 0 - beq _0819A578 - bl Free - movs r0, 0 - str r0, [r4] -_0819A578: - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - add r0, sp, 0x8 - bl CpuSet - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08610428 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r0, =gUnknown_08610434 - bl InitWindows - bl DeactivateAllTextPrinters - b _0819A8E6 - .pool -_0819A5C0: - ldr r5, =gUnknown_0203CE2C - movs r4, 0x88 - lsls r4, 3 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - ldr r5, =gUnknown_0203CE30 - adds r0, r4, 0 - bl AllocZeroed - str r0, [r5] - ldr r5, =gUnknown_0203CE34 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - ldr r5, =gUnknown_0203CE38 - adds r0, r4, 0 - bl AllocZeroed - str r0, [r5] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - ldr r1, =gMain - movs r3, 0x87 - lsls r3, 3 - adds r1, r3 - b _0819A8EE - .pool -_0819A69C: - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - ldr r0, =gFrontierFactorySelectMenu_Gfx - ldr r5, =gUnknown_0203CE2C - ldr r1, [r5] - movs r2, 0x88 - lsls r2, 2 - bl CpuSet - ldr r0, =gUnknown_0861033C - ldr r4, =gUnknown_0203CE30 - ldr r1, [r4] - movs r2, 0x30 - bl CpuSet - ldr r1, [r5] - movs r2, 0x88 - lsls r2, 3 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - ldr r1, [r4] - movs r0, 0x3 - movs r2, 0x60 - movs r3, 0 - bl LoadBgTiles - ldr r0, =gFrontierFactorySelectMenu_Tilemap - ldr r4, =gUnknown_0203CE34 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 4 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTilemap - ldr r0, =gFrontierFactorySelectMenu_Pal - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - ldr r4, =gUnknown_0861046C - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0x8 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r0, [r1, 0x6] - cmp r0, 0x1 - bne _0819A738 - ldr r0, =gPlttBufferUnfaded - movs r2, 0xA9 - lsls r2, 2 - adds r1, r2 - ldrh r1, [r1] - movs r3, 0xE4 - lsls r3, 1 - adds r0, r3 - strh r1, [r0] -_0819A738: - ldr r0, =gUnknown_0861039C - movs r1, 0x20 - movs r2, 0x4 - bl LoadPalette - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819A8EE - .pool -_0819A77C: - ldr r0, =gUnknown_0203CE38 - ldr r1, [r0] - movs r0, 0x3 - bl SetBgTilemapBuffer - ldr r5, =gUnknown_0861023C - movs r4, 0x8 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x3 - adds r1, r5, 0 - movs r2, 0xB - movs r3, 0x4 - bl CopyToBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x3 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x4 - bl CopyToBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x3 - adds r1, r5, 0 - movs r2, 0x14 - movs r3, 0x4 - bl CopyToBgTilemapBufferRect - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _0819A8E6 - .pool -_0819A7CC: - ldr r0, =gUnknown_086103F4 - bl LoadSpritePalettes - ldr r0, =gUnknown_086103BC - bl LoadSpriteSheets - ldr r0, =gUnknown_086103E4 - bl LoadCompressedObjectPic - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - ldr r0, =sub_819A4E4 - bl SetVBlankCallback - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0x9A - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - bne _0819A854 - movs r0, 0x58 - movs r1, 0x98 - movs r2, 0x20 - movs r3, 0x60 - bl sub_819C5D0 - movs r0, 0x3 - bl ShowBg - ldr r1, =0x00001248 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - b _0819A85A - .pool -_0819A854: - movs r0, 0x3 - bl HideBg -_0819A85A: - ldr r1, =gMain - movs r3, 0x87 - lsls r3, 3 - adds r1, r3 - b _0819A8EE - .pool -_0819A868: - ldr r4, =gUnknown_0300127C - ldr r1, [r4] - ldrb r0, [r1, 0x6] - cmp r0, 0x1 - bne _0819A878 - ldr r0, =gUnknown_0203CF20 - ldrb r0, [r0] - strb r0, [r1, 0x3] -_0819A878: - bl sub_819A9AC - bl sub_819AA18 - ldr r0, [r4] - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - bne _0819A88C - bl sub_819BE34 -_0819A88C: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819A8EE - .pool -_0819A8A4: - bl sub_819BA64 - movs r0, 0x2 - b _0819A8E2 -_0819A8AC: - bl sub_819BCF8 - movs r0, 0x5 - bl PutWindowTilemap - ldr r1, =gMain - movs r3, 0x87 - lsls r3, 3 - adds r1, r3 - b _0819A8EE - .pool -_0819A8C4: - bl sub_819B9E8 - movs r0, 0x1 - bl PutWindowTilemap - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819A8EE - .pool -_0819A8DC: - bl sub_819B9B4 - movs r0, 0 -_0819A8E2: - bl PutWindowTilemap -_0819A8E6: - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 -_0819A8EE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0819A98E - .pool -_0819A8FC: - ldr r0, =sub_819C69C - movs r1, 0 - bl CreateTask - ldr r2, =gUnknown_0300127C - ldr r1, [r2] - ldr r3, =0x000002a1 - adds r1, r3 - strb r0, [r1] - ldr r3, [r2] - ldrb r5, [r3, 0x6] - cmp r5, 0 - bne _0819A954 - ldr r4, =gTasks - ldr r1, =0x000002a1 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strh r5, [r0, 0x8] - ldr r0, =sub_819B378 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strh r5, [r0, 0x8] - b _0819A988 - .pool -_0819A954: - ldr r4, =gTasks - ldr r2, =0x000002a1 - adds r0, r3, r2 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x8] - ldr r1, =0x000002a2 - adds r0, r3, r1 - strb r2, [r0] - ldr r0, =sub_819B124 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xD - strh r1, [r0, 0x8] -_0819A988: - ldr r0, =sub_819A4C8 - bl SetMainCallback2 -_0819A98E: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819A514 - - thumb_func_start sub_819A9AC -sub_819A9AC: @ 819A9AC - push {r4,r5,lr} - ldr r5, =gUnknown_0300127C - ldr r4, [r5] - cmp r4, 0 - bne _0819AA12 - movs r0, 0xAB - lsls r0, 2 - bl AllocZeroed - str r0, [r5] - strb r4, [r0, 0x3] - ldr r1, [r5] - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r0, [r5] - strb r4, [r0, 0x6] - movs r2, 0 - movs r4, 0x6C - movs r3, 0 -_0819A9D2: - ldr r0, [r5] - adds r1, r2, 0 - muls r1, r4 - adds r0, r1 - strb r3, [r0, 0x10] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819A9D2 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - beq _0819AA0C - movs r0, 0 - bl sub_819B484 - b _0819AA12 - .pool -_0819AA0C: - movs r0, 0 - bl sub_819B63C -_0819AA12: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819A9AC - - thumb_func_start sub_819AA18 -sub_819AA18: @ 819AA18 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - mov r8, r4 - ldr r7, =gSprites -_0819AA24: - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - subs r1, r4 - adds r1, 0x20 - lsls r1, 16 - asrs r1, 16 - ldr r0, =gUnknown_086105D8 - movs r2, 0x40 - movs r3, 0x1 - bl CreateSprite - ldr r6, =gUnknown_0300127C - ldr r2, [r6] - movs r5, 0x6C - adds r1, r4, 0 - muls r1, r5 - adds r2, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r2, 0xE] - ldrh r1, [r2, 0xE] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r1, r8 - strh r1, [r0, 0x2E] - adds r0, r4, 0 - bl sub_819ADAC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0819AA24 - ldr r0, [r6] - ldrb r1, [r0, 0x3] - ldr r4, =gSprites - muls r1, r5 - adds r0, r1 - ldrh r0, [r0, 0xE] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldr r0, =gUnknown_086105F0 - movs r2, 0x20 - ldrsh r1, [r1, r2] - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - ldr r1, [r6] - movs r5, 0 - strb r0, [r1, 0x4] - ldr r0, =gUnknown_08610608 - movs r1, 0xB0 - movs r2, 0x70 - movs r3, 0 - bl CreateSprite - ldr r1, [r6] - strb r0, [r1, 0x1] - ldr r0, =gUnknown_08610620 - movs r1, 0xB0 - movs r2, 0x90 - movs r3, 0 - bl CreateSprite - ldr r1, [r6] - strb r0, [r1, 0x2] - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x28 - strb r5, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x29 - strb r5, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x28 - strb r5, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x29 - strb r5, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AA18 thumb_func_start sub_819AB40 sub_819AB40: @ 819AB40 @@ -1059,8 +332,8 @@ _0819AD9C: .pool thumb_func_end sub_819ACE0 - thumb_func_start sub_819ADAC -sub_819ADAC: @ 819ADAC + thumb_func_start SetBallSpritePaletteNum +SetBallSpritePaletteNum: @ 819ADAC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -1102,7 +375,7 @@ _0819ADCE: pop {r0} bx r0 .pool - thumb_func_end sub_819ADAC + thumb_func_end SetBallSpritePaletteNum thumb_func_start sub_819AE08 sub_819AE08: @ 819AE08 diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index fddcdc8fe2..1cd750a3dc 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -13,6 +13,7 @@ // Battle Frontier lvl modes. #define FRONTIER_LVL_50 0 #define FRONTIER_LVL_OPEN 1 +#define FRONTIER_LVL_TENT 2 // Battle Frontier battle modes. #define FRONTIER_MODE_SINGLES 0 diff --git a/src/battle_frontier_2.c b/src/battle_frontier_2.c new file mode 100644 index 0000000000..958aa46921 --- /dev/null +++ b/src/battle_frontier_2.c @@ -0,0 +1,337 @@ +#include "global.h" +#include "sprite.h" +#include "event_data.h" +#include "overworld.h" +#include "random.h" +#include "battle_tower.h" +#include "text.h" +#include "palette.h" +#include "task.h" +#include "main.h" +#include "malloc.h" +#include "bg.h" +#include "gpu_regs.h" +#include "window.h" +#include "decompress.h" +#include "constants/battle_frontier.h" + +#define SELECTABLE_MONS_COUNT 6 +#define TAG_PAL_BALL_GREY 0x64 +#define TAG_PAL_BALL_SELECTED 0x65 + +struct FactorySelecteableMon +{ + u16 unk0; + u16 spriteId; + bool8 selected; + u8 filler6[0x6A - 6]; + u8 unk6A; +}; + +struct UnkStructTempName +{ + u8 menuCursorPos; + u8 unk1; + u8 unk2; + u8 cursorPos; + u8 unk4; + u8 unk5; + bool8 fromSummaryScreen; + u8 unk7; + u8 unk8; + u8 unk9; + struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; + u8 filler294[0x2a1 - 0x294]; + u8 unk2A1; + u8 unk2A2; + u8 unk2A3; + u16 unk2A4; + u16 unk2A6; + u16 unk2A8; + u16 unk2AA; +}; + +extern struct UnkStructTempName *gUnknown_0300127C; +extern u8 *gUnknown_0203CE2C; +extern u8 *gUnknown_0203CE30; +extern u8 *gUnknown_0203CE34; +extern u8 *gUnknown_0203CE38; +extern struct Pokemon *gUnknown_0203CE3C; +extern u8 gUnknown_0203CF20; + +// This file's functions. +void sub_819A514(void); +void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); +void sub_819A9AC(void); +void sub_819AA18(void); +void sub_819BE34(void); +void sub_819BA64(void); +void sub_819BCF8(void); +void sub_819B9E8(void); +void sub_819B9B4(void); +void sub_819C69C(u8 taskId); +void sub_819B378(u8 taskId); +void sub_819B124(u8 taskId); +void sub_819B484(u8 arg0); +void sub_819B63C(u8 arg0); +void SetBallSpritePaletteNum(u8 id); + +// Const rom data. +extern const struct BgTemplate gUnknown_08610428[3]; +extern const struct WindowTemplate gUnknown_08610434[]; +extern const u8 gUnknown_0861033C[]; +extern const u8 gUnknown_0861023C[]; +extern const u16 gUnknown_0861046C[]; +extern const u16 gUnknown_0861039C[]; +extern const struct SpritePalette gUnknown_086103F4[]; +extern const struct SpriteSheet gUnknown_086103BC[]; +extern const struct CompressedSpriteSheet gUnknown_086103E4[]; +extern const struct SpriteTemplate gUnknown_086105D8; + +// gfx +extern const u8 gFrontierFactorySelectMenu_Gfx[]; +extern const u8 gFrontierFactorySelectMenu_Tilemap[]; +extern const u16 gFrontierFactorySelectMenu_Pal[]; + +// code +void sub_819A44C(struct Sprite *sprite) +{ + if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED)) + { + if (sprite->animEnded) + { + if (sprite->data[0] != 0) + { + sprite->data[0]--; + } + else if (Random() % 5 == 0) + { + StartSpriteAnim(sprite, 0); + sprite->data[0] = 32; + } + else + { + StartSpriteAnim(sprite, 1); + } + } + else + { + StartSpriteAnimIfDifferent(sprite, 1); + } + } + else + { + StartSpriteAnimIfDifferent(sprite, 0); + } +} + +void sub_819A4C8(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +void sub_819A4E4(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_819A4F8(void) +{ + gUnknown_0300127C = NULL; + SetMainCallback2(sub_819A514); +} + +void sub_819A514(void) +{ + u8 taskId; + + switch (gMain.state) + { + case 0: + if (gUnknown_0203CE3C != NULL) + FREE_AND_SET_NULL(gUnknown_0203CE3C); + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + CpuFill32(0, (void *)VRAM, VRAM_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_08610428, ARRAY_COUNT(gUnknown_08610428)); + InitWindows(gUnknown_08610434); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 1: + gUnknown_0203CE2C = Alloc(0x440); + gUnknown_0203CE30 = AllocZeroed(0x440); + gUnknown_0203CE34 = Alloc(0x800); + gUnknown_0203CE38 = AllocZeroed(0x800); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuReg(REG_OFFSET_MOSAIC, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WIN1H, 0); + SetGpuReg(REG_OFFSET_WIN1V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE2C, 0x440); + CpuCopy16(gUnknown_0861033C, gUnknown_0203CE30, 0x60); + LoadBgTiles(1, gUnknown_0203CE2C, 0x440, 0); + LoadBgTiles(3, gUnknown_0203CE30, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE34, 0x800); + LoadBgTilemap(1, gUnknown_0203CE34, 0x800, 0); + LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); + LoadPalette(gUnknown_0861046C, 0xF0, 8); + LoadPalette(gUnknown_0861046C, 0xE0, 10); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + gPlttBufferUnfaded[228] = gUnknown_0300127C->unk2A4; + LoadPalette(gUnknown_0861039C, 0x20, 4); + gMain.state++; + break; + case 3: + SetBgTilemapBuffer(3, gUnknown_0203CE38); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8); + CopyBgTilemapBufferToVram(3); + gMain.state++; + break; + case 4: + LoadSpritePalettes(gUnknown_086103F4); + LoadSpriteSheets(gUnknown_086103BC); + LoadCompressedObjectPic(gUnknown_086103E4); + ShowBg(0); + ShowBg(1); + SetVBlankCallback(sub_819A4E4); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + { + sub_819C5D0(88, 152, 32, 96); + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + } + else + { + HideBg(3); + } + gMain.state++; + break; + case 5: + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + gUnknown_0300127C->cursorPos = gUnknown_0203CF20; + sub_819A9AC(); + sub_819AA18(); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + sub_819BE34(); + gMain.state++; + break; + case 6: + sub_819BA64(); + PutWindowTilemap(2); + gMain.state++; + break; + case 7: + sub_819BCF8(); + PutWindowTilemap(5); + gMain.state++; + break; + case 8: + sub_819B9E8(); + PutWindowTilemap(1); + gMain.state++; + break; + case 9: + sub_819B9B4(); + PutWindowTilemap(0); + gMain.state++; + break; + case 10: + gUnknown_0300127C->unk2A1 = CreateTask(sub_819C69C, 0); + if (!gUnknown_0300127C->fromSummaryScreen) + { + gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; + taskId = CreateTask(sub_819B378, 0); + gTasks[taskId].data[0] = 0; + } + else + { + gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; + gUnknown_0300127C->unk2A2 = 0; + taskId = CreateTask(sub_819B124, 0); + gTasks[taskId].data[0] = 13; + } + SetMainCallback2(sub_819A4C8); + break; + } +} + +void sub_819A9AC(void) +{ + u8 i; + + if (gUnknown_0300127C != NULL) + return; + + gUnknown_0300127C = AllocZeroed(sizeof(*gUnknown_0300127C)); + gUnknown_0300127C->cursorPos = 0; + gUnknown_0300127C->unk5 = 1; + gUnknown_0300127C->fromSummaryScreen = FALSE; + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + gUnknown_0300127C->mons[i].selected = FALSE; + + if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) + sub_819B484(0); + else + sub_819B63C(0); +} + +extern const struct SpriteTemplate gUnknown_086105F0; +extern const struct SpriteTemplate gUnknown_08610608; +extern const struct SpriteTemplate gUnknown_08610620; + +void sub_819AA18(void) +{ + u8 i, cursorPos; + s16 x; + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + gUnknown_0300127C->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); + gSprites[gUnknown_0300127C->mons[i].spriteId].data[0] = 0; + SetBallSpritePaletteNum(i); + } + cursorPos = gUnknown_0300127C->cursorPos; + x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; + gUnknown_0300127C->unk4 = CreateSprite(&gUnknown_086105F0, x, 88, 0); + gUnknown_0300127C->unk1 = CreateSprite(&gUnknown_08610608, 176, 112, 0); + gUnknown_0300127C->unk2 = CreateSprite(&gUnknown_08610620, 176, 144, 0); + + gSprites[gUnknown_0300127C->unk1].invisible = 1; + gSprites[gUnknown_0300127C->unk2].invisible = 1; + + gSprites[gUnknown_0300127C->unk1].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->unk1].centerToCornerVecY = 0; + gSprites[gUnknown_0300127C->unk2].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->unk2].centerToCornerVecY = 0; +} From 0238b1c8ec6a7793917dcc9f358b964a3090715f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 2 Sep 2018 19:41:33 +0200 Subject: [PATCH 02/28] More battle factory work --- asm/battle_frontier_2.s | 727 +------------------------------ include/pokemon_summary_screen.h | 1 + ld_script.txt | 1 + src/battle_factory.c | 602 +++++++++++++++++++++++++ src/battle_frontier_2.c | 337 -------------- sym_ewram.txt | 17 +- 6 files changed, 612 insertions(+), 1073 deletions(-) create mode 100644 src/battle_factory.c delete mode 100644 src/battle_frontier_2.c diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index ebf2008111..4ad5644007 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -6,719 +6,6 @@ .text - - - - thumb_func_start sub_819AB40 -sub_819AB40: @ 819AB40 - push {r4-r6,lr} - movs r4, 0 -_0819AB44: - ldr r6, =gUnknown_0300127C - ldr r1, [r6] - movs r0, 0x6C - muls r0, r4 - adds r1, r0 - ldrh r1, [r1, 0xE] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gSprites - adds r0, r5 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0819AB44 - ldr r0, [r6] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AB40 - - thumb_func_start sub_819ABA8 -sub_819ABA8: @ 819ABA8 - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - ble _0819ABC8 - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1, 0x3] - adds r2, r0, 0 - cmp r3, 0x5 - beq _0819ABC4 - adds r0, r3, 0x1 - b _0819ABDE - .pool -_0819ABC4: - movs r0, 0 - b _0819ABDE -_0819ABC8: - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1, 0x3] - adds r2, r0, 0 - cmp r3, 0 - beq _0819ABDC - subs r0, r3, 0x1 - b _0819ABDE - .pool -_0819ABDC: - movs r0, 0x5 -_0819ABDE: - strb r0, [r1, 0x3] - ldr r2, [r2] - ldrb r3, [r2, 0x3] - ldr r4, =gSprites - ldrb r0, [r2, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0x6C - muls r0, r3 - adds r2, r0 - ldrh r2, [r2, 0xE] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r1, 0x20] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ABA8 - - thumb_func_start sub_819AC10 -sub_819AC10: @ 819AC10 - push {lr} - lsls r0, 24 - cmp r0, 0 - ble _0819AC30 - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, 0 - cmp r3, 0x2 - beq _0819AC2C - adds r0, r3, 0x1 - b _0819AC46 - .pool -_0819AC2C: - movs r0, 0 - b _0819AC46 -_0819AC30: - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, 0 - cmp r3, 0 - beq _0819AC44 - subs r0, r3, 0x1 - b _0819AC46 - .pool -_0819AC44: - movs r0, 0x2 -_0819AC46: - strb r0, [r1] - ldr r3, =gSprites - ldr r2, [r2] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AC10 - - thumb_func_start sub_819AC78 -sub_819AC78: @ 819AC78 - push {lr} - lsls r0, 24 - cmp r0, 0 - ble _0819AC98 - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1, 0x7] - adds r2, r0, 0 - cmp r3, 0x1 - beq _0819AC94 - adds r0, r3, 0x1 - b _0819ACAE - .pool -_0819AC94: - movs r0, 0 - b _0819ACAE -_0819AC98: - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1, 0x7] - adds r2, r0, 0 - cmp r3, 0 - beq _0819ACAC - subs r0, r3, 0x1 - b _0819ACAE - .pool -_0819ACAC: - movs r0, 0x1 -_0819ACAE: - strb r0, [r1, 0x7] - ldr r3, =gSprites - ldr r2, [r2] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2, 0x7] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2, 0x7] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AC78 - - thumb_func_start sub_819ACE0 -sub_819ACE0: @ 819ACE0 - push {r4-r6,lr} - ldr r5, =gUnknown_0300127C - ldr r0, [r5] - ldrb r6, [r0, 0x3] - movs r1, 0x6C - adds r4, r6, 0 - muls r4, r1 - adds r0, r4 - ldrb r0, [r0, 0x10] - cmp r0, 0 - beq _0819AD60 - movs r0, 0x64 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, [r5] - ldrb r0, [r1, 0x5] - cmp r0, 0x3 - bne _0819AD44 - adds r0, r1, r4 - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bne _0819AD44 - movs r2, 0 - ldrb r0, [r1, 0x10] - cmp r0, 0x2 - beq _0819AD32 - movs r4, 0x6C -_0819AD1A: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bhi _0819AD32 - ldr r0, [r5] - adds r1, r2, 0 - muls r1, r4 - adds r0, r1 - ldrb r0, [r0, 0x10] - cmp r0, 0x2 - bne _0819AD1A -_0819AD32: - cmp r2, 0x6 - beq _0819AD9C - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - movs r0, 0x6C - muls r0, r2 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1, 0x10] -_0819AD44: - ldr r2, =gUnknown_0300127C - ldr r1, [r2] - movs r0, 0x6C - muls r0, r6 - adds r1, r0 - movs r0, 0 - strb r0, [r1, 0x10] - ldr r1, [r2] - ldrb r0, [r1, 0x5] - subs r0, 0x1 - b _0819AD78 - .pool -_0819AD60: - movs r0, 0x65 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, [r5] - adds r1, r0, r4 - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x10] - ldr r1, [r5] - ldrb r0, [r1, 0x5] - adds r0, 0x1 -_0819AD78: - strb r0, [r1, 0x5] - ldr r2, =gSprites - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - movs r1, 0x6C - muls r1, r6 - adds r0, r1 - ldrh r0, [r0, 0xE] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0819AD9C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ACE0 - - thumb_func_start SetBallSpritePaletteNum -SetBallSpritePaletteNum: @ 819ADAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - movs r1, 0x6C - muls r1, r4 - adds r0, r1 - ldrb r0, [r0, 0x10] - cmp r0, 0 - beq _0819ADCC - movs r0, 0x65 - b _0819ADCE - .pool -_0819ADCC: - movs r0, 0x64 -_0819ADCE: - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gSprites - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - movs r1, 0x6C - muls r1, r4 - adds r0, r1 - ldrh r0, [r0, 0xE] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end SetBallSpritePaletteNum - - thumb_func_start sub_819AE08 -sub_819AE08: @ 819AE08 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r6, r0, r1 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0x7 - beq _0819AE64 - cmp r0, 0x7 - bgt _0819AE30 - cmp r0, 0x6 - beq _0819AE36 - b _0819AF50 - .pool -_0819AE30: - cmp r0, 0x8 - beq _0819AEE8 - b _0819AF50 -_0819AE36: - ldr r1, =gPlttBufferUnfaded - ldr r0, =gPlttBufferFaded - movs r2, 0xE4 - lsls r2, 1 - adds r0, r2 - ldrh r0, [r0] - adds r1, r2 - movs r2, 0 - strh r0, [r1] - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x7 - strh r0, [r6, 0x8] - b _0819AF50 - .pool -_0819AE64: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0819AF50 - ldr r4, =gUnknown_0300127C - ldr r0, [r4] - ldr r2, =0x000002a1 - adds r0, r2 - ldrb r0, [r0] - bl DestroyTask - ldr r1, [r4] - movs r3, 0xA6 - lsls r3, 2 - adds r0, r1, r3 - ldr r0, [r0] - movs r2, 0xA8 - lsls r2, 2 - adds r1, r2 - bl sub_819F444 - bl sub_819AB40 - ldr r4, =gUnknown_0203CE2C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE30 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE34 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE38 - ldr r0, [r4] - bl Free - str r5, [r4] - bl FreeAllWindowBuffers - movs r0, 0x8 - strh r0, [r6, 0x8] - b _0819AF50 - .pool -_0819AEE8: - ldr r4, =gUnknown_0300127C - ldr r1, [r4] - ldr r0, =gPlttBufferUnfaded - movs r3, 0xE4 - lsls r3, 1 - adds r0, r3 - ldrh r0, [r0] - adds r3, 0xDC - adds r1, r3 - strh r0, [r1] - adds r0, r2, 0 - bl DestroyTask - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x6] - ldr r0, [r4] - ldrb r6, [r0, 0x3] - ldr r4, =gUnknown_0203CE3C - movs r0, 0x96 - lsls r0, 2 - bl AllocZeroed - str r0, [r4] - movs r4, 0 -_0819AF1A: - ldr r5, =gUnknown_0203CE3C - ldr r1, [r5] - movs r0, 0x64 - muls r0, r4 - adds r0, r1 - ldr r1, =gUnknown_0300127C - ldr r1, [r1] - movs r2, 0x6C - muls r2, r4 - adds r1, r2 - adds r1, 0x14 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0819AF1A - ldr r1, [r5] - ldr r0, =sub_819A514 - str r0, [sp] - movs r0, 0x1 - adds r2, r6, 0 - movs r3, 0x5 - bl ShowPokemonSummaryScreen -_0819AF50: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AE08 - - thumb_func_start bc_exit_to_overworld -bc_exit_to_overworld: @ 819AF68 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, =gUnknown_0300127C - ldr r0, [r7] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819B00E - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _0819AFA0 - cmp r1, 0x1 - beq _0819AFB8 - b _0819B00E - .pool -_0819AFA0: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0819B00E -_0819AFB8: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0819B00E - bl sub_819B764 - ldr r0, [r7] - ldr r1, =0x000002a1 - adds r0, r1 - ldrb r0, [r0] - bl DestroyTask - bl sub_819AB40 - ldr r4, =gUnknown_0203CE2C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE34 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE38 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r7] - bl Free - str r5, [r7] - bl FreeAllWindowBuffers - ldr r0, =CB2_ReturnToFieldContinueScript - bl SetMainCallback2 - adds r0, r6, 0 - bl DestroyTask -_0819B00E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end bc_exit_to_overworld - - thumb_func_start sub_819B02C -sub_819B02C: @ 819B02C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r7, =gUnknown_0300127C - ldr r0, [r7] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819B11A - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x5 - beq _0819B084 - cmp r0, 0x5 - bgt _0819B06C - cmp r0, 0x4 - beq _0819B07A - b _0819B11A - .pool -_0819B06C: - cmp r0, 0xA - bne _0819B11A - bl sub_819C4B4 - movs r0, 0x4 - strh r0, [r5, 0x8] - b _0819B11A -_0819B07A: - bl sub_819B8D4 - movs r0, 0x5 - strh r0, [r5, 0x8] - b _0819B11A -_0819B084: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - mov r8, r0 - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0819B0B8 - movs r0, 0x5 - bl PlaySE - ldr r0, [r7] - ldrb r4, [r0, 0x7] - cmp r4, 0 - bne _0819B0C6 - bl sub_819C568 - strh r4, [r5, 0x8] - ldr r0, =bc_exit_to_overworld - str r0, [r5] - b _0819B11A - .pool -_0819B0B8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819B0EC - movs r0, 0x5 - bl PlaySE -_0819B0C6: - movs r0, 0x4 - bl sub_819B958 - bl sub_819BC9C - ldr r0, [r7] - ldr r1, =0x000002a2 - adds r0, r1 - mov r1, r8 - strb r1, [r0] - strh r6, [r5, 0x8] - ldr r0, =sub_819B378 - str r0, [r5] - b _0819B11A - .pool -_0819B0EC: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819B106 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl sub_819AC78 - b _0819B11A -_0819B106: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819B11A - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_819AC78 -_0819B11A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819B02C thumb_func_start sub_819B124 sub_819B124: @ 819B124 @@ -836,7 +123,7 @@ _0819B228: adds r0, r1 movs r1, 0xA strh r1, [r0, 0x8] - ldr r1, =sub_819B02C + ldr r1, =Task_HandleSelectionScreenYesNo str r1, [r0] b _0819B36E .pool @@ -860,7 +147,7 @@ _0819B260: adds r0, r1 movs r1, 0x6 strh r1, [r0, 0x8] - ldr r1, =sub_819AE08 + ldr r1, =Task_FromSelectScreenToSummaryScreen str r1, [r0] b _0819B36E .pool @@ -909,7 +196,7 @@ _0819B2D0: bl PlaySE movs r0, 0x1 negs r0, r0 - bl sub_819AC10 + bl UpdateMenuCursorPosition b _0819B36E _0819B2EA: movs r0, 0x80 @@ -919,7 +206,7 @@ _0819B2EA: movs r0, 0x5 bl PlaySE movs r0, 0x1 - bl sub_819AC10 + bl UpdateMenuCursorPosition b _0819B36E _0819B300: ldr r0, =gPaletteFade @@ -1065,7 +352,7 @@ _0819B422: bl PlaySE movs r0, 0x1 _0819B432: - bl sub_819ABA8 + bl UpdateBallCursorPosition bl sub_819BCF8 bl sub_819B9E8 b _0819B476 @@ -2041,7 +1328,7 @@ _0819BC60: adds r1, r2 movs r2, 0 bl sub_819F3F8 - bl sub_819ACE0 + bl HandleMonSelectionChange bl sub_819BA64 movs r0, 0x3 bl sub_819B958 @@ -2064,7 +1351,7 @@ _0819BC96: sub_819BC9C: @ 819BC9C push {lr} bl sub_819C568 - bl sub_819ACE0 + bl HandleMonSelectionChange bl sub_819BA64 movs r0, 0x3 bl sub_819B958 diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 3d3b6f0e33..a8eee9c183 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -1,6 +1,7 @@ #ifndef GUARD_POKEMON_SUMMARY_SCREEN_H #define GUARD_POKEMON_SUMMARY_SCREEN_H +void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); void sub_81C4F98(u8, void(*)(void)); void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16); diff --git a/ld_script.txt b/ld_script.txt index 668cf7c5a7..6e4885e4c9 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -247,6 +247,7 @@ SECTIONS { src/battle_frontier_1.o(.text); asm/battle_frontier_1.o(.text); src/menu.o(.text); + src/battle_factory.o(.text); asm/battle_frontier_2.o(.text); src/item_menu.o(.text); src/list_menu.o(.text); diff --git a/src/battle_factory.c b/src/battle_factory.c new file mode 100644 index 0000000000..e1c9551222 --- /dev/null +++ b/src/battle_factory.c @@ -0,0 +1,602 @@ +#include "global.h" +#include "sprite.h" +#include "event_data.h" +#include "overworld.h" +#include "random.h" +#include "battle_tower.h" +#include "text.h" +#include "palette.h" +#include "task.h" +#include "main.h" +#include "malloc.h" +#include "bg.h" +#include "gpu_regs.h" +#include "window.h" +#include "decompress.h" +#include "pokemon_summary_screen.h" +#include "sound.h" +#include "constants/battle_frontier.h" +#include "constants/songs.h" + +#define MENU_SUMMARY 0 +#define MENU_RENT 1 +#define MENU_DESELECT 1 +#define MENU_OTHERS 2 +#define MENU_OPTIONS_COUNT 3 + +#define SELECTABLE_MONS_COUNT 6 +#define TAG_PAL_BALL_GREY 0x64 +#define TAG_PAL_BALL_SELECTED 0x65 + +struct FactorySelecteableMon +{ + u16 unk0; + u16 spriteId; + u8 selectetedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon + struct Pokemon monData; +}; + +struct FactorySelectMonsStruct +{ + u8 menuCursorPos; + u8 menuCursor1SpriteId; + u8 menuCursor2SpriteId; + u8 cursorPos; + u8 cursorSpriteId; + u8 selectingMonsState; + bool8 fromSummaryScreen; + u8 yesNoCursorPos; + u8 unk8; + u8 unk9; + struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; + u32 unk294; + u32 unk298; + u32 unk29C; + u8 unk2A0; + u8 unk2A1; + u8 unk2A2; + u8 unk2A3; + u16 unk2A4; + u16 unk2A6; + u16 unk2A8; + u16 unk2AA; +}; + +extern struct FactorySelectMonsStruct *gUnknown_0300127C; +extern u8 gUnknown_0203CF20; + +// This file's functions. +void sub_819A514(void); +void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); +void sub_819A9AC(void); +void sub_819AA18(void); +void sub_819BE34(void); +void sub_819BA64(void); +void sub_819BCF8(void); +void sub_819B9E8(void); +void sub_819B9B4(void); +void sub_819B764(void); +void sub_819C4B4(void); +void sub_819B8D4(void); +void sub_819C568(void); +void sub_819BC9C(void); +void sub_819C69C(u8 taskId); +void sub_819B378(u8 taskId); +void sub_819B124(u8 taskId); +void sub_819B484(u8 arg0); +void sub_819B63C(u8 arg0); +void SetBallSpritePaletteNum(u8 id); +void sub_819F444(u32 spriteId, u8 *arg1); +void sub_819B958(u8 arg0); + +// Ewram variables +EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; +EWRAM_DATA u8 *gUnknown_0203CE30 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; +static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; + +// Const rom data. +extern const struct BgTemplate gUnknown_08610428[3]; +extern const struct WindowTemplate gUnknown_08610434[]; +extern const u8 gUnknown_0861033C[]; +extern const u8 gUnknown_0861023C[]; +extern const u16 gUnknown_0861046C[]; +extern const u16 gUnknown_0861039C[]; +extern const struct SpritePalette gUnknown_086103F4[]; +extern const struct SpriteSheet gUnknown_086103BC[]; +extern const struct CompressedSpriteSheet gUnknown_086103E4[]; +extern const struct SpriteTemplate gUnknown_086105D8; + +// gfx +extern const u8 gFrontierFactorySelectMenu_Gfx[]; +extern const u8 gFrontierFactorySelectMenu_Tilemap[]; +extern const u16 gFrontierFactorySelectMenu_Pal[]; + +// code +void sub_819A44C(struct Sprite *sprite) +{ + if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED)) + { + if (sprite->animEnded) + { + if (sprite->data[0] != 0) + { + sprite->data[0]--; + } + else if (Random() % 5 == 0) + { + StartSpriteAnim(sprite, 0); + sprite->data[0] = 32; + } + else + { + StartSpriteAnim(sprite, 1); + } + } + else + { + StartSpriteAnimIfDifferent(sprite, 1); + } + } + else + { + StartSpriteAnimIfDifferent(sprite, 0); + } +} + +void sub_819A4C8(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +void sub_819A4E4(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_819A4F8(void) +{ + gUnknown_0300127C = NULL; + SetMainCallback2(sub_819A514); +} + +void sub_819A514(void) +{ + u8 taskId; + + switch (gMain.state) + { + case 0: + if (sFactorySelectMons != NULL) + FREE_AND_SET_NULL(sFactorySelectMons); + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + CpuFill32(0, (void *)VRAM, VRAM_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_08610428, ARRAY_COUNT(gUnknown_08610428)); + InitWindows(gUnknown_08610434); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 1: + gUnknown_0203CE2C = Alloc(0x440); + gUnknown_0203CE30 = AllocZeroed(0x440); + gUnknown_0203CE34 = Alloc(0x800); + gUnknown_0203CE38 = AllocZeroed(0x800); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuReg(REG_OFFSET_MOSAIC, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WIN1H, 0); + SetGpuReg(REG_OFFSET_WIN1V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE2C, 0x440); + CpuCopy16(gUnknown_0861033C, gUnknown_0203CE30, 0x60); + LoadBgTiles(1, gUnknown_0203CE2C, 0x440, 0); + LoadBgTiles(3, gUnknown_0203CE30, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE34, 0x800); + LoadBgTilemap(1, gUnknown_0203CE34, 0x800, 0); + LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); + LoadPalette(gUnknown_0861046C, 0xF0, 8); + LoadPalette(gUnknown_0861046C, 0xE0, 10); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + gPlttBufferUnfaded[228] = gUnknown_0300127C->unk2A4; + LoadPalette(gUnknown_0861039C, 0x20, 4); + gMain.state++; + break; + case 3: + SetBgTilemapBuffer(3, gUnknown_0203CE38); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8); + CopyBgTilemapBufferToVram(3); + gMain.state++; + break; + case 4: + LoadSpritePalettes(gUnknown_086103F4); + LoadSpriteSheets(gUnknown_086103BC); + LoadCompressedObjectPic(gUnknown_086103E4); + ShowBg(0); + ShowBg(1); + SetVBlankCallback(sub_819A4E4); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + { + sub_819C5D0(88, 152, 32, 96); + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + } + else + { + HideBg(3); + } + gMain.state++; + break; + case 5: + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + gUnknown_0300127C->cursorPos = gUnknown_0203CF20; + sub_819A9AC(); + sub_819AA18(); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + sub_819BE34(); + gMain.state++; + break; + case 6: + sub_819BA64(); + PutWindowTilemap(2); + gMain.state++; + break; + case 7: + sub_819BCF8(); + PutWindowTilemap(5); + gMain.state++; + break; + case 8: + sub_819B9E8(); + PutWindowTilemap(1); + gMain.state++; + break; + case 9: + sub_819B9B4(); + PutWindowTilemap(0); + gMain.state++; + break; + case 10: + gUnknown_0300127C->unk2A1 = CreateTask(sub_819C69C, 0); + if (!gUnknown_0300127C->fromSummaryScreen) + { + gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; + taskId = CreateTask(sub_819B378, 0); + gTasks[taskId].data[0] = 0; + } + else + { + gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; + gUnknown_0300127C->unk2A2 = 0; + taskId = CreateTask(sub_819B124, 0); + gTasks[taskId].data[0] = 13; + } + SetMainCallback2(sub_819A4C8); + break; + } +} + +void sub_819A9AC(void) +{ + u8 i; + + if (gUnknown_0300127C != NULL) + return; + + gUnknown_0300127C = AllocZeroed(sizeof(*gUnknown_0300127C)); + gUnknown_0300127C->cursorPos = 0; + gUnknown_0300127C->selectingMonsState = 1; + gUnknown_0300127C->fromSummaryScreen = FALSE; + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + gUnknown_0300127C->mons[i].selectetedId = 0; + + if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) + sub_819B484(0); + else + sub_819B63C(0); +} + +extern const struct SpriteTemplate gUnknown_086105F0; +extern const struct SpriteTemplate gUnknown_08610608; +extern const struct SpriteTemplate gUnknown_08610620; + +void sub_819AA18(void) +{ + u8 i, cursorPos; + s16 x; + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + gUnknown_0300127C->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); + gSprites[gUnknown_0300127C->mons[i].spriteId].data[0] = 0; + SetBallSpritePaletteNum(i); + } + cursorPos = gUnknown_0300127C->cursorPos; + x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; + gUnknown_0300127C->cursorSpriteId = CreateSprite(&gUnknown_086105F0, x, 88, 0); + gUnknown_0300127C->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0); + gUnknown_0300127C->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0); + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 1; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 1; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->menuCursor1SpriteId].centerToCornerVecY = 0; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].centerToCornerVecY = 0; +} + +void sub_819AB40(void) +{ + u8 i; + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + DestroySprite(&gSprites[gUnknown_0300127C->mons[i].spriteId]); + + DestroySprite(&gSprites[gUnknown_0300127C->cursorSpriteId]); + DestroySprite(&gSprites[gUnknown_0300127C->menuCursor1SpriteId]); + DestroySprite(&gSprites[gUnknown_0300127C->menuCursor2SpriteId]); +} + +void UpdateBallCursorPosition(s8 direction) +{ + u8 cursorPos; + if (direction > 0) // Move cursor right. + { + if (gUnknown_0300127C->cursorPos != SELECTABLE_MONS_COUNT - 1) + gUnknown_0300127C->cursorPos++; + else + gUnknown_0300127C->cursorPos = 0; + } + else // Move cursor left. + { + if (gUnknown_0300127C->cursorPos != 0) + gUnknown_0300127C->cursorPos--; + else + gUnknown_0300127C->cursorPos = SELECTABLE_MONS_COUNT - 1; + } + + cursorPos = gUnknown_0300127C->cursorPos; + gSprites[gUnknown_0300127C->cursorSpriteId].pos1.x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; +} + +void UpdateMenuCursorPosition(s8 direction) +{ + if (direction > 0) // Move cursor down. + { + if (gUnknown_0300127C->menuCursorPos != MENU_OPTIONS_COUNT - 1) + gUnknown_0300127C->menuCursorPos++; + else + gUnknown_0300127C->menuCursorPos = 0; + } + else // Move cursor up. + { + if (gUnknown_0300127C->menuCursorPos != 0) + gUnknown_0300127C->menuCursorPos--; + else + gUnknown_0300127C->menuCursorPos = MENU_OPTIONS_COUNT - 1; + } + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; +} + +void UpdateYesNoCursorPosition(s8 direction) +{ + if (direction > 0) // Move cursor down. + { + if (gUnknown_0300127C->yesNoCursorPos != 1) + gUnknown_0300127C->yesNoCursorPos++; + else + gUnknown_0300127C->yesNoCursorPos = 0; + } + else // Move cursor up. + { + if (gUnknown_0300127C->yesNoCursorPos != 0) + gUnknown_0300127C->yesNoCursorPos--; + else + gUnknown_0300127C->yesNoCursorPos = 1; + } + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->yesNoCursorPos * 16) + 112; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->yesNoCursorPos * 16) + 112; +} + +void HandleMonSelectionChange(void) +{ + u8 i, paletteNum; + u8 cursorPos = gUnknown_0300127C->cursorPos; + if (gUnknown_0300127C->mons[cursorPos].selectetedId) // Deselect a mon. + { + paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectetedId == 1) + { + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + if (gUnknown_0300127C->mons[i].selectetedId == 2) + break; + } + if (i == SELECTABLE_MONS_COUNT) + return; + else + gUnknown_0300127C->mons[i].selectetedId = 1; + } + gUnknown_0300127C->mons[cursorPos].selectetedId = 0; + gUnknown_0300127C->selectingMonsState--; + } + else // Select a mon. + { + paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + gUnknown_0300127C->mons[cursorPos].selectetedId = gUnknown_0300127C->selectingMonsState; + gUnknown_0300127C->selectingMonsState++; + } + + gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].oam.paletteNum = paletteNum; +} + +void SetBallSpritePaletteNum(u8 id) +{ + u8 palNum; + + if (gUnknown_0300127C->mons[id].selectetedId) + palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + else + palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + + gSprites[gUnknown_0300127C->mons[id].spriteId].oam.paletteNum = palNum; +} + +void Task_FromSelectScreenToSummaryScreen(u8 taskId) +{ + u8 i; + u8 currMonId; + + switch (gTasks[taskId].data[0]) + { + case 6: + gPlttBufferUnfaded[228] = gPlttBufferFaded[228]; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0] = 7; + break; + case 7: + if (!gPaletteFade.active) + { + DestroyTask(gUnknown_0300127C->unk2A1); + sub_819F444(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0); + sub_819AB40(); + FREE_AND_SET_NULL(gUnknown_0203CE2C); + FREE_AND_SET_NULL(gUnknown_0203CE30); + FREE_AND_SET_NULL(gUnknown_0203CE34); + FREE_AND_SET_NULL(gUnknown_0203CE38); + FreeAllWindowBuffers(); + gTasks[taskId].data[0] = 8; + } + break; + case 8: + gUnknown_0300127C->unk2A4 = gPlttBufferUnfaded[228]; + DestroyTask(taskId); + gUnknown_0300127C->fromSummaryScreen = TRUE; + currMonId = gUnknown_0300127C->cursorPos; + sFactorySelectMons = AllocZeroed(sizeof(struct Pokemon) * SELECTABLE_MONS_COUNT); + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + sFactorySelectMons[i] = gUnknown_0300127C->mons[i].monData; + ShowPokemonSummaryScreen(1, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, sub_819A514); + break; + } +} + +void Task_CloseSelectionScreen(u8 taskId) +{ + if (gUnknown_0300127C->unk2A0 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0]++; + break; + case 1: + if (!UpdatePaletteFade()) + { + sub_819B764(); + DestroyTask(gUnknown_0300127C->unk2A1); + sub_819AB40(); + FREE_AND_SET_NULL(gUnknown_0203CE2C); + FREE_AND_SET_NULL(gUnknown_0203CE34); + FREE_AND_SET_NULL(gUnknown_0203CE38); + FREE_AND_SET_NULL(gUnknown_0300127C); + FreeAllWindowBuffers(); + SetMainCallback2(CB2_ReturnToFieldContinueScript); + DestroyTask(taskId); + } + break; + } + } +} + +void Task_HandleSelectionScreenYesNo(u8 taskId) +{ + if (gUnknown_0300127C->unk2A0 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 10: + sub_819C4B4(); + gTasks[taskId].data[0] = 4; + break; + case 4: + sub_819B8D4(); + gTasks[taskId].data[0] = 5; + break; + case 5: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gUnknown_0300127C->yesNoCursorPos == 0) + { + sub_819C568(); + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = Task_CloseSelectionScreen; + } + else + { + sub_819B958(4); + sub_819BC9C(); + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = sub_819B378; + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_819B958(4); + sub_819BC9C(); + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = sub_819B378; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + UpdateYesNoCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + UpdateYesNoCursorPosition(1); + } + break; + } + } +} diff --git a/src/battle_frontier_2.c b/src/battle_frontier_2.c deleted file mode 100644 index 958aa46921..0000000000 --- a/src/battle_frontier_2.c +++ /dev/null @@ -1,337 +0,0 @@ -#include "global.h" -#include "sprite.h" -#include "event_data.h" -#include "overworld.h" -#include "random.h" -#include "battle_tower.h" -#include "text.h" -#include "palette.h" -#include "task.h" -#include "main.h" -#include "malloc.h" -#include "bg.h" -#include "gpu_regs.h" -#include "window.h" -#include "decompress.h" -#include "constants/battle_frontier.h" - -#define SELECTABLE_MONS_COUNT 6 -#define TAG_PAL_BALL_GREY 0x64 -#define TAG_PAL_BALL_SELECTED 0x65 - -struct FactorySelecteableMon -{ - u16 unk0; - u16 spriteId; - bool8 selected; - u8 filler6[0x6A - 6]; - u8 unk6A; -}; - -struct UnkStructTempName -{ - u8 menuCursorPos; - u8 unk1; - u8 unk2; - u8 cursorPos; - u8 unk4; - u8 unk5; - bool8 fromSummaryScreen; - u8 unk7; - u8 unk8; - u8 unk9; - struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; - u8 filler294[0x2a1 - 0x294]; - u8 unk2A1; - u8 unk2A2; - u8 unk2A3; - u16 unk2A4; - u16 unk2A6; - u16 unk2A8; - u16 unk2AA; -}; - -extern struct UnkStructTempName *gUnknown_0300127C; -extern u8 *gUnknown_0203CE2C; -extern u8 *gUnknown_0203CE30; -extern u8 *gUnknown_0203CE34; -extern u8 *gUnknown_0203CE38; -extern struct Pokemon *gUnknown_0203CE3C; -extern u8 gUnknown_0203CF20; - -// This file's functions. -void sub_819A514(void); -void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); -void sub_819A9AC(void); -void sub_819AA18(void); -void sub_819BE34(void); -void sub_819BA64(void); -void sub_819BCF8(void); -void sub_819B9E8(void); -void sub_819B9B4(void); -void sub_819C69C(u8 taskId); -void sub_819B378(u8 taskId); -void sub_819B124(u8 taskId); -void sub_819B484(u8 arg0); -void sub_819B63C(u8 arg0); -void SetBallSpritePaletteNum(u8 id); - -// Const rom data. -extern const struct BgTemplate gUnknown_08610428[3]; -extern const struct WindowTemplate gUnknown_08610434[]; -extern const u8 gUnknown_0861033C[]; -extern const u8 gUnknown_0861023C[]; -extern const u16 gUnknown_0861046C[]; -extern const u16 gUnknown_0861039C[]; -extern const struct SpritePalette gUnknown_086103F4[]; -extern const struct SpriteSheet gUnknown_086103BC[]; -extern const struct CompressedSpriteSheet gUnknown_086103E4[]; -extern const struct SpriteTemplate gUnknown_086105D8; - -// gfx -extern const u8 gFrontierFactorySelectMenu_Gfx[]; -extern const u8 gFrontierFactorySelectMenu_Tilemap[]; -extern const u16 gFrontierFactorySelectMenu_Pal[]; - -// code -void sub_819A44C(struct Sprite *sprite) -{ - if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED)) - { - if (sprite->animEnded) - { - if (sprite->data[0] != 0) - { - sprite->data[0]--; - } - else if (Random() % 5 == 0) - { - StartSpriteAnim(sprite, 0); - sprite->data[0] = 32; - } - else - { - StartSpriteAnim(sprite, 1); - } - } - else - { - StartSpriteAnimIfDifferent(sprite, 1); - } - } - else - { - StartSpriteAnimIfDifferent(sprite, 0); - } -} - -void sub_819A4C8(void) -{ - AnimateSprites(); - BuildOamBuffer(); - RunTextPrinters(); - UpdatePaletteFade(); - RunTasks(); -} - -void sub_819A4E4(void) -{ - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); -} - -void sub_819A4F8(void) -{ - gUnknown_0300127C = NULL; - SetMainCallback2(sub_819A514); -} - -void sub_819A514(void) -{ - u8 taskId; - - switch (gMain.state) - { - case 0: - if (gUnknown_0203CE3C != NULL) - FREE_AND_SET_NULL(gUnknown_0203CE3C); - SetHBlankCallback(NULL); - SetVBlankCallback(NULL); - CpuFill32(0, (void *)VRAM, VRAM_SIZE); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_08610428, ARRAY_COUNT(gUnknown_08610428)); - InitWindows(gUnknown_08610434); - DeactivateAllTextPrinters(); - gMain.state++; - break; - case 1: - gUnknown_0203CE2C = Alloc(0x440); - gUnknown_0203CE30 = AllocZeroed(0x440); - gUnknown_0203CE34 = Alloc(0x800); - gUnknown_0203CE38 = AllocZeroed(0x800); - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgX(3, 0, 0); - ChangeBgY(3, 0, 0); - SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetGpuReg(REG_OFFSET_BLDALPHA, 0); - SetGpuReg(REG_OFFSET_BLDY, 0); - SetGpuReg(REG_OFFSET_MOSAIC, 0); - SetGpuReg(REG_OFFSET_WIN0H, 0); - SetGpuReg(REG_OFFSET_WIN0V, 0); - SetGpuReg(REG_OFFSET_WIN1H, 0); - SetGpuReg(REG_OFFSET_WIN1V, 0); - SetGpuReg(REG_OFFSET_WININ, 0); - SetGpuReg(REG_OFFSET_WINOUT, 0); - gMain.state++; - break; - case 2: - ResetPaletteFade(); - ResetSpriteData(); - ResetTasks(); - FreeAllSpritePalettes(); - CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE2C, 0x440); - CpuCopy16(gUnknown_0861033C, gUnknown_0203CE30, 0x60); - LoadBgTiles(1, gUnknown_0203CE2C, 0x440, 0); - LoadBgTiles(3, gUnknown_0203CE30, 0x60, 0); - CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE34, 0x800); - LoadBgTilemap(1, gUnknown_0203CE34, 0x800, 0); - LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); - LoadPalette(gUnknown_0861046C, 0xF0, 8); - LoadPalette(gUnknown_0861046C, 0xE0, 10); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - gPlttBufferUnfaded[228] = gUnknown_0300127C->unk2A4; - LoadPalette(gUnknown_0861039C, 0x20, 4); - gMain.state++; - break; - case 3: - SetBgTilemapBuffer(3, gUnknown_0203CE38); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8); - CopyBgTilemapBufferToVram(3); - gMain.state++; - break; - case 4: - LoadSpritePalettes(gUnknown_086103F4); - LoadSpriteSheets(gUnknown_086103BC); - LoadCompressedObjectPic(gUnknown_086103E4); - ShowBg(0); - ShowBg(1); - SetVBlankCallback(sub_819A4E4); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - { - sub_819C5D0(88, 152, 32, 96); - ShowBg(3); - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); - } - else - { - HideBg(3); - } - gMain.state++; - break; - case 5: - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - gUnknown_0300127C->cursorPos = gUnknown_0203CF20; - sub_819A9AC(); - sub_819AA18(); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - sub_819BE34(); - gMain.state++; - break; - case 6: - sub_819BA64(); - PutWindowTilemap(2); - gMain.state++; - break; - case 7: - sub_819BCF8(); - PutWindowTilemap(5); - gMain.state++; - break; - case 8: - sub_819B9E8(); - PutWindowTilemap(1); - gMain.state++; - break; - case 9: - sub_819B9B4(); - PutWindowTilemap(0); - gMain.state++; - break; - case 10: - gUnknown_0300127C->unk2A1 = CreateTask(sub_819C69C, 0); - if (!gUnknown_0300127C->fromSummaryScreen) - { - gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; - taskId = CreateTask(sub_819B378, 0); - gTasks[taskId].data[0] = 0; - } - else - { - gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; - gUnknown_0300127C->unk2A2 = 0; - taskId = CreateTask(sub_819B124, 0); - gTasks[taskId].data[0] = 13; - } - SetMainCallback2(sub_819A4C8); - break; - } -} - -void sub_819A9AC(void) -{ - u8 i; - - if (gUnknown_0300127C != NULL) - return; - - gUnknown_0300127C = AllocZeroed(sizeof(*gUnknown_0300127C)); - gUnknown_0300127C->cursorPos = 0; - gUnknown_0300127C->unk5 = 1; - gUnknown_0300127C->fromSummaryScreen = FALSE; - for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - gUnknown_0300127C->mons[i].selected = FALSE; - - if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) - sub_819B484(0); - else - sub_819B63C(0); -} - -extern const struct SpriteTemplate gUnknown_086105F0; -extern const struct SpriteTemplate gUnknown_08610608; -extern const struct SpriteTemplate gUnknown_08610620; - -void sub_819AA18(void) -{ - u8 i, cursorPos; - s16 x; - - for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - { - gUnknown_0300127C->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); - gSprites[gUnknown_0300127C->mons[i].spriteId].data[0] = 0; - SetBallSpritePaletteNum(i); - } - cursorPos = gUnknown_0300127C->cursorPos; - x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; - gUnknown_0300127C->unk4 = CreateSprite(&gUnknown_086105F0, x, 88, 0); - gUnknown_0300127C->unk1 = CreateSprite(&gUnknown_08610608, 176, 112, 0); - gUnknown_0300127C->unk2 = CreateSprite(&gUnknown_08610620, 176, 144, 0); - - gSprites[gUnknown_0300127C->unk1].invisible = 1; - gSprites[gUnknown_0300127C->unk2].invisible = 1; - - gSprites[gUnknown_0300127C->unk1].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->unk1].centerToCornerVecY = 0; - gSprites[gUnknown_0300127C->unk2].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->unk2].centerToCornerVecY = 0; -} diff --git a/sym_ewram.txt b/sym_ewram.txt index bf2632e91b..392b84b7bc 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -643,22 +643,7 @@ gUnknown_0203CD88: @ 203CD88 .space 0x4 .include "src/menu.o" - - .align 2 -gUnknown_0203CE2C: @ 203CE2C - .space 0x4 - -gUnknown_0203CE30: @ 203CE30 - .space 0x4 - -gUnknown_0203CE34: @ 203CE34 - .space 0x4 - -gUnknown_0203CE38: @ 203CE38 - .space 0x4 - -gUnknown_0203CE3C: @ 203CE3C - .space 0x4 + .include "src/battle_factory.o" gUnknown_0203CE40: @ 203CE40 .space 0x4 From 24b9cd721ff1f5c7f2fdd674299d0d2d9f396be2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 3 Sep 2018 22:55:55 +0200 Subject: [PATCH 03/28] More Battle Factory --- asm/battle_frontier_2.s | 1682 +--------------------------------- asm/battle_tower.s | 4 +- asm/contest_link_80F57C4.s | 2 +- asm/easy_chat.s | 2 +- asm/party_menu.s | 8 +- asm/pokenav.s | 32 +- asm/rom_8011DC0.s | 84 +- asm/slot_machine.s | 2 +- asm/trade.s | 4 +- asm/trainer_card.s | 68 +- asm/use_pokeblock.s | 2 +- include/global.h | 8 +- include/menu.h | 2 +- src/battle_factory.c | 569 +++++++++++- src/berry_fix_program.c | 10 +- src/hall_of_fame.c | 26 +- src/link.c | 10 +- src/mail.c | 4 +- src/main_menu.c | 44 +- src/menu.c | 6 +- src/naming_screen.c | 6 +- src/pokemon_storage_system.c | 4 +- src/starter_choose.c | 4 +- 23 files changed, 717 insertions(+), 1866 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 4ad5644007..4e0c3126f1 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -7,1658 +7,6 @@ - thumb_func_start sub_819B124 -sub_819B124: @ 819B124 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - subs r0, 0x2 - lsls r0, 16 - asrs r0, 16 - adds r6, r1, 0 - cmp r0, 0xB - bls _0819B144 - b _0819B36E -_0819B144: - lsls r0, 2 - ldr r1, =_0819B158 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819B158: - .4byte _0819B188 - .4byte _0819B1EC - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B1BC - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B300 - .4byte _0819B35C -_0819B188: - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r0, [r1, 0x6] - cmp r0, 0 - bne _0819B1A2 - ldr r2, =0x00000299 - adds r0, r1, r2 - movs r7, 0xA8 - lsls r7, 2 - adds r1, r7 - movs r2, 0 - bl sub_819F2B4 -_0819B1A2: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0x9 - b _0819B36C - .pool -_0819B1BC: - ldr r4, =gUnknown_0300127C - ldr r0, [r4] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0819B1CE - b _0819B36E -_0819B1CE: - bl sub_819B844 - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x6] - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - b _0819B344 - .pool -_0819B1EC: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r7, 0x1 - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0819B27C - movs r0, 0x5 - bl PlaySE - bl sub_819BC04 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - bne _0819B228 - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldr r2, =0x000002a2 - adds r0, r2 - b _0819B2AC - .pool -_0819B228: - cmp r0, 0x2 - bne _0819B248 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - strh r1, [r0, 0x8] - ldr r1, =Task_HandleSelectionScreenYesNo - str r1, [r0] - b _0819B36E - .pool -_0819B248: - cmp r1, 0x3 - bne _0819B260 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xB - strh r1, [r0, 0x8] - b _0819B2BA - .pool -_0819B260: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x6 - strh r1, [r0, 0x8] - ldr r1, =Task_FromSelectScreenToSummaryScreen - str r1, [r0] - b _0819B36E - .pool -_0819B27C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819B2D0 - movs r0, 0x5 - bl PlaySE - ldr r4, =gUnknown_0300127C - ldr r1, [r4] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x8 - adds r1, r2 - movs r2, 0 - bl sub_819F3F8 - movs r0, 0x3 - bl sub_819B958 - ldr r0, [r4] - ldr r1, =0x000002a2 - adds r0, r1 -_0819B2AC: - strb r7, [r0] - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x8] -_0819B2BA: - ldr r1, =sub_819B378 - str r1, [r0] - b _0819B36E - .pool -_0819B2D0: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819B2EA - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl UpdateMenuCursorPosition - b _0819B36E -_0819B2EA: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819B36E - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl UpdateMenuCursorPosition - b _0819B36E -_0819B300: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _0819B36E - ldr r4, =gUnknown_0300127C - ldr r2, [r4] - ldrb r0, [r2, 0x6] - cmp r0, 0x1 - bne _0819B338 - ldr r1, =gPlttBufferFaded - movs r7, 0xA9 - lsls r7, 2 - adds r0, r2, r7 - ldrh r0, [r0] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r2 - strh r0, [r1] - ldr r0, =gPlttBufferUnfaded - subs r7, 0xBC - adds r1, r0, r7 - ldrh r1, [r1] - adds r0, r2 - strh r1, [r0] -_0819B338: - ldr r0, [r4] - strb r3, [r0, 0x6] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 -_0819B344: - movs r1, 0x3 - strh r1, [r0, 0x8] - b _0819B36E - .pool -_0819B35C: - bl sub_819B844 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0xC -_0819B36C: - strh r0, [r1, 0x8] -_0819B36E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B124 - - thumb_func_start sub_819B378 -sub_819B378: @ 819B378 - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r5, =gUnknown_0300127C - ldr r3, [r5] - movs r7, 0xA8 - lsls r7, 2 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819B476 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _0819B3DC - cmp r1, 0x1 - bgt _0819B3B4 - cmp r1, 0 - beq _0819B3BA - b _0819B476 - .pool -_0819B3B4: - cmp r1, 0xB - beq _0819B440 - b _0819B476 -_0819B3BA: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0819B476 - movs r0, 0x1 - movs r1, 0x1 - strh r1, [r4, 0x8] - ldr r2, =0x000002a2 - adds r1, r3, r2 - strb r0, [r1] - b _0819B476 - .pool -_0819B3DC: - ldr r2, =gMain - ldrh r0, [r2, 0x2E] - ands r1, r0 - cmp r1, 0 - beq _0819B40C - movs r0, 0x5 - bl PlaySE - ldr r0, [r5] - ldr r1, =0x000002a2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x2 - strh r0, [r4, 0x8] - ldr r0, =sub_819B124 - str r0, [r4] - b _0819B476 - .pool -_0819B40C: - ldrh r1, [r2, 0x30] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819B422 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _0819B432 -_0819B422: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0819B476 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_0819B432: - bl UpdateBallCursorPosition - bl sub_819BCF8 - bl sub_819B9E8 - b _0819B476 -_0819B440: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0819B476 - movs r0, 0x5 - bl PlaySE - ldr r1, [r5] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - adds r1, r7 - movs r2, 0 - bl sub_819F3F8 - bl sub_819BA64 - ldr r0, [r5] - ldr r1, =0x000002a2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - strh r6, [r4, 0x8] -_0819B476: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B378 - - thumb_func_start sub_819B484 -sub_819B484: @ 819B484 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - movs r6, 0 - add r0, sp, 0xC - strb r6, [r0] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r7, =gSaveBlock2Ptr - ldr r2, [r7] - ldr r0, =0x00000ca9 - adds r4, r2, r0 - ldrb r0, [r4] - lsls r0, 30 - lsrs r0, 30 - adds r5, r0, 0 - lsls r0, r5, 1 - lsls r1, r6, 2 - adds r0, r1 - ldr r1, =0x00000de2 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - ldr r1, =gFacilityTrainerMons - ldr r0, =gBattleFrontierMons - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x3 - ands r0, r1 - movs r2, 0x32 - str r2, [sp, 0x14] - cmp r0, 0 - beq _0819B4EA - movs r3, 0x64 - str r3, [sp, 0x14] -_0819B4EA: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_81A6F70 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - ldr r1, [r7] - ldrb r0, [r1, 0xA] - mov r9, r0 - ldrb r0, [r1, 0xB] - lsls r0, 8 - mov r2, r9 - orrs r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - orrs r2, r0 - mov r9, r2 - movs r3, 0 - mov r8, r3 -_0819B518: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r2, r8 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 2 - adds r1, r0 - movs r3, 0xE7 - lsls r3, 4 - adds r1, r3 - ldrh r5, [r1] - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldr r2, [sp, 0x10] - add r2, r8 - movs r3, 0x6C - adds r0, r2, 0 - muls r0, r3 - adds r1, r0 - strh r5, [r1, 0xC] - mov r10, r2 - ldr r0, [sp, 0x1C] - cmp r8, r0 - bcs _0819B570 - ldr r0, [sp, 0x18] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _0819B572 - .pool -_0819B570: - ldr r0, [sp, 0x18] -_0819B572: - movs r1, 0 - bl sub_81A6CA8 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x6C - mov r4, r10 - muls r4, r1 - adds r4, 0xC - ldr r2, =gUnknown_0300127C - ldr r0, [r2] - adds r0, r4 - adds r0, 0x8 - ldr r1, =gFacilityTrainerMons - ldr r2, [r1] - lsls r5, 4 - adds r2, r5, r2 - ldrh r1, [r2] - ldrb r3, [r2, 0xC] - str r6, [sp] - ldrb r2, [r2, 0xB] - str r2, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - ldr r2, [sp, 0x14] - bl CreateMonWithEVSpreadPersonalityOTID - movs r1, 0 - add r0, sp, 0xC - strb r1, [r0] - movs r6, 0 - adds r7, r5, 0 - movs r3, 0x1 - add r8, r3 - ldr r3, =gUnknown_0300127C -_0819B5B8: - ldr r0, [r3] - adds r0, r4 - adds r0, 0x8 - ldr r5, =gFacilityTrainerMons - ldr r1, [r5] - adds r1, r7, r1 - lsls r2, r6, 1 - adds r1, 0x2 - adds r1, r2 - ldrh r1, [r1] - adds r2, r6, 0 - str r3, [sp, 0x20] - bl sub_81A7024 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x20] - cmp r6, 0x3 - bls _0819B5B8 - movs r0, 0x6C - mov r4, r10 - muls r4, r0 - adds r4, 0xC - ldr r1, =gUnknown_0300127C - ldr r0, [r1] - adds r0, r4 - adds r0, 0x8 - movs r1, 0x20 - add r2, sp, 0xC - bl SetMonData - ldr r2, =gUnknown_0300127C - ldr r0, [r2] - adds r0, r4 - adds r0, 0x8 - ldr r1, [r5] - adds r1, r7, r1 - ldrb r2, [r1, 0xA] - lsls r2, 1 - ldr r1, =gBattleFrontierHeldItems - adds r2, r1 - movs r1, 0xC - bl SetMonData - mov r3, r8 - lsls r0, r3, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x5 - bhi _0819B620 - b _0819B518 -_0819B620: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B484 - - thumb_func_start sub_819B63C -sub_819B63C: @ 819B63C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - add r0, sp, 0xC - movs r1, 0 - strb r1, [r0] - ldr r2, =gFacilityTrainerMons - ldr r0, =gSlateportBattleTentMons - str r0, [r2] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r3, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - orrs r3, r0 - mov r10, r3 - movs r7, 0 - mov r9, r7 -_0819B678: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r2, r9 - lsls r0, r2, 1 - add r0, r9 - lsls r0, 2 - adds r1, r0 - movs r3, 0xE7 - lsls r3, 4 - adds r1, r3 - ldrh r1, [r1] - mov r8, r1 - ldr r7, =gUnknown_0300127C - ldr r0, [r7] - ldr r6, [sp, 0x10] - add r6, r9 - movs r1, 0x6C - adds r4, r6, 0 - muls r4, r1 - adds r1, r0, r4 - mov r2, r8 - strh r2, [r1, 0xC] - adds r4, 0xC - adds r0, r4 - adds r0, 0x8 - ldr r3, =gFacilityTrainerMons - ldr r2, [r3] - mov r7, r8 - lsls r5, r7, 4 - adds r2, r5, r2 - ldrh r1, [r2] - ldrb r3, [r2, 0xC] - movs r7, 0 - str r7, [sp] - ldrb r2, [r2, 0xB] - str r2, [sp, 0x4] - mov r2, r10 - str r2, [sp, 0x8] - movs r2, 0x1E - bl CreateMonWithEVSpreadPersonalityOTID - add r0, sp, 0xC - movs r3, 0 - strb r3, [r0] - movs r0, 0x1 - add r9, r0 -_0819B6D4: - ldr r1, =gUnknown_0300127C - ldr r0, [r1] - adds r0, r4 - adds r0, 0x8 - ldr r3, =gFacilityTrainerMons - ldr r2, [r3] - mov r3, r8 - lsls r1, r3, 4 - adds r1, r2 - lsls r2, r7, 1 - adds r1, 0x2 - adds r1, r2 - ldrh r1, [r1] - adds r2, r7, 0 - bl sub_81A7024 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _0819B6D4 - movs r7, 0x6C - adds r4, r6, 0 - muls r4, r7 - adds r4, 0xC - ldr r1, =gUnknown_0300127C - ldr r0, [r1] - adds r0, r4 - adds r0, 0x8 - movs r1, 0x20 - add r2, sp, 0xC - bl SetMonData - ldr r2, =gUnknown_0300127C - ldr r0, [r2] - adds r0, r4 - adds r0, 0x8 - ldr r3, =gFacilityTrainerMons - ldr r1, [r3] - adds r1, r5, r1 - ldrb r2, [r1, 0xA] - lsls r2, 1 - ldr r1, =gBattleFrontierHeldItems - adds r2, r1 - movs r1, 0xC - bl SetMonData - mov r7, r9 - lsls r0, r7, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0x5 - bls _0819B678 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B63C - - thumb_func_start sub_819B764 -sub_819B764: @ 819B764 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r7, 0 - ldr r0, =gUnknown_0300127C - mov r10, r0 - ldr r1, =gSaveBlock2Ptr - mov r8, r1 -_0819B778: - movs r2, 0 - adds r0, r7, 0x1 - mov r9, r0 -_0819B77E: - mov r1, r10 - ldr r0, [r1] - movs r1, 0x6C - adds r6, r2, 0 - muls r6, r1 - adds r1, r0, r6 - ldrb r0, [r1, 0x10] - cmp r0, r9 - bne _0819B81C - movs r0, 0x64 - adds r5, r7, 0 - muls r5, r0 - ldr r2, =gPlayerParty - adds r5, r2 - adds r1, 0x14 - adds r0, r5, 0 - movs r2, 0x64 - bl memcpy - mov r0, r8 - ldr r1, [r0] - lsls r4, r7, 1 - adds r4, r7 - lsls r4, 2 - adds r1, r4 - mov r2, r10 - ldr r0, [r2] - adds r0, r6 - ldrh r0, [r0, 0xC] - movs r2, 0xE7 - lsls r2, 4 - adds r1, r2 - strh r0, [r1] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - ldr r2, =0x00000e74 - adds r1, r2 - adds r1, r4 - str r0, [r1] - adds r0, r5, 0 - movs r1, 0x2E - movs r2, 0 - bl GetBoxMonData - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - ldr r2, =0x00000e79 - adds r1, r2 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x28 - movs r2, 0 - bl GetBoxMonData - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - ldr r2, =0x00000e78 - adds r1, r2 - strb r0, [r1] - b _0819B826 - .pool -_0819B81C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819B77E -_0819B826: - mov r1, r9 - lsls r0, r1, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _0819B778 - bl CalculatePlayerPartyCount - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819B764 - - thumb_func_start sub_819B844 -sub_819B844: @ 819B844 - push {r4,r5,lr} - ldr r5, =gUnknown_0300127C - ldr r1, [r5] - ldrb r0, [r1, 0x6] - cmp r0, 0 - bne _0819B852 - strb r0, [r1] -_0819B852: - ldr r4, =gSprites - ldr r2, [r5] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xB0 - strh r1, [r0, 0x20] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xD0 - strh r1, [r0, 0x20] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl sub_819BAFC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B844 - - thumb_func_start sub_819B8D4 -sub_819B8D4: @ 819B8D4 - push {r4,r5,lr} - ldr r5, =gUnknown_0300127C - ldr r1, [r5] - movs r0, 0 - strb r0, [r1, 0x7] - ldr r4, =gSprites - ldr r2, [r5] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xB0 - strh r1, [r0, 0x20] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r3, 0x70 - strh r3, [r0, 0x22] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xD0 - strh r1, [r0, 0x20] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x22] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl sub_819BBA8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B8D4 - - thumb_func_start sub_819B958 -sub_819B958: @ 819B958 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gSprites - ldr r3, =gUnknown_0300127C - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r4, 0 - bl ClearWindowTilemap - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B958 - - thumb_func_start sub_819B9B4 -sub_819B9B4: @ 819B9B4 - push {lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r2, =gText_RentalPkmn2 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x2 - bl PrintTextOnWindow - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B9B4 - - thumb_func_start sub_819B9E8 -sub_819B9E8: @ 819B9E8 - push {r4,r5,lr} - sub sp, 0xC - ldr r5, =gUnknown_0300127C - ldr r0, [r5] - ldrb r4, [r0, 0x3] - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x6C - muls r0, r4 - ldr r1, [r5] - adds r0, r1 - adds r0, 0x14 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gStringVar4 - movs r1, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08610479 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B9E8 - - thumb_func_start sub_819BA64 -sub_819BA64: @ 819BA64 - push {lr} - sub sp, 0xC - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0819BA88 - ldr r2, =gText_SelectFirstPkmn - b _0819BA9C - .pool -_0819BA88: - cmp r0, 0x2 - bne _0819BA94 - ldr r2, =gText_SelectSecondPkmn - b _0819BA9C - .pool -_0819BA94: - ldr r2, =gText_TheseThreePkmnOkay - cmp r0, 0x3 - bne _0819BA9C - ldr r2, =gText_SelectThirdPkmn -_0819BA9C: - movs r0, 0x5 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0x2 - bl PrintTextOnWindow - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BA64 - - thumb_func_start sub_819BAC8 -sub_819BAC8: @ 819BAC8 - push {lr} - sub sp, 0xC - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r2, =gText_CantSelectSamePkmn - movs r0, 0x5 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0x2 - bl PrintTextOnWindow - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BAC8 - - thumb_func_start sub_819BAFC -sub_819BAFC: @ 819BAFC - push {r4-r6,lr} - sub sp, 0xC - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r2, [r0, 0x3] - movs r1, 0x6C - muls r1, r2 - adds r0, r1 - ldrb r5, [r0, 0x10] - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r4, =gUnknown_08610476 - str r4, [sp] - movs r6, 0 - str r6, [sp, 0x4] - ldr r0, =gText_Summary - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl box_print - cmp r5, 0 - beq _0819BB60 - str r4, [sp] - str r6, [sp, 0x4] - ldr r0, =gText_Deselect - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x11 - bl box_print - b _0819BB74 - .pool -_0819BB60: - str r4, [sp] - str r5, [sp, 0x4] - ldr r0, =gText_Rent - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x11 - bl box_print -_0819BB74: - ldr r0, =gUnknown_08610476 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldr r0, =gText_Others2 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x21 - bl box_print - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BAFC - - thumb_func_start sub_819BBA8 -sub_819BBA8: @ 819BBA8 - push {r4,r5,lr} - sub sp, 0xC - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x4 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_08610476 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r0, =gText_Yes2 - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl box_print - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, =gText_No2 - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x11 - bl box_print - movs r0, 0x4 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BBA8 - - thumb_func_start sub_819BC04 -sub_819BC04: @ 819BC04 - push {lr} - ldr r2, =gUnknown_030062E8 - ldr r1, =gUnknown_0861041C - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_819BC04 - - thumb_func_start sub_819BC30 -sub_819BC30: @ 819BC30 - push {r4,lr} - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r2, [r0, 0x3] - movs r1, 0x6C - muls r1, r2 - adds r0, r1 - ldrb r1, [r0, 0x10] - ldrh r0, [r0, 0xC] - cmp r1, 0 - bne _0819BC60 - bl sub_819C634 - cmp r0, 0 - bne _0819BC60 - bl sub_819BAC8 - movs r0, 0x3 - bl sub_819B958 - movs r0, 0x3 - b _0819BC96 - .pool -_0819BC60: - ldr r4, =gUnknown_0300127C - ldr r1, [r4] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x8 - adds r1, r2 - movs r2, 0 - bl sub_819F3F8 - bl HandleMonSelectionChange - bl sub_819BA64 - movs r0, 0x3 - bl sub_819B958 - ldr r0, [r4] - ldrb r0, [r0, 0x5] - cmp r0, 0x3 - bhi _0819BC94 - movs r0, 0x1 - b _0819BC96 - .pool -_0819BC94: - movs r0, 0x2 -_0819BC96: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_819BC30 - - thumb_func_start sub_819BC9C -sub_819BC9C: @ 819BC9C - push {lr} - bl sub_819C568 - bl HandleMonSelectionChange - bl sub_819BA64 - movs r0, 0x3 - bl sub_819B958 - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x3 - bhi _0819BCC4 - movs r0, 0x1 - b _0819BCC6 - .pool -_0819BCC4: - movs r0, 0x2 -_0819BCC6: - pop {r1} - bx r1 - thumb_func_end sub_819BC9C - - thumb_func_start sub_819BCCC -sub_819BCCC: @ 819BCCC - movs r0, 0 - bx lr - thumb_func_end sub_819BCCC - - thumb_func_start sub_819BCD0 -sub_819BCD0: @ 819BCD0 - push {lr} - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x8 - adds r1, r2 - movs r2, 0 - bl sub_819F3F8 - movs r0, 0x3 - bl sub_819B958 - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_819BCD0 - - thumb_func_start sub_819BCF8 -sub_819BCF8: @ 819BCF8 - push {r4,r5,lr} - sub sp, 0x2C - ldr r5, =gUnknown_0300127C - ldr r0, [r5] - ldrb r4, [r0, 0x3] - cmp r4, 0x5 - bhi _0819BD64 - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x6C - muls r0, r4 - ldr r1, [r5] - adds r0, r1 - adds r0, 0x14 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - add r1, sp, 0xC - bl CopyMonCategoryText - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x76 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x5 - movs r1, 0x1 - add r2, sp, 0xC - bl PrintTextOnWindow - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram -_0819BD64: - add sp, 0x2C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BCF8 - - thumb_func_start sub_819BD70 -sub_819BD70: @ 819BD70 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - ldr r6, =gUnknown_0300127C - ldr r2, [r6] - ldrb r1, [r2, 0x3] - movs r0, 0x6C - adds r4, r1, 0 - muls r4, r0 - adds r4, r2 - adds r4, 0x14 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r5, 0 - mov r2, r8 - movs r3, 0x1 - bl CreateMonPicSprite_HandleDeoxys - ldr r1, [r6] - movs r2, 0xA6 - lsls r2, 2 - adds r1, r2 - movs r3, 0 - strb r0, [r1] - ldr r4, =gSprites - ldr r0, [r6] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x28 - strb r3, [r0] - ldr r0, [r6] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x29 - strb r3, [r0] - ldr r0, [r6] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - strb r3, [r0] - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BD70 - - thumb_func_start sub_819BE20 -sub_819BE20: @ 819BE20 - ldr r1, =gUnknown_0300127C - ldr r1, [r1] - movs r2, 0xA8 - lsls r2, 2 - adds r1, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_819BE20 - - thumb_func_start sub_819BE34 -sub_819BE34: @ 819BE34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r0, =gUnknown_08610638 - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1 - bl CreateSprite - ldr r6, =gUnknown_0300127C - ldr r1, [r6] - ldr r2, =0x00000299 - mov r10, r2 - add r1, r10 - movs r7, 0 - strb r0, [r1] - ldr r0, [r6] - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - mov r8, r1 - add r0, r8 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r2, [r6] - ldrb r1, [r2, 0x3] - movs r0, 0x6C - adds r4, r1, 0 - muls r4, r0 - adds r4, r2 - adds r4, 0x14 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r9, r0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r5, 0 - mov r2, r9 - movs r3, 0x1 - bl CreateMonPicSprite_HandleDeoxys - ldr r1, [r6] - movs r2, 0xA6 - lsls r2, 2 - adds r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r6] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r6] - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BE34 thumb_func_start sub_819BF2C sub_819BF2C: @ 819BF2C @@ -6974,7 +5322,7 @@ _0819EB8A: movs r0, 0x1 movs r1, 0x1 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram @@ -7032,7 +5380,7 @@ sub_819EC20: @ 819EC20 movs r1, 0x1 movs r2, 0xF movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, =gText_Swap @@ -7041,7 +5389,7 @@ sub_819EC20: @ 819EC20 movs r1, 0x1 movs r2, 0xF movs r3, 0x11 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, =gText_Rechoose @@ -7050,7 +5398,7 @@ sub_819EC20: @ 819EC20 movs r1, 0x1 movs r2, 0xF movs r3, 0x21 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram @@ -7080,7 +5428,7 @@ sub_819EC94: @ 819EC94 movs r1, 0x1 movs r2, 0x7 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, =gText_No3 @@ -7089,7 +5437,7 @@ sub_819EC94: @ 819EC94 movs r1, 0x1 movs r2, 0x7 movs r3, 0x11 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x4 movs r1, 0x3 bl CopyWindowToVram @@ -7126,7 +5474,7 @@ sub_819ECF0: @ 819ECF0 adds r0, r4, 0 movs r1, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r4-r6} pop {r0} @@ -7321,7 +5669,7 @@ _0819EE8E: movs r0, 0x7 movs r1, 0x1 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x7 movs r1, 0x3 bl CopyWindowToVram @@ -7398,7 +5746,7 @@ _0819EF46: movs r0, 0x1 movs r1, 0x1 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram @@ -21389,7 +19737,7 @@ _081A6602: lsls r2, r6, 24 lsrs r2, 24 adds r0, r4, r5 - bl sub_81A7024 + bl SetMonMoveAvoidReturn adds r6, 0x1 cmp r6, 0x3 ble _081A6602 @@ -21555,7 +19903,7 @@ _081A674E: lsls r2, r6, 24 lsrs r2, 24 adds r0, r4, r5 - bl sub_81A7024 + bl SetMonMoveAvoidReturn adds r6, 0x1 cmp r6, 0x3 ble _081A674E @@ -22445,7 +20793,7 @@ _081A6E6E: lsls r2, r4, 24 lsrs r2, 24 adds r0, r5, r6 - bl sub_81A7024 + bl SetMonMoveAvoidReturn adds r4, 0x1 cmp r4, 0x3 ble _081A6E6E @@ -22638,8 +20986,8 @@ _081A701E: bx r1 thumb_func_end GetAiScriptsInBattleFactory - thumb_func_start sub_81A7024 -sub_81A7024: @ 81A7024 + thumb_func_start SetMonMoveAvoidReturn +SetMonMoveAvoidReturn: @ 81A7024 push {lr} lsls r1, 16 lsls r2, 24 @@ -22652,7 +21000,7 @@ _081A7034: bl SetMonMoveSlot pop {r0} bx r0 - thumb_func_end sub_81A7024 + thumb_func_end SetMonMoveAvoidReturn thumb_func_start sub_81A703C sub_81A703C: @ 81A703C diff --git a/asm/battle_tower.s b/asm/battle_tower.s index f240693071..2312b63bde 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -2544,7 +2544,7 @@ _08163718: adds r0, r6, r2 adds r2, r3, 0 str r3, [sp, 0x1C] - bl sub_81A7024 + bl SetMonMoveAvoidReturn ldr r3, [sp, 0x1C] adds r0, r3, 0x1 lsls r0, 24 @@ -2662,7 +2662,7 @@ _08163818: ldr r2, =gEnemyParty adds r0, r6, r2 adds r2, r7, 0 - bl sub_81A7024 + bl SetMonMoveAvoidReturn ldr r1, =gFacilityTrainerMons ldr r0, [r1] adds r0, r5, r0 diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s index 9eefa154fc..3e35ab7f12 100644 --- a/asm/contest_link_80F57C4.s +++ b/asm/contest_link_80F57C4.s @@ -2237,7 +2237,7 @@ _080F6BD0: adds r0, r4, 0 movs r1, 0x1 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r4, 0 movs r1, 0x7 bl GetWindowAttribute diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 768311639d..ffe8e171b7 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -4693,7 +4693,7 @@ sub_811D058: @ 811D058 str r4, [sp, 0x4] str r2, [sp, 0x8] mov r2, r9 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x10 pop {r3-r5} mov r8, r3 diff --git a/asm/party_menu.s b/asm/party_menu.s index 2d1faadab5..67fc563fba 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -4502,7 +4502,7 @@ _081B24C0: adds r0, r5, 0 movs r1, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 b _081B2540 .pool _081B2514: @@ -4525,7 +4525,7 @@ _081B2514: adds r0, r5, 0 movs r1, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _081B2540: adds r0, r5, 0 bl PutWindowTilemap @@ -5108,7 +5108,7 @@ sub_81B2A3C: @ 81B2A3C str r1, [sp, 0x8] movs r1, 0 adds r2, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r4,r5} pop {r0} @@ -5804,7 +5804,7 @@ _081B2FF2: ldr r1, [r1] str r1, [sp, 0x8] movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _081B3018: add sp, 0xC pop {r3} diff --git a/asm/pokenav.s b/asm/pokenav.s index b8165ec809..e69a9ef8c2 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -1471,7 +1471,7 @@ sub_81C7BA4: @ 81C7BA4 movs r1, 0x1 movs r2, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r4,r5} pop {r0} @@ -3707,7 +3707,7 @@ sub_81C8CB4: @ 81C8CB4 str r2, [sp, 0x4] str r6, [sp, 0x8] movs r2, 0x8 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r4, 0 movs r1, 0x1 bl sub_81C8C64 @@ -3835,7 +3835,7 @@ sub_81C8DBC: @ 81C8DBC movs r1, 0x7 movs r2, 0x2 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 ldrh r0, [r6, 0x8] lsls r4, 1 ldrb r1, [r6, 0x4] @@ -7078,7 +7078,7 @@ sub_81CA714: @ 81CA714 str r6, [sp, 0x8] movs r1, 0x1 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r4-r6} pop {r0} @@ -7116,7 +7116,7 @@ sub_81CA770: @ 81CA770 str r6, [sp, 0x8] movs r1, 0x1 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r4-r6} pop {r0} @@ -20108,7 +20108,7 @@ sub_81D0E84: @ 81D0E84 movs r1, 0x1 movs r2, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldrb r0, [r5, 0xA] movs r1, 0x2 bl CopyWindowToVram @@ -20155,7 +20155,7 @@ _081D0F2E: str r1, [sp, 0x8] movs r1, 0x1 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x80 lsls r0, 21 adds r5, r0 @@ -20195,7 +20195,7 @@ _081D0F7C: str r1, [sp, 0x8] movs r1, 0x1 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x80 lsls r0, 21 adds r6, r0 @@ -24413,7 +24413,7 @@ _081D36CA: movs r1, 0x1 movs r2, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 lsls r0, r7, 1 mov r4, sp adds r4, r0 @@ -24436,7 +24436,7 @@ _081D3704: movs r1, 0x1 movs r2, 0x38 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 ldrsh r1, [r4, r0] adds r0, r1, 0 @@ -24467,7 +24467,7 @@ _081D373A: mov r0, r8 movs r1, 0x1 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 @@ -24585,7 +24585,7 @@ _081D3808: movs r1, 0x1 movs r2, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r4, 0x38 lsls r4, 24 lsrs r4, 24 @@ -24599,7 +24599,7 @@ _081D3808: movs r1, 0x1 adds r2, r4, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 @@ -28979,7 +28979,7 @@ PrintOnTrainerHillRecordsWindow: @ 81D5C8C movs r0, 0 movs r1, 0x1 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r7, 0x12 movs r0, 0 mov r8, r0 @@ -29002,7 +29002,7 @@ _081D5CD6: movs r0, 0 movs r1, 0x1 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r7, 0xF ldr r0, =gSaveBlock1Ptr ldr r1, =0x00003718 @@ -29068,7 +29068,7 @@ _081D5CD6: str r0, [sp, 0x8] movs r0, 0 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 adds r7, 0x11 movs r1, 0x1 add r8, r1 diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s index 01f29e0a51..d96e3c2946 100644 --- a/asm/rom_8011DC0.s +++ b/asm/rom_8011DC0.s @@ -12955,7 +12955,7 @@ _0801C1D0: movs r1, 0x3 movs r2, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, [r7] movs r1, 0xDA lsls r1, 1 @@ -12996,7 +12996,7 @@ _0801C22E: adds r0, r5, 0 movs r1, 0x3 movs r3, 0x11 - bl box_print + bl AddTextPrinterParameterized3 ldr r2, [r7] ldr r0, [r2, 0x4] mov r9, r6 @@ -13023,7 +13023,7 @@ _0801C266: movs r1, 0x1 movs r2, 0xA6 movs r3, 0x11 - bl box_print + bl AddTextPrinterParameterized3 b _0801C498 .pool _0801C2A0: @@ -13064,7 +13064,7 @@ _0801C2A2: lsrs r0, r2, 24 movs r1, 0x3 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r4, 0x1 lsls r4, 24 lsrs r0, r4, 24 @@ -13104,7 +13104,7 @@ _0801C304: adds r0, r5, 0 movs r1, 0x3 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r2, [r7] ldrb r1, [r2, 0x8] movs r0, 0x3 @@ -13137,7 +13137,7 @@ _0801C304: adds r0, r5, 0 movs r1, 0x3 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 mov r9, r6 b _0801C498 .pool @@ -13202,7 +13202,7 @@ _0801C3CE: ldr r0, [sp, 0x10] movs r1, 0x3 ldr r3, [sp, 0x14] - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r7] adds r0, r1, r5 ldr r2, =0x00000306 @@ -13240,7 +13240,7 @@ _0801C3CE: ldr r0, [sp, 0x10] movs r1, 0x3 ldr r3, [sp, 0x14] - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r7] adds r1, r4 adds r1, 0x2A @@ -14515,7 +14515,7 @@ _0801CEEC: str r4, [sp, 0x8] movs r1, 0x3 movs r3, 0x6 - bl box_print + bl AddTextPrinterParameterized3 _0801CF1C: ldr r6, =gUnknown_02022C78 ldr r4, [r6] @@ -14550,7 +14550,7 @@ _0801CF1C: str r4, [sp, 0x8] movs r1, 0x3 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -20926,7 +20926,7 @@ _08020154: movs r0, 0x1 movs r1, 0x2 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x34 pop {r3-r5} mov r8, r3 @@ -21004,7 +21004,7 @@ _08020206: movs r0, 0x2 movs r1, 0 lsrs r2, r5, 24 - bl box_print + bl AddTextPrinterParameterized3 adds r4, 0x4 adds r7, 0x1 adds r0, r6, 0 @@ -21043,7 +21043,7 @@ _08020248: movs r4, 0x80 lsls r4, 19 lsrs r2, r4, 24 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r7, 0x1 str r0, [sp, 0x48] adds r6, 0xC @@ -21094,7 +21094,7 @@ _080202AC: movs r0, 0x2 movs r1, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r2, r7, 0 add r0, sp, 0xC str r0, [sp] @@ -21106,7 +21106,7 @@ _080202AC: movs r0, 0x2 movs r1, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 _08020300: ldr r7, [sp, 0x48] mov r4, r10 @@ -21299,7 +21299,7 @@ sub_8020420: @ 8020420 movs r1, 0x2 movs r2, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x10 pop {r4,r5} pop {r0} @@ -23909,7 +23909,7 @@ sub_80219C8: @ 80219C8 movs r1, 0x2 adds r2, r4, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3} mov r8, r3 @@ -24217,7 +24217,7 @@ _08021C5E: ldr r1, =gStringVar4 str r1, [sp, 0x8] movs r1, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r3, [sp, 0x18] ldr r2, [sp, 0xC] ldrb r2, [r2, 0x8] @@ -24260,7 +24260,7 @@ _08021CC8: str r2, [sp, 0x8] movs r1, 0x2 movs r2, 0x4 - bl box_print + bl AddTextPrinterParameterized3 lsls r0, r5, 24 lsrs r5, r0, 24 ldr r3, [sp, 0xC] @@ -24324,7 +24324,7 @@ sub_8021D34: @ 8021D34 movs r1, 0x2 movs r2, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, =gText_SpaceSec movs r0, 0x2 adds r1, r4, 0 @@ -24345,7 +24345,7 @@ sub_8021D34: @ 8021D34 movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x9F lsls r0, 1 add r0, r8 @@ -24386,7 +24386,7 @@ sub_8021D34: @ 8021D34 movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, =gText_SpaceMin movs r0, 0x2 adds r1, r4, 0 @@ -24406,7 +24406,7 @@ sub_8021D34: @ 8021D34 movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x9E lsls r0, 1 add r0, r8 @@ -24437,7 +24437,7 @@ sub_8021D34: @ 8021D34 movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r7, 0 adds r0, 0xE lsls r0, 24 @@ -24452,7 +24452,7 @@ sub_8021D34: @ 8021D34 movs r1, 0x2 movs r2, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, =gText_TimesPerSec movs r0, 0x2 adds r1, r4, 0 @@ -24474,7 +24474,7 @@ sub_8021D34: @ 8021D34 movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 mov r4, r8 ldrb r2, [r4, 0x16] ldrh r0, [r4, 0x16] @@ -24555,7 +24555,7 @@ _08021F0A: movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 b _08021FDE .pool _08021FC4: @@ -24570,7 +24570,7 @@ _08021FC4: movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 _08021FDE: adds r0, r7, 0 adds r0, 0xE @@ -24591,7 +24591,7 @@ _08021FDE: movs r1, 0x2 movs r2, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, =gStringVar1 ldr r4, [sp, 0x10] ldrh r1, [r4, 0x8] @@ -24620,7 +24620,7 @@ _08021FDE: movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x1C pop {r3-r5} mov r8, r3 @@ -24942,7 +24942,7 @@ _080222D0: movs r1, 0x1 adds r2, r7, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, =gText_PressingSpeedRankings mov r10, r0 movs r0, 0x1 @@ -24962,7 +24962,7 @@ _080222D0: movs r1, 0x1 adds r2, r7, 0 movs r3, 0x11 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x29 mov r10, r0 _08022336: @@ -24985,7 +24985,7 @@ _08022336: movs r1, 0x1 movs r2, 0 mov r3, r10 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 ldr r1, =gText_TimesPerSec movs r2, 0x1 @@ -25005,7 +25005,7 @@ _08022336: movs r1, 0x1 adds r2, r7, 0 mov r3, r10 - bl box_print + bl AddTextPrinterParameterized3 movs r2, 0 mov r0, r9 lsls r4, r0, 1 @@ -25078,7 +25078,7 @@ _080223CA: movs r1, 0x1 adds r2, r7, 0 mov r3, r10 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [sp, 0x10] lsls r0, r1, 24 lsrs r0, 24 @@ -39391,7 +39391,7 @@ _0802955A: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r10 ldr r0, [r2] add r0, r9 @@ -39677,7 +39677,7 @@ _080297CC: movs r1, 0x1 movs r2, 0x1C adds r3, r6, 0 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC mov r1, r9 movs r2, 0 @@ -39908,7 +39908,7 @@ _080299F2: str r6, [sp, 0x8] movs r1, 0x1 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r7, 0 mov r8, r5 mov r0, r9 @@ -39971,7 +39971,7 @@ _08029A36: mov r1, r10 str r1, [sp, 0x8] movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 b _08029B10 .pool _08029AE0: @@ -47951,7 +47951,7 @@ sub_802DB8C: @ 802DB8C movs r1, 0 movs r2, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC str r0, [sp] str r4, [sp, 0x4] @@ -47961,7 +47961,7 @@ sub_802DB8C: @ 802DB8C movs r1, 0 movs r2, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x10 pop {r4} pop {r0} @@ -48390,7 +48390,7 @@ sub_802DED8: @ 802DED8 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r6] adds r0, 0x1C add r0, r8 diff --git a/asm/slot_machine.s b/asm/slot_machine.s index fe8acf6d6b..e6828cb707 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -4527,7 +4527,7 @@ sub_812DD78: @ 812DD78 movs r1, 0x1 movs r2, 0x2 movs r3, 0x5 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/trade.s b/asm/trade.s index 224995de53..30a22ff758 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -4588,7 +4588,7 @@ _080798BC: str r0, [sp, 0x8] adds r0, r5, 0 movs r3, 0x4 - bl box_print + bl AddTextPrinterParameterized3 add r6, sp, 0x28 adds r0, r6, 0 ldr r1, [sp, 0x60] @@ -4847,7 +4847,7 @@ sub_8079B84: @ 8079B84 adds r0, r4, 0 movs r1, 0 movs r3, 0x4 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 diff --git a/asm/trainer_card.s b/asm/trainer_card.s index 6d1be17cb5..8ebcfbaccc 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -1747,7 +1747,7 @@ sub_80C3574: @ 80C3574 movs r1, 0x1 movs r2, 0x14 movs r3, 0x1C - bl box_print + bl AddTextPrinterParameterized3 b _080C35FA .pool _080C35E0: @@ -1762,7 +1762,7 @@ _080C35E0: movs r1, 0x1 movs r2, 0x10 movs r3, 0x21 - bl box_print + bl AddTextPrinterParameterized3 _080C35FA: add sp, 0x2C pop {r4,r5} @@ -1818,7 +1818,7 @@ _080C365C: str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x2C pop {r4} pop {r0} @@ -1848,7 +1848,7 @@ sub_80C3684: @ 80C3684 movs r1, 0x1 movs r2, 0x14 movs r3, 0x38 - bl box_print + bl AddTextPrinterParameterized3 b _080C36DE .pool _080C36C4: @@ -1863,7 +1863,7 @@ _080C36C4: movs r1, 0x1 movs r2, 0x10 movs r3, 0x39 - bl box_print + bl AddTextPrinterParameterized3 _080C36DE: ldr r0, =gStringVar1 ldr r4, =gUnknown_02039CE8 @@ -1910,7 +1910,7 @@ _080C3740: str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r4,r5} pop {r0} @@ -1964,7 +1964,7 @@ sub_80C378C: @ 80C378C movs r1, 0x1 movs r2, 0x14 movs r3, 0x48 - bl box_print + bl AddTextPrinterParameterized3 b _080C37F6 .pool _080C37DC: @@ -1979,7 +1979,7 @@ _080C37DC: movs r1, 0x1 movs r2, 0x10 movs r3, 0x49 - bl box_print + bl AddTextPrinterParameterized3 _080C37F6: ldr r5, =gStringVar4 ldr r4, =gUnknown_02039CE8 @@ -2025,7 +2025,7 @@ _080C3854: str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _080C386E: add sp, 0xC pop {r4,r5} @@ -2060,7 +2060,7 @@ sub_80C3880: @ 80C3880 movs r1, 0x1 movs r2, 0x14 movs r3, 0x58 - bl box_print + bl AddTextPrinterParameterized3 b _080C38E2 .pool _080C38C8: @@ -2075,7 +2075,7 @@ _080C38C8: movs r1, 0x1 movs r2, 0x10 movs r3, 0x59 - bl box_print + bl AddTextPrinterParameterized3 _080C38E2: ldr r0, =gUnknown_02039CE8 ldr r1, [r0] @@ -2159,7 +2159,7 @@ _080C395C: movs r0, 0x1 movs r1, 0x1 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r7, 0x12 lsls r2, r7, 24 lsrs r2, 24 @@ -2177,7 +2177,7 @@ _080C395C: movs r0, 0x1 movs r1, 0x1 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 add r7, r10 mov r0, r9 adds r1, r6, 0 @@ -2194,7 +2194,7 @@ _080C395C: movs r0, 0x1 movs r1, 0x1 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3-r5} mov r8, r3 @@ -2235,7 +2235,7 @@ sub_80C3A18: @ 80C3A18 movs r0, 0x1 movs r1, 0x1 movs r2, 0x8 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r7] adds r1, 0x19 movs r0, 0x1 @@ -2256,7 +2256,7 @@ sub_80C3A18: @ 80C3A18 str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, =gUnknown_0856FB4A mov r8, r0 ldr r1, [r7] @@ -2271,7 +2271,7 @@ sub_80C3A18: @ 80C3A18 movs r0, 0x1 movs r1, 0x1 movs r2, 0x8 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r7] adds r1, 0x33 movs r0, 0x1 @@ -2292,7 +2292,7 @@ sub_80C3A18: @ 80C3A18 str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _080C3ACE: add sp, 0xC pop {r3} @@ -2363,7 +2363,7 @@ sub_80C3B50: @ 80C3B50 movs r1, 0x1 movs r2, 0x88 movs r3, 0x9 - bl box_print + bl AddTextPrinterParameterized3 b _080C3BB6 .pool _080C3B8C: @@ -2385,7 +2385,7 @@ _080C3B8C: movs r0, 0x1 movs r1, 0x1 movs r3, 0x9 - bl box_print + bl AddTextPrinterParameterized3 _080C3BB6: add sp, 0xC pop {r4} @@ -2470,7 +2470,7 @@ sub_80C3C34: @ 80C3C34 movs r0, 0x1 movs r1, 0x1 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, =gUnknown_0856FB57 ldr r0, [r6] adds r0, r5 @@ -2492,7 +2492,7 @@ sub_80C3C34: @ 80C3C34 movs r0, 0x1 movs r1, 0x1 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3-r5} mov r8, r3 @@ -6361,7 +6361,7 @@ _080C5DC2: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x5 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, =gText_BattleRecord movs r0, 0x1 adds r1, r4, 0 @@ -6376,7 +6376,7 @@ _080C5DC2: movs r0, 0x1 movs r1, 0x1 movs r3, 0x5 - bl box_print + bl AddTextPrinterParameterized3 str r6, [sp] mov r0, r8 str r0, [sp, 0x4] @@ -6386,7 +6386,7 @@ _080C5DC2: movs r1, 0x8 movs r2, 0x5 movs r3, 0x4 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, =gStringVar4 ldr r5, =gUnknown_02039CEC ldr r0, [r5] @@ -6408,7 +6408,7 @@ _080C5DC2: movs r0, 0x2 movs r1, 0x8 movs r3, 0x10 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r5] ldrh r0, [r1, 0x8] subs r0, 0x5 @@ -6476,7 +6476,7 @@ sub_80C5ED0: @ 80C5ED0 movs r1, 0x1 movs r2, 0x2 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 b _080C5F3A .pool _080C5F18: @@ -6495,7 +6495,7 @@ _080C5F18: movs r1, 0x1 movs r2, 0x2 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 _080C5F3A: movs r0, 0x3 movs r1, 0x3 @@ -7983,7 +7983,7 @@ _080C6BB8: movs r0, 0x1 movs r1, 0x7 movs r2, 0x4 - bl box_print + bl AddTextPrinterParameterized3 b _080C6C0E .pool _080C6BF0: @@ -8000,7 +8000,7 @@ _080C6BF0: movs r0, 0x1 movs r1, 0x7 movs r2, 0x4 - bl box_print + bl AddTextPrinterParameterized3 _080C6C0E: adds r0, r4, 0x1 lsls r0, 24 @@ -8024,7 +8024,7 @@ _080C6C0E: movs r1, 0x1 movs r2, 0x4 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r4, 0 _080C6C40: adds r0, r4, 0 @@ -8084,7 +8084,7 @@ _080C6C94: movs r0, 0x1 movs r1, 0x7 movs r2, 0x4 - bl box_print + bl AddTextPrinterParameterized3 ldr r5, =gUnknown_02039CF4 ldr r1, [r5] ldrb r3, [r1, 0x10] @@ -8104,7 +8104,7 @@ _080C6C94: movs r0, 0x1 movs r1, 0x7 movs r2, 0x4 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r5] ldr r2, [r1, 0x4] ldrb r0, [r1, 0x10] @@ -8148,7 +8148,7 @@ _080C6C94: movs r1, 0x1 movs r2, 0x4 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r4, 0 _080C6D4A: adds r0, r4, 0 diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s index 4cee3c4d90..f4a2bdbb28 100644 --- a/asm/use_pokeblock.s +++ b/asm/use_pokeblock.s @@ -2572,7 +2572,7 @@ sub_8167BA0: @ 8167BA0 movs r1, 0x1 movs r2, 0x2 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _08167C46: mov r2, r8 cmp r2, 0 diff --git a/include/global.h b/include/global.h index 6977d4059f..b350085502 100644 --- a/include/global.h +++ b/include/global.h @@ -344,7 +344,9 @@ struct FrontierMonData struct Struct_field_E70 { u16 monId; - u8 unk2[9]; + u32 personality; + u8 ivs; + u8 abilityBit; }; struct BattleDomeTrainer @@ -413,9 +415,7 @@ struct BattleFrontier /*0xDD8*/ u16 field_DD8; /*0xDDA*/ u16 field_DDA[2]; /*0xDDE*/ u16 field_DDE[2]; - /*0xDE2*/ u16 field_DE2[2]; - /*0xDE6*/ u16 field_DE6; - /*0xDE8*/ u16 field_DE8; + /*0xDE2*/ u16 field_DE2[2][2]; /*0xDEA*/ u16 field_DEA[2]; /*0xDEE*/ u16 field_DEE; /*0xDF0*/ u16 field_DF0; diff --git a/include/menu.h b/include/menu.h index a13fe73ec7..145a7d5dea 100644 --- a/include/menu.h +++ b/include/menu.h @@ -37,7 +37,7 @@ u8 GetPlayerTextSpeed(void); void sub_81978B0(u16 arg0); void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextSubPrinter *, u16)); -void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str); +void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str); void sub_8198070(u8 windowId, bool8 copyToVram); void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock); void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette); diff --git a/src/battle_factory.c b/src/battle_factory.c index e1c9551222..9cb773ea33 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -11,10 +11,15 @@ #include "malloc.h" #include "bg.h" #include "gpu_regs.h" +#include "string_util.h" +#include "international_string_util.h" #include "window.h" +#include "data2.h" #include "decompress.h" #include "pokemon_summary_screen.h" #include "sound.h" +#include "pokedex.h" +#include "trainer_pokemon_sprites.h" #include "constants/battle_frontier.h" #include "constants/songs.h" @@ -30,12 +35,18 @@ struct FactorySelecteableMon { - u16 unk0; + u16 monSetId; u16 spriteId; - u8 selectetedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon + u8 selectedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon struct Pokemon monData; }; +struct UnkFactoryStruct +{ + u8 field0; + u8 field1; +}; + struct FactorySelectMonsStruct { u8 menuCursorPos; @@ -50,7 +61,7 @@ struct FactorySelectMonsStruct u8 unk9; struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; u32 unk294; - u32 unk298; + struct UnkFactoryStruct unk298; u32 unk29C; u8 unk2A0; u8 unk2A1; @@ -63,31 +74,49 @@ struct FactorySelectMonsStruct }; extern struct FactorySelectMonsStruct *gUnknown_0300127C; +extern u8 (*gUnknown_030062E8)(void); extern u8 gUnknown_0203CF20; +extern const u16 gBattleFrontierHeldItems[]; +extern const struct FacilityMon gBattleFrontierMons[]; +extern const struct FacilityMon gSlateportBattleTentMons[]; +extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; + +extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot); + // This file's functions. void sub_819A514(void); void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); void sub_819A9AC(void); void sub_819AA18(void); void sub_819BE34(void); -void sub_819BA64(void); -void sub_819BCF8(void); +void PrintSelectMonString(void); +void PrintMonSpecies(void); +void PrintMonCategory(void); void sub_819B9E8(void); -void sub_819B9B4(void); -void sub_819B764(void); +void PrintRentalPkmnString(void); +void CopySelectedMonsToPlayerParty(void); void sub_819C4B4(void); void sub_819B8D4(void); void sub_819C568(void); -void sub_819BC9C(void); +void sub_819B844(void); +void PrintSelectableMenuOptions(void); +void PrintSelectableYesNo(void); void sub_819C69C(u8 taskId); -void sub_819B378(u8 taskId); -void sub_819B124(u8 taskId); -void sub_819B484(u8 arg0); -void sub_819B63C(u8 arg0); +void Task_HandleSelectionScreenChooseMons(u8 taskId); +void Task_HandleSelectionScreenMenu(u8 taskId); +void CreateFrontierFactorySelectableMons(u8 firstMonId); +void CreateTentFactorySelectableMons(u8 firstMonId); void SetBallSpritePaletteNum(u8 id); -void sub_819F444(u32 spriteId, u8 *arg1); -void sub_819B958(u8 arg0); +void sub_819F444(struct UnkFactoryStruct arg0, u8 *arg1); +void sub_819B958(u8 windowId); +void sub_819F2B4(u8 *arg0, u8 *arg1, u8 arg2); +void sub_819F3F8(struct UnkFactoryStruct arg0, u8 *arg1, u8 arg2); +u8 sub_819BC04(void); +u8 sub_819BC9C(void); +u8 sub_81A6F70(u8 battleMode, u8 lvlMode); +u8 sub_81A6CA8(u8 arg0, u8 arg1); +bool32 sub_819C634(u16 monSetId); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -113,6 +142,20 @@ extern const u8 gFrontierFactorySelectMenu_Gfx[]; extern const u8 gFrontierFactorySelectMenu_Tilemap[]; extern const u16 gFrontierFactorySelectMenu_Pal[]; +// text +extern const u8 gText_RentalPkmn2[]; +extern const u8 gText_SelectFirstPkmn[]; +extern const u8 gText_SelectSecondPkmn[]; +extern const u8 gText_SelectThirdPkmn[]; +extern const u8 gText_TheseThreePkmnOkay[]; +extern const u8 gText_CantSelectSamePkmn[]; +extern const u8 gText_Summary[]; +extern const u8 gText_Deselect[]; +extern const u8 gText_Rent[]; +extern const u8 gText_Others2[]; +extern const u8 gText_Yes2[]; +extern const u8 gText_No2[]; + // code void sub_819A44C(struct Sprite *sprite) { @@ -267,22 +310,22 @@ void sub_819A514(void) gMain.state++; break; case 6: - sub_819BA64(); + PrintSelectMonString(); PutWindowTilemap(2); gMain.state++; break; case 7: - sub_819BCF8(); + PrintMonCategory(); PutWindowTilemap(5); gMain.state++; break; case 8: - sub_819B9E8(); + PrintMonSpecies(); PutWindowTilemap(1); gMain.state++; break; case 9: - sub_819B9B4(); + PrintRentalPkmnString(); PutWindowTilemap(0); gMain.state++; break; @@ -291,14 +334,14 @@ void sub_819A514(void) if (!gUnknown_0300127C->fromSummaryScreen) { gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; - taskId = CreateTask(sub_819B378, 0); + taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0); gTasks[taskId].data[0] = 0; } else { gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; gUnknown_0300127C->unk2A2 = 0; - taskId = CreateTask(sub_819B124, 0); + taskId = CreateTask(Task_HandleSelectionScreenMenu, 0); gTasks[taskId].data[0] = 13; } SetMainCallback2(sub_819A4C8); @@ -318,12 +361,12 @@ void sub_819A9AC(void) gUnknown_0300127C->selectingMonsState = 1; gUnknown_0300127C->fromSummaryScreen = FALSE; for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - gUnknown_0300127C->mons[i].selectetedId = 0; + gUnknown_0300127C->mons[i].selectedId = 0; if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) - sub_819B484(0); + CreateFrontierFactorySelectableMons(0); else - sub_819B63C(0); + CreateTentFactorySelectableMons(0); } extern const struct SpriteTemplate gUnknown_086105F0; @@ -436,28 +479,28 @@ void HandleMonSelectionChange(void) { u8 i, paletteNum; u8 cursorPos = gUnknown_0300127C->cursorPos; - if (gUnknown_0300127C->mons[cursorPos].selectetedId) // Deselect a mon. + if (gUnknown_0300127C->mons[cursorPos].selectedId) // Deselect a mon. { paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); - if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectetedId == 1) + if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectedId == 1) { for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - if (gUnknown_0300127C->mons[i].selectetedId == 2) + if (gUnknown_0300127C->mons[i].selectedId == 2) break; } if (i == SELECTABLE_MONS_COUNT) return; else - gUnknown_0300127C->mons[i].selectetedId = 1; + gUnknown_0300127C->mons[i].selectedId = 1; } - gUnknown_0300127C->mons[cursorPos].selectetedId = 0; + gUnknown_0300127C->mons[cursorPos].selectedId = 0; gUnknown_0300127C->selectingMonsState--; } else // Select a mon. { paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); - gUnknown_0300127C->mons[cursorPos].selectetedId = gUnknown_0300127C->selectingMonsState; + gUnknown_0300127C->mons[cursorPos].selectedId = gUnknown_0300127C->selectingMonsState; gUnknown_0300127C->selectingMonsState++; } @@ -468,7 +511,7 @@ void SetBallSpritePaletteNum(u8 id) { u8 palNum; - if (gUnknown_0300127C->mons[id].selectetedId) + if (gUnknown_0300127C->mons[id].selectedId) palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); else palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); @@ -528,7 +571,7 @@ void Task_CloseSelectionScreen(u8 taskId) case 1: if (!UpdatePaletteFade()) { - sub_819B764(); + CopySelectedMonsToPlayerParty(); DestroyTask(gUnknown_0300127C->unk2A1); sub_819AB40(); FREE_AND_SET_NULL(gUnknown_0203CE2C); @@ -574,7 +617,7 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) sub_819BC9C(); gUnknown_0300127C->unk2A2 = 1; gTasks[taskId].data[0] = 1; - gTasks[taskId].func = sub_819B378; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } } else if (gMain.newKeys & B_BUTTON) @@ -584,7 +627,7 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) sub_819BC9C(); gUnknown_0300127C->unk2A2 = 1; gTasks[taskId].data[0] = 1; - gTasks[taskId].func = sub_819B378; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } else if (gMain.newAndRepeatedKeys & DPAD_UP) { @@ -600,3 +643,463 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) } } } + +void Task_HandleSelectionScreenMenu(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 2: + if (!gUnknown_0300127C->fromSummaryScreen) + sub_819F2B4(&gUnknown_0300127C->unk298.field1, &gUnknown_0300127C->unk2A0, 0); + gTasks[taskId].data[0] = 9; + break; + case 9: + if (gUnknown_0300127C->unk2A0 != 1) + { + sub_819B844(); + gUnknown_0300127C->fromSummaryScreen = FALSE; + gTasks[taskId].data[0] = 3; + } + break; + case 3: + if (gMain.newKeys & A_BUTTON) + { + u8 retVal; + PlaySE(SE_SELECT); + retVal = sub_819BC04(); + if (retVal == 1) + { + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + } + else if (retVal == 2) + { + gTasks[taskId].data[0] = 10; + gTasks[taskId].func = Task_HandleSelectionScreenYesNo; + } + else if (retVal == 3) + { + gTasks[taskId].data[0] = 11; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + } + else + { + gTasks[taskId].data[0] = 6; + gTasks[taskId].func = Task_FromSelectScreenToSummaryScreen; + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + sub_819B958(3); + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + UpdateMenuCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + UpdateMenuCursorPosition(1); + } + break; + case 12: + if (!gPaletteFade.active) + { + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + { + gPlttBufferFaded[228] = gUnknown_0300127C->unk2A4; + gPlttBufferUnfaded[228] = gPlttBufferUnfaded[244]; + } + gUnknown_0300127C->fromSummaryScreen = FALSE; + gTasks[taskId].data[0] = 3; + } + break; + case 13: + sub_819B844(); + gTasks[taskId].data[0] = 12; + break; + } +} + +void Task_HandleSelectionScreenChooseMons(u8 taskId) +{ + if (gUnknown_0300127C->unk2A0 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 0: + if (!gPaletteFade.active) + { + gTasks[taskId].data[0] = 1; + gUnknown_0300127C->unk2A2 = 1; + } + break; + case 1: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_0300127C->unk2A2 = 0; + gTasks[taskId].data[0] = 2; + gTasks[taskId].func = Task_HandleSelectionScreenMenu; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + PlaySE(SE_SELECT); + UpdateBallCursorPosition(-1); + PrintMonCategory(); + PrintMonSpecies(); + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + PlaySE(SE_SELECT); + UpdateBallCursorPosition(1); + PrintMonCategory(); + PrintMonSpecies(); + } + break; + case 11: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + PrintSelectMonString(); + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + } + break; + } + } +} + +void CreateFrontierFactorySelectableMons(u8 firstMonId) +{ + u8 i, j = 0; + u8 ivs = 0; + u8 level = 0; + u8 happiness = 0; + u32 otId = 0; + u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u8 var_2C = gSaveBlock2Ptr->frontier.field_DE2[battleMode][lvlMode] / 7; + u8 var_28 = 0; + + gFacilityTrainerMons = gBattleFrontierMons; + if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50) + level = 100; + else + level = 50; + + var_28 = sub_81A6F70(battleMode, lvlMode); + otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; + gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId; + if (i < var_28) + ivs = sub_81A6CA8(var_2C + 1, 0); + else + ivs = sub_81A6CA8(var_2C, 0); + CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData, + gFacilityTrainerMons[monSetId].species, + level, + gFacilityTrainerMons[monSetId].nature, + ivs, + gFacilityTrainerMons[monSetId].evSpread, + otId); + happiness = 0; + for (j = 0; j < 4; j++) + SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); + SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + } +} + +void CreateTentFactorySelectableMons(u8 firstMonId) +{ + u8 i, j; + u8 ivs = 0; + u8 level = 30; + u8 happiness = 0; + u32 otId = 0; + + gFacilityTrainerMons = gSlateportBattleTentMons; + otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; + gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId; + CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData, + gFacilityTrainerMons[monSetId].species, + level, + gFacilityTrainerMons[monSetId].nature, + ivs, + gFacilityTrainerMons[monSetId].evSpread, + otId); + happiness = 0; + for (j = 0; j < 4; j++) + SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); + SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + } +} + +void CopySelectedMonsToPlayerParty(void) +{ + u8 i, j; + + for (i = 0; i < 3; i++) + { + for (j = 0; j < SELECTABLE_MONS_COUNT; j++) + { + if (gUnknown_0300127C->mons[j].selectedId == i + 1) + { + gPlayerParty[i] = gUnknown_0300127C->mons[j].monData; + gSaveBlock2Ptr->frontier.field_E70[i].monId = gUnknown_0300127C->mons[j].monSetId; + gSaveBlock2Ptr->frontier.field_E70[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.field_E70[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL); + gSaveBlock2Ptr->frontier.field_E70[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL); + break; + } + } + } + CalculatePlayerPartyCount(); +} + +void sub_819B844(void) +{ + if (!gUnknown_0300127C->fromSummaryScreen) + gUnknown_0300127C->menuCursorPos = 0; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176; + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0; + + PrintSelectableMenuOptions(); +} + +void sub_819B8D4(void) +{ + gUnknown_0300127C->yesNoCursorPos = 0; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176; + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = 112; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = 112; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0; + + PrintSelectableYesNo(); +} + +void sub_819B958(u8 windowId) +{ + gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 1; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 1; + FillWindowPixelBuffer(windowId, 0); + CopyWindowToVram(windowId, 2); + ClearWindowTilemap(windowId); +} + +void PrintRentalPkmnString(void) +{ + FillWindowPixelBuffer(0, 0); + PrintTextOnWindow(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); + CopyWindowToVram(0, 3); +} + +extern const u8 gUnknown_08610479[]; +extern const u8 gUnknown_08610476[]; + +void PrintMonSpecies(void) +{ + u16 species; + u8 x; + u8 monId = gUnknown_0300127C->cursorPos; + + FillWindowPixelBuffer(1, 0); + species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL); + StringCopy(gStringVar4, gSpeciesNames[species]); + x = GetStringRightAlignXOffset(1, gStringVar4, 86); + AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610479, 0, gStringVar4); + CopyWindowToVram(1, 2); +} + +void PrintSelectMonString(void) +{ + const u8 *str = NULL; + + FillWindowPixelBuffer(2, 0); + if (gUnknown_0300127C->selectingMonsState == 1) + str = gText_SelectFirstPkmn; + else if (gUnknown_0300127C->selectingMonsState == 2) + str = gText_SelectSecondPkmn; + else if (gUnknown_0300127C->selectingMonsState == 3) + str = gText_SelectThirdPkmn; + else + str = gText_TheseThreePkmnOkay; + + PrintTextOnWindow(2, 1, str, 2, 5, 0, NULL); + CopyWindowToVram(2, 2); +} + +void PrintCantSelectSameMon(void) +{ + FillWindowPixelBuffer(2, 0); + PrintTextOnWindow(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); + CopyWindowToVram(2, 2); +} + +void PrintSelectableMenuOptions(void) +{ + u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId; + + PutWindowTilemap(3); + FillWindowPixelBuffer(3, 0); + AddTextPrinterParameterized3(3, 1, 7, 1, gUnknown_08610476, 0, gText_Summary); + if (selectedId != 0) + AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Deselect); + else + AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Rent); + + AddTextPrinterParameterized3(3, 1, 7, 33, gUnknown_08610476, 0, gText_Others2); + CopyWindowToVram(3, 3); +} + +void PrintSelectableYesNo(void) +{ + PutWindowTilemap(4); + FillWindowPixelBuffer(4, 0); + AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610476, 0, gText_Yes2); + AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610476, 0, gText_No2); + CopyWindowToVram(4, 3); +} + +extern u8 (* const gUnknown_0861041C[])(void); + +u8 sub_819BC04(void) +{ + gUnknown_030062E8 = gUnknown_0861041C[gUnknown_0300127C->menuCursorPos]; + return gUnknown_030062E8(); +} + +u8 sub_819BC30(void) +{ + u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId; + u16 monSetId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monSetId; + if (selectedId == 0 && !sub_819C634(monSetId)) + { + PrintCantSelectSameMon(); + sub_819B958(3); + return 3; + } + else + { + sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + HandleMonSelectionChange(); + PrintSelectMonString(); + sub_819B958(3); + if (gUnknown_0300127C->selectingMonsState > 3) + return 2; + else + return 1; + } +} + +u8 sub_819BC9C(void) +{ + sub_819C568(); + HandleMonSelectionChange(); + PrintSelectMonString(); + sub_819B958(3); + if (gUnknown_0300127C->selectingMonsState > 3) + return 2; + else + return 1; +} + +u8 sub_819BCCC(void) +{ + return 0; +} + +u8 sub_819BCD0(void) +{ + sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + sub_819B958(3); + return 1; +} + +void PrintMonCategory(void) +{ + u16 species; + u8 text[30]; + u8 x; + u8 monId = gUnknown_0300127C->cursorPos; + if (monId < SELECTABLE_MONS_COUNT) + { + PutWindowTilemap(5); + FillWindowPixelBuffer(5, 0); + species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL); + CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); + x = GetStringRightAlignXOffset(1, text, 0x76); + PrintTextOnWindow(5, 1, text, x, 1, 0, NULL); + CopyWindowToVram(5, 2); + } +} + +void sub_819BD70(void) +{ + u8 monId = gUnknown_0300127C->cursorPos; + struct Pokemon *mon = &gUnknown_0300127C->mons[monId].monData; + u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0; + + gUnknown_0300127C->unk2A0 = 0; +} + +extern const struct SpriteTemplate gUnknown_08610638; + +void sub_819BE20(u8 arg0) +{ + gUnknown_0300127C->unk2A0 = arg0; +} + +void sub_819BE34(void) +{ + struct Pokemon *mon; + u16 species; + u32 personality, otId; + + gUnknown_0300127C->unk298.field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); + StartSpriteAffineAnim(&gSprites[gUnknown_0300127C->unk298.field1], 2); + + mon = &gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monData; + species = GetMonData(mon, MON_DATA_SPECIES, NULL); + personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0; + + gSprites[gUnknown_0300127C->unk298.field1].invisible = 1; +} diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index f6a5895a9a..2ae15a806f 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -250,19 +250,19 @@ static void berry_fix_gpu_set(void) width = GetStringWidth(0, sUnknown_08617E9B, 0); left = (0x78 - width) / 2; - box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B); + AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B); width = GetStringWidth(0, sUnknown_08617E8D, 0); left = (0x78 - width) / 2 + 0x78; - box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); + AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); width = GetStringWidth(0, sUnknown_08617E8D, 0); left = (0x70 - width) / 2; - box_print(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); + AddTextPrinterParameterized3(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); width = GetStringWidth(1, sUnknown_08617E78, 0); left = (0xD0 - width) / 2; - box_print(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78); + AddTextPrinterParameterized3(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78); CopyWindowToVram(2, 2); CopyWindowToVram(3, 2); @@ -292,7 +292,7 @@ static void berry_fix_text_print(int scene) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); FillWindowPixelBuffer(1, 0xAA); - box_print(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]); + AddTextPrinterParameterized3(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]); PutWindowTilemap(1); CopyWindowToVram(1, 2); switch (scene) diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 33c85d448f..081c963eea 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -1128,7 +1128,7 @@ static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2) { FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); - box_print(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF); + AddTextPrinterParameterized3(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF); CopyWindowToVram(0, 3); } @@ -1164,7 +1164,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u *(stringPtr)++ = CHAR_QUESTION_MARK; } stringPtr[0] = EOS; - box_print(0, 1, 0x10, 1, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, 0x10, 1, sUnknown_085E5388, -1, text); } // nick, species names, gender and level @@ -1173,13 +1173,13 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u if (currMon->species == SPECIES_EGG) { width = GetStringCenterAlignXOffset(1, text, 0xD0); - box_print(0, 1, width, 1, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text); CopyWindowToVram(0, 3); } else { width = GetStringRightAlignXOffset(1, text, 0x80); - box_print(0, 1, width, 1, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text); text[0] = CHAR_SLASH; stringPtr = StringCopy(text + 1, gSpeciesNames[currMon->species]); @@ -1200,15 +1200,15 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u } stringPtr[0] = EOS; - box_print(0, 1, 0x80, 1, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, 0x80, 1, sUnknown_085E5388, -1, text); stringPtr = StringCopy(text, gText_Level); ConvertIntToDecimalStringN(stringPtr, currMon->lvl, STR_CONV_MODE_LEFT_ALIGN, 3); - box_print(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text); stringPtr = StringCopy(text, gText_IDNumber); ConvertIntToDecimalStringN(stringPtr, (u16)(currMon->tid), STR_CONV_MODE_LEADING_ZEROS, 5); - box_print(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text); CopyWindowToVram(0, 3); } @@ -1223,13 +1223,13 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) FillWindowPixelBuffer(1, 0x11); PutWindowTilemap(1); SetWindowBorderStyle(1, FALSE, 0x21D, 0xD); - box_print(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name); + AddTextPrinterParameterized3(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name); width = GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 0x70); - box_print(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName); + AddTextPrinterParameterized3(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName); trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) | (gSaveBlock2Ptr->playerTrainerId[1] << 8); - box_print(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber); + AddTextPrinterParameterized3(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber); text[0] = (trainerId % 100000) / 10000 + CHAR_0; text[1] = (trainerId % 10000) / 1000 + CHAR_0; text[2] = (trainerId % 1000) / 100 + CHAR_0; @@ -1237,9 +1237,9 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) text[4] = (trainerId % 10) / 1 + CHAR_0; text[5] = EOS; width = GetStringRightAlignXOffset(1, text, 0x70); - box_print(1, 1, width, 0x11, sUnknown_085E538C, -1, text); + AddTextPrinterParameterized3(1, 1, width, 0x11, sUnknown_085E538C, -1, text); - box_print(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime); + AddTextPrinterParameterized3(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime); text[0] = (gSaveBlock2Ptr->playTimeHours / 100) + CHAR_0; text[1] = (gSaveBlock2Ptr->playTimeHours % 100) / 10 + CHAR_0; text[2] = (gSaveBlock2Ptr->playTimeHours % 10) + CHAR_0; @@ -1255,7 +1255,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) text[6] = EOS; width = GetStringRightAlignXOffset(1, text, 0x70); - box_print(1, 1, width, 0x21, sUnknown_085E538C, -1, text); + AddTextPrinterParameterized3(1, 1, width, 0x21, sUnknown_085E538C, -1, text); CopyWindowToVram(1, 3); } diff --git a/src/link.c b/src/link.c index 457e44a016..627327181b 100644 --- a/src/link.c +++ b/src/link.c @@ -1685,8 +1685,8 @@ static void sub_800B080(void) LoadPalette(gWirelessLinkDisplayPal, 0, 0x20); FillWindowPixelBuffer(0, 0x00); FillWindowPixelBuffer(2, 0x00); - box_print(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis); - box_print(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner); + AddTextPrinterParameterized3(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis); + AddTextPrinterParameterized3(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner); PutWindowTilemap(0); PutWindowTilemap(2); CopyWindowToVram(0, 0); @@ -1698,7 +1698,7 @@ static void sub_800B138(void) LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0); FillWindowPixelBuffer(1, 0x00); FillWindowPixelBuffer(2, 0x00); - box_print(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections); + AddTextPrinterParameterized3(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections); PutWindowTilemap(1); PutWindowTilemap(2); CopyWindowToVram(1, 0); @@ -1738,11 +1738,11 @@ static void CB2_PrintErrorMessage(void) case 130: if (gWirelessCommType == 2) { - box_print(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnTitleScreen); + AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnTitleScreen); } else if (gWirelessCommType == 1) { - box_print(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnRegistrationCounter); + AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnRegistrationCounter); } break; } diff --git a/src/mail.c b/src/mail.c index 625b52de36..3c12bed3f5 100644 --- a/src/mail.c +++ b/src/mail.c @@ -485,14 +485,14 @@ static void sub_8121B1C(void) { continue; } - box_print(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]); + AddTextPrinterParameterized3(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]); y += sMailRead->layout->var8[i].lineHeight; } bufptr = StringCopy(strbuf, gText_FromSpace); StringCopy(bufptr, sMailRead->playerName); box_x = GetStringCenterAlignXOffset(1, strbuf, sMailRead->signatureWidth) + 0x68; box_y = sMailRead->layout->signatureYPos + 0x58; - box_print(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf); + AddTextPrinterParameterized3(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf); CopyWindowToVram(0, 3); CopyWindowToVram(1, 3); } diff --git a/src/main_menu.c b/src/main_menu.c index e28faf986a..b4b343fc6c 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -527,8 +527,8 @@ void Task_DisplayMainMenu(u8 taskId) default: FillWindowPixelBuffer(0, 0xAA); FillWindowPixelBuffer(1, 0xAA); - box_print(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - box_print(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); PutWindowTilemap(0); PutWindowTilemap(1); CopyWindowToVram(0, 2); @@ -540,9 +540,9 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(2, 0xAA); FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(4, 0xAA); - box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); fmt_savegame(); PutWindowTilemap(2); PutWindowTilemap(3); @@ -559,10 +559,10 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(5, 0xAA); - box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift); - box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift); + AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); fmt_savegame(); PutWindowTilemap(2); PutWindowTilemap(3); @@ -583,11 +583,11 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(5, 0xAA); FillWindowPixelBuffer(6, 0xAA); - box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2); - box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents); - box_print(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2); + AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents); + AddTextPrinterParameterized3(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); fmt_savegame(); PutWindowTilemap(2); PutWindowTilemap(3); @@ -1839,8 +1839,8 @@ void fmt_savegame(void) void fmt_time(void) { StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPlayer); - box_print(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4); - box_print(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName); + AddTextPrinterParameterized3(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName); } void fmt_player(void) @@ -1849,11 +1849,11 @@ void fmt_player(void) u8* ptr; StringExpandPlaceholders(gStringVar4, gText_ContinueMenuTime); - box_print(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4); ptr = ConvertIntToDecimalStringN(str, gSaveBlock2Ptr->playTimeHours, 0, 3); *ptr = 0xF0; ConvertIntToDecimalStringN(ptr + 1, gSaveBlock2Ptr->playTimeMinutes, 2, 2); - box_print(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str); } void fmt_pokedex(void) @@ -1868,9 +1868,9 @@ void fmt_pokedex(void) else dexCount = GetHoennPokedexCount(1); StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPokedex); - box_print(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4); ConvertIntToDecimalStringN(str, dexCount, 0, 3); - box_print(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str); } } @@ -1886,9 +1886,9 @@ void fmt_badges(void) badgeCount++; } StringExpandPlaceholders(gStringVar4, gText_ContinueMenuBadges); - box_print(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4); ConvertIntToDecimalStringN(str, badgeCount, 2, 1); - box_print(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str); } void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset) diff --git a/src/menu.c b/src/menu.c index 8a4b4fce55..7c9c2f8a80 100644 --- a/src/menu.c +++ b/src/menu.c @@ -799,7 +799,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram) PutWindowTilemap(gUnknown_0203CDA0); FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF); width = GetStringWidth(0, string, 0); - box_print(gUnknown_0203CDA0, + AddTextPrinterParameterized3(gUnknown_0203CDA0, 0, 0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a2 - width, 1, @@ -835,7 +835,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo if (string2 != NULL) { width = GetStringWidth(0, string2, 0); - box_print(gUnknown_0203CDA0, + AddTextPrinterParameterized3(gUnknown_0203CDA0, 0, 0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a4 - width, 1, @@ -1925,7 +1925,7 @@ void sub_8199DF0(u32 bg, u8 a1, int a2, int a3) RequestDma3Fill(a1 << 24 | a1 << 16 | a1 << 8 | a1, addr + VRAM, a3 * temp, 1); } -void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str) +void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str) { struct TextSubPrinter printer; diff --git a/src/naming_screen.c b/src/naming_screen.c index f99d23bc3d..35a05499b8 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1515,7 +1515,7 @@ static void sub_80E49BC(void) StringCopy(genderSymbol, gText_FemaleSymbol); isFemale = TRUE; } - box_print(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol); + AddTextPrinterParameterized3(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol); } } @@ -1694,7 +1694,7 @@ static void sub_80E4DE4(u8 window, u8 a1) for (i = 0; i < 4; i++) { - box_print(window, 1, 0, i * 16 + 1, sUnkColors[a1], 0, gUnknown_0858C198[a1][i]); + AddTextPrinterParameterized3(window, 1, 0, i * 16 + 1, sUnkColors[a1], 0, gUnknown_0858C198[a1][i]); } PutWindowTilemap(window); @@ -1739,7 +1739,7 @@ static void sub_80E4EF0(void) const u8 color[3] = { 15, 1, 2 }; FillWindowPixelBuffer(gNamingScreenData->windows[4], 0xFF); - box_print(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack); + AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack); PutWindowTilemap(gNamingScreenData->windows[4]); CopyWindowToVram(gNamingScreenData->windows[4], 3); } diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 7c622c2235..eae8681342 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -627,12 +627,12 @@ void sub_80C7BE4(void) FillWindowPixelBuffer(windowId, 0x44); center = GetStringCenterAlignXOffset(1, boxName, 0x40); - box_print(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName); + AddTextPrinterParameterized3(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName); ConvertIntToDecimalStringN(text, nPokemonInBox, 1, 2); StringAppend(text, gUnknown_08571737); center = GetStringCenterAlignXOffset(1, text, 0x40); - box_print(windowId, 1, center, 0x11, gUnknown_08571734, TEXT_SPEED_FF, text); + AddTextPrinterParameterized3(windowId, 1, center, 0x11, gUnknown_08571734, TEXT_SPEED_FF, text); winTileData = GetWindowAttribute(windowId, WINDOW_TILE_DATA); CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(gUnknown_02039D04->unk_0240) * 32), 0x400); diff --git a/src/starter_choose.c b/src/starter_choose.c index c1e7eea407..5625b61840 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -301,10 +301,10 @@ static void CreateStarterPokemonLabel(u8 selection) FillWindowPixelBuffer(sStarterChooseWindowId, 0); width = GetStringCenterAlignXOffset(7, text, 0x68); - box_print(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text); + AddTextPrinterParameterized3(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text); width = GetStringCenterAlignXOffset(1, speciesName, 0x68); - box_print(sStarterChooseWindowId, 1, width, 0x11, gUnknown_085B1E0C, 0, speciesName); + AddTextPrinterParameterized3(sStarterChooseWindowId, 1, width, 0x11, gUnknown_085B1E0C, 0, speciesName); PutWindowTilemap(sStarterChooseWindowId); schedule_bg_copy_tilemap_to_vram(0); From 75384546b51fa87fe4c3fe768fbe4e72149af8e7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 5 Sep 2018 23:30:15 +0200 Subject: [PATCH 04/28] More factory decomp and documentation. --- asm/battle_frontier_2.s | 1042 -------------------------------------- data/battle_frontier_2.s | 90 ---- ld_script.txt | 1 + src/battle_factory.c | 884 +++++++++++++++++++++----------- sym_bss.txt | 3 +- 5 files changed, 598 insertions(+), 1422 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 4e0c3126f1..835d43bad8 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -8,1048 +8,6 @@ - thumb_func_start sub_819BF2C -sub_819BF2C: @ 819BF2C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r7, 0 - ldr r0, =gUnknown_0300127C - mov r9, r0 -_0819BF3E: - movs r2, 0 - adds r1, r7, 0x1 - mov r10, r1 - lsls r0, r7, 2 - mov r8, r0 -_0819BF48: - mov r0, r9 - ldr r1, [r0] - movs r0, 0x6C - adds r4, r2, 0 - muls r4, r0 - adds r0, r1, r4 - ldrb r0, [r0, 0x10] - cmp r0, r10 - bne _0819C008 - adds r4, r1 - adds r4, 0x14 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r0, r7, 3 - adds r0, r7 - lsls r0, 19 - movs r2, 0x80 - lsls r2, 13 - adds r0, r2 - asrs r0, 16 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - adds r0, r7, 0 - adds r0, 0xD - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r5, 0 - adds r2, r6, 0 - movs r3, 0x1 - bl CreateMonPicSprite_HandleDeoxys - mov r2, r9 - ldr r1, [r2] - add r1, r8 - movs r2, 0xA5 - lsls r2, 2 - adds r1, r2 - strb r0, [r1] - mov r1, r9 - ldr r0, [r1] - add r0, r8 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r2, =gSprites - adds r0, r2 - adds r0, 0x28 - movs r1, 0 - strb r1, [r0] - mov r2, r9 - ldr r0, [r2] - add r0, r8 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r2, =gSprites - adds r0, r2 - adds r0, 0x29 - movs r1, 0 - strb r1, [r0] - b _0819C012 - .pool -_0819C008: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819BF48 -_0819C012: - mov r2, r10 - lsls r0, r2, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _0819BF3E - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BF2C - - thumb_func_start sub_819C040 -sub_819C040: @ 819C040 - push {r4-r6,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819C0DC - ldr r3, =gSprites - ldr r6, =gUnknown_0300127C - ldr r2, [r6] - ldr r0, =0x00000295 - adds r5, r2, r0 - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - adds r1, 0x3F - ldrb r0, [r1] - lsls r0, 26 - cmp r0, 0 - bge _0819C0DC - ldr r1, =0x0000029d - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0819C0DC - adds r1, r4, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x0000029d - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, =sub_819C1D0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, =SpriteCallbackDummy - str r0, [r4, 0x1C] -_0819C0DC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C040 - - thumb_func_start sub_819C100 -sub_819C100: @ 819C100 - push {r4-r7,lr} - adds r5, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819C1BA - ldr r6, =gSprites - ldr r4, =gUnknown_0300127C - ldr r2, [r4] - ldr r7, =0x00000295 - adds r0, r2, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0819C1BA - ldr r1, =0x0000029d - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0819C1BA - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - ldr r1, =0x0000029d - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r0, [r4] - ldr r1, =0x0000029d - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - adds r0, r5, 0 - bl DestroySprite -_0819C1BA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C100 - - thumb_func_start sub_819C1D0 -sub_819C1D0: @ 819C1D0 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0819C24E - cmp r0, 0x1 - bgt _0819C1F8 - cmp r0, 0 - beq _0819C1FE - b _0819C2BA - .pool -_0819C1F8: - cmp r0, 0x2 - beq _0819C270 - b _0819C2BA -_0819C1FE: - movs r0, 0x10 - strh r0, [r4, 0xE] - movs r0, 0xE0 - strh r0, [r4, 0x38] - movs r0, 0x40 - strh r0, [r4, 0x12] - movs r0, 0x41 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0x38] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - b _0819C2C6 -_0819C24E: - movs r0, 0x3 - bl ShowBg - ldr r1, =0x00001248 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - b _0819C2C6 - .pool -_0819C270: - ldrh r0, [r4, 0x12] - subs r0, 0x4 - strh r0, [r4, 0x12] - ldrh r1, [r4, 0x18] - adds r1, 0x4 - strh r1, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _0819C28C - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x5F - ble _0819C29E -_0819C28C: - movs r0, 0x20 - strh r0, [r4, 0x12] - movs r0, 0x60 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits -_0819C29E: - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _0819C2CC - b _0819C2C6 -_0819C2BA: - adds r0, r2, 0 - bl DestroyTask - bl sub_819BF2C - b _0819C2CC -_0819C2C6: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819C2CC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_819C1D0 - - thumb_func_start sub_819C2D4 -sub_819C2D4: @ 819C2D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0819C2F6 - b _0819C410 -_0819C2F6: - cmp r0, 0x1 - bne _0819C2FC - b _0819C460 -_0819C2FC: - movs r0, 0x3 - bl HideBg - ldr r4, =gSprites - ldr r0, =gUnknown_0300127C - mov r8, r0 - ldr r0, [r0] - ldr r1, =0x00000299 - mov r12, r1 - add r0, r12 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r2, [r1] - movs r3, 0x5 - negs r3, r3 - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - mov r0, r8 - ldr r2, [r0] - mov r1, r12 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r4, 0 - adds r6, 0x1C - adds r0, r6 - ldr r1, =sub_819C100 - str r1, [r0] - ldr r0, =0x00000295 - mov r9, r0 - add r2, r9 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r3, 0 - ands r1, r2 - strb r1, [r0] - mov r1, r8 - ldr r2, [r1] - mov r1, r9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldr r1, =SpriteCallbackDummy - mov r10, r1 - str r1, [r0] - ldr r5, =0x0000029d - adds r2, r5 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r0, r8 - ldr r2, [r0] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r10 - str r1, [r0] - add r2, r12 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim - mov r1, r8 - ldr r0, [r1] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim - mov r1, r8 - ldr r0, [r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - adds r0, r7, 0 - bl DestroyTask - b _0819C4A4 - .pool -_0819C410: - movs r0, 0x10 - strh r0, [r4, 0xE] - movs r0, 0xE0 - strh r0, [r4, 0x38] - movs r0, 0x20 - strh r0, [r4, 0x12] - movs r0, 0x60 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0x38] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - b _0819C49E -_0819C460: - ldrh r0, [r4, 0x12] - adds r0, 0x4 - strh r0, [r4, 0x12] - ldrh r1, [r4, 0x18] - subs r1, 0x4 - strh r1, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - bgt _0819C47C - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x41 - bgt _0819C484 -_0819C47C: - movs r0, 0x40 - strh r0, [r4, 0x12] - movs r0, 0x41 - strh r0, [r4, 0x18] -_0819C484: - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bne _0819C4A4 -_0819C49E: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819C4A4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819C2D4 - - thumb_func_start sub_819C4B4 -sub_819C4B4: @ 819C4B4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, =gUnknown_08610638 - adds r0, r4, 0 - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1 - bl CreateSprite - ldr r6, =gUnknown_0300127C - ldr r1, [r6] - ldr r2, =0x00000299 - mov r8, r2 - add r1, r8 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - movs r2, 0x40 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r6] - ldr r5, =0x00000295 - adds r1, r5 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0xC4 - movs r2, 0x40 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r6] - ldr r4, =0x0000029d - adds r1, r4 - strb r0, [r1] - ldr r3, =gSprites - ldr r2, [r6] - add r8, r2 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, =sub_819C040 - str r1, [r0] - adds r5, r2, r5 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r5, =SpriteCallbackDummy - str r5, [r0] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - str r5, [r0] - movs r0, 0xA8 - lsls r0, 2 - adds r2, r0 - movs r0, 0x1 - strb r0, [r2] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C4B4 - - thumb_func_start sub_819C568 -sub_819C568: @ 819C568 - push {r4,lr} - ldr r4, =gUnknown_0300127C - ldr r0, [r4] - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - bl FreeAndDestroyMonPicSprite - ldr r0, [r4] - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - bl FreeAndDestroyMonPicSprite - ldr r0, [r4] - movs r1, 0xA7 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - bl FreeAndDestroyMonPicSprite - ldr r0, =sub_819C2D4 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, [r4] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C568 - - thumb_func_start sub_819C5D0 -sub_819C5D0: @ 819C5D0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - adds r6, r1, 0 - adds r5, r2, 0 - mov r8, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r5, 16 - lsrs r5, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - lsls r4, 24 - lsrs r4, 16 - orrs r4, r6 - movs r0, 0x40 - adds r1, r4, 0 - bl SetGpuReg - lsls r5, 24 - lsrs r5, 16 - mov r0, r8 - orrs r5, r0 - movs r0, 0x44 - adds r1, r5, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_819C5D0 - - thumb_func_start sub_819C634 -sub_819C634: @ 819C634 - push {r4-r7,lr} - lsls r0, 16 - ldr r2, =gFacilityTrainerMons - ldr r1, [r2] - lsrs r0, 12 - adds r0, r1 - ldrh r6, [r0] - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r5, [r0, 0x5] - movs r3, 0x1 - cmp r3, r5 - bcs _0819C694 - adds r4, r0, 0 - movs r0, 0x6C - mov r12, r0 - adds r7, r2, 0 -_0819C656: - movs r2, 0 -_0819C658: - mov r0, r12 - muls r0, r2 - adds r1, r4, r0 - ldrb r0, [r1, 0x10] - cmp r0, r3 - bne _0819C680 - ldrh r0, [r1, 0xC] - ldr r1, [r7] - lsls r0, 4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _0819C68A - movs r0, 0 - b _0819C696 - .pool -_0819C680: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819C658 -_0819C68A: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcc _0819C656 -_0819C694: - movs r0, 0x1 -_0819C696: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_819C634 - - thumb_func_start sub_819C69C -sub_819C69C: @ 819C69C - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r2, [r5, r0] - cmp r2, 0x1 - beq _0819C6F8 - cmp r2, 0x1 - bgt _0819C6C4 - cmp r2, 0 - beq _0819C6CA - b _0819C7D8 - .pool -_0819C6C4: - cmp r2, 0x2 - beq _0819C7B4 - b _0819C7D8 -_0819C6CA: - ldr r1, =gUnknown_0300127C - ldr r0, [r1] - ldr r3, =0x000002a7 - adds r0, r3 - strb r2, [r0] - ldr r0, [r1] - adds r3, 0x1 - adds r0, r3 - strb r2, [r0] - ldr r0, [r1] - ldr r1, =0x000002a6 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - strh r1, [r5, 0x8] - b _0819C7D8 - .pool -_0819C6F8: - ldr r0, =gUnknown_0300127C - ldr r3, [r0] - ldr r2, =0x000002a2 - adds r1, r3, r2 - ldrb r1, [r1] - adds r7, r0, 0 - cmp r1, 0 - beq _0819C7D8 - ldr r1, =0x000002a9 - adds r0, r3, r1 - ldrb r4, [r0] - cmp r4, 0 - beq _0819C724 - movs r0, 0x2 - strh r0, [r5, 0x8] - b _0819C7D8 - .pool -_0819C724: - ldr r2, =0x000002a7 - adds r1, r3, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r7] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x6 - bls _0819C764 - strb r4, [r1] - ldr r1, [r7] - subs r2, 0x1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0819C758 - movs r3, 0xAA - lsls r3, 2 - adds r1, r3 - ldrb r0, [r1] - subs r0, 0x1 - b _0819C762 - .pool -_0819C758: - movs r0, 0xAA - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 -_0819C762: - strb r0, [r1] -_0819C764: - movs r0, 0x80 - lsls r0, 7 - ldr r1, [r7] - movs r4, 0xAA - lsls r4, 2 - adds r1, r4 - ldrb r1, [r1] - movs r2, 0 - bl BlendPalettes - ldr r2, [r7] - adds r4, r2, r4 - ldrb r0, [r4] - cmp r0, 0x5 - bls _0819C790 - ldr r3, =0x000002a6 - adds r1, r2, r3 - movs r0, 0 - b _0819C7D6 - .pool -_0819C790: - cmp r0, 0 - bne _0819C7D8 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x8] - ldr r0, =0x000002a6 - adds r1, r2, r0 - movs r0, 0x1 - b _0819C7D6 - .pool -_0819C7B4: - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldr r2, =0x000002a9 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xE - bls _0819C7D4 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - strh r0, [r5, 0x8] - b _0819C7D8 - .pool -_0819C7D4: - adds r0, 0x1 -_0819C7D6: - strb r0, [r1] -_0819C7D8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819C69C - thumb_func_start sub_819C7E0 sub_819C7E0: @ 819C7E0 push {lr} diff --git a/data/battle_frontier_2.s b/data/battle_frontier_2.s index bbb2a2c62a..c03c9c368c 100644 --- a/data/battle_frontier_2.s +++ b/data/battle_frontier_2.s @@ -6,96 +6,6 @@ .section .rodata - .align 2 -gUnknown_0860F13C:: @ 860F13C - .incbin "graphics/unknown/unknown_60F13C.gbapal" - - .align 2 -gUnknown_0860F15C:: @ 860F15C - .incbin "graphics/unknown/unknown_60F15C.gbapal" - - .align 2 -gUnknown_0860F17C:: @ 860F17C - .incbin "graphics/unknown/unknown_60F17C.gbapal" - - .align 2 -gUnknown_0860F1BC:: @ 860F1BC - .incbin "graphics/unknown/unknown_60F1BC.4bpp" - - .align 2 -gUnknown_0860F3BC:: @ 860F3BC - .incbin "graphics/unknown/unknown_60F3BC.4bpp" - - .align 2 -gUnknown_0860F43C:: @ 860F43C - .incbin "graphics/unknown/unknown_60F43C.4bpp" - - .align 2 -gUnknown_0860F53C:: @ 860F53C - .incbin "graphics/unknown/unknown_60F53C.4bpp" - - .align 2 -gUnknown_0860F63C:: @ 860F63C - .incbin "graphics/unknown/unknown_60F63C.4bpp" - - .align 2 -gUnknown_0860F6BC:: @ 860F6BC - .incbin "graphics/unknown/unknown_60F6BC.4bpp" - - .align 2 -gUnknown_0860F7BC:: @ 860F7BC - .incbin "graphics/unknown/unknown_60F7BC.4bpp" - - .align 2 -gUnknown_0860F83C:: @ 860F83C - .incbin "graphics/unknown/unknown_60F83C.4bpp" - - .align 2 -gUnknown_0860F93C:: @ 860F93C - .incbin "graphics/unknown/unknown_60F93C.4bpp" - - .align 2 -gUnknown_0860FA3C:: @ 860FA3C - .incbin "graphics/unknown/unknown_60FA3C.4bpp" - - .align 2 -gUnknown_0861023C:: @ 861023C - .incbin "graphics/unknown/unknown_61023C.bin" - - .align 2 -gUnknown_0861033C:: @ 861033C - .incbin "graphics/unknown/unknown_61033C.4bpp" - - .align 2 -gUnknown_0861039C:: @ 861039C - .incbin "graphics/unknown/unknown_61039C.gbapal" - - .align 2 -gUnknown_086103BC:: @ 86103BC - obj_tiles gUnknown_0860F3BC, 0x0080, 0x0065 - obj_tiles gUnknown_0860F43C, 0x0100, 0x0066 - obj_tiles gUnknown_0860F53C, 0x0100, 0x0067 - obj_tiles gUnknown_0860FA3C, 0x0800, 0x006d - null_obj_tiles - - .align 2 -gUnknown_086103E4:: @ 86103E4 - obj_tiles gUnknown_085B18AC, 0x0800, 0x0064 - null_obj_tiles - - .align 2 -gUnknown_086103F4:: @ 86103F4 - obj_pal gUnknown_0860F13C, 0x0064 - obj_pal gUnknown_0860F15C, 0x0065 - obj_pal gUnknown_0860F17C, 0x0066 - obj_pal gUnknown_0861039C, 0x0067 - null_obj_pal - - .align 2 -gUnknown_0861041C:: @ 861041C - .4byte sub_819BCCC - .4byte sub_819BC30 - .4byte sub_819BCD0 .align 2 gUnknown_08610428:: @ 8610428 diff --git a/ld_script.txt b/ld_script.txt index 6e4885e4c9..9e64023d15 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -530,6 +530,7 @@ SECTIONS { src/battle_dome.o(.rodata); data/battle_frontier_1.o(.rodata); src/menu.o(.rodata); + src/battle_factory.o(.rodata); data/battle_frontier_2.o(.rodata); src/item_menu.o(.rodata); src/list_menu.o(.rodata); diff --git a/src/battle_factory.c b/src/battle_factory.c index 9cb773ea33..f7568055c7 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -19,10 +19,14 @@ #include "pokemon_summary_screen.h" #include "sound.h" #include "pokedex.h" +#include "blend_palette.h" #include "trainer_pokemon_sprites.h" #include "constants/battle_frontier.h" #include "constants/songs.h" +// Select_ refers to the first Pokemon selection screen where you choose 3 Pokemon. +// Swap_ refers to the consecutive selection screen where you can keep your Pokemon or swap one with beaten trainer's. + #define MENU_SUMMARY 0 #define MENU_RENT 1 #define MENU_DESELECT 1 @@ -57,23 +61,19 @@ struct FactorySelectMonsStruct u8 selectingMonsState; bool8 fromSummaryScreen; u8 yesNoCursorPos; - u8 unk8; - u8 unk9; + u8 unused8; struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; - u32 unk294; - struct UnkFactoryStruct unk298; - u32 unk29C; + struct UnkFactoryStruct unk294[3]; u8 unk2A0; - u8 unk2A1; - u8 unk2A2; - u8 unk2A3; + u8 palBlendTaskId; + bool8 unk2A2; u16 unk2A4; - u16 unk2A6; - u16 unk2A8; - u16 unk2AA; + bool8 unk2A6; + u8 unk2A7; + u8 unk2A8; + u8 unk2A9; }; -extern struct FactorySelectMonsStruct *gUnknown_0300127C; extern u8 (*gUnknown_030062E8)(void); extern u8 gUnknown_0203CF20; @@ -81,42 +81,46 @@ extern const u16 gBattleFrontierHeldItems[]; extern const struct FacilityMon gBattleFrontierMons[]; extern const struct FacilityMon gSlateportBattleTentMons[]; extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; +extern const u8 gUnknown_085B18AC[]; extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot); // This file's functions. -void sub_819A514(void); -void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); -void sub_819A9AC(void); -void sub_819AA18(void); -void sub_819BE34(void); -void PrintSelectMonString(void); -void PrintMonSpecies(void); -void PrintMonCategory(void); -void sub_819B9E8(void); -void PrintRentalPkmnString(void); -void CopySelectedMonsToPlayerParty(void); -void sub_819C4B4(void); -void sub_819B8D4(void); -void sub_819C568(void); -void sub_819B844(void); -void PrintSelectableMenuOptions(void); -void PrintSelectableYesNo(void); -void sub_819C69C(u8 taskId); -void Task_HandleSelectionScreenChooseMons(u8 taskId); -void Task_HandleSelectionScreenMenu(u8 taskId); -void CreateFrontierFactorySelectableMons(u8 firstMonId); -void CreateTentFactorySelectableMons(u8 firstMonId); -void SetBallSpritePaletteNum(u8 id); +static void CB2_InitSelectScreen(void); +static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V); +static void Select_InitMonsData(void); +static void Select_InitAllSprites(void); +static void Select_ShowCheckedMonSprite(void); +static void Select_PrintSelectMonString(void); +static void Select_PrintMonSpecies(void); +static void Select_PrintMonCategory(void); +static void Select_PrintRentalPkmnString(void); +static void Select_CopyMonsToPlayerParty(void); +static void sub_819C4B4(void); +static void Select_ShowYesNoOptions(void); +static void sub_819C568(void); +static void Select_ShowMenuOptions(void); +static void Select_PrintMenuOptions(void); +static void Select_PrintYesNoOptions(void); +static void Task_SelectBlendPalette(u8 taskId); +static void sub_819C1D0(u8 taskId); +static void Task_HandleSelectionScreenChooseMons(u8 taskId); +static void Task_HandleSelectionScreenMenu(u8 taskId); +static void CreateFrontierFactorySelectableMons(u8 firstMonId); +static void CreateTentFactorySelectableMons(u8 firstMonId); +static void Select_SetBallSpritePaletteNum(u8 id); void sub_819F444(struct UnkFactoryStruct arg0, u8 *arg1); -void sub_819B958(u8 windowId); +static void sub_819B958(u8 windowId); void sub_819F2B4(u8 *arg0, u8 *arg1, u8 arg2); void sub_819F3F8(struct UnkFactoryStruct arg0, u8 *arg1, u8 arg2); -u8 sub_819BC04(void); -u8 sub_819BC9C(void); +static u8 Select_RunMenuOptionFunc(void); +static u8 sub_819BC9C(void); +static u8 Select_OptionSummary(void); +static u8 Select_OptionOthers(void); +static u8 Select_OptionRentDeselect(void); u8 sub_81A6F70(u8 battleMode, u8 lvlMode); u8 sub_81A6CA8(u8 arg0, u8 arg1); -bool32 sub_819C634(u16 monSetId); +static bool32 Select_AreSpeciesValid(u16 monSetId); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -125,17 +129,68 @@ EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; +// IWRAM bss +static IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; + // Const rom data. +const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal"); +const u16 gUnknown_0860F15C[] = INCBIN_U16("graphics/unknown/unknown_60F15C.gbapal"); +const u16 gUnknown_0860F17C[] = INCBIN_U16("graphics/unknown/unknown_60F17C.gbapal"); +const u8 gUnknown_0860F1BC[] = INCBIN_U8("graphics/unknown/unknown_60F1BC.4bpp"); +const u8 gUnknown_0860F3BC[] = INCBIN_U8("graphics/unknown/unknown_60F3BC.4bpp"); +const u8 gUnknown_0860F43C[] = INCBIN_U8("graphics/unknown/unknown_60F43C.4bpp"); +const u8 gUnknown_0860F53C[] = INCBIN_U8("graphics/unknown/unknown_60F53C.4bpp"); +const u8 gUnknown_0860F63C[] = INCBIN_U8("graphics/unknown/unknown_60F63C.4bpp"); +const u8 gUnknown_0860F6BC[] = INCBIN_U8("graphics/unknown/unknown_60F6BC.4bpp"); +const u8 gUnknown_0860F7BC[] = INCBIN_U8("graphics/unknown/unknown_60F7BC.4bpp"); +const u8 gUnknown_0860F83C[] = INCBIN_U8("graphics/unknown/unknown_60F83C.4bpp"); +const u8 gUnknown_0860F93C[] = INCBIN_U8("graphics/unknown/unknown_60F93C.4bpp"); +const u8 gUnknown_0860FA3C[] = INCBIN_U8("graphics/unknown/unknown_60FA3C.4bpp"); +const u8 gUnknown_0861023C[] = INCBIN_U8("graphics/unknown/unknown_61023C.bin"); +const u8 gUnknown_0861033C[] = INCBIN_U8("graphics/unknown/unknown_61033C.4bpp"); +const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbapal"); + +const struct SpriteSheet gUnknown_086103BC[] = +{ + {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), 0x65}, + {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), 0x66}, + {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), 0x67}, + {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), 0x6D}, + {}, +}; + +const struct CompressedSpriteSheet gUnknown_086103E4[] = +{ + {gUnknown_085B18AC, 0x800, 0x64}, + {}, +}; + +const struct SpritePalette gUnknown_086103F4[] = +{ + {gUnknown_0860F13C, 0x64}, + {gUnknown_0860F15C, 0x65}, + {gUnknown_0860F17C, 0x66}, + {gUnknown_0861039C, 0x67}, + {}, +}; + +u8 (* const sSelect_MenuOptionFuncs[])(void) = +{ + [MENU_SUMMARY] = Select_OptionSummary, + [MENU_RENT] /*Or Deselect*/ = Select_OptionRentDeselect, + [MENU_OTHERS] = Select_OptionOthers +}; + extern const struct BgTemplate gUnknown_08610428[3]; extern const struct WindowTemplate gUnknown_08610434[]; -extern const u8 gUnknown_0861033C[]; -extern const u8 gUnknown_0861023C[]; extern const u16 gUnknown_0861046C[]; -extern const u16 gUnknown_0861039C[]; -extern const struct SpritePalette gUnknown_086103F4[]; -extern const struct SpriteSheet gUnknown_086103BC[]; -extern const struct CompressedSpriteSheet gUnknown_086103E4[]; extern const struct SpriteTemplate gUnknown_086105D8; +extern const struct SpriteTemplate gUnknown_086105F0; +extern const struct SpriteTemplate gUnknown_08610608; +extern const struct SpriteTemplate gUnknown_08610620; +extern const struct SpriteTemplate gUnknown_08610638; +extern const u8 gUnknown_08610479[]; +extern const u8 gUnknown_08610476[]; // gfx extern const u8 gFrontierFactorySelectMenu_Gfx[]; @@ -188,7 +243,7 @@ void sub_819A44C(struct Sprite *sprite) } } -void sub_819A4C8(void) +static void Select_CB2(void) { AnimateSprites(); BuildOamBuffer(); @@ -197,7 +252,7 @@ void sub_819A4C8(void) RunTasks(); } -void sub_819A4E4(void) +static void Select_VblankCb(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -206,11 +261,11 @@ void sub_819A4E4(void) void sub_819A4F8(void) { - gUnknown_0300127C = NULL; - SetMainCallback2(sub_819A514); + sFactorySelectScreen = NULL; + SetMainCallback2(CB2_InitSelectScreen); } -void sub_819A514(void) +static void CB2_InitSelectScreen(void) { u8 taskId; @@ -265,8 +320,8 @@ void sub_819A514(void) LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); LoadPalette(gUnknown_0861046C, 0xF0, 8); LoadPalette(gUnknown_0861046C, 0xE0, 10); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - gPlttBufferUnfaded[228] = gUnknown_0300127C->unk2A4; + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + gPlttBufferUnfaded[228] = sFactorySelectScreen->unk2A4; LoadPalette(gUnknown_0861039C, 0x20, 4); gMain.state++; break; @@ -284,12 +339,12 @@ void sub_819A514(void) LoadCompressedObjectPic(gUnknown_086103E4); ShowBg(0); ShowBg(1); - SetVBlankCallback(sub_819A4E4); + SetVBlankCallback(Select_VblankCb); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) + if (sFactorySelectScreen->fromSummaryScreen == TRUE) { - sub_819C5D0(88, 152, 32, 96); + Select_SetWinRegs(88, 152, 32, 96); ShowBg(3); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); @@ -301,67 +356,67 @@ void sub_819A514(void) gMain.state++; break; case 5: - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - gUnknown_0300127C->cursorPos = gUnknown_0203CF20; - sub_819A9AC(); - sub_819AA18(); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - sub_819BE34(); + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + sFactorySelectScreen->cursorPos = gUnknown_0203CF20; + Select_InitMonsData(); + Select_InitAllSprites(); + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + Select_ShowCheckedMonSprite(); gMain.state++; break; case 6: - PrintSelectMonString(); + Select_PrintSelectMonString(); PutWindowTilemap(2); gMain.state++; break; case 7: - PrintMonCategory(); + Select_PrintMonCategory(); PutWindowTilemap(5); gMain.state++; break; case 8: - PrintMonSpecies(); + Select_PrintMonSpecies(); PutWindowTilemap(1); gMain.state++; break; case 9: - PrintRentalPkmnString(); + Select_PrintRentalPkmnString(); PutWindowTilemap(0); gMain.state++; break; case 10: - gUnknown_0300127C->unk2A1 = CreateTask(sub_819C69C, 0); - if (!gUnknown_0300127C->fromSummaryScreen) + sFactorySelectScreen->palBlendTaskId = CreateTask(Task_SelectBlendPalette, 0); + if (!sFactorySelectScreen->fromSummaryScreen) { - gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; + gTasks[sFactorySelectScreen->palBlendTaskId].data[0] = 0; taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0); gTasks[taskId].data[0] = 0; } else { - gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; - gUnknown_0300127C->unk2A2 = 0; + gTasks[sFactorySelectScreen->palBlendTaskId].data[0] = 1; + sFactorySelectScreen->unk2A2 = FALSE; taskId = CreateTask(Task_HandleSelectionScreenMenu, 0); gTasks[taskId].data[0] = 13; } - SetMainCallback2(sub_819A4C8); + SetMainCallback2(Select_CB2); break; } } -void sub_819A9AC(void) +static void Select_InitMonsData(void) { u8 i; - if (gUnknown_0300127C != NULL) + if (sFactorySelectScreen != NULL) return; - gUnknown_0300127C = AllocZeroed(sizeof(*gUnknown_0300127C)); - gUnknown_0300127C->cursorPos = 0; - gUnknown_0300127C->selectingMonsState = 1; - gUnknown_0300127C->fromSummaryScreen = FALSE; + sFactorySelectScreen = AllocZeroed(sizeof(*sFactorySelectScreen)); + sFactorySelectScreen->cursorPos = 0; + sFactorySelectScreen->selectingMonsState = 1; + sFactorySelectScreen->fromSummaryScreen = FALSE; for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - gUnknown_0300127C->mons[i].selectedId = 0; + sFactorySelectScreen->mons[i].selectedId = 0; if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) CreateFrontierFactorySelectableMons(0); @@ -369,157 +424,153 @@ void sub_819A9AC(void) CreateTentFactorySelectableMons(0); } -extern const struct SpriteTemplate gUnknown_086105F0; -extern const struct SpriteTemplate gUnknown_08610608; -extern const struct SpriteTemplate gUnknown_08610620; - -void sub_819AA18(void) +static void Select_InitAllSprites(void) { u8 i, cursorPos; s16 x; for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - gUnknown_0300127C->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); - gSprites[gUnknown_0300127C->mons[i].spriteId].data[0] = 0; - SetBallSpritePaletteNum(i); + sFactorySelectScreen->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); + gSprites[sFactorySelectScreen->mons[i].spriteId].data[0] = 0; + Select_SetBallSpritePaletteNum(i); } - cursorPos = gUnknown_0300127C->cursorPos; - x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; - gUnknown_0300127C->cursorSpriteId = CreateSprite(&gUnknown_086105F0, x, 88, 0); - gUnknown_0300127C->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0); - gUnknown_0300127C->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0); + cursorPos = sFactorySelectScreen->cursorPos; + x = gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].pos1.x; + sFactorySelectScreen->cursorSpriteId = CreateSprite(&gUnknown_086105F0, x, 88, 0); + sFactorySelectScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0); + sFactorySelectScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0); - gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 1; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].centerToCornerVecY = 0; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].centerToCornerVecY = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecY = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].centerToCornerVecY = 0; } -void sub_819AB40(void) +static void Select_DestroyAllSprites(void) { u8 i; for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - DestroySprite(&gSprites[gUnknown_0300127C->mons[i].spriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->mons[i].spriteId]); - DestroySprite(&gSprites[gUnknown_0300127C->cursorSpriteId]); - DestroySprite(&gSprites[gUnknown_0300127C->menuCursor1SpriteId]); - DestroySprite(&gSprites[gUnknown_0300127C->menuCursor2SpriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->cursorSpriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->menuCursor1SpriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->menuCursor2SpriteId]); } -void UpdateBallCursorPosition(s8 direction) +static void Select_UpdateBallCursorPosition(s8 direction) { u8 cursorPos; if (direction > 0) // Move cursor right. { - if (gUnknown_0300127C->cursorPos != SELECTABLE_MONS_COUNT - 1) - gUnknown_0300127C->cursorPos++; + if (sFactorySelectScreen->cursorPos != SELECTABLE_MONS_COUNT - 1) + sFactorySelectScreen->cursorPos++; else - gUnknown_0300127C->cursorPos = 0; + sFactorySelectScreen->cursorPos = 0; } else // Move cursor left. { - if (gUnknown_0300127C->cursorPos != 0) - gUnknown_0300127C->cursorPos--; + if (sFactorySelectScreen->cursorPos != 0) + sFactorySelectScreen->cursorPos--; else - gUnknown_0300127C->cursorPos = SELECTABLE_MONS_COUNT - 1; + sFactorySelectScreen->cursorPos = SELECTABLE_MONS_COUNT - 1; } - cursorPos = gUnknown_0300127C->cursorPos; - gSprites[gUnknown_0300127C->cursorSpriteId].pos1.x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; + cursorPos = sFactorySelectScreen->cursorPos; + gSprites[sFactorySelectScreen->cursorSpriteId].pos1.x = gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].pos1.x; } -void UpdateMenuCursorPosition(s8 direction) +static void Select_UpdateMenuCursorPosition(s8 direction) { if (direction > 0) // Move cursor down. { - if (gUnknown_0300127C->menuCursorPos != MENU_OPTIONS_COUNT - 1) - gUnknown_0300127C->menuCursorPos++; + if (sFactorySelectScreen->menuCursorPos != MENU_OPTIONS_COUNT - 1) + sFactorySelectScreen->menuCursorPos++; else - gUnknown_0300127C->menuCursorPos = 0; + sFactorySelectScreen->menuCursorPos = 0; } else // Move cursor up. { - if (gUnknown_0300127C->menuCursorPos != 0) - gUnknown_0300127C->menuCursorPos--; + if (sFactorySelectScreen->menuCursorPos != 0) + sFactorySelectScreen->menuCursorPos--; else - gUnknown_0300127C->menuCursorPos = MENU_OPTIONS_COUNT - 1; + sFactorySelectScreen->menuCursorPos = MENU_OPTIONS_COUNT - 1; } - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; } -void UpdateYesNoCursorPosition(s8 direction) +static void Select_UpdateYesNoCursorPosition(s8 direction) { if (direction > 0) // Move cursor down. { - if (gUnknown_0300127C->yesNoCursorPos != 1) - gUnknown_0300127C->yesNoCursorPos++; + if (sFactorySelectScreen->yesNoCursorPos != 1) + sFactorySelectScreen->yesNoCursorPos++; else - gUnknown_0300127C->yesNoCursorPos = 0; + sFactorySelectScreen->yesNoCursorPos = 0; } else // Move cursor up. { - if (gUnknown_0300127C->yesNoCursorPos != 0) - gUnknown_0300127C->yesNoCursorPos--; + if (sFactorySelectScreen->yesNoCursorPos != 0) + sFactorySelectScreen->yesNoCursorPos--; else - gUnknown_0300127C->yesNoCursorPos = 1; + sFactorySelectScreen->yesNoCursorPos = 1; } - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->yesNoCursorPos * 16) + 112; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->yesNoCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; } -void HandleMonSelectionChange(void) +static void Select_HandleMonSelectionChange(void) { u8 i, paletteNum; - u8 cursorPos = gUnknown_0300127C->cursorPos; - if (gUnknown_0300127C->mons[cursorPos].selectedId) // Deselect a mon. + u8 cursorPos = sFactorySelectScreen->cursorPos; + if (sFactorySelectScreen->mons[cursorPos].selectedId) // Deselect a mon. { paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); - if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectedId == 1) + if (sFactorySelectScreen->selectingMonsState == 3 && sFactorySelectScreen->mons[cursorPos].selectedId == 1) { for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - if (gUnknown_0300127C->mons[i].selectedId == 2) + if (sFactorySelectScreen->mons[i].selectedId == 2) break; } if (i == SELECTABLE_MONS_COUNT) return; else - gUnknown_0300127C->mons[i].selectedId = 1; + sFactorySelectScreen->mons[i].selectedId = 1; } - gUnknown_0300127C->mons[cursorPos].selectedId = 0; - gUnknown_0300127C->selectingMonsState--; + sFactorySelectScreen->mons[cursorPos].selectedId = 0; + sFactorySelectScreen->selectingMonsState--; } else // Select a mon. { paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); - gUnknown_0300127C->mons[cursorPos].selectedId = gUnknown_0300127C->selectingMonsState; - gUnknown_0300127C->selectingMonsState++; + sFactorySelectScreen->mons[cursorPos].selectedId = sFactorySelectScreen->selectingMonsState; + sFactorySelectScreen->selectingMonsState++; } - gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].oam.paletteNum = paletteNum; + gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].oam.paletteNum = paletteNum; } -void SetBallSpritePaletteNum(u8 id) +static void Select_SetBallSpritePaletteNum(u8 id) { u8 palNum; - if (gUnknown_0300127C->mons[id].selectedId) + if (sFactorySelectScreen->mons[id].selectedId) palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); else palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); - gSprites[gUnknown_0300127C->mons[id].spriteId].oam.paletteNum = palNum; + gSprites[sFactorySelectScreen->mons[id].spriteId].oam.paletteNum = palNum; } -void Task_FromSelectScreenToSummaryScreen(u8 taskId) +static void Task_FromSelectScreenToSummaryScreen(u8 taskId) { u8 i; u8 currMonId; @@ -534,9 +585,9 @@ void Task_FromSelectScreenToSummaryScreen(u8 taskId) case 7: if (!gPaletteFade.active) { - DestroyTask(gUnknown_0300127C->unk2A1); - sub_819F444(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0); - sub_819AB40(); + DestroyTask(sFactorySelectScreen->palBlendTaskId); + sub_819F444(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0); + Select_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE2C); FREE_AND_SET_NULL(gUnknown_0203CE30); FREE_AND_SET_NULL(gUnknown_0203CE34); @@ -546,21 +597,21 @@ void Task_FromSelectScreenToSummaryScreen(u8 taskId) } break; case 8: - gUnknown_0300127C->unk2A4 = gPlttBufferUnfaded[228]; + sFactorySelectScreen->unk2A4 = gPlttBufferUnfaded[228]; DestroyTask(taskId); - gUnknown_0300127C->fromSummaryScreen = TRUE; - currMonId = gUnknown_0300127C->cursorPos; + sFactorySelectScreen->fromSummaryScreen = TRUE; + currMonId = sFactorySelectScreen->cursorPos; sFactorySelectMons = AllocZeroed(sizeof(struct Pokemon) * SELECTABLE_MONS_COUNT); for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - sFactorySelectMons[i] = gUnknown_0300127C->mons[i].monData; - ShowPokemonSummaryScreen(1, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, sub_819A514); + sFactorySelectMons[i] = sFactorySelectScreen->mons[i].monData; + ShowPokemonSummaryScreen(1, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, CB2_InitSelectScreen); break; } } -void Task_CloseSelectionScreen(u8 taskId) +static void Task_CloseSelectionScreen(u8 taskId) { - if (gUnknown_0300127C->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != 1) { switch (gTasks[taskId].data[0]) { @@ -571,13 +622,13 @@ void Task_CloseSelectionScreen(u8 taskId) case 1: if (!UpdatePaletteFade()) { - CopySelectedMonsToPlayerParty(); - DestroyTask(gUnknown_0300127C->unk2A1); - sub_819AB40(); + Select_CopyMonsToPlayerParty(); + DestroyTask(sFactorySelectScreen->palBlendTaskId); + Select_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE2C); FREE_AND_SET_NULL(gUnknown_0203CE34); FREE_AND_SET_NULL(gUnknown_0203CE38); - FREE_AND_SET_NULL(gUnknown_0300127C); + FREE_AND_SET_NULL(sFactorySelectScreen); FreeAllWindowBuffers(); SetMainCallback2(CB2_ReturnToFieldContinueScript); DestroyTask(taskId); @@ -587,9 +638,9 @@ void Task_CloseSelectionScreen(u8 taskId) } } -void Task_HandleSelectionScreenYesNo(u8 taskId) +static void Task_HandleSelectionScreenYesNo(u8 taskId) { - if (gUnknown_0300127C->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != 1) { switch (gTasks[taskId].data[0]) { @@ -598,14 +649,14 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) gTasks[taskId].data[0] = 4; break; case 4: - sub_819B8D4(); + Select_ShowYesNoOptions(); gTasks[taskId].data[0] = 5; break; case 5: if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - if (gUnknown_0300127C->yesNoCursorPos == 0) + if (sFactorySelectScreen->yesNoCursorPos == 0) { sub_819C568(); gTasks[taskId].data[0] = 0; @@ -615,7 +666,7 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) { sub_819B958(4); sub_819BC9C(); - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } @@ -625,39 +676,39 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) PlaySE(SE_SELECT); sub_819B958(4); sub_819BC9C(); - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } else if (gMain.newAndRepeatedKeys & DPAD_UP) { PlaySE(SE_SELECT); - UpdateYesNoCursorPosition(-1); + Select_UpdateYesNoCursorPosition(-1); } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { PlaySE(SE_SELECT); - UpdateYesNoCursorPosition(1); + Select_UpdateYesNoCursorPosition(1); } break; } } } -void Task_HandleSelectionScreenMenu(u8 taskId) +static void Task_HandleSelectionScreenMenu(u8 taskId) { switch (gTasks[taskId].data[0]) { case 2: - if (!gUnknown_0300127C->fromSummaryScreen) - sub_819F2B4(&gUnknown_0300127C->unk298.field1, &gUnknown_0300127C->unk2A0, 0); + if (!sFactorySelectScreen->fromSummaryScreen) + sub_819F2B4(&sFactorySelectScreen->unk294[1].field1, &sFactorySelectScreen->unk2A0, 0); gTasks[taskId].data[0] = 9; break; case 9: - if (gUnknown_0300127C->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != 1) { - sub_819B844(); - gUnknown_0300127C->fromSummaryScreen = FALSE; + Select_ShowMenuOptions(); + sFactorySelectScreen->fromSummaryScreen = FALSE; gTasks[taskId].data[0] = 3; } break; @@ -666,10 +717,10 @@ void Task_HandleSelectionScreenMenu(u8 taskId) { u8 retVal; PlaySE(SE_SELECT); - retVal = sub_819BC04(); + retVal = Select_RunMenuOptionFunc(); if (retVal == 1) { - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } @@ -692,45 +743,45 @@ void Task_HandleSelectionScreenMenu(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); sub_819B958(3); - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } else if (gMain.newAndRepeatedKeys & DPAD_UP) { PlaySE(SE_SELECT); - UpdateMenuCursorPosition(-1); + Select_UpdateMenuCursorPosition(-1); } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { PlaySE(SE_SELECT); - UpdateMenuCursorPosition(1); + Select_UpdateMenuCursorPosition(1); } break; case 12: if (!gPaletteFade.active) { - if (gUnknown_0300127C->fromSummaryScreen == TRUE) + if (sFactorySelectScreen->fromSummaryScreen == TRUE) { - gPlttBufferFaded[228] = gUnknown_0300127C->unk2A4; + gPlttBufferFaded[228] = sFactorySelectScreen->unk2A4; gPlttBufferUnfaded[228] = gPlttBufferUnfaded[244]; } - gUnknown_0300127C->fromSummaryScreen = FALSE; + sFactorySelectScreen->fromSummaryScreen = FALSE; gTasks[taskId].data[0] = 3; } break; case 13: - sub_819B844(); + Select_ShowMenuOptions(); gTasks[taskId].data[0] = 12; break; } } -void Task_HandleSelectionScreenChooseMons(u8 taskId) +static void Task_HandleSelectionScreenChooseMons(u8 taskId) { - if (gUnknown_0300127C->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != 1) { switch (gTasks[taskId].data[0]) { @@ -738,39 +789,39 @@ void Task_HandleSelectionScreenChooseMons(u8 taskId) if (!gPaletteFade.active) { gTasks[taskId].data[0] = 1; - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; } break; case 1: if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - gUnknown_0300127C->unk2A2 = 0; + sFactorySelectScreen->unk2A2 = FALSE; gTasks[taskId].data[0] = 2; gTasks[taskId].func = Task_HandleSelectionScreenMenu; } else if (gMain.newAndRepeatedKeys & DPAD_LEFT) { PlaySE(SE_SELECT); - UpdateBallCursorPosition(-1); - PrintMonCategory(); - PrintMonSpecies(); + Select_UpdateBallCursorPosition(-1); + Select_PrintMonCategory(); + Select_PrintMonSpecies(); } else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) { PlaySE(SE_SELECT); - UpdateBallCursorPosition(1); - PrintMonCategory(); - PrintMonSpecies(); + Select_UpdateBallCursorPosition(1); + Select_PrintMonCategory(); + Select_PrintMonSpecies(); } break; case 11: if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); - PrintSelectMonString(); - gUnknown_0300127C->unk2A2 = 1; + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + Select_PrintSelectMonString(); + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; } break; @@ -778,7 +829,7 @@ void Task_HandleSelectionScreenChooseMons(u8 taskId) } } -void CreateFrontierFactorySelectableMons(u8 firstMonId) +static void CreateFrontierFactorySelectableMons(u8 firstMonId) { u8 i, j = 0; u8 ivs = 0; @@ -802,12 +853,12 @@ void CreateFrontierFactorySelectableMons(u8 firstMonId) for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; - gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId; + sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId; if (i < var_28) ivs = sub_81A6CA8(var_2C + 1, 0); else ivs = sub_81A6CA8(var_2C, 0); - CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData, + CreateMonWithEVSpreadPersonalityOTID(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].species, level, gFacilityTrainerMons[monSetId].nature, @@ -816,13 +867,13 @@ void CreateFrontierFactorySelectableMons(u8 firstMonId) otId); happiness = 0; for (j = 0; j < 4; j++) - SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); - SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); - SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + SetMonMoveAvoidReturn(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); } } -void CreateTentFactorySelectableMons(u8 firstMonId) +static void CreateTentFactorySelectableMons(u8 firstMonId) { u8 i, j; u8 ivs = 0; @@ -836,8 +887,8 @@ void CreateTentFactorySelectableMons(u8 firstMonId) for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; - gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId; - CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData, + sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId; + CreateMonWithEVSpreadPersonalityOTID(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].species, level, gFacilityTrainerMons[monSetId].nature, @@ -846,13 +897,13 @@ void CreateTentFactorySelectableMons(u8 firstMonId) otId); happiness = 0; for (j = 0; j < 4; j++) - SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); - SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); - SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + SetMonMoveAvoidReturn(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); } } -void CopySelectedMonsToPlayerParty(void) +static void Select_CopyMonsToPlayerParty(void) { u8 i, j; @@ -860,10 +911,10 @@ void CopySelectedMonsToPlayerParty(void) { for (j = 0; j < SELECTABLE_MONS_COUNT; j++) { - if (gUnknown_0300127C->mons[j].selectedId == i + 1) + if (sFactorySelectScreen->mons[j].selectedId == i + 1) { - gPlayerParty[i] = gUnknown_0300127C->mons[j].monData; - gSaveBlock2Ptr->frontier.field_E70[i].monId = gUnknown_0300127C->mons[j].monSetId; + gPlayerParty[i] = sFactorySelectScreen->mons[j].monData; + gSaveBlock2Ptr->frontier.field_E70[i].monId = sFactorySelectScreen->mons[j].monSetId; gSaveBlock2Ptr->frontier.field_E70[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL); gSaveBlock2Ptr->frontier.field_E70[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL); gSaveBlock2Ptr->frontier.field_E70[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL); @@ -874,80 +925,77 @@ void CopySelectedMonsToPlayerParty(void) CalculatePlayerPartyCount(); } -void sub_819B844(void) +static void Select_ShowMenuOptions(void) { - if (!gUnknown_0300127C->fromSummaryScreen) - gUnknown_0300127C->menuCursorPos = 0; + if (!sFactorySelectScreen->fromSummaryScreen) + sFactorySelectScreen->menuCursorPos = 0; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.x = 176; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0; - PrintSelectableMenuOptions(); + Select_PrintMenuOptions(); } -void sub_819B8D4(void) +static void Select_ShowYesNoOptions(void) { - gUnknown_0300127C->yesNoCursorPos = 0; + sFactorySelectScreen->yesNoCursorPos = 0; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = 112; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.x = 176; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = 112; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0; - PrintSelectableYesNo(); + Select_PrintYesNoOptions(); } -void sub_819B958(u8 windowId) +static void sub_819B958(u8 windowId) { - gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 1; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1; FillWindowPixelBuffer(windowId, 0); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); } -void PrintRentalPkmnString(void) +static void Select_PrintRentalPkmnString(void) { FillWindowPixelBuffer(0, 0); PrintTextOnWindow(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } -extern const u8 gUnknown_08610479[]; -extern const u8 gUnknown_08610476[]; - -void PrintMonSpecies(void) +static void Select_PrintMonSpecies(void) { u16 species; u8 x; - u8 monId = gUnknown_0300127C->cursorPos; + u8 monId = sFactorySelectScreen->cursorPos; FillWindowPixelBuffer(1, 0); - species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL); + species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); StringCopy(gStringVar4, gSpeciesNames[species]); x = GetStringRightAlignXOffset(1, gStringVar4, 86); AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610479, 0, gStringVar4); CopyWindowToVram(1, 2); } -void PrintSelectMonString(void) +static void Select_PrintSelectMonString(void) { const u8 *str = NULL; FillWindowPixelBuffer(2, 0); - if (gUnknown_0300127C->selectingMonsState == 1) + if (sFactorySelectScreen->selectingMonsState == 1) str = gText_SelectFirstPkmn; - else if (gUnknown_0300127C->selectingMonsState == 2) + else if (sFactorySelectScreen->selectingMonsState == 2) str = gText_SelectSecondPkmn; - else if (gUnknown_0300127C->selectingMonsState == 3) + else if (sFactorySelectScreen->selectingMonsState == 3) str = gText_SelectThirdPkmn; else str = gText_TheseThreePkmnOkay; @@ -956,16 +1004,16 @@ void PrintSelectMonString(void) CopyWindowToVram(2, 2); } -void PrintCantSelectSameMon(void) +static void Select_PrintCantSelectSameMon(void) { FillWindowPixelBuffer(2, 0); PrintTextOnWindow(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } -void PrintSelectableMenuOptions(void) +static void Select_PrintMenuOptions(void) { - u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId; + u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId; PutWindowTilemap(3); FillWindowPixelBuffer(3, 0); @@ -979,7 +1027,7 @@ void PrintSelectableMenuOptions(void) CopyWindowToVram(3, 3); } -void PrintSelectableYesNo(void) +static void Select_PrintYesNoOptions(void) { PutWindowTilemap(4); FillWindowPixelBuffer(4, 0); @@ -988,72 +1036,70 @@ void PrintSelectableYesNo(void) CopyWindowToVram(4, 3); } -extern u8 (* const gUnknown_0861041C[])(void); - -u8 sub_819BC04(void) +static u8 Select_RunMenuOptionFunc(void) { - gUnknown_030062E8 = gUnknown_0861041C[gUnknown_0300127C->menuCursorPos]; + gUnknown_030062E8 = sSelect_MenuOptionFuncs[sFactorySelectScreen->menuCursorPos]; return gUnknown_030062E8(); } -u8 sub_819BC30(void) +static u8 Select_OptionRentDeselect(void) { - u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId; - u16 monSetId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monSetId; - if (selectedId == 0 && !sub_819C634(monSetId)) + u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId; + u16 monSetId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].monSetId; + if (selectedId == 0 && !Select_AreSpeciesValid(monSetId)) { - PrintCantSelectSameMon(); + Select_PrintCantSelectSameMon(); sub_819B958(3); return 3; } else { - sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); - HandleMonSelectionChange(); - PrintSelectMonString(); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + Select_HandleMonSelectionChange(); + Select_PrintSelectMonString(); sub_819B958(3); - if (gUnknown_0300127C->selectingMonsState > 3) + if (sFactorySelectScreen->selectingMonsState > 3) return 2; else return 1; } } -u8 sub_819BC9C(void) +static u8 sub_819BC9C(void) { sub_819C568(); - HandleMonSelectionChange(); - PrintSelectMonString(); + Select_HandleMonSelectionChange(); + Select_PrintSelectMonString(); sub_819B958(3); - if (gUnknown_0300127C->selectingMonsState > 3) + if (sFactorySelectScreen->selectingMonsState > 3) return 2; else return 1; } -u8 sub_819BCCC(void) +static u8 Select_OptionSummary(void) { return 0; } -u8 sub_819BCD0(void) +static u8 Select_OptionOthers(void) { - sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); sub_819B958(3); return 1; } -void PrintMonCategory(void) +static void Select_PrintMonCategory(void) { u16 species; u8 text[30]; u8 x; - u8 monId = gUnknown_0300127C->cursorPos; + u8 monId = sFactorySelectScreen->cursorPos; if (monId < SELECTABLE_MONS_COUNT) { PutWindowTilemap(5); FillWindowPixelBuffer(5, 0); - species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL); + species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); x = GetStringRightAlignXOffset(1, text, 0x76); PrintTextOnWindow(5, 1, text, x, 1, 0, NULL); @@ -1063,43 +1109,305 @@ void PrintMonCategory(void) void sub_819BD70(void) { - u8 monId = gUnknown_0300127C->cursorPos; - struct Pokemon *mon = &gUnknown_0300127C->mons[monId].monData; + u8 monId = sFactorySelectScreen->cursorPos; + struct Pokemon *mon = &sFactorySelectScreen->mons[monId].monData; u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL); - gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); - gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0; + sFactorySelectScreen->unk294[1].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; - gUnknown_0300127C->unk2A0 = 0; + sFactorySelectScreen->unk2A0 = 0; } -extern const struct SpriteTemplate gUnknown_08610638; - void sub_819BE20(u8 arg0) { - gUnknown_0300127C->unk2A0 = arg0; + sFactorySelectScreen->unk2A0 = arg0; } -void sub_819BE34(void) +static void Select_ShowCheckedMonSprite(void) { struct Pokemon *mon; u16 species; u32 personality, otId; - gUnknown_0300127C->unk298.field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); - StartSpriteAffineAnim(&gSprites[gUnknown_0300127C->unk298.field1], 2); + sFactorySelectScreen->unk294[1].field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 2); - mon = &gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monData; + mon = &sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].monData; species = GetMonData(mon, MON_DATA_SPECIES, NULL); personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); otId = GetMonData(mon, MON_DATA_OT_ID, NULL); - gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); - gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0; + sFactorySelectScreen->unk294[1].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; - gSprites[gUnknown_0300127C->unk298.field1].invisible = 1; + gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 1; +} + +static void Select_ShowChosenMonsSprites(void) +{ + u8 i, j; + + for (i = 0; i < 3; i++) + { + for (j = 0; j < SELECTABLE_MONS_COUNT; j++) + { + if (sFactorySelectScreen->mons[j].selectedId == i + 1) + { + struct Pokemon *mon = &sFactorySelectScreen->mons[j].monData; + u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + sFactorySelectScreen->unk294[i].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, (i * 72) + 16, 32, i + 13, 0xFFFF); + gSprites[sFactorySelectScreen->unk294[i].field0].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->unk294[i].field0].centerToCornerVecY = 0; + break; + } + } + } + sFactorySelectScreen->unk2A0 = 0; +} + +static void sub_819C040(struct Sprite *sprite) +{ + u8 taskId; + + if (sprite->affineAnimEnded + && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded + && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded) + { + sprite->invisible = 1; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 1; + gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 1; + + taskId = CreateTask(sub_819C1D0, 1); + gTasks[taskId].func(taskId); + + sprite->callback = SpriteCallbackDummy; + } +} + +static void sub_819C100(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded + && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded + && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded) + { + FreeOamMatrix(sprite->oam.matrixNum); + FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[0].field1].oam.matrixNum); + FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[2].field1].oam.matrixNum); + + sFactorySelectScreen->unk2A0 = 0; + + DestroySprite(&gSprites[sFactorySelectScreen->unk294[0].field1]); + DestroySprite(&gSprites[sFactorySelectScreen->unk294[2].field1]); + DestroySprite(sprite); + } +} + +static void sub_819C1D0(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + task->data[3] = 16; + task->data[24] = 224; // BUG: writing outside the array's bounds. + task->data[5] = 64; + task->data[8] = 65; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + break; + case 1: + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + break; + case 2: + task->data[5] -= 4; + task->data[8] += 4; + if (task->data[5] <= 32 || task->data[8] >= 96) + { + task->data[5] = 32; + task->data[8] = 96; + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + } + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + if (task->data[5] != 32) + return; + break; + default: + DestroyTask(taskId); + Select_ShowChosenMonsSprites(); + return; + } + task->data[0]++; +} + +static void sub_819C2D4(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[0]) + { + default: + HideBg(3); + gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C100; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; + gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[0].field1], 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[2].field1], 1); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + DestroyTask(taskId); + break; + case 0: + task->data[3] = 16; + task->data[24] = 224; // BUG: writing outside the array's bounds. + task->data[5] = 32; + task->data[8] = 96; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + task->data[0]++; + break; + case 1: + task->data[5] += 4; + task->data[8] -= 4; + if (task->data[5] >= 64 || task->data[8] <= 65) + { + task->data[5] = 64; + task->data[8] = 65; + } + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + if (task->data[5] == 64) + task->data[0]++; + break; + } +} + +static void sub_819C4B4(void) +{ + sFactorySelectScreen->unk294[1].field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); + sFactorySelectScreen->unk294[0].field1 = CreateSprite(&gUnknown_08610638, 44, 64, 1); + sFactorySelectScreen->unk294[2].field1 = CreateSprite(&gUnknown_08610638, 196, 64, 1); + + gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C040; + gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; + gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; + + sFactorySelectScreen->unk2A0 = 1; +} + +static void sub_819C568(void) +{ + u8 taskId; + + FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[0].field0); + FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[1].field0); + FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[2].field0); + + taskId = CreateTask(sub_819C2D4, 1); + gTasks[taskId].func(taskId); + + sFactorySelectScreen->unk2A0 = 1; +} + +static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V) +{ + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(mWin0H, nWin0H)); + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(mWin0V, nWin0V)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); +} + +static bool32 Select_AreSpeciesValid(u16 monSetId) +{ + u8 i, j; + u32 species = gFacilityTrainerMons[monSetId].species; + u8 selectState = sFactorySelectScreen->selectingMonsState; + + for (i = 1; i < selectState; i++) + { + for (j = 0; j < SELECTABLE_MONS_COUNT; j++) + { + if (sFactorySelectScreen->mons[j].selectedId == i) + { + if (gFacilityTrainerMons[sFactorySelectScreen->mons[j].monSetId].species == species) + return FALSE; + + break; + } + } + } + + return TRUE; +} + +static void Task_SelectBlendPalette(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + sFactorySelectScreen->unk2A7 = 0; + sFactorySelectScreen->unk2A8 = 0; + sFactorySelectScreen->unk2A6 = TRUE; + gTasks[taskId].data[0] = 1; + break; + case 1: + if (sFactorySelectScreen->unk2A2) + { + if (sFactorySelectScreen->unk2A9) + { + gTasks[taskId].data[0] = 2; + } + else + { + sFactorySelectScreen->unk2A7++; + if (sFactorySelectScreen->unk2A7 > 6) + { + sFactorySelectScreen->unk2A7 = 0; + if (!sFactorySelectScreen->unk2A6) + sFactorySelectScreen->unk2A8--; + else + sFactorySelectScreen->unk2A8++; + } + BlendPalettes(0x4000, sFactorySelectScreen->unk2A8, 0); + if (sFactorySelectScreen->unk2A8 > 5) + { + sFactorySelectScreen->unk2A6 = FALSE; + } + else if (sFactorySelectScreen->unk2A8 == 0) + { + gTasks[taskId].data[0] = 2; + sFactorySelectScreen->unk2A6 = TRUE; + } + } + } + break; + case 2: + if (sFactorySelectScreen->unk2A9 > 14) + { + sFactorySelectScreen->unk2A9 = 0; + gTasks[taskId].data[0] = 1; + } + else + { + sFactorySelectScreen->unk2A9++; + } + break; + } } diff --git a/sym_bss.txt b/sym_bss.txt index 0b861774b1..9294c51778 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -78,8 +78,7 @@ gUnknown_03001278: @ 3001278 gUnknown_03001279: @ 3001279 .space 0x3 -gUnknown_0300127C: @ 300127C - .space 0x4 + .include "src/battle_factory.o" gUnknown_03001280: @ 3001280 .space 0x4 From 1283b87505b508750a22317d548484e851ce6cad Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 6 Sep 2018 23:02:16 +0200 Subject: [PATCH 05/28] up to sub_819d064 --- asm/battle_frontier_2.s | 1330 ++++----------------------------------- src/battle_factory.c | 497 ++++++++++++++- sym_bss.txt | 6 - 3 files changed, 611 insertions(+), 1222 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 835d43bad8..489eb2d15b 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -8,1106 +8,6 @@ - thumb_func_start sub_819C7E0 -sub_819C7E0: @ 819C7E0 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_819C7E0 - - thumb_func_start sub_819C7FC -sub_819C7FC: @ 819C7FC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_819C7FC - - thumb_func_start sub_819C810 -sub_819C810: @ 819C810 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - ldr r4, =gPlayerParty - ldr r5, =gUnknown_03001284 - ldr r1, [r5] - ldrb r0, [r1, 0x12] - movs r6, 0x64 - muls r0, r6 - adds r0, r4 - ldr r2, =gEnemyParty - mov r9, r2 - ldrb r1, [r1, 0x13] - muls r1, r6 - add r1, r9 - movs r2, 0x64 - bl memcpy - movs r1, 0 - mov r0, sp - strb r1, [r0] - ldr r0, [r5] - ldrb r0, [r0, 0x12] - muls r0, r6 - adds r0, r4 - movs r1, 0x20 - mov r2, sp - bl SetMonData - ldr r3, =gSaveBlock2Ptr - mov r8, r3 - ldr r3, [r3] - ldr r4, [r5] - ldrb r0, [r4, 0x12] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r3, r2 - ldrb r1, [r4, 0x13] - adds r1, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3, r0 - movs r1, 0xE7 - lsls r1, 4 - adds r0, r1 - ldrh r0, [r0] - adds r2, r1 - strh r0, [r2] - ldrb r0, [r4, 0x12] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r3, r2 - ldrb r1, [r4, 0x13] - adds r1, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r0, =0x00000e78 - adds r3, r0 - ldrb r1, [r3] - adds r2, r0 - strb r1, [r2] - ldr r0, [r5] - ldrb r0, [r0, 0x13] - muls r0, r6 - add r0, r9 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r1, r8 - ldr r2, [r1] - ldr r4, [r5] - ldrb r3, [r4, 0x12] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - ldr r3, =0x00000e74 - adds r2, r3 - adds r2, r1 - str r0, [r2] - ldrb r0, [r4, 0x13] - muls r0, r6 - add r0, r9 - movs r1, 0x2E - movs r2, 0 - bl GetBoxMonData - mov r1, r8 - ldr r2, [r1] - ldr r1, [r5] - ldrb r3, [r1, 0x12] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r2, r1 - ldr r3, =0x00000e79 - adds r2, r3 - strb r0, [r2] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C810 - - thumb_func_start sub_819C90C -sub_819C90C: @ 819C90C - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r6, r0, r1 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0x7 - beq _0819C950 - cmp r0, 0x7 - bgt _0819C934 - cmp r0, 0x6 - beq _0819C93A - b _0819C9F0 - .pool -_0819C934: - cmp r0, 0x8 - beq _0819C9C4 - b _0819C9F0 -_0819C93A: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x7 - strh r0, [r6, 0x8] - b _0819C9F0 -_0819C950: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0819C9F0 - ldr r4, =gUnknown_03001284 - ldr r0, [r4] - adds r0, 0x21 - ldrb r0, [r0] - bl DestroyTask - ldr r1, [r4] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - bl sub_819F444 - bl sub_819E538 - ldr r4, =gUnknown_0203CE40 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE44 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE48 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE4C - ldr r0, [r4] - bl Free - str r5, [r4] - bl FreeAllWindowBuffers - movs r0, 0x8 - strh r0, [r6, 0x8] - b _0819C9F0 - .pool -_0819C9C4: - adds r0, r2, 0 - bl DestroyTask - ldr r2, =gUnknown_03001284 - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x15] - ldr r2, [r2] - ldr r0, =gPlttBufferUnfaded - movs r1, 0xF4 - lsls r1, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2, 0x24] - ldr r1, =gPlayerParty - ldrb r2, [r2, 0x3] - ldr r0, =sub_819DC1C - str r0, [sp] - movs r0, 0 - movs r3, 0x2 - bl ShowPokemonSummaryScreen -_0819C9F0: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C90C - - thumb_func_start sub_819CA08 -sub_819CA08: @ 819CA08 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, =gUnknown_03001284 - ldr r2, [r7] - adds r0, r2, 0 - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819CAFE - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _0819CA78 - cmp r1, 0x1 - bgt _0819CA44 - cmp r1, 0 - beq _0819CA4E - b _0819CAFE - .pool -_0819CA44: - cmp r1, 0x2 - beq _0819CA8C - cmp r1, 0x3 - beq _0819CAA4 - b _0819CAFE -_0819CA4E: - adds r0, r2, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0819CA68 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, =gSpecialVar_Result - strh r1, [r0] - b _0819CAFE - .pool -_0819CA68: - movs r0, 0x2 - strh r0, [r4, 0x8] - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] - b _0819CAFE - .pool -_0819CA78: - adds r0, r2, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0819CA9C - ldrb r0, [r2, 0x3] - strb r0, [r2, 0x13] - bl sub_819C810 - b _0819CA9C -_0819CA8C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0819CA9C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0819CAFE -_0819CAA4: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0819CAFE - ldr r0, [r7] - adds r0, 0x21 - ldrb r0, [r0] - bl DestroyTask - bl sub_819E538 - ldr r4, =gUnknown_0203CE40 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE44 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE48 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE4C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r7] - bl Free - str r5, [r7] - bl FreeAllWindowBuffers - ldr r0, =CB2_ReturnToFieldContinueScript - bl SetMainCallback2 - adds r0, r6, 0 - bl DestroyTask -_0819CAFE: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CA08 - - thumb_func_start sub_819CB1C -sub_819CB1C: @ 819CB1C - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r7, =gUnknown_03001284 - ldr r0, [r7] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819CBD6 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - beq _0819CB50 - cmp r0, 0x5 - beq _0819CB5A - b _0819CBD6 - .pool -_0819CB50: - bl sub_819E9E0 - movs r0, 0x5 - strh r0, [r4, 0x8] - b _0819CBD6 -_0819CB5A: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r6, 0x1 - adds r5, r6, 0 - ands r5, r1 - cmp r5, 0 - beq _0819CB86 - movs r0, 0x5 - bl PlaySE - ldr r0, [r7] - ldrb r0, [r0, 0x16] - cmp r0, 0 - bne _0819CB80 - strh r6, [r4, 0xA] - b _0819CB9C - .pool -_0819CB80: - movs r0, 0 - strh r0, [r4, 0xA] - b _0819CB96 -_0819CB86: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819CBA8 - movs r0, 0x5 - bl PlaySE - strh r5, [r4, 0xA] -_0819CB96: - movs r0, 0x4 - bl sub_819EA64 -_0819CB9C: - ldrh r0, [r4, 0x14] - ldrh r1, [r4, 0x16] - lsls r0, 16 - orrs r0, r1 - str r0, [r4] - b _0819CBD6 -_0819CBA8: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819CBC2 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl sub_819E758 - b _0819CBD6 -_0819CBC2: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819CBD6 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_819E758 -_0819CBD6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819CB1C - - thumb_func_start sub_819CBDC -sub_819CBDC: @ 819CBDC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r2 - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0819CC04 - movs r0, 0 - strh r0, [r2, 0x8] - ldr r0, =sub_819CA08 - b _0819CC16 - .pool -_0819CC04: - movs r0, 0 - strh r0, [r2, 0x8] - ldr r1, =sub_819CE40 - lsrs r0, r1, 16 - strh r0, [r2, 0x14] - strh r1, [r2, 0x16] - movs r0, 0x1 - strh r0, [r2, 0x12] - ldr r0, =sub_819D770 -_0819CC16: - str r0, [r2] - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CBDC - - thumb_func_start sub_819CC24 -sub_819CC24: @ 819CC24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _0819CC5A - ldr r0, =gText_QuitSwapping - bl sub_819EBEC - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x20 - strb r5, [r0] - movs r0, 0x4 - strh r0, [r4, 0x8] - ldr r1, =sub_819CBDC - lsrs r0, r1, 16 - strh r0, [r4, 0x14] - strh r1, [r4, 0x16] - ldr r0, =sub_819CB1C - str r0, [r4] -_0819CC5A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CC24 - - thumb_func_start sub_819CC74 -sub_819CC74: @ 819CC74 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0819CCB0 - movs r0, 0 - strh r0, [r2, 0x8] - ldr r0, =sub_819CA08 - b _0819CCC2 - .pool -_0819CCB0: - movs r0, 0 - strh r0, [r2, 0x8] - ldr r1, =sub_819CE40 - lsrs r0, r1, 16 - strh r0, [r2, 0x14] - strh r1, [r2, 0x16] - movs r0, 0x1 - strh r0, [r2, 0x12] - ldr r0, =sub_819D770 -_0819CCC2: - str r0, [r2] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CC74 - - thumb_func_start sub_819CCD4 -sub_819CCD4: @ 819CCD4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0819CD1A - ldr r4, =gUnknown_03001284 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x2D - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F2B4 - ldr r0, =gText_AcceptThisPkmn - bl sub_819EBEC - ldr r0, [r4] - adds r0, 0x20 - movs r1, 0x1 - strb r1, [r0] - movs r0, 0x4 - strh r0, [r5, 0x8] - ldr r1, =sub_819CC74 - lsrs r0, r1, 16 - strh r0, [r5, 0x14] - strh r1, [r5, 0x16] - ldr r0, =sub_819CB1C - str r0, [r5] -_0819CD1A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CCD4 - - thumb_func_start sub_819CD34 -sub_819CD34: @ 819CD34 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x3 - beq _0819CDA4 - cmp r0, 0x3 - bgt _0819CD60 - cmp r0, 0x2 - beq _0819CD66 - b _0819CE36 - .pool -_0819CD60: - cmp r0, 0x9 - beq _0819CD88 - b _0819CE36 -_0819CD66: - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r0, [r1, 0x15] - cmp r0, 0 - bne _0819CD7C - adds r0, r1, 0 - adds r0, 0x2D - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F2B4 -_0819CD7C: - movs r0, 0x9 - strh r0, [r5, 0x8] - b _0819CE36 - .pool -_0819CD88: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819CE36 - bl sub_819E944 - movs r0, 0x3 - strh r0, [r5, 0x8] - b _0819CE36 - .pool -_0819CDA4: - ldr r7, =gUnknown_03001284 - ldr r0, [r7] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819CE36 - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - mov r8, r0 - mov r4, r8 - ands r4, r1 - cmp r4, 0 - beq _0819CDD8 - movs r0, 0x5 - bl PlaySE - adds r0, r6, 0 - bl sub_819F0A0 - b _0819CE36 - .pool -_0819CDD8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819CE14 - movs r0, 0x5 - bl PlaySE - ldr r1, [r7] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - movs r0, 0x3 - bl sub_819EA64 - strh r4, [r5, 0x8] - ldr r1, =sub_819CE40 - lsrs r0, r1, 16 - strh r0, [r5, 0x14] - strh r1, [r5, 0x16] - mov r1, r8 - strh r1, [r5, 0x12] - ldr r0, =sub_819D770 - str r0, [r5] - b _0819CE36 - .pool -_0819CE14: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819CE28 - movs r0, 0x1 - negs r0, r0 - bl sub_819E7C0 - b _0819CE36 -_0819CE28: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819CE36 - movs r0, 0x1 - bl sub_819E7C0 -_0819CE36: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819CD34 - - thumb_func_start sub_819CE40 -sub_819CE40: @ 819CE40 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0819CE64 - cmp r0, 0x1 - beq _0819CE88 - b _0819CF4C - .pool -_0819CE64: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0819CF4C - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x22 - movs r1, 0x1 - strb r1, [r0] - strh r1, [r4, 0x8] - b _0819CF4C - .pool -_0819CE88: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - adds r5, r1, 0 - ands r5, r0 - cmp r5, 0 - beq _0819CEBC - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x22 - movs r1, 0 - strb r1, [r0] - bl sub_819EE08 - bl sub_819EAC0 - adds r0, r6, 0 - bl sub_819F184 - b _0819CF4C - .pool -_0819CEBC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819CEF8 - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x22 - strb r5, [r0] - bl sub_819EE08 - bl sub_819EAC0 - ldr r1, =sub_819CC24 - lsrs r0, r1, 16 - strh r0, [r4, 0x14] - strh r1, [r4, 0x16] - strh r5, [r4, 0x8] - strh r5, [r4, 0x12] - ldr r0, =sub_819D588 - str r0, [r4] - b _0819CF4C - .pool -_0819CEF8: - ldrh r1, [r2, 0x30] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819CF0C - movs r0, 0x1 - negs r0, r0 - bl sub_819E694 - b _0819CF2A -_0819CF0C: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0819CF1C - movs r0, 0x1 - bl sub_819E694 - b _0819CF2A -_0819CF1C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819CF34 - movs r0, 0x1 - bl sub_819E6E8 -_0819CF2A: - bl sub_819EFA8 - bl sub_819EB4C - b _0819CF4C -_0819CF34: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819CF4C - movs r0, 0x1 - negs r0, r0 - bl sub_819E6E8 - bl sub_819EFA8 - bl sub_819EB4C -_0819CF4C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_819CE40 - - thumb_func_start sub_819CF54 -sub_819CF54: @ 819CF54 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _0819CFA0 - cmp r2, 0x1 - bgt _0819CF7C - cmp r2, 0 - beq _0819CF82 - b _0819D05C - .pool -_0819CF7C: - cmp r2, 0x2 - beq _0819D03C - b _0819D05C -_0819CF82: - ldr r1, =gUnknown_03001284 - ldr r0, [r1] - adds r0, 0x27 - strb r2, [r0] - ldr r0, [r1] - adds r0, 0x28 - strb r2, [r0] - ldr r0, [r1] - adds r0, 0x26 - movs r1, 0x1 - strb r1, [r0] - strh r1, [r4, 0x8] - b _0819D05C - .pool -_0819CFA0: - ldr r1, =gUnknown_03001284 - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - adds r6, r1, 0 - cmp r0, 0 - beq _0819D05C - adds r0, r2, 0 - adds r0, 0x29 - ldrb r3, [r0] - cmp r3, 0 - beq _0819CFC4 - movs r0, 0x2 - strh r0, [r4, 0x8] - b _0819D05C - .pool -_0819CFC4: - adds r1, r2, 0 - adds r1, 0x27 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x27 - ldrb r0, [r1] - cmp r0, 0x6 - bls _0819CFF8 - strb r3, [r1] - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _0819CFF0 - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - b _0819CFF6 -_0819CFF0: - adds r1, 0x28 - ldrb r0, [r1] - adds r0, 0x1 -_0819CFF6: - strb r0, [r1] -_0819CFF8: - movs r0, 0x80 - lsls r0, 7 - ldr r1, [r6] - adds r1, 0x28 - ldrb r1, [r1] - movs r2, 0 - bl BlendPalettes - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - cmp r0, 0x5 - bls _0819D01C - adds r1, r2, 0 - adds r1, 0x26 - movs r0, 0 - b _0819D05A -_0819D01C: - cmp r0, 0 - bne _0819D05C - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x8] - adds r1, r2, 0 - adds r1, 0x26 - movs r0, 0x1 - b _0819D05A - .pool -_0819D03C: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x29 - ldrb r0, [r1] - cmp r0, 0xE - bls _0819D058 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - strh r0, [r4, 0x8] - b _0819D05C - .pool -_0819D058: - adds r0, 0x1 -_0819D05A: - strb r0, [r1] -_0819D05C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_819CF54 - - thumb_func_start sub_819D064 -sub_819D064: @ 819D064 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _0819D0A4 - cmp r1, 0x1 - bgt _0819D08C - cmp r1, 0 - beq _0819D092 - b _0819D118 - .pool -_0819D08C: - cmp r1, 0x2 - beq _0819D0BC - b _0819D118 -_0819D092: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x27 - strb r1, [r0] - strh r1, [r4, 0x10] - b _0819D0AE - .pool -_0819D0A4: - ldr r0, =gPlttBufferUnfaded+ 0x1E0 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette -_0819D0AE: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0819D118 - .pool -_0819D0BC: - ldr r2, =gUnknown_03001284 - ldr r0, [r2] - adds r0, 0x28 - ldrb r0, [r0] - cmp r0, 0xF - bls _0819D0D2 - movs r0, 0x1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819D0D2: - ldr r1, [r2] - adds r1, 0x27 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - adds r1, r0, 0 - adds r1, 0x27 - ldrb r0, [r1] - cmp r0, 0x3 - bls _0819D108 - movs r0, 0 - strb r0, [r1] - ldr r1, =gPlttBufferUnfaded - ldr r0, =gPlttBufferFaded - movs r3, 0xE4 - lsls r3, 1 - adds r0, r3 - ldrh r0, [r0] - adds r3, 0x20 - adds r1, r3 - strh r0, [r1] - ldr r1, [r2] - adds r1, 0x28 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0819D108: - movs r0, 0x80 - lsls r0, 7 - ldr r1, [r2] - adds r1, 0x28 - ldrb r1, [r1] - movs r2, 0 - bl BlendPalettes -_0819D118: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D064 - thumb_func_start sub_819D12C sub_819D12C: @ 819D12C push {r4-r7,lr} @@ -1154,7 +54,7 @@ _0819D174: cmp r4, 0x2 beq _0819D1F2 ldr r2, =gSprites - ldr r3, =gUnknown_03001284 + ldr r3, =sFactorySwapScreen ldr r0, [r3] adds r0, 0x5 mov r8, r0 @@ -1210,7 +110,7 @@ _0819D1D8: b _0819D210 _0819D1F2: ldr r3, =gSprites - ldr r4, =gUnknown_03001284 + ldr r4, =sFactorySwapScreen ldr r0, [r4] ldrb r1, [r0, 0x7] lsls r0, r1, 4 @@ -1238,7 +138,7 @@ _0819D210: ldrsh r0, [r0, r3] cmp r0, 0x1 bne _0819D26A - ldr r1, =gUnknown_03001284 + ldr r1, =sFactorySwapScreen ldr r0, [r1] adds r0, 0x5 adds r0, r2 @@ -1270,7 +170,7 @@ _0819D26A: movs r7, 0 _0819D26C: mov r6, r10 - ldr r5, =gUnknown_03001284 + ldr r5, =sFactorySwapScreen ldr r2, [r5] mov r1, r9 asrs r4, r1, 24 @@ -1310,7 +210,7 @@ _0819D26C: _0819D2C0: movs r0, 0x64 bl IndexOfSpritePaletteTag - ldr r2, =gUnknown_03001284 + ldr r2, =sFactorySwapScreen ldr r1, [r2] adds r1, 0x5 adds r1, r4 @@ -1399,7 +299,7 @@ _0819D360: .pool _0819D368: ldr r3, =gSprites - ldr r2, =gUnknown_03001284 + ldr r2, =sFactorySwapScreen ldr r0, [r2] ldrb r1, [r0, 0x8] lsls r0, r1, 4 @@ -1439,7 +339,7 @@ _0819D3B2: bne _0819D3FC movs r3, 0 ldr r7, =gSprites - ldr r6, =gUnknown_03001284 + ldr r6, =sFactorySwapScreen asrs r5, r2, 24 _0819D3BE: movs r4, 0 @@ -1481,7 +381,7 @@ _0819D3FC: mov r9, r0 ldr r5, =gSprites _0819D40E: - ldr r1, =gUnknown_03001284 + ldr r1, =sFactorySwapScreen ldr r2, [r1] lsls r3, r4, 1 adds r3, r4 @@ -1535,7 +435,7 @@ _0819D40E: .pool _0819D480: ldr r2, =gSprites - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r1, [r0, 0xE] lsls r0, r1, 4 @@ -1575,7 +475,7 @@ _0819D4CA: bne _0819D510 movs r3, 0 ldr r7, =gSprites - ldr r6, =gUnknown_03001284 + ldr r6, =sFactorySwapScreen asrs r5, r2, 24 _0819D4D6: movs r4, 0 @@ -1612,7 +512,7 @@ _0819D510: mov r6, r8 adds r6, 0x10 ldr r5, =gSprites - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen mov r9, r0 _0819D520: mov r1, r9 @@ -1761,7 +661,7 @@ _0819D64E: movs r0, 0x5 movs r1, 0x2 bl CopyWindowToVram - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0x1 @@ -1895,7 +795,7 @@ sub_819D770: @ 819D770 sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 - ldr r1, =gUnknown_03001284 + ldr r1, =sFactorySwapScreen ldr r0, [r1] adds r0, 0x30 ldrb r0, [r0] @@ -2101,20 +1001,20 @@ _0819D936: bl CopyWindowToVram b _0819D990 _0819D948: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0 bne _0819D964 ldr r0, =gText_SelectPkmnToSwap - bl sub_819EBEC + bl Swap_PrintOnYesNoQuestionWindow b _0819D96A .pool _0819D964: ldr r0, =gText_SelectPkmnToAccept - bl sub_819EBEC + bl Swap_PrintOnYesNoQuestionWindow _0819D96A: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r0, [r1, 0x3] cmp r0, 0x2 @@ -2132,7 +1032,7 @@ _0819D96A: ands r1, r2 strb r1, [r0] _0819D98C: - bl sub_819EFA8 + bl Swap_PrintMonCategory _0819D990: ldr r0, =gTasks adds r1, r5, r6 @@ -2146,7 +1046,7 @@ _0819D990: _0819D9B0: bl sub_819EEF0 bl sub_819EADC - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] adds r0, 0x22 movs r1, 0x1 @@ -2177,7 +1077,7 @@ sub_819D9EC: @ 819D9EC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] adds r0, 0x30 ldrb r0, [r0] @@ -2222,7 +1122,7 @@ _0819DA44: _0819DA58: bl sub_819EADC ldr r2, =gSprites - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r1, [r0, 0x4] lsls r0, r1, 4 @@ -2245,7 +1145,7 @@ _0819DA8C: movs r1, 0 bl CreateTask ldr r2, =gTasks - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] adds r0, 0x21 ldrb r1, [r0] @@ -2266,7 +1166,7 @@ _0819DABC: b _0819DBCA _0819DACA: ldr r2, =gTasks - ldr r4, =gUnknown_03001284 + ldr r4, =sFactorySwapScreen ldr r0, [r4] adds r0, 0x21 ldrb r1, [r0] @@ -2313,7 +1213,7 @@ _0819DB10: bls _0819DB10 _0819DB32: ldr r5, =gSprites - ldr r4, =gUnknown_03001284 + ldr r4, =sFactorySwapScreen ldr r3, [r4] ldrb r0, [r3, 0x4] lsls r1, r0, 4 @@ -2375,7 +1275,7 @@ _0819DBB0: adds r0, r3 movs r1, 0 strh r1, [r0, 0x8] - ldr r2, =sub_819CE40 + ldr r2, =Task_HandleSwapScreenChooseMons lsrs r1, r2, 16 strh r1, [r0, 0x14] strh r2, [r0, 0x16] @@ -2393,7 +1293,7 @@ _0819DBCA: thumb_func_start sub_819DBD8 sub_819DBD8: @ 819DBD8 push {r4,r5,lr} - ldr r5, =gUnknown_03001284 + ldr r5, =sFactorySwapScreen ldr r4, [r5] cmp r4, 0 bne _0819DBF6 @@ -2416,7 +1316,7 @@ _0819DBF6: thumb_func_start sub_819DC00 sub_819DC00: @ 819DC00 push {lr} - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen movs r1, 0 str r1, [r0] ldr r0, =sub_819DC1C @@ -2666,7 +1566,7 @@ _0819DE94: b _0819E00E .pool _0819DECC: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r0, [r1, 0x15] cmp r0, 0x1 @@ -2683,7 +1583,7 @@ _0819DEDC: _0819DEEC: bl sub_819DBD8 bl sub_819E0C0 - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x15] cmp r0, 0x1 @@ -2696,7 +1596,7 @@ _0819DF02: .pool _0819DF10: ldr r0, =gText_SelectPkmnToSwap - bl sub_819EBEC + bl Swap_PrintOnYesNoQuestionWindow movs r0, 0x2 bl PutWindowTilemap ldr r1, =gMain @@ -2706,17 +1606,17 @@ _0819DF10: b _0819E00E .pool _0819DF30: - bl sub_819EFA8 + bl Swap_PrintMonCategory movs r0, 0x8 bl PutWindowTilemap b _0819E006 _0819DF3C: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x15] cmp r0, 0 bne _0819DF4A - bl sub_819EB4C + bl Swap_PrintMonSpecies _0819DF4A: movs r0, 0x1 bl PutWindowTilemap @@ -2737,7 +1637,7 @@ _0819DF70: adds r1, r2, r0 b _0819E00E _0819DF78: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x15] cmp r0, 0 @@ -2773,7 +1673,7 @@ _0819DFA4: bl ShowBg movs r0, 0x2 bl ShowBg - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x15] cmp r0, 0x1 @@ -2806,7 +1706,7 @@ _0819E01C: ldr r0, =sub_819CF54 movs r1, 0 bl CreateTask - ldr r6, =gUnknown_03001284 + ldr r6, =sFactorySwapScreen ldr r1, [r6] adds r1, 0x21 strb r0, [r1] @@ -2822,7 +1722,7 @@ _0819E01C: lsls r0, 3 adds r0, r4 strh r5, [r0, 0x8] - ldr r0, =sub_819CE40 + ldr r0, =Task_HandleSwapScreenChooseMons movs r1, 0 bl CreateTask lsls r0, 24 @@ -2850,7 +1750,7 @@ _0819E06C: strh r1, [r0, 0x8] adds r2, 0x22 strb r3, [r2] - ldr r0, =sub_819CD34 + ldr r0, =Task_HandleSwapScreenMenu movs r1, 0 bl CreateTask lsls r0, 24 @@ -2890,7 +1790,7 @@ sub_819E0C0: @ 819E0C0 movs r0, 0x65 strh r0, [r1, 0x2] movs r6, 0 - ldr r4, =gUnknown_03001284 + ldr r4, =sFactorySwapScreen movs r7, 0 ldr r5, =gSprites _0819E0E6: @@ -2923,7 +1823,7 @@ _0819E0E6: lsrs r6, r0, 24 cmp r6, 0x2 bls _0819E0E6 - ldr r7, =gUnknown_03001284 + ldr r7, =sFactorySwapScreen ldr r1, [r7] adds r0, r1, 0x5 ldrb r1, [r1, 0x3] @@ -3347,7 +2247,7 @@ _0819E330: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 - ldr r3, =gUnknown_03001284 + ldr r3, =sFactorySwapScreen mov r8, r3 ldr r0, =gSprites mov r9, r0 @@ -3432,7 +2332,7 @@ sub_819E538: @ 819E538 push {r4-r7,lr} movs r5, 0 _0819E53C: - ldr r6, =gUnknown_03001284 + ldr r6, =sFactorySwapScreen ldr r0, [r6] adds r0, 0x5 adds r0, r5 @@ -3474,7 +2374,7 @@ _0819E590: movs r4, 0 lsls r6, r5, 1 _0819E594: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] adds r1, r6, r5 adds r1, r4, r1 @@ -3503,7 +2403,7 @@ _0819E5C6: adds r7, r5, 0x1 lsls r6, r5, 1 _0819E5CC: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] adds r1, r4, r6 adds r0, 0xE @@ -3538,7 +2438,7 @@ sub_819E608: @ 819E608 cmp r6, 0x2 bhi _0819E65C ldr r4, =gSprites - ldr r5, =gUnknown_03001284 + ldr r5, =sFactorySwapScreen ldr r0, [r5] ldrb r1, [r0, 0x4] lsls r0, r1, 4 @@ -3571,7 +2471,7 @@ sub_819E608: @ 819E608 .pool _0819E65C: ldr r2, =gSprites - ldr r3, =gUnknown_03001284 + ldr r3, =sFactorySwapScreen ldr r0, [r3] ldrb r1, [r0, 0x4] lsls r0, r1, 4 @@ -3596,8 +2496,8 @@ _0819E684: .pool thumb_func_end sub_819E608 - thumb_func_start sub_819E694 -sub_819E694: @ 819E694 + thumb_func_start Swap_UpdateBallCursorPosition +Swap_UpdateBallCursorPosition: @ 819E694 push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -3607,7 +2507,7 @@ sub_819E694: @ 819E694 lsls r4, 24 cmp r4, 0 ble _0819E6C0 - ldr r1, =gUnknown_03001284 + ldr r1, =sFactorySwapScreen ldr r2, [r1] ldrb r0, [r2, 0x3] adds r0, 0x1 @@ -3618,7 +2518,7 @@ sub_819E694: @ 819E694 b _0819E6D8 .pool _0819E6C0: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r2, [r0] ldrb r3, [r2, 0x3] adds r1, r0, 0 @@ -3638,10 +2538,10 @@ _0819E6D8: pop {r4} pop {r0} bx r0 - thumb_func_end sub_819E694 + thumb_func_end Swap_UpdateBallCursorPosition - thumb_func_start sub_819E6E8 -sub_819E6E8: @ 819E6E8 + thumb_func_start Swap_UpdateActionCursorPosition +Swap_UpdateActionCursorPosition: @ 819E6E8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -3651,7 +2551,7 @@ sub_819E6E8: @ 819E6E8 lsls r4, 24 cmp r4, 0 ble _0819E728 - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r2, [r0] ldrb r1, [r2, 0x3] adds r4, r0, 0 @@ -3674,7 +2574,7 @@ _0819E722: strb r0, [r2, 0x3] b _0819E74A _0819E728: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r3, [r1, 0x3] adds r2, r3, 0 @@ -3698,15 +2598,15 @@ _0819E74A: pop {r4} pop {r0} bx r0 - thumb_func_end sub_819E6E8 + thumb_func_end Swap_UpdateActionCursorPosition - thumb_func_start sub_819E758 -sub_819E758: @ 819E758 + thumb_func_start Swap_UpdateYesNoCursorPosition +Swap_UpdateYesNoCursorPosition: @ 819E758 push {lr} lsls r0, 24 cmp r0, 0 ble _0819E778 - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r3, [r1, 0x16] adds r2, r0, 0 @@ -3719,7 +2619,7 @@ _0819E774: movs r0, 0 b _0819E78E _0819E778: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r3, [r1, 0x16] adds r2, r0, 0 @@ -3755,10 +2655,10 @@ _0819E78E: pop {r0} bx r0 .pool - thumb_func_end sub_819E758 + thumb_func_end Swap_UpdateYesNoCursorPosition - thumb_func_start sub_819E7C0 -sub_819E7C0: @ 819E7C0 + thumb_func_start Swap_UpdateMenuCursorPosition +Swap_UpdateMenuCursorPosition: @ 819E7C0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -3768,7 +2668,7 @@ sub_819E7C0: @ 819E7C0 lsls r4, 24 cmp r4, 0 ble _0819E7EC - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r3, [r1] adds r2, r0, 0 @@ -3781,7 +2681,7 @@ _0819E7E8: movs r0, 0 b _0819E802 _0819E7EC: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r3, [r1] adds r2, r0, 0 @@ -3818,7 +2718,7 @@ _0819E802: pop {r0} bx r0 .pool - thumb_func_end sub_819E7C0 + thumb_func_end Swap_UpdateMenuCursorPosition thumb_func_start sub_819E838 sub_819E838: @ 819E838 @@ -3836,12 +2736,12 @@ sub_819E838: @ 819E838 mov r8, r2 ldr r0, =gSprites mov r12, r0 - ldr r7, =gUnknown_03001284 + ldr r7, =sFactorySwapScreen _0819E856: cmp r6, 0x2 bne _0819E898 ldr r5, =gSprites - ldr r3, =gUnknown_03001284 + ldr r3, =sFactorySwapScreen ldr r0, [r3] adds r0, 0xB adds r0, r4 @@ -3919,7 +2819,7 @@ sub_819E8EC: @ 819E8EC push {r4-r6,lr} movs r2, 0 ldr r5, =gSprites - ldr r4, =gUnknown_03001284 + ldr r4, =sFactorySwapScreen adds r6, r5, 0 movs r3, 0x4 _0819E8F8: @@ -3961,10 +2861,10 @@ _0819E92C: .pool thumb_func_end sub_819E8EC - thumb_func_start sub_819E944 -sub_819E944: @ 819E944 + thumb_func_start Swap_ShowMenuOptions +Swap_ShowMenuOptions: @ 819E944 push {r4,r5,lr} - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r3, [r0] ldrb r1, [r3, 0x15] adds r5, r0, 0 @@ -4039,12 +2939,12 @@ _0819E960: pop {r0} bx r0 .pool - thumb_func_end sub_819E944 + thumb_func_end Swap_ShowMenuOptions thumb_func_start sub_819E9E0 sub_819E9E0: @ 819E9E0 push {r4,r5,lr} - ldr r5, =gUnknown_03001284 + ldr r5, =sFactorySwapScreen ldr r1, [r5] movs r0, 0 strb r0, [r1, 0x16] @@ -4113,7 +3013,7 @@ sub_819EA64: @ 819EA64 lsls r4, 24 lsrs r4, 24 ldr r5, =gSprites - ldr r3, =gUnknown_03001284 + ldr r3, =sFactorySwapScreen ldr r0, [r3] ldrb r1, [r0, 0x1] lsls r0, r1, 4 @@ -4220,14 +3120,14 @@ sub_819EB18: @ 819EB18 .pool thumb_func_end sub_819EB18 - thumb_func_start sub_819EB4C -sub_819EB4C: @ 819EB4C + thumb_func_start Swap_PrintMonSpecies +Swap_PrintMonSpecies: @ 819EB4C push {r4,lr} sub sp, 0xC movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r0, [r1, 0x3] cmp r0, 0x2 @@ -4290,10 +3190,10 @@ _0819EBD4: pop {r0} bx r0 .pool - thumb_func_end sub_819EB4C + thumb_func_end Swap_PrintMonSpecies - thumb_func_start sub_819EBEC -sub_819EBEC: @ 819EBEC + thumb_func_start Swap_PrintOnYesNoQuestionWindow +Swap_PrintOnYesNoQuestionWindow: @ 819EBEC push {r4,lr} sub sp, 0xC adds r4, r0, 0 @@ -4317,7 +3217,7 @@ sub_819EBEC: @ 819EBEC pop {r4} pop {r0} bx r0 - thumb_func_end sub_819EBEC + thumb_func_end Swap_PrintOnYesNoQuestionWindow thumb_func_start sub_819EC20 sub_819EC20: @ 819EC20 @@ -4446,7 +3346,7 @@ sub_819ED34: @ 819ED34 movs r0, 0x5 movs r1, 0 bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0 @@ -4477,7 +3377,7 @@ sub_819ED78: @ 819ED78 movs r0, 0x3 movs r1, 0 bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0 @@ -4513,7 +3413,7 @@ sub_819EDBC: @ 819EDBC beq _0819EDEC b _0819EDF6 _0819EDCC: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0x1 @@ -4546,7 +3446,7 @@ sub_819EE08: @ 819EE08 add r1, sp, 0xC movs r2, 0x4 bl CpuSet - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r2, [r0] ldrb r0, [r2, 0x15] cmp r0, 0 @@ -4574,7 +3474,7 @@ _0819EE42: movs r0, 0x7 movs r1, 0 bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r0, [r1, 0x3] cmp r0, 0x2 @@ -4651,7 +3551,7 @@ sub_819EEF0: @ 819EEF0 ldr r1, =gPlttBufferFaded + 0x1C0 movs r2, 0x5 bl CpuSet - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r0, [r1, 0x3] cmp r0, 0x2 @@ -4716,11 +3616,11 @@ _0819EF90: .pool thumb_func_end sub_819EEF0 - thumb_func_start sub_819EFA8 -sub_819EFA8: @ 819EFA8 + thumb_func_start Swap_PrintMonCategory +Swap_PrintMonCategory: @ 819EFA8 push {r4-r6,lr} sub sp, 0x2C - ldr r6, =gUnknown_03001284 + ldr r6, =sFactorySwapScreen ldr r0, [r6] ldrb r4, [r0, 0x3] adds r5, r4, 0 @@ -4787,14 +3687,14 @@ _0819F03A: pop {r0} bx r0 .pool - thumb_func_end sub_819EFA8 + thumb_func_end Swap_PrintMonCategory thumb_func_start sub_819F048 sub_819F048: @ 819F048 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r4, =gUnknown_03001284 + ldr r4, =sFactorySwapScreen ldr r3, [r4] ldrb r0, [r3, 0x15] cmp r0, 0x1 @@ -4835,14 +3735,14 @@ _0819F094: .pool thumb_func_end sub_819F048 - thumb_func_start sub_819F0A0 -sub_819F0A0: @ 819F0A0 + thumb_func_start Swap_RunMenuOptionFunc +Swap_RunMenuOptionFunc: @ 819F0A0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, =gUnknown_03001280 ldr r2, =gUnknown_086108AC - ldr r1, =gUnknown_03001284 + ldr r1, =sFactorySwapScreen ldr r1, [r1] ldrb r1, [r1] lsls r1, 2 @@ -4853,7 +3753,7 @@ sub_819F0A0: @ 819F0A0 pop {r0} bx r0 .pool - thumb_func_end sub_819F0A0 + thumb_func_end Swap_RunMenuOptionFunc thumb_func_start sub_819F0CC sub_819F0CC: @ 819F0CC @@ -4861,7 +3761,7 @@ sub_819F0CC: @ 819F0CC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r5, =gUnknown_03001284 + ldr r5, =sFactorySwapScreen ldr r1, [r5] ldr r0, [r1, 0x2C] adds r1, 0x30 @@ -4910,7 +3810,7 @@ sub_819F134: @ 819F134 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldr r0, [r1, 0x2C] adds r1, 0x30 @@ -4925,7 +3825,7 @@ sub_819F134: @ 819F134 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] - ldr r2, =sub_819CE40 + ldr r2, =Task_HandleSwapScreenChooseMons lsrs r1, r2, 16 strh r1, [r0, 0x14] strh r2, [r0, 0x16] @@ -4945,7 +3845,7 @@ sub_819F184: @ 819F184 lsls r0, 24 lsrs r0, 24 ldr r3, =gUnknown_03001280 - ldr r1, =gUnknown_03001284 + ldr r1, =sFactorySwapScreen ldr r2, [r1] ldrb r1, [r2, 0x3] ldr r2, [r2, 0x18] @@ -5008,7 +3908,7 @@ sub_819F20C: @ 819F20C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r5, =gUnknown_03001284 + ldr r5, =sFactorySwapScreen ldr r1, [r5] ldrb r0, [r1, 0x14] cmp r0, 0 @@ -5018,7 +3918,7 @@ sub_819F20C: @ 819F20C adds r0, r4, r6 lsls r0, 3 adds r0, r3 - ldr r2, =sub_819CD34 + ldr r2, =Task_HandleSwapScreenMenu lsrs r1, r2, 16 strh r1, [r0, 0x14] strh r2, [r0, 0x16] @@ -5129,7 +4029,7 @@ sub_819F304: @ 819F304 movs r2, 0x40 movs r3, 0x1 bl CreateSprite - ldr r6, =gUnknown_03001284 + ldr r6, =sFactorySwapScreen ldr r1, [r6] adds r1, 0x2D movs r2, 0 @@ -5300,7 +4200,7 @@ sub_819F488: @ 819F488 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r1, =gUnknown_03001284 + ldr r1, =sFactorySwapScreen ldr r0, [r1] adds r0, 0x30 ldrb r0, [r0] @@ -5332,8 +4232,8 @@ _0819F4C8: .4byte _0819F568 _0819F4DC: ldr r0, =gText_SamePkmnInPartyAlready - bl sub_819EBEC - ldr r0, =gUnknown_03001284 + bl Swap_PrintOnYesNoQuestionWindow + ldr r0, =sFactorySwapScreen ldr r0, [r0] adds r0, 0x20 movs r1, 0 @@ -5354,7 +4254,7 @@ _0819F4F8: _0819F50C: movs r0, 0x5 bl PlaySE - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldr r0, [r1, 0x2C] adds r1, 0x30 @@ -5377,7 +4277,7 @@ _0819F52C: b _0819F54E _0819F548: ldr r0, =gText_SelectPkmnToAccept - bl sub_819EBEC + bl Swap_PrintOnYesNoQuestionWindow _0819F54E: ldr r0, =gTasks adds r1, r5, r4 @@ -5391,7 +4291,7 @@ _0819F54E: _0819F568: bl sub_819EEF0 bl sub_819EADC - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] adds r0, 0x22 movs r1, 0x1 @@ -5402,7 +4302,7 @@ _0819F568: adds r0, r1 ldrh r1, [r0, 0x12] strh r1, [r0, 0x8] - ldr r1, =sub_819CE40 + ldr r1, =Task_HandleSwapScreenChooseMons str r1, [r0] _0819F58A: pop {r4,r5} @@ -5427,7 +4327,7 @@ sub_819F59C: @ 819F59C lsrs r5, r0, 16 movs r4, 0 _0819F5B8: - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] ldrb r0, [r0, 0x12] cmp r4, r0 @@ -5516,7 +4416,7 @@ sub_819F654: @ 819F654 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0819F688 - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r0, [r0] adds r0, 0x30 movs r1, 0 @@ -5816,7 +4716,7 @@ _0819F8D8: sub_819F8E0: @ 819F8E0 push {r4-r6,lr} sub sp, 0x10 - ldr r0, =gUnknown_03001284 + ldr r0, =sFactorySwapScreen ldr r1, [r0] ldrb r0, [r1, 0x14] cmp r0, 0 @@ -5863,7 +4763,7 @@ _0819F908: adds r2, r5, 0 movs r3, 0x1 bl CreateMonPicSprite_HandleDeoxys - ldr r2, =gUnknown_03001284 + ldr r2, =sFactorySwapScreen ldr r1, [r2] adds r1, 0x2C movs r3, 0 diff --git a/src/battle_factory.c b/src/battle_factory.c index f7568055c7..1609658f39 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -74,6 +74,53 @@ struct FactorySelectMonsStruct u8 unk2A9; }; +struct FactorySwapMonsStruct +{ + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + u8 unkF; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; + u8 unk14; + bool8 fromSummaryScreen; + u8 yesNoCursorPos; + u8 unk17; + u8 unk18; + u8 unk19; + u8 unk1A; + u8 unk1B; + u8 unk1C; + u8 unk1D; + u8 unk1E; + u8 unk1F; + u8 unk20; + u8 unk21; + u8 unk22; + u8 unk23; + u16 unk24; + bool8 unk26; + u8 unk27; + u8 unk28; + u8 unk29; + struct UnkFactoryStruct unk2C; + u8 unk30; +}; + extern u8 (*gUnknown_030062E8)(void); extern u8 gUnknown_0203CF20; @@ -121,6 +168,25 @@ static u8 Select_OptionRentDeselect(void); u8 sub_81A6F70(u8 battleMode, u8 lvlMode); u8 sub_81A6CA8(u8 arg0, u8 arg1); static bool32 Select_AreSpeciesValid(u16 monSetId); +void sub_819E538(void); +void sub_819DC1C(void); +void sub_819E9E0(void); +void sub_819EE08(void); +void sub_819EAC0(void); +void Swap_UpdateYesNoCursorPosition(s8 direction); +void Swap_UpdateMenuCursorPosition(s8 direction); +void sub_819EA64(u8 windowId); +void sub_819D770(u8 taskId); +void Task_HandleSwapScreenChooseMons(u8 taskId); +void sub_819D588(u8 taskId); +void Swap_PrintOnYesNoQuestionWindow(const u8 *str); +void Swap_ShowMenuOptions(void); +void Swap_PrintMonSpecies(void); +void Swap_PrintMonCategory(void); +void Swap_UpdateActionCursorPosition(s8 direction); +void Swap_UpdateBallCursorPosition(s8 direction); +void Swap_RunMenuOptionFunc(u8 taskId); +void sub_819F184(u8 taskId); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -128,9 +194,15 @@ EWRAM_DATA u8 *gUnknown_0203CE30 = NULL; EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; +extern u8 *gUnknown_0203CE40; +extern u8 *gUnknown_0203CE44; +extern u8 *gUnknown_0203CE48; +extern u8 *gUnknown_0203CE4C; // IWRAM bss -static IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; +IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; +IWRAM_DATA u8 (*gUnknown_03001280)(void); +IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen; // Const rom data. const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal"); @@ -210,6 +282,8 @@ extern const u8 gText_Rent[]; extern const u8 gText_Others2[]; extern const u8 gText_Yes2[]; extern const u8 gText_No2[]; +extern const u8 gText_QuitSwapping[]; +extern const u8 gText_AcceptThisPkmn[]; // code void sub_819A44C(struct Sprite *sprite) @@ -1411,3 +1485,424 @@ static void Task_SelectBlendPalette(u8 taskId) break; } } + +void sub_819C7E0(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +void sub_819C7FC(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_819C810(void) +{ + u8 happiness; + + gPlayerParty[sFactorySwapScreen->unk12] = gEnemyParty[sFactorySwapScreen->unk13]; + happiness = 0; + SetMonData(&gPlayerParty[sFactorySwapScreen->unk12], MON_DATA_FRIENDSHIP, &happiness); + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].monId = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk13 + 3].monId; + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].ivs = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk13 + 3].ivs; + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->unk13], MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->unk13].box, MON_DATA_ALT_ABILITY, NULL); +} + +void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen +{ + switch (gTasks[taskId].data[0]) + { + case 6: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0] = 7; + break; + case 7: + if (!gPaletteFade.active) + { + DestroyTask(sFactorySwapScreen->unk21); + sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); + sub_819E538(); + FREE_AND_SET_NULL(gUnknown_0203CE40); + FREE_AND_SET_NULL(gUnknown_0203CE44); + FREE_AND_SET_NULL(gUnknown_0203CE48); + FREE_AND_SET_NULL(gUnknown_0203CE4C); + FreeAllWindowBuffers(); + gTasks[taskId].data[0] = 8; + } + break; + case 8: + DestroyTask(taskId); + sFactorySwapScreen->fromSummaryScreen = TRUE; + sFactorySwapScreen->unk24 = gPlttBufferUnfaded[244]; + ShowPokemonSummaryScreen(0, gPlayerParty, sFactorySwapScreen->unk3, 3 - 1, sub_819DC1C); + break; + } +} + +void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen +{ + if (sFactorySwapScreen->unk30 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 0: + if (sFactorySwapScreen->unk20 == 1) + { + gTasks[taskId].data[0]++; + gSpecialVar_Result = 0; + } + else + { + gTasks[taskId].data[0] = 2; + gSpecialVar_Result = 1; + } + break; + case 1: + if (sFactorySwapScreen->unk20 == 1) + { + sFactorySwapScreen->unk13 = sFactorySwapScreen->unk3; + sub_819C810(); + } + gTasks[taskId].data[0]++; + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0]++; + break; + case 3: + if (!UpdatePaletteFade()) + { + DestroyTask(sFactorySwapScreen->unk21); + sub_819E538(); + FREE_AND_SET_NULL(gUnknown_0203CE40); + FREE_AND_SET_NULL(gUnknown_0203CE44); + FREE_AND_SET_NULL(gUnknown_0203CE48); + FREE_AND_SET_NULL(gUnknown_0203CE4C); + FREE_AND_SET_NULL(sFactorySwapScreen); + FreeAllWindowBuffers(); + SetMainCallback2(CB2_ReturnToFieldContinueScript); + DestroyTask(taskId); + } + break; + } + } +} + +void Task_HandleSwapScreenYesNo(u8 taskId) +{ + u16 loPtr, hiPtr; + + if (sFactorySwapScreen->unk30 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 4: + sub_819E9E0(); + gTasks[taskId].data[0] = 5; + break; + case 5: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (sFactorySwapScreen->yesNoCursorPos == 0) + { + gTasks[taskId].data[1] = 1; + hiPtr = gTasks[taskId].data[6]; + loPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); + } + else + { + gTasks[taskId].data[1] = 0; + sub_819EA64(4); + hiPtr = gTasks[taskId].data[6]; + loPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = 0; + sub_819EA64(4); + hiPtr = gTasks[taskId].data[6]; + loPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + Swap_UpdateYesNoCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + Swap_UpdateYesNoCursorPosition(1); + } + break; + } + } +} + +void sub_819CBDC(u8 taskId) +{ + if (gTasks[taskId].data[1] == 1) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819CA08; + } + else + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; + } +} + +void sub_819CC24(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0) + { + Swap_PrintOnYesNoQuestionWindow(gText_QuitSwapping); + sFactorySwapScreen->unk20 = 0; + gTasks[taskId].data[0] = 4; + gTasks[taskId].data[6] = (u32)(sub_819CBDC) >> 16; + gTasks[taskId].data[7] = (u32)(sub_819CBDC); + gTasks[taskId].func = Task_HandleSwapScreenYesNo; + } +} + +void sub_819CC74(u8 taskId) +{ + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, 1); + if (gTasks[taskId].data[1] == 1) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819CA08; + } + else + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; + } +} + +void sub_819CCD4(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0) + { + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); + Swap_PrintOnYesNoQuestionWindow(gText_AcceptThisPkmn); + sFactorySwapScreen->unk20 = 1; + gTasks[taskId].data[0] = 4; + gTasks[taskId].data[6] = (u32)(sub_819CC74) >> 16; + gTasks[taskId].data[7] = (u32)(sub_819CC74); + gTasks[taskId].func = Task_HandleSwapScreenYesNo; + } +} + +void Task_HandleSwapScreenMenu(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 2: + if (!sFactorySwapScreen->fromSummaryScreen) + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); + gTasks[taskId].data[0] = 9; + break; + case 9: + if (sFactorySwapScreen->unk30 != 1) + { + Swap_ShowMenuOptions(); + gTasks[taskId].data[0] = 3; + } + break; + case 3: + if (sFactorySwapScreen->unk30 != 1) + { + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + Swap_RunMenuOptionFunc(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, 1); + sub_819EA64(3); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + Swap_UpdateMenuCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + Swap_UpdateMenuCursorPosition(1); + } + } + break; + } +} + +void Task_HandleSwapScreenChooseMons(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (!gPaletteFade.active) + { + sFactorySwapScreen->unk22 = 1; + gTasks[taskId].data[0] = 1; + } + break; + case 1: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sFactorySwapScreen->unk22 = 0; + sub_819EE08(); + sub_819EAC0(); + sub_819F184(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sFactorySwapScreen->unk22 = 0; + sub_819EE08(); + sub_819EAC0(); + gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 16; + gTasks[taskId].data[7] = (u32)(sub_819CC24); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[5] = 0; + gTasks[taskId].func = sub_819D588; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + Swap_UpdateBallCursorPosition(-1); + Swap_PrintMonCategory(); + Swap_PrintMonSpecies(); + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + Swap_UpdateBallCursorPosition(1); + Swap_PrintMonCategory(); + Swap_PrintMonSpecies(); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + Swap_UpdateActionCursorPosition(1); + Swap_PrintMonCategory(); + Swap_PrintMonSpecies(); + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + Swap_UpdateActionCursorPosition(-1); + Swap_PrintMonCategory(); + Swap_PrintMonSpecies(); + } + break; + } +} + +void sub_819CF54(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + sFactorySwapScreen->unk27 = 0; + sFactorySwapScreen->unk28 = 0; + sFactorySwapScreen->unk26 = TRUE; + gTasks[taskId].data[0] = 1; + break; + case 1: + if (sFactorySwapScreen->unk22) + { + if (sFactorySwapScreen->unk29) + { + gTasks[taskId].data[0] = 2; + } + else + { + sFactorySwapScreen->unk27++; + if (sFactorySwapScreen->unk27 > 6) + { + sFactorySwapScreen->unk27 = 0; + if (!sFactorySwapScreen->unk26) + sFactorySwapScreen->unk28--; + else + sFactorySwapScreen->unk28++; + } + BlendPalettes(0x4000, sFactorySwapScreen->unk28, 0); + if (sFactorySwapScreen->unk28 > 5) + { + sFactorySwapScreen->unk26 = FALSE; + } + else if (sFactorySwapScreen->unk28 == 0) + { + gTasks[taskId].data[0] = 2; + sFactorySwapScreen->unk26 = TRUE; + } + } + } + break; + case 2: + if (sFactorySwapScreen->unk29 > 14) + { + sFactorySwapScreen->unk29 = 0; + gTasks[taskId].data[0] = 1; + } + else + { + sFactorySwapScreen->unk29++; + } + break; + } +} + +void sub_819D064(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + sFactorySwapScreen->unk27 = 0; + gTasks[taskId].data[4] = 0; + gTasks[taskId].data[0]++; + break; + case 1: + LoadPalette(&gPlttBufferUnfaded[0xF0], 0xE0, 0xA); + gTasks[taskId].data[0]++; + break; + case 2: + if (sFactorySwapScreen->unk28 > 15) + { + gTasks[taskId].data[4] = 1; + gTasks[taskId].data[0]++; + } + sFactorySwapScreen->unk27++; + if (sFactorySwapScreen->unk27 > 3) + { + sFactorySwapScreen->unk27 = 0; + gPlttBufferUnfaded[244] = gPlttBufferFaded[228]; + sFactorySwapScreen->unk28++; + } + BlendPalettes(0x4000, sFactorySwapScreen->unk28, 0); + break; + } +} diff --git a/sym_bss.txt b/sym_bss.txt index 9294c51778..5f055e8e4b 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -80,12 +80,6 @@ gUnknown_03001279: @ 3001279 .include "src/battle_factory.o" -gUnknown_03001280: @ 3001280 - .space 0x4 - -gUnknown_03001284: @ 3001284 - .space 0x4 - gUnknown_03001288: @ 3001288 .space 0x4 From 1616c254d21b216ecf652461a0cb0b7772450651 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 8 Sep 2018 22:33:07 +0200 Subject: [PATCH 06/28] Swap_InitAllSprites done --- asm/battle_frontier_2.s | 2375 +-------------------------------------- src/battle_factory.c | 805 ++++++++++++- 2 files changed, 788 insertions(+), 2392 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 489eb2d15b..ffbd7c58d6 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -6,2327 +6,6 @@ .text - - - thumb_func_start sub_819D12C -sub_819D12C: @ 819D12C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldr r1, =gTasks - lsls r0, 2 - ldr r2, [sp] - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r2, 0x8 - ldrsh r3, [r4, r2] - cmp r3, 0 - beq _0819D15C - cmp r3, 0x1 - beq _0819D168 - b _0819D310 - .pool -_0819D15C: - strh r3, [r4, 0xA] - strh r3, [r4, 0xC] - strh r3, [r4, 0xE] - movs r0, 0x1 - strh r0, [r4, 0x8] - b _0819D310 -_0819D168: - movs r3, 0 - str r3, [sp, 0x4] - movs r1, 0x2 - str r0, [sp, 0x8] - ldr r0, =gTasks - str r0, [sp, 0xC] -_0819D174: - lsls r0, r1, 24 - asrs r4, r0, 24 - mov r9, r0 - cmp r4, 0x2 - beq _0819D1F2 - ldr r2, =gSprites - ldr r3, =sFactorySwapScreen - ldr r0, [r3] - adds r0, 0x5 - mov r8, r0 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r0, r2 - ldrh r1, [r6, 0x20] - mov r12, r1 - mov r7, r12 - ldr r1, [sp, 0x4] - subs r0, r1, r7 - lsls r0, 24 - lsrs r5, r0, 24 - mov r10, r2 - cmp r5, 0x10 - beq _0819D1BE - adds r0, r4, 0x2 - lsls r0, 1 - ldr r2, [sp, 0x8] - adds r0, r2 - ldr r1, =gTasks - adds r1, 0x8 - adds r0, r1 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _0819D1D8 -_0819D1BE: - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - mov r0, r12 - adds r0, 0xA - strh r0, [r6, 0x20] - b _0819D210 - .pool -_0819D1D8: - cmp r5, 0x10 - bls _0819D210 - adds r0, r4, 0x1 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrh r0, [r0, 0x20] - subs r0, 0x30 - strh r0, [r6, 0x20] - b _0819D210 -_0819D1F2: - ldr r3, =gSprites - ldr r4, =sFactorySwapScreen - ldr r0, [r4] - ldrb r1, [r0, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r2, [r0, 0x20] - lsls r1, r2, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - adds r2, 0xA - strh r2, [r0, 0x20] - mov r10, r3 -_0819D210: - mov r0, r9 - asrs r2, r0, 24 - adds r0, r2, 0x1 - lsls r0, 1 - ldr r1, [sp, 0x8] - adds r0, r1 - ldr r1, =gTasks - adds r1, 0x8 - adds r0, r1 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _0819D26A - ldr r1, =sFactorySwapScreen - ldr r0, [r1] - adds r0, 0x5 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r3, r10 - adds r1, r0, r3 - movs r0, 0x20 - ldrsh r3, [r1, r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 4 - adds r0, 0x48 - cmp r3, r0 - ble _0819D260 - strh r0, [r1, 0x20] - movs r7, 0x1 - b _0819D26C - .pool -_0819D260: - movs r7, 0 - cmp r3, r0 - bne _0819D26C - movs r7, 0x1 - b _0819D26C -_0819D26A: - movs r7, 0 -_0819D26C: - mov r6, r10 - ldr r5, =sFactorySwapScreen - ldr r2, [r5] - mov r1, r9 - asrs r4, r1, 24 - adds r0, r2, 0x5 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - movs r3, 0x20 - ldrsh r0, [r1, r3] - subs r0, 0x10 - cmp r0, 0xF0 - ble _0819D2F8 - ldrh r0, [r1, 0x20] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, =0x0000fff0 - strh r0, [r1, 0x20] - ldrb r0, [r2, 0x14] - cmp r0, 0x1 - bne _0819D2C0 - movs r0, 0x65 - bl IndexOfSpritePaletteTag - ldr r1, [r5] - adds r1, 0x5 - adds r1, r4 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r6 - b _0819D2D8 - .pool -_0819D2C0: - movs r0, 0x64 - bl IndexOfSpritePaletteTag - ldr r2, =sFactorySwapScreen - ldr r1, [r2] - adds r1, 0x5 - adds r1, r4 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r10 -_0819D2D8: - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - mov r3, r9 - asrs r0, r3, 23 - adds r0, 0x2 - ldr r1, [sp, 0x8] - adds r0, r1 - ldr r2, [sp, 0xC] - adds r2, 0x8 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0] -_0819D2F8: - movs r0, 0xFF - lsls r0, 24 - add r0, r9 - lsrs r1, r0, 24 - cmp r0, 0 - blt _0819D306 - b _0819D174 -_0819D306: - cmp r7, 0x1 - bne _0819D310 - ldr r0, [sp] - bl DestroyTask -_0819D310: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D12C - - thumb_func_start sub_819D324 -sub_819D324: @ 819D324 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r8, r0 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - ldrb r4, [r2, 0xE] - movs r0, 0xC - ldrsh r5, [r2, r0] - mov r10, r1 - cmp r5, 0x1 - bne _0819D352 - lsls r0, r4, 24 - negs r0, r0 - lsrs r4, r0, 24 -_0819D352: - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0819D368 - cmp r0, 0x1 - bne _0819D360 - b _0819D480 -_0819D360: - b _0819D570 - .pool -_0819D368: - ldr r3, =gSprites - ldr r2, =sFactorySwapScreen - ldr r0, [r2] - ldrb r1, [r0, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - cmp r5, 0 - bne _0819D39C - lsls r0, 16 - asrs r0, 16 - lsls r2, r4, 24 - asrs r1, r2, 24 - adds r0, r1 - movs r1, 0x1 - cmp r0, 0xEF - ble _0819D3B2 - movs r1, 0 - movs r0, 0xF0 - b _0819D3B0 - .pool -_0819D39C: - lsls r0, 16 - asrs r0, 16 - lsls r2, r4, 24 - asrs r1, r2, 24 - adds r0, r1 - movs r1, 0x1 - cmp r0, 0xA0 - bgt _0819D3B2 - movs r1, 0 - movs r0, 0xA0 -_0819D3B0: - mov r8, r0 -_0819D3B2: - cmp r1, 0x1 - bne _0819D3FC - movs r3, 0 - ldr r7, =gSprites - ldr r6, =sFactorySwapScreen - asrs r5, r2, 24 -_0819D3BE: - movs r4, 0 - adds r2, r3, 0x1 -_0819D3C2: - ldr r1, [r6] - lsls r0, r4, 1 - adds r0, r4 - adds r0, r3, r0 - adds r1, 0x8 - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, r5 - strh r1, [r0, 0x20] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819D3C2 - lsls r0, r2, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _0819D3BE - b _0819D570 - .pool -_0819D3FC: - movs r4, 0 - lsls r1, r7, 2 - mov r12, r1 - mov r6, r8 - adds r6, 0x10 - movs r0, 0x30 - add r0, r8 - mov r9, r0 - ldr r5, =gSprites -_0819D40E: - ldr r1, =sFactorySwapScreen - ldr r2, [r1] - lsls r3, r4, 1 - adds r3, r4 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x20] - adds r0, r2, 0 - adds r0, 0x9 - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x20] - adds r2, 0xA - adds r2, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r9 - strh r1, [r0, 0x20] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819D40E - mov r1, r12 - adds r0, r1, r7 - lsls r0, 3 - add r0, r10 - ldrb r1, [r0, 0xA] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - add r0, r10 - movs r1, 0x1 - strh r1, [r0, 0xE] - adds r0, r7, 0 - bl DestroyTask - b _0819D570 - .pool -_0819D480: - ldr r2, =gSprites - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r1, [r0, 0xE] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x20] - cmp r5, 0 - bne _0819D4B4 - lsls r0, 16 - asrs r0, 16 - lsls r2, r4, 24 - asrs r1, r2, 24 - adds r0, r1 - movs r1, 0x1 - cmp r0, 0xEF - ble _0819D4CA - movs r1, 0 - movs r0, 0xF0 - b _0819D4C8 - .pool -_0819D4B4: - lsls r0, 16 - asrs r0, 16 - lsls r2, r4, 24 - asrs r1, r2, 24 - adds r0, r1 - movs r1, 0x1 - cmp r0, 0xC0 - bgt _0819D4CA - movs r1, 0 - movs r0, 0xC0 -_0819D4C8: - mov r8, r0 -_0819D4CA: - cmp r1, 0x1 - bne _0819D510 - movs r3, 0 - ldr r7, =gSprites - ldr r6, =sFactorySwapScreen - asrs r5, r2, 24 -_0819D4D6: - movs r4, 0 - adds r2, r3, 0x1 -_0819D4DA: - ldr r0, [r6] - lsls r1, r4, 1 - adds r1, r3, r1 - adds r0, 0xE - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, r5 - strh r1, [r0, 0x20] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819D4DA - lsls r0, r2, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _0819D4D6 - b _0819D570 - .pool -_0819D510: - movs r4, 0 - lsls r1, r7, 2 - mov r12, r1 - mov r6, r8 - adds r6, 0x10 - ldr r5, =gSprites - ldr r0, =sFactorySwapScreen - mov r9, r0 -_0819D520: - mov r1, r9 - ldr r2, [r1] - lsls r3, r4, 1 - adds r0, r2, 0 - adds r0, 0xE - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x20] - adds r2, 0xF - adds r2, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x20] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819D520 - mov r1, r12 - adds r0, r1, r7 - lsls r0, 3 - add r0, r10 - ldrb r1, [r0, 0xA] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - add r0, r10 - movs r1, 0x1 - strh r1, [r0, 0x10] - adds r0, r7, 0 - bl DestroyTask -_0819D570: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D324 - - thumb_func_start sub_819D588 -sub_819D588: @ 819D588 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, 0x5 - bls _0819D5AA - b _0819D762 -_0819D5AA: - lsls r0, 2 - ldr r1, =_0819D5BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819D5BC: - .4byte _0819D5D4 - .4byte _0819D5F0 - .4byte _0819D60C - .4byte _0819D63C - .4byte _0819D6F0 - .4byte _0819D73A -_0819D5D4: - ldr r0, =gUnknown_08610918 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette - bl sub_819ED34 - movs r0, 0x5 - bl PutWindowTilemap - b _0819D622 - .pool -_0819D5F0: - movs r0, 0x3 - bl sub_819EA64 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0819D762 - .pool -_0819D60C: - movs r0, 0x80 - lsls r0, 7 - ldr r1, =gUnknown_0860F13C - adds r1, 0x4A - ldrh r1, [r1] - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0819D622: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _0819D762 - .pool -_0819D63C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0819D64E - b _0819D762 -_0819D64E: - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0x1 - bne _0819D6B0 - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r1 - strh r6, [r2, 0xE] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xA] - strh r6, [r0, 0x8] - strh r6, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - movs r0, 0x5 - strh r0, [r2, 0xC] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _0819D762 - .pool -_0819D6B0: - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, =gTasks - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r3 - movs r1, 0x1 - strh r1, [r2, 0xE] - strh r6, [r2, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - strh r5, [r0, 0xA] - strh r1, [r0, 0x8] - strh r6, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - ldrh r0, [r2, 0x8] - adds r0, 0x2 - strh r0, [r2, 0x8] - b _0819D762 - .pool -_0819D6F0: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - mov r1, r8 - adds r6, r0, r1 - ldrh r0, [r6, 0xC] - movs r2, 0xC - ldrsh r7, [r6, r2] - cmp r7, 0 - bne _0819D734 - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - strh r7, [r6, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - strh r5, [r0, 0xA] - movs r1, 0x1 - strh r1, [r0, 0x8] - strh r7, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _0819D762 - .pool -_0819D734: - subs r0, 0x1 - strh r0, [r6, 0xC] - b _0819D762 -_0819D73A: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - mov r1, r8 - adds r2, r0, r1 - movs r1, 0xE - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0819D762 - movs r1, 0x10 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0819D762 - ldrh r0, [r2, 0x12] - strh r0, [r2, 0x8] - ldrh r0, [r2, 0x14] - ldrh r1, [r2, 0x16] - lsls r0, 16 - orrs r0, r1 - str r0, [r2] -_0819D762: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819D588 - - thumb_func_start sub_819D770 -sub_819D770: @ 819D770 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =sFactorySwapScreen - ldr r0, [r1] - adds r0, 0x30 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x1 - bne _0819D78C - b _0819D9D8 -_0819D78C: - ldr r0, =gTasks - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r4, 0x8 - ldrsh r1, [r1, r4] - mov r8, r0 - adds r5, r2, 0 - cmp r1, 0x8 - bls _0819D7A4 - b _0819D9D8 -_0819D7A4: - lsls r0, r1, 2 - ldr r1, =_0819D7BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819D7BC: - .4byte _0819D7E0 - .4byte _0819D868 - .4byte _0819D8AE - .4byte _0819D8F4 - .4byte _0819D910 - .4byte _0819D928 - .4byte _0819D936 - .4byte _0819D948 - .4byte _0819D9B0 -_0819D7E0: - ldr r0, [r3] - ldrb r7, [r0, 0x14] - cmp r7, 0x1 - bne _0819D828 - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, =gTasks - adds r2, r5, r6 - lsls r2, 3 - adds r2, r3 - movs r1, 0 - strh r1, [r2, 0xE] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - strh r6, [r0, 0xA] - strh r1, [r0, 0x8] - strh r7, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - movs r0, 0xA - strh r0, [r2, 0xC] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _0819D9D8 - .pool -_0819D828: - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, =gTasks - adds r2, r5, r6 - lsls r2, 3 - adds r2, r3 - movs r0, 0 - movs r1, 0x1 - strh r1, [r2, 0xE] - strh r0, [r2, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - strh r6, [r0, 0xA] - strh r1, [r0, 0x8] - strh r1, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - ldrh r0, [r2, 0x8] - adds r0, 0x2 - strh r0, [r2, 0x8] - b _0819D9D8 - .pool -_0819D868: - adds r0, r5, r6 - lsls r0, 3 - mov r1, r8 - adds r5, r0, r1 - ldrh r0, [r5, 0xC] - movs r2, 0xC - ldrsh r7, [r5, r2] - cmp r7, 0 - bne _0819D8A8 - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - strh r7, [r5, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - strh r6, [r0, 0xA] - movs r1, 0x1 - strh r1, [r0, 0x8] - strh r1, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _0819D9D8 - .pool -_0819D8A8: - subs r0, 0x1 - strh r0, [r5, 0xC] - b _0819D9D8 -_0819D8AE: - adds r0, r5, r6 - lsls r0, 3 - mov r1, r8 - adds r4, r0, r1 - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0x1 - beq _0819D8C0 - b _0819D9D8 -_0819D8C0: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0819D8CA - b _0819D9D8 -_0819D8CA: - ldr r1, =gPlttBufferFaded - ldr r0, =gUnknown_0860F13C - adds r0, 0x4A - ldrh r0, [r0] - movs r2, 0xE2 - lsls r2, 1 - adds r1, r2 - strh r0, [r1] - bl sub_819ED34 - movs r0, 0x5 - bl PutWindowTilemap - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0819D9D8 - .pool -_0819D8F4: - movs r0, 0x80 - lsls r0, 7 - ldr r1, =gUnknown_0860F13C - adds r1, 0x4A - ldrh r1, [r1] - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _0819D990 - .pool -_0819D910: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0819D9D8 - movs r0, 0 - bl sub_819EDBC - b _0819D990 - .pool -_0819D928: - movs r0, 0x1 - bl sub_819EDBC - movs r0, 0x3 - bl PutWindowTilemap - b _0819D990 -_0819D936: - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - b _0819D990 -_0819D948: - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _0819D964 - ldr r0, =gText_SelectPkmnToSwap - bl Swap_PrintOnYesNoQuestionWindow - b _0819D96A - .pool -_0819D964: - ldr r0, =gText_SelectPkmnToAccept - bl Swap_PrintOnYesNoQuestionWindow -_0819D96A: - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r0, [r1, 0x3] - cmp r0, 0x2 - bhi _0819D98C - ldr r2, =gSprites - ldrb r1, [r1, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_0819D98C: - bl Swap_PrintMonCategory -_0819D990: - ldr r0, =gTasks - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0819D9D8 - .pool -_0819D9B0: - bl sub_819EEF0 - bl sub_819EADC - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - adds r0, 0x22 - movs r1, 0x1 - strb r1, [r0] - ldr r1, =gTasks - adds r0, r5, r6 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x12] - strh r1, [r0, 0x8] - ldrh r1, [r0, 0x14] - ldrh r2, [r0, 0x16] - lsls r1, 16 - orrs r1, r2 - str r1, [r0] -_0819D9D8: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D770 - - thumb_func_start sub_819D9EC -sub_819D9EC: @ 819D9EC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0819DA00 - b _0819DBCA -_0819DA00: - ldr r0, =gTasks - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r1, [r1, r3] - adds r3, r0, 0 - adds r7, r2, 0 - cmp r1, 0x4 - bls _0819DA18 - b _0819DBCA -_0819DA18: - lsls r0, r1, 2 - ldr r1, =_0819DA30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819DA30: - .4byte _0819DA44 - .4byte _0819DA58 - .4byte _0819DA8C - .4byte _0819DABC - .4byte _0819DBB0 -_0819DA44: - bl sub_819EEF0 - ldr r0, =gTasks - adds r1, r7, r6 - lsls r1, 3 - adds r1, r0 - b _0819DB96 - .pool -_0819DA58: - bl sub_819EADC - ldr r2, =gSprites - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, =gTasks - adds r1, r7, r6 - lsls r1, 3 - adds r1, r0 - b _0819DB96 - .pool -_0819DA8C: - ldr r0, =sub_819D12C - movs r1, 0 - bl CreateTask - ldr r2, =gTasks - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_819D064 - str r1, [r0] - b _0819DB90 - .pool -_0819DABC: - ldr r0, =sub_819D12C - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _0819DACA - b _0819DBCA -_0819DACA: - ldr r2, =gTasks - ldr r4, =sFactorySwapScreen - ldr r0, [r4] - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x10 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _0819DBCA - bl sub_819EAC0 - ldr r0, [r4] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _0819DB04 - movs r0, 0x1 - bl sub_819F048 - b _0819DB32 - .pool -_0819DB04: - movs r0, 0 - bl sub_819F048 - movs r2, 0 - ldr r5, =gSprites - movs r3, 0x4 -_0819DB10: - ldr r0, [r4] - adds r0, 0xB - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _0819DB10 -_0819DB32: - ldr r5, =gSprites - ldr r4, =sFactorySwapScreen - ldr r3, [r4] - ldrb r0, [r3, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r0, r3, 0x5 - ldrb r2, [r3, 0x3] - adds r0, r2 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x20] - movs r5, 0 - strh r0, [r1, 0x20] - ldr r2, =gTasks - adds r0, r3, 0 - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_819CF54 - str r1, [r0] - adds r3, 0x27 - strb r5, [r3] - ldr r0, [r4] - adds r0, 0x28 - movs r1, 0x6 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x26 - strb r5, [r0] - ldr r0, [r4] - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x8] -_0819DB90: - adds r1, r7, r6 - lsls r1, 3 - adds r1, r2 -_0819DB96: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0819DBCA - .pool -_0819DBB0: - adds r0, r7, r6 - lsls r0, 3 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r2, =Task_HandleSwapScreenChooseMons - lsrs r1, r2, 16 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x12] - ldr r1, =sub_819D770 - str r1, [r0] -_0819DBCA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D9EC - - thumb_func_start sub_819DBD8 -sub_819DBD8: @ 819DBD8 - push {r4,r5,lr} - ldr r5, =sFactorySwapScreen - ldr r4, [r5] - cmp r4, 0 - bne _0819DBF6 - movs r0, 0x34 - bl AllocZeroed - str r0, [r5] - strb r4, [r0, 0x3] - ldr r0, [r5] - adds r0, 0x30 - strb r4, [r0] - ldr r0, [r5] - strb r4, [r0, 0x15] -_0819DBF6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819DBD8 - - thumb_func_start sub_819DC00 -sub_819DC00: @ 819DC00 - push {lr} - ldr r0, =sFactorySwapScreen - movs r1, 0 - str r1, [r0] - ldr r0, =sub_819DC1C - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_819DC00 - - thumb_func_start sub_819DC1C -sub_819DC1C: @ 819DC1C - push {r4-r6,lr} - sub sp, 0xC - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0xF - bls _0819DC32 - b _0819E0AA -_0819DC32: - lsls r0, 2 - ldr r1, =_0819DC44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819DC44: - .4byte _0819DC84 - .4byte _0819DCD4 - .4byte _0819DDA8 - .4byte _0819DE68 - .4byte _0819DE94 - .4byte _0819DECC - .4byte _0819DEEC - .4byte _0819DF10 - .4byte _0819DF30 - .4byte _0819DF3C - .4byte _0819DF64 - .4byte _0819DF70 - .4byte _0819DF78 - .4byte _0819DF8C - .4byte _0819DFA4 - .4byte _0819E01C -_0819DC84: - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - add r0, sp, 0x8 - bl CpuSet - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_086108B8 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r0, =gUnknown_086108C8 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DCD4: - ldr r5, =gUnknown_0203CE40 - movs r4, 0x88 - lsls r4, 3 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - ldr r5, =gUnknown_0203CE44 - adds r0, r4, 0 - bl AllocZeroed - str r0, [r5] - ldr r5, =gUnknown_0203CE48 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - ldr r5, =gUnknown_0203CE4C - adds r0, r4, 0 - bl AllocZeroed - str r0, [r5] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - b _0819E006 - .pool -_0819DDA8: - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl ResetAllPicSprites - ldr r0, =gFrontierFactorySelectMenu_Gfx - ldr r5, =gUnknown_0203CE40 - ldr r1, [r5] - movs r2, 0x88 - lsls r2, 2 - bl CpuSet - ldr r0, =gUnknown_0861033C - ldr r4, =gUnknown_0203CE44 - ldr r1, [r4] - movs r2, 0x30 - bl CpuSet - ldr r1, [r5] - movs r2, 0x88 - lsls r2, 3 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - ldr r1, [r4] - movs r0, 0x3 - movs r2, 0x60 - movs r3, 0 - bl LoadBgTiles - ldr r0, =gFrontierFactorySelectMenu_Tilemap - ldr r4, =gUnknown_0203CE48 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 4 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTilemap - ldr r0, =gFrontierFactorySelectMenu_Pal - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - ldr r4, =gUnknown_08610918 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette - ldr r0, =gUnknown_0861039C - movs r1, 0x20 - movs r2, 0x4 - bl LoadPalette - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DE68: - ldr r0, =gUnknown_0203CE4C - ldr r1, [r0] - movs r0, 0x3 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_0861023C - movs r0, 0x8 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x3 - movs r2, 0xB - movs r3, 0x4 - bl CopyToBgTilemapBufferRect - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _0819E006 - .pool -_0819DE94: - ldr r0, =gUnknown_086106B0 - bl LoadSpritePalettes - ldr r0, =gUnknown_08610650 - bl LoadSpriteSheets - ldr r0, =gUnknown_086106A0 - bl LoadCompressedObjectPic - ldr r0, =sub_819C7FC - bl SetVBlankCallback - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DECC: - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r0, [r1, 0x15] - cmp r0, 0x1 - bne _0819DEDC - ldr r0, =gUnknown_0203CF20 - ldrb r0, [r0] - strb r0, [r1, 0x3] -_0819DEDC: - movs r0, 0x87 - lsls r0, 3 - adds r1, r2, r0 - b _0819E00E - .pool -_0819DEEC: - bl sub_819DBD8 - bl sub_819E0C0 - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x15] - cmp r0, 0x1 - bne _0819DF02 - bl sub_819F304 -_0819DF02: - movs r0, 0 - bl sub_819F048 - b _0819E006 - .pool -_0819DF10: - ldr r0, =gText_SelectPkmnToSwap - bl Swap_PrintOnYesNoQuestionWindow - movs r0, 0x2 - bl PutWindowTilemap - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DF30: - bl Swap_PrintMonCategory - movs r0, 0x8 - bl PutWindowTilemap - b _0819E006 -_0819DF3C: - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x15] - cmp r0, 0 - bne _0819DF4A - bl Swap_PrintMonSpecies -_0819DF4A: - movs r0, 0x1 - bl PutWindowTilemap - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DF64: - bl sub_819EB18 - movs r0, 0 - bl PutWindowTilemap - b _0819E006 -_0819DF70: - movs r0, 0x87 - lsls r0, 3 - adds r1, r2, r0 - b _0819E00E -_0819DF78: - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x15] - cmp r0, 0 - beq _0819E006 - bl sub_819EE08 - b _0819E006 - .pool -_0819DF8C: - bl sub_819ED78 - movs r0, 0x3 - bl PutWindowTilemap - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DFA4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x15] - cmp r0, 0x1 - bne _0819E000 - movs r0, 0x3 - bl ShowBg - ldr r1, =0x00001248 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - b _0819E006 - .pool -_0819E000: - movs r0, 0x3 - bl HideBg -_0819E006: - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 -_0819E00E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0819E0AA - .pool -_0819E01C: - ldr r0, =sub_819CF54 - movs r1, 0 - bl CreateTask - ldr r6, =sFactorySwapScreen - ldr r1, [r6] - adds r1, 0x21 - strb r0, [r1] - ldr r0, [r6] - ldrb r5, [r0, 0x15] - cmp r5, 0 - bne _0819E06C - ldr r4, =gTasks - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strh r5, [r0, 0x8] - ldr r0, =Task_HandleSwapScreenChooseMons - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strh r5, [r0, 0x8] - b _0819E0A4 - .pool -_0819E06C: - bl sub_819EAF8 - ldr r4, =gTasks - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r3, 0 - movs r1, 0x1 - strh r1, [r0, 0x8] - adds r2, 0x22 - strb r3, [r2] - ldr r0, =Task_HandleSwapScreenMenu - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x8] -_0819E0A4: - ldr r0, =sub_819C7E0 - bl SetMainCallback2 -_0819E0AA: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819DC1C - - thumb_func_start sub_819E0C0 -sub_819E0C0: @ 819E0C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r1, sp - ldr r0, =gUnknown_08610834 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - mov r1, sp - movs r0, 0x65 - strh r0, [r1, 0x2] - movs r6, 0 - ldr r4, =sFactorySwapScreen - movs r7, 0 - ldr r5, =gSprites -_0819E0E6: - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 20 - movs r3, 0x90 - lsls r3, 15 - adds r1, r3 - asrs r1, 16 - mov r0, sp - movs r2, 0x40 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r4] - adds r1, 0x5 - adds r1, r6 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x5 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r7, [r0, 0x2E] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _0819E0E6 - ldr r7, =sFactorySwapScreen - ldr r1, [r7] - adds r0, r1, 0x5 - ldrb r1, [r1, 0x3] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - movs r5, 0x20 - ldrsh r1, [r0, r5] - ldr r0, =gUnknown_0861084C - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - ldr r1, [r7] - movs r4, 0 - strb r0, [r1, 0x4] - ldr r0, =gUnknown_08610864 - movs r1, 0xB0 - movs r2, 0x70 - movs r3, 0 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0x1] - ldr r0, =gUnknown_0861087C - movs r1, 0xB0 - movs r2, 0x90 - movs r3, 0 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0x2] - ldr r0, [r7] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, =gSprites - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x28 - strb r4, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x29 - strb r4, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x28 - strb r4, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x29 - strb r4, [r0] - ldr r0, [r7] - ldrb r0, [r0, 0x15] - movs r1, 0xC0 - str r1, [sp, 0x18] - cmp r0, 0x1 - bne _0819E1E8 - movs r2, 0xF0 - str r2, [sp, 0x18] -_0819E1E8: - mov r1, sp - ldr r0, =gUnknown_0861084C - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r0, sp - movs r4, 0x68 - mov r10, r4 - mov r5, r10 - strh r5, [r0] - movs r1, 0xF0 - movs r2, 0x78 - movs r3, 0xA - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0x8] - mov r1, sp - ldr r0, =gUnknown_08610864 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - mov r0, sp - movs r1, 0x69 - mov r9, r1 - mov r2, r9 - strh r2, [r0] - movs r4, 0x80 - lsls r4, 1 - adds r1, r4, 0 - movs r2, 0x78 - movs r3, 0xA - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0x9] - movs r5, 0x90 - lsls r5, 1 - mov r0, sp - adds r1, r5, 0 - movs r2, 0x78 - movs r3, 0xA - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0xA] - mov r1, sp - ldr r0, =gUnknown_0861084C - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r0, sp - movs r3, 0x6A - mov r8, r3 - mov r6, r8 - strh r6, [r0] - movs r1, 0xF0 - movs r2, 0x78 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0xB] - mov r1, sp - ldr r0, =gUnknown_08610864 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r1, sp - movs r0, 0x6B - strh r0, [r1] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x78 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0xC] - mov r0, sp - movs r6, 0x6C - strh r6, [r0] - adds r1, r5, 0 - movs r2, 0x78 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0xD] - mov r1, sp - ldr r0, =gUnknown_0861084C - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - mov r4, r10 - strh r4, [r0] - ldr r1, [sp, 0x18] - movs r2, 0x90 - movs r3, 0xA - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0xE] - mov r1, sp - ldr r0, =gUnknown_08610864 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r4,r5} - stm r1!, {r2,r4,r5} - mov r0, sp - mov r3, r9 - strh r3, [r0] - ldr r4, [sp, 0x18] - adds r4, 0x10 - adds r1, r4, 0 - movs r2, 0x90 - movs r3, 0xA - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0xF] - mov r1, sp - ldr r0, =gUnknown_0861084C - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - mov r5, r8 - strh r5, [r0] - ldr r1, [sp, 0x18] - movs r2, 0x90 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0x10] - mov r1, sp - ldr r0, =gUnknown_08610864 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - strh r6, [r0] - adds r1, r4, 0 - movs r2, 0x90 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r7] - strb r0, [r1, 0x11] - movs r6, 0 - ldr r5, =gSprites - adds r4, r7, 0 - movs r7, 0 - movs r0, 0x4 - mov r10, r0 -_0819E330: - ldr r0, [r4] - lsls r3, r6, 1 - adds r2, r3, r6 - adds r0, 0x8 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0x8 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0x9 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0x9 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xA - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xA - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xE - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xE - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xF - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xF - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0x8 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - mov r8, r0 - ldrb r1, [r0] - mov r0, r10 - orrs r1, r0 - mov r0, r8 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x9 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - mov r8, r0 - ldrb r1, [r0] - mov r0, r10 - orrs r1, r0 - mov r0, r8 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - mov r2, r10 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xE - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xF - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, =sFactorySwapScreen - mov r8, r3 - ldr r0, =gSprites - mov r9, r0 - cmp r6, 0x1 - bhi _0819E496 - b _0819E330 -_0819E496: - ldr r0, [r3] - ldrb r0, [r0, 0xE] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - adds r1, 0x3E - ldrb r2, [r1] - movs r3, 0x5 - negs r3, r3 - adds r0, r3, 0 - b _0819E4C8 - .pool -_0819E4C8: - ands r0, r2 - strb r0, [r1] - mov r1, r8 - ldr r0, [r1] - ldrb r1, [r0, 0xF] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r3, 0 - ands r1, r2 - strb r1, [r0] - mov r2, r8 - ldr r0, [r2] - ldrb r1, [r0, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r3, 0 - ands r1, r2 - strb r1, [r0] - mov r4, r8 - ldr r0, [r4] - ldrb r1, [r0, 0x9] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r3, 0 - ands r1, r2 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r0, 0xA] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819E0C0 - thumb_func_start sub_819E538 sub_819E538: @ 819E538 push {r4-r7,lr} @@ -3095,8 +774,8 @@ sub_819EAF8: @ 819EAF8 bx r0 thumb_func_end sub_819EAF8 - thumb_func_start sub_819EB18 -sub_819EB18: @ 819EB18 + thumb_func_start Swap_PrintPkmnSwap +Swap_PrintPkmnSwap: @ 819EB18 push {lr} sub sp, 0xC movs r0, 0 @@ -3118,7 +797,7 @@ sub_819EB18: @ 819EB18 pop {r0} bx r0 .pool - thumb_func_end sub_819EB18 + thumb_func_end Swap_PrintPkmnSwap thumb_func_start Swap_PrintMonSpecies Swap_PrintMonSpecies: @ 819EB4C @@ -3192,8 +871,8 @@ _0819EBD4: .pool thumb_func_end Swap_PrintMonSpecies - thumb_func_start Swap_PrintOnYesNoQuestionWindow -Swap_PrintOnYesNoQuestionWindow: @ 819EBEC + thumb_func_start Swap_PrintOnInfoWindow +Swap_PrintOnInfoWindow: @ 819EBEC push {r4,lr} sub sp, 0xC adds r4, r0, 0 @@ -3217,7 +896,7 @@ Swap_PrintOnYesNoQuestionWindow: @ 819EBEC pop {r4} pop {r0} bx r0 - thumb_func_end Swap_PrintOnYesNoQuestionWindow + thumb_func_end Swap_PrintOnInfoWindow thumb_func_start sub_819EC20 sub_819EC20: @ 819EC20 @@ -3340,8 +1019,8 @@ sub_819ECF0: @ 819ECF0 .pool thumb_func_end sub_819ECF0 - thumb_func_start sub_819ED34 -sub_819ED34: @ 819ED34 + thumb_func_start Swap_PrintActionStrings +Swap_PrintActionStrings: @ 819ED34 push {lr} movs r0, 0x5 movs r1, 0 @@ -3369,10 +1048,10 @@ _0819ED60: pop {r0} bx r0 .pool - thumb_func_end sub_819ED34 + thumb_func_end Swap_PrintActionStrings - thumb_func_start sub_819ED78 -sub_819ED78: @ 819ED78 + thumb_func_start Swap_PrintActionStrings2 +Swap_PrintActionStrings2: @ 819ED78 push {lr} movs r0, 0x3 movs r1, 0 @@ -3400,10 +1079,10 @@ _0819EDA4: pop {r0} bx r0 .pool - thumb_func_end sub_819ED78 + thumb_func_end Swap_PrintActionStrings2 - thumb_func_start sub_819EDBC -sub_819EDBC: @ 819EDBC + thumb_func_start Swap_PrintActionStrings3 +Swap_PrintActionStrings3: @ 819EDBC push {lr} lsls r0, 24 lsrs r0, 24 @@ -3436,10 +1115,10 @@ _0819EDF6: pop {r0} bx r0 .pool - thumb_func_end sub_819EDBC + thumb_func_end Swap_PrintActionStrings3 - thumb_func_start sub_819EE08 -sub_819EE08: @ 819EE08 + thumb_func_start Swap_PrintMonSpecies2 +Swap_PrintMonSpecies2: @ 819EE08 push {r4,lr} sub sp, 0x18 ldr r0, =gUnknown_08610918 @@ -3537,10 +1216,10 @@ _0819EED8: pop {r0} bx r0 .pool - thumb_func_end sub_819EE08 + thumb_func_end Swap_PrintMonSpecies2 - thumb_func_start sub_819EEF0 -sub_819EEF0: @ 819EEF0 + thumb_func_start Swap_PrintMonSpecies3 +Swap_PrintMonSpecies3: @ 819EEF0 push {r4,lr} sub sp, 0xC ldr r0, =gUnknown_08610918 @@ -3614,7 +1293,7 @@ _0819EF90: pop {r0} bx r0 .pool - thumb_func_end sub_819EEF0 + thumb_func_end Swap_PrintMonSpecies3 thumb_func_start Swap_PrintMonCategory Swap_PrintMonCategory: @ 819EFA8 @@ -4016,8 +1695,8 @@ sub_819F2B4: @ 819F2B4 .pool thumb_func_end sub_819F2B4 - thumb_func_start sub_819F304 -sub_819F304: @ 819F304 + thumb_func_start Swap_ShowSummaryMonSprite +Swap_ShowSummaryMonSprite: @ 819F304 push {r4-r6,lr} mov r6, r10 mov r5, r9 @@ -4125,7 +1804,7 @@ sub_819F304: @ 819F304 pop {r0} bx r0 .pool - thumb_func_end sub_819F304 + thumb_func_end Swap_ShowSummaryMonSprite thumb_func_start sub_819F3F8 sub_819F3F8: @ 819F3F8 @@ -4232,7 +1911,7 @@ _0819F4C8: .4byte _0819F568 _0819F4DC: ldr r0, =gText_SamePkmnInPartyAlready - bl Swap_PrintOnYesNoQuestionWindow + bl Swap_PrintOnInfoWindow ldr r0, =sFactorySwapScreen ldr r0, [r0] adds r0, 0x20 @@ -4277,7 +1956,7 @@ _0819F52C: b _0819F54E _0819F548: ldr r0, =gText_SelectPkmnToAccept - bl Swap_PrintOnYesNoQuestionWindow + bl Swap_PrintOnInfoWindow _0819F54E: ldr r0, =gTasks adds r1, r5, r4 @@ -4289,7 +1968,7 @@ _0819F54E: b _0819F58A .pool _0819F568: - bl sub_819EEF0 + bl Swap_PrintMonSpecies3 bl sub_819EADC ldr r0, =sFactorySwapScreen ldr r0, [r0] diff --git a/src/battle_factory.c b/src/battle_factory.c index 1609658f39..6324f4040c 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -34,8 +34,22 @@ #define MENU_OPTIONS_COUNT 3 #define SELECTABLE_MONS_COUNT 6 + #define TAG_PAL_BALL_GREY 0x64 #define TAG_PAL_BALL_SELECTED 0x65 +#define TAG_PAL_66 0x66 +#define TAG_PAL_67 0x67 + +#define TAG_TILE_64 0x64 +#define TAG_TILE_65 0x65 +#define TAG_TILE_66 0x66 +#define TAG_TILE_67 0x67 +#define TAG_TILE_68 0x68 +#define TAG_TILE_69 0x69 +#define TAG_TILE_6A 0x6A +#define TAG_TILE_6B 0x6B +#define TAG_TILE_6C 0x6C +#define TAG_TILE_6D 0x6D struct FactorySelecteableMon { @@ -74,29 +88,21 @@ struct FactorySelectMonsStruct u8 unk2A9; }; +// 'Action' refers to the Cancel, Pknm for swap windows. + struct FactorySwapMonsStruct { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - u8 unk6; - u8 unk7; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - u8 unkC; - u8 unkD; - u8 unkE; - u8 unkF; - u8 unk10; - u8 unk11; + u8 menuCursorPos; + u8 menuCursor1SpriteId; + u8 menuCursor2SpriteId; + u8 cursorPos; + u8 cursorSpriteId; + u8 ballSpriteIds[3]; + u8 unk8[2][3]; + u8 unkE[2][2]; u8 unk12; u8 unk13; - u8 unk14; + u8 actionsState; bool8 fromSummaryScreen; u8 yesNoCursorPos; u8 unk17; @@ -109,7 +115,7 @@ struct FactorySwapMonsStruct u8 unk1E; u8 unk1F; u8 unk20; - u8 unk21; + u8 palBlendTaskId; u8 unk22; u8 unk23; u16 unk24; @@ -169,9 +175,7 @@ u8 sub_81A6F70(u8 battleMode, u8 lvlMode); u8 sub_81A6CA8(u8 arg0, u8 arg1); static bool32 Select_AreSpeciesValid(u16 monSetId); void sub_819E538(void); -void sub_819DC1C(void); void sub_819E9E0(void); -void sub_819EE08(void); void sub_819EAC0(void); void Swap_UpdateYesNoCursorPosition(s8 direction); void Swap_UpdateMenuCursorPosition(s8 direction); @@ -179,14 +183,26 @@ void sub_819EA64(u8 windowId); void sub_819D770(u8 taskId); void Task_HandleSwapScreenChooseMons(u8 taskId); void sub_819D588(u8 taskId); -void Swap_PrintOnYesNoQuestionWindow(const u8 *str); +void Swap_PrintOnInfoWindow(const u8 *str); void Swap_ShowMenuOptions(void); void Swap_PrintMonSpecies(void); +void Swap_PrintMonSpecies2(void); +void Swap_PrintMonSpecies3(void); void Swap_PrintMonCategory(void); +void Swap_InitAllSprites(void); +void Swap_PrintPkmnSwap(void); +void sub_819EADC(void); +void sub_819EAF8(void); +void CB2_InitSwapScreen(void); +void Swap_ShowSummaryMonSprite(void); void Swap_UpdateActionCursorPosition(s8 direction); void Swap_UpdateBallCursorPosition(s8 direction); void Swap_RunMenuOptionFunc(u8 taskId); void sub_819F184(u8 taskId); +void Swap_PrintActionStrings(void); +void Swap_PrintActionStrings2(void); +void Swap_PrintActionStrings3(u8 field); +void sub_819F048(u8 field); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -224,25 +240,25 @@ const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbap const struct SpriteSheet gUnknown_086103BC[] = { - {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), 0x65}, - {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), 0x66}, - {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), 0x67}, - {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), 0x6D}, + {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), TAG_TILE_65}, + {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), TAG_TILE_66}, + {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), TAG_TILE_67}, + {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), TAG_TILE_6D}, {}, }; const struct CompressedSpriteSheet gUnknown_086103E4[] = { - {gUnknown_085B18AC, 0x800, 0x64}, + {gUnknown_085B18AC, 0x800, TAG_TILE_64}, {}, }; const struct SpritePalette gUnknown_086103F4[] = { - {gUnknown_0860F13C, 0x64}, - {gUnknown_0860F15C, 0x65}, - {gUnknown_0860F17C, 0x66}, - {gUnknown_0861039C, 0x67}, + {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, + {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, + {gUnknown_0860F17C, TAG_PAL_66}, + {gUnknown_0861039C, TAG_PAL_67}, {}, }; @@ -254,8 +270,11 @@ u8 (* const sSelect_MenuOptionFuncs[])(void) = }; extern const struct BgTemplate gUnknown_08610428[3]; +extern const struct BgTemplate gUnknown_086108B8[4]; extern const struct WindowTemplate gUnknown_08610434[]; +extern const struct WindowTemplate gUnknown_086108C8[]; extern const u16 gUnknown_0861046C[]; +extern const u16 gUnknown_08610918[]; extern const struct SpriteTemplate gUnknown_086105D8; extern const struct SpriteTemplate gUnknown_086105F0; extern const struct SpriteTemplate gUnknown_08610608; @@ -263,6 +282,9 @@ extern const struct SpriteTemplate gUnknown_08610620; extern const struct SpriteTemplate gUnknown_08610638; extern const u8 gUnknown_08610479[]; extern const u8 gUnknown_08610476[]; +extern const struct SpritePalette gUnknown_086106B0[]; +extern const struct SpriteSheet gUnknown_08610650[]; +extern const struct CompressedSpriteSheet gUnknown_086106A0[]; // gfx extern const u8 gFrontierFactorySelectMenu_Gfx[]; @@ -284,6 +306,8 @@ extern const u8 gText_Yes2[]; extern const u8 gText_No2[]; extern const u8 gText_QuitSwapping[]; extern const u8 gText_AcceptThisPkmn[]; +extern const u8 gText_SelectPkmnToAccept[]; +extern const u8 gText_SelectPkmnToSwap[]; // code void sub_819A44C(struct Sprite *sprite) @@ -1486,7 +1510,9 @@ static void Task_SelectBlendPalette(u8 taskId) } } -void sub_819C7E0(void) +// Swap Screen's section begins here. + +void Swap_CB2(void) { AnimateSprites(); BuildOamBuffer(); @@ -1495,7 +1521,7 @@ void sub_819C7E0(void) RunTasks(); } -void sub_819C7FC(void) +void Swap_VblankCb(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -1526,7 +1552,7 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen case 7: if (!gPaletteFade.active) { - DestroyTask(sFactorySwapScreen->unk21); + DestroyTask(sFactorySwapScreen->palBlendTaskId); sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); sub_819E538(); FREE_AND_SET_NULL(gUnknown_0203CE40); @@ -1541,7 +1567,7 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen DestroyTask(taskId); sFactorySwapScreen->fromSummaryScreen = TRUE; sFactorySwapScreen->unk24 = gPlttBufferUnfaded[244]; - ShowPokemonSummaryScreen(0, gPlayerParty, sFactorySwapScreen->unk3, 3 - 1, sub_819DC1C); + ShowPokemonSummaryScreen(0, gPlayerParty, sFactorySwapScreen->cursorPos, 3 - 1, CB2_InitSwapScreen); break; } } @@ -1567,7 +1593,7 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen case 1: if (sFactorySwapScreen->unk20 == 1) { - sFactorySwapScreen->unk13 = sFactorySwapScreen->unk3; + sFactorySwapScreen->unk13 = sFactorySwapScreen->cursorPos; sub_819C810(); } gTasks[taskId].data[0]++; @@ -1579,7 +1605,7 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen case 3: if (!UpdatePaletteFade()) { - DestroyTask(sFactorySwapScreen->unk21); + DestroyTask(sFactorySwapScreen->palBlendTaskId); sub_819E538(); FREE_AND_SET_NULL(gUnknown_0203CE40); FREE_AND_SET_NULL(gUnknown_0203CE44); @@ -1672,7 +1698,7 @@ void sub_819CC24(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - Swap_PrintOnYesNoQuestionWindow(gText_QuitSwapping); + Swap_PrintOnInfoWindow(gText_QuitSwapping); sFactorySwapScreen->unk20 = 0; gTasks[taskId].data[0] = 4; gTasks[taskId].data[6] = (u32)(sub_819CBDC) >> 16; @@ -1704,7 +1730,7 @@ void sub_819CCD4(u8 taskId) if (gTasks[taskId].data[0] == 0) { sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); - Swap_PrintOnYesNoQuestionWindow(gText_AcceptThisPkmn); + Swap_PrintOnInfoWindow(gText_AcceptThisPkmn); sFactorySwapScreen->unk20 = 1; gTasks[taskId].data[0] = 4; gTasks[taskId].data[6] = (u32)(sub_819CC74) >> 16; @@ -1777,7 +1803,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) { PlaySE(SE_SELECT); sFactorySwapScreen->unk22 = 0; - sub_819EE08(); + Swap_PrintMonSpecies2(); sub_819EAC0(); sub_819F184(taskId); } @@ -1785,7 +1811,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) { PlaySE(SE_SELECT); sFactorySwapScreen->unk22 = 0; - sub_819EE08(); + Swap_PrintMonSpecies2(); sub_819EAC0(); gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 16; gTasks[taskId].data[7] = (u32)(sub_819CC24); @@ -1821,7 +1847,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) } } -void sub_819CF54(u8 taskId) +void Task_SwapBlendPalette(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1876,7 +1902,7 @@ void sub_819CF54(u8 taskId) } } -void sub_819D064(u8 taskId) +void Task_SwapBlendPalette2(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1906,3 +1932,694 @@ void sub_819D064(u8 taskId) break; } } + +void sub_819D12C(u8 taskId) +{ + s8 i; + u8 var_2C; + bool8 r7; + + switch (gTasks[taskId].data[0]) + { + case 0: + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[0] = 1; + break; + case 1: + var_2C = 0; + for (i = 2; i >= 0; i--) + { + if (i != 2) + { + u8 posX = var_2C - gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; + if (posX == 16 || gTasks[taskId].data[i + 2] == 1) + { + var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x += 10; + } + else if (posX > 16) + { + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[i + 1]].pos1.x - 48; + } + } + else + { + var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x += 10; + } + + if (gTasks[taskId].data[i + 1] == 1) + { + if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x > (i * 48) + 72) + { + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = (i * 48) + 72; + r7 = TRUE; + } + else if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x == (i * 48) + 72) + { + r7 = TRUE; + } + else + { + r7 = FALSE; + } + } + else + { + r7 = FALSE; + } + + if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x - 16 > 240) + { + var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = -16; + if (sFactorySwapScreen->actionsState == 1) + gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + else + gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + + gTasks[taskId].data[i + 1] = 1; + } + } + if (r7 == TRUE) + DestroyTask(taskId); + break; + } +} + +void sub_819D324(u8 taskId) +{ + u8 i, j; + s32 posX = 0; + s8 r4 = gTasks[taskId].data[3]; + bool8 r1; + s16 currPosX; + u8 taskId2; + + if (gTasks[taskId].data[2] == 1) + r4 *= -1; + + switch (gTasks[taskId].data[0]) + { + case 0: + currPosX = gSprites[sFactorySwapScreen->unk8[0][0]].pos1.x; + if (!gTasks[taskId].data[2]) + { + if (currPosX + r4 < 240) + { + r1 = TRUE; + } + else + { + r1 = FALSE; + posX = 240; + } + } + else + { + if (currPosX + r4 > 160) + { + r1 = TRUE; + } + else + { + r1 = FALSE; + posX = 160; + } + } + + if (r1 == TRUE) + { + for (i = 0; i < 3; i++) + { + for (j = 0; j < 2; j++) + gSprites[sFactorySwapScreen->unk8[j][i]].pos1.x += r4; + } + } + else + { + for (j = 0; j < 2; j++) + { + gSprites[sFactorySwapScreen->unk8[j][0]].pos1.x = posX; + gSprites[sFactorySwapScreen->unk8[j][1]].pos1.x = posX + 16; + gSprites[sFactorySwapScreen->unk8[j][2]].pos1.x = posX + 48; + } + taskId2 = gTasks[taskId].data[1]; + gTasks[taskId2].data[3] = 1; + DestroyTask(taskId); + } + break; + case 1: + currPosX = gSprites[sFactorySwapScreen->unkE[0][0]].pos1.x; + if (!gTasks[taskId].data[2]) + { + if (currPosX + r4 < 240) + { + r1 = TRUE; + } + else + { + r1 = FALSE; + posX = 240; + } + } + else + { + if (currPosX + r4 > 192) + { + r1 = TRUE; + } + else + { + r1 = FALSE; + posX = 192; + } + } + + if (r1 == TRUE) + { + for (i = 0; i < 2; i++) + { + for (j = 0; j < 2; j++) + gSprites[sFactorySwapScreen->unkE[j][i]].pos1.x += r4; + } + } + else + { + for (j = 0; j < 2; j++) + { + gSprites[sFactorySwapScreen->unkE[j][0]].pos1.x = posX; + gSprites[sFactorySwapScreen->unkE[j][1]].pos1.x = posX + 16; + } + taskId2 = gTasks[taskId].data[1]; + gTasks[taskId2].data[4] = 1; + DestroyTask(taskId); + } + break; + } +} + +void sub_819D588(u8 taskId) +{ + u8 anotherTaskId; + u16 loPtr, hiPtr; + + switch (gTasks[taskId].data[0]) + { + case 0: + LoadPalette(gUnknown_08610918, 0xE0, 0xA); + Swap_PrintActionStrings(); + PutWindowTilemap(5); + gTasks[taskId].data[0]++; + break; + case 1: + sub_819EA64(3); + gTasks[taskId].data[0]++; + break; + case 2: + BeginNormalPaletteFade(0x4000, 0, 0, 0x10, gUnknown_0860F13C[37]); + gTasks[taskId].data[0]++; + break; + case 3: + if (!gPaletteFade.active) + { + FillWindowPixelBuffer(5, 0); + CopyWindowToVram(5, 2); + if (sFactorySwapScreen->actionsState == 1) + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[3] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 0; + gTasks[anotherTaskId].data[2] = 0; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[2] = 5; + gTasks[taskId].data[0]++; + } + else + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[3] = 1; + gTasks[taskId].data[4] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 1; + gTasks[anotherTaskId].data[2] = 0; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[0] += 2; + } + } + break; + case 4: + if (gTasks[taskId].data[2] == 0) + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[4] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 1; + gTasks[anotherTaskId].data[2] = 0; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[0]++; + } + else + { + gTasks[taskId].data[2]--; + } + break; + case 5: + if (gTasks[taskId].data[3] == 1 && gTasks[taskId].data[4] == 1) + { + gTasks[taskId].data[0] = gTasks[taskId].data[5]; + loPtr = gTasks[taskId].data[6]; + hiPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void *)((loPtr << 0x10) | (hiPtr)); + } + break; + } +} + +void sub_819D770(u8 taskId) +{ + u8 anotherTaskId; + u16 loPtr, hiPtr; + if (sFactorySwapScreen->unk30 == 1) + return; + + switch (gTasks[taskId].data[0]) + { + case 0: + if (sFactorySwapScreen->actionsState == 1) + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[3] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 0; + gTasks[anotherTaskId].data[2] = 1; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[2] = 10; + gTasks[taskId].data[0]++; + } + else + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[3] = 1; + gTasks[taskId].data[4] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 1; + gTasks[anotherTaskId].data[2] = 1; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[0] += 2; + } + break; + case 1: + if (gTasks[taskId].data[2] == 0) + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[4] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 1; + gTasks[anotherTaskId].data[2] = 1; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[0]++; + } + else + { + gTasks[taskId].data[2]--; + } + break; + case 2: + if (gTasks[taskId].data[3] == 1 && gTasks[taskId].data[4] == 1) + { + gPlttBufferFaded[226] = gUnknown_0860F13C[37]; + Swap_PrintActionStrings(); + PutWindowTilemap(5); + gTasks[taskId].data[0]++; + } + break; + case 3: + BeginNormalPaletteFade(0x4000, 0, 0x10, 0, gUnknown_0860F13C[37]); + gTasks[taskId].data[0]++; + break; + case 4: + if (!gPaletteFade.active) + { + Swap_PrintActionStrings3(0); + gTasks[taskId].data[0]++; + } + break; + case 5: + Swap_PrintActionStrings3(1); + PutWindowTilemap(3); + gTasks[taskId].data[0]++; + break; + case 6: + FillWindowPixelBuffer(5, 0); + CopyWindowToVram(5, 2); + gTasks[taskId].data[0]++; + break; + case 7: + if (sFactorySwapScreen->actionsState == 0) + Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap); + else + Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); + if (sFactorySwapScreen->cursorPos < 3) + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0; + Swap_PrintMonCategory(); + gTasks[taskId].data[0]++; + break; + case 8: + Swap_PrintMonSpecies3(); + sub_819EADC(); + sFactorySwapScreen->unk22 = 1; + gTasks[taskId].data[0] = gTasks[taskId].data[5]; + loPtr = gTasks[taskId].data[6]; + hiPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void *)((loPtr << 0x10) | (hiPtr)); + break; + } +} + +void sub_819D9EC(u8 taskId) +{ + u8 i; + if (sFactorySwapScreen->unk30 == 1) + return; + + switch (gTasks[taskId].data[0]) + { + case 0: + Swap_PrintMonSpecies3(); + gTasks[taskId].data[0]++; + break; + case 1: + sub_819EADC(); + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; + gTasks[taskId].data[0]++; + break; + case 2: + CreateTask(sub_819D12C, 0); + gTasks[sFactorySwapScreen->palBlendTaskId].func = Task_SwapBlendPalette2; + gTasks[taskId].data[0]++; + break; + case 3: + if (!FuncIsActiveTask(sub_819D12C) && gTasks[sFactorySwapScreen->palBlendTaskId].data[4] == 1) + { + sub_819EAC0(); + if (sFactorySwapScreen->actionsState == 0) + { + sub_819F048(1); + } + else + { + sub_819F048(0); + for (i = 0; i < 3; i++) + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + } + gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x; + gTasks[sFactorySwapScreen->palBlendTaskId].func = Task_SwapBlendPalette; + sFactorySwapScreen->unk27 = 0; + sFactorySwapScreen->unk28 = 6; + sFactorySwapScreen->unk26 = FALSE; + gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 1; + gTasks[taskId].data[0]++; + } + break; + case 4: + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 0x10; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; + break; + } +} + +void Swap_InitStruct(void) +{ + if (sFactorySwapScreen == NULL) + { + sFactorySwapScreen = AllocZeroed(sizeof(*sFactorySwapScreen)); + sFactorySwapScreen->cursorPos = 0; + sFactorySwapScreen->unk30 = 0; + sFactorySwapScreen->fromSummaryScreen = FALSE; + } +} + +void sub_819DC00(void) +{ + sFactorySwapScreen = NULL; + SetMainCallback2(CB2_InitSwapScreen); +} + +void CB2_InitSwapScreen(void) +{ + u8 taskId; + + switch (gMain.state) + { + case 0: + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + CpuFill32(0, (void *)VRAM, VRAM_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_086108B8, ARRAY_COUNT(gUnknown_086108B8)); + InitWindows(gUnknown_086108C8); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 1: + gUnknown_0203CE40 = Alloc(0x440); + gUnknown_0203CE44 = AllocZeroed(0x440); + gUnknown_0203CE48 = Alloc(0x800); + gUnknown_0203CE4C = AllocZeroed(0x800); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuReg(REG_OFFSET_MOSAIC, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WIN1H, 0); + SetGpuReg(REG_OFFSET_WIN1V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + ResetAllPicSprites(); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE40, 0x440); + CpuCopy16(gUnknown_0861033C, gUnknown_0203CE44, 0x60); + LoadBgTiles(1, gUnknown_0203CE40, 0x440, 0); + LoadBgTiles(3, gUnknown_0203CE44, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE48, 0x800); + LoadBgTilemap(1, gUnknown_0203CE48, 0x800, 0); + LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); + LoadPalette(gUnknown_08610918, 0xF0, 10); + LoadPalette(gUnknown_08610918, 0xE0, 10); + LoadPalette(gUnknown_0861039C, 0x20, 4); + gMain.state++; + break; + case 3: + SetBgTilemapBuffer(3, gUnknown_0203CE4C); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); + CopyBgTilemapBufferToVram(3); + gMain.state++; + break; + case 4: + LoadSpritePalettes(gUnknown_086106B0); + LoadSpriteSheets(gUnknown_08610650); + LoadCompressedObjectPic(gUnknown_086106A0); + SetVBlankCallback(Swap_VblankCb); + gMain.state++; + break; + case 5: + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + sFactorySwapScreen->cursorPos = gUnknown_0203CF20; + gMain.state++; + break; + case 6: + Swap_InitStruct(); + Swap_InitAllSprites(); + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + Swap_ShowSummaryMonSprite(); + sub_819F048(0); + gMain.state++; + break; + case 7: + Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap); + PutWindowTilemap(2); + gMain.state++; + break; + case 8: + Swap_PrintMonCategory(); + PutWindowTilemap(8); + gMain.state++; + break; + case 9: + if (!sFactorySwapScreen->fromSummaryScreen) + Swap_PrintMonSpecies(); + PutWindowTilemap(1); + gMain.state++; + break; + case 10: + Swap_PrintPkmnSwap(); + PutWindowTilemap(0); + gMain.state++; + break; + case 11: + gMain.state++; + break; + case 12: + if (sFactorySwapScreen->fromSummaryScreen) + Swap_PrintMonSpecies2(); + gMain.state++; + break; + case 13: + Swap_PrintActionStrings2(); + PutWindowTilemap(3); + gMain.state++; + break; + case 14: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ShowBg(0); + ShowBg(1); + ShowBg(2); + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + { + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + } + else + { + HideBg(3); + } + gMain.state++; + break; + case 15: + sFactorySwapScreen->palBlendTaskId = CreateTask(Task_SwapBlendPalette, 0); + if (!sFactorySwapScreen->fromSummaryScreen) + { + gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 0; + taskId = CreateTask(Task_HandleSwapScreenChooseMons, 0); + gTasks[taskId].data[0] = 0; + } + else + { + sub_819EAF8(); + gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 1; + sFactorySwapScreen->unk22 = FALSE; + taskId = CreateTask(Task_HandleSwapScreenMenu, 0); + gTasks[taskId].data[0] = 2; + } + SetMainCallback2(Swap_CB2); + break; + } +} + +extern const struct SpriteTemplate gUnknown_08610834; +extern const struct SpriteTemplate gUnknown_0861084C; +extern const struct SpriteTemplate gUnknown_08610864; +extern const struct SpriteTemplate gUnknown_0861087C; + +void Swap_InitAllSprites(void) +{ + u8 i; + u8 x; + struct SpriteTemplate spriteTemplate; + + spriteTemplate = gUnknown_08610834; + spriteTemplate.paletteTag = TAG_PAL_BALL_SELECTED; + + for (i = 0; i < 3; i++) + { + sFactorySwapScreen->ballSpriteIds[i] = CreateSprite(&spriteTemplate, (48 * i) + 72, 64, 1); + gSprites[sFactorySwapScreen->ballSpriteIds[i]].data[0] = 0; + } + sFactorySwapScreen->cursorSpriteId = CreateSprite(&gUnknown_0861084C, gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x, 88, 0); + sFactorySwapScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610864, 176, 112, 0); + sFactorySwapScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_0861087C, 176, 144, 0); + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].centerToCornerVecY = 0; + + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + x = 240; + else + x = 192; + + spriteTemplate = gUnknown_0861084C; + spriteTemplate.tileTag = TAG_TILE_68; + sFactorySwapScreen->unk8[0][0] = CreateSprite(&spriteTemplate, 240, 120, 10); + + spriteTemplate = gUnknown_08610864; + spriteTemplate.tileTag = TAG_TILE_69; + sFactorySwapScreen->unk8[0][1] = CreateSprite(&spriteTemplate, 256, 120, 10); + sFactorySwapScreen->unk8[0][2] = CreateSprite(&spriteTemplate, 288, 120, 10); + + spriteTemplate = gUnknown_0861084C; + spriteTemplate.tileTag = TAG_TILE_6A; + sFactorySwapScreen->unk8[1][0] = CreateSprite(&spriteTemplate, 240, 120, 1); + + spriteTemplate = gUnknown_08610864; + spriteTemplate.tileTag = TAG_TILE_6B; + sFactorySwapScreen->unk8[1][1] = CreateSprite(&spriteTemplate, 256, 120, 1); + spriteTemplate.tileTag = TAG_TILE_6C; + sFactorySwapScreen->unk8[1][2] = CreateSprite(&spriteTemplate, 288, 120, 1); + + spriteTemplate = gUnknown_0861084C; + spriteTemplate.tileTag = TAG_TILE_68; + sFactorySwapScreen->unkE[0][0] = CreateSprite(&spriteTemplate, x, 144, 10); + + spriteTemplate = gUnknown_08610864; + spriteTemplate.tileTag = TAG_TILE_69; + sFactorySwapScreen->unkE[0][1] = CreateSprite(&spriteTemplate, x + 16, 144, 10); + + spriteTemplate = gUnknown_0861084C; + spriteTemplate.tileTag = TAG_TILE_6A; + sFactorySwapScreen->unkE[1][0] = CreateSprite(&spriteTemplate, x, 144, 1); + + spriteTemplate = gUnknown_08610864; + spriteTemplate.tileTag = TAG_TILE_6C; + sFactorySwapScreen->unkE[1][1] = CreateSprite(&spriteTemplate, x + 16, 144, 1); + + for (i = 0; i < 2; i++) + { + gSprites[sFactorySwapScreen->unk8[i][0]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk8[i][0]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->unk8[i][1]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk8[i][1]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->unk8[i][2]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk8[i][2]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->unkE[i][0]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unkE[i][0]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecY = 0; + + gSprites[sFactorySwapScreen->unk8[i][0]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[i][1]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[i][2]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[i][0]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[i][1]].invisible = 1; + } + + gSprites[sFactorySwapScreen->unkE[0][0]].invisible = 0; + gSprites[sFactorySwapScreen->unkE[0][1]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[0][0]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[0][1]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[0][2]].invisible = 0; +} From 2f59df03ab8dbd5d9edb28b5680cc668aafc6684 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 8 Sep 2018 23:38:30 +0200 Subject: [PATCH 07/28] Standartize AddTextPrinterParametrized functions, --- asm/battle_frontier_2.s | 1012 ++-------------------------------- asm/cable_club.s | 2 +- asm/contest_painting.s | 2 +- asm/easy_chat.s | 2 +- asm/field_player_avatar.s | 10 +- asm/party_menu.s | 10 +- asm/pokemon_storage_system.s | 20 +- asm/pokenav.s | 80 +-- asm/rom_8011DC0.s | 106 ++-- asm/roulette.s | 26 +- asm/script_menu.s | 34 +- asm/shop.s | 4 +- asm/trade.s | 6 +- asm/trainer_card.s | 6 +- asm/use_pokeblock.s | 8 +- include/menu.h | 6 +- include/text.h | 2 +- src/battle_factory.c | 315 ++++++++++- src/battle_interface.c | 2 +- src/battle_pyramid_bag.c | 8 +- src/battle_records.c | 22 +- src/berry_blender.c | 8 +- src/berry_tag_screen.c | 18 +- src/clear_save_data_screen.c | 4 +- src/coins.c | 2 +- src/credits.c | 2 +- src/decoration.c | 10 +- src/diploma.c | 4 +- src/egg_hatch.c | 2 +- src/field_region_map.c | 4 +- src/field_specials.c | 28 +- src/hall_of_fame.c | 6 +- src/item_menu.c | 6 +- src/learn_move.c | 4 +- src/list_menu.c | 4 +- src/main_menu.c | 2 +- src/map_name_popup.c | 2 +- src/mauville_old_man.c | 6 +- src/menu.c | 32 +- src/menu_helpers.c | 2 +- src/money.c | 2 +- src/mystery_event_menu.c | 2 +- src/naming_screen.c | 8 +- src/option_menu.c | 6 +- src/player_pc.c | 16 +- src/pokeblock.c | 2 +- src/pokeblock_feed.c | 2 +- src/pokedex.c | 8 +- src/pokemon_storage_system.c | 14 +- src/pokemon_summary_screen.c | 2 +- src/record_mixing.c | 2 +- src/region_map.c | 8 +- src/reset_rtc_screen.c | 10 +- src/save_failed_screen.c | 2 +- src/scrcmd.c | 4 +- src/slot_machine.c | 8 +- src/start_menu.c | 24 +- src/starter_choose.c | 4 +- src/text.c | 4 +- src/trader.c | 6 +- src/wallclock.c | 6 +- sym_ewram.txt | 12 - 62 files changed, 675 insertions(+), 1306 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index ffbd7c58d6..45da56996d 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -6,900 +6,8 @@ .text - thumb_func_start sub_819E538 -sub_819E538: @ 819E538 - push {r4-r7,lr} - movs r5, 0 -_0819E53C: - ldr r6, =sFactorySwapScreen - ldr r0, [r6] - adds r0, 0x5 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0819E53C - ldr r0, [r6] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - movs r5, 0 -_0819E590: - movs r4, 0 - lsls r6, r5, 1 -_0819E594: - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - adds r1, r6, r5 - adds r1, r4, r1 - adds r0, 0x8 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0819E594 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0819E590 - movs r5, 0 -_0819E5C6: - movs r4, 0 - adds r7, r5, 0x1 - lsls r6, r5, 1 -_0819E5CC: - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - adds r1, r4, r6 - adds r0, 0xE - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819E5CC - lsls r0, r7, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0819E5C6 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E538 - - thumb_func_start sub_819E608 -sub_819E608: @ 819E608 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bhi _0819E65C - ldr r4, =gSprites - ldr r5, =sFactorySwapScreen - ldr r0, [r5] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bl sub_819E8EC - ldr r0, [r5] - ldrb r2, [r0, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - adds r0, 0x5 - adds r0, r6 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r1, 0x20] - b _0819E684 - .pool -_0819E65C: - ldr r2, =gSprites - ldr r3, =sFactorySwapScreen - ldr r0, [r3] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldr r1, [r0, 0x18] - lsls r0, r6, 3 - adds r0, r1 - ldrb r0, [r0] - bl sub_819E838 -_0819E684: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E608 - - thumb_func_start Swap_UpdateBallCursorPosition -Swap_UpdateBallCursorPosition: @ 819E694 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - lsls r4, 24 - cmp r4, 0 - ble _0819E6C0 - ldr r1, =sFactorySwapScreen - ldr r2, [r1] - ldrb r0, [r2, 0x3] - adds r0, 0x1 - ldrb r3, [r2, 0x17] - cmp r0, r3 - bne _0819E6D8 - movs r0, 0 - b _0819E6D8 - .pool -_0819E6C0: - ldr r0, =sFactorySwapScreen - ldr r2, [r0] - ldrb r3, [r2, 0x3] - adds r1, r0, 0 - cmp r3, 0 - beq _0819E6D4 - subs r0, r3, 0x1 - b _0819E6D8 - .pool -_0819E6D4: - ldrb r0, [r2, 0x17] - subs r0, 0x1 -_0819E6D8: - strb r0, [r2, 0x3] - ldr r0, [r1] - ldrb r0, [r0, 0x3] - bl sub_819E608 - pop {r4} - pop {r0} - bx r0 - thumb_func_end Swap_UpdateBallCursorPosition - - thumb_func_start Swap_UpdateActionCursorPosition -Swap_UpdateActionCursorPosition: @ 819E6E8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - lsls r4, 24 - cmp r4, 0 - ble _0819E728 - ldr r0, =sFactorySwapScreen - ldr r2, [r0] - ldrb r1, [r2, 0x3] - adds r4, r0, 0 - cmp r1, 0x2 - bhi _0819E714 - movs r0, 0x3 - strb r0, [r2, 0x3] - b _0819E74A - .pool -_0819E714: - ldrb r0, [r2, 0x3] - adds r0, 0x1 - ldrb r1, [r2, 0x17] - cmp r0, r1 - beq _0819E722 - strb r0, [r2, 0x3] - b _0819E74A -_0819E722: - movs r0, 0 - strb r0, [r2, 0x3] - b _0819E74A -_0819E728: - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r3, [r1, 0x3] - adds r2, r3, 0 - adds r4, r0, 0 - cmp r2, 0x2 - bls _0819E744 - cmp r2, 0 - beq _0819E744 - subs r0, r3, 0x1 - b _0819E748 - .pool -_0819E744: - ldrb r0, [r1, 0x17] - subs r0, 0x1 -_0819E748: - strb r0, [r1, 0x3] -_0819E74A: - ldr r0, [r4] - ldrb r0, [r0, 0x3] - bl sub_819E608 - pop {r4} - pop {r0} - bx r0 - thumb_func_end Swap_UpdateActionCursorPosition - - thumb_func_start Swap_UpdateYesNoCursorPosition -Swap_UpdateYesNoCursorPosition: @ 819E758 - push {lr} - lsls r0, 24 - cmp r0, 0 - ble _0819E778 - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r3, [r1, 0x16] - adds r2, r0, 0 - cmp r3, 0x1 - beq _0819E774 - adds r0, r3, 0x1 - b _0819E78E - .pool -_0819E774: - movs r0, 0 - b _0819E78E -_0819E778: - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r3, [r1, 0x16] - adds r2, r0, 0 - cmp r3, 0 - beq _0819E78C - subs r0, r3, 0x1 - b _0819E78E - .pool -_0819E78C: - movs r0, 0x1 -_0819E78E: - strb r0, [r1, 0x16] - ldr r3, =gSprites - ldr r2, [r2] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2, 0x16] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2, 0x16] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - pop {r0} - bx r0 - .pool - thumb_func_end Swap_UpdateYesNoCursorPosition - - thumb_func_start Swap_UpdateMenuCursorPosition -Swap_UpdateMenuCursorPosition: @ 819E7C0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - lsls r4, 24 - cmp r4, 0 - ble _0819E7EC - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, 0 - cmp r3, 0x2 - beq _0819E7E8 - adds r0, r3, 0x1 - b _0819E802 - .pool -_0819E7E8: - movs r0, 0 - b _0819E802 -_0819E7EC: - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, 0 - cmp r3, 0 - beq _0819E800 - subs r0, r3, 0x1 - b _0819E802 - .pool -_0819E800: - movs r0, 0x2 -_0819E802: - strb r0, [r1] - ldr r3, =gSprites - ldr r2, [r2] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Swap_UpdateMenuCursorPosition - - thumb_func_start sub_819E838 -sub_819E838: @ 819E838 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - movs r0, 0x5 - negs r0, r0 - mov r9, r0 - movs r2, 0x4 - mov r8, r2 - ldr r0, =gSprites - mov r12, r0 - ldr r7, =sFactorySwapScreen -_0819E856: - cmp r6, 0x2 - bne _0819E898 - ldr r5, =gSprites - ldr r3, =sFactorySwapScreen - ldr r0, [r3] - adds r0, 0xB - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r9 - ands r0, r2 - strb r0, [r1] - cmp r4, 0x1 - bhi _0819E8D4 - ldr r0, [r3] - adds r0, 0x10 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - b _0819E8CA - .pool -_0819E898: - cmp r6, 0x3 - bne _0819E8D4 - cmp r4, 0x1 - bhi _0819E8BA - ldr r0, [r7] - adds r0, 0x10 - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r9 - ands r0, r2 - strb r0, [r1] -_0819E8BA: - ldr r0, [r7] - adds r0, 0xB - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r12 -_0819E8CA: - adds r0, 0x3E - ldrb r1, [r0] - mov r2, r8 - orrs r1, r2 - strb r1, [r0] -_0819E8D4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0819E856 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819E838 - - thumb_func_start sub_819E8EC -sub_819E8EC: @ 819E8EC - push {r4-r6,lr} - movs r2, 0 - ldr r5, =gSprites - ldr r4, =sFactorySwapScreen - adds r6, r5, 0 - movs r3, 0x4 -_0819E8F8: - ldr r0, [r4] - adds r0, 0xB - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - cmp r2, 0x1 - bhi _0819E92C - ldr r0, [r4] - adds r0, 0x10 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] -_0819E92C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _0819E8F8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E8EC - - thumb_func_start Swap_ShowMenuOptions -Swap_ShowMenuOptions: @ 819E944 - push {r4,r5,lr} - ldr r0, =sFactorySwapScreen - ldr r3, [r0] - ldrb r1, [r3, 0x15] - adds r5, r0, 0 - cmp r1, 0x1 - bne _0819E95C - movs r0, 0 - strb r0, [r3, 0x15] - b _0819E960 - .pool -_0819E95C: - movs r0, 0 - strb r0, [r3] -_0819E960: - ldr r4, =gSprites - ldr r2, [r5] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xB0 - strh r1, [r0, 0x20] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xD0 - strh r1, [r0, 0x20] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl sub_819EC20 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end Swap_ShowMenuOptions - - thumb_func_start sub_819E9E0 -sub_819E9E0: @ 819E9E0 - push {r4,r5,lr} - ldr r5, =sFactorySwapScreen - ldr r1, [r5] - movs r0, 0 - strb r0, [r1, 0x16] - ldr r4, =gSprites - ldr r2, [r5] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xB0 - strh r1, [r0, 0x20] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r3, 0x70 - strh r3, [r0, 0x22] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xD0 - strh r1, [r0, 0x20] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x22] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl sub_819EC94 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E9E0 - - thumb_func_start sub_819EA64 -sub_819EA64: @ 819EA64 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gSprites - ldr r3, =sFactorySwapScreen - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r4, 0 - bl ClearWindowTilemap - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EA64 - - thumb_func_start sub_819EAC0 -sub_819EAC0: @ 819EAC0 - push {lr} - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_819EAC0 - - thumb_func_start sub_819EADC -sub_819EADC: @ 819EADC - push {lr} - movs r0, 0x7 - bl PutWindowTilemap - movs r0, 0x7 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x7 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_819EADC - - thumb_func_start sub_819EAF8 -sub_819EAF8: @ 819EAF8 - push {lr} - bl sub_819EAC0 - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_819EAF8 - - thumb_func_start Swap_PrintPkmnSwap -Swap_PrintPkmnSwap: @ 819EB18 - push {lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, =gText_PkmnSwap - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x2 - bl PrintTextOnWindow - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintPkmnSwap - - thumb_func_start Swap_PrintMonSpecies -Swap_PrintMonSpecies: @ 819EB4C - push {r4,lr} - sub sp, 0xC - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r0, [r1, 0x3] - cmp r0, 0x2 - bls _0819EB70 - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - b _0819EBD4 - .pool -_0819EB70: - ldrb r2, [r1, 0x3] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819EB84 - movs r0, 0x64 - muls r0, r2 - ldr r1, =gPlayerParty - b _0819EB8A - .pool -_0819EB84: - movs r0, 0x64 - muls r0, r2 - ldr r1, =gEnemyParty -_0819EB8A: - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - ldr r4, =gStringVar4 - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08610925 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram -_0819EBD4: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintMonSpecies - - thumb_func_start Swap_PrintOnInfoWindow -Swap_PrintOnInfoWindow: @ 819EBEC - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x2 - bl PrintTextOnWindow - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end Swap_PrintOnInfoWindow - - thumb_func_start sub_819EC20 -sub_819EC20: @ 819EC20 + thumb_func_start Swap_PrintMenuOptions +Swap_PrintMenuOptions: @ 819EC20 push {r4,r5,lr} sub sp, 0xC movs r0, 0x3 @@ -944,10 +52,10 @@ sub_819EC20: @ 819EC20 pop {r0} bx r0 .pool - thumb_func_end sub_819EC20 + thumb_func_end Swap_PrintMenuOptions - thumb_func_start sub_819EC94 -sub_819EC94: @ 819EC94 + thumb_func_start Swap_PrintYesNoOptions +Swap_PrintYesNoOptions: @ 819EC94 push {r4,r5,lr} sub sp, 0xC movs r0, 0x4 @@ -983,7 +91,7 @@ sub_819EC94: @ 819EC94 pop {r0} bx r0 .pool - thumb_func_end sub_819EC94 + thumb_func_end Swap_PrintYesNoOptions thumb_func_start sub_819ECF0 sub_819ECF0: @ 819ECF0 @@ -1356,7 +464,7 @@ _0819EFF2: movs r0, 0x8 movs r1, 0x1 add r2, sp, 0xC - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x8 movs r1, 0x2 bl CopyWindowToVram @@ -4176,7 +3284,7 @@ _081A06B8: adds r0, r5, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -6802,7 +5910,7 @@ sub_81A1C4C: @ 81A1C4C str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r4,r5} pop {r0} @@ -6841,7 +5949,7 @@ _081A1C9E: movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0x34 pop {r4} pop {r0} @@ -6883,7 +5991,7 @@ sub_81A1CD8: @ 81A1CD8 movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, =0x0000270f cmp r6, r0 bls _081A1D24 @@ -6908,7 +6016,7 @@ _081A1D24: movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0xC] - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0x10 pop {r3-r5} mov r8, r3 @@ -7142,7 +6250,7 @@ _081A1F28: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r6] ldr r2, =gText_OpenLv movs r1, 0x61 @@ -7152,7 +6260,7 @@ _081A1F28: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0xA bl sub_81A1C90 mov r0, r8 @@ -7255,7 +6363,7 @@ sub_81A2008: @ 81A2008 str r1, [sp, 0x8] movs r1, 0x1 mov r2, r12 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, =gStringVar1 adds r1, r4, 0 movs r2, 0x1 @@ -7275,7 +6383,7 @@ sub_81A2008: @ 81A2008 movs r1, 0x1 adds r2, r4, 0 adds r3, r6, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r3-r5} mov r8, r3 @@ -7413,7 +6521,7 @@ _081A2184: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r1, =gRecordsWindowId ldrb r0, [r1] ldr r2, =gText_OpenLv @@ -7423,7 +6531,7 @@ _081A2184: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0xA bl sub_81A1C90 str r6, [sp] @@ -7549,7 +6657,7 @@ sub_81A22B8: @ 81A22B8 movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, =0x0000270f cmp r6, r0 bls _081A2304 @@ -7574,7 +6682,7 @@ _081A2304: movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0xC] - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0x10 pop {r3-r5} mov r8, r3 @@ -7767,7 +6875,7 @@ _081A24B0: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r6] ldr r2, =gText_OpenLv movs r1, 0x61 @@ -7777,7 +6885,7 @@ _081A24B0: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0xA bl sub_81A1C90 mov r0, r8 @@ -7877,7 +6985,7 @@ sub_81A258C: @ 81A258C str r1, [sp, 0x8] movs r1, 0x1 mov r2, r12 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, =gStringVar1 adds r1, r4, 0 movs r2, 0x1 @@ -7897,7 +7005,7 @@ sub_81A258C: @ 81A258C movs r1, 0x1 adds r2, r4, 0 adds r3, r6, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r3-r5} mov r8, r3 @@ -8005,7 +7113,7 @@ sub_81A2698: @ 81A2698 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r6] ldr r2, =gText_OpenLv movs r1, 0x61 @@ -8014,7 +7122,7 @@ sub_81A2698: @ 81A2698 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0xA bl sub_81A1C90 movs r0, 0 @@ -8130,7 +7238,7 @@ sub_81A27E8: @ 81A27E8 movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, =0x0000270f cmp r6, r0 bls _081A2834 @@ -8155,7 +7263,7 @@ _081A2834: movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0xC] - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0x10 pop {r3-r5} mov r8, r3 @@ -8310,7 +7418,7 @@ sub_81A2968: @ 81A2968 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r5] ldr r2, =gText_OpenLv movs r1, 0x61 @@ -8319,7 +7427,7 @@ sub_81A2968: @ 81A2968 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0 movs r1, 0x48 movs r2, 0x7E @@ -8392,7 +7500,7 @@ sub_81A2A28: @ 81A2A28 str r1, [sp, 0x8] movs r1, 0x1 mov r2, r12 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, =0x0000270f cmp r7, r0 bls _081A2A80 @@ -8418,7 +7526,7 @@ _081A2A80: movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0x10] - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r0, r5, 0 ldr r1, [sp, 0xC] movs r2, 0x1 @@ -8437,7 +7545,7 @@ _081A2A80: movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0x14] - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0x18 pop {r3-r5} mov r8, r3 @@ -8693,7 +7801,7 @@ _081A2CE0: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized mov r1, r8 ldrb r0, [r1] ldr r2, =gText_RentalSwap @@ -8702,7 +7810,7 @@ _081A2CE0: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x98 - bl PrintTextOnWindow + bl AddTextPrinterParameterized mov r1, r8 ldrb r0, [r1] ldr r2, =gText_OpenLv @@ -8712,7 +7820,7 @@ _081A2CE0: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0xA bl sub_81A1C90 movs r4, 0x9E @@ -8798,7 +7906,7 @@ sub_81A2DB4: @ 81A2DB4 movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, =0x0000270f cmp r6, r0 bls _081A2E00 @@ -8823,7 +7931,7 @@ _081A2E00: movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0xC] - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0x10 pop {r3-r5} mov r8, r3 @@ -8978,7 +8086,7 @@ sub_81A2F38: @ 81A2F38 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r5] ldr r2, =gText_OpenLv movs r1, 0x61 @@ -8987,7 +8095,7 @@ sub_81A2F38: @ 81A2F38 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0xA bl sub_81A1C90 movs r0, 0 @@ -9058,7 +8166,7 @@ sub_81A2FF8: @ 81A2FF8 movs r5, 0 str r5, [sp, 0x8] mov r2, r9 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r7, =gText_1st movs r0, 0x1 adds r1, r7, 0 @@ -9076,7 +8184,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r7, =gText_2nd movs r0, 0x1 adds r1, r7, 0 @@ -9093,7 +8201,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r7, =gText_3rd movs r0, 0x1 adds r1, r7, 0 @@ -9110,7 +8218,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r7, =gText_4th movs r0, 0x1 adds r1, r7, 0 @@ -9127,7 +8235,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] ldr r2, =gText_Cool movs r1, 0x29 @@ -9136,7 +8244,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] ldr r2, =gText_Beauty movs r1, 0x39 @@ -9145,7 +8253,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] ldr r2, =gText_Cute movs r1, 0x49 @@ -9154,7 +8262,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] ldr r2, =gText_Smart movs r1, 0x59 @@ -9163,7 +8271,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] ldr r2, =gText_Tough movs r1, 0x69 @@ -9172,7 +8280,7 @@ sub_81A2FF8: @ 81A2FF8 str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r1, 0 _081A314A: movs r5, 0 @@ -9210,7 +8318,7 @@ _081A315C: str r1, [sp, 0x8] movs r1, 0x1 mov r2, r9 - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 @@ -11497,7 +10605,7 @@ sub_81A4594: @ 81A4594 adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0xFF strb r0, [r6, 0xD] ldrh r0, [r6, 0x4] @@ -11520,7 +10628,7 @@ sub_81A4594: @ 81A4594 str r1, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrh r1, [r6, 0x4] ldr r0, =0x0000270f cmp r1, r0 @@ -11556,7 +10664,7 @@ _081A4618: str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _081A465C: add sp, 0x2C pop {r3-r5} @@ -11607,7 +10715,7 @@ sub_81A4684: @ 81A4684 str r3, [sp, 0x8] movs r1, 0x1 mov r3, r12 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrh r0, [r5, 0x8] cmp r0, 0 beq _081A47BC @@ -11638,7 +10746,7 @@ sub_81A4684: @ 81A4684 str r1, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r4, r5, 0 adds r4, 0x12 adds r0, r4, 0 @@ -11679,7 +10787,7 @@ _081A473C: str r7, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrh r1, [r5, 0x8] ldr r0, =0x0000270f cmp r1, r0 @@ -11715,7 +10823,7 @@ _081A4778: str r7, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _081A47BC: add sp, 0x2C pop {r3-r5} @@ -11990,7 +11098,7 @@ sub_81A4998: @ 81A4998 str r5, [sp, 0x8] adds r2, r6, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r1, =gUnknown_08611D00 ldr r2, [sp, 0x90] lsls r0, r2, 2 @@ -12012,7 +11120,7 @@ sub_81A4998: @ 81A4998 str r5, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized cmp r7, 0x9 bne _081A4A6C ldr r2, =gSaveBlock2Ptr diff --git a/asm/cable_club.s b/asm/cable_club.s index 0297c2f804..6f4917a196 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -74,7 +74,7 @@ sub_80B23B0: @ 80B23B0 adds r0, r4, 0 movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/contest_painting.s b/asm/contest_painting.s index 8bb38eeed3..f7c146e3e1 100644 --- a/asm/contest_painting.s +++ b/asm/contest_painting.s @@ -438,7 +438,7 @@ _081301A6: str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x1 bl CopyBgTilemapBufferToVram _081301D4: diff --git a/asm/easy_chat.s b/asm/easy_chat.s index ffe8e171b7..e99c885cca 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -4644,7 +4644,7 @@ sub_811D028: @ 811D028 str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r4-r6} pop {r0} diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index a1f1153769..0abbf014f3 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -3022,7 +3022,7 @@ _0808CA94: movs r0, 0 movs r1, 0x1 add r2, sp, 0xC - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] @@ -3133,7 +3133,7 @@ fish6: @ 808CB6C movs r0, 0 movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -3266,7 +3266,7 @@ fish9: @ 808CC64 movs r0, 0 movs r1, 0x1 movs r3, 0x1 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -3423,7 +3423,7 @@ fishB: @ 808CD94 movs r0, 0 movs r1, 0x1 movs r3, 0x1 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 movs r0, 0xD strh r0, [r5, 0x8] movs r0, 0x1 @@ -3471,7 +3471,7 @@ fishC: @ 808CE04 movs r0, 0 movs r1, 0x1 movs r3, 0x1 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] diff --git a/asm/party_menu.s b/asm/party_menu.s index 67fc563fba..67fdab266a 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -4454,7 +4454,7 @@ _081B243E: adds r0, r4, 0 movs r1, 0 movs r3, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 @@ -5938,7 +5938,7 @@ _081B3104: movs r1, 0x1 adds r2, r4, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram _081B313C: @@ -6132,7 +6132,7 @@ _081B328C: str r1, [sp, 0x10] movs r1, 0x1 mov r2, r9 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -6193,7 +6193,7 @@ sub_81B3300: @ 81B3300 movs r0, 0x6 movs r1, 0x1 adds r2, r4, 0 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4} pop {r0} @@ -12508,7 +12508,7 @@ _081B6A40: adds r0, r6, 0 mov r1, r10 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized cmp r4, 0 beq _081B6A82 adds r0, r7, 0x1 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 481a85d8d6..9d56030853 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -4387,7 +4387,7 @@ sub_80CA4FC: @ 80CA4FC movs r0, 0 movs r1, 0x1 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, [r6] ldr r1, =0x00000d1d adds r2, r1 @@ -4398,7 +4398,7 @@ sub_80CA4FC: @ 80CA4FC movs r0, 0 movs r1, 0x2 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, [r6] ldr r0, =0x00000d41 adds r2, r0 @@ -4409,7 +4409,7 @@ sub_80CA4FC: @ 80CA4FC movs r0, 0 movs r1, 0x2 movs r3, 0xA - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, [r6] ldr r1, =0x00000d65 adds r2, r1 @@ -4420,7 +4420,7 @@ sub_80CA4FC: @ 80CA4FC movs r0, 0 movs r1, 0 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized b _080CA5E8 .pool _080CA588: @@ -4434,7 +4434,7 @@ _080CA588: movs r0, 0 movs r1, 0 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, [r6] ldr r1, =0x00000cf9 adds r2, r1 @@ -4445,7 +4445,7 @@ _080CA588: movs r0, 0 movs r1, 0x1 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, [r6] ldr r0, =0x00000d1d adds r2, r0 @@ -4456,7 +4456,7 @@ _080CA588: movs r0, 0 movs r1, 0x2 movs r3, 0x6 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, [r6] ldr r1, =0x00000d41 adds r2, r1 @@ -4467,7 +4467,7 @@ _080CA588: movs r0, 0 movs r1, 0x2 movs r3, 0xA - bl PrintTextOnWindow + bl AddTextPrinterParameterized _080CA5E8: movs r0, 0 movs r1, 0x2 @@ -5337,7 +5337,7 @@ _080CAD30: movs r0, 0x1 movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x1 movs r1, 0x2 movs r2, 0xE @@ -18189,7 +18189,7 @@ _080D17DA: movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 - bl sub_8199F74 + bl AddTextPrinterParameterized5 add sp, 0x14 pop {r4} pop {r0} diff --git a/asm/pokenav.s b/asm/pokenav.s index e69a9ef8c2..4851cd221a 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -2559,7 +2559,7 @@ _081C8434: str r6, [sp, 0x8] adds r2, r7, 0 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] @@ -3769,7 +3769,7 @@ sub_81C8D4C: @ 81C8D4C str r2, [sp, 0x8] adds r2, r5, 0 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r0, r4, 0 movs r1, 0 bl sub_81C8C64 @@ -3897,7 +3897,7 @@ sub_81C8E54: @ 81C8E54 movs r1, 0x7 adds r2, r5, 0 movs r3, 0x2 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrh r0, [r7, 0x8] ldrb r1, [r7, 0x4] str r1, [sp] @@ -10073,7 +10073,7 @@ sub_81CBE88: @ 81CBE88 movs r1, 0x7 adds r2, r3, 0 movs r3, 0x2 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r0} bx r0 @@ -10108,7 +10108,7 @@ sub_81CBEB4: @ 81CBEB4 adds r0, r5, 0 movs r1, 0x7 adds r2, r6, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r4-r6} pop {r0} @@ -10156,7 +10156,7 @@ _081CBF24: movs r1, 0x7 add r2, sp, 0xC adds r3, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0x2C pop {r4,r5} pop {r0} @@ -10190,7 +10190,7 @@ _081CBF76: str r1, [sp, 0x8] movs r1, 0x7 movs r3, 0x10 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x80 lsls r0, 21 adds r6, r0 @@ -10375,7 +10375,7 @@ sub_81CC0E0: @ 81CC0E0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x20 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r0} bx r0 @@ -10409,7 +10409,7 @@ sub_81CC11C: @ 81CC11C str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r0} bx r0 @@ -10452,7 +10452,7 @@ sub_81CC158: @ 81CC158 adds r0, r2, 0 adds r2, r5, 0 movs r3, 0x20 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r4,r5} pop {r0} @@ -11694,7 +11694,7 @@ _081CCB44: str r1, [sp, 0x8] movs r1, 0x7 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrh r1, [r5] ldrb r2, [r5, 0x3] adds r0, r4, 0 @@ -11726,7 +11726,7 @@ _081CCB8E: str r1, [sp, 0x8] movs r1, 0x7 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r1, =0x00001041 movs r0, 0xC str r0, [sp] @@ -11756,7 +11756,7 @@ _081CCBDC: str r1, [sp, 0x8] movs r1, 0x7 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrh r1, [r5] ldrb r2, [r5, 0x3] adds r0, r4, 0 @@ -12035,7 +12035,7 @@ _081CCE08: movs r1, 0x7 adds r2, r6, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x80 lsls r0, 21 adds r4, r0 @@ -15151,7 +15151,7 @@ _081CE7DA: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized b _081CE924 _081CE800: bl sub_81CDD5C @@ -15176,7 +15176,7 @@ _081CE80C: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add r1, sp, 0xC movs r0, 0xFC strb r0, [r1] @@ -15202,7 +15202,7 @@ _081CE80C: movs r1, 0x1 add r2, sp, 0xC movs r3, 0x4 - bl PrintTextOnWindow + bl AddTextPrinterParameterized bl sub_81CDD48 adds r1, r0, 0 lsls r1, 16 @@ -15218,7 +15218,7 @@ _081CE80C: movs r1, 0x1 add r2, sp, 0xC movs r3, 0x1C - bl PrintTextOnWindow + bl AddTextPrinterParameterized b _081CE924 .pool _081CE89C: @@ -17198,7 +17198,7 @@ sub_81CF7F4: @ 81CF7F4 movs r1, 0x1 adds r2, r5, 0 movs r3, 0x4 - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x1 @@ -17214,7 +17214,7 @@ sub_81CF7F4: @ 81CF7F4 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x22 - bl PrintTextOnWindow + bl AddTextPrinterParameterized mov r1, r8 ldrb r0, [r1, 0x8] movs r1, 0x2 @@ -18597,7 +18597,7 @@ sub_81D02B0: @ 81D02B0 adds r0, r4, 0 movs r1, 0x1 add r2, sp, 0xC - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0x1C pop {r4,r5} pop {r0} @@ -20260,7 +20260,7 @@ sub_81D0FF0: @ 81D0FF0 movs r1, 0x1 adds r2, r4, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r6] cmp r0, 0 beq _081D1040 @@ -20305,7 +20305,7 @@ _081D104A: movs r1, 0x1 adds r2, r5, 0 movs r3, 0x3C - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r0, r4, 0 movs r1, 0x2 bl CopyWindowToVram @@ -20379,7 +20379,7 @@ sub_81D10D0: @ 81D10D0 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized mov r1, r8 ldrb r0, [r1, 0xC] movs r1, 0x2 @@ -21106,7 +21106,7 @@ _081D1D8C: movs r1, 0x1 movs r2, 0x8 adds r3, r5, 0 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 _081D1DAC: add sp, 0x34 pop {r4,r5} @@ -22636,7 +22636,7 @@ sub_81D28FC: @ 81D28FC movs r0, 0 movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r5, =gText_PPSlash movs r1, 0x29 mov r10, r1 @@ -22648,7 +22648,7 @@ sub_81D28FC: @ 81D28FC movs r1, 0x1 adds r2, r5, 0 movs r3, 0x4 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r5, =gText_PowerSlash movs r0, 0x1 adds r1, r5, 0 @@ -22665,7 +22665,7 @@ sub_81D28FC: @ 81D28FC movs r0, 0 movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r5, =gText_AccuracySlash movs r0, 0x1 adds r1, r5, 0 @@ -22682,7 +22682,7 @@ sub_81D28FC: @ 81D28FC movs r0, 0 movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x2 negs r0, r0 cmp r9, r0 @@ -22713,7 +22713,7 @@ _081D29C4: movs r1, 0x1 adds r2, r5, 0 movs r3, 0x4 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r1, =gText_PPSlash movs r0, 0x1 movs r2, 0 @@ -22734,7 +22734,7 @@ _081D29C4: movs r0, 0 movs r1, 0x1 add r2, sp, 0xC - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r6, 0x1] cmp r0, 0x1 bhi _081D2A3C @@ -22758,7 +22758,7 @@ _081D2A4A: movs r1, 0x1 adds r2, r5, 0 movs r3, 0x6A - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r6, 0x3] cmp r0, 0 bne _081D2A70 @@ -22783,7 +22783,7 @@ _081D2A7E: movs r1, 0x1 adds r2, r5, 0 movs r3, 0x6A - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r1, =gMoveDescriptionPointers mov r0, r9 subs r0, 0x1 @@ -22798,7 +22798,7 @@ _081D2A7E: movs r1, 0x7 adds r2, r5, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _081D2AB6: add sp, 0x2C pop {r3-r5} @@ -22837,7 +22837,7 @@ sub_81D2ACC: @ 81D2ACC str r6, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r5, =gText_Appeal2 movs r0, 0x1 adds r1, r5, 0 @@ -22853,7 +22853,7 @@ sub_81D2ACC: @ 81D2ACC movs r0, 0x1 movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r5, =gText_Jam2 movs r0, 0x1 adds r1, r5, 0 @@ -22868,7 +22868,7 @@ sub_81D2ACC: @ 81D2ACC movs r0, 0x1 movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x2 negs r0, r0 cmp r4, r0 @@ -22896,7 +22896,7 @@ _081D2B6C: movs r1, 0x1 adds r2, r5, 0 movs r3, 0x4 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r1, =gContestEffectDescriptionPointers ldrb r0, [r4] lsls r0, 2 @@ -22910,7 +22910,7 @@ _081D2B6C: movs r1, 0x7 adds r2, r5, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram @@ -22971,7 +22971,7 @@ sub_81D2BF4: @ 81D2BF4 str r0, [sp, 0xC] movs r1, 0x1 adds r2, r4, 0 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4} pop {r0} diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s index d96e3c2946..84573367a4 100644 --- a/asm/rom_8011DC0.s +++ b/asm/rom_8011DC0.s @@ -5689,7 +5689,7 @@ _08018720: movs r1, 0x1 movs r2, 0x4 movs r3, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 movs r0, 0 adds r1, r7, 0 movs r2, 0xDE @@ -5705,7 +5705,7 @@ _08018720: movs r0, 0 movs r1, 0 movs r3, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram @@ -5877,7 +5877,7 @@ sub_8018884: @ 8018884 movs r1, 0x1 movs r2, 0 movs r3, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 movs r0, 0x1 movs r1, 0x1 movs r2, 0xF @@ -6230,7 +6230,7 @@ _08018B4A: str r1, [sp, 0x10] movs r1, 0x1 movs r3, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 ldrb r0, [r4] movs r1, 0x1 movs r2, 0xF @@ -6376,7 +6376,7 @@ _08018C8C: str r1, [sp, 0x10] movs r1, 0x1 movs r3, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 ldrb r0, [r5] movs r1, 0x1 movs r2, 0xF @@ -9928,7 +9928,7 @@ _0801A93A: adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 add sp, 0x18 pop {r4-r7} pop {r0} @@ -10249,7 +10249,7 @@ sub_801AB68: @ 801AB68 movs r1, 0x1 adds r2, r6, 0 ldr r3, [sp, 0x14] - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 add sp, 0x18 pop {r3-r5} mov r8, r3 @@ -20539,7 +20539,7 @@ sub_801FDDC: @ 801FDDC str r4, [sp, 0x4] str r6, [sp, 0x8] movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r5] ldrb r0, [r0, 0x18] ldr r2, =gText_No @@ -20549,7 +20549,7 @@ sub_801FDDC: @ 801FDDC str r6, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r5] ldrb r0, [r0, 0x18] movs r1, 0x1 @@ -20757,7 +20757,7 @@ _0801FFE2: adds r0, r5, 0 movs r1, 0x1 adds r2, r6, 0 - bl sub_8199F74 + bl AddTextPrinterParameterized5 b _0802007A .pool _08020050: @@ -20779,7 +20779,7 @@ _08020050: adds r0, r5, 0 movs r1, 0x1 adds r2, r6, 0 - bl sub_8199F74 + bl AddTextPrinterParameterized5 _0802007A: ldr r0, =gUnknown_02022C88 ldr r0, [r0] @@ -25326,7 +25326,7 @@ _08022616: str r4, [sp, 0x10] movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 b _0802269C .pool _08022668: @@ -25353,7 +25353,7 @@ _08022668: str r4, [sp, 0x10] movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 _0802269C: ldr r1, =0x000001bb adds r0, r6, r1 @@ -26229,7 +26229,7 @@ _08022D42: movs r0, 0 movs r1, 0x1 adds r2, r4, 0 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 b _08022DB2 .pool _08022D90: @@ -26248,7 +26248,7 @@ _08022D90: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 _08022DB2: movs r0, 0 movs r1, 0x3 @@ -28812,7 +28812,7 @@ _080241A6: movs r0, 0 movs r1, 0x1 movs r3, 0 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -29171,7 +29171,7 @@ _08024460: str r1, [sp, 0xC] movs r0, 0 movs r1, 0x1 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 b _080244AC .pool _08024490: @@ -29187,7 +29187,7 @@ _08024490: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 _080244AC: movs r0, 0 movs r1, 0x3 @@ -29653,7 +29653,7 @@ sub_80247D4: @ 80247D4 movs r1, 0x1 mov r2, r9 mov r3, r8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r3,r4} mov r8, r3 @@ -29695,7 +29695,7 @@ sub_802482C: @ 802482C adds r0, r6, 0 movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized str r4, [sp] adds r0, r6, 0 mov r1, r8 @@ -36210,7 +36210,7 @@ sub_8027BEC: @ 8027BEC adds r0, r7, 0 movs r1, 0x1 adds r2, r4, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r6, 0 ldr r2, =gStringVar1 mov r8, r2 @@ -36252,7 +36252,7 @@ _08027C76: adds r0, r7, 0 movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, [sp, 0x18] lsls r3, r2, 3 subs r3, r5 @@ -36269,7 +36269,7 @@ _08027C76: adds r0, r7, 0 movs r1, 0x1 mov r2, r8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r6, 0x1 cmp r6, 0x2 ble _08027C76 @@ -39648,7 +39648,7 @@ _08029774: str r3, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 @@ -39704,7 +39704,7 @@ _080297CC: str r1, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, =gUnknown_02022CF8 ldr r0, [r2] add r0, r10 @@ -39719,7 +39719,7 @@ _080297CC: movs r1, 0x1 ldr r2, =gText_SpacePoints lsrs r3, 24 - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -39858,7 +39858,7 @@ _0802996C: movs r5, 0 str r5, [sp, 0x8] mov r2, r8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r4] add r0, r9 ldrb r0, [r0] @@ -39869,7 +39869,7 @@ _0802996C: str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x44 - bl PrintTextOnWindow + bl AddTextPrinterParameterized mov r9, r5 ldr r0, [sp, 0xC] cmp r9, r0 @@ -39997,7 +39997,7 @@ _08029AE0: str r1, [sp, 0x8] movs r1, 0x1 ldr r2, =gStringVar4 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _08029B10: adds r0, r7, 0x1 lsls r0, 24 @@ -40125,7 +40125,7 @@ _08029BFC: str r1, [sp, 0x8] movs r1, 0x1 adds r2, r6, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized b _08029F88 .pool _08029C60: @@ -40291,7 +40291,7 @@ _08029DA0: str r6, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized bl DynamicPlaceholderTextUtil_Reset bl sub_802762C lsls r0, 16 @@ -40317,7 +40317,7 @@ _08029DA0: movs r1, 0x1 adds r2, r7, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized bl sub_80279C8 lsls r0, 24 lsrs r4, r0, 24 @@ -40363,7 +40363,7 @@ _08029EA8: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _08029EC8: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] @@ -40597,7 +40597,7 @@ _0802A0CC: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r7] add r0, r10 ldrb r0, [r0] @@ -40609,7 +40609,7 @@ _0802A0CC: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r7] add r0, r10 ldrb r0, [r0] @@ -40622,7 +40622,7 @@ _0802A0CC: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r7] add r0, r10 ldrb r0, [r0] @@ -40634,7 +40634,7 @@ _0802A0CC: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] @@ -40701,7 +40701,7 @@ _0802A1DC: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] @@ -40714,7 +40714,7 @@ _0802A1DC: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] @@ -40731,7 +40731,7 @@ _0802A1DC: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] @@ -40901,7 +40901,7 @@ _0802A3AE: movs r0, 0 movs r1, 0x1 movs r3, 0 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 b _0802A410 .pool _0802A3D8: @@ -41021,7 +41021,7 @@ _0802A4AC: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -41181,7 +41181,7 @@ _0802A610: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r6] adds r0, r4 ldrb r0, [r0] @@ -47057,7 +47057,7 @@ _0802D46A: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 @@ -47141,7 +47141,7 @@ _0802D516: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 @@ -47259,7 +47259,7 @@ _0802D606: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 @@ -47339,7 +47339,7 @@ _0802D6AA: str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 @@ -47538,7 +47538,7 @@ sub_802D7E8: @ 802D7E8 str r1, [sp, 0x4] str r3, [sp, 0x8] movs r1, 0x1 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 @@ -47592,7 +47592,7 @@ sub_802D884: @ 802D884 str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r4] ldrb r0, [r0, 0x12] movs r1, 0x2 @@ -47645,7 +47645,7 @@ sub_802D8FC: @ 802D8FC str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r4] ldrb r0, [r0, 0x12] movs r1, 0x2 @@ -49203,7 +49203,7 @@ sub_802E500: @ 802E500 adds r0, r4, 0 movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r6, 0 adds r7, r4, 0 movs r0, 0xFF @@ -49231,7 +49231,7 @@ _0802E58A: adds r0, r7, 0 movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [sp, 0x20] ldm r0!, {r1} str r0, [sp, 0x20] @@ -49258,7 +49258,7 @@ _0802E58A: adds r0, r7, 0 movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x80 lsls r0, 21 add r8, r0 diff --git a/asm/roulette.s b/asm/roulette.s index b0098daf62..f5d2dc3726 100644 --- a/asm/roulette.s +++ b/asm/roulette.s @@ -519,7 +519,7 @@ _081406E0: str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram @@ -751,7 +751,7 @@ sub_8140914: @ 8140914 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r5] movs r1, 0x3 bl CopyWindowToVram @@ -2655,7 +2655,7 @@ _08141902: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram @@ -2678,7 +2678,7 @@ _08141928: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram @@ -2816,7 +2816,7 @@ sub_8141A18: @ 8141A18 movs r1, 0x1 mov r2, r8 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r5] movs r1, 0x3 bl CopyWindowToVram @@ -3012,7 +3012,7 @@ _08141BB0: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram @@ -3039,7 +3039,7 @@ _08141C58: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram @@ -3071,7 +3071,7 @@ _08141CBC: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram @@ -3158,7 +3158,7 @@ _08141D44: str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram @@ -4676,7 +4676,7 @@ sub_81429F0: @ 81429F0 movs r1, 0x1 adds r2, r4, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -4753,7 +4753,7 @@ sub_8142A88: @ 8142A88 str r0, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -4778,7 +4778,7 @@ _08142B28: movs r1, 0x1 adds r2, r4, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -4808,7 +4808,7 @@ _08142B78: movs r1, 0x1 adds r2, r5, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/script_menu.s b/asm/script_menu.s index b521121bfd..bb145e78d4 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -761,7 +761,7 @@ _080E23D4: adds r0, r6, 0 movs r1, 0x1 adds r3, r7, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, =gText_LogOff movs r0, 0x31 str r0, [sp] @@ -770,7 +770,7 @@ _080E23D4: adds r0, r6, 0 movs r1, 0x1 adds r3, r7, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized b _080E247A .pool _080E2448: @@ -795,7 +795,7 @@ _080E2448: adds r0, r6, 0 movs r1, 0x1 adds r3, r7, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _080E247A: ldr r0, =0x000008ab bl FlagGet @@ -813,7 +813,7 @@ _080E247A: adds r0, r6, 0 movs r1, 0x1 adds r3, r7, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized b _080E24C6 .pool _080E24B0: @@ -826,7 +826,7 @@ _080E24B0: adds r0, r6, 0 movs r1, 0x1 adds r3, r7, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _080E24C6: ldr r4, =gStringVar4 ldr r1, =gText_PlayersPC @@ -877,7 +877,7 @@ ScriptMenu_DisplayPCStartupPrompt: @ 80E2514 movs r0, 0 movs r1, 0x1 movs r3, 0 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r0} bx r0 @@ -1228,7 +1228,7 @@ _080E2802: adds r0, r6, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -1606,7 +1606,7 @@ _080E2B12: movs r0, 0 movs r1, 0x1 movs r3, 0 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 b _080E2B70 .pool _080E2B40: @@ -1630,7 +1630,7 @@ _080E2B40: movs r0, 0 movs r1, 0x1 movs r3, 0 - bl AddTextPrinterParameterized + bl AddTextPrinterParameterized2 _080E2B70: add sp, 0x10 pop {r4} @@ -1687,7 +1687,7 @@ CreateStartMenu: @ 80E2BAC adds r0, r4, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, =gText_MenuOptionPokemon movs r0, 0x19 str r0, [sp] @@ -1696,7 +1696,7 @@ CreateStartMenu: @ 80E2BAC adds r0, r4, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, =gText_MenuOptionBag movs r0, 0x29 str r0, [sp] @@ -1705,7 +1705,7 @@ CreateStartMenu: @ 80E2BAC adds r0, r4, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, =gText_MenuOptionPokenav movs r0, 0x39 str r0, [sp] @@ -1714,7 +1714,7 @@ CreateStartMenu: @ 80E2BAC adds r0, r4, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, =gSaveBlock2Ptr ldr r2, [r0] movs r0, 0x49 @@ -1724,7 +1724,7 @@ CreateStartMenu: @ 80E2BAC adds r0, r4, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, =gText_MenuOptionSave movs r0, 0x59 str r0, [sp] @@ -1733,7 +1733,7 @@ CreateStartMenu: @ 80E2BAC adds r0, r4, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, =gText_MenuOptionOption movs r0, 0x69 str r0, [sp] @@ -1742,7 +1742,7 @@ CreateStartMenu: @ 80E2BAC adds r0, r4, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r2, =gText_MenuOptionExit movs r0, 0x79 str r0, [sp] @@ -1751,7 +1751,7 @@ CreateStartMenu: @ 80E2BAC adds r0, r4, 0 movs r1, 0x1 movs r3, 0x8 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x10 str r0, [sp] movs r0, 0x8 diff --git a/asm/shop.s b/asm/shop.s index 30a5ec278a..8072373897 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -839,7 +839,7 @@ _080E0176: adds r0, r6, 0 movs r1, 0x7 adds r3, r7, 0 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 _080E01AC: add sp, 0x14 pop {r4-r7} @@ -1201,7 +1201,7 @@ BuyMenuPrint: @ 80E04A4 str r6, [sp, 0xC] str r1, [sp, 0x10] movs r1, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r4-r6} pop {r0} diff --git a/asm/trade.s b/asm/trade.s index 30a22ff758..1c9d1f17b4 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -4608,7 +4608,7 @@ _080798BC: movs r1, 0x1 movs r2, 0 movs r3, 0 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0 bl PutWindowTilemap adds r0, r5, 0 @@ -5599,7 +5599,7 @@ sub_807A19C: @ 807A19C str r0, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0 movs r1, 0x14 movs r2, 0xC @@ -14295,7 +14295,7 @@ sub_807F1A8: @ 807F1A8 movs r1, 0x1 movs r2, 0 movs r3, 0x2 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/trainer_card.s b/asm/trainer_card.s index 8ebcfbaccc..2c38140c65 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -419,7 +419,7 @@ _080C2A2C: str r0, [sp, 0x8] movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -8258,7 +8258,7 @@ _080C6E08: str r1, [sp, 0x10] movs r1, 0x1 movs r3, 0x1 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 ldr r0, [sp, 0x4C] mov r10, r4 cmp r0, 0x6 @@ -8410,7 +8410,7 @@ sub_80C6EAC: @ 80C6EAC movs r1, 0x1 movs r2, 0 movs r3, 0x2 - bl AddTextPrinterParameterized2 + bl AddTextPrinterParameterized4 lsrs r5, 1 adds r0, r7, 0 ldr r1, [sp, 0x24] diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s index f4a2bdbb28..e04dedd9ec 100644 --- a/asm/use_pokeblock.s +++ b/asm/use_pokeblock.s @@ -879,7 +879,7 @@ sub_8166D44: @ 8166D44 movs r1, 0x1 adds r2, r4, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x2 bl PutWindowTilemap movs r0, 0x2 @@ -1095,7 +1095,7 @@ sub_8166F50: @ 8166F50 movs r0, 0x2 movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x2 bl PutWindowTilemap movs r0, 0x2 @@ -1134,7 +1134,7 @@ sub_8166FB0: @ 8166FB0 movs r0, 0x2 movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0xC pop {r0} bx r0 @@ -2536,7 +2536,7 @@ sub_8167BA0: @ 8167BA0 movs r0, 0 movs r1, 0x1 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized ldr r0, [r7] ldr r1, =0x00008041 adds r0, r1 diff --git a/include/menu.h b/include/menu.h index 145a7d5dea..b52b165f28 100644 --- a/include/menu.h +++ b/include/menu.h @@ -27,7 +27,7 @@ void sub_81973A4(void); void NewMenuHelpers_DrawDialogueFrame(u8, u8); void sub_819746C(u8 windowId, bool8 copyToVram); void NewMenuHelpers_DrawStdWindowFrame(u8, u8); -u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor); +u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor); void PrintPlayerNameOnWindow(u8, const u8*, u16, u16); void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback); void sub_8197434(u8 windowId, bool8 copyToVram); @@ -58,7 +58,7 @@ s8 Menu_ProcessInputNoWrap_(void); s8 ProcessMenuInput_other(void); void do_scheduled_bg_tilemap_copies_to_vram(void); void clear_scheduled_bg_copies_to_vram(void); -void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str); +void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str); void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u8 a3); void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds); void sub_8197DF8(u8 windowId, bool8 copyToVram); @@ -84,7 +84,7 @@ void sub_819A344(u8 a0, u8 *dest, u8 color); void RemoveMapNamePopUpWindow(void); u8 GetMapNamePopUpWindowId(void); u8 AddMapNamePopUpWindow(void); -void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing); +void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing); void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette); void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP); diff --git a/include/text.h b/include/text.h index 92def780c2..e2120efa33 100644 --- a/include/text.h +++ b/include/text.h @@ -223,7 +223,7 @@ u8 gGlyphDimensions[0x2]; void SetFontsPointer(const struct FontInfo *fonts); void DeactivateAllTextPrinters(void); -u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); +u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); void RunTextPrinters(void); bool16 IsTextPrinterActive(u8 id); diff --git a/src/battle_factory.c b/src/battle_factory.c index 6324f4040c..6d75145047 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -90,6 +90,12 @@ struct FactorySelectMonsStruct // 'Action' refers to the Cancel, Pknm for swap windows. +struct UnkField18Struct +{ + u8 unk0; + u8 unk1[7]; +}; + struct FactorySwapMonsStruct { u8 menuCursorPos; @@ -105,11 +111,8 @@ struct FactorySwapMonsStruct u8 actionsState; bool8 fromSummaryScreen; u8 yesNoCursorPos; - u8 unk17; - u8 unk18; - u8 unk19; - u8 unk1A; - u8 unk1B; + u8 actionsCount; + struct UnkField18Struct *unk18; u8 unk1C; u8 unk1D; u8 unk1E; @@ -174,8 +177,9 @@ static u8 Select_OptionRentDeselect(void); u8 sub_81A6F70(u8 battleMode, u8 lvlMode); u8 sub_81A6CA8(u8 arg0, u8 arg1); static bool32 Select_AreSpeciesValid(u16 monSetId); -void sub_819E538(void); -void sub_819E9E0(void); +void Swap_DestroyAllSprites(void); +void Swap_ShowYesNoOptions(void); +void sub_819E8EC(void); void sub_819EAC0(void); void Swap_UpdateYesNoCursorPosition(s8 direction); void Swap_UpdateMenuCursorPosition(s8 direction); @@ -185,6 +189,8 @@ void Task_HandleSwapScreenChooseMons(u8 taskId); void sub_819D588(u8 taskId); void Swap_PrintOnInfoWindow(const u8 *str); void Swap_ShowMenuOptions(void); +void Swap_PrintMenuOptions(void); +void Swap_PrintYesNoOptions(void); void Swap_PrintMonSpecies(void); void Swap_PrintMonSpecies2(void); void Swap_PrintMonSpecies3(void); @@ -201,19 +207,20 @@ void Swap_RunMenuOptionFunc(u8 taskId); void sub_819F184(u8 taskId); void Swap_PrintActionStrings(void); void Swap_PrintActionStrings2(void); -void Swap_PrintActionStrings3(u8 field); -void sub_819F048(u8 field); +void Swap_PrintActionStrings3(u8 arg0); +void sub_819F048(u8 arg0); +void sub_819E838(u8 arg0); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; EWRAM_DATA u8 *gUnknown_0203CE30 = NULL; EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; -static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; -extern u8 *gUnknown_0203CE40; -extern u8 *gUnknown_0203CE44; -extern u8 *gUnknown_0203CE48; -extern u8 *gUnknown_0203CE4C; +EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; +EWRAM_DATA u8 *gUnknown_0203CE40 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE44 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE48 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE4C = NULL; // IWRAM bss IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; @@ -281,6 +288,7 @@ extern const struct SpriteTemplate gUnknown_08610608; extern const struct SpriteTemplate gUnknown_08610620; extern const struct SpriteTemplate gUnknown_08610638; extern const u8 gUnknown_08610479[]; +extern const u8 gUnknown_08610925[]; extern const u8 gUnknown_08610476[]; extern const struct SpritePalette gUnknown_086106B0[]; extern const struct SpriteSheet gUnknown_08610650[]; @@ -308,6 +316,7 @@ extern const u8 gText_QuitSwapping[]; extern const u8 gText_AcceptThisPkmn[]; extern const u8 gText_SelectPkmnToAccept[]; extern const u8 gText_SelectPkmnToSwap[]; +extern const u8 gText_PkmnSwap[]; // code void sub_819A44C(struct Sprite *sprite) @@ -1066,7 +1075,7 @@ static void sub_819B958(u8 windowId) static void Select_PrintRentalPkmnString(void) { FillWindowPixelBuffer(0, 0); - PrintTextOnWindow(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } @@ -1098,14 +1107,14 @@ static void Select_PrintSelectMonString(void) else str = gText_TheseThreePkmnOkay; - PrintTextOnWindow(2, 1, str, 2, 5, 0, NULL); + AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } static void Select_PrintCantSelectSameMon(void) { FillWindowPixelBuffer(2, 0); - PrintTextOnWindow(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); + AddTextPrinterParameterized(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } @@ -1200,7 +1209,7 @@ static void Select_PrintMonCategory(void) species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); x = GetStringRightAlignXOffset(1, text, 0x76); - PrintTextOnWindow(5, 1, text, x, 1, 0, NULL); + AddTextPrinterParameterized(5, 1, text, x, 1, 0, NULL); CopyWindowToVram(5, 2); } } @@ -1554,7 +1563,7 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen { DestroyTask(sFactorySwapScreen->palBlendTaskId); sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); - sub_819E538(); + Swap_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE40); FREE_AND_SET_NULL(gUnknown_0203CE44); FREE_AND_SET_NULL(gUnknown_0203CE48); @@ -1606,7 +1615,7 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen if (!UpdatePaletteFade()) { DestroyTask(sFactorySwapScreen->palBlendTaskId); - sub_819E538(); + Swap_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE40); FREE_AND_SET_NULL(gUnknown_0203CE44); FREE_AND_SET_NULL(gUnknown_0203CE48); @@ -1630,7 +1639,7 @@ void Task_HandleSwapScreenYesNo(u8 taskId) switch (gTasks[taskId].data[0]) { case 4: - sub_819E9E0(); + Swap_ShowYesNoOptions(); gTasks[taskId].data[0] = 5; break; case 5: @@ -2623,3 +2632,267 @@ void Swap_InitAllSprites(void) gSprites[sFactorySwapScreen->unk8[0][1]].invisible = 0; gSprites[sFactorySwapScreen->unk8[0][2]].invisible = 0; } + +void Swap_DestroyAllSprites(void) +{ + u8 i, j; + + for (i = 0; i < 3; i++) + DestroySprite(&gSprites[sFactorySwapScreen->ballSpriteIds[i]]); + DestroySprite(&gSprites[sFactorySwapScreen->cursorSpriteId]); + DestroySprite(&gSprites[sFactorySwapScreen->menuCursor1SpriteId]); + DestroySprite(&gSprites[sFactorySwapScreen->menuCursor2SpriteId]); + for (i = 0; i < 2; i++) + { + for (j = 0; j < 3; j++) + DestroySprite(&gSprites[sFactorySwapScreen->unk8[i][j]]); + } + for (i = 0; i < 2; i++) + { + for (j = 0; j < 2; j++) + DestroySprite(&gSprites[sFactorySwapScreen->unkE[i][j]]); + } +} + +void Swap_HandleActionCursorChange(u8 cursorId) +{ + if (cursorId < 3) + { + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0; + sub_819E8EC(); + gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[cursorId]].pos1.x; + } + else + { + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; + sub_819E838(sFactorySwapScreen->unk18[cursorId].unk0); + } +} + +void Swap_UpdateBallCursorPosition(s8 direction) +{ + u8 cursorPos; + PlaySE(SE_SELECT); + if (direction > 0) // Move cursor right. + { + if (sFactorySwapScreen->cursorPos + 1 != sFactorySwapScreen->actionsCount) + sFactorySwapScreen->cursorPos++; + else + sFactorySwapScreen->cursorPos = 0; + } + else // Move cursor left. + { + if (sFactorySwapScreen->cursorPos != 0) + sFactorySwapScreen->cursorPos--; + else + sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1; + } + + cursorPos = sFactorySwapScreen->cursorPos; + Swap_HandleActionCursorChange(cursorPos); +} + +void Swap_UpdateActionCursorPosition(s8 direction) +{ + u8 cursorPos; + PlaySE(SE_SELECT); + if (direction > 0) // Move cursor down. + { + if (sFactorySwapScreen->cursorPos < 3) + sFactorySwapScreen->cursorPos = 3; + else if (sFactorySwapScreen->cursorPos + 1 != sFactorySwapScreen->actionsCount) + sFactorySwapScreen->cursorPos++; + else + sFactorySwapScreen->cursorPos = 0; + } + else // Move cursor up. + { + if (sFactorySwapScreen->cursorPos < 3) + sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1; + else if (sFactorySwapScreen->cursorPos != 0) + sFactorySwapScreen->cursorPos--; + else + sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1; + } + + cursorPos = sFactorySwapScreen->cursorPos; + Swap_HandleActionCursorChange(cursorPos); +} + +void Swap_UpdateYesNoCursorPosition(s8 direction) +{ + if (direction > 0) // Move cursor down. + { + if (sFactorySwapScreen->yesNoCursorPos != 1) + sFactorySwapScreen->yesNoCursorPos++; + else + sFactorySwapScreen->yesNoCursorPos = 0; + } + else // Move cursor up. + { + if (sFactorySwapScreen->yesNoCursorPos != 0) + sFactorySwapScreen->yesNoCursorPos--; + else + sFactorySwapScreen->yesNoCursorPos = 1; + } + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; +} + +void Swap_UpdateMenuCursorPosition(s8 direction) +{ + PlaySE(SE_SELECT); + if (direction > 0) // Move cursor down. + { + if (sFactorySwapScreen->menuCursorPos != MENU_OPTIONS_COUNT - 1) + sFactorySwapScreen->menuCursorPos++; + else + sFactorySwapScreen->menuCursorPos = 0; + } + else // Move cursor up. + { + if (sFactorySwapScreen->menuCursorPos != 0) + sFactorySwapScreen->menuCursorPos--; + else + sFactorySwapScreen->menuCursorPos = MENU_OPTIONS_COUNT - 1; + } + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; +} + +void sub_819E838(u8 arg0) +{ + u8 i; + + for (i = 0; i < 3; i++) + { + if (arg0 == 2) + { + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 0; + if (i < 2) + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1; + } + else if (arg0 == 3) + { + if (i < 2) + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + } + } +} + +void sub_819E8EC(void) +{ + u8 i; + + for (i = 0; i < 3; i++) + { + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + if (i < 2) + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1; + } +} + +void Swap_ShowMenuOptions(void) +{ + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + sFactorySwapScreen->fromSummaryScreen = FALSE; + else + sFactorySwapScreen->menuCursorPos = 0; + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.x = 176; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0; + + Swap_PrintMenuOptions(); +} + +void Swap_ShowYesNoOptions(void) +{ + sFactorySwapScreen->yesNoCursorPos = 0; + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.x = 176; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = 112; + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0; + + Swap_PrintYesNoOptions(); +} + +void sub_819EA64(u8 windowId) +{ + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; + FillWindowPixelBuffer(windowId, 0); + CopyWindowToVram(windowId, 2); + ClearWindowTilemap(windowId); +} + +void sub_819EAC0(void) +{ + PutWindowTilemap(1); + FillWindowPixelBuffer(1, 0); + CopyWindowToVram(1, 2); +} + +void sub_819EADC(void) +{ + PutWindowTilemap(7); + FillWindowPixelBuffer(7, 0); + CopyWindowToVram(7, 2); +} + +void sub_819EAF8(void) +{ + sub_819EAC0(); + PutWindowTilemap(5); + FillWindowPixelBuffer(5, 0); + CopyWindowToVram(5, 2); +} + +void Swap_PrintPkmnSwap(void) +{ + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL); + CopyWindowToVram(0, 3); +} + +void Swap_PrintMonSpecies(void) +{ + u16 species; + u8 x; + + FillWindowPixelBuffer(1, 0); + if (sFactorySwapScreen->cursorPos > 2) + { + CopyWindowToVram(1, 2); + } + else + { + u8 monId = sFactorySwapScreen->cursorPos; + if (sFactorySwapScreen->actionsState == 0) + species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); + else + species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + StringCopy(gStringVar4, gSpeciesNames[species]); + x = GetStringRightAlignXOffset(1, gStringVar4, 86); + AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610925, 0, gStringVar4); + CopyWindowToVram(1, 3); + } +} + +void Swap_PrintOnInfoWindow(const u8 *str) +{ + FillWindowPixelBuffer(2, 0); + AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); + CopyWindowToVram(2, 2); +} diff --git a/src/battle_interface.c b/src/battle_interface.c index 278edb6f43..e45af2bf09 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2589,7 +2589,7 @@ static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, color[1] = 1; color[2] = 3; - AddTextPrinterParameterized2(winId, 0, x, y, 0, 0, color, -1, str); + AddTextPrinterParameterized4(winId, 0, x, y, 0, 0, color, -1, str); *windowId = winId; return (u8*)(GetWindowAttribute(winId, WINDOW_TILE_DATA)); diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 8a5ce7a99a..5a31554b42 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -997,7 +997,7 @@ static void sub_81C6404(void) StringExpandPlaceholders(gStringVar4, gText_xVar1); sub_81C6CEC(3); x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28); - PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL); + AddTextPrinterParameterized(3, 1, gStringVar4, x, 2, 0, NULL); } static void sub_81C645C(s16 value) @@ -1007,7 +1007,7 @@ static void sub_81C645C(s16 value) ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_xVar1); x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28); - PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL); + AddTextPrinterParameterized(3, 1, gStringVar4, x, 2, 0, NULL); } static void sub_81C64B4(u8 taskId) @@ -1280,12 +1280,12 @@ static void sub_81C6BD8(void) static void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) { - AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); + AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); } static void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) { - AddTextPrinterParameterized2(windowId, 7, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); + AddTextPrinterParameterized4(windowId, 7, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); } static void sub_81C6CEC(u8 windowId) diff --git a/src/battle_records.c b/src/battle_records.c index 1680f3cc4e..762cb8aae1 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -266,7 +266,7 @@ static void PrintLinkBattleWinsLossesDraws(struct LinkBattleRecord *records) StringExpandPlaceholders(gStringVar4, gText_TotalRecordWLD); x = GetStringCenterAlignXOffset(1, gStringVar4, 0xD0); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar4, x, 0x11, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x, 0x11, 0, NULL); } static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y, s32 language) @@ -274,10 +274,10 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y, s32 lan if (record->wins == 0 && record->losses == 0 && record->draws == 0) { // empty slot - PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoPlayer, 8, (y * 8) + 1, 0, NULL); - PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoScore, 80, (y * 8) + 1, 0, NULL); - PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoScore, 128, (y * 8) + 1, 0, NULL); - PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoScore, 176, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoPlayer, 8, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoScore, 80, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoScore, 128, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoScore, 176, (y * 8) + 1, 0, NULL); } else { @@ -285,16 +285,16 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y, s32 lan StringCopyN(gStringVar1, record->name, 7); ConvertInternationalString(gStringVar1, language); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 8, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 8, (y * 8) + 1, 0, NULL); ConvertIntToDecimalStringN(gStringVar1, record->wins, STR_CONV_MODE_RIGHT_ALIGN, 4); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 80, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 80, (y * 8) + 1, 0, NULL); ConvertIntToDecimalStringN(gStringVar1, record->losses, STR_CONV_MODE_RIGHT_ALIGN, 4); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 128, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 128, (y * 8) + 1, 0, NULL); ConvertIntToDecimalStringN(gStringVar1, record->draws, STR_CONV_MODE_RIGHT_ALIGN, 4); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 176, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 176, (y * 8) + 1, 0, NULL); } } @@ -308,11 +308,11 @@ void ShowLinkBattleRecords(void) StringExpandPlaceholders(gStringVar4, gText_PlayersBattleResults); x = GetStringCenterAlignXOffset(1, gStringVar4, 208); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar4, x, 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x, 1, 0, NULL); PrintLinkBattleWinsLossesDraws(gSaveBlock1Ptr->linkBattleRecords.entries); StringExpandPlaceholders(gStringVar4, gText_WinLoseDraw); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar4, 0, 41, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, 0, 41, 0, NULL); for (i = 0; i < LINK_B_RECORDS_COUNT; i++) { diff --git a/src/berry_blender.c b/src/berry_blender.c index 02df933f29..92d44ea782 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -3487,8 +3487,8 @@ void ShowBerryBlenderRecordWindow(void) FillWindowPixelBuffer(gRecordsWindowId, 0x11); xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 0x90); - PrintTextOnWindow(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL); - PrintTextOnWindow(gRecordsWindowId, 1, gText_234Players, 4, 0x29, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gText_234Players, 4, 0x29, 0, NULL); for (i = 0, yPos = 0x29; i < BLENDER_SCORES_NO; i++) { @@ -3503,7 +3503,7 @@ void ShowBerryBlenderRecordWindow(void) txtPtr = StringAppend(txtPtr, sText_RPM); xPos = GetStringRightAlignXOffset(1, text, 0x8C); - PrintTextOnWindow(gRecordsWindowId, 1, text, xPos, yPos + (i * 16), 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, text, xPos, yPos + (i * 16), 0, NULL); } PutWindowTilemap(gRecordsWindowId); @@ -3596,7 +3596,7 @@ static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s3 FillWindowPixelBuffer(windowId, txtColor[0] | (txtColor[0] << 4)); } - AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, 1, txtColor, speed, string); + AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, 1, txtColor, speed, string); } static bool32 Blender_PrintText(s16 *textState, const u8 *string, s32 textSpeed) diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index fb4bf68177..7623decd3f 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -343,7 +343,7 @@ static void HandleInitWindows(void) static void PrintTextInBerryTagScreen(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId) { - AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, sTextColors[colorStructId], speed, text); + AddTextPrinterParameterized4(windowId, 1, x, y, 0, 0, sTextColors[colorStructId], speed, text); } static void AddBerryTagTextToBg0(void) @@ -376,7 +376,7 @@ static void PrintBerryNumberAndName(void) static void PrintBerrySize(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL); if (berry->size != 0) { u32 inches, fraction; @@ -390,34 +390,34 @@ static void PrintBerrySize(void) ConvertIntToDecimalStringN(gStringVar1, inches, 0, 2); ConvertIntToDecimalStringN(gStringVar2, fraction, 0, 2); StringExpandPlaceholders(gStringVar4, gText_Var1DotVar2); - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gStringVar4, 0x28, 1, 0, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gStringVar4, 0x28, 1, 0, NULL); } else { - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 1, 0, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 1, 0, NULL); } } static void PrintBerryFirmness(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL); if (berry->firmness != 0) - PrintTextOnWindow(WIN_SIZE_FIRM, 1, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL); else - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL); } static void PrintBerryDescription1(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(WIN_DESC, 1, berry->description1, 0, 1, 0, NULL); + AddTextPrinterParameterized(WIN_DESC, 1, berry->description1, 0, 1, 0, NULL); } static void PrintBerryDescription2(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(WIN_DESC, 1, berry->description2, 0, 0x11, 0, NULL); + AddTextPrinterParameterized(WIN_DESC, 1, berry->description2, 0, 0x11, 0, NULL); } static void CreateBerrySprite(void) diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 5c1f7db20d..839a77e4a4 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -79,7 +79,7 @@ void CB2_InitClearSaveDataScreen(void) static void Task_DoClearSaveDataScreenYesNo(u8 taskId) { SetWindowBorderStyle(0, 0, 2, 14); - PrintTextOnWindow(0, 1, gText_ClearAllSaveData, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_ClearAllSaveData, 0, 1, 0, 0); CreateYesNoMenu(sClearSaveYesNo, 2, 14, 1); gTasks[taskId].func = Task_ClearSaveDataScreenYesNoChoice; } @@ -90,7 +90,7 @@ static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId) { case 0: FillWindowPixelBuffer(0, 17); - PrintTextOnWindow(0, 1, gText_ClearingData, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_ClearingData, 0, 1, 0, 0); gTasks[taskId].func = Task_ClearSaveData; break; case 1: diff --git a/src/coins.c b/src/coins.c index 12e0bd4ef1..967eb92aca 100644 --- a/src/coins.c +++ b/src/coins.c @@ -19,7 +19,7 @@ void PrintCoinsString(u32 coinAmount) StringExpandPlaceholders(gStringVar4, gText_Coins); xAlign = GetStringRightAlignXOffset(1, gStringVar4, 0x40); - PrintTextOnWindow(sCoinsWindowId, 1, gStringVar4, xAlign, 1, 0, NULL); + AddTextPrinterParameterized(sCoinsWindowId, 1, gStringVar4, xAlign, 1, 0, NULL); } void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) diff --git a/src/credits.c b/src/credits.c index c054958ce3..8e641fdb50 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1189,7 +1189,7 @@ static void sub_81755BC(const u8 *string, u8 y, u8 a2) } x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, 0xF0, 1); - AddTextPrinterParameterized2(0, 1, x, y, 1, 0, color, -1, string); + AddTextPrinterParameterized4(0, 1, x, y, 1, 0, color, -1, string); } void sub_8175620(void) diff --git a/src/decoration.c b/src/decoration.c index b21d512780..442c66d7fb 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -499,7 +499,7 @@ void sub_8126B80(u8 taskId) void sub_8126C08(void) { FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3); } void SecretBasePC_Decorate(u8 taskId) @@ -622,7 +622,7 @@ void sub_8126E8C(u8 taskId) sub_8126F68(r5, i, 8, i << 4, FALSE, 0xFF); } } - PrintTextOnWindow(r5, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, (i << 4) + 1, 0, 0); + AddTextPrinterParameterized(r5, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, (i << 4) + 1, 0, 0); schedule_bg_copy_tilemap_to_vram(0); } @@ -636,12 +636,12 @@ void sub_8126F68(u8 winid, u8 decorCat, u8 x, u8 y, bool8 flag, u8 speed) sub_8127058(gStringVar4, flag); strbuf = StringLength(gStringVar4) + gStringVar4; StringCopy(strbuf, sDecorCatNames[decorCat]); - PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL); + AddTextPrinterParameterized(winid, 1, gStringVar4, x, y, speed, NULL); strbuf = ConvertIntToDecimalStringN(strbuf, CountDecorationCategoryN(decorCat), STR_CONV_MODE_RIGHT_ALIGN, 2); *strbuf++ = CHAR_SLASH; ConvertIntToDecimalStringN(strbuf, gDecorationInventories[decorCat].size, STR_CONV_MODE_RIGHT_ALIGN, 2); x = GetStringRightAlignXOffset(1, gStringVar4, width); - PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL); + AddTextPrinterParameterized(winid, 1, gStringVar4, x, y, speed, NULL); } void sub_8127058(u8 *str, bool8 flag) @@ -932,7 +932,7 @@ void sub_8127744(u32 a0) { txt = gDecorations[gCurDecorInventoryItems[a0]].description; } - PrintTextOnWindow(winidx, 1, txt, 0, 1, 0, 0); + AddTextPrinterParameterized(winidx, 1, txt, 0, 1, 0, 0); } void sub_81277A8(void) diff --git a/src/diploma.c b/src/diploma.c index 599ceec723..8e0b48ed30 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -17,7 +17,7 @@ extern int decompress_and_copy_tile_data_to_vram(u8 bg_id, void *src, int size, extern bool8 free_temp_tile_data_buffers_if_possible(void); extern void sub_80861E8(void); // rom4 extern bool16 sub_80C0944(void); -extern void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 *color, s8 speed, u8 *str); +extern void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 *color, s8 speed, u8 *str); extern u16 gUnknown_0860F074[]; @@ -210,5 +210,5 @@ static void PrintDiplomaText(u8 *text, u8 var1, u8 var2) { u8 color[3] = {0, 2, 3}; - AddTextPrinterParameterized2(0, 1, var1, var2, 0, 0, color, -1, text); + AddTextPrinterParameterized4(0, 1, var1, var2, 0, 0, color, -1, text); } diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 1c626cc868..f72ca04a32 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -856,7 +856,7 @@ static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) sEggHatchData->textColor[0] = 0; sEggHatchData->textColor[1] = 5; sEggHatchData->textColor[2] = 6; - AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, sEggHatchData->textColor, speed, string); + AddTextPrinterParameterized4(windowId, 1, x, y, 0, 0, sEggHatchData->textColor, speed, string); } u8 GetEggStepsToSubtract(void) diff --git a/src/field_region_map.c b/src/field_region_map.c index f565480682..14b4cdd2fc 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -126,7 +126,7 @@ static void FieldUpdateRegionMap(void) case 1: SetWindowBorderStyle(1, 0, 0x27, 0xd); offset = GetStringCenterAlignXOffset(1, gText_Hoenn, 0x38); - PrintTextOnWindow(1, 1, gText_Hoenn, offset, 1, 0, NULL); + AddTextPrinterParameterized(1, 1, gText_Hoenn, offset, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); SetWindowBorderStyle(0, 0, 0x27, 0xd); PrintRegionMapSecName(); @@ -182,7 +182,7 @@ static void PrintRegionMapSecName(void) if (sFieldRegionMapHandler->regionMap.iconDrawType != MAPSECTYPE_NONE) { FillWindowPixelBuffer(0, 0x11); - PrintTextOnWindow(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } else diff --git a/src/field_specials.c b/src/field_specials.c index 84852e6b5c..a6c0a1baf2 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1836,10 +1836,10 @@ void sub_8139B60(void) SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0); xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64); - PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL); xPos = GetStringCenterAlignXOffset(1, gElevatorFloorsTable[gSpecialVar_0x8005], 64); - PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL); PutWindowTilemap(gUnknown_0203AB5E); CopyWindowToVram(gUnknown_0203AB5E, 3); @@ -2178,13 +2178,13 @@ void sub_8139F20(void) } break; case 5: - if (gSaveBlock2Ptr->frontier.field_DE2[0] >= gSaveBlock2Ptr->frontier.field_DE2[1]) + if (gSaveBlock2Ptr->frontier.field_DE2[0][0] >= gSaveBlock2Ptr->frontier.field_DE2[0][1]) { - unk = gSaveBlock2Ptr->frontier.field_DE2[0]; + unk = gSaveBlock2Ptr->frontier.field_DE2[0][0]; } else { - unk = gSaveBlock2Ptr->frontier.field_DE2[1]; + unk = gSaveBlock2Ptr->frontier.field_DE2[0][1]; } break; case 6: @@ -3063,7 +3063,7 @@ void sub_813A8FC(void) u32 x; StringCopy(ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->frontier.frontierBattlePoints, STR_CONV_MODE_RIGHT_ALIGN, 4), gText_BP); x = GetStringRightAlignXOffset(1, string, 48); - PrintTextOnWindow(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL); + AddTextPrinterParameterized(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL); } void sub_813A958(void) @@ -3201,7 +3201,7 @@ static void sub_813AA60(u16 a0, u16 a1) switch (a0) { case 3: - AddTextPrinterParameterized(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3); if (gUnknown_085B312C[a1] == 0xFFFF) { sub_813ABD4(gUnknown_085B312C[a1]); @@ -3214,7 +3214,7 @@ static void sub_813AA60(u16 a0, u16 a1) } break; case 4: - AddTextPrinterParameterized(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3); if (gUnknown_085B3142[a1] == 0xFFFF) { sub_813ABD4(gUnknown_085B3142[a1]); @@ -3227,11 +3227,11 @@ static void sub_813AA60(u16 a0, u16 a1) } break; case 5: - AddTextPrinterParameterized(0, 1, gUnknown_085B31B4[a1], 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085B31B4[a1], 0, NULL, 2, 1, 3); sub_813ABD4(gUnknown_085B314E[a1]); break; case 6: - AddTextPrinterParameterized(0, 1, gUnknown_085B31D0[a1], 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085B31D0[a1], 0, NULL, 2, 1, 3); sub_813ABD4(gUnknown_085B315C[a1]); break; } @@ -3339,11 +3339,11 @@ static void sub_813AD34(u8 a0, u16 a1) FillWindowPixelRect(gUnknown_0203AB5E, 0x11, 0, 0, 96, 48); if (a0 == 10) { - PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL); + AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL); } else { - PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL); + AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL); } } } @@ -3367,10 +3367,10 @@ void sub_813ADD4(void) for (i = 0; i < 6; i++) { - sub_8199F74(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0); + AddTextPrinterParameterized5(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0); } - PrintTextOnWindow(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL); PutWindowTilemap(task->data[13]); CopyWindowToVram(task->data[13], 3); } diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 081c963eea..b739ba66d3 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -531,7 +531,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId) *lastSavedTeam = *sHofMonPtr; NewMenuHelpers_DrawDialogueFrame(0, 0); - AddTextPrinterParameterized(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3); CopyWindowToVram(0, 3); gTasks[taskId].func = Task_Hof_TrySaveData; } @@ -738,7 +738,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId) FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); HallOfFame_PrintPlayerInfo(1, 2); NewMenuHelpers_DrawDialogueFrame(0, 0); - AddTextPrinterParameterized(0, 1, gText_LeagueChamp, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gText_LeagueChamp, 0, NULL, 2, 1, 3); CopyWindowToVram(0, 3); gTasks[taskId].func = Task_Hof_ExitOnKeyPressed; } @@ -1107,7 +1107,7 @@ static void Task_HofPC_PrintDataIsCorrupted(u8 taskId) { sub_8198180(gText_UnkCtrlF800Exit, 8, 1); NewMenuHelpers_DrawDialogueFrame(0, 0); - AddTextPrinterParameterized(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3); CopyWindowToVram(0, 3); gTasks[taskId].func = Task_HofPC_ExitOnButtonPress; } diff --git a/src/item_menu.c b/src/item_menu.c index f58c2b8b3e..c9b19fc3fc 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -884,7 +884,7 @@ void sub_81ABC54(u8 a, s16 b) u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2; ConvertIntToDecimalStringN(gStringVar1, b, 2, r3); StringExpandPlaceholders(gStringVar4, gText_xVar1); - PrintTextOnWindow(a, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0); + AddTextPrinterParameterized(a, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0); } void sub_81ABCC0(int a, int b, int c) @@ -892,7 +892,7 @@ void sub_81ABCC0(int a, int b, int c) u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2; ConvertIntToDecimalStringN(gStringVar1, b, 2, r3); StringExpandPlaceholders(gStringVar4, gText_xVar1); - PrintTextOnWindow(a, 1, gStringVar4, 0, 1, -1, 0); + AddTextPrinterParameterized(a, 1, gStringVar4, 0, 1, -1, 0); PrintMoneyAmount(a, 0x26, 1, c, 0); } @@ -2118,7 +2118,7 @@ void setup_bag_menu_textboxes(void) void bag_menu_print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 h) { - AddTextPrinterParameterized2(windowId, fontId, left, top, letterSpacing, lineSpacing, gUnknown_08614164[h], speed, str); + AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, gUnknown_08614164[h], speed, str); } u8 sub_81AE124(u8 a) diff --git a/src/learn_move.c b/src/learn_move.c index e288a393dd..ff23cb3dc7 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -632,7 +632,7 @@ static void HideSpritesAndPrintTeachText(bool8 a) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); FillWindowPixelBuffer(3, 0x11); - PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } @@ -696,7 +696,7 @@ static void ShowTeachMoveText(bool8 showContest) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); FillWindowPixelBuffer(3, 0x11); - PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } diff --git a/src/list_menu.c b/src/list_menu.c index 6b5c3af942..ec45ba3e42 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -600,7 +600,7 @@ static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y) colors[0] = gListMenuOverride.fillValue; colors[1] = gListMenuOverride.cursorPal; colors[2] = gListMenuOverride.cursorShadowPal; - AddTextPrinterParameterized2(list->template.windowId, + AddTextPrinterParameterized4(list->template.windowId, gListMenuOverride.fontId, x, y, gListMenuOverride.lettersSpacing, @@ -613,7 +613,7 @@ static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y) colors[0] = list->template.fillValue; colors[1] = list->template.cursorPal; colors[2] = list->template.cursorShadowPal; - AddTextPrinterParameterized2(list->template.windowId, + AddTextPrinterParameterized4(list->template.windowId, list->template.fontId, x, y, list->template.lettersSpacing, diff --git a/src/main_menu.c b/src/main_menu.c index b4b343fc6c..19f11efab1 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1820,7 +1820,7 @@ void set_default_player_name(u8 nameId) void CreateMainMenuErrorWindow(const u8* str) { FillWindowPixelBuffer(7, 17); - PrintTextOnWindow(7, 1, str, 0, 1, 2, 0); + AddTextPrinterParameterized(7, 1, str, 0, 1, 2, 0); PutWindowTilemap(7); CopyWindowToVram(7, 2); DrawMainMenuWindowBorder(sWindowTemplate_ErrorWindow, MAIN_MENU_BORDER_TILE); diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 578636d403..1876f2ca43 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -251,7 +251,7 @@ static void ShowMapNamePopUpWindow(void) mapDisplayHeader[0] = EXT_CTRL_CODE_BEGIN; mapDisplayHeader[1] = EXT_CTRL_CODE_HIGHLIGHT; mapDisplayHeader[2] = TEXT_COLOR_TRANSPARENT; - PrintTextOnWindow(GetMapNamePopUpWindowId(), 7, mapDisplayHeader, x, 3, 0xFF, NULL); + AddTextPrinterParameterized(GetMapNamePopUpWindowId(), 7, mapDisplayHeader, x, 3, 0xFF, NULL); CopyWindowToVram(GetMapNamePopUpWindowId(), 3); } diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 591e3ad9a1..6ebc7affaa 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -438,7 +438,7 @@ static void BardSong_TextSubPrinter(struct TextSubPrinter * printer, u16 a1) static void sub_8120708(const u8 * src) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, src, 0, 1, 1, BardSong_TextSubPrinter); + AddTextPrinterParameterized(0, 1, src, 0, 1, 1, BardSong_TextSubPrinter); gUnknown_03002F84 = TRUE; CopyWindowToVram(0, 3); } @@ -1160,9 +1160,9 @@ static void PrintStoryList(void) u16 gameStatID = sStorytellerPtr->gameStatIDs[i]; if (gameStatID == 0) break; - PrintTextOnWindow(sStorytellerWindowId, 1, GetStoryTitleByStat(gameStatID), 8, 16 * i + 1, 0xFF, NULL); + AddTextPrinterParameterized(sStorytellerWindowId, 1, GetStoryTitleByStat(gameStatID), 8, 16 * i + 1, 0xFF, NULL); } - PrintTextOnWindow(sStorytellerWindowId, 1, gText_Exit, 8, 16 * i + 1, 0xFF, NULL); + AddTextPrinterParameterized(sStorytellerWindowId, 1, gText_Exit, 8, 16 * i + 1, 0xFF, NULL); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sStorytellerWindowId, GetFreeStorySlot() + 1, 0); CopyWindowToVram(sStorytellerWindowId, 3); } diff --git a/src/menu.c b/src/menu.c index 7c9c2f8a80..38d355cf27 100644 --- a/src/menu.c +++ b/src/menu.c @@ -149,7 +149,7 @@ u16 sub_8197224(void) return IsTextPrinterActive(0); } -u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor) +u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor) { struct TextSubPrinter printer; @@ -175,19 +175,19 @@ void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress) { void (*callback)(struct TextSubPrinter *, u16) = NULL; gTextFlags.flag_0 = allowSkippingDelayWithButtonPress; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3); } void AddTextPrinterForMessage_2(bool8 allowSkippingDelayWithButtonPress) { gTextFlags.flag_0 = allowSkippingDelayWithButtonPress; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3); } void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed) { gTextFlags.flag_0 = allowSkippingDelayWithButtonPress; - AddTextPrinterParameterized(0, 1, gStringVar4, speed, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, speed, NULL, 2, 1, 3); } void sub_81973A4(void) @@ -525,7 +525,7 @@ void RemoveMapNamePopUpWindow(void) void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextSubPrinter *, u16)) { gTextFlags.flag_0 = a1; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3); } void sub_8197AE8(bool8 copyToVram) @@ -843,7 +843,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo 0, string2); } - AddTextPrinterParameterized2(gUnknown_0203CDA0, 1, 4, 1, 0, 0, color, 0, string); + AddTextPrinterParameterized4(gUnknown_0203CDA0, 1, 4, 1, 0, 0, color, 0, string); if (copyToVram) CopyWindowToVram(gUnknown_0203CDA0, 3); } @@ -918,7 +918,7 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos) width = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 0); height = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 1); FillWindowPixelRect(gUnknown_0203CD90.windowId, 0x11, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * oldPos + gUnknown_0203CD90.top, width, height); - PrintTextOnWindow(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0); + AddTextPrinterParameterized(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0); } u8 MoveMenuCursor(s8 cursorDelta) @@ -1079,7 +1079,7 @@ void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 i u8 i; for (i = 0; i < itemCount; i++) { - PrintTextOnWindow(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL); + AddTextPrinterParameterized(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL); } CopyWindowToVram(windowId, 2); } @@ -1089,7 +1089,7 @@ void sub_81987BC(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 item u8 i; for (i = 0; i < itemCount; i++) { - sub_8199F74(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, a6, a7); + AddTextPrinterParameterized5(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, a6, a7); } CopyWindowToVram(windowId, 2); } @@ -1209,7 +1209,7 @@ void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u { for (j = 0; j < a6; j++) { - PrintTextOnWindow(windowId, fontId, strs[(i * a6) + j].text, (a4 * j) + left, (a5 * i) + top, 0xFF, NULL); + AddTextPrinterParameterized(windowId, fontId, strs[(i * a6) + j].text, (a4 * j) + left, (a5 * i) + top, 0xFF, NULL); } } CopyWindowToVram(windowId, 2); @@ -1303,7 +1303,7 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos) cursorHeight); xPos = (newCursorPos % gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionWidth + gUnknown_0203CD90.left; yPos = (newCursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionHeight + gUnknown_0203CD90.top; - PrintTextOnWindow(gUnknown_0203CD90.windowId, + AddTextPrinterParameterized(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, xPos, @@ -1588,7 +1588,7 @@ void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs) for (i = 0; i < itemCount; i++) { - PrintTextOnWindow(windowId, 1, strs[i].text, 8, (i * 16) + 1, 0xFF, NULL); + AddTextPrinterParameterized(windowId, 1, strs[i].text, 8, (i * 16) + 1, 0xFF, NULL); } CopyWindowToVram(windowId, 2); @@ -1654,7 +1654,7 @@ void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs { for (j = 0; j < a6; j++) { - PrintTextOnWindow(windowId, 1, strs[(i * a6) + j].text, (a4 * j) + 8, (i * 16) + 1, 0xFF, NULL); + AddTextPrinterParameterized(windowId, 1, strs[(i * a6) + j].text, (a4 * j) + 8, (i * 16) + 1, 0xFF, NULL); } } CopyWindowToVram(windowId, 2); @@ -1946,7 +1946,7 @@ void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const AddTextPrinter(&printer, speed, NULL); } -void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str) +void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str) { struct TextSubPrinter printer; @@ -1967,7 +1967,7 @@ void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 left, u8 top, u8 le AddTextPrinter(&printer, speed, NULL); } -void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing) +void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing) { struct TextSubPrinter printer; @@ -1997,7 +1997,7 @@ void PrintPlayerNameOnWindow(u8 windowId, const u8 *src, u16 x, u16 y) StringExpandPlaceholders(gStringVar4, src); - PrintTextOnWindow(windowId, 1, gStringVar4, x, y, 0xFF, 0); + AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, 0xFF, 0); } //Screw this function, it's long and unreferenced and ugh diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 217fdabaec..0f6d5aa38d 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -137,7 +137,7 @@ void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 StringExpandPlaceholders(gStringVar4, string); gTextFlags.flag_0 = 1; - AddTextPrinterParameterized(windowId, fontId, gStringVar4, textSpeed, NULL, 2, 1, 3); + AddTextPrinterParameterized2(windowId, fontId, gStringVar4, textSpeed, NULL, 2, 1, 3); gUnknown_0300117C = taskFunc; gTasks[taskId].func = Task_ContinueTaskAfterMessagePrints; } diff --git a/src/money.c b/src/money.c index 98f25a42aa..7b78dda922 100644 --- a/src/money.c +++ b/src/money.c @@ -152,7 +152,7 @@ void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed) *(txtPtr++) = 0x77; StringExpandPlaceholders(txtPtr, gText_PokedollarVar1); - PrintTextOnWindow(windowId, 1, gStringVar4, x, y, speed, NULL); + AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, speed, NULL); } void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount) diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 68f31584b8..d3119190c2 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -298,5 +298,5 @@ static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 sp textColor[2] = 3; FillWindowPixelBuffer(windowId, (textColor[0]) | (textColor[0] << 4)); - AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, textColor, speed, text); + AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, textColor, speed, text); } diff --git a/src/naming_screen.c b/src/naming_screen.c index 35a05499b8..c5a44cb825 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -531,7 +531,7 @@ static void DisplaySentToPCMessage(void) StringExpandPlaceholders(gStringVar4, gUnknown_0858BDB8[stringToDisplay]); NewMenuHelpers_DrawDialogueFrame(0, 0); gTextFlags.flag_0 = TRUE; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), 0, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), 0, 2, 1, 3); CopyWindowToVram(0, 3); } @@ -1447,7 +1447,7 @@ static void HandleDpadMovement(struct Task *task) static void sub_80E4894(void) { FillWindowPixelBuffer(gNamingScreenData->windows[3], 0x11); - PrintTextOnWindow(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0); + AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1458,7 +1458,7 @@ static void sub_80E48E8(void) StringCopy(buffer, gSpeciesNames[gNamingScreenData->monSpecies]); StringAppendN(buffer, gNamingScreenData->template->title, 15); FillWindowPixelBuffer(gNamingScreenData->windows[3], 0x11); - PrintTextOnWindow(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0); + AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1652,7 +1652,7 @@ static void sub_80E4D10(void) temp[1] = gExpandedPlaceholder_Empty[0]; unk2 = (sub_80E503C(temp[0]) == 1) ? 2 : 0; - PrintTextOnWindow(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL); + AddTextPrinterParameterized(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL); } sub_80E498C(); diff --git a/src/option_menu.c b/src/option_menu.c index fc0c0c24e8..a650545b15 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -379,7 +379,7 @@ static void DrawOptionMenuChoice(const u8 *text, u8 x, u8 y, u8 style) } dst[i] = EOS; - PrintTextOnWindow(WIN_OPTIONS, 1, dst, x, y + 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_OPTIONS, 1, dst, x, y + 1, TEXT_SPEED_FF, NULL); } static u8 TextSpeed_ProcessInput(u8 selection) @@ -605,7 +605,7 @@ static void ButtonMode_DrawChoices(u8 selection) static void DrawTextOption(void) { FillWindowPixelBuffer(WIN_TEXT_OPTION, 0x11); - PrintTextOnWindow(WIN_TEXT_OPTION, 1, gText_Option, 8, 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_TEXT_OPTION, 1, gText_Option, 8, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(WIN_TEXT_OPTION, 3); } @@ -616,7 +616,7 @@ static void DrawOptionMenuTexts(void) FillWindowPixelBuffer(WIN_OPTIONS, 0x11); for (i = 0; i < MENUITEM_COUNT; i++) { - PrintTextOnWindow(WIN_OPTIONS, 1, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_OPTIONS, 1, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL); } CopyWindowToVram(WIN_OPTIONS, 3); } diff --git a/src/player_pc.c b/src/player_pc.c index ef00e2e062..b09db0e737 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -371,7 +371,7 @@ static void InitItemStorageMenu(u8 taskId, u8 var) static void ItemStorageMenuPrint(const u8 *textPtr) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, textPtr, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, textPtr, 0, 1, 0, 0); } static void ItemStorageMenuProcessInput(u8 taskId) @@ -544,7 +544,7 @@ static void Mailbox_DrawMailboxMenu(u8 taskId) windowId = sub_81D1C84(0); sub_81D1C84(1); - PrintTextOnWindow(windowId, 1, gText_Mailbox, GetStringCenterAlignXOffset(1, gText_Mailbox, 0x40), 1, 0, NULL); + AddTextPrinterParameterized(windowId, 1, gText_Mailbox, GetStringCenterAlignXOffset(1, gText_Mailbox, 0x40), 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gTasks[taskId].data[5] = sub_81D1DC0(&playerPCItemPageInfo); sub_81D1E90(&playerPCItemPageInfo); @@ -883,7 +883,7 @@ static void fish4_goto_x5_or_x6(u8 windowId, s32 id, u8 yOffset) } ConvertIntToDecimalStringN(gStringVar1, gSaveBlock1Ptr->pcItems[id].quantity, STR_CONV_MODE_RIGHT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_xVar1); - PrintTextOnWindow(windowId, 7, gStringVar4, GetStringRightAlignXOffset(7, gStringVar4, 104), yOffset, 0xFF, NULL); + AddTextPrinterParameterized(windowId, 7, gStringVar4, GetStringRightAlignXOffset(7, gStringVar4, 104), yOffset, 0xFF, NULL); } } @@ -897,7 +897,7 @@ static void sub_816BEF0(s32 id) else description = ItemStorage_GetItemPcResponse(ITEMPC_GO_BACK_TO_PREV); FillWindowPixelBuffer(windowId, 17); - PrintTextOnWindow(windowId, 1, description, 0, 1, 0, NULL); + AddTextPrinterParameterized(windowId, 1, description, 0, 1, 0, NULL); } static void ItemStorage_StartScrollIndicator(void) @@ -926,7 +926,7 @@ static void sub_816BFE0(u8 y, u8 b, u8 speed) if(b == 0xFF) FillWindowPixelRect(windowId, 17, 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else - AddTextPrinterParameterized2(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2); + AddTextPrinterParameterized4(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2); } static void sub_816C060(u16 itemId) @@ -988,7 +988,7 @@ static void ItemStorage_ProcessWithdrawTossInput(u8 taskId) if(!toss) text = gText_WithdrawItem; x = GetStringCenterAlignXOffset(1, text, 104); - PrintTextOnWindow(gUnknown_0203BCC4->windowIds[3], 1, text, x, 1, 0, NULL); + AddTextPrinterParameterized(gUnknown_0203BCC4->windowIds[3], 1, text, x, 1, 0, NULL); CopyWindowToVram(gUnknown_0203BCC4->windowIds[2], 2); sub_816C110(); sub_816C140(); @@ -1044,7 +1044,7 @@ static void ItemStorage_PrintItemPcResponse(const u8 *string) u8 windowId = gUnknown_0203BCC4->windowIds[1]; FillWindowPixelBuffer(windowId, 0x11); StringExpandPlaceholders(gStringVar4, string); - PrintTextOnWindow(windowId, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, 0, NULL); } static void ItemStorage_ProcessInput(u8 taskId) @@ -1202,7 +1202,7 @@ static void sub_816C6BC(u8 windowId, u16 value, u32 mode, u8 x, u8 y, u8 n) { ConvertIntToDecimalStringN(gStringVar1, value, mode, n); StringExpandPlaceholders(gStringVar4, gText_xVar1); - PrintTextOnWindow(windowId, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 48), y, 0, NULL); + AddTextPrinterParameterized(windowId, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 48), y, 0, NULL); } static void ItemStorage_DoItemAction(u8 taskId) diff --git a/src/pokeblock.c b/src/pokeblock.c index e615693b94..ea38c559db 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -580,7 +580,7 @@ static void HandleInitWindows(void) static void PrintOnPokeblockWindow(u8 windowId, const u8 *string, s32 x) { - AddTextPrinterParameterized2(windowId, 1, x, 1, 0, 0, sTextColorInPokeblockMenu, 0, string); + AddTextPrinterParameterized4(windowId, 1, x, 1, 0, 0, sTextColorInPokeblockMenu, 0, string); } static void PutPokeblockInfoText(void) diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 5f06ed7e8f..1449d4a00e 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -789,7 +789,7 @@ static void Task_HandleMonAtePokeblock(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_Var1DisdainfullyAteVar2); gTextFlags.flag_0 = 1; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3); gTasks[taskId].func = Task_WaitForAtePokeblockText; } diff --git a/src/pokedex.c b/src/pokedex.c index 2cb3c153ff..d27f0d89c0 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1637,7 +1637,7 @@ void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top) color[0] = 0; color[1] = 15; color[2] = 3; - AddTextPrinterParameterized2(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str); + AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str); } void sub_80BCE84(u8 a, u16 b, u16 c) @@ -2450,7 +2450,7 @@ void sub_80BE8DC(const u8* str, u8 left, u8 top) color[1] = 15; color[2] = 3; - AddTextPrinterParameterized2(0, 1, left, top, 0, 0, color, -1, str); + AddTextPrinterParameterized4(0, 1, left, top, 0, 0, color, -1, str); } u8 sub_80BE91C(struct PokedexListItem* item, u8 b) @@ -4065,7 +4065,7 @@ void sub_80C0A88(u8 windowId, const u8 *str, u8 left, u8 top) color[1] = 15; color[2] = 3; - AddTextPrinterParameterized2(windowId, 1, left, top, 0, 0, color, -1, str); + AddTextPrinterParameterized4(windowId, 1, left, top, 0, 0, color, -1, str); } void sub_80C0AC4(u8 windowId, u16 order, u8 left, u8 top) @@ -4368,7 +4368,7 @@ void sub_80C1270(const u8 *str, u32 left, u32 top) color[0] = 0; color[1] = 15; color[2] = 2; - AddTextPrinterParameterized2(0, 1, left, top, 0, 0, color, -1, str); + AddTextPrinterParameterized4(0, 1, left, top, 0, 0, color, -1, str); } void sub_80C12B0(u32 x, u32 y, u32 width, u32 height) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index eae8681342..031f704a43 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -258,7 +258,7 @@ void Task_PokemonStorageSystem(u8 taskId) sub_81973A4(); NewMenuHelpers_DrawDialogueFrame(0, 0); FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3); CopyWindowToVram(0, 3); CopyWindowToVram(task->data[15], 3); task->data[0]++; @@ -284,7 +284,7 @@ void Task_PokemonStorageSystem(u8 taskId) { task->data[1] = task->data[3]; FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); } break; case -1: @@ -299,13 +299,13 @@ void Task_PokemonStorageSystem(u8 taskId) if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE) { FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3); task->data[0] = 3; } else if (task->data[2] == 1 && CountPartyMons() == 1) { FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3); task->data[0] = 3; } else @@ -320,7 +320,7 @@ void Task_PokemonStorageSystem(u8 taskId) if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } else if (gMain.newKeys & DPAD_UP) @@ -330,7 +330,7 @@ void Task_PokemonStorageSystem(u8 taskId) MoveMenuCursor(-1); task->data[1] = GetMenuCursorPos(); FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } else if (gMain.newKeys & DPAD_DOWN) @@ -340,7 +340,7 @@ void Task_PokemonStorageSystem(u8 taskId) MoveMenuCursor(1); task->data[1] = GetMenuCursorPos(); FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } break; diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 9648747e71..baf4b128ed 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2379,7 +2379,7 @@ static void sub_81C2554(void) static void SummaryScreen_PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, u8 y, u8 lineSpacing, u8 colorId) { - AddTextPrinterParameterized2(windowId, 1, x, y, 0, lineSpacing, sTextColors_861CD2C[colorId], 0, string); + AddTextPrinterParameterized4(windowId, 1, x, y, 0, lineSpacing, sTextColors_861CD2C[colorId], 0, string); } static void sub_81C25E8(void) diff --git a/src/record_mixing.c b/src/record_mixing.c index 552c32d38d..6c6f69fa88 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -306,7 +306,7 @@ static void ReceiveExchangePacket(u32 which) static void PrintTextOnRecordMixing(const u8 *src) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, src, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, src, 0, 1, 0, NULL); CopyWindowToVram(0, 3); } diff --git a/src/region_map.c b/src/region_map.c index 3214ae1851..e06d121e9b 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1631,7 +1631,7 @@ void MCB2_FlyMap(void) LoadPalette(sRegionMapFramePal, 0x10, 0x20); PutWindowTilemap(2); FillWindowPixelBuffer(2, 0x00); - PrintTextOnWindow(2, 1, gText_FlyToWhere, 0, 1, 0, NULL); + AddTextPrinterParameterized(2, 1, gText_FlyToWhere, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gMain.state++; break; @@ -1697,9 +1697,9 @@ static void sub_8124904(void) flag = TRUE; sub_8198070(0, FALSE); SetWindowBorderStyle(1, FALSE, 0x65, 0x0d); - PrintTextOnWindow(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); + AddTextPrinterParameterized(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]; - PrintTextOnWindow(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL); + AddTextPrinterParameterized(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = TRUE; } @@ -1717,7 +1717,7 @@ static void sub_8124904(void) { FillWindowPixelBuffer(0, 0x11); } - PrintTextOnWindow(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = FALSE; } diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 416a8da9d7..34444cbf49 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -314,14 +314,14 @@ static void PrintTime(u8 windowId, u8 x, u8 y, u16 days, u8 hours, u8 minutes, u ConvertIntToDecimalStringN(gStringVar1, seconds, 2, 2); dest = StringCopy(dest, gStringVar1); - PrintTextOnWindow(windowId, 1, gStringVar4, x, y, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, TEXT_SPEED_FF, NULL); } static void ShowChooseTimeWindow(u8 windowId, u16 days, u8 hours, u8 minutes, u8 seconds) { SetWindowBorderStyle(windowId, FALSE, 0x214, 0xE); PrintTime(windowId, 0, 1, days, hours, minutes, seconds); - PrintTextOnWindow(windowId, 1, gText_Confirm2, 126, 1, 0, NULL); + AddTextPrinterParameterized(windowId, 1, gText_Confirm2, 126, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } @@ -496,7 +496,7 @@ static void VBlankCB(void) static void ShowMessage(const u8 *str) { sub_8197B1C(1, FALSE, 0x200, 0xF); - PrintTextOnWindow(1, 1, str, 0, 1, 0, NULL); + AddTextPrinterParameterized(1, 1, str, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } @@ -508,7 +508,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId) { case 0: SetWindowBorderStyle(0, FALSE, 0x214, 0xE); - PrintTextOnWindow(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0); + AddTextPrinterParameterized(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0); PrintTime( 0, 0, @@ -517,7 +517,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId) gLocalTime.hours, gLocalTime.minutes, gLocalTime.seconds); - PrintTextOnWindow(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0); + AddTextPrinterParameterized(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0); PrintTime( 0, 0, diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index b207d7e747..4c1da86206 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -173,7 +173,7 @@ static void SaveFailedScreenTextPrint(u8 *text, u8 var1, u8 var2) color[0] = 0; color[1] = 15; color[2] = 3; - AddTextPrinterParameterized2(gSaveFailedWindowIds[TEXT_WIN_ID], 1, var1 * 8, var2 * 8 + 1, 0, 0, color, 0, text); + AddTextPrinterParameterized4(gSaveFailedWindowIds[TEXT_WIN_ID], 1, var1 * 8, var2 * 8 + 1, 0, 0, color, 0, text); } void DoSaveFailedScreen(u8 saveType) diff --git a/src/scrcmd.c b/src/scrcmd.c index 01d04704aa..b9a8a37af2 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1304,7 +1304,7 @@ bool8 ScrCmd_cmdDB(struct ScriptContext *ctx) msg = (const u8 *)ctx->data[0]; sub_81973A4(); NewMenuHelpers_DrawDialogueFrame(0, 1); - PrintTextOnWindow(0, 1, msg, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, msg, 0, 1, 0, 0); return FALSE; } @@ -1521,7 +1521,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0); PutWindowTilemap(gUnknown_03000F30); FillWindowPixelBuffer(gUnknown_03000F30, 0x11); - PrintTextOnWindow(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0); + AddTextPrinterParameterized(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0); CopyWindowToVram(gUnknown_03000F30, 3); return FALSE; } diff --git a/src/slot_machine.c b/src/slot_machine.c index 6b6a46cf8a..ed00f41c21 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -725,7 +725,7 @@ extern const u8 gText_YouveRunOutOfCoins[]; bool8 sub_8101F44(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); sSlotMachine->state = 7; return FALSE; @@ -966,7 +966,7 @@ bool8 sub_81022F0(struct Task *task) bool8 sub_8102318(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, gText_QuitTheGame, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); sub_80323CC(0x15, 7, 0x214, 0x180, 0xE, 0xF); sSlotMachine->state = 22; @@ -996,7 +996,7 @@ bool8 sub_8102344(struct Task *task) bool8 sub_810239C(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, 3); sSlotMachine->state = 24; return FALSE; @@ -1015,7 +1015,7 @@ bool8 sub_81023B8(struct Task *task) bool8 sub_81023E0_(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); sSlotMachine->state = 26; return FALSE; diff --git a/src/start_menu.c b/src/start_menu.c index 4a58c146ef..56dad89f7f 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -377,7 +377,7 @@ static void ShowSafariBallsWindow(void) NewMenuHelpers_DrawStdWindowFrame(sSafariBallsWindowId, FALSE); ConvertIntToDecimalStringN(gStringVar1, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_SafariBallStock); - PrintTextOnWindow(sSafariBallsWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); + AddTextPrinterParameterized(sSafariBallsWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); CopyWindowToVram(sSafariBallsWindowId, 2); } @@ -392,7 +392,7 @@ static void ShowPyramidFloorWindow(void) NewMenuHelpers_DrawStdWindowFrame(sBattlePyramidFloorWindowId, FALSE); StringCopy(gStringVar1, sPyramindFloorNames[gSaveBlock2Ptr->frontier.field_CB2]); StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor); - PrintTextOnWindow(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); + AddTextPrinterParameterized(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); CopyWindowToVram(sBattlePyramidFloorWindowId, 2); } @@ -422,7 +422,7 @@ static bool32 PrintStartMenuActions(s8 *pIndex, u32 count) } else { StringExpandPlaceholders(gStringVar4, sStartMenuItems[sCurrentStartMenuActions[index]].text); - PrintTextOnWindow(GetStartMenuWindowId(), 1, gStringVar4, 8, (index << 4) + 9, 0xFF, NULL); + AddTextPrinterParameterized(GetStartMenuWindowId(), 1, gStringVar4, 8, (index << 4) + 9, 0xFF, NULL); } index++; @@ -1249,7 +1249,7 @@ static void sub_80A0550(u8 taskId) { case 0: FillWindowPixelBuffer(0, 17); - AddTextPrinterParameterized(0, + AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 255, @@ -1342,38 +1342,38 @@ static void ShowSaveInfoWindow(void) // Print region name yOffset = 1; sub_819A344(3, gStringVar4, TEXT_COLOR_GREEN); - PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, 0, yOffset, 0xFF, NULL); // Print player name yOffset = 0x11; - PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingPlayer, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingPlayer, 0, yOffset, 0xFF, NULL); sub_819A344(0, gStringVar4, color); xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70); PrintPlayerNameOnWindow(sSaveInfoWindowId, gStringVar4, xOffset, yOffset); // Print badge count yOffset = 0x21; - PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingBadges, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingBadges, 0, yOffset, 0xFF, NULL); sub_819A344(4, gStringVar4, color); xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70); - PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); if (FlagGet(FLAG_SYS_POKEDEX_GET) == TRUE) { // Print pokedex count yOffset = 0x31; - PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingPokedex, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingPokedex, 0, yOffset, 0xFF, NULL); sub_819A344(1, gStringVar4, color); xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70); - PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); } // Print play time yOffset += 0x10; - PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingTime, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingTime, 0, yOffset, 0xFF, NULL); sub_819A344(2, gStringVar4, color); xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70); - PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); CopyWindowToVram(sSaveInfoWindowId, 2); } diff --git a/src/starter_choose.c b/src/starter_choose.c index 5625b61840..80d909c26a 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -189,7 +189,7 @@ static void Task_StarterChoose1(u8 taskId) { CreateStarterPokemonLabel(gTasks[taskId].tStarterSelection); SetWindowBorderStyle(0, FALSE, 0x2A8, 0xD); - PrintTextOnWindow(0, 1, gText_BirchInTrouble, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, gText_BirchInTrouble, 0, 1, 0, NULL); PutWindowTilemap(0); schedule_bg_copy_tilemap_to_vram(0); gTasks[taskId].func = Task_StarterChoose2; @@ -243,7 +243,7 @@ static void Task_StarterChoose4(u8 taskId) { PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0); FillWindowPixelBuffer(0, 0x11); - PrintTextOnWindow(0, 1, gText_ConfirmStarterChoice, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, gText_ConfirmStarterChoice, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); CreateYesNoMenu(&gUnknown_085B1DDC, 0x2A8, 0xD, 0); gTasks[taskId].func = Task_StarterChoose5; diff --git a/src/text.c b/src/text.c index ed70f767ba..e5a9feed87 100644 --- a/src/text.c +++ b/src/text.c @@ -139,14 +139,14 @@ void SetFontsPointer(const struct FontInfo *fonts) gFonts = fonts; } -void DeactivateAllTextPrinters (void) +void DeactivateAllTextPrinters(void) { int printer; for (printer = 0; printer < NUM_TEXT_PRINTERS; ++printer) gTextPrinters[printer].sub_union.sub.active = 0; } -u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)) +u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)) { struct TextSubPrinter subPrinter; diff --git a/src/trader.c b/src/trader.c index c4d70ac9a9..f081d7e957 100644 --- a/src/trader.c +++ b/src/trader.c @@ -77,11 +77,11 @@ void CreateAvailableDecorationsMenu(u8 taskId) for (i = 0; i < 4; i++) { if (trader->decorIds[i] > NUM_DECORATIONS) - PrintTextOnWindow(data[3], 1, gText_FiveMarks, 8, 16 * i + 1, 255, NULL); + AddTextPrinterParameterized(data[3], 1, gText_FiveMarks, 8, 16 * i + 1, 255, NULL); else - PrintTextOnWindow(data[3], 1, gDecorations[trader->decorIds[i]].name, 8, 16 * i + 1, 255, NULL); + AddTextPrinterParameterized(data[3], 1, gDecorations[trader->decorIds[i]].name, 8, 16 * i + 1, 255, NULL); } - PrintTextOnWindow(data[3], 1, gText_Exit, 8, 16 * i + 1, 255, NULL); + AddTextPrinterParameterized(data[3], 1, gText_Exit, 8, 16 * i + 1, 255, NULL); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[3], 5, 0); schedule_bg_copy_tilemap_to_vram(0); } diff --git a/src/wallclock.c b/src/wallclock.c index 5be20d5c9c..138dfcc387 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -639,7 +639,7 @@ void CB2_StartWallClock(void) WallClockInit(); - PrintTextOnWindow(1, 1, gText_Confirm3, 0, 1, 0, NULL); + AddTextPrinterParameterized(1, 1, gText_Confirm3, 0, 1, 0, NULL); PutWindowTilemap(1); schedule_bg_copy_tilemap_to_vram(2); } @@ -687,7 +687,7 @@ void CB2_ViewWallClock(void) WallClockInit(); - PrintTextOnWindow(1, 1, gText_Cancel4, 0, 1, 0, NULL); + AddTextPrinterParameterized(1, 1, gText_Cancel4, 0, 1, 0, NULL); PutWindowTilemap(1); schedule_bg_copy_tilemap_to_vram(2); } @@ -754,7 +754,7 @@ static void Task_SetClock2(u8 taskId) static void Task_SetClock3(u8 taskId) { SetWindowBorderStyle(0, FALSE, 0x250, 0x0d); - PrintTextOnWindow(0, 1, gText_IsThisTheCorrectTime, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, gText_IsThisTheCorrectTime, 0, 1, 0, NULL); PutWindowTilemap(0); schedule_bg_copy_tilemap_to_vram(0); CreateYesNoMenu(&gUnknown_085B21F4, 0x250, 0x0d, 1); diff --git a/sym_ewram.txt b/sym_ewram.txt index 392b84b7bc..b2db24d658 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -645,18 +645,6 @@ gUnknown_0203CD88: @ 203CD88 .include "src/menu.o" .include "src/battle_factory.o" -gUnknown_0203CE40: @ 203CE40 - .space 0x4 - -gUnknown_0203CE44: @ 203CE44 - .space 0x4 - -gUnknown_0203CE48: @ 203CE48 - .space 0x4 - -gUnknown_0203CE4C: @ 203CE4C - .space 0x4 - gUnknown_0203CE50: @ 203CE50 .space 0x4 From 6454740587f9a97105c45d54bf4284015a20d6d1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 9 Sep 2018 13:12:26 +0200 Subject: [PATCH 08/28] More battle factory --- asm/battle_frontier_2.s | 1141 +------------------------------------- data/battle_frontier_2.s | 2 +- src/battle_factory.c | 576 +++++++++++++++---- 3 files changed, 482 insertions(+), 1237 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 45da56996d..d66751e055 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -6,1145 +6,6 @@ .text - thumb_func_start Swap_PrintMenuOptions -Swap_PrintMenuOptions: @ 819EC20 - push {r4,r5,lr} - sub sp, 0xC - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_08610922 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r0, =gText_Summary2 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0xF - movs r3, 0x1 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, =gText_Swap - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0xF - movs r3, 0x11 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, =gText_Rechoose - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0xF - movs r3, 0x21 - bl AddTextPrinterParameterized3 - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintMenuOptions - - thumb_func_start Swap_PrintYesNoOptions -Swap_PrintYesNoOptions: @ 819EC94 - push {r4,r5,lr} - sub sp, 0xC - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x4 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_08610922 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r0, =gText_Yes3 - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, =gText_No3 - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x11 - bl AddTextPrinterParameterized3 - movs r0, 0x4 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintYesNoOptions - - thumb_func_start sub_819ECF0 -sub_819ECF0: @ 819ECF0 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - movs r0, 0 - adds r1, r6, 0 - movs r2, 0x46 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_08610922 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0 - adds r3, r5, 0 - bl AddTextPrinterParameterized3 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ECF0 - - thumb_func_start Swap_PrintActionStrings -Swap_PrintActionStrings: @ 819ED34 - push {lr} - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0 - beq _0819ED56 - cmp r0, 0x1 - bne _0819ED60 - ldr r0, =gText_PkmnForSwap - movs r1, 0 - movs r2, 0x5 - bl sub_819ECF0 -_0819ED56: - ldr r0, =gText_Cancel3 - movs r1, 0x18 - movs r2, 0x5 - bl sub_819ECF0 -_0819ED60: - movs r0, 0x5 - movs r1, 0x3 - bl CopyWindowToVram - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintActionStrings - - thumb_func_start Swap_PrintActionStrings2 -Swap_PrintActionStrings2: @ 819ED78 - push {lr} - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0 - beq _0819ED9A - cmp r0, 0x1 - bne _0819EDA4 - ldr r0, =gText_PkmnForSwap - movs r1, 0x8 - movs r2, 0x3 - bl sub_819ECF0 -_0819ED9A: - ldr r0, =gText_Cancel3 - movs r1, 0x20 - movs r2, 0x3 - bl sub_819ECF0 -_0819EDA4: - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintActionStrings2 - - thumb_func_start Swap_PrintActionStrings3 -Swap_PrintActionStrings3: @ 819EDBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0819EDCC - cmp r0, 0x1 - beq _0819EDEC - b _0819EDF6 -_0819EDCC: - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0x1 - bne _0819EDF6 - ldr r0, =gText_PkmnForSwap - movs r1, 0x8 - movs r2, 0x3 - bl sub_819ECF0 - b _0819EDF6 - .pool -_0819EDEC: - ldr r0, =gText_Cancel3 - movs r1, 0x20 - movs r2, 0x3 - bl sub_819ECF0 -_0819EDF6: - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintActionStrings3 - - thumb_func_start Swap_PrintMonSpecies2 -Swap_PrintMonSpecies2: @ 819EE08 - push {r4,lr} - sub sp, 0x18 - ldr r0, =gUnknown_08610918 - add r1, sp, 0xC - movs r2, 0x4 - bl CpuSet - ldr r0, =sFactorySwapScreen - ldr r2, [r0] - ldrb r0, [r2, 0x15] - cmp r0, 0 - bne _0819EE3C - add r0, sp, 0xC - ldr r1, =gPlttBufferFaded - movs r2, 0xE4 - lsls r2, 1 - adds r1, r2 - ldrh r1, [r1] - strh r1, [r0, 0x8] - b _0819EE42 - .pool -_0819EE3C: - add r1, sp, 0xC - ldrh r0, [r2, 0x24] - strh r0, [r1, 0x8] -_0819EE42: - add r0, sp, 0xC - movs r1, 0xF0 - movs r2, 0xA - bl LoadPalette - movs r0, 0x7 - bl PutWindowTilemap - movs r0, 0x7 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r0, [r1, 0x3] - cmp r0, 0x2 - bls _0819EE74 - movs r0, 0x7 - movs r1, 0x3 - bl CopyWindowToVram - b _0819EED8 - .pool -_0819EE74: - ldrb r2, [r1, 0x3] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819EE88 - movs r0, 0x64 - muls r0, r2 - ldr r1, =gPlayerParty - b _0819EE8E - .pool -_0819EE88: - movs r0, 0x64 - muls r0, r2 - ldr r1, =gEnemyParty -_0819EE8E: - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - ldr r4, =gStringVar4 - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08610925 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x7 - movs r1, 0x1 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - movs r0, 0x7 - movs r1, 0x3 - bl CopyWindowToVram -_0819EED8: - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintMonSpecies2 - - thumb_func_start Swap_PrintMonSpecies3 -Swap_PrintMonSpecies3: @ 819EEF0 - push {r4,lr} - sub sp, 0xC - ldr r0, =gUnknown_08610918 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette - ldr r0, =gPlttBufferUnfaded+ 0x1E0 - ldr r1, =gPlttBufferFaded + 0x1C0 - movs r2, 0x5 - bl CpuSet - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r0, [r1, 0x3] - cmp r0, 0x2 - bls _0819EF2C - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - b _0819EF90 - .pool -_0819EF2C: - ldrb r2, [r1, 0x3] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819EF40 - movs r0, 0x64 - muls r0, r2 - ldr r1, =gPlayerParty - b _0819EF46 - .pool -_0819EF40: - movs r0, 0x64 - muls r0, r2 - ldr r1, =gEnemyParty -_0819EF46: - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - ldr r4, =gStringVar4 - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08610925 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram -_0819EF90: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintMonSpecies3 - - thumb_func_start Swap_PrintMonCategory -Swap_PrintMonCategory: @ 819EFA8 - push {r4-r6,lr} - sub sp, 0x2C - ldr r6, =sFactorySwapScreen - ldr r0, [r6] - ldrb r4, [r0, 0x3] - adds r5, r4, 0 - movs r0, 0x8 - movs r1, 0 - bl FillWindowPixelBuffer - cmp r4, 0x2 - bls _0819EFD0 - movs r0, 0x8 - movs r1, 0x2 - bl CopyWindowToVram - b _0819F03A - .pool -_0819EFD0: - movs r0, 0x8 - bl PutWindowTilemap - ldr r0, [r6] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _0819EFEC - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - b _0819EFF2 - .pool -_0819EFEC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty -_0819EFF2: - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - add r1, sp, 0xC - bl CopyMonCategoryText - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x76 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x8 - movs r1, 0x1 - add r2, sp, 0xC - bl AddTextPrinterParameterized - movs r0, 0x8 - movs r1, 0x2 - bl CopyWindowToVram -_0819F03A: - add sp, 0x2C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end Swap_PrintMonCategory - - thumb_func_start sub_819F048 -sub_819F048: @ 819F048 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r4, =sFactorySwapScreen - ldr r3, [r4] - ldrb r0, [r3, 0x15] - cmp r0, 0x1 - beq _0819F094 - cmp r2, 0 - beq _0819F068 - cmp r2, 0x1 - beq _0819F080 - b _0819F094 - .pool -_0819F068: - strb r2, [r3, 0x14] - ldr r0, [r4] - strb r2, [r0, 0x3] - ldr r1, [r4] - movs r0, 0x4 - strb r0, [r1, 0x17] - ldr r1, [r4] - ldr r0, =gUnknown_08610928 - b _0819F092 - .pool -_0819F080: - movs r1, 0 - strb r2, [r3, 0x14] - ldr r0, [r4] - strb r1, [r0, 0x3] - ldr r1, [r4] - movs r0, 0x5 - strb r0, [r1, 0x17] - ldr r1, [r4] - ldr r0, =gUnknown_08610948 -_0819F092: - str r0, [r1, 0x18] -_0819F094: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F048 - - thumb_func_start Swap_RunMenuOptionFunc -Swap_RunMenuOptionFunc: @ 819F0A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_03001280 - ldr r2, =gUnknown_086108AC - ldr r1, =sFactorySwapScreen - ldr r1, [r1] - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [r3] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end Swap_RunMenuOptionFunc - - thumb_func_start sub_819F0CC -sub_819F0CC: @ 819F0CC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =sFactorySwapScreen - ldr r1, [r5] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - ldr r0, [r5] - ldrb r1, [r0, 0x3] - movs r5, 0 - strb r1, [r0, 0x12] - movs r0, 0x3 - bl sub_819EA64 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r1, =sub_819D9EC - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F0CC - - thumb_func_start sub_819F114 -sub_819F114: @ 819F114 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x6 - strh r0, [r1, 0x8] - ldr r0, =sub_819C90C - str r0, [r1] - bx lr - .pool - thumb_func_end sub_819F114 - - thumb_func_start sub_819F134 -sub_819F134: @ 819F134 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - movs r0, 0x3 - bl sub_819EA64 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r2, =Task_HandleSwapScreenChooseMons - lsrs r1, r2, 16 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x12] - ldr r1, =sub_819D770 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F134 - - thumb_func_start sub_819F184 -sub_819F184: @ 819F184 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_03001280 - ldr r1, =sFactorySwapScreen - ldr r2, [r1] - ldrb r1, [r2, 0x3] - ldr r2, [r2, 0x18] - lsls r1, 3 - adds r1, r2 - ldr r1, [r1, 0x4] - str r1, [r3] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F184 - - thumb_func_start sub_819F1AC -sub_819F1AC: @ 819F1AC - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, =sub_819CC24 - lsrs r0, r2, 16 - movs r3, 0 - strh r0, [r1, 0x14] - strh r2, [r1, 0x16] - strh r3, [r1, 0x8] - strh r3, [r1, 0x12] - ldr r0, =sub_819D588 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_819F1AC - - thumb_func_start sub_819F1DC -sub_819F1DC: @ 819F1DC - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, =sub_819D9EC - lsrs r0, r2, 16 - movs r3, 0 - strh r0, [r1, 0x14] - strh r2, [r1, 0x16] - strh r3, [r1, 0x12] - strh r3, [r1, 0x8] - ldr r0, =sub_819D588 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_819F1DC - - thumb_func_start sub_819F20C -sub_819F20C: @ 819F20C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, =sFactorySwapScreen - ldr r1, [r5] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819F240 - ldr r3, =gTasks - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r0, 3 - adds r0, r3 - ldr r2, =Task_HandleSwapScreenMenu - lsrs r1, r2, 16 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - movs r1, 0x2 - strh r1, [r0, 0x12] - b _0819F292 - .pool -_0819F240: - ldrb r0, [r1, 0x3] - bl sub_819F59C - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0819F278 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x2D - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F2B4 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - strh r4, [r0, 0x12] - ldr r1, =sub_819F488 - b _0819F29E - .pool -_0819F278: - ldr r4, =gTasks - lsls r5, r6, 2 - adds r0, r5, r6 - lsls r0, 3 - adds r0, r4 - ldr r2, =sub_819CCD4 - lsrs r1, r2, 16 - movs r3, 0 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - strh r3, [r0, 0x12] - adds r3, r4, 0 - adds r4, r5, 0 -_0819F292: - adds r0, r4, r6 - lsls r0, 3 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, =sub_819D588 -_0819F29E: - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F20C - - thumb_func_start sub_819F2B4 -sub_819F2B4: @ 819F2B4 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r5, r2, 24 - lsrs r5, 24 - ldr r0, =gUnknown_08610894 - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1 - bl CreateSprite - strb r0, [r4] - ldr r2, =gSprites - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_819F600 - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x3C] - movs r0, 0x1 - strb r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F2B4 - - thumb_func_start Swap_ShowSummaryMonSprite -Swap_ShowSummaryMonSprite: @ 819F304 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x10 - ldr r0, =gUnknown_08610894 - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1 - bl CreateSprite - ldr r6, =sFactorySwapScreen - ldr r1, [r6] - adds r1, 0x2D - movs r2, 0 - mov r10, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x2D - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - mov r8, r1 - add r0, r8 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, [r6] - ldrb r1, [r0, 0x3] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r9, r0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r2, r0, 0 - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r5, 0 - mov r1, r9 - movs r3, 0x1 - bl CreateMonPicSprite_HandleDeoxys - ldr r1, [r6] - adds r1, 0x2C - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x2C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x28 - mov r2, r10 - strb r2, [r0] - ldr r0, [r6] - adds r0, 0x2C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x29 - strb r2, [r0] - ldr r0, [r6] - adds r0, 0x2D - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end Swap_ShowSummaryMonSprite - - thumb_func_start sub_819F3F8 -sub_819F3F8: @ 819F3F8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r5, r2, 24 - lsrs r5, 24 - lsls r0, r4, 24 - lsrs r0, 24 - bl FreeAndDestroyMonPicSprite - ldr r0, =sub_819F7B4 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x16] - lsrs r4, 8 - lsls r4, 24 - lsrs r4, 24 - strh r4, [r1, 0x14] - ldr r1, [r1] - bl _call_via_r1 - movs r0, 0x1 - strb r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F3F8 - - thumb_func_start sub_819F444 -sub_819F444: @ 819F444 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r0, r4, 24 - lsrs r0, 24 - bl FreeAndDestroyMonPicSprite - ldr r5, =gSprites - lsls r4, 16 - lsrs r1, r4, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - movs r0, 0 - strb r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F444 - - thumb_func_start sub_819F488 -sub_819F488: @ 819F488 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =sFactorySwapScreen - ldr r0, [r1] - adds r0, 0x30 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x1 - beq _0819F58A - ldr r2, =gTasks - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r5, r1, 0 - cmp r0, 0x4 - bhi _0819F58A - lsls r0, 2 - ldr r1, =_0819F4C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819F4C8: - .4byte _0819F4DC - .4byte _0819F4F8 - .4byte _0819F52C - .4byte _0819F548 - .4byte _0819F568 -_0819F4DC: - ldr r0, =gText_SamePkmnInPartyAlready - bl Swap_PrintOnInfoWindow - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - adds r0, 0x20 - movs r1, 0 - strb r1, [r0] - b _0819F54E - .pool -_0819F4F8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0819F50C - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819F58A -_0819F50C: - movs r0, 0x5 - bl PlaySE - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - b _0819F54E - .pool -_0819F52C: - ldr r0, [r3] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819F58A - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - b _0819F54E -_0819F548: - ldr r0, =gText_SelectPkmnToAccept - bl Swap_PrintOnInfoWindow -_0819F54E: - ldr r0, =gTasks - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0819F58A - .pool -_0819F568: - bl Swap_PrintMonSpecies3 - bl sub_819EADC - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - adds r0, 0x22 - movs r1, 0x1 - strb r1, [r0] - ldr r1, =gTasks - adds r0, r5, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x12] - strh r1, [r0, 0x8] - ldr r1, =Task_HandleSwapScreenChooseMons - str r1, [r0] -_0819F58A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F488 - - thumb_func_start sub_819F59C -sub_819F59C: @ 819F59C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0 -_0819F5B8: - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - ldrb r0, [r0, 0x12] - cmp r4, r0 - beq _0819F5EC - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - bne _0819F5EC - movs r0, 0x1 - b _0819F5F8 - .pool -_0819F5EC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0819F5B8 - movs r0, 0 -_0819F5F8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_819F59C thumb_func_start sub_819F600 sub_819F600: @ 819F600 @@ -1584,6 +445,8 @@ _0819F908: .pool thumb_func_end sub_819F8E0 +@ Battle Factory ends here + thumb_func_start sub_819F99C sub_819F99C: @ 819F99C push {r4-r7,lr} diff --git a/data/battle_frontier_2.s b/data/battle_frontier_2.s index c03c9c368c..ab2ecc0588 100644 --- a/data/battle_frontier_2.s +++ b/data/battle_frontier_2.s @@ -236,7 +236,7 @@ gUnknown_08610894:: @ 8610894 spr_template 0x006d, 0x0067, gUnknown_086106F0, gUnknown_0861075C, NULL, gUnknown_08610828, SpriteCallbackDummy .align 2 -gUnknown_086108AC:: @ 86108AC +sSwap_MenuOptionFuncs:: @ 86108AC .4byte sub_819F114 .4byte sub_819F0CC .4byte sub_819F134 diff --git a/src/battle_factory.c b/src/battle_factory.c index 6d75145047..f85a14b48c 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -78,8 +78,8 @@ struct FactorySelectMonsStruct u8 unused8; struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; struct UnkFactoryStruct unk294[3]; - u8 unk2A0; - u8 palBlendTaskId; + bool8 unk2A0; + u8 fadeSpeciesNameTaskId; bool8 unk2A2; u16 unk2A4; bool8 unk2A6; @@ -88,12 +88,14 @@ struct FactorySelectMonsStruct u8 unk2A9; }; -// 'Action' refers to the Cancel, Pknm for swap windows. +// 'Action' refers to the 3 Selectable mons, Cancel, Pknm for swap windows. +#define ACTIONS_PLAYER_SCREEN 0 +#define ACTIONS_ENEMY_SCREEN 1 -struct UnkField18Struct +struct SwapActionIdAndFunc { - u8 unk0; - u8 unk1[7]; + u8 id; + void (*func)(u8 taskId); }; struct FactorySwapMonsStruct @@ -106,19 +108,19 @@ struct FactorySwapMonsStruct u8 ballSpriteIds[3]; u8 unk8[2][3]; u8 unkE[2][2]; - u8 unk12; - u8 unk13; - u8 actionsState; + u8 playerMonId; + u8 enemyMonId; + bool8 inEnemyScreen; bool8 fromSummaryScreen; u8 yesNoCursorPos; u8 actionsCount; - struct UnkField18Struct *unk18; + const struct SwapActionIdAndFunc *actionsData; u8 unk1C; u8 unk1D; u8 unk1E; u8 unk1F; - u8 unk20; - u8 palBlendTaskId; + bool8 monSwapped; + u8 fadeSpeciesNameTaskId; u8 unk22; u8 unk23; u16 unk24; @@ -127,7 +129,7 @@ struct FactorySwapMonsStruct u8 unk28; u8 unk29; struct UnkFactoryStruct unk2C; - u8 unk30; + bool8 unk30; }; extern u8 (*gUnknown_030062E8)(void); @@ -146,7 +148,7 @@ static void CB2_InitSelectScreen(void); static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V); static void Select_InitMonsData(void); static void Select_InitAllSprites(void); -static void Select_ShowCheckedMonSprite(void); +static void Select_ShowSummaryMonSprite(void); static void Select_PrintSelectMonString(void); static void Select_PrintMonSpecies(void); static void Select_PrintMonCategory(void); @@ -158,17 +160,17 @@ static void sub_819C568(void); static void Select_ShowMenuOptions(void); static void Select_PrintMenuOptions(void); static void Select_PrintYesNoOptions(void); -static void Task_SelectBlendPalette(u8 taskId); +static void Task_SelectFadeSpeciesName(u8 taskId); static void sub_819C1D0(u8 taskId); static void Task_HandleSelectionScreenChooseMons(u8 taskId); static void Task_HandleSelectionScreenMenu(u8 taskId); static void CreateFrontierFactorySelectableMons(u8 firstMonId); static void CreateTentFactorySelectableMons(u8 firstMonId); static void Select_SetBallSpritePaletteNum(u8 id); -void sub_819F444(struct UnkFactoryStruct arg0, u8 *arg1); +void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1); static void sub_819B958(u8 windowId); -void sub_819F2B4(u8 *arg0, u8 *arg1, u8 arg2); -void sub_819F3F8(struct UnkFactoryStruct arg0, u8 *arg1, u8 arg2); +void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen); +void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen); static u8 Select_RunMenuOptionFunc(void); static u8 sub_819BC9C(void); static u8 Select_OptionSummary(void); @@ -187,6 +189,7 @@ void sub_819EA64(u8 windowId); void sub_819D770(u8 taskId); void Task_HandleSwapScreenChooseMons(u8 taskId); void sub_819D588(u8 taskId); +void sub_819F7B4(u8 taskId); void Swap_PrintOnInfoWindow(const u8 *str); void Swap_ShowMenuOptions(void); void Swap_PrintMenuOptions(void); @@ -204,12 +207,15 @@ void Swap_ShowSummaryMonSprite(void); void Swap_UpdateActionCursorPosition(s8 direction); void Swap_UpdateBallCursorPosition(s8 direction); void Swap_RunMenuOptionFunc(u8 taskId); -void sub_819F184(u8 taskId); +void Swap_RunActionFunc(u8 taskId); +void Task_SwapCantHaveSameMons(u8 taskId); void Swap_PrintActionStrings(void); void Swap_PrintActionStrings2(void); -void Swap_PrintActionStrings3(u8 arg0); -void sub_819F048(u8 arg0); +void Swap_PrintOneActionString(u8 which); +void Swap_InitActions(u8 id); void sub_819E838(u8 arg0); +bool8 Swap_AlreadyHasSameSpecies(u8 monId); +void sub_819F600(struct Sprite *sprite); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -224,7 +230,7 @@ EWRAM_DATA u8 *gUnknown_0203CE4C = NULL; // IWRAM bss IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; -IWRAM_DATA u8 (*gUnknown_03001280)(void); +IWRAM_DATA void (*gUnknown_03001280)(u8 taskId); IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen; // Const rom data. @@ -276,6 +282,8 @@ u8 (* const sSelect_MenuOptionFuncs[])(void) = [MENU_OTHERS] = Select_OptionOthers }; +extern void (* const sSwap_MenuOptionFuncs[])(u8 taskId); + extern const struct BgTemplate gUnknown_08610428[3]; extern const struct BgTemplate gUnknown_086108B8[4]; extern const struct WindowTemplate gUnknown_08610434[]; @@ -290,6 +298,7 @@ extern const struct SpriteTemplate gUnknown_08610638; extern const u8 gUnknown_08610479[]; extern const u8 gUnknown_08610925[]; extern const u8 gUnknown_08610476[]; +extern const u8 gUnknown_08610922[]; extern const struct SpritePalette gUnknown_086106B0[]; extern const struct SpriteSheet gUnknown_08610650[]; extern const struct CompressedSpriteSheet gUnknown_086106A0[]; @@ -307,16 +316,24 @@ extern const u8 gText_SelectThirdPkmn[]; extern const u8 gText_TheseThreePkmnOkay[]; extern const u8 gText_CantSelectSamePkmn[]; extern const u8 gText_Summary[]; +extern const u8 gText_Rechoose[]; extern const u8 gText_Deselect[]; extern const u8 gText_Rent[]; extern const u8 gText_Others2[]; extern const u8 gText_Yes2[]; +extern const u8 gText_Yes3[]; extern const u8 gText_No2[]; +extern const u8 gText_No3[]; extern const u8 gText_QuitSwapping[]; extern const u8 gText_AcceptThisPkmn[]; extern const u8 gText_SelectPkmnToAccept[]; extern const u8 gText_SelectPkmnToSwap[]; extern const u8 gText_PkmnSwap[]; +extern const u8 gText_Swap[]; +extern const u8 gText_Summary2[]; +extern const u8 gText_PkmnForSwap[]; +extern const u8 gText_SamePkmnInPartyAlready[]; +extern const u8 gText_Cancel3[]; // code void sub_819A44C(struct Sprite *sprite) @@ -468,7 +485,7 @@ static void CB2_InitSelectScreen(void) Select_InitMonsData(); Select_InitAllSprites(); if (sFactorySelectScreen->fromSummaryScreen == TRUE) - Select_ShowCheckedMonSprite(); + Select_ShowSummaryMonSprite(); gMain.state++; break; case 6: @@ -492,16 +509,16 @@ static void CB2_InitSelectScreen(void) gMain.state++; break; case 10: - sFactorySelectScreen->palBlendTaskId = CreateTask(Task_SelectBlendPalette, 0); + sFactorySelectScreen->fadeSpeciesNameTaskId = CreateTask(Task_SelectFadeSpeciesName, 0); if (!sFactorySelectScreen->fromSummaryScreen) { - gTasks[sFactorySelectScreen->palBlendTaskId].data[0] = 0; + gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 0; taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0); gTasks[taskId].data[0] = 0; } else { - gTasks[sFactorySelectScreen->palBlendTaskId].data[0] = 1; + gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 1; sFactorySelectScreen->unk2A2 = FALSE; taskId = CreateTask(Task_HandleSelectionScreenMenu, 0); gTasks[taskId].data[0] = 13; @@ -692,7 +709,7 @@ static void Task_FromSelectScreenToSummaryScreen(u8 taskId) case 7: if (!gPaletteFade.active) { - DestroyTask(sFactorySelectScreen->palBlendTaskId); + DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); sub_819F444(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0); Select_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE2C); @@ -718,7 +735,7 @@ static void Task_FromSelectScreenToSummaryScreen(u8 taskId) static void Task_CloseSelectionScreen(u8 taskId) { - if (sFactorySelectScreen->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != TRUE) { switch (gTasks[taskId].data[0]) { @@ -730,7 +747,7 @@ static void Task_CloseSelectionScreen(u8 taskId) if (!UpdatePaletteFade()) { Select_CopyMonsToPlayerParty(); - DestroyTask(sFactorySelectScreen->palBlendTaskId); + DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); Select_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE2C); FREE_AND_SET_NULL(gUnknown_0203CE34); @@ -747,7 +764,7 @@ static void Task_CloseSelectionScreen(u8 taskId) static void Task_HandleSelectionScreenYesNo(u8 taskId) { - if (sFactorySelectScreen->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != TRUE) { switch (gTasks[taskId].data[0]) { @@ -808,11 +825,11 @@ static void Task_HandleSelectionScreenMenu(u8 taskId) { case 2: if (!sFactorySelectScreen->fromSummaryScreen) - sub_819F2B4(&sFactorySelectScreen->unk294[1].field1, &sFactorySelectScreen->unk2A0, 0); + sub_819F2B4(&sFactorySelectScreen->unk294[1].field1, &sFactorySelectScreen->unk2A0, FALSE); gTasks[taskId].data[0] = 9; break; case 9: - if (sFactorySelectScreen->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != TRUE) { Select_ShowMenuOptions(); sFactorySelectScreen->fromSummaryScreen = FALSE; @@ -850,7 +867,7 @@ static void Task_HandleSelectionScreenMenu(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); sub_819B958(3); sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; @@ -888,7 +905,7 @@ static void Task_HandleSelectionScreenMenu(u8 taskId) static void Task_HandleSelectionScreenChooseMons(u8 taskId) { - if (sFactorySelectScreen->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != TRUE) { switch (gTasks[taskId].data[0]) { @@ -926,7 +943,7 @@ static void Task_HandleSelectionScreenChooseMons(u8 taskId) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); Select_PrintSelectMonString(); sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; @@ -1161,7 +1178,7 @@ static u8 Select_OptionRentDeselect(void) } else { - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); Select_HandleMonSelectionChange(); Select_PrintSelectMonString(); sub_819B958(3); @@ -1191,7 +1208,7 @@ static u8 Select_OptionSummary(void) static u8 Select_OptionOthers(void) { - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); sub_819B958(3); return 1; } @@ -1226,15 +1243,15 @@ void sub_819BD70(void) gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; - sFactorySelectScreen->unk2A0 = 0; + sFactorySelectScreen->unk2A0 = FALSE; } -void sub_819BE20(u8 arg0) +void sub_819BE20(bool8 arg0) { sFactorySelectScreen->unk2A0 = arg0; } -static void Select_ShowCheckedMonSprite(void) +static void Select_ShowSummaryMonSprite(void) { struct Pokemon *mon; u16 species; @@ -1277,7 +1294,7 @@ static void Select_ShowChosenMonsSprites(void) } } } - sFactorySelectScreen->unk2A0 = 0; + sFactorySelectScreen->unk2A0 = FALSE; } static void sub_819C040(struct Sprite *sprite) @@ -1309,7 +1326,7 @@ static void sub_819C100(struct Sprite *sprite) FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[0].field1].oam.matrixNum); FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[2].field1].oam.matrixNum); - sFactorySelectScreen->unk2A0 = 0; + sFactorySelectScreen->unk2A0 = FALSE; DestroySprite(&gSprites[sFactorySelectScreen->unk294[0].field1]); DestroySprite(&gSprites[sFactorySelectScreen->unk294[2].field1]); @@ -1415,7 +1432,7 @@ static void sub_819C4B4(void) gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; - sFactorySelectScreen->unk2A0 = 1; + sFactorySelectScreen->unk2A0 = TRUE; } static void sub_819C568(void) @@ -1429,7 +1446,7 @@ static void sub_819C568(void) taskId = CreateTask(sub_819C2D4, 1); gTasks[taskId].func(taskId); - sFactorySelectScreen->unk2A0 = 1; + sFactorySelectScreen->unk2A0 = TRUE; } static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V) @@ -1464,7 +1481,7 @@ static bool32 Select_AreSpeciesValid(u16 monSetId) return TRUE; } -static void Task_SelectBlendPalette(u8 taskId) +static void Task_SelectFadeSpeciesName(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1537,20 +1554,20 @@ void Swap_VblankCb(void) TransferPlttBuffer(); } -void sub_819C810(void) +void CopySwappedMonData(void) { u8 happiness; - gPlayerParty[sFactorySwapScreen->unk12] = gEnemyParty[sFactorySwapScreen->unk13]; + gPlayerParty[sFactorySwapScreen->playerMonId] = gEnemyParty[sFactorySwapScreen->enemyMonId]; happiness = 0; - SetMonData(&gPlayerParty[sFactorySwapScreen->unk12], MON_DATA_FRIENDSHIP, &happiness); - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].monId = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk13 + 3].monId; - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].ivs = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk13 + 3].ivs; - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->unk13], MON_DATA_PERSONALITY, NULL); - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->unk13].box, MON_DATA_ALT_ABILITY, NULL); + SetMonData(&gPlayerParty[sFactorySwapScreen->playerMonId], MON_DATA_FRIENDSHIP, &happiness); + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].monId; + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].ivs; + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ALT_ABILITY, NULL); } -void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen +void Task_FromSwapScreenToSummaryScreen(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1561,7 +1578,7 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen case 7: if (!gPaletteFade.active) { - DestroyTask(sFactorySwapScreen->palBlendTaskId); + DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); Swap_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE40); @@ -1581,14 +1598,14 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen } } -void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen +void Task_CloseSwapScreen(u8 taskId) { - if (sFactorySwapScreen->unk30 != 1) + if (sFactorySwapScreen->unk30 != TRUE) { switch (gTasks[taskId].data[0]) { case 0: - if (sFactorySwapScreen->unk20 == 1) + if (sFactorySwapScreen->monSwapped == TRUE) { gTasks[taskId].data[0]++; gSpecialVar_Result = 0; @@ -1600,10 +1617,10 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen } break; case 1: - if (sFactorySwapScreen->unk20 == 1) + if (sFactorySwapScreen->monSwapped == TRUE) { - sFactorySwapScreen->unk13 = sFactorySwapScreen->cursorPos; - sub_819C810(); + sFactorySwapScreen->enemyMonId = sFactorySwapScreen->cursorPos; + CopySwappedMonData(); } gTasks[taskId].data[0]++; break; @@ -1614,7 +1631,7 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen case 3: if (!UpdatePaletteFade()) { - DestroyTask(sFactorySwapScreen->palBlendTaskId); + DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); Swap_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE40); FREE_AND_SET_NULL(gUnknown_0203CE44); @@ -1634,7 +1651,7 @@ void Task_HandleSwapScreenYesNo(u8 taskId) { u16 loPtr, hiPtr; - if (sFactorySwapScreen->unk30 != 1) + if (sFactorySwapScreen->unk30 != TRUE) { switch (gTasks[taskId].data[0]) { @@ -1691,7 +1708,7 @@ void sub_819CBDC(u8 taskId) if (gTasks[taskId].data[1] == 1) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_819CA08; + gTasks[taskId].func = Task_CloseSwapScreen; } else { @@ -1708,7 +1725,7 @@ void sub_819CC24(u8 taskId) if (gTasks[taskId].data[0] == 0) { Swap_PrintOnInfoWindow(gText_QuitSwapping); - sFactorySwapScreen->unk20 = 0; + sFactorySwapScreen->monSwapped = FALSE; gTasks[taskId].data[0] = 4; gTasks[taskId].data[6] = (u32)(sub_819CBDC) >> 16; gTasks[taskId].data[7] = (u32)(sub_819CBDC); @@ -1718,11 +1735,11 @@ void sub_819CC24(u8 taskId) void sub_819CC74(u8 taskId) { - sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, 1); + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); if (gTasks[taskId].data[1] == 1) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_819CA08; + gTasks[taskId].func = Task_CloseSwapScreen; } else { @@ -1738,9 +1755,9 @@ void sub_819CCD4(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); Swap_PrintOnInfoWindow(gText_AcceptThisPkmn); - sFactorySwapScreen->unk20 = 1; + sFactorySwapScreen->monSwapped = TRUE; gTasks[taskId].data[0] = 4; gTasks[taskId].data[6] = (u32)(sub_819CC74) >> 16; gTasks[taskId].data[7] = (u32)(sub_819CC74); @@ -1754,18 +1771,18 @@ void Task_HandleSwapScreenMenu(u8 taskId) { case 2: if (!sFactorySwapScreen->fromSummaryScreen) - sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); gTasks[taskId].data[0] = 9; break; case 9: - if (sFactorySwapScreen->unk30 != 1) + if (sFactorySwapScreen->unk30 != TRUE) { Swap_ShowMenuOptions(); gTasks[taskId].data[0] = 3; } break; case 3: - if (sFactorySwapScreen->unk30 != 1) + if (sFactorySwapScreen->unk30 != TRUE) { if (gMain.newKeys & A_BUTTON) { @@ -1775,7 +1792,7 @@ void Task_HandleSwapScreenMenu(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, 1); + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); sub_819EA64(3); gTasks[taskId].data[0] = 0; gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; @@ -1814,7 +1831,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) sFactorySwapScreen->unk22 = 0; Swap_PrintMonSpecies2(); sub_819EAC0(); - sub_819F184(taskId); + Swap_RunActionFunc(taskId); } else if (gMain.newKeys & B_BUTTON) { @@ -1856,7 +1873,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) } } -void Task_SwapBlendPalette(u8 taskId) +void Task_SwapFadeSpeciesName(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1911,7 +1928,7 @@ void Task_SwapBlendPalette(u8 taskId) } } -void Task_SwapBlendPalette2(u8 taskId) +void Task_SwapFadeSpeciesName2(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2004,7 +2021,7 @@ void sub_819D12C(u8 taskId) { var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = -16; - if (sFactorySwapScreen->actionsState == 1) + if (sFactorySwapScreen->inEnemyScreen == TRUE) gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); else gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); @@ -2156,7 +2173,7 @@ void sub_819D588(u8 taskId) { FillWindowPixelBuffer(5, 0); CopyWindowToVram(5, 2); - if (sFactorySwapScreen->actionsState == 1) + if (sFactorySwapScreen->inEnemyScreen == TRUE) { anotherTaskId = CreateTask(sub_819D324, 0); gTasks[taskId].data[3] = 0; @@ -2212,13 +2229,13 @@ void sub_819D770(u8 taskId) { u8 anotherTaskId; u16 loPtr, hiPtr; - if (sFactorySwapScreen->unk30 == 1) + if (sFactorySwapScreen->unk30 == TRUE) return; switch (gTasks[taskId].data[0]) { case 0: - if (sFactorySwapScreen->actionsState == 1) + if (sFactorySwapScreen->inEnemyScreen == TRUE) { anotherTaskId = CreateTask(sub_819D324, 0); gTasks[taskId].data[3] = 0; @@ -2273,12 +2290,12 @@ void sub_819D770(u8 taskId) case 4: if (!gPaletteFade.active) { - Swap_PrintActionStrings3(0); + Swap_PrintOneActionString(0); gTasks[taskId].data[0]++; } break; case 5: - Swap_PrintActionStrings3(1); + Swap_PrintOneActionString(1); PutWindowTilemap(3); gTasks[taskId].data[0]++; break; @@ -2288,7 +2305,7 @@ void sub_819D770(u8 taskId) gTasks[taskId].data[0]++; break; case 7: - if (sFactorySwapScreen->actionsState == 0) + if (!sFactorySwapScreen->inEnemyScreen) Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap); else Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); @@ -2312,7 +2329,7 @@ void sub_819D770(u8 taskId) void sub_819D9EC(u8 taskId) { u8 i; - if (sFactorySwapScreen->unk30 == 1) + if (sFactorySwapScreen->unk30 == TRUE) return; switch (gTasks[taskId].data[0]) @@ -2328,29 +2345,29 @@ void sub_819D9EC(u8 taskId) break; case 2: CreateTask(sub_819D12C, 0); - gTasks[sFactorySwapScreen->palBlendTaskId].func = Task_SwapBlendPalette2; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName2; gTasks[taskId].data[0]++; break; case 3: - if (!FuncIsActiveTask(sub_819D12C) && gTasks[sFactorySwapScreen->palBlendTaskId].data[4] == 1) + if (!FuncIsActiveTask(sub_819D12C) && gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[4] == 1) { sub_819EAC0(); - if (sFactorySwapScreen->actionsState == 0) + if (!sFactorySwapScreen->inEnemyScreen) { - sub_819F048(1); + Swap_InitActions(ACTIONS_ENEMY_SCREEN); } else { - sub_819F048(0); + Swap_InitActions(ACTIONS_PLAYER_SCREEN); for (i = 0; i < 3; i++) gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; } gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x; - gTasks[sFactorySwapScreen->palBlendTaskId].func = Task_SwapBlendPalette; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName; sFactorySwapScreen->unk27 = 0; sFactorySwapScreen->unk28 = 6; sFactorySwapScreen->unk26 = FALSE; - gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 1; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 1; gTasks[taskId].data[0]++; } break; @@ -2370,7 +2387,7 @@ void Swap_InitStruct(void) { sFactorySwapScreen = AllocZeroed(sizeof(*sFactorySwapScreen)); sFactorySwapScreen->cursorPos = 0; - sFactorySwapScreen->unk30 = 0; + sFactorySwapScreen->unk30 = FALSE; sFactorySwapScreen->fromSummaryScreen = FALSE; } } @@ -2461,7 +2478,7 @@ void CB2_InitSwapScreen(void) Swap_InitAllSprites(); if (sFactorySwapScreen->fromSummaryScreen == TRUE) Swap_ShowSummaryMonSprite(); - sub_819F048(0); + Swap_InitActions(ACTIONS_PLAYER_SCREEN); gMain.state++; break; case 7: @@ -2517,17 +2534,17 @@ void CB2_InitSwapScreen(void) gMain.state++; break; case 15: - sFactorySwapScreen->palBlendTaskId = CreateTask(Task_SwapBlendPalette, 0); + sFactorySwapScreen->fadeSpeciesNameTaskId = CreateTask(Task_SwapFadeSpeciesName, 0); if (!sFactorySwapScreen->fromSummaryScreen) { - gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 0; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 0; taskId = CreateTask(Task_HandleSwapScreenChooseMons, 0); gTasks[taskId].data[0] = 0; } else { sub_819EAF8(); - gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 1; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 1; sFactorySwapScreen->unk22 = FALSE; taskId = CreateTask(Task_HandleSwapScreenMenu, 0); gTasks[taskId].data[0] = 2; @@ -2541,6 +2558,7 @@ extern const struct SpriteTemplate gUnknown_08610834; extern const struct SpriteTemplate gUnknown_0861084C; extern const struct SpriteTemplate gUnknown_08610864; extern const struct SpriteTemplate gUnknown_0861087C; +extern const struct SpriteTemplate gUnknown_08610894; void Swap_InitAllSprites(void) { @@ -2665,7 +2683,7 @@ void Swap_HandleActionCursorChange(u8 cursorId) else { gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; - sub_819E838(sFactorySwapScreen->unk18[cursorId].unk0); + sub_819E838(sFactorySwapScreen->actionsData[cursorId].id); } } @@ -2879,7 +2897,7 @@ void Swap_PrintMonSpecies(void) else { u8 monId = sFactorySwapScreen->cursorPos; - if (sFactorySwapScreen->actionsState == 0) + if (!sFactorySwapScreen->inEnemyScreen) species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); else species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); @@ -2896,3 +2914,367 @@ void Swap_PrintOnInfoWindow(const u8 *str) AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } + +void Swap_PrintMenuOptions(void) +{ + PutWindowTilemap(3); + FillWindowPixelBuffer(3, 0); + AddTextPrinterParameterized3(3, 1, 15, 1, gUnknown_08610922, 0, gText_Summary2); + AddTextPrinterParameterized3(3, 1, 15, 17, gUnknown_08610922, 0, gText_Swap); + AddTextPrinterParameterized3(3, 1, 15, 33, gUnknown_08610922, 0, gText_Rechoose); + CopyWindowToVram(3, 3); +} + +void Swap_PrintYesNoOptions(void) +{ + PutWindowTilemap(4); + FillWindowPixelBuffer(4, 0); + AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610922, 0, gText_Yes3); + AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610922, 0, gText_No3); + CopyWindowToVram(4, 3); +} + +void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) +{ + s32 x = GetStringRightAlignXOffset(0, str, 0x46); + AddTextPrinterParameterized3(windowId, 0, x, y, gUnknown_08610922, 0, str); +} + +void Swap_PrintActionStrings(void) +{ + FillWindowPixelBuffer(5, 0); + switch (sFactorySwapScreen->inEnemyScreen) + { + case TRUE: + Swap_PrintActionString(gText_PkmnForSwap, 0, 5); + case FALSE: + Swap_PrintActionString(gText_Cancel3, 24, 5); + break; + } + CopyWindowToVram(5, 3); +} + +void Swap_PrintActionStrings2(void) +{ + FillWindowPixelBuffer(3, 0); + switch (sFactorySwapScreen->inEnemyScreen) + { + case TRUE: + Swap_PrintActionString(gText_PkmnForSwap, 8, 3); + case FALSE: + Swap_PrintActionString(gText_Cancel3, 32, 3); + break; + } + CopyWindowToVram(3, 3); +} + +void Swap_PrintOneActionString(u8 which) +{ + switch (which) + { + case 0: + if (sFactorySwapScreen->inEnemyScreen == TRUE) + Swap_PrintActionString(gText_PkmnForSwap, 8, 3); + break; + case 1: + Swap_PrintActionString(gText_Cancel3, 32, 3); + break; + } + CopyWindowToVram(3, 3); +} + +void Swap_PrintMonSpecies2(void) +{ + u16 species; + u8 x; + u16 pal[5]; + + CpuCopy16(gUnknown_08610918, pal, 8); + if (!sFactorySwapScreen->fromSummaryScreen) + pal[4] = gPlttBufferFaded[228]; + else + pal[4] = sFactorySwapScreen->unk24; + LoadPalette(pal, 0xF0, 0xA); + + PutWindowTilemap(7); + FillWindowPixelBuffer(7, 0); + if (sFactorySwapScreen->cursorPos > 2) + { + CopyWindowToVram(7, 3); + } + else + { + u8 monId = sFactorySwapScreen->cursorPos; + if (!sFactorySwapScreen->inEnemyScreen) + species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); + else + species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + StringCopy(gStringVar4, gSpeciesNames[species]); + x = GetStringRightAlignXOffset(1, gStringVar4, 86); + AddTextPrinterParameterized3(7, 1, x, 1, gUnknown_08610925, 0, gStringVar4); + CopyWindowToVram(7, 3); + } +} + +void Swap_PrintMonSpecies3(void) +{ + u16 species; + u8 x; + + LoadPalette(gUnknown_08610918, 0xE0, 0xA); + CpuCopy16(gPlttBufferUnfaded + 240, gPlttBufferFaded + 224, 10); + + if (sFactorySwapScreen->cursorPos > 2) + { + CopyWindowToVram(1, 2); + } + else + { + u8 monId = sFactorySwapScreen->cursorPos; + if (!sFactorySwapScreen->inEnemyScreen) + species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); + else + species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + StringCopy(gStringVar4, gSpeciesNames[species]); + x = GetStringRightAlignXOffset(1, gStringVar4, 86); + AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610925, 0, gStringVar4); + CopyWindowToVram(1, 3); + } +} + +void Swap_PrintMonCategory(void) +{ + u16 species; + u8 text[30]; + u8 x; + u8 monId = sFactorySwapScreen->cursorPos; + + FillWindowPixelBuffer(8, 0); + if (monId > 2) + { + CopyWindowToVram(8, 2); + } + else + { + PutWindowTilemap(8); + if (!sFactorySwapScreen->inEnemyScreen) + species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); + else + species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); + x = GetStringRightAlignXOffset(1, text, 0x76); + AddTextPrinterParameterized(8, 1, text, x, 1, 0, NULL); + CopyWindowToVram(8, 2); + } +} + +extern const struct SwapActionIdAndFunc gUnknown_08610928[4]; +extern const struct SwapActionIdAndFunc gUnknown_08610948[5]; + +void Swap_InitActions(u8 id) +{ + if (sFactorySwapScreen->fromSummaryScreen != TRUE) + { + switch (id) + { + case ACTIONS_PLAYER_SCREEN: + sFactorySwapScreen->inEnemyScreen = FALSE; + sFactorySwapScreen->cursorPos = 0; + sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610928); + sFactorySwapScreen->actionsData = gUnknown_08610928; + break; + case ACTIONS_ENEMY_SCREEN: + sFactorySwapScreen->inEnemyScreen = TRUE; + sFactorySwapScreen->cursorPos = 0; + sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610948); + sFactorySwapScreen->actionsData = gUnknown_08610948; + break; + } + } +} + +void Swap_RunMenuOptionFunc(u8 taskId) +{ + gUnknown_03001280 = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos]; + gUnknown_03001280(taskId); +} + +void sub_819F0CC(u8 taskId) +{ + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); + sFactorySwapScreen->playerMonId = sFactorySwapScreen->cursorPos; + sub_819EA64(3); + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819D9EC; +} + +void sub_819F114(u8 taskId) +{ + gTasks[taskId].data[0] = 6; + gTasks[taskId].func = Task_FromSwapScreenToSummaryScreen; +} + +void sub_819F134(u8 taskId) +{ + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); + sub_819EA64(3); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 0x10; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; +} + +void Swap_RunActionFunc(u8 taskId) +{ + gUnknown_03001280 = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func; + gUnknown_03001280(taskId); +} + +void sub_819F1AC(u8 taskId) +{ + gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 0x10; + gTasks[taskId].data[7] = (u32)(sub_819CC24); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[5] = 0; + gTasks[taskId].func = sub_819D588; +} + +void sub_819F1DC(u8 taskId) +{ + gTasks[taskId].data[6] = (u32)(sub_819D9EC) >> 0x10; + gTasks[taskId].data[7] = (u32)(sub_819D9EC); + gTasks[taskId].data[5] = 0; + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819D588; +} + +void sub_819F20C(u8 taskId) +{ + if (!sFactorySwapScreen->inEnemyScreen) + { + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenMenu) >> 0x10; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenMenu); + gTasks[taskId].data[5] = 2; + } + else if (Swap_AlreadyHasSameSpecies(sFactorySwapScreen->cursorPos) == TRUE) + { + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = Task_SwapCantHaveSameMons; + return; + } + else + { + gTasks[taskId].data[6] = (u32)(sub_819CCD4) >> 0x10; + gTasks[taskId].data[7] = (u32)(sub_819CCD4); + gTasks[taskId].data[5] = 0; + } + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819D588; +} + +void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen) +{ + *arg0 = CreateSprite(&gUnknown_08610894, 120, 64, 1); + gSprites[*arg0].callback = sub_819F600; + gSprites[*arg0].data[7] = swapScreen; + *arg1 = TRUE; +} + +void Swap_ShowSummaryMonSprite(void) +{ + struct Pokemon *mon; + u16 species; + u32 personality, otId; + + sFactorySwapScreen->unk2C.field1 = CreateSprite(&gUnknown_08610894, 120, 64, 1); + StartSpriteAffineAnim(&gSprites[sFactorySwapScreen->unk2C.field1], 2); + + mon = &gPlayerParty[sFactorySwapScreen->cursorPos]; + species = GetMonData(mon, MON_DATA_SPECIES, NULL); + personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, personality, otId, TRUE, 88, 32, 15, 0xFFFF); // BUG: otId and personality should be switched. + gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0; + + gSprites[sFactorySwapScreen->unk2C.field1].invisible = 1; +} + +void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) +{ + u8 taskId; + + FreeAndDestroyMonPicSprite(arg0.field0); + taskId = CreateTask(sub_819F7B4, 1); + gTasks[taskId].data[7] = swapScreen; + gTasks[taskId].data[6] = arg0.field1; + gTasks[taskId].func(taskId); + *arg1 = TRUE; +} + +void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) +{ + FreeAndDestroyMonPicSprite(arg0.field0); + FreeOamMatrix(gSprites[arg0.field1].oam.matrixNum); + DestroySprite(&gSprites[arg0.field1]); + *arg1 = FALSE; +} + +void Task_SwapCantHaveSameMons(u8 taskId) +{ + if (sFactorySwapScreen->unk30 == TRUE) + return; + + switch (gTasks[taskId].data[0]) + { + case 0: + Swap_PrintOnInfoWindow(gText_SamePkmnInPartyAlready); + sFactorySwapScreen->monSwapped = FALSE; + gTasks[taskId].data[0]++; + break; + case 1: + if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); + gTasks[taskId].data[0]++; + } + break; + case 2: + if (sFactorySwapScreen->unk30 != TRUE) + { + FillWindowPixelBuffer(5, 0); + CopyWindowToVram(5, 2); + gTasks[taskId].data[0]++; + } + break; + case 3: + Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); + gTasks[taskId].data[0]++; + break; + case 4: + Swap_PrintMonSpecies3(); + sub_819EADC(); + sFactorySwapScreen->unk22 = 1; + gTasks[taskId].data[0] = gTasks[taskId].data[5]; + gTasks[taskId].func = Task_HandleSwapScreenChooseMons; + break; + } +} + +bool8 Swap_AlreadyHasSameSpecies(u8 monId) +{ + u8 i; + u16 species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + + for (i = 0; i < 3; i++) + { + if (i != sFactorySwapScreen->playerMonId && (u16)(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL)) == species) + return TRUE; + } + return FALSE; +} From 135e98a82493b2538c030af9b327cb104e27a3dd Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 9 Sep 2018 16:06:35 +0100 Subject: [PATCH 09/28] Move battle factory data to C --- data/battle_frontier_2.s | 252 ------------- src/battle_factory.c | 742 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 717 insertions(+), 277 deletions(-) diff --git a/data/battle_frontier_2.s b/data/battle_frontier_2.s index ab2ecc0588..f2e2dd6501 100644 --- a/data/battle_frontier_2.s +++ b/data/battle_frontier_2.s @@ -6,258 +6,6 @@ .section .rodata - - .align 2 -gUnknown_08610428:: @ 8610428 - .4byte 0x00000180, 0x00003195, 0x000021bb - - .align 2 -gUnknown_08610434:: @ 8610434 - window_template 0x00, 0x00, 0x02, 0x0c, 0x02, 0x0f, 0x0001 - window_template 0x00, 0x13, 0x02, 0x0b, 0x02, 0x0e, 0x0019 - window_template 0x00, 0x00, 0x0f, 0x14, 0x03, 0x0f, 0x002f - window_template 0x00, 0x16, 0x0e, 0x08, 0x06, 0x0f, 0x006b - window_template 0x00, 0x16, 0x0e, 0x08, 0x04, 0x0f, 0x009b - window_template 0x00, 0x0f, 0x00, 0x0f, 0x02, 0x0f, 0x00bb - null_window_template - - .align 1 -gUnknown_0861046C:: @ 861046C - .incbin "graphics/unknown/unknown_61046C.gbapal" - -gUnknown_08610476:: @ 8610476 - .byte 0x00, 0x02, 0x00 - -gUnknown_08610479:: @ 8610479 - .byte 0x00, 0x04, 0x00 - - .align 2 -gUnknown_0861047C:: @ 861047C - .byte 0x00, 0x00, 0x00, 0x80, 0x00, 0x0c, 0x00, 0x00 - - .align 2 -gUnknown_08610484:: @ 8610484 - .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x0c, 0x00, 0x00 - - .align 2 -gUnknown_0861048C:: @ 861048C - .byte 0x00, 0x40, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_08610494:: @ 8610494 - .byte 0x00, 0x07, 0x00, 0xc0, 0x00, 0x00, 0x01, 0x00 - - .align 2 -gUnknown_0861049C:: @ 861049C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_086104A4:: @ 86104A4 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_086104AC:: @ 86104AC - .2byte 0x0000, 0x001e, 0xffff, 0x0000 - - .align 2 -gUnknown_086104B4:: @ 86104B4 - .2byte 0x0010, 0x0004, 0x0000, 0x0004, 0x0020, 0x0004, 0x0000, 0x0004, 0x0010, 0x0004, 0x0000, 0x0004, 0x0020, 0x0004, 0x0000, 0x0004 - .2byte 0x0000, 0x0020, 0x0010, 0x0008, 0x0000, 0x0008, 0x0020, 0x0008, 0x0000, 0x0008, 0x0010, 0x0008, 0x0000, 0x0008, 0x0020, 0x0008 - .2byte 0x0000, 0x0008, 0xffff, 0x0000 - - .align 2 -gUnknown_086104FC:: @ 86104FC - .4byte gUnknown_0861049C - - .align 2 -gUnknown_08610500:: @ 8610500 - .4byte gUnknown_086104A4 - - .align 2 -gUnknown_08610504:: @ 8610504 - .4byte gUnknown_086104AC - .4byte gUnknown_086104B4 - - .align 2 -gUnknown_0861050C:: @ 861050C - .2byte 0x0005, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0010, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000 - .2byte 0x0020, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0040, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000 - .2byte 0x0080, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0100, 0x0005, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_0861056C:: @ 861056C - .2byte 0x0080, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0040, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000 - .2byte 0x0020, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0010, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000 - .2byte 0x0005, 0x0005, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_086105BC:: @ 86105BC - .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_086105CC:: @ 86105CC - .4byte gUnknown_0861050C - .4byte gUnknown_0861056C - .4byte gUnknown_086105BC - - .align 2 -gUnknown_086105D8:: @ 86105D8 - spr_template 0x0064, 0x0064, gUnknown_0861047C, gUnknown_08610504, NULL, gDummySpriteAffineAnimTable, sub_819A44C - - .align 2 -gUnknown_086105F0:: @ 86105F0 - spr_template 0x0065, 0x0066, gUnknown_08610484, gUnknown_086104FC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_08610608:: @ 8610608 - spr_template 0x0066, 0x0066, gUnknown_0861048C, gUnknown_086104FC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_08610620:: @ 8610620 - spr_template 0x0067, 0x0066, gUnknown_0861048C, gUnknown_086104FC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_08610638:: @ 8610638 - spr_template 0x006d, 0x0067, gUnknown_08610494, gUnknown_08610500, NULL, gUnknown_086105CC, SpriteCallbackDummy - - .align 2 -gUnknown_08610650:: @ 8610650 - obj_tiles gUnknown_0860F3BC, 0x0080, 0x0065 - obj_tiles gUnknown_0860F43C, 0x0100, 0x0066 - obj_tiles gUnknown_0860F53C, 0x0100, 0x0067 - obj_tiles gUnknown_0860F63C, 0x0080, 0x0068 - obj_tiles gUnknown_0860F6BC, 0x0100, 0x0069 - obj_tiles gUnknown_0860F7BC, 0x0100, 0x006a - obj_tiles gUnknown_0860F83C, 0x0100, 0x006b - obj_tiles gUnknown_0860F93C, 0x0100, 0x006c - obj_tiles gUnknown_0860FA3C, 0x0800, 0x006d - null_obj_tiles - - .align 2 -gUnknown_086106A0:: @ 86106A0 - obj_tiles gUnknown_085B18AC, 0x0800, 0x0064 - null_obj_tiles - - .align 2 -gUnknown_086106B0:: @ 86106B0 - obj_pal gUnknown_0860F13C, 0x0064 - obj_pal gUnknown_0860F15C, 0x0065 - obj_pal gUnknown_0860F17C, 0x0066 - obj_pal gUnknown_0861039C, 0x0067 - null_obj_pal - - .align 2 -gUnknown_086106D8:: @ 86106D8 - .byte 0x00, 0x00, 0x00, 0x80, 0x00, 0x0c, 0x00, 0x00 - - .align 2 -gUnknown_086106E0:: @ 86106E0 - .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x0c, 0x00, 0x00 - - .align 2 -gUnknown_086106E8:: @ 86106E8 - .byte 0x00, 0x40, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_086106F0:: @ 86106F0 - .byte 0x00, 0x07, 0x00, 0xc0, 0x00, 0x00, 0x01, 0x00 - - .align 2 -gUnknown_086106F8:: @ 86106F8 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_08610700:: @ 8610700 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_08610708:: @ 8610708 - .2byte 0x0000, 0x001e, 0xffff, 0x0000 - - .align 2 -gUnknown_08610710:: @ 8610710 - .2byte 0x0010, 0x0004, 0x0000, 0x0004, 0x0020, 0x0004, 0x0000, 0x0004, 0x0010, 0x0004, 0x0000, 0x0004, 0x0020, 0x0004, 0x0000, 0x0004 - .2byte 0x0000, 0x0020, 0x0010, 0x0008, 0x0000, 0x0008, 0x0020, 0x0008, 0x0000, 0x0008, 0x0010, 0x0008, 0x0000, 0x0008, 0x0020, 0x0008 - .2byte 0x0000, 0x0008, 0xffff, 0x0000 - - .align 2 -gUnknown_08610758:: @ 8610758 - .4byte gUnknown_086106F8 - - .align 2 -gUnknown_0861075C:: @ 861075C - .4byte gUnknown_08610700 - - .align 2 -gUnknown_08610760:: @ 8610760 - .4byte gUnknown_08610708 - .4byte gUnknown_08610710 - - .align 2 -gUnknown_08610768:: @ 8610768 - .2byte 0x0005, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0010, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000 - .2byte 0x0020, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0040, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000 - .2byte 0x0080, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0100, 0x0005, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_086107C8:: @ 86107C8 - .2byte 0x0080, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0040, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000 - .2byte 0x0020, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0010, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000 - .2byte 0x0005, 0x0005, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_08610818:: @ 8610818 - .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_08610828:: @ 8610828 - .4byte gUnknown_08610768 - .4byte gUnknown_086107C8 - .4byte gUnknown_08610818 - - .align 2 -gUnknown_08610834:: @ 8610834 - spr_template 0x0064, 0x0064, gUnknown_086106D8, gUnknown_08610760, NULL, gDummySpriteAffineAnimTable, sub_819A44C - - .align 2 -gUnknown_0861084C:: @ 861084C - spr_template 0x0065, 0x0066, gUnknown_086106E0, gUnknown_08610758, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_08610864:: @ 8610864 - spr_template 0x0066, 0x0066, gUnknown_086106E8, gUnknown_08610758, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_0861087C:: @ 861087C - spr_template 0x0067, 0x0066, gUnknown_086106E8, gUnknown_08610758, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_08610894:: @ 8610894 - spr_template 0x006d, 0x0067, gUnknown_086106F0, gUnknown_0861075C, NULL, gUnknown_08610828, SpriteCallbackDummy - - .align 2 -sSwap_MenuOptionFuncs:: @ 86108AC - .4byte sub_819F114 - .4byte sub_819F0CC - .4byte sub_819F134 - - .align 2 -gUnknown_086108B8:: @ 86108B8 - .4byte 0x00001180, 0x00003195, 0x000001aa, 0x000021bb - - .align 2 -gUnknown_086108C8:: @ 86108C8 - window_template 0x00, 0x00, 0x02, 0x0c, 0x02, 0x0f, 0x0001 - window_template 0x02, 0x13, 0x02, 0x0b, 0x02, 0x0e, 0x0019 - window_template 0x00, 0x00, 0x0f, 0x14, 0x03, 0x0f, 0x002f - window_template 0x00, 0x15, 0x0e, 0x09, 0x06, 0x0f, 0x006b - window_template 0x00, 0x16, 0x0e, 0x08, 0x04, 0x0f, 0x00a1 - window_template 0x02, 0x15, 0x0f, 0x09, 0x05, 0x0e, 0x006b - window_template 0x02, 0x0a, 0x02, 0x04, 0x02, 0x0e, 0x00c1 - window_template 0x00, 0x13, 0x02, 0x0b, 0x02, 0x0f, 0x00c9 - window_template 0x00, 0x0f, 0x00, 0x0f, 0x02, 0x0f, 0x00df - null_window_template - gUnknown_08610918:: @ 8610918 .byte 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x1f, 0x00 diff --git a/src/battle_factory.c b/src/battle_factory.c index f85a14b48c..1ae2afa213 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -144,6 +144,7 @@ extern const u8 gUnknown_085B18AC[]; extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot); // This file's functions. +void sub_819A44C(struct Sprite *sprite); static void CB2_InitSelectScreen(void); static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V); static void Select_InitMonsData(void); @@ -207,6 +208,9 @@ void Swap_ShowSummaryMonSprite(void); void Swap_UpdateActionCursorPosition(s8 direction); void Swap_UpdateBallCursorPosition(s8 direction); void Swap_RunMenuOptionFunc(u8 taskId); +void sub_819F0CC(u8 taskId); +void sub_819F114(u8 taskId); +void sub_819F134(u8 taskId); void Swap_RunActionFunc(u8 taskId); void Task_SwapCantHaveSameMons(u8 taskId); void Swap_PrintActionStrings(void); @@ -282,26 +286,714 @@ u8 (* const sSelect_MenuOptionFuncs[])(void) = [MENU_OTHERS] = Select_OptionOthers }; -extern void (* const sSwap_MenuOptionFuncs[])(u8 taskId); +static const struct BgTemplate gUnknown_08610428[3] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 24, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 25, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 27, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate gUnknown_08610434[] = +{ + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 2, + .width = 12, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x0001, + }, + { + .priority = 0, + .tilemapLeft = 19, + .tilemapTop = 2, + .width = 11, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x0019, + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 15, + .width = 20, + .height = 3, + .paletteNum = 15, + .baseBlock = 0x002f, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 14, + .width = 8, + .height = 6, + .paletteNum = 15, + .baseBlock = 0x006b, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 14, + .width = 8, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x009b, + }, + { + .priority = 0, + .tilemapLeft = 15, + .tilemapTop = 0, + .width = 15, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x00bb, + }, + DUMMY_WIN_TEMPLATE, +}; + +static const u16 gUnknown_0861046C[] = INCBIN_U16("graphics/unknown/unknown_61046C.gbapal"); + +static const u8 gUnknown_08610476[] = {0x00, 0x02, 0x00}; +static const u8 gUnknown_08610479[] = {0x00, 0x04, 0x00}; + +static const struct OamData gUnknown_0861047C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_08610484 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_0861048C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_08610494 = +{ + .y = 0, + .affineMode = 3, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 1, +}; + +static const union AnimCmd gUnknown_0861049C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_086104A4[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_086104AC[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_086104B4[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(0, 32), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd * const gUnknown_086104FC[] = +{ + gUnknown_0861049C, +}; + +static const union AnimCmd * const gUnknown_08610500[] = +{ + gUnknown_086104A4, +}; + +static const union AnimCmd * const gUnknown_08610504[] = +{ + gUnknown_086104AC, + gUnknown_086104B4, +}; + +static const union AffineAnimCmd gUnknown_0861050C[] = +{ + AFFINEANIMCMD_FRAME(5, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(16, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(32, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(64, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(128, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(256, 5, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_0861056C[] = +{ + AFFINEANIMCMD_FRAME(128, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(64, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(32, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(16, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(5, 5, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_086105BC[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gUnknown_086105CC[] = +{ + gUnknown_0861050C, + gUnknown_0861056C, + gUnknown_086105BC, +}; + +static const struct SpriteTemplate gUnknown_086105D8 = +{ + .tileTag = 0x0064, + .paletteTag = 0x0064, + .oam = &gUnknown_0861047C, + .anims = gUnknown_08610504, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_819A44C +}; + +static const struct SpriteTemplate gUnknown_086105F0 = +{ + .tileTag = 0x0065, + .paletteTag = 0x0066, + .oam = &gUnknown_08610484, + .anims = gUnknown_086104FC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610608 = +{ + .tileTag = 0x0066, + .paletteTag = 0x0066, + .oam = &gUnknown_0861048C, + .anims = gUnknown_086104FC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610620 = +{ + .tileTag = 0x0067, + .paletteTag = 0x0066, + .oam = &gUnknown_0861048C, + .anims = gUnknown_086104FC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610638 = +{ + .tileTag = 0x006d, + .paletteTag = 0x0067, + .oam = &gUnknown_08610494, + .anims = gUnknown_08610500, + .images = NULL, + .affineAnims = gUnknown_086105CC, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteSheet gUnknown_08610650[] = +{ + {gUnknown_0860F3BC, 0x0080, 0x0065}, + {gUnknown_0860F43C, 0x0100, 0x0066}, + {gUnknown_0860F53C, 0x0100, 0x0067}, + {gUnknown_0860F63C, 0x0080, 0x0068}, + {gUnknown_0860F6BC, 0x0100, 0x0069}, + {gUnknown_0860F7BC, 0x0100, 0x006a}, + {gUnknown_0860F83C, 0x0100, 0x006b}, + {gUnknown_0860F93C, 0x0100, 0x006c}, + {gUnknown_0860FA3C, 0x0800, 0x006d}, + {}, +}; + +static const struct CompressedSpriteSheet gUnknown_086106A0[] = +{ + {gUnknown_085B18AC, 0x0800, 0x0064}, + {}, +}; + +static const struct SpritePalette gUnknown_086106B0[] = +{ + {gUnknown_0860F13C, 0x0064}, + {gUnknown_0860F15C, 0x0065}, + {gUnknown_0860F17C, 0x0066}, + {gUnknown_0861039C, 0x0067}, + {}, +}; + +static const struct OamData gUnknown_086106D8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_086106E0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_086106E8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_086106F0 = +{ + .y = 0, + .affineMode = 3, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 1, +}; + +static const union AnimCmd gUnknown_086106F8[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_08610700[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_08610708[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_08610710[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(0, 32), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd * const gUnknown_08610758[] = +{ + gUnknown_086106F8, +}; + +static const union AnimCmd * const gUnknown_0861075C[] = +{ + gUnknown_08610700, +}; + +static const union AnimCmd * const gUnknown_08610760[] = +{ + gUnknown_08610708, + gUnknown_08610710, +}; + +static const union AffineAnimCmd gUnknown_08610768[] = +{ + AFFINEANIMCMD_FRAME(5, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(16, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(32, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(64, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(128, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(256, 5, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_086107C8[] = +{ + AFFINEANIMCMD_FRAME(128, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(64, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(32, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(16, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(5, 5, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_08610818[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gUnknown_08610828[] = +{ + gUnknown_08610768, + gUnknown_086107C8, + gUnknown_08610818, +}; + +static const struct SpriteTemplate gUnknown_08610834 = +{ + .tileTag = 0x0064, + .paletteTag = 0x0064, + .oam = &gUnknown_086106D8, + .anims = gUnknown_08610760, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_819A44C +}; + +static const struct SpriteTemplate gUnknown_0861084C = +{ + .tileTag = 0x0065, + .paletteTag = 0x0066, + .oam = &gUnknown_086106E0, + .anims = gUnknown_08610758, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610864 = +{ + .tileTag = 0x0066, + .paletteTag = 0x0066, + .oam = &gUnknown_086106E8, + .anims = gUnknown_08610758, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_0861087C = +{ + .tileTag = 0x0067, + .paletteTag = 0x0066, + .oam = &gUnknown_086106E8, + .anims = gUnknown_08610758, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610894 = +{ + .tileTag = 0x006d, + .paletteTag = 0x0067, + .oam = &gUnknown_086106F0, + .anims = gUnknown_0861075C, + .images = NULL, + .affineAnims = gUnknown_08610828, + .callback = SpriteCallbackDummy +}; + +void (* const sSwap_MenuOptionFuncs[])(u8 taskId) = +{ + sub_819F114, + sub_819F0CC, + sub_819F134, +}; + +static const struct BgTemplate gUnknown_086108B8[4] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 24, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 25, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 26, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 27, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate gUnknown_086108C8[] = +{ + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 2, + .width = 12, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x0001, + }, + { + .priority = 2, + .tilemapLeft = 19, + .tilemapTop = 2, + .width = 11, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x0019, + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 15, + .width = 20, + .height = 3, + .paletteNum = 15, + .baseBlock = 0x002f, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 14, + .width = 9, + .height = 6, + .paletteNum = 15, + .baseBlock = 0x006b, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 14, + .width = 8, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x00a1, + }, + { + .priority = 2, + .tilemapLeft = 21, + .tilemapTop = 15, + .width = 9, + .height = 5, + .paletteNum = 14, + .baseBlock = 0x006b, + }, + { + .priority = 2, + .tilemapLeft = 10, + .tilemapTop = 2, + .width = 4, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x00c1, + }, + { + .priority = 0, + .tilemapLeft = 19, + .tilemapTop = 2, + .width = 11, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x00c9, + }, + { + .priority = 0, + .tilemapLeft = 15, + .tilemapTop = 0, + .width = 15, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x00df, + }, + DUMMY_WIN_TEMPLATE, +}; + +//const u16 gUnknown_08610918[] = {0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x1f, 0x00}; // palette +//const u8 gUnknown_08610922[] = {0x00, 0x02, 0x00}; +//const u8 gUnknown_08610925[] = {0x00, 0x04, 0x00}; -extern const struct BgTemplate gUnknown_08610428[3]; -extern const struct BgTemplate gUnknown_086108B8[4]; -extern const struct WindowTemplate gUnknown_08610434[]; -extern const struct WindowTemplate gUnknown_086108C8[]; -extern const u16 gUnknown_0861046C[]; extern const u16 gUnknown_08610918[]; -extern const struct SpriteTemplate gUnknown_086105D8; -extern const struct SpriteTemplate gUnknown_086105F0; -extern const struct SpriteTemplate gUnknown_08610608; -extern const struct SpriteTemplate gUnknown_08610620; -extern const struct SpriteTemplate gUnknown_08610638; -extern const u8 gUnknown_08610479[]; -extern const u8 gUnknown_08610925[]; -extern const u8 gUnknown_08610476[]; extern const u8 gUnknown_08610922[]; -extern const struct SpritePalette gUnknown_086106B0[]; -extern const struct SpriteSheet gUnknown_08610650[]; -extern const struct CompressedSpriteSheet gUnknown_086106A0[]; +extern const u8 gUnknown_08610925[]; // gfx extern const u8 gFrontierFactorySelectMenu_Gfx[]; @@ -1345,8 +2037,8 @@ static void sub_819C1D0(u8 taskId) task->data[5] = 64; task->data[8] = 65; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24])); - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); break; @@ -1364,7 +2056,7 @@ static void sub_819C1D0(u8 taskId) task->data[8] = 96; ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); } - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); if (task->data[5] != 32) return; break; @@ -1401,8 +2093,8 @@ static void sub_819C2D4(u8 taskId) task->data[5] = 32; task->data[8] = 96; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24])); - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); task->data[0]++; @@ -1415,7 +2107,7 @@ static void sub_819C2D4(u8 taskId) task->data[5] = 64; task->data[8] = 65; } - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); if (task->data[5] == 64) task->data[0]++; break; @@ -1452,8 +2144,8 @@ static void sub_819C568(void) static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V) { SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(mWin0H, nWin0H)); - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(mWin0V, nWin0V)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(mWin0H, nWin0H)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(mWin0V, nWin0V)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); } From 4d1df7ecbe69cf151d00976648aa34faae8cd6e9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 9 Sep 2018 20:31:51 +0200 Subject: [PATCH 10/28] comm --- asm/battle_frontier_2.s | 38 -------------------------------------- src/battle_factory.c | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 38 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index d66751e055..280a8a483b 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -7,44 +7,6 @@ - thumb_func_start sub_819F600 -sub_819F600: @ 819F600 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819F640 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, =sub_819F69C - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r2, [r4, 0x3C] - strh r2, [r1, 0x16] - ldr r1, [r1] - bl _call_via_r1 - ldr r0, =SpriteCallbackDummy - str r0, [r4, 0x1C] -_0819F640: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F600 thumb_func_start sub_819F654 sub_819F654: @ 819F654 diff --git a/src/battle_factory.c b/src/battle_factory.c index f85a14b48c..898278b03f 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -208,6 +208,7 @@ void Swap_UpdateActionCursorPosition(s8 direction); void Swap_UpdateBallCursorPosition(s8 direction); void Swap_RunMenuOptionFunc(u8 taskId); void Swap_RunActionFunc(u8 taskId); +void sub_819F69C(u8 taskId); void Task_SwapCantHaveSameMons(u8 taskId); void Swap_PrintActionStrings(void); void Swap_PrintActionStrings2(void); @@ -3278,3 +3279,17 @@ bool8 Swap_AlreadyHasSameSpecies(u8 monId) } return FALSE; } + +void sub_819F600(struct Sprite *sprite) +{ + u8 taskId; + + if (sprite->affineAnimEnded) + { + sprite->invisible = 1; + taskId = CreateTask(sub_819F69C, 1); + gTasks[taskId].data[7] = sprite->data[7]; + gTasks[taskId].func(taskId); + sprite->callback = SpriteCallbackDummy; + } +} From b87856b58eacd3ea7375f001427d53f096b02b68 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 10 Sep 2018 01:01:39 +0200 Subject: [PATCH 11/28] Battle Factory is decompiled and documented. --- asm/battle_frontier_2.s | 408 +--------------------- asm/battle_tent.s | 260 --------------- common_syms/save.txt | 3 + data/battle_frontier_2.s | 23 -- include/battle_factory.h | 7 + include/battle_frontier_2.h | 2 - include/battle_tower.h | 2 +- include/menu.h | 2 +- include/save.h | 16 +- ld_script.txt | 1 - src/battle_factory.c | 650 +++++++++++++++++++++--------------- src/battle_tent.c | 190 +++++++---- src/hall_of_fame.c | 37 +- src/save.c | 5 +- src/save_failed_screen.c | 8 +- sym_bss.txt | 4 +- sym_common.txt | 8 - 17 files changed, 569 insertions(+), 1057 deletions(-) delete mode 100644 asm/battle_tent.s create mode 100644 include/battle_factory.h diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 280a8a483b..c7966b48df 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -4,410 +4,6 @@ .syntax unified .text - - - - - thumb_func_start sub_819F654 -sub_819F654: @ 819F654 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819F694 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _0819F688 - ldr r0, =sFactorySwapScreen - ldr r0, [r0] - adds r0, 0x30 - movs r1, 0 - strb r1, [r0] - b _0819F68E - .pool -_0819F688: - movs r0, 0 - bl sub_819BE20 -_0819F68E: - adds r0, r4, 0 - bl DestroySprite -_0819F694: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_819F654 - - thumb_func_start sub_819F69C -sub_819F69C: @ 819F69C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0819F71A - cmp r0, 0x1 - bgt _0819F6C4 - cmp r0, 0 - beq _0819F6CA - b _0819F77C - .pool -_0819F6C4: - cmp r0, 0x2 - beq _0819F73C - b _0819F77C -_0819F6CA: - movs r0, 0x58 - strh r0, [r4, 0xE] - movs r0, 0x98 - strh r0, [r4, 0x38] - movs r0, 0x40 - strh r0, [r4, 0x12] - movs r0, 0x41 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0x38] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - b _0819F7A6 -_0819F71A: - movs r0, 0x3 - bl ShowBg - ldr r1, =0x00001248 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - b _0819F7A6 - .pool -_0819F73C: - ldrh r0, [r4, 0x12] - subs r0, 0x4 - strh r0, [r4, 0x12] - ldrh r1, [r4, 0x18] - adds r1, 0x4 - strh r1, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _0819F758 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x5F - ble _0819F760 -_0819F758: - movs r0, 0x20 - strh r0, [r4, 0x12] - movs r0, 0x60 - strh r0, [r4, 0x18] -_0819F760: - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _0819F7AC - b _0819F7A6 -_0819F77C: - adds r0, r5, 0 - bl DestroyTask - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x16 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _0819F7A0 - bl sub_819F8E0 - b _0819F7AC - .pool -_0819F7A0: - bl sub_819BD70 - b _0819F7AC -_0819F7A6: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819F7AC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819F69C - - thumb_func_start sub_819F7B4 -sub_819F7B4: @ 819F7B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0819F844 - cmp r0, 0x1 - beq _0819F894 - movs r0, 0x3 - bl HideBg - ldr r3, =gSprites - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r4, 0x16] - strh r1, [r0, 0x3C] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_819F654 - str r1, [r0] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - adds r0, r5, 0 - bl DestroyTask - b _0819F8D8 - .pool -_0819F844: - movs r0, 0x58 - strh r0, [r4, 0xE] - movs r0, 0x98 - strh r0, [r4, 0x38] - movs r0, 0x20 - strh r0, [r4, 0x12] - movs r0, 0x60 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0x38] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - b _0819F8D2 -_0819F894: - ldrh r0, [r4, 0x12] - adds r0, 0x4 - strh r0, [r4, 0x12] - ldrh r1, [r4, 0x18] - subs r1, 0x4 - strh r1, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - bgt _0819F8B0 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x41 - bgt _0819F8B8 -_0819F8B0: - movs r0, 0x40 - strh r0, [r4, 0x12] - movs r0, 0x41 - strh r0, [r4, 0x18] -_0819F8B8: - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bne _0819F8D8 -_0819F8D2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819F8D8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819F7B4 - - thumb_func_start sub_819F8E0 -sub_819F8E0: @ 819F8E0 - push {r4-r6,lr} - sub sp, 0x10 - ldr r0, =sFactorySwapScreen - ldr r1, [r0] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819F900 - ldrb r1, [r1, 0x3] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - b _0819F908 - .pool -_0819F900: - ldrb r1, [r1, 0x3] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty -_0819F908: - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - adds r0, r6, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl CreateMonPicSprite_HandleDeoxys - ldr r2, =sFactorySwapScreen - ldr r1, [r2] - adds r1, 0x2C - movs r3, 0 - strb r0, [r1] - ldr r4, =gSprites - ldr r0, [r2] - adds r0, 0x2C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x28 - strb r3, [r0] - ldr r0, [r2] - adds r0, 0x2C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x29 - strb r3, [r0] - ldr r0, [r2] - adds r0, 0x30 - strb r3, [r0] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F8E0 - -@ Battle Factory ends here thumb_func_start sub_819F99C sub_819F99C: @ 819F99C @@ -12655,7 +12251,7 @@ nullsub_123: @ 81A6184 sub_81A6188: @ 81A6188 push {lr} bl ZeroPlayerPartyMons - bl sub_819A4F8 + bl DoBattleFactorySelectScreen pop {r0} bx r0 thumb_func_end sub_81A6188 @@ -12663,7 +12259,7 @@ sub_81A6188: @ 81A6188 thumb_func_start sub_81A6198 sub_81A6198: @ 81A6198 push {lr} - bl sub_819DC00 + bl DoBattleFactorySwapScreen pop {r0} bx r0 thumb_func_end sub_81A6198 diff --git a/asm/battle_tent.s b/asm/battle_tent.s deleted file mode 100644 index 8de98850f6..0000000000 --- a/asm/battle_tent.s +++ /dev/null @@ -1,260 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - - thumb_func_start sub_81BA040 -sub_81BA040: @ 81BA040 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r0, 0 - mov r10, r0 - ldr r1, =gFacilityTrainers - ldr r0, =gSlateportBattleTentTrainers - str r0, [r1] - ldr r1, =gFacilityTrainerMons - ldr r0, =gSlateportBattleTentMons - str r0, [r1] - ldr r7, =gSaveBlock2Ptr - ldr r1, =0x0000ffff - mov r8, r1 -_081BA062: - mov r2, r10 - lsls r6, r2, 1 -_081BA066: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1E - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - movs r5, 0 - ldr r1, [r7] - ldr r4, =0x00000cb2 - adds r0, r1, r4 - ldrh r0, [r0] - cmp r5, r0 - bge _081BA0AA - ldr r2, =0x00000cb4 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, r3 - beq _081BA0AA - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r1, r4 - ldrh r2, [r0] - adds r4, 0x2 - adds r1, r4 -_081BA09C: - adds r1, 0x2 - adds r5, 0x1 - cmp r5, r2 - bge _081BA0AA - ldrh r0, [r1] - cmp r0, r3 - bne _081BA09C -_081BA0AA: - ldr r0, [r7] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - bne _081BA066 - ldr r2, =gTrainerBattleOpponent_A - strh r3, [r2] - ldrh r3, [r2] - ldr r4, =gFacilityTrainers - ldr r1, [r4] - movs r0, 0x34 - muls r0, r3 - adds r0, r1 - ldr r0, [r0, 0x30] - adds r1, r6, r0 - ldrh r0, [r1] - cmp r0, r8 - beq _081BA0DE - ldr r3, =0x0000ffff -_081BA0D2: - adds r1, 0x2 - movs r6, 0x1 - add r10, r6 - ldrh r0, [r1] - cmp r0, r3 - bne _081BA0D2 -_081BA0DE: - mov r0, r10 - cmp r0, 0x8 - bgt _081BA110 - movs r1, 0 - mov r10, r1 - b _081BA062 - .pool -_081BA110: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r6, =0x00000cb2 - adds r3, r1, r6 - ldrh r0, [r3] - cmp r0, 0x1 - bhi _081BA12A - lsls r0, 1 - ldr r3, =0x00000cb4 - adds r1, r3 - adds r1, r0 - ldrh r0, [r2] - strh r0, [r1] -_081BA12A: - ldrh r1, [r2] - ldr r2, [r4] - movs r0, 0x34 - muls r0, r1 - adds r0, r2 - ldr r0, [r0, 0x30] - mov r9, r0 - movs r5, 0 - ldr r7, =gUnknown_03001298 - mov r8, sp -_081BA13E: - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r10 - bl __modsi3 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - strh r0, [r7] - movs r2, 0 - ldrh r0, [r7] - ldr r4, =gFacilityTrainerMons - ldr r3, [r4] - lsls r0, 4 - adds r0, r3 - ldr r1, =gSaveBlock2Ptr - ldrh r6, [r0] - ldr r1, [r1] -_081BA166: - movs r4, 0xE7 - lsls r4, 4 - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, 4 - adds r0, r3 - ldrh r0, [r0] - cmp r6, r0 - beq _081BA180 - adds r1, 0xC - adds r2, 0x1 - cmp r2, 0x5 - ble _081BA166 -_081BA180: - cmp r2, 0x6 - bne _081BA220 - movs r4, 0 - cmp r4, r5 - bge _081BA1B0 - mov r0, sp - ldrh r0, [r0] - cmp r0, r6 - beq _081BA1B0 - ldr r6, =gUnknown_03001298 - ldr r3, =gFacilityTrainerMons - mov r2, sp -_081BA198: - adds r2, 0x2 - adds r4, 0x1 - cmp r4, r5 - bge _081BA1B0 - ldrh r0, [r6] - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - ldrh r1, [r2] - ldrh r0, [r0] - cmp r1, r0 - bne _081BA198 -_081BA1B0: - cmp r4, r5 - bne _081BA220 - movs r4, 0 - cmp r4, r5 - bge _081BA1E6 - ldr r6, =gBattleFrontierHeldItems - mov r12, r6 - add r3, sp, 0x8 -_081BA1C0: - ldrh r2, [r3] - cmp r2, 0 - beq _081BA1DE - ldr r1, =gUnknown_03001298 - ldrh r0, [r1] - ldr r6, =gFacilityTrainerMons - ldr r1, [r6] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0xA] - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - cmp r2, r0 - beq _081BA1E6 -_081BA1DE: - adds r3, 0x2 - adds r4, 0x1 - cmp r4, r5 - blt _081BA1C0 -_081BA1E6: - cmp r4, r5 - bne _081BA220 - lsls r2, r5, 1 - ldrh r0, [r7] - ldr r1, =gFacilityTrainerMons - ldr r4, [r1] - lsls r0, 4 - adds r0, r4 - ldrh r0, [r0] - mov r3, r8 - strh r0, [r3] - add r1, sp, 0x8 - adds r1, r2 - ldr r3, =gBattleFrontierHeldItems - ldrh r0, [r7] - lsls r0, 4 - adds r0, r4 - ldrb r0, [r0, 0xA] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - ldr r0, =gUnknown_03006298 - adds r2, r0 - ldrh r0, [r7] - strh r0, [r2] - movs r4, 0x2 - add r8, r4 - adds r5, 0x1 -_081BA220: - cmp r5, 0x3 - bne _081BA13E - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BA040 - - .align 2, 0 @ Don't pad with nop. diff --git a/common_syms/save.txt b/common_syms/save.txt index 92d31eb149..d7668c332e 100644 --- a/common_syms/save.txt +++ b/common_syms/save.txt @@ -8,3 +8,6 @@ gUnknown_03006208 gSaveUnusedVar gSaveFileStatus gGameContinueCallback +gRamSaveSectionLocations +gSaveUnusedVar2 +gUnknown_03006294 diff --git a/data/battle_frontier_2.s b/data/battle_frontier_2.s index f2e2dd6501..dc38826a7a 100644 --- a/data/battle_frontier_2.s +++ b/data/battle_frontier_2.s @@ -6,29 +6,6 @@ .section .rodata -gUnknown_08610918:: @ 8610918 - .byte 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x1f, 0x00 - -gUnknown_08610922:: @ 8610922 - .byte 0x00, 0x02, 0x00 - -gUnknown_08610925:: @ 8610925 - .byte 0x00, 0x04, 0x00 - - .align 2 -gUnknown_08610928:: @ 8610928 - .4byte 0x00000001, sub_819F20C - .4byte 0x00000001, sub_819F20C - .4byte 0x00000001, sub_819F20C - .4byte 0x00000003, sub_819F1AC - - .align 2 -gUnknown_08610948:: @ 8610948 - .4byte 0x00000001, sub_819F20C - .4byte 0x00000001, sub_819F20C - .4byte 0x00000001, sub_819F20C - .4byte 0x00000002, sub_819F1DC - .4byte 0x00000003, sub_819F1AC .align 2 @ struct, eight bytes x6 for names in different languages, then 0x28 more bytes of data gUnknown_08610970:: @ 8610970 diff --git a/include/battle_factory.h b/include/battle_factory.h new file mode 100644 index 0000000000..1b0e449431 --- /dev/null +++ b/include/battle_factory.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BATTLE_FACTORY_H +#define GUARD_BATTLE_FACTORY_H + +void DoBattleFactorySelectScreen(void); +void DoBattleFactorySwapScreen(void); + +#endif // GUARD_BATTLE_FACTORY_H diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h index 09e9740685..4ef860e80a 100644 --- a/include/battle_frontier_2.h +++ b/include/battle_frontier_2.h @@ -9,8 +9,6 @@ bool8 InBattlePike(void); void sub_819FA50(void); void sub_81AA078(u16*, u8); void sub_81A4C30(void); -void sub_819A4F8(void); -void sub_819DC00(void); bool8 sub_81A6BF4(void); #endif // GUARD_BATTLE_FRONTIER_2_H diff --git a/include/battle_tower.h b/include/battle_tower.h index f07e9e5443..5879a73bb1 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -31,7 +31,7 @@ struct BattleFrontierTrainer u16 speechBefore[6]; u16 speechWin[6]; u16 speechLose[6]; - u16 *btMonPool; + const u16 *btMonPool; }; struct FacilityMon diff --git a/include/menu.h b/include/menu.h index b52b165f28..309667b19d 100644 --- a/include/menu.h +++ b/include/menu.h @@ -35,7 +35,6 @@ void SetStandardWindowBorderStyle(u8 a0, u8 a1); void sub_8197930(void); u8 GetPlayerTextSpeed(void); void sub_81978B0(u16 arg0); - void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextSubPrinter *, u16)); void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str); void sub_8198070(u8 windowId, bool8 copyToVram); @@ -87,5 +86,6 @@ u8 AddMapNamePopUpWindow(void); void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing); void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette); void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP); +void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyToVram); #endif // GUARD_MENU_H diff --git a/include/save.h b/include/save.h index 9859870b49..a87e31e99e 100644 --- a/include/save.h +++ b/include/save.h @@ -1,8 +1,6 @@ #ifndef GUARD_SAVE_H #define GUARD_SAVE_H -extern u16 gSaveFileStatus; - struct SaveSectionLocation { void *data; @@ -58,6 +56,20 @@ enum #define SECTION_ID_RECORDED_BATTLE 31 +extern u16 gLastWrittenSector; +extern u32 gLastSaveCounter; +extern u16 gLastKnownGoodSector; +extern u32 gDamagedSaveSectors; +extern u32 gSaveCounter; +extern struct SaveSection *gFastSaveSection; +extern u16 gUnknown_03006208; +extern u16 gSaveFileStatus; +extern void (*gGameContinueCallback)(void); +extern struct SaveSectionLocation gRamSaveSectionLocations[]; +extern u16 gUnknown_03006294; + +extern struct SaveSection gSaveDataBuffer; + void ClearSaveData(void); void Save_ResetSaveCounters(void); bool32 SetDamagedSectorBits(u8 op, u8 bit); diff --git a/ld_script.txt b/ld_script.txt index eec0bbc68d..26e6fa2e33 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -256,7 +256,6 @@ SECTIONS { src/item_icon.o(.text); asm/party_menu.o(.text); src/battle_tent.o(.text); - asm/battle_tent.o(.text); src/unk_text_util_2.o(.text); src/multiboot.o(.text); src/unk_81BAD84.o(.text); diff --git a/src/battle_factory.c b/src/battle_factory.c index 486449f943..07c5c9e10d 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle_factory.h" #include "sprite.h" #include "event_data.h" #include "overworld.h" @@ -115,14 +116,10 @@ struct FactorySwapMonsStruct u8 yesNoCursorPos; u8 actionsCount; const struct SwapActionIdAndFunc *actionsData; - u8 unk1C; - u8 unk1D; - u8 unk1E; - u8 unk1F; + u8 unused1C[4]; bool8 monSwapped; u8 fadeSpeciesNameTaskId; - u8 unk22; - u8 unk23; + bool8 unk22; u16 unk24; bool8 unk26; u8 unk27; @@ -142,9 +139,11 @@ extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; extern const u8 gUnknown_085B18AC[]; extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot); +extern u8 sub_81A6F70(u8 battleMode, u8 lvlMode); +extern u8 sub_81A6CA8(u8 arg0, u8 arg1); // This file's functions. -void sub_819A44C(struct Sprite *sprite); +static void sub_819A44C(struct Sprite *sprite); static void CB2_InitSelectScreen(void); static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V); static void Select_InitMonsData(void); @@ -168,95 +167,97 @@ static void Task_HandleSelectionScreenMenu(u8 taskId); static void CreateFrontierFactorySelectableMons(u8 firstMonId); static void CreateTentFactorySelectableMons(u8 firstMonId); static void Select_SetBallSpritePaletteNum(u8 id); -void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1); +static void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1); static void sub_819B958(u8 windowId); -void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen); -void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen); +static void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen); +static void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen); static u8 Select_RunMenuOptionFunc(void); static u8 sub_819BC9C(void); static u8 Select_OptionSummary(void); static u8 Select_OptionOthers(void); static u8 Select_OptionRentDeselect(void); -u8 sub_81A6F70(u8 battleMode, u8 lvlMode); -u8 sub_81A6CA8(u8 arg0, u8 arg1); static bool32 Select_AreSpeciesValid(u16 monSetId); -void Swap_DestroyAllSprites(void); -void Swap_ShowYesNoOptions(void); -void sub_819E8EC(void); -void sub_819EAC0(void); -void Swap_UpdateYesNoCursorPosition(s8 direction); -void Swap_UpdateMenuCursorPosition(s8 direction); -void sub_819EA64(u8 windowId); -void sub_819D770(u8 taskId); -void Task_HandleSwapScreenChooseMons(u8 taskId); -void sub_819D588(u8 taskId); -void sub_819F7B4(u8 taskId); -void Swap_PrintOnInfoWindow(const u8 *str); -void Swap_ShowMenuOptions(void); -void Swap_PrintMenuOptions(void); -void Swap_PrintYesNoOptions(void); -void Swap_PrintMonSpecies(void); -void Swap_PrintMonSpecies2(void); -void Swap_PrintMonSpecies3(void); -void Swap_PrintMonCategory(void); -void Swap_InitAllSprites(void); -void Swap_PrintPkmnSwap(void); -void sub_819EADC(void); -void sub_819EAF8(void); -void CB2_InitSwapScreen(void); -void Swap_ShowSummaryMonSprite(void); -void Swap_UpdateActionCursorPosition(s8 direction); -void Swap_UpdateBallCursorPosition(s8 direction); -void Swap_RunMenuOptionFunc(u8 taskId); -void sub_819F0CC(u8 taskId); -void sub_819F114(u8 taskId); -void sub_819F134(u8 taskId); -void Swap_RunActionFunc(u8 taskId); -void sub_819F69C(u8 taskId); -void Task_SwapCantHaveSameMons(u8 taskId); -void Swap_PrintActionStrings(void); -void Swap_PrintActionStrings2(void); -void Swap_PrintOneActionString(u8 which); -void Swap_InitActions(u8 id); -void sub_819E838(u8 arg0); -bool8 Swap_AlreadyHasSameSpecies(u8 monId); -void sub_819F600(struct Sprite *sprite); +static void Swap_DestroyAllSprites(void); +static void Swap_ShowYesNoOptions(void); +static void sub_819E8EC(void); +static void sub_819EAC0(void); +static void Swap_UpdateYesNoCursorPosition(s8 direction); +static void Swap_UpdateMenuCursorPosition(s8 direction); +static void sub_819EA64(u8 windowId); +static void sub_819D770(u8 taskId); +static void Task_HandleSwapScreenChooseMons(u8 taskId); +static void sub_819D588(u8 taskId); +static void sub_819F7B4(u8 taskId); +static void Swap_PrintOnInfoWindow(const u8 *str); +static void Swap_ShowMenuOptions(void); +static void Swap_PrintMenuOptions(void); +static void Swap_PrintYesNoOptions(void); +static void Swap_PrintMonSpecies(void); +static void Swap_PrintMonSpecies2(void); +static void Swap_PrintMonSpecies3(void); +static void Swap_PrintMonCategory(void); +static void Swap_InitAllSprites(void); +static void Swap_PrintPkmnSwap(void); +static void sub_819EADC(void); +static void sub_819EAF8(void); +static void CB2_InitSwapScreen(void); +static void Swap_ShowSummaryMonSprite(void); +static void Swap_UpdateActionCursorPosition(s8 direction); +static void Swap_UpdateBallCursorPosition(s8 direction); +static void Swap_RunMenuOptionFunc(u8 taskId); +static void sub_819F0CC(u8 taskId); +static void sub_819F114(u8 taskId); +static void sub_819F134(u8 taskId); +static void Swap_RunActionFunc(u8 taskId); +static void sub_819F69C(u8 taskId); +static void Task_SwapCantHaveSameMons(u8 taskId); +static void Swap_ShowMonSprite(void); +static void Swap_PrintActionStrings(void); +static void Swap_PrintActionStrings2(void); +static void Swap_PrintOneActionString(u8 which); +static void Swap_InitActions(u8 id); +static void sub_819E838(u8 arg0); +static bool8 Swap_AlreadyHasSameSpecies(u8 monId); +static void sub_819F600(struct Sprite *sprite); +static void Swap_ActionMon(u8 taskId); +static void Swap_ActionCancel(u8 taskId); +static void Swap_ActionPkmnForSwap(u8 taskId); // Ewram variables -EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; -EWRAM_DATA u8 *gUnknown_0203CE30 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; -EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; -EWRAM_DATA u8 *gUnknown_0203CE40 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE44 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE48 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE4C = NULL; +static EWRAM_DATA u8 *sSelectMenuTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSelectMonCardBgTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSelectMenuTilemapBuffer = NULL; +static EWRAM_DATA u8 *sSelectMonCardBgTilemapBuffer = NULL; +static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; +static EWRAM_DATA u8 *sSwapMenuTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSwapMonCardBgTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSwapMenuTilemapBuffer = NULL; +static EWRAM_DATA u8 *sSwapMonCardBgTilemapBuffer = NULL; // IWRAM bss -IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; -IWRAM_DATA void (*gUnknown_03001280)(u8 taskId); -IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen; +static IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; +static IWRAM_DATA void (*sSwap_CurrentTableFunc)(u8 taskId); +static IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen; // Const rom data. -const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal"); -const u16 gUnknown_0860F15C[] = INCBIN_U16("graphics/unknown/unknown_60F15C.gbapal"); -const u16 gUnknown_0860F17C[] = INCBIN_U16("graphics/unknown/unknown_60F17C.gbapal"); -const u8 gUnknown_0860F1BC[] = INCBIN_U8("graphics/unknown/unknown_60F1BC.4bpp"); -const u8 gUnknown_0860F3BC[] = INCBIN_U8("graphics/unknown/unknown_60F3BC.4bpp"); -const u8 gUnknown_0860F43C[] = INCBIN_U8("graphics/unknown/unknown_60F43C.4bpp"); -const u8 gUnknown_0860F53C[] = INCBIN_U8("graphics/unknown/unknown_60F53C.4bpp"); -const u8 gUnknown_0860F63C[] = INCBIN_U8("graphics/unknown/unknown_60F63C.4bpp"); -const u8 gUnknown_0860F6BC[] = INCBIN_U8("graphics/unknown/unknown_60F6BC.4bpp"); -const u8 gUnknown_0860F7BC[] = INCBIN_U8("graphics/unknown/unknown_60F7BC.4bpp"); -const u8 gUnknown_0860F83C[] = INCBIN_U8("graphics/unknown/unknown_60F83C.4bpp"); -const u8 gUnknown_0860F93C[] = INCBIN_U8("graphics/unknown/unknown_60F93C.4bpp"); -const u8 gUnknown_0860FA3C[] = INCBIN_U8("graphics/unknown/unknown_60FA3C.4bpp"); -const u8 gUnknown_0861023C[] = INCBIN_U8("graphics/unknown/unknown_61023C.bin"); -const u8 gUnknown_0861033C[] = INCBIN_U8("graphics/unknown/unknown_61033C.4bpp"); -const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbapal"); +static const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal"); +static const u16 gUnknown_0860F15C[] = INCBIN_U16("graphics/unknown/unknown_60F15C.gbapal"); +static const u16 gUnknown_0860F17C[] = INCBIN_U16("graphics/unknown/unknown_60F17C.gbapal"); +static const u8 gUnknown_0860F1BC[] = INCBIN_U8("graphics/unknown/unknown_60F1BC.4bpp"); +static const u8 gUnknown_0860F3BC[] = INCBIN_U8("graphics/unknown/unknown_60F3BC.4bpp"); +static const u8 gUnknown_0860F43C[] = INCBIN_U8("graphics/unknown/unknown_60F43C.4bpp"); +static const u8 gUnknown_0860F53C[] = INCBIN_U8("graphics/unknown/unknown_60F53C.4bpp"); +static const u8 gUnknown_0860F63C[] = INCBIN_U8("graphics/unknown/unknown_60F63C.4bpp"); +static const u8 gUnknown_0860F6BC[] = INCBIN_U8("graphics/unknown/unknown_60F6BC.4bpp"); +static const u8 gUnknown_0860F7BC[] = INCBIN_U8("graphics/unknown/unknown_60F7BC.4bpp"); +static const u8 gUnknown_0860F83C[] = INCBIN_U8("graphics/unknown/unknown_60F83C.4bpp"); +static const u8 gUnknown_0860F93C[] = INCBIN_U8("graphics/unknown/unknown_60F93C.4bpp"); +static const u8 gUnknown_0860FA3C[] = INCBIN_U8("graphics/unknown/unknown_60FA3C.4bpp"); +static const u8 gUnknown_0861023C[] = INCBIN_U8("graphics/unknown/unknown_61023C.bin"); +static const u8 gUnknown_0861033C[] = INCBIN_U8("graphics/unknown/unknown_61033C.4bpp"); +static const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbapal"); -const struct SpriteSheet gUnknown_086103BC[] = +static const struct SpriteSheet gUnknown_086103BC[] = { {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), TAG_TILE_65}, {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), TAG_TILE_66}, @@ -265,13 +266,13 @@ const struct SpriteSheet gUnknown_086103BC[] = {}, }; -const struct CompressedSpriteSheet gUnknown_086103E4[] = +static const struct CompressedSpriteSheet gUnknown_086103E4[] = { {gUnknown_085B18AC, 0x800, TAG_TILE_64}, {}, }; -const struct SpritePalette gUnknown_086103F4[] = +static const struct SpritePalette gUnknown_086103F4[] = { {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, @@ -280,14 +281,14 @@ const struct SpritePalette gUnknown_086103F4[] = {}, }; -u8 (* const sSelect_MenuOptionFuncs[])(void) = +u8 static (* const sSelect_MenuOptionFuncs[])(void) = { [MENU_SUMMARY] = Select_OptionSummary, [MENU_RENT] /*Or Deselect*/ = Select_OptionRentDeselect, [MENU_OTHERS] = Select_OptionOthers }; -static const struct BgTemplate gUnknown_08610428[3] = +static const struct BgTemplate sSelect_BgTemplates[] = { { .bg = 0, @@ -318,7 +319,7 @@ static const struct BgTemplate gUnknown_08610428[3] = }, }; -static const struct WindowTemplate gUnknown_08610434[] = +static const struct WindowTemplate sSelect_WindowTemplates[] = { { .priority = 0, @@ -551,8 +552,8 @@ static const union AffineAnimCmd * const gUnknown_086105CC[] = static const struct SpriteTemplate gUnknown_086105D8 = { - .tileTag = 0x0064, - .paletteTag = 0x0064, + .tileTag = TAG_TILE_64, + .paletteTag = TAG_PAL_BALL_GREY, .oam = &gUnknown_0861047C, .anims = gUnknown_08610504, .images = NULL, @@ -562,8 +563,8 @@ static const struct SpriteTemplate gUnknown_086105D8 = static const struct SpriteTemplate gUnknown_086105F0 = { - .tileTag = 0x0065, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_65, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_08610484, .anims = gUnknown_086104FC, .images = NULL, @@ -573,8 +574,8 @@ static const struct SpriteTemplate gUnknown_086105F0 = static const struct SpriteTemplate gUnknown_08610608 = { - .tileTag = 0x0066, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_66, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_0861048C, .anims = gUnknown_086104FC, .images = NULL, @@ -584,8 +585,8 @@ static const struct SpriteTemplate gUnknown_08610608 = static const struct SpriteTemplate gUnknown_08610620 = { - .tileTag = 0x0067, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_67, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_0861048C, .anims = gUnknown_086104FC, .images = NULL, @@ -595,8 +596,8 @@ static const struct SpriteTemplate gUnknown_08610620 = static const struct SpriteTemplate gUnknown_08610638 = { - .tileTag = 0x006d, - .paletteTag = 0x0067, + .tileTag = TAG_TILE_6D, + .paletteTag = TAG_PAL_67, .oam = &gUnknown_08610494, .anims = gUnknown_08610500, .images = NULL, @@ -606,30 +607,30 @@ static const struct SpriteTemplate gUnknown_08610638 = static const struct SpriteSheet gUnknown_08610650[] = { - {gUnknown_0860F3BC, 0x0080, 0x0065}, - {gUnknown_0860F43C, 0x0100, 0x0066}, - {gUnknown_0860F53C, 0x0100, 0x0067}, - {gUnknown_0860F63C, 0x0080, 0x0068}, - {gUnknown_0860F6BC, 0x0100, 0x0069}, - {gUnknown_0860F7BC, 0x0100, 0x006a}, - {gUnknown_0860F83C, 0x0100, 0x006b}, - {gUnknown_0860F93C, 0x0100, 0x006c}, - {gUnknown_0860FA3C, 0x0800, 0x006d}, + {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), TAG_TILE_65}, + {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), TAG_TILE_66}, + {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), TAG_TILE_67}, + {gUnknown_0860F63C, sizeof(gUnknown_0860F63C), TAG_TILE_68}, + {gUnknown_0860F6BC, sizeof(gUnknown_0860F6BC), TAG_TILE_69}, + {gUnknown_0860F7BC, 0x100, TAG_TILE_6A}, + {gUnknown_0860F83C, sizeof(gUnknown_0860F83C), TAG_TILE_6B}, + {gUnknown_0860F93C, sizeof(gUnknown_0860F93C), TAG_TILE_6C}, + {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), TAG_TILE_6D}, {}, }; static const struct CompressedSpriteSheet gUnknown_086106A0[] = { - {gUnknown_085B18AC, 0x0800, 0x0064}, + {gUnknown_085B18AC, 0x800, TAG_TILE_64}, {}, }; static const struct SpritePalette gUnknown_086106B0[] = { - {gUnknown_0860F13C, 0x0064}, - {gUnknown_0860F15C, 0x0065}, - {gUnknown_0860F17C, 0x0066}, - {gUnknown_0861039C, 0x0067}, + {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, + {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, + {gUnknown_0860F17C, TAG_PAL_66}, + {gUnknown_0861039C, TAG_PAL_67}, {}, }; @@ -802,8 +803,8 @@ static const union AffineAnimCmd * const gUnknown_08610828[] = static const struct SpriteTemplate gUnknown_08610834 = { - .tileTag = 0x0064, - .paletteTag = 0x0064, + .tileTag = TAG_TILE_64, + .paletteTag = TAG_PAL_BALL_GREY, .oam = &gUnknown_086106D8, .anims = gUnknown_08610760, .images = NULL, @@ -813,8 +814,8 @@ static const struct SpriteTemplate gUnknown_08610834 = static const struct SpriteTemplate gUnknown_0861084C = { - .tileTag = 0x0065, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_65, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_086106E0, .anims = gUnknown_08610758, .images = NULL, @@ -824,8 +825,8 @@ static const struct SpriteTemplate gUnknown_0861084C = static const struct SpriteTemplate gUnknown_08610864 = { - .tileTag = 0x0066, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_66, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_086106E8, .anims = gUnknown_08610758, .images = NULL, @@ -835,8 +836,8 @@ static const struct SpriteTemplate gUnknown_08610864 = static const struct SpriteTemplate gUnknown_0861087C = { - .tileTag = 0x0067, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_67, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_086106E8, .anims = gUnknown_08610758, .images = NULL, @@ -846,8 +847,8 @@ static const struct SpriteTemplate gUnknown_0861087C = static const struct SpriteTemplate gUnknown_08610894 = { - .tileTag = 0x006d, - .paletteTag = 0x0067, + .tileTag = TAG_TILE_6D, + .paletteTag = TAG_PAL_67, .oam = &gUnknown_086106F0, .anims = gUnknown_0861075C, .images = NULL, @@ -855,14 +856,14 @@ static const struct SpriteTemplate gUnknown_08610894 = .callback = SpriteCallbackDummy }; -void (* const sSwap_MenuOptionFuncs[])(u8 taskId) = +void static (* const sSwap_MenuOptionFuncs[])(u8 taskId) = { sub_819F114, sub_819F0CC, sub_819F134, }; -static const struct BgTemplate gUnknown_086108B8[4] = +static const struct BgTemplate sSwap_BgTemplates[4] = { { .bg = 0, @@ -902,7 +903,7 @@ static const struct BgTemplate gUnknown_086108B8[4] = }, }; -static const struct WindowTemplate gUnknown_086108C8[] = +static const struct WindowTemplate sSwap_WindowTemplates[] = { { .priority = 0, @@ -988,13 +989,26 @@ static const struct WindowTemplate gUnknown_086108C8[] = DUMMY_WIN_TEMPLATE, }; -//const u16 gUnknown_08610918[] = {0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x1f, 0x00}; // palette -//const u8 gUnknown_08610922[] = {0x00, 0x02, 0x00}; -//const u8 gUnknown_08610925[] = {0x00, 0x04, 0x00}; +static const u16 gUnknown_08610918[] = {0x0, 0x0, 0x7FFF, 0x0, 0x1F}; // Palette. +static const u8 gUnknown_08610922[] = {0x0, 0x02, 0x0}; +static const u8 gUnknown_08610925[] = {0x0, 0x04, 0x0}; -extern const u16 gUnknown_08610918[]; -extern const u8 gUnknown_08610922[]; -extern const u8 gUnknown_08610925[]; +static const struct SwapActionIdAndFunc sSwap_PlayerScreenActions[] = +{ + {1, Swap_ActionMon}, + {1, Swap_ActionMon}, + {1, Swap_ActionMon}, + {3, Swap_ActionCancel}, +}; + +static const struct SwapActionIdAndFunc sSwap_EnemyScreenActions[] = +{ + {1, Swap_ActionMon}, + {1, Swap_ActionMon}, + {1, Swap_ActionMon}, + {2, Swap_ActionPkmnForSwap}, + {3, Swap_ActionCancel}, +}; // gfx extern const u8 gFrontierFactorySelectMenu_Gfx[]; @@ -1029,7 +1043,7 @@ extern const u8 gText_SamePkmnInPartyAlready[]; extern const u8 gText_Cancel3[]; // code -void sub_819A44C(struct Sprite *sprite) +static void sub_819A44C(struct Sprite *sprite) { if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED)) { @@ -1076,7 +1090,7 @@ static void Select_VblankCb(void) TransferPlttBuffer(); } -void sub_819A4F8(void) +void DoBattleFactorySelectScreen(void) { sFactorySelectScreen = NULL; SetMainCallback2(CB2_InitSelectScreen); @@ -1095,16 +1109,16 @@ static void CB2_InitSelectScreen(void) SetVBlankCallback(NULL); CpuFill32(0, (void *)VRAM, VRAM_SIZE); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_08610428, ARRAY_COUNT(gUnknown_08610428)); - InitWindows(gUnknown_08610434); + InitBgsFromTemplates(0, sSelect_BgTemplates, ARRAY_COUNT(sSelect_BgTemplates)); + InitWindows(sSelect_WindowTemplates); DeactivateAllTextPrinters(); gMain.state++; break; case 1: - gUnknown_0203CE2C = Alloc(0x440); - gUnknown_0203CE30 = AllocZeroed(0x440); - gUnknown_0203CE34 = Alloc(0x800); - gUnknown_0203CE38 = AllocZeroed(0x800); + sSelectMenuTilesetBuffer = Alloc(0x440); + sSelectMonCardBgTilesetBuffer = AllocZeroed(0x440); + sSelectMenuTilemapBuffer = Alloc(0x800); + sSelectMonCardBgTilemapBuffer = AllocZeroed(0x800); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -1128,12 +1142,12 @@ static void CB2_InitSelectScreen(void) ResetSpriteData(); ResetTasks(); FreeAllSpritePalettes(); - CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE2C, 0x440); - CpuCopy16(gUnknown_0861033C, gUnknown_0203CE30, 0x60); - LoadBgTiles(1, gUnknown_0203CE2C, 0x440, 0); - LoadBgTiles(3, gUnknown_0203CE30, 0x60, 0); - CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE34, 0x800); - LoadBgTilemap(1, gUnknown_0203CE34, 0x800, 0); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, sSelectMenuTilesetBuffer, 0x440); + CpuCopy16(gUnknown_0861033C, sSelectMonCardBgTilesetBuffer, 0x60); + LoadBgTiles(1, sSelectMenuTilesetBuffer, 0x440, 0); + LoadBgTiles(3, sSelectMonCardBgTilesetBuffer, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSelectMenuTilemapBuffer, 0x800); + LoadBgTilemap(1, sSelectMenuTilemapBuffer, 0x800, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); LoadPalette(gUnknown_0861046C, 0xF0, 8); LoadPalette(gUnknown_0861046C, 0xE0, 10); @@ -1143,7 +1157,7 @@ static void CB2_InitSelectScreen(void) gMain.state++; break; case 3: - SetBgTilemapBuffer(3, gUnknown_0203CE38); + SetBgTilemapBuffer(3, sSelectMonCardBgTilemapBuffer); CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8); CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8); @@ -1405,10 +1419,10 @@ static void Task_FromSelectScreenToSummaryScreen(u8 taskId) DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); sub_819F444(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0); Select_DestroyAllSprites(); - FREE_AND_SET_NULL(gUnknown_0203CE2C); - FREE_AND_SET_NULL(gUnknown_0203CE30); - FREE_AND_SET_NULL(gUnknown_0203CE34); - FREE_AND_SET_NULL(gUnknown_0203CE38); + FREE_AND_SET_NULL(sSelectMenuTilesetBuffer); + FREE_AND_SET_NULL(sSelectMonCardBgTilesetBuffer); + FREE_AND_SET_NULL(sSelectMenuTilemapBuffer); + FREE_AND_SET_NULL(sSelectMonCardBgTilemapBuffer); FreeAllWindowBuffers(); gTasks[taskId].data[0] = 8; } @@ -1442,9 +1456,9 @@ static void Task_CloseSelectionScreen(u8 taskId) Select_CopyMonsToPlayerParty(); DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); Select_DestroyAllSprites(); - FREE_AND_SET_NULL(gUnknown_0203CE2C); - FREE_AND_SET_NULL(gUnknown_0203CE34); - FREE_AND_SET_NULL(gUnknown_0203CE38); + FREE_AND_SET_NULL(sSelectMenuTilesetBuffer); + FREE_AND_SET_NULL(sSelectMenuTilemapBuffer); + FREE_AND_SET_NULL(sSelectMonCardBgTilemapBuffer); FREE_AND_SET_NULL(sFactorySelectScreen); FreeAllWindowBuffers(); SetMainCallback2(CB2_ReturnToFieldContinueScript); @@ -1924,7 +1938,7 @@ static void Select_PrintMonCategory(void) } } -void sub_819BD70(void) +static void Summary_ShowMonSprite(void) { u8 monId = sFactorySelectScreen->cursorPos; struct Pokemon *mon = &sFactorySelectScreen->mons[monId].monData; @@ -1939,7 +1953,7 @@ void sub_819BD70(void) sFactorySelectScreen->unk2A0 = FALSE; } -void sub_819BE20(bool8 arg0) +static void sub_819BE20(bool8 arg0) { sFactorySelectScreen->unk2A0 = arg0; } @@ -2231,7 +2245,7 @@ static void Task_SelectFadeSpeciesName(u8 taskId) // Swap Screen's section begins here. -void Swap_CB2(void) +static void Swap_CB2(void) { AnimateSprites(); BuildOamBuffer(); @@ -2240,14 +2254,14 @@ void Swap_CB2(void) RunTasks(); } -void Swap_VblankCb(void) +static void Swap_VblankCb(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void CopySwappedMonData(void) +static void CopySwappedMonData(void) { u8 happiness; @@ -2260,7 +2274,7 @@ void CopySwappedMonData(void) gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ALT_ABILITY, NULL); } -void Task_FromSwapScreenToSummaryScreen(u8 taskId) +static void Task_FromSwapScreenToSummaryScreen(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2274,10 +2288,10 @@ void Task_FromSwapScreenToSummaryScreen(u8 taskId) DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); Swap_DestroyAllSprites(); - FREE_AND_SET_NULL(gUnknown_0203CE40); - FREE_AND_SET_NULL(gUnknown_0203CE44); - FREE_AND_SET_NULL(gUnknown_0203CE48); - FREE_AND_SET_NULL(gUnknown_0203CE4C); + FREE_AND_SET_NULL(sSwapMenuTilesetBuffer); + FREE_AND_SET_NULL(sSwapMonCardBgTilesetBuffer); + FREE_AND_SET_NULL(sSwapMenuTilemapBuffer); + FREE_AND_SET_NULL(sSwapMonCardBgTilemapBuffer); FreeAllWindowBuffers(); gTasks[taskId].data[0] = 8; } @@ -2291,7 +2305,7 @@ void Task_FromSwapScreenToSummaryScreen(u8 taskId) } } -void Task_CloseSwapScreen(u8 taskId) +static void Task_CloseSwapScreen(u8 taskId) { if (sFactorySwapScreen->unk30 != TRUE) { @@ -2326,10 +2340,10 @@ void Task_CloseSwapScreen(u8 taskId) { DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); Swap_DestroyAllSprites(); - FREE_AND_SET_NULL(gUnknown_0203CE40); - FREE_AND_SET_NULL(gUnknown_0203CE44); - FREE_AND_SET_NULL(gUnknown_0203CE48); - FREE_AND_SET_NULL(gUnknown_0203CE4C); + FREE_AND_SET_NULL(sSwapMenuTilesetBuffer); + FREE_AND_SET_NULL(sSwapMonCardBgTilesetBuffer); + FREE_AND_SET_NULL(sSwapMenuTilemapBuffer); + FREE_AND_SET_NULL(sSwapMonCardBgTilemapBuffer); FREE_AND_SET_NULL(sFactorySwapScreen); FreeAllWindowBuffers(); SetMainCallback2(CB2_ReturnToFieldContinueScript); @@ -2340,7 +2354,7 @@ void Task_CloseSwapScreen(u8 taskId) } } -void Task_HandleSwapScreenYesNo(u8 taskId) +static void Task_HandleSwapScreenYesNo(u8 taskId) { u16 loPtr, hiPtr; @@ -2396,7 +2410,7 @@ void Task_HandleSwapScreenYesNo(u8 taskId) } } -void sub_819CBDC(u8 taskId) +static void sub_819CBDC(u8 taskId) { if (gTasks[taskId].data[1] == 1) { @@ -2413,7 +2427,7 @@ void sub_819CBDC(u8 taskId) } } -void sub_819CC24(u8 taskId) +static void sub_819CC24(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -2426,7 +2440,7 @@ void sub_819CC24(u8 taskId) } } -void sub_819CC74(u8 taskId) +static void sub_819CC74(u8 taskId) { sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); if (gTasks[taskId].data[1] == 1) @@ -2444,7 +2458,7 @@ void sub_819CC74(u8 taskId) } } -void sub_819CCD4(u8 taskId) +static void sub_819CCD4(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -2458,7 +2472,7 @@ void sub_819CCD4(u8 taskId) } } -void Task_HandleSwapScreenMenu(u8 taskId) +static void Task_HandleSwapScreenMenu(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2506,14 +2520,14 @@ void Task_HandleSwapScreenMenu(u8 taskId) } } -void Task_HandleSwapScreenChooseMons(u8 taskId) +static void Task_HandleSwapScreenChooseMons(u8 taskId) { switch (gTasks[taskId].data[0]) { case 0: if (!gPaletteFade.active) { - sFactorySwapScreen->unk22 = 1; + sFactorySwapScreen->unk22 = TRUE; gTasks[taskId].data[0] = 1; } break; @@ -2521,7 +2535,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sFactorySwapScreen->unk22 = 0; + sFactorySwapScreen->unk22 = FALSE; Swap_PrintMonSpecies2(); sub_819EAC0(); Swap_RunActionFunc(taskId); @@ -2529,7 +2543,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sFactorySwapScreen->unk22 = 0; + sFactorySwapScreen->unk22 = FALSE; Swap_PrintMonSpecies2(); sub_819EAC0(); gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 16; @@ -2566,7 +2580,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) } } -void Task_SwapFadeSpeciesName(u8 taskId) +static void Task_SwapFadeSpeciesName(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2621,7 +2635,7 @@ void Task_SwapFadeSpeciesName(u8 taskId) } } -void Task_SwapFadeSpeciesName2(u8 taskId) +static void Task_SwapFadeSpeciesName2(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2652,7 +2666,7 @@ void Task_SwapFadeSpeciesName2(u8 taskId) } } -void sub_819D12C(u8 taskId) +static void sub_819D12C(u8 taskId) { s8 i; u8 var_2C; @@ -2728,7 +2742,7 @@ void sub_819D12C(u8 taskId) } } -void sub_819D324(u8 taskId) +static void sub_819D324(u8 taskId) { u8 i, j; s32 posX = 0; @@ -2840,7 +2854,7 @@ void sub_819D324(u8 taskId) } } -void sub_819D588(u8 taskId) +static void sub_819D588(u8 taskId) { u8 anotherTaskId; u16 loPtr, hiPtr; @@ -2918,7 +2932,7 @@ void sub_819D588(u8 taskId) } } -void sub_819D770(u8 taskId) +static void sub_819D770(u8 taskId) { u8 anotherTaskId; u16 loPtr, hiPtr; @@ -3010,7 +3024,7 @@ void sub_819D770(u8 taskId) case 8: Swap_PrintMonSpecies3(); sub_819EADC(); - sFactorySwapScreen->unk22 = 1; + sFactorySwapScreen->unk22 = TRUE; gTasks[taskId].data[0] = gTasks[taskId].data[5]; loPtr = gTasks[taskId].data[6]; hiPtr = gTasks[taskId].data[7]; @@ -3019,7 +3033,7 @@ void sub_819D770(u8 taskId) } } -void sub_819D9EC(u8 taskId) +static void sub_819D9EC(u8 taskId) { u8 i; if (sFactorySwapScreen->unk30 == TRUE) @@ -3074,7 +3088,7 @@ void sub_819D9EC(u8 taskId) } } -void Swap_InitStruct(void) +static void Swap_InitStruct(void) { if (sFactorySwapScreen == NULL) { @@ -3085,13 +3099,13 @@ void Swap_InitStruct(void) } } -void sub_819DC00(void) +void DoBattleFactorySwapScreen(void) { sFactorySwapScreen = NULL; SetMainCallback2(CB2_InitSwapScreen); } -void CB2_InitSwapScreen(void) +static void CB2_InitSwapScreen(void) { u8 taskId; @@ -3102,16 +3116,16 @@ void CB2_InitSwapScreen(void) SetVBlankCallback(NULL); CpuFill32(0, (void *)VRAM, VRAM_SIZE); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_086108B8, ARRAY_COUNT(gUnknown_086108B8)); - InitWindows(gUnknown_086108C8); + InitBgsFromTemplates(0, sSwap_BgTemplates, ARRAY_COUNT(sSwap_BgTemplates)); + InitWindows(sSwap_WindowTemplates); DeactivateAllTextPrinters(); gMain.state++; break; case 1: - gUnknown_0203CE40 = Alloc(0x440); - gUnknown_0203CE44 = AllocZeroed(0x440); - gUnknown_0203CE48 = Alloc(0x800); - gUnknown_0203CE4C = AllocZeroed(0x800); + sSwapMenuTilesetBuffer = Alloc(0x440); + sSwapMonCardBgTilesetBuffer = AllocZeroed(0x440); + sSwapMenuTilemapBuffer = Alloc(0x800); + sSwapMonCardBgTilemapBuffer = AllocZeroed(0x800); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -3136,12 +3150,12 @@ void CB2_InitSwapScreen(void) ResetTasks(); FreeAllSpritePalettes(); ResetAllPicSprites(); - CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE40, 0x440); - CpuCopy16(gUnknown_0861033C, gUnknown_0203CE44, 0x60); - LoadBgTiles(1, gUnknown_0203CE40, 0x440, 0); - LoadBgTiles(3, gUnknown_0203CE44, 0x60, 0); - CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE48, 0x800); - LoadBgTilemap(1, gUnknown_0203CE48, 0x800, 0); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, sSwapMenuTilesetBuffer, 0x440); + CpuCopy16(gUnknown_0861033C, sSwapMonCardBgTilesetBuffer, 0x60); + LoadBgTiles(1, sSwapMenuTilesetBuffer, 0x440, 0); + LoadBgTiles(3, sSwapMonCardBgTilesetBuffer, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSwapMenuTilemapBuffer, 0x800); + LoadBgTilemap(1, sSwapMenuTilemapBuffer, 0x800, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); LoadPalette(gUnknown_08610918, 0xF0, 10); LoadPalette(gUnknown_08610918, 0xE0, 10); @@ -3149,7 +3163,7 @@ void CB2_InitSwapScreen(void) gMain.state++; break; case 3: - SetBgTilemapBuffer(3, gUnknown_0203CE4C); + SetBgTilemapBuffer(3, sSwapMonCardBgTilemapBuffer); CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); CopyBgTilemapBufferToVram(3); gMain.state++; @@ -3247,13 +3261,7 @@ void CB2_InitSwapScreen(void) } } -extern const struct SpriteTemplate gUnknown_08610834; -extern const struct SpriteTemplate gUnknown_0861084C; -extern const struct SpriteTemplate gUnknown_08610864; -extern const struct SpriteTemplate gUnknown_0861087C; -extern const struct SpriteTemplate gUnknown_08610894; - -void Swap_InitAllSprites(void) +static void Swap_InitAllSprites(void) { u8 i; u8 x; @@ -3344,7 +3352,7 @@ void Swap_InitAllSprites(void) gSprites[sFactorySwapScreen->unk8[0][2]].invisible = 0; } -void Swap_DestroyAllSprites(void) +static void Swap_DestroyAllSprites(void) { u8 i, j; @@ -3365,7 +3373,7 @@ void Swap_DestroyAllSprites(void) } } -void Swap_HandleActionCursorChange(u8 cursorId) +static void Swap_HandleActionCursorChange(u8 cursorId) { if (cursorId < 3) { @@ -3380,7 +3388,7 @@ void Swap_HandleActionCursorChange(u8 cursorId) } } -void Swap_UpdateBallCursorPosition(s8 direction) +static void Swap_UpdateBallCursorPosition(s8 direction) { u8 cursorPos; PlaySE(SE_SELECT); @@ -3403,7 +3411,7 @@ void Swap_UpdateBallCursorPosition(s8 direction) Swap_HandleActionCursorChange(cursorPos); } -void Swap_UpdateActionCursorPosition(s8 direction) +static void Swap_UpdateActionCursorPosition(s8 direction) { u8 cursorPos; PlaySE(SE_SELECT); @@ -3430,7 +3438,7 @@ void Swap_UpdateActionCursorPosition(s8 direction) Swap_HandleActionCursorChange(cursorPos); } -void Swap_UpdateYesNoCursorPosition(s8 direction) +static void Swap_UpdateYesNoCursorPosition(s8 direction) { if (direction > 0) // Move cursor down. { @@ -3451,7 +3459,7 @@ void Swap_UpdateYesNoCursorPosition(s8 direction) gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; } -void Swap_UpdateMenuCursorPosition(s8 direction) +static void Swap_UpdateMenuCursorPosition(s8 direction) { PlaySE(SE_SELECT); if (direction > 0) // Move cursor down. @@ -3473,7 +3481,7 @@ void Swap_UpdateMenuCursorPosition(s8 direction) gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; } -void sub_819E838(u8 arg0) +static void sub_819E838(u8 arg0) { u8 i; @@ -3494,7 +3502,7 @@ void sub_819E838(u8 arg0) } } -void sub_819E8EC(void) +static void sub_819E8EC(void) { u8 i; @@ -3506,7 +3514,7 @@ void sub_819E8EC(void) } } -void Swap_ShowMenuOptions(void) +static void Swap_ShowMenuOptions(void) { if (sFactorySwapScreen->fromSummaryScreen == TRUE) sFactorySwapScreen->fromSummaryScreen = FALSE; @@ -3524,7 +3532,7 @@ void Swap_ShowMenuOptions(void) Swap_PrintMenuOptions(); } -void Swap_ShowYesNoOptions(void) +static void Swap_ShowYesNoOptions(void) { sFactorySwapScreen->yesNoCursorPos = 0; @@ -3539,7 +3547,7 @@ void Swap_ShowYesNoOptions(void) Swap_PrintYesNoOptions(); } -void sub_819EA64(u8 windowId) +static void sub_819EA64(u8 windowId) { gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; @@ -3548,21 +3556,21 @@ void sub_819EA64(u8 windowId) ClearWindowTilemap(windowId); } -void sub_819EAC0(void) +static void sub_819EAC0(void) { PutWindowTilemap(1); FillWindowPixelBuffer(1, 0); CopyWindowToVram(1, 2); } -void sub_819EADC(void) +static void sub_819EADC(void) { PutWindowTilemap(7); FillWindowPixelBuffer(7, 0); CopyWindowToVram(7, 2); } -void sub_819EAF8(void) +static void sub_819EAF8(void) { sub_819EAC0(); PutWindowTilemap(5); @@ -3570,14 +3578,14 @@ void sub_819EAF8(void) CopyWindowToVram(5, 2); } -void Swap_PrintPkmnSwap(void) +static void Swap_PrintPkmnSwap(void) { FillWindowPixelBuffer(0, 0x11); AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } -void Swap_PrintMonSpecies(void) +static void Swap_PrintMonSpecies(void) { u16 species; u8 x; @@ -3601,14 +3609,14 @@ void Swap_PrintMonSpecies(void) } } -void Swap_PrintOnInfoWindow(const u8 *str) +static void Swap_PrintOnInfoWindow(const u8 *str) { FillWindowPixelBuffer(2, 0); AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } -void Swap_PrintMenuOptions(void) +static void Swap_PrintMenuOptions(void) { PutWindowTilemap(3); FillWindowPixelBuffer(3, 0); @@ -3618,7 +3626,7 @@ void Swap_PrintMenuOptions(void) CopyWindowToVram(3, 3); } -void Swap_PrintYesNoOptions(void) +static void Swap_PrintYesNoOptions(void) { PutWindowTilemap(4); FillWindowPixelBuffer(4, 0); @@ -3627,13 +3635,13 @@ void Swap_PrintYesNoOptions(void) CopyWindowToVram(4, 3); } -void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) +static void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) { s32 x = GetStringRightAlignXOffset(0, str, 0x46); AddTextPrinterParameterized3(windowId, 0, x, y, gUnknown_08610922, 0, str); } -void Swap_PrintActionStrings(void) +static void Swap_PrintActionStrings(void) { FillWindowPixelBuffer(5, 0); switch (sFactorySwapScreen->inEnemyScreen) @@ -3647,7 +3655,7 @@ void Swap_PrintActionStrings(void) CopyWindowToVram(5, 3); } -void Swap_PrintActionStrings2(void) +static void Swap_PrintActionStrings2(void) { FillWindowPixelBuffer(3, 0); switch (sFactorySwapScreen->inEnemyScreen) @@ -3661,7 +3669,7 @@ void Swap_PrintActionStrings2(void) CopyWindowToVram(3, 3); } -void Swap_PrintOneActionString(u8 which) +static void Swap_PrintOneActionString(u8 which) { switch (which) { @@ -3676,7 +3684,7 @@ void Swap_PrintOneActionString(u8 which) CopyWindowToVram(3, 3); } -void Swap_PrintMonSpecies2(void) +static void Swap_PrintMonSpecies2(void) { u16 species; u8 x; @@ -3709,7 +3717,7 @@ void Swap_PrintMonSpecies2(void) } } -void Swap_PrintMonSpecies3(void) +static void Swap_PrintMonSpecies3(void) { u16 species; u8 x; @@ -3735,7 +3743,7 @@ void Swap_PrintMonSpecies3(void) } } -void Swap_PrintMonCategory(void) +static void Swap_PrintMonCategory(void) { u16 species; u8 text[30]; @@ -3761,10 +3769,7 @@ void Swap_PrintMonCategory(void) } } -extern const struct SwapActionIdAndFunc gUnknown_08610928[4]; -extern const struct SwapActionIdAndFunc gUnknown_08610948[5]; - -void Swap_InitActions(u8 id) +static void Swap_InitActions(u8 id) { if (sFactorySwapScreen->fromSummaryScreen != TRUE) { @@ -3773,26 +3778,26 @@ void Swap_InitActions(u8 id) case ACTIONS_PLAYER_SCREEN: sFactorySwapScreen->inEnemyScreen = FALSE; sFactorySwapScreen->cursorPos = 0; - sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610928); - sFactorySwapScreen->actionsData = gUnknown_08610928; + sFactorySwapScreen->actionsCount = ARRAY_COUNT(sSwap_PlayerScreenActions); + sFactorySwapScreen->actionsData = sSwap_PlayerScreenActions; break; case ACTIONS_ENEMY_SCREEN: sFactorySwapScreen->inEnemyScreen = TRUE; sFactorySwapScreen->cursorPos = 0; - sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610948); - sFactorySwapScreen->actionsData = gUnknown_08610948; + sFactorySwapScreen->actionsCount = ARRAY_COUNT(sSwap_EnemyScreenActions); + sFactorySwapScreen->actionsData = sSwap_EnemyScreenActions; break; } } } -void Swap_RunMenuOptionFunc(u8 taskId) +static void Swap_RunMenuOptionFunc(u8 taskId) { - gUnknown_03001280 = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos]; - gUnknown_03001280(taskId); + sSwap_CurrentTableFunc = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos]; + sSwap_CurrentTableFunc(taskId); } -void sub_819F0CC(u8 taskId) +static void sub_819F0CC(u8 taskId) { sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); sFactorySwapScreen->playerMonId = sFactorySwapScreen->cursorPos; @@ -3801,13 +3806,13 @@ void sub_819F0CC(u8 taskId) gTasks[taskId].func = sub_819D9EC; } -void sub_819F114(u8 taskId) +static void sub_819F114(u8 taskId) { gTasks[taskId].data[0] = 6; gTasks[taskId].func = Task_FromSwapScreenToSummaryScreen; } -void sub_819F134(u8 taskId) +static void sub_819F134(u8 taskId) { sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); sub_819EA64(3); @@ -3818,13 +3823,13 @@ void sub_819F134(u8 taskId) gTasks[taskId].func = sub_819D770; } -void Swap_RunActionFunc(u8 taskId) +static void Swap_RunActionFunc(u8 taskId) { - gUnknown_03001280 = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func; - gUnknown_03001280(taskId); + sSwap_CurrentTableFunc = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func; + sSwap_CurrentTableFunc(taskId); } -void sub_819F1AC(u8 taskId) +static void Swap_ActionCancel(u8 taskId) { gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 0x10; gTasks[taskId].data[7] = (u32)(sub_819CC24); @@ -3833,7 +3838,7 @@ void sub_819F1AC(u8 taskId) gTasks[taskId].func = sub_819D588; } -void sub_819F1DC(u8 taskId) +static void Swap_ActionPkmnForSwap(u8 taskId) { gTasks[taskId].data[6] = (u32)(sub_819D9EC) >> 0x10; gTasks[taskId].data[7] = (u32)(sub_819D9EC); @@ -3842,7 +3847,7 @@ void sub_819F1DC(u8 taskId) gTasks[taskId].func = sub_819D588; } -void sub_819F20C(u8 taskId) +static void Swap_ActionMon(u8 taskId) { if (!sFactorySwapScreen->inEnemyScreen) { @@ -3868,7 +3873,7 @@ void sub_819F20C(u8 taskId) gTasks[taskId].func = sub_819D588; } -void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen) +static void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen) { *arg0 = CreateSprite(&gUnknown_08610894, 120, 64, 1); gSprites[*arg0].callback = sub_819F600; @@ -3876,7 +3881,7 @@ void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen) *arg1 = TRUE; } -void Swap_ShowSummaryMonSprite(void) +static void Swap_ShowSummaryMonSprite(void) { struct Pokemon *mon; u16 species; @@ -3897,7 +3902,7 @@ void Swap_ShowSummaryMonSprite(void) gSprites[sFactorySwapScreen->unk2C.field1].invisible = 1; } -void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) +static void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) { u8 taskId; @@ -3909,7 +3914,7 @@ void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) *arg1 = TRUE; } -void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) +static void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) { FreeAndDestroyMonPicSprite(arg0.field0); FreeOamMatrix(gSprites[arg0.field1].oam.matrixNum); @@ -3917,7 +3922,7 @@ void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) *arg1 = FALSE; } -void Task_SwapCantHaveSameMons(u8 taskId) +static void Task_SwapCantHaveSameMons(u8 taskId) { if (sFactorySwapScreen->unk30 == TRUE) return; @@ -3952,14 +3957,14 @@ void Task_SwapCantHaveSameMons(u8 taskId) case 4: Swap_PrintMonSpecies3(); sub_819EADC(); - sFactorySwapScreen->unk22 = 1; + sFactorySwapScreen->unk22 = TRUE; gTasks[taskId].data[0] = gTasks[taskId].data[5]; gTasks[taskId].func = Task_HandleSwapScreenChooseMons; break; } } -bool8 Swap_AlreadyHasSameSpecies(u8 monId) +static bool8 Swap_AlreadyHasSameSpecies(u8 monId) { u8 i; u16 species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); @@ -3972,7 +3977,7 @@ bool8 Swap_AlreadyHasSameSpecies(u8 monId) return FALSE; } -void sub_819F600(struct Sprite *sprite) +static void sub_819F600(struct Sprite *sprite) { u8 taskId; @@ -3985,3 +3990,124 @@ void sub_819F600(struct Sprite *sprite) sprite->callback = SpriteCallbackDummy; } } + +static void sub_819F654(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + { + FreeOamMatrix(sprite->oam.matrixNum); + if (sprite->data[7] == TRUE) + sFactorySwapScreen->unk30 = FALSE; + else + sub_819BE20(FALSE); + DestroySprite(sprite); + } +} + +static void sub_819F69C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + task->data[3] = 88; + task->data[24] = 152; // BUG: writing outside the array's bounds. + task->data[5] = 64; + task->data[8] = 65; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + break; + case 1: + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + break; + case 2: + task->data[5] -= 4; + task->data[8] += 4; + if (task->data[5] <= 32 || task->data[8] >= 96) + { + task->data[5] = 32; + task->data[8] = 96; + } + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + if (task->data[5] != 32) + return; + break; + default: + DestroyTask(taskId); + // UB: Should not use the task after it has been deleted. + if (gTasks[taskId].data[7] == TRUE) + Swap_ShowMonSprite(); + else + Summary_ShowMonSprite(); + return; + } + task->data[0]++; +} + +static void sub_819F7B4(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[0]) + { + default: + HideBg(3); + gSprites[task->data[6]].data[7] = task->data[7]; + gSprites[task->data[6]].invisible = 0; + gSprites[task->data[6]].callback = sub_819F654; + StartSpriteAffineAnim(&gSprites[task->data[6]], 1); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + DestroyTask(taskId); + break; + case 0: + task->data[3] = 88; + task->data[24] = 152; // BUG: writing outside the array's bounds. + task->data[5] = 32; + task->data[8] = 96; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + task->data[0]++; + break; + case 1: + task->data[5] += 4; + task->data[8] -= 4; + if (task->data[5] >= 64 || task->data[8] <= 65) + { + task->data[5] = 64; + task->data[8] = 65; + } + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + if (task->data[5] == 64) + task->data[0]++; + break; + } +} + +static void Swap_ShowMonSprite(void) +{ + struct Pokemon *mon; + u16 species; + u32 personality, otId; + + if (!sFactorySwapScreen->inEnemyScreen) + mon = &gPlayerParty[sFactorySwapScreen->cursorPos]; + else + mon = &gEnemyParty[sFactorySwapScreen->cursorPos]; + + species = GetMonData(mon, MON_DATA_SPECIES, NULL); + personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0; + + sFactorySwapScreen->unk30 = FALSE; +} diff --git a/src/battle_tent.c b/src/battle_tent.c index 516f3fc4d7..e30cac386c 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -1,13 +1,15 @@ #include "global.h" +#include "battle_tent.h" #include "overworld.h" #include "event_data.h" #include "region_map.h" #include "battle.h" #include "battle_setup.h" #include "battle_tower.h" -#include "battle_frontier_2.h" #include "random.h" #include "item.h" +#include "battle_factory.h" +#include "battle_frontier_2.h" #include "constants/items.h" #include "constants/region_map_sections.h" @@ -15,35 +17,40 @@ extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[]; extern const struct FacilityMon gSlateportBattleTentMons[]; extern const u16 gBattleFrontierHeldItems[]; +extern u16 gUnknown_03006298[]; + // This file's functions. -void sub_81B99D4(void); -void sub_81B9A28(void); -void sub_81B9A44(void); -void sub_81B9A60(void); -void sub_81B9A90(void); -void sub_81B9ABC(void); -void sub_81B9B00(void); -void sub_81B9B28(void); -void sub_81B9BA0(void); -void sub_81B9BF4(void); -void sub_81B9C10(void); -void sub_81B9C2C(void); -void sub_81B9C70(void); -void sub_81B9C98(void); -void sub_81B9CF0(void); -void sub_81B9D28(void); -void sub_81B9D7C(void); -void sub_81B9D98(void); -void sub_81B9DB4(void); -void sub_81B9DF8(void); -void sub_81B9E20(void); -void sub_81B9E78(void); -void sub_81B9E88(void); -void sub_81BA040(void); -void sub_81B9EC0(void); +static void sub_81B99D4(void); +static void sub_81B9A28(void); +static void sub_81B9A44(void); +static void sub_81B9A60(void); +static void sub_81B9A90(void); +static void sub_81B9ABC(void); +static void sub_81B9B00(void); +static void sub_81B9B28(void); +static void sub_81B9BA0(void); +static void sub_81B9BF4(void); +static void sub_81B9C10(void); +static void sub_81B9C2C(void); +static void sub_81B9C70(void); +static void sub_81B9C98(void); +static void sub_81B9CF0(void); +static void sub_81B9D28(void); +static void sub_81B9D7C(void); +static void sub_81B9D98(void); +static void sub_81B9DB4(void); +static void sub_81B9DF8(void); +static void sub_81B9E20(void); +static void sub_81B9E78(void); +static void sub_81B9E88(void); +static void sub_81BA040(void); +static void sub_81B9EC0(void); + +// IWRAM bss +static IWRAM_DATA u16 sRandMonSetId; // const rom data -void (*const gUnknown_086160B4[])(void) = +void static (*const gUnknown_086160B4[])(void) = { sub_81B99D4, sub_81B9A28, @@ -57,7 +64,7 @@ void (*const gUnknown_086160B4[])(void) = static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL}; -void (*const gUnknown_086160D8[])(void) = +void static (*const gUnknown_086160D8[])(void) = { sub_81B9BA0, sub_81B9BF4, @@ -70,7 +77,7 @@ void (*const gUnknown_086160D8[])(void) = static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION}; -void (*const gUnknown_086160F8[])(void) = +void static (*const gUnknown_086160F8[])(void) = { sub_81B9D28, sub_81B9D7C, @@ -92,7 +99,7 @@ void sub_81B99B4(void) gUnknown_086160B4[gSpecialVar_0x8004](); } -void sub_81B99D4(void) +static void sub_81B99D4(void) { gSaveBlock2Ptr->frontier.field_CA8 = 0; gSaveBlock2Ptr->frontier.field_CB2 = 0; @@ -100,29 +107,29 @@ void sub_81B99D4(void) saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -void sub_81B9A28(void) +static void sub_81B9A28(void) { gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6A; } -void sub_81B9A44(void) +static void sub_81B9A44(void) { gSaveBlock2Ptr->frontier.field_E6A = gSpecialVar_0x8006; } -void sub_81B9A60(void) +static void sub_81B9A60(void) { gTrainerBattleOpponent_A = (u32)((Random() % 255) * 5) / 64; sub_8162614(gTrainerBattleOpponent_A, 0); } -void sub_81B9A90(void) +static void sub_81B9A90(void) { if (gTrainerBattleOpponent_A < 300) ConvertBattleFrontierTrainerSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore); } -void sub_81B9ABC(void) +static void sub_81B9ABC(void) { gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -130,12 +137,12 @@ void sub_81B9ABC(void) sub_81A4C30(); } -void sub_81B9B00(void) +static void sub_81B9B00(void) { gSaveBlock2Ptr->frontier.field_E6A = sVerdanturfTentRewards[Random() % ARRAY_COUNT(sVerdanturfTentRewards)]; } -void sub_81B9B28(void) +static void sub_81B9B28(void) { if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6A, 1) == TRUE) { @@ -154,7 +161,7 @@ void sub_81B9B80(void) gUnknown_086160D8[gSpecialVar_0x8004](); } -void sub_81B9BA0(void) +static void sub_81B9BA0(void) { gSaveBlock2Ptr->frontier.field_CA8 = 0; gSaveBlock2Ptr->frontier.field_CB2 = 0; @@ -162,17 +169,17 @@ void sub_81B9BA0(void) saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -void sub_81B9BF4(void) +static void sub_81B9BF4(void) { gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6C; } -void sub_81B9C10(void) +static void sub_81B9C10(void) { gSaveBlock2Ptr->frontier.field_E6C = gSpecialVar_0x8006; } -void sub_81B9C2C(void) +static void sub_81B9C2C(void) { gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -180,12 +187,12 @@ void sub_81B9C2C(void) sub_81A4C30(); } -void sub_81B9C70(void) +static void sub_81B9C70(void) { gSaveBlock2Ptr->frontier.field_E6C = sFallarborTentRewards[Random() % ARRAY_COUNT(sFallarborTentRewards)]; } -void sub_81B9C98(void) +static void sub_81B9C98(void) { if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6C, 1) == TRUE) { @@ -199,7 +206,7 @@ void sub_81B9C98(void) } } -void sub_81B9CF0(void) +static void sub_81B9CF0(void) { GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A); } @@ -209,7 +216,7 @@ void sub_81B9D08(void) gUnknown_086160F8[gSpecialVar_0x8004](); } -void sub_81B9D28(void) +static void sub_81B9D28(void) { gSaveBlock2Ptr->frontier.field_CA8 = 0; gSaveBlock2Ptr->frontier.field_CB2 = 0; @@ -217,17 +224,17 @@ void sub_81B9D28(void) saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -void sub_81B9D7C(void) +static void sub_81B9D7C(void) { gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6E; } -void sub_81B9D98(void) +static void sub_81B9D98(void) { gSaveBlock2Ptr->frontier.field_E6E = gSpecialVar_0x8006; } -void sub_81B9DB4(void) +static void sub_81B9DB4(void) { gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -235,12 +242,12 @@ void sub_81B9DB4(void) sub_81A4C30(); } -void sub_81B9DF8(void) +static void sub_81B9DF8(void) { gSaveBlock2Ptr->frontier.field_E6E = sSlateportTentRewards[Random() % ARRAY_COUNT(sSlateportTentRewards)]; } -void sub_81B9E20(void) +static void sub_81B9E20(void) { if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6E, 1) == TRUE) { @@ -254,15 +261,15 @@ void sub_81B9E20(void) } } -void sub_81B9E78(void) +static void sub_81B9E78(void) { ZeroPlayerPartyMons(); - sub_819A4F8(); + DoBattleFactorySelectScreen(); } -void sub_81B9E88(void) +static void sub_81B9E88(void) { - sub_819DC00(); + DoBattleFactorySwapScreen(); } bool8 sub_81B9E94(void) @@ -273,7 +280,7 @@ bool8 sub_81B9E94(void) // This function was written very...oddly. #ifdef NONMATCHING -void sub_81B9EC0(void) +static void sub_81B9EC0(void) { s32 i, j; u16 currMonId = 0, currSpecies = 0; @@ -335,7 +342,7 @@ void sub_81B9EC0(void) } #else NAKED -void sub_81B9EC0(void) +static void sub_81B9EC0(void) { asm_unified("\n\ push {r4-r7,lr}\n\ @@ -526,3 +533,74 @@ _081BA024:\n\ "); } #endif // NONMATCHING + +static void sub_81BA040(void) +{ + u16 trainerId; + s32 i, j, k; + register const u16 *monSetsPool asm("r9"); // Fix me. Compiler insists on moving that variable into stack. + u16 species[3]; + u16 heldItems[3]; + s32 monPoolCount = 0; + + gFacilityTrainers = gSlateportBattleTentTrainers; + gFacilityTrainerMons = gSlateportBattleTentMons; + + while (1) + { + do + { + trainerId = Random() % 30; + for (i = 0; i < gSaveBlock2Ptr->frontier.field_CB2; i++) + { + if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + break; + } + } while (i != gSaveBlock2Ptr->frontier.field_CB2); + + gTrainerBattleOpponent_A = trainerId; + while (gFacilityTrainers[gTrainerBattleOpponent_A].btMonPool[monPoolCount] != 0xFFFF) + monPoolCount++; + if (monPoolCount > 8) + break; + monPoolCount = 0; + } + + if (gSaveBlock2Ptr->frontier.field_CB2 < 2) + gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.field_CB2] = gTrainerBattleOpponent_A; + + monSetsPool = gFacilityTrainers[gTrainerBattleOpponent_A].btMonPool; + i = 0; + while (i != 3) + { + sRandMonSetId = monSetsPool[Random() % monPoolCount]; + for (j = 0; j < 6; j++) + { + if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_E70[j].monId].species) + break; + } + if (j != 6) + continue; + + for (k = 0; k < i; k++) + { + if (species[k] == gFacilityTrainerMons[sRandMonSetId].species) + break; + } + if (k != i) + continue; + + for (k = 0; k < i; k++) + { + if (heldItems[k] != 0 && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[sRandMonSetId].itemTableId]) + break; + } + if (k != i) + continue; + + species[i] = gFacilityTrainerMons[sRandMonSetId].species; + heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[sRandMonSetId].itemTableId]; + gUnknown_03006298[i] = sRandMonSetId; + i++; + } +} diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index b739ba66d3..522d11d4f3 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -28,6 +28,7 @@ #include "overworld.h" #include "menu.h" #include "trainer_pokemon_sprites.h" +#include "data2.h" struct HallofFameMon { @@ -57,10 +58,6 @@ static EWRAM_DATA struct HofGfx *sHofGfxPtr = NULL; extern bool8 gHasHallOfFameRecords; extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern MainCallback gGameContinueCallback; -extern u32 gDamagedSaveSectors; -extern u8 gReservedSpritePaletteCount; -extern const u8 gSpeciesNames[][11]; #define HALL_OF_FAME_MAX_TEAMS 50 @@ -84,10 +81,6 @@ extern const u8 gContestConfetti_Gfx[]; extern const u8 gContestConfetti_Pal[]; extern void sub_8175620(void); -extern u8 TrySavingData(u8); -extern void sub_8197434(u8, u8); -extern u16 sub_818D97C(u8 playerGender, u8); -extern void sub_8198204(u8 *dst, const u8 *src, u8, u8, u8); extern bool8 sub_80F9C30(void); extern void sub_8198314(void); extern void ReturnFromHallOfFamePC(void); @@ -182,20 +175,18 @@ static const u8 sUnknown_085E5388[] = {0, 1, 2, 0}; static const u8 sUnknown_085E538C[] = {0, 2, 3, 0, 4, 5, 0, 0}; -static const struct CompressedSpriteSheet sHallOfFame_ConfettiSpriteSheet = +static const struct CompressedSpriteSheet sHallOfFame_ConfettiSpriteSheet[] = { - gContestConfetti_Gfx, 0x220, 1001 + {gContestConfetti_Gfx, 0x220, 1001}, + {}, }; -static const u8 sUnused0[8] = {}; - -static const struct CompressedSpritePalette sHallOfFame_ConfettiSpritePalette = +static const struct CompressedSpritePalette sHallOfFame_ConfettiSpritePalette[] = { - gContestConfetti_Pal, 1001 + {gContestConfetti_Pal, 1001}, + {}, }; -static const u8 sUnused1[8] = {}; - static const s16 sHallOfFame_MonFullTeamPositions[6][4] = { {120, 210, 120, 40}, @@ -610,7 +601,7 @@ static void Task_Hof_DisplayMon(u8 taskId) gSprites[spriteId].tSpecies = currMon->species; gSprites[spriteId].callback = SpriteCB_GetOnScreenAndAnimate; gTasks[taskId].tMonSpriteId(currMonId) = spriteId; - sub_8197434(0, 1); + sub_8197434(0, TRUE); gTasks[taskId].func = Task_Hof_PrintMonInfoAfterAnimating; } @@ -964,9 +955,9 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_HOFNumber); if (gTasks[taskId].tCurrTeamNo <= 0) - sub_8198204(gStringVar4, gText_PickCancel, 0, 0, 1); + sub_8198204(gStringVar4, gText_PickCancel, 0, 0, TRUE); else - sub_8198204(gStringVar4, gText_PickNextCancel, 0, 0, 1); + sub_8198204(gStringVar4, gText_PickNextCancel, 0, 0, TRUE); gTasks[taskId].func = Task_HofPC_PrintMonInfo; } @@ -1300,8 +1291,8 @@ static void sub_8174F70(void) ResetAllPicSprites(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet); - LoadCompressedObjectPalette(&sHallOfFame_ConfettiSpritePalette); + LoadCompressedObjectPic(sHallOfFame_ConfettiSpriteSheet); + LoadCompressedObjectPalette(sHallOfFame_ConfettiSpritePalette); } static void sub_8174FAC(void) @@ -1517,8 +1508,8 @@ static void sub_8175364(u8 taskId) gSpecialVar_0x8004 = var; gSpecialVar_0x8005 = 0xFFFF; } - LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet); - LoadCompressedObjectPalette(&sHallOfFame_ConfettiSpritePalette); + LoadCompressedObjectPic(sHallOfFame_ConfettiSpriteSheet); + LoadCompressedObjectPalette(sHallOfFame_ConfettiSpritePalette); data[0]++; break; case 1: diff --git a/src/save.c b/src/save.c index 81731692ef..68427c4c37 100644 --- a/src/save.c +++ b/src/save.c @@ -9,8 +9,6 @@ // for the chunk declarations -extern struct SaveSectionLocation gRamSaveSectionLocations[0xE]; -extern u16 gUnknown_03006294; extern bool8 gSoftResetDisabled; extern u32 gUnknown_0203CF5C; @@ -83,6 +81,9 @@ u16 gUnknown_03006208; u16 gSaveUnusedVar; u16 gSaveFileStatus; void (*gGameContinueCallback)(void); +struct SaveSectionLocation gRamSaveSectionLocations[0xE]; +u16 gSaveUnusedVar2; +u16 gUnknown_03006294; EWRAM_DATA struct SaveSection gSaveDataBuffer = {0}; diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 4c1da86206..2587bf10ae 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -4,6 +4,7 @@ #include "palette.h" #include "gpu_regs.h" #include "bg.h" +#include "decompress.h" #include "task.h" #include "window.h" #include "menu.h" @@ -14,16 +15,11 @@ #define MSG_WIN_TOP 12 #define CLOCK_WIN_TOP (MSG_WIN_TOP - 4) -extern void (*gGameContinueCallback)(void); - -extern u32 gDamagedSaveSectors; - extern const u8 gBirchHelpGfx[]; extern const u8 gBirchBagTilemap[]; extern const u8 gBirchGrassTilemap[]; extern const u16 gBirchBagGrassPal[]; extern const u16 gUnknown_0860F074[]; -extern struct SaveSection gSaveDataBuffer; extern u8 gText_SaveFailedCheckingBackup[]; extern u8 gText_BackupMemoryDamaged[]; @@ -32,8 +28,6 @@ extern u8 gText_SaveCompleteGameCannotContinue[]; extern u8 gText_SaveCompletePressA[]; extern u8 gText_GamePlayCannotBeContinued[]; -extern u8 gDecompressionBuffer[]; - // gSaveFailedClockInfo enum enum { diff --git a/sym_bss.txt b/sym_bss.txt index 5f055e8e4b..08b1a58bd1 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -98,9 +98,7 @@ gUnknown_03001290: @ 3001290 gUnknown_03001294: @ 3001294 .space 0x4 -gUnknown_03001298: @ 3001298 - .space 0x4 - + .include "src/battle_tent.o" .include "src/multiboot.o" .space 0x4 @ XXX: why is this needed? diff --git a/sym_common.txt b/sym_common.txt index 96796d9419..282ef7f722 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -99,14 +99,6 @@ gUnknown_030061EC: @ 30061EC .include "save.o" - .space 0x8 - -gRamSaveSectionLocations: @ 3006220 - .space 0x74 - -gUnknown_03006294: @ 3006294 - .space 0x4 - gUnknown_03006298: @ 3006298 .space 0x8 From 74cc2cf512657f478667f6b57ab595ab546962a1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 10 Sep 2018 10:18:30 +0200 Subject: [PATCH 12/28] battle factory review changes --- src/battle_factory.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/battle_factory.c b/src/battle_factory.c index 07c5c9e10d..a83a14e640 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -24,6 +24,7 @@ #include "trainer_pokemon_sprites.h" #include "constants/battle_frontier.h" #include "constants/songs.h" +#include "constants/rgb.h" // Select_ refers to the first Pokemon selection screen where you choose 3 Pokemon. // Swap_ refers to the consecutive selection screen where you can keep your Pokemon or swap one with beaten trainer's. @@ -989,7 +990,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = DUMMY_WIN_TEMPLATE, }; -static const u16 gUnknown_08610918[] = {0x0, 0x0, 0x7FFF, 0x0, 0x1F}; // Palette. +static const u16 gUnknown_08610918[] = {RGB_BLACK, RGB_BLACK, RGB_WHITE, RGB_BLACK, RGB_RED}; // Palette. static const u8 gUnknown_08610922[] = {0x0, 0x02, 0x0}; static const u8 gUnknown_08610925[] = {0x0, 0x04, 0x0}; @@ -2670,7 +2671,7 @@ static void sub_819D12C(u8 taskId) { s8 i; u8 var_2C; - bool8 r7; + bool8 destroyTask; switch (gTasks[taskId].data[0]) { @@ -2708,20 +2709,20 @@ static void sub_819D12C(u8 taskId) if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x > (i * 48) + 72) { gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = (i * 48) + 72; - r7 = TRUE; + destroyTask = TRUE; } else if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x == (i * 48) + 72) { - r7 = TRUE; + destroyTask = TRUE; } else { - r7 = FALSE; + destroyTask = FALSE; } } else { - r7 = FALSE; + destroyTask = FALSE; } if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x - 16 > 240) @@ -2736,7 +2737,7 @@ static void sub_819D12C(u8 taskId) gTasks[taskId].data[i + 1] = 1; } } - if (r7 == TRUE) + if (destroyTask == TRUE) DestroyTask(taskId); break; } @@ -2862,7 +2863,7 @@ static void sub_819D588(u8 taskId) switch (gTasks[taskId].data[0]) { case 0: - LoadPalette(gUnknown_08610918, 0xE0, 0xA); + LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); Swap_PrintActionStrings(); PutWindowTilemap(5); gTasks[taskId].data[0]++; @@ -3157,8 +3158,8 @@ static void CB2_InitSwapScreen(void) CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSwapMenuTilemapBuffer, 0x800); LoadBgTilemap(1, sSwapMenuTilemapBuffer, 0x800, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); - LoadPalette(gUnknown_08610918, 0xF0, 10); - LoadPalette(gUnknown_08610918, 0xE0, 10); + LoadPalette(gUnknown_08610918, 0xF0, sizeof(gUnknown_08610918)); + LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); LoadPalette(gUnknown_0861039C, 0x20, 4); gMain.state++; break; @@ -3722,7 +3723,7 @@ static void Swap_PrintMonSpecies3(void) u16 species; u8 x; - LoadPalette(gUnknown_08610918, 0xE0, 0xA); + LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); CpuCopy16(gPlttBufferUnfaded + 240, gPlttBufferFaded + 224, 10); if (sFactorySwapScreen->cursorPos > 2) From d9941cd1a8614cef012696e6549a2fda336fa8c8 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Mon, 10 Sep 2018 10:25:58 -0500 Subject: [PATCH 13/28] Standardize sprite visibility to boolean --- src/battle_anim.c | 18 ++--- src/battle_bg.c | 8 +- src/battle_controller_link_opponent.c | 2 +- src/battle_controller_link_partner.c | 2 +- src/battle_controller_opponent.c | 2 +- src/battle_controller_player.c | 2 +- src/battle_controller_player_partner.c | 2 +- src/battle_controller_recorded_opponent.c | 2 +- src/battle_controller_recorded_player.c | 2 +- src/battle_controller_wally.c | 2 +- src/battle_dome.c | 56 +++++++------- src/battle_factory.c | 94 +++++++++++------------ src/battle_gfx_sfx_util.c | 2 +- src/battle_interface.c | 18 ++--- src/berry_tag_screen.c | 20 ++--- src/credits.c | 20 ++--- src/egg_hatch.c | 6 +- src/event_object_movement.c | 8 +- src/evolution_graphics.c | 16 ++-- src/evolution_scene.c | 8 +- src/field_effect.c | 30 ++++---- src/item_menu.c | 2 +- src/main_menu.c | 22 +++--- src/menu_helpers.c | 2 +- src/pokemon_animation.c | 8 +- src/rom_8034C54.c | 2 +- src/sprite.c | 2 +- 27 files changed, 179 insertions(+), 179 deletions(-) diff --git a/src/battle_anim.c b/src/battle_anim.c index b6f726897c..2d514c9552 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -558,7 +558,7 @@ static void sub_80A40F4(u8 taskId) s16 *selfData = gTasks[taskId].data; u8 battlerSpriteId = gBattlerSpriteIds[selfData[t1_MONBG_BATTLER]]; - gSprites[battlerSpriteId].invisible = 1; + gSprites[battlerSpriteId].invisible = TRUE; if (!selfData[t1_CREATE_ANOTHER_TASK]) { @@ -699,7 +699,7 @@ void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) gBattle_BG1_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20; if (setSpriteInvisible) - gSprites[gBattlerSpriteIds[battlerId]].invisible = 1; + gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); @@ -734,7 +734,7 @@ void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) gBattle_BG2_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20; if (setSpriteInvisible) - gSprites[gBattlerSpriteIds[battlerId]].invisible = 1; + gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); @@ -866,9 +866,9 @@ static void ScriptCmd_clearmonbg(void) battlerId = gBattleAnimTarget; if (sMonAnimTaskIdArray[0] != 0xFF) - gSprites[gBattlerSpriteIds[battlerId]].invisible = 0; + gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != 0xFF) - gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = 0; + gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; else animBattlerId = 0; @@ -973,9 +973,9 @@ static void ScriptCmd_clearmonbg_23(void) battlerId = gBattleAnimTarget; if (IsBattlerSpriteVisible(battlerId)) - gSprites[gBattlerSpriteIds[battlerId]].invisible = 0; + gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; if (animBattlerId > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK)) - gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = 0; + gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; else animBattlerId = 0; @@ -1745,7 +1745,7 @@ static void ScriptCmd_invisible(void) spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); if (spriteId != 0xFF) - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; sBattleAnimScriptPtr += 2; } @@ -1756,7 +1756,7 @@ static void ScriptCmd_visible(void) spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); if (spriteId != 0xFF) - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; sBattleAnimScriptPtr += 2; } diff --git a/src/battle_bg.c b/src/battle_bg.c index 999b64a542..fb3e52eacd 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -412,8 +412,8 @@ void sub_8035D74(u8 taskId) gPlttBufferUnfaded[palId * 16 + 0x10F] = gPlttBufferFaded[palId * 16 + 0x10F] = 0x7FFF; gBattleStruct->field_7D = CreateSprite(&gUnknown_0831A9D0, 111, 80, 0); gBattleStruct->field_7E = CreateSprite(&gUnknown_0831A9E8, 129, 80, 0); - gSprites[gBattleStruct->field_7D].invisible = 1; - gSprites[gBattleStruct->field_7E].invisible = 1; + gSprites[gBattleStruct->field_7D].invisible = TRUE; + gSprites[gBattleStruct->field_7E].invisible = TRUE; gTasks[taskId].data[0]++; break; case 2: @@ -444,8 +444,8 @@ void sub_8035D74(u8 taskId) PlaySE(SE_W231); DestroyTask(taskId); - gSprites[gBattleStruct->field_7D].invisible = 0; - gSprites[gBattleStruct->field_7E].invisible = 0; + gSprites[gBattleStruct->field_7D].invisible = FALSE; + gSprites[gBattleStruct->field_7E].invisible = FALSE; gSprites[gBattleStruct->field_7E].oam.tileNum += 0x40; gSprites[gBattleStruct->field_7D].data[0] = 0; gSprites[gBattleStruct->field_7E].data[0] = 1; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index d786dacd14..637b8c7027 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -442,7 +442,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; LinkOpponentBufferExecCompleted(); } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 9867c14e4d..bfaaf9e82c 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -332,7 +332,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; LinkPartnerBufferExecCompleted(); } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 6148587f86..3c126aeec8 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -435,7 +435,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; OpponentBufferExecCompleted(); } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 7f038a0c3f..57a4efa9ff 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -1398,7 +1398,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; PlayerBufferExecCompleted(); } diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 601b8dcc1e..7795c56566 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -520,7 +520,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; PlayerPartnerBufferExecCompleted(); } diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index affcb09ab8..963c535dbb 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -425,7 +425,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; RecordedOpponentBufferExecCompleted(); } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 4f224bc67e..1a043573fb 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -415,7 +415,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; RecordedPlayerBufferExecCompleted(); } diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 4faf78681c..747aa29878 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -371,7 +371,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; WallyBufferExecCompleted(); } diff --git a/src/battle_dome.c b/src/battle_dome.c index 0815b6a9b3..82384b43a7 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -3622,7 +3622,7 @@ static void sub_8190400(u8 taskId) gSprites[r7].data[0] = i; gSprites[r7].data[1] = 0; if (r9 == 1) - gSprites[r7].invisible = 1; + gSprites[r7].invisible = TRUE; r7 = CreateSprite(&gUnknown_0860D050, 234, 80, 0); StartSpriteAnim(&gSprites[r7], 1); @@ -3644,7 +3644,7 @@ static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.y >= -32) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCallbackDummy; } @@ -3664,7 +3664,7 @@ static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.y <= 192) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCallbackDummy; } @@ -3684,7 +3684,7 @@ static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.x >= -32) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCallbackDummy; } @@ -3704,7 +3704,7 @@ static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.x <= 272) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCallbackDummy; } @@ -3734,7 +3734,7 @@ static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.y >= -16) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCb_MonIcon; } @@ -3756,7 +3756,7 @@ static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.y <= 176) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCb_MonIcon; } @@ -3778,7 +3778,7 @@ static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.x >= -16) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCb_MonIcon; } @@ -3800,7 +3800,7 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.x <= 256) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCb_MonIcon; } @@ -3828,29 +3828,29 @@ static void sub_8190B40(struct Sprite *sprite) if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt)) { - sprite->invisible = 0; + sprite->invisible = FALSE; } else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated && sBattleDomeStruct->unk_10 - 1 < r12) { - sprite->invisible = 0; + sprite->invisible = FALSE; } else { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } } else { if (sBattleDomeStruct->unk_10 != 0) { - sprite->invisible = 0; + sprite->invisible = FALSE; } else { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } } } @@ -3861,23 +3861,23 @@ static void sub_8190B40(struct Sprite *sprite) if (sBattleDomeStruct->unk_10 > 1) { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } else { - sprite->invisible = 0; + sprite->invisible = FALSE; } } else { if (sBattleDomeStruct->unk_10 != 0) { - sprite->invisible = 0; + sprite->invisible = FALSE; } else { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } } } @@ -3892,11 +3892,11 @@ static void sub_8190C6C(struct Sprite *sprite) if (sBattleDomeStruct->unk_10 != 0) { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } else { - sprite->invisible = 0; + sprite->invisible = FALSE; } } else @@ -3904,11 +3904,11 @@ static void sub_8190C6C(struct Sprite *sprite) if (sBattleDomeStruct->unk_10 != 1) { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } else { - sprite->invisible = 0; + sprite->invisible = FALSE; } } } @@ -4770,7 +4770,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[arrId]].invisible = TRUE; for (i = 0; i < 3; i++) { @@ -4803,7 +4803,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) } if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = TRUE; } textPrinter.fontId = 2; textPrinter.x = 0; @@ -5208,7 +5208,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[arrId]].invisible = TRUE; if (lost[0]) gSprites[sBattleDomeStruct->arr[arrId]].oam.paletteNum = 3; @@ -5221,7 +5221,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[1 + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[1 + arrId]].invisible = TRUE; if (lost[1]) gSprites[sBattleDomeStruct->arr[1 + arrId]].oam.paletteNum = 3; @@ -5257,7 +5257,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) } if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = TRUE; if (lost[0]) { gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.paletteNum = 3; @@ -5297,7 +5297,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) } if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[5 + i + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].invisible = TRUE; if (lost[1]) { gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.paletteNum = 3; diff --git a/src/battle_factory.c b/src/battle_factory.c index a83a14e640..36c5ed2e8e 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -1273,8 +1273,8 @@ static void Select_InitAllSprites(void) sFactorySelectScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0); sFactorySelectScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0); - gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecX = 0; gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecY = 0; @@ -1767,8 +1767,8 @@ static void Select_ShowMenuOptions(void) gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; - gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = FALSE; Select_PrintMenuOptions(); } @@ -1782,16 +1782,16 @@ static void Select_ShowYesNoOptions(void) gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = 112; - gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = FALSE; Select_PrintYesNoOptions(); } static void sub_819B958(u8 windowId) { - gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; FillWindowPixelBuffer(windowId, 0); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); @@ -1977,7 +1977,7 @@ static void Select_ShowSummaryMonSprite(void) gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; - gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 1; + gSprites[sFactorySelectScreen->unk294[1].field1].invisible = TRUE; } static void Select_ShowChosenMonsSprites(void) @@ -2013,9 +2013,9 @@ static void sub_819C040(struct Sprite *sprite) && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded) { - sprite->invisible = 1; - gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 1; - gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 1; + sprite->invisible = TRUE; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = TRUE; + gSprites[sFactorySelectScreen->unk294[2].field1].invisible = TRUE; taskId = CreateTask(sub_819C1D0, 1); gTasks[taskId].func(taskId); @@ -2091,11 +2091,11 @@ static void sub_819C2D4(u8 taskId) { default: HideBg(3); - gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[1].field1].invisible = FALSE; gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C100; - gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = FALSE; gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; - gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[2].field1].invisible = FALSE; gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 1); StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[0].field1], 1); @@ -3018,7 +3018,7 @@ static void sub_819D770(u8 taskId) else Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); if (sFactorySwapScreen->cursorPos < 3) - gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0; + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = FALSE; Swap_PrintMonCategory(); gTasks[taskId].data[0]++; break; @@ -3048,7 +3048,7 @@ static void sub_819D9EC(u8 taskId) break; case 1: sub_819EADC(); - gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = TRUE; gTasks[taskId].data[0]++; break; case 2: @@ -3068,7 +3068,7 @@ static void sub_819D9EC(u8 taskId) { Swap_InitActions(ACTIONS_PLAYER_SCREEN); for (i = 0; i < 3; i++) - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; } gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x; gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName; @@ -3279,8 +3279,8 @@ static void Swap_InitAllSprites(void) sFactorySwapScreen->cursorSpriteId = CreateSprite(&gUnknown_0861084C, gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x, 88, 0); sFactorySwapScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610864, 176, 112, 0); sFactorySwapScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_0861087C, 176, 144, 0); - gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecX = 0; gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecY = 0; gSprites[sFactorySwapScreen->menuCursor2SpriteId].centerToCornerVecX = 0; @@ -3339,18 +3339,18 @@ static void Swap_InitAllSprites(void) gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecX = 0; gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unk8[i][0]].invisible = 1; - gSprites[sFactorySwapScreen->unk8[i][1]].invisible = 1; - gSprites[sFactorySwapScreen->unk8[i][2]].invisible = 1; - gSprites[sFactorySwapScreen->unkE[i][0]].invisible = 1; - gSprites[sFactorySwapScreen->unkE[i][1]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[i][0]].invisible = TRUE; + gSprites[sFactorySwapScreen->unk8[i][1]].invisible = TRUE; + gSprites[sFactorySwapScreen->unk8[i][2]].invisible = TRUE; + gSprites[sFactorySwapScreen->unkE[i][0]].invisible = TRUE; + gSprites[sFactorySwapScreen->unkE[i][1]].invisible = TRUE; } - gSprites[sFactorySwapScreen->unkE[0][0]].invisible = 0; - gSprites[sFactorySwapScreen->unkE[0][1]].invisible = 0; - gSprites[sFactorySwapScreen->unk8[0][0]].invisible = 0; - gSprites[sFactorySwapScreen->unk8[0][1]].invisible = 0; - gSprites[sFactorySwapScreen->unk8[0][2]].invisible = 0; + gSprites[sFactorySwapScreen->unkE[0][0]].invisible = FALSE; + gSprites[sFactorySwapScreen->unkE[0][1]].invisible = FALSE; + gSprites[sFactorySwapScreen->unk8[0][0]].invisible = FALSE; + gSprites[sFactorySwapScreen->unk8[0][1]].invisible = FALSE; + gSprites[sFactorySwapScreen->unk8[0][2]].invisible = FALSE; } static void Swap_DestroyAllSprites(void) @@ -3378,13 +3378,13 @@ static void Swap_HandleActionCursorChange(u8 cursorId) { if (cursorId < 3) { - gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0; + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = FALSE; sub_819E8EC(); gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[cursorId]].pos1.x; } else { - gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = TRUE; sub_819E838(sFactorySwapScreen->actionsData[cursorId].id); } } @@ -3490,15 +3490,15 @@ static void sub_819E838(u8 arg0) { if (arg0 == 2) { - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = FALSE; if (i < 2) - gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = TRUE; } else if (arg0 == 3) { if (i < 2) - gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 0; - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = FALSE; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; } } } @@ -3509,9 +3509,9 @@ static void sub_819E8EC(void) for (i = 0; i < 3; i++) { - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; if (i < 2) - gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = TRUE; } } @@ -3527,8 +3527,8 @@ static void Swap_ShowMenuOptions(void) gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; - gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = FALSE; Swap_PrintMenuOptions(); } @@ -3542,16 +3542,16 @@ static void Swap_ShowYesNoOptions(void) gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = 112; - gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = FALSE; Swap_PrintYesNoOptions(); } static void sub_819EA64(u8 windowId) { - gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; FillWindowPixelBuffer(windowId, 0); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); @@ -3900,7 +3900,7 @@ static void Swap_ShowSummaryMonSprite(void) gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0; gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unk2C.field1].invisible = 1; + gSprites[sFactorySwapScreen->unk2C.field1].invisible = TRUE; } static void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) @@ -3984,7 +3984,7 @@ static void sub_819F600(struct Sprite *sprite) if (sprite->affineAnimEnded) { - sprite->invisible = 1; + sprite->invisible = TRUE; taskId = CreateTask(sub_819F69C, 1); gTasks[taskId].data[7] = sprite->data[7]; gTasks[taskId].func(taskId); @@ -4058,7 +4058,7 @@ static void sub_819F7B4(u8 taskId) default: HideBg(3); gSprites[task->data[6]].data[7] = task->data[7]; - gSprites[task->data[6]].invisible = 0; + gSprites[task->data[6]].invisible = FALSE; gSprites[task->data[6]].callback = sub_819F654; StartSpriteAffineAnim(&gSprites[task->data[6]], 1); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 8f17d488e5..23ed8a19f4 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -1173,7 +1173,7 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) void SpriteCB_SetInvisible(struct Sprite *sprite) { - sprite->invisible = 1; + sprite->invisible = TRUE; } void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species) diff --git a/src/battle_interface.c b/src/battle_interface.c index e45af2bf09..d2750bf9d4 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -974,13 +974,13 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId) gSprites[healthboxLeftSpriteId].hMain_HealthBarSpriteId = healthbarSpriteId; gSprites[healthboxLeftSpriteId].hMain_Battler = battlerId; - gSprites[healthboxLeftSpriteId].invisible = 1; + gSprites[healthboxLeftSpriteId].invisible = TRUE; - gSprites[healthboxRightSpriteId].invisible = 1; + gSprites[healthboxRightSpriteId].invisible = TRUE; healthBarSpritePtr->hBar_HealthBoxSpriteId = healthboxLeftSpriteId; healthBarSpritePtr->hBar_Data6 = data6; - healthBarSpritePtr->invisible = 1; + healthBarSpritePtr->invisible = TRUE; return healthboxLeftSpriteId; } @@ -1058,16 +1058,16 @@ void SetBattleBarStruct(u8 battlerId, u8 healthboxSpriteId, s32 maxVal, s32 oldV void SetHealthboxSpriteInvisible(u8 healthboxSpriteId) { - gSprites[healthboxSpriteId].invisible = 1; - gSprites[gSprites[healthboxSpriteId].hMain_HealthBarSpriteId].invisible = 1; - gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 1; + gSprites[healthboxSpriteId].invisible = TRUE; + gSprites[gSprites[healthboxSpriteId].hMain_HealthBarSpriteId].invisible = TRUE; + gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = TRUE; } void SetHealthboxSpriteVisible(u8 healthboxSpriteId) { - gSprites[healthboxSpriteId].invisible = 0; - gSprites[gSprites[healthboxSpriteId].hMain_HealthBarSpriteId].invisible = 0; - gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 0; + gSprites[healthboxSpriteId].invisible = FALSE; + gSprites[gSprites[healthboxSpriteId].hMain_HealthBarSpriteId].invisible = FALSE; + gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = FALSE; } static void UpdateSpritePos(u8 spriteId, s16 x, s16 y) diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index d30af944e0..07fb6bd9e9 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -477,29 +477,29 @@ static void SetFlavorCirclesVisiblity(void) const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); if (berry->spicy) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = TRUE; if (berry->dry) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = TRUE; if (berry->sweet) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = TRUE; if (berry->bitter) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = TRUE; if (berry->sour) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = TRUE; } static void DestroyFlavorCircleSprites(void) diff --git a/src/credits.c b/src/credits.c index 94089a6d18..981b60a47f 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1862,8 +1862,8 @@ static void sub_817664C(u8 data, u8 taskIdA) switch (data) { case 0: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 272; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; @@ -1873,8 +1873,8 @@ static void sub_817664C(u8 data, u8 taskIdA) gTasks[taskIdA].data[TDA_0] = sub_817B3DC(0, 0x2000, 0x20, 8); break; case 1: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; @@ -1884,8 +1884,8 @@ static void sub_817664C(u8 data, u8 taskIdA) gTasks[taskIdA].data[TDA_0] = sub_817B3DC(0, 0x2000, 0x20, 8); break; case 2: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; @@ -1895,8 +1895,8 @@ static void sub_817664C(u8 data, u8 taskIdA) gTasks[taskIdA].data[TDA_0] = sub_817B3DC(1, 0x2000, 0x200, 8); break; case 3: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = -32; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; @@ -1906,8 +1906,8 @@ static void sub_817664C(u8 data, u8 taskIdA) gTasks[taskIdA].data[TDA_0] = sub_817B3DC(1, 0x2000, 0x200, 8); break; case 4: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 88; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 152; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; diff --git a/src/egg_hatch.c b/src/egg_hatch.c index d56f03028f..9f25262951 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -451,7 +451,7 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc case 1: SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, r5); spriteID = CreateSprite(&gMultiuseSpriteTemplate, 120, 75, 6); - gSprites[spriteID].invisible = 1; + gSprites[spriteID].invisible = TRUE; gSprites[spriteID].callback = SpriteCallbackDummy; break; } @@ -808,7 +808,7 @@ static void SpriteCB_Egg_4(struct Sprite* sprite) if (!gPaletteFade.active) { PlaySE(SE_TAMAGO); - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = SpriteCB_Egg_5; sprite->data[0] = 0; } @@ -818,7 +818,7 @@ static void SpriteCB_Egg_5(struct Sprite* sprite) { if (sprite->data[0] == 0) { - gSprites[sEggHatchData->pokeSpriteID].invisible = 0; + gSprites[sEggHatchData->pokeSpriteID].invisible = FALSE; StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1); } if (sprite->data[0] == 8) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 7f76bb1685..2b85e751fb 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1097,13 +1097,13 @@ static void sub_808D450(void) gSprites[spriteId].oam.affineMode = 1; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 0); - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31); gSprites[spriteId].oam.affineMode = 1; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 1); - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; } u8 GetFirstInactiveEventObjectId(void) @@ -8798,9 +8798,9 @@ void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible) y2 = y - (sprite->centerToCornerVecY >> 1); if ((s16)x > 255 || x2 < -16) - sprite->invisible = 1; + sprite->invisible = TRUE; if ((s16)y > 175 || y2 < -16) - sprite->invisible = 1; + sprite->invisible = TRUE; } void UpdateEventObjectSpriteSubpriorityAndVisibility(struct Sprite *sprite) diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index 8d02eef91f..77f65289e6 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -220,10 +220,10 @@ static void SpriteCB_PostEvoSparkleSet2(struct Sprite* sprite) sprite->subpriority = 1; else { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->subpriority = 20; if (sprite->data[6] > 112 && sprite->data[6] & 1) - sprite->invisible = 1; + sprite->invisible = TRUE; } if (matrixNum < 20) matrixNum = 20; @@ -498,13 +498,13 @@ u8 sub_817C3A0(u8 preEvoSpriteID, u8 postEvoSpriteID) gSprites[preEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB; gSprites[preEvoSpriteID].oam.affineMode = 1; gSprites[preEvoSpriteID].oam.matrixNum = 30; - gSprites[preEvoSpriteID].invisible = 0; + gSprites[preEvoSpriteID].invisible = FALSE; CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[preEvoSpriteID].oam.paletteNum * 16)], 16); gSprites[postEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB; gSprites[postEvoSpriteID].oam.affineMode = 1; gSprites[postEvoSpriteID].oam.matrixNum = 31; - gSprites[postEvoSpriteID].invisible = 0; + gSprites[postEvoSpriteID].invisible = FALSE; CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[postEvoSpriteID].oam.paletteNum * 16)], 16); gTasks[taskID].tEvoStopped = FALSE; @@ -588,11 +588,11 @@ static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskID) { gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = 0; gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = 1; + gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = TRUE; gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = 0; gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = 0; + gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = FALSE; DestroyTask(taskID); } @@ -601,11 +601,11 @@ static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskID) { gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = 0; gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = 0; + gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = FALSE; gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = 0; gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = 1; + gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = TRUE; DestroyTask(taskID); } diff --git a/src/evolution_scene.c b/src/evolution_scene.c index ae15e79fe7..91ac90b1b2 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -285,7 +285,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 1; - gSprites[ID].invisible = 1; + gSprites[ID].invisible = TRUE; // postEvo sprite DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve], @@ -299,7 +299,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; - gSprites[ID].invisible = 1; + gSprites[ID].invisible = TRUE; LoadEvoSparkleSpriteAndPal(); @@ -514,7 +514,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; - gSprites[ID].invisible = 1; + gSprites[ID].invisible = TRUE; LoadEvoSparkleSpriteAndPal(); @@ -623,7 +623,7 @@ static void Task_EvolutionScene(u8 taskID) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); - gSprites[sEvoStructPtr->preEvoSpriteID].invisible = 0; + gSprites[sEvoStructPtr->preEvoSpriteID].invisible = FALSE; gTasks[taskID].tState++; ShowBg(0); ShowBg(1); diff --git a/src/field_effect.c b/src/field_effect.c index ecda8578b9..e7ecca1830 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1078,7 +1078,7 @@ u8 PokecenterHealEffectHelper(s16 x, s16 y) spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C31C, x, y, 0); sprite = &gSprites[spriteIdAtEnd]; sprite->oam.priority = 2; - sprite->invisible = 1; + sprite->invisible = TRUE; SetSubspriteTables(sprite, &gUnknown_0855C2AC); return spriteIdAtEnd; } @@ -1088,7 +1088,7 @@ void SpriteCB_PokecenterMonitor(struct Sprite *sprite) if (sprite->data[0] != 0) { sprite->data[0] = 0; - sprite->invisible = 0; + sprite->invisible = FALSE; StartSpriteAnim(sprite, 1); } if (sprite->animEnded) @@ -1108,7 +1108,7 @@ void HallOfFameRecordEffectHelper(s16 a0, s16 a1, s16 a2, u8 a3) { spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C34C, a1, a2, 0); } - gSprites[spriteIdAtEnd].invisible = 1; + gSprites[spriteIdAtEnd].invisible = TRUE; gSprites[spriteIdAtEnd].data[0] = a0; } @@ -1182,7 +1182,7 @@ void mapldr_08084390(void) Overworld_PlaySpecialMapMusic(); pal_fill_black(); CreateTask(c3_080843F8, 0); - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 1; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE; if (gPlayerAvatar.flags & 0x08) { EventObjectTurn(&gEventObjects[gPlayerAvatar.eventObjectId], DIR_WEST); @@ -1242,7 +1242,7 @@ bool8 sub_80B6BCC(struct Task *task) // gUnknown_0855C3C8[0] playerObject = &gEventObjects[gPlayerAvatar.eventObjectId]; playerSprite = &gSprites[gPlayerAvatar.spriteId]; CameraObjectReset2(); - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 1; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE; gPlayerAvatar.preventStep = TRUE; EventObjectSetHeldMovement(playerObject, GetFaceDirectionMovementAction(GetPlayerFacingDirection())); task->data[4] = playerSprite->subspriteMode; @@ -1271,7 +1271,7 @@ bool8 sub_80B6C90(struct Task *task) // gUnknown_0855C3C8[2] sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); task->data[1] = 1; task->data[2] = 0; - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 0; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = FALSE; PlaySE(SE_RU_HYUU); task->data[0]++; return FALSE; @@ -1869,7 +1869,7 @@ bool8 sub_80B78EC(struct Task *task, struct EventObject *eventObject, struct Spr CameraObjectReset2(); FreezeEventObjects(); gPlayerAvatar.preventStep = TRUE; - eventObject->invisible = 1; + eventObject->invisible = TRUE; task->data[0]++; return FALSE; } @@ -1894,7 +1894,7 @@ bool8 sub_80B7968(struct Task *task, struct EventObject *eventObject, struct Spr if (sprite->animCmdIndex > 1) { task->data[0]++; - eventObject->invisible = 0; + eventObject->invisible = FALSE; CameraObjectReset1(); PlaySE(SE_W091); EventObjectSetHeldMovement(eventObject, GetJumpMovementAction(DIR_EAST)); @@ -1982,7 +1982,7 @@ bool8 sub_80B7B94(struct Task *task, struct EventObject *eventObject, struct Spr { if (gSprites[task->data[1]].animCmdIndex == 2) { - eventObject->invisible = 1; + eventObject->invisible = TRUE; task->data[0]++; } return FALSE; @@ -2097,7 +2097,7 @@ void mapldr_080859D4(void) ScriptContext2_Enable(); FreezeEventObjects(); gFieldCallback = NULL; - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 1; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE; CreateTask(sub_80B7E94, 0); } @@ -2127,7 +2127,7 @@ void sub_80B7EE8(struct Task *task) } if (task->data[2] >= 32 && task->data[15] == GetPlayerFacingDirection()) { - eventObject->invisible = 0; + eventObject->invisible = FALSE; ScriptContext2_Disable(); UnfreezeEventObjects(); DestroyTask(FindTaskIdByFunc(sub_80B7E94)); @@ -2254,7 +2254,7 @@ static void mapldr_08085D88(void) ScriptContext2_Enable(); FreezeEventObjects(); gFieldCallback = NULL; - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 1; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE; CameraObjectReset2(); CreateTask(sub_80B8250, 0); } @@ -2279,7 +2279,7 @@ void sub_80B8280(struct Task *task) sprite = &gSprites[gPlayerAvatar.spriteId]; centerToCornerVecY = -(sprite->centerToCornerVecY << 1); sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 0; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = FALSE; task->data[0]++; task->data[1] = 8; task->data[2] = 1; @@ -3463,7 +3463,7 @@ void sub_80B96B0(struct Sprite *sprite) sprite->data[7]++; sprite->oam.affineMode = 0; FreeOamMatrix(sprite->oam.matrixNum); - sprite->invisible = 1; + sprite->invisible = TRUE; } } } @@ -3516,7 +3516,7 @@ void sub_80B9804(struct Task *task) CameraObjectReset2(); EventObjectTurn(eventObject, DIR_WEST); StartSpriteAnim(&gSprites[eventObject->spriteId], 0x16); - eventObject->invisible = 0; + eventObject->invisible = FALSE; task->data[1] = sub_80B94C4(); sub_80B9524(task->data[1]); sub_80B9560(task->data[1], eventObject->spriteId); diff --git a/src/item_menu.c b/src/item_menu.c index 9382772100..0cdedec97d 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1185,7 +1185,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) ClearWindowTilemap(1); DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]); schedule_bg_copy_tilemap_to_vram(0); - gSprites[gUnknown_0203CE54->unk804[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = 1; + gSprites[gUnknown_0203CE54->unk804[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = TRUE; sub_81AB824(); } pocketId = gUnknown_0203CE58.pocket; diff --git a/src/main_menu.c b/src/main_menu.c index fd8b1b04db..7e84ae7ec1 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1164,7 +1164,7 @@ void task_new_game_prof_birch_speech_2(u8 taskId) spriteId = gTasks[taskId].data[8]; gSprites[spriteId].pos1.x = 0x88; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; sub_8031BAC(taskId, 10); sub_8031D34(taskId, 20); @@ -1225,7 +1225,7 @@ void sub_8030A70(u8 taskId) gSprites[spriteId].pos1.x = 0x64; gSprites[spriteId].pos1.y = 0x4B; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gSprites[spriteId].data[0] = 0; CreatePokeballSpriteToReleaseMon(spriteId, gSprites[spriteId].oam.paletteNum, 0x70, 0x3A, 0, 0, 0x20, 0xFFFF, SPECIES_LOTAD); @@ -1306,8 +1306,8 @@ void task_new_game_prof_birch_speech_9(u8 taskId) { if (gTasks[taskId].data[5]) { - gSprites[gTasks[taskId].data[8]].invisible = 1; - gSprites[gTasks[taskId].data[9]].invisible = 1; + gSprites[gTasks[taskId].data[8]].invisible = TRUE; + gSprites[gTasks[taskId].data[9]].invisible = TRUE; if (gTasks[taskId].data[7]) { gTasks[taskId].data[7]--; @@ -1318,7 +1318,7 @@ void task_new_game_prof_birch_speech_9(u8 taskId) gSprites[spriteId].pos1.x = 0xB4; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; gTasks[taskId].data[2] = spriteId; gTasks[taskId].data[6] = 0; @@ -1394,14 +1394,14 @@ void sub_8030ED4(u8 taskId) } else { - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; if (gTasks[taskId].data[6]) spriteId = gTasks[taskId].data[11]; else spriteId = gTasks[taskId].data[10]; gSprites[spriteId].pos1.x = 0xF0; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gTasks[taskId].data[2] = spriteId; gSprites[spriteId].oam.objMode = 1; sub_8031BAC(taskId, 0); @@ -1562,8 +1562,8 @@ void task_new_game_prof_birch_speech_part2_8(u8 taskId) if (gTasks[taskId].data[5]) { - gSprites[gTasks[taskId].data[8]].invisible = 1; - gSprites[gTasks[taskId].data[9]].invisible = 1; + gSprites[gTasks[taskId].data[8]].invisible = TRUE; + gSprites[gTasks[taskId].data[9]].invisible = TRUE; if (gTasks[taskId].data[7]) { gTasks[taskId].data[7]--; @@ -1575,7 +1575,7 @@ void task_new_game_prof_birch_speech_part2_8(u8 taskId) spriteId = gTasks[taskId].data[10]; gSprites[spriteId].pos1.x = 0x78; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; gTasks[taskId].data[2] = spriteId; sub_8031BAC(taskId, 2); @@ -1692,7 +1692,7 @@ void new_game_prof_birch_speech_part2_start(void) } gSprites[spriteId].pos1.x = 0xB4; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gTasks[taskId].data[2] = spriteId; SetGpuReg(REG_OFFSET_BG1HOFS, -60); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 0f6d5aa38d..8cabbde426 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -410,7 +410,7 @@ void sub_8122344(u8 *spriteIds, u8 count) if (i != 0) StartSpriteAnim(&gSprites[spriteIds[i]], 1); - gSprites[spriteIds[i]].invisible = 1; + gSprites[spriteIds[i]].invisible = TRUE; } } diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 9c307f7f87..e75f2eeba0 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -2347,7 +2347,7 @@ static void pokemonanimfunc_27(struct Sprite *sprite) sprite->invisible = sprite->data[4]; if (++sprite->data[2] > 19) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->callback = SpriteCB_SetDummyOnAnimEnd; } sprite->data[3] = 2; @@ -3069,17 +3069,17 @@ static void pokemonanimfunc_35(struct Sprite *sprite) { sprite->data[7] = 0; sprite->data[2]++; - sprite->invisible = 0; + sprite->invisible = FALSE; } else { sprite->data[7]++; - sprite->invisible = 1; + sprite->invisible = TRUE; } if (sprite->data[2] > 10) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->callback = SpriteCB_SetDummyOnAnimEnd; } } diff --git a/src/rom_8034C54.c b/src/rom_8034C54.c index 42df512950..da18c330cc 100644 --- a/src/rom_8034C54.c +++ b/src/rom_8034C54.c @@ -442,7 +442,7 @@ static void sub_8035608(void) ResetSpriteData(); spriteId = CreateSprite(&gUnknown_0831AC88, 0, 0, 0); - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; SetMainCallback2(sub_8035648); } diff --git a/src/sprite.c b/src/sprite.c index 8a4729b27c..c133dc73ee 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -171,7 +171,7 @@ static const struct Sprite sDummySprite = .data = {0, 0, 0, 0, 0, 0, 0}, .inUse = 0, .coordOffsetEnabled = 0, - .invisible = 0, + .invisible = FALSE, .flags_3 = 0, .flags_4 = 0, .flags_5 = 0, From aa0782c40bc5ace54447c8234a8ca8a08ee6d788 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Mon, 10 Sep 2018 12:03:24 -0500 Subject: [PATCH 14/28] Make gbafix silent --- Makefile | 2 +- tools/gbafix/gbafix.c | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 3c2c333b0a..47bfee2a2f 100644 --- a/Makefile +++ b/Makefile @@ -173,5 +173,5 @@ $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ - $(FIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) + $(FIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) -silent diff --git a/tools/gbafix/gbafix.c b/tools/gbafix/gbafix.c index 60e4ccb4f5..071568d453 100644 --- a/tools/gbafix/gbafix.c +++ b/tools/gbafix/gbafix.c @@ -135,6 +135,7 @@ int main(int argc, char *argv[]) int arg; char *argfile = 0; FILE *infile; + int silent = 0; int size,bit; @@ -142,7 +143,7 @@ int main(int argc, char *argv[]) if (argc <= 1) { printf("GBA ROM fixer v"VER" by Dark Fader / BlackThunder / WinterMute / Diegoisawesome \n"); - printf("Syntax: gbafix [-p] [-t[title]] [-c] [-m] [-r] [-d]\n"); + printf("Syntax: gbafix [-p] [-t[title]] [-c] [-m] [-r] [-d] [-silent]\n"); printf("\n"); printf("parameters:\n"); printf(" -p Pad to next exact power of 2. No minimum size!\n"); @@ -151,25 +152,27 @@ int main(int argc, char *argv[]) printf(" -m Patch maker code (two characters)\n"); printf(" -r Patch game version (number)\n"); printf(" -d Enable debugging handler and set debug entry point (0 or 1)\n"); + printf(" -silent Silence non-error output\n"); return -1; } // get filename for (arg=1; arg Date: Mon, 10 Sep 2018 13:15:53 -0500 Subject: [PATCH 15/28] Make long param use two dashes --- Makefile | 2 +- tools/gbafix/gbafix.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 47bfee2a2f..9adacb6e19 100644 --- a/Makefile +++ b/Makefile @@ -173,5 +173,5 @@ $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ - $(FIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) -silent + $(FIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent diff --git a/tools/gbafix/gbafix.c b/tools/gbafix/gbafix.c index 071568d453..d5e2f62ab4 100644 --- a/tools/gbafix/gbafix.c +++ b/tools/gbafix/gbafix.c @@ -33,6 +33,7 @@ History ------- + v1.06 - added output silencing, (Diegoisawesome) v1.05 - added debug offset argument, (Diegoisawesome) v1.04 - converted to plain C, (WinterMute) v1.03 - header.fixed, header.device_type @@ -48,7 +49,7 @@ #include #include -#define VER "1.05" +#define VER "1.06" #define ARGV argv[arg] #define VALUE (ARGV+2) #define NUMBER strtoul(VALUE, NULL, 0) @@ -143,7 +144,7 @@ int main(int argc, char *argv[]) if (argc <= 1) { printf("GBA ROM fixer v"VER" by Dark Fader / BlackThunder / WinterMute / Diegoisawesome \n"); - printf("Syntax: gbafix [-p] [-t[title]] [-c] [-m] [-r] [-d] [-silent]\n"); + printf("Syntax: gbafix [-p] [-t[title]] [-c] [-m] [-r] [-d] [--silent]\n"); printf("\n"); printf("parameters:\n"); printf(" -p Pad to next exact power of 2. No minimum size!\n"); @@ -152,7 +153,7 @@ int main(int argc, char *argv[]) printf(" -m Patch maker code (two characters)\n"); printf(" -r Patch game version (number)\n"); printf(" -d Enable debugging handler and set debug entry point (0 or 1)\n"); - printf(" -silent Silence non-error output\n"); + printf(" --silent Silence non-error output\n"); return -1; } @@ -160,7 +161,7 @@ int main(int argc, char *argv[]) for (arg=1; arg Date: Tue, 11 Sep 2018 01:35:47 +0100 Subject: [PATCH 16/28] Finish converting data2b data --- data/data2b.s | 219 -------------------------------- data/field_ground_effect.s | 6 - ld_script.txt | 1 - src/data2b.c | 252 ++++++++++++++++++++++++++++++++++++- 4 files changed, 250 insertions(+), 228 deletions(-) delete mode 100644 data/data2b.s delete mode 100644 data/field_ground_effect.s diff --git a/data/data2b.s b/data/data2b.s deleted file mode 100644 index db378d1a5b..0000000000 --- a/data/data2b.s +++ /dev/null @@ -1,219 +0,0 @@ -#include "constants/items.h" -#include "constants/moves.h" -#include "constants/species.h" -#include "constants/trainers.h" -#include "constants/pokemon.h" - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_082FF1D8:: @ 82FF1D8 - .incbin "graphics/link/minigame_digits.gbapal" - - .align 2 -gUnknown_082FF1F8:: @ 82FF1F8 - .incbin "graphics/link/minigame_digits.4bpp.lz" - - .align 2 -gUnknown_082FF2B8:: @ 82FF2B8 - .incbin "graphics/link/minigame_digits2.4bpp.lz" - - .align 2 -gUnknown_082FF3A8:: @ 82FF3A8 - obj_frame_tiles gHeap + 0x8000, 0x800 - obj_frame_tiles gHeap + 0x8800, 0x800 - obj_frame_tiles gHeap + 0x9000, 0x800 - obj_frame_tiles gHeap + 0x9800, 0x800 - - .align 2 -gUnknown_082FF3C8:: @ 82FF3C8 - obj_frame_tiles gHeap + 0xA000, 0x800 - obj_frame_tiles gHeap + 0xA800, 0x800 - obj_frame_tiles gHeap + 0xB000, 0x800 - obj_frame_tiles gHeap + 0xB800, 0x800 - - .align 2 -gUnknown_082FF3E8:: @ 82FF3E8 - obj_frame_tiles gHeap + 0xC000, 0x800 - obj_frame_tiles gHeap + 0xC800, 0x800 - obj_frame_tiles gHeap + 0xD000, 0x800 - obj_frame_tiles gHeap + 0xD800, 0x800 - - .align 2 -gUnknown_082FF408:: @ 82FF408 - obj_frame_tiles gHeap + 0xE000, 0x800 - obj_frame_tiles gHeap + 0xE800, 0x800 - obj_frame_tiles gHeap + 0xF000, 0x800 - obj_frame_tiles gHeap + 0xF800, 0x800 - - .align 2 -gUnknown_082FF428:: @ 82FF428 - obj_frame_tiles gTrainerBackPic_Brendan, 0x0800 - obj_frame_tiles gTrainerBackPic_Brendan + 0x0800, 0x0800 - obj_frame_tiles gTrainerBackPic_Brendan + 0x1000, 0x0800 - obj_frame_tiles gTrainerBackPic_Brendan + 0x1800, 0x0800 - - .align 2 -gUnknown_082FF448:: @ 82FF448 - obj_frame_tiles gTrainerBackPic_May, 0x0800 - obj_frame_tiles gTrainerBackPic_May + 0x0800, 0x0800 - obj_frame_tiles gTrainerBackPic_May + 0x1000, 0x0800 - obj_frame_tiles gTrainerBackPic_May + 0x1800, 0x0800 - - .align 2 -gUnknown_082FF468:: @ 82FF468 - obj_frame_tiles gTrainerBackPic_Red, 0x0800 - obj_frame_tiles gTrainerBackPic_Red + 0x0800, 0x0800 - obj_frame_tiles gTrainerBackPic_Red + 0x1000, 0x0800 - obj_frame_tiles gTrainerBackPic_Red + 0x1800, 0x0800 - obj_frame_tiles gTrainerBackPic_Red + 0x2000, 0x0800 - - .align 2 -gUnknown_082FF490:: @ 82FF490 - obj_frame_tiles gTrainerBackPic_Leaf, 0x0800 - obj_frame_tiles gTrainerBackPic_Leaf + 0x0800, 0x0800 - obj_frame_tiles gTrainerBackPic_Leaf + 0x1000, 0x0800 - obj_frame_tiles gTrainerBackPic_Leaf + 0x1800, 0x0800 - obj_frame_tiles gTrainerBackPic_Leaf + 0x2000, 0x0800 - - .align 2 -gUnknown_082FF4B8:: @ 82FF4B8 - obj_frame_tiles gTrainerBackPic_RubySapphireBrendan, 0x0800 - obj_frame_tiles gTrainerBackPic_RubySapphireBrendan + 0x0800, 0x0800 - obj_frame_tiles gTrainerBackPic_RubySapphireBrendan + 0x1000, 0x0800 - obj_frame_tiles gTrainerBackPic_RubySapphireBrendan + 0x1800, 0x0800 - - .align 2 -gUnknown_082FF4D8:: @ 82FF4D8 - obj_frame_tiles gTrainerBackPic_RubySapphireMay, 0x0800 - obj_frame_tiles gTrainerBackPic_RubySapphireMay + 0x0800, 0x0800 - obj_frame_tiles gTrainerBackPic_RubySapphireMay + 0x1000, 0x0800 - obj_frame_tiles gTrainerBackPic_RubySapphireMay + 0x1800, 0x0800 - - .align 2 -gUnknown_082FF4F8:: @ 82FF4F8 - obj_frame_tiles gTrainerBackPic_Wally, 0x0800 - obj_frame_tiles gTrainerBackPic_Wally + 0x0800, 0x0800 - obj_frame_tiles gTrainerBackPic_Wally + 0x1000, 0x0800 - obj_frame_tiles gTrainerBackPic_Wally + 0x1800, 0x0800 - - .align 2 -gUnknown_082FF518:: @ 82FF518 - obj_frame_tiles gTrainerBackPic_Steven, 0x0800 - obj_frame_tiles gTrainerBackPic_Steven + 0x0800, 0x0800 - obj_frame_tiles gTrainerBackPic_Steven + 0x1000, 0x0800 - obj_frame_tiles gTrainerBackPic_Steven + 0x1800, 0x0800 - - .align 2 -gAnimCmd_General_Frame0:: @ 82FF538 - obj_image_anim_frame 0, 0 - obj_image_anim_end - - .align 2 -AnimCmd_82FF540:: @ 82FF540 - .2byte 0x0003, 0x0000, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF548:: @ 82FF548 - .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF558:: @ 82FF558 - .2byte 0xff00, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF568:: @ 82FF568 - .2byte 0x0028, 0x0028, 0x0000, 0x0000, 0x0012, 0x0012, 0x0c00, 0x0000 - .2byte 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF580:: @ 82FF580 - .2byte 0xfffe, 0xfffe, 0x1200, 0x0000, 0xfff0, 0xfff0, 0x0f00, 0x0000 - .2byte 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF598:: @ 82FF598 - .2byte 0x00a0, 0x0100, 0x0000, 0x0000, 0x0004, 0x0000, 0x0800, 0x0000 - .2byte 0xfffc, 0x0000, 0x0800, 0x0000, 0x7ffe, 0x0001, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF5B8:: @ 82FF5B8 - .2byte 0x0002, 0x0002, 0x1400, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF5C8:: @ 82FF5C8 - .2byte 0xfffe, 0xfffe, 0x1400, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF5D8:: @ 82FF5D8 - .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0xfff0, 0xfff0, 0x0900, 0x0000 - .2byte 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF5F0:: @ 82FF5F0 - .2byte 0x0004, 0x0004, 0x3f00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF600:: @ 82FF600 - .2byte 0x0000, 0x0000, 0x05fd, 0x0000, 0x0000, 0x0000, 0x0503, 0x0000 - .2byte 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF618:: @ 82FF618 - .4byte gUnknown_082FF548 - .4byte gUnknown_082FF568 - .4byte gUnknown_082FF580 - .4byte gUnknown_082FF598 - .4byte gUnknown_082FF5B8 - .4byte gUnknown_082FF5C8 - .4byte gUnknown_082FF5F0 - .4byte gUnknown_082FF600 - .4byte gUnknown_082FF5D8 - - .align 2 -gUnknown_082FF63C:: @ 82FF63C - .2byte 0xfffc, 0xfffc, 0x3f04, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF64C:: @ 82FF64C - .2byte 0x0000, 0x0000, 0x0503, 0x0000, 0x0000, 0x0000, 0x05fd, 0x0000 - .2byte 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF664:: @ 82FF664 - .2byte 0x0000, 0x0000, 0x14fb, 0x0000, 0x0000, 0x0000, 0x1400, 0x0000 - .2byte 0x0000, 0x0000, 0x1405, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF684:: @ 82FF684 - .2byte 0x0000, 0x0000, 0x6e09, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_082FF694:: @ 82FF694 - .4byte gUnknown_082FF548 - .4byte gUnknown_082FF568 - .4byte gUnknown_082FF580 - .4byte gUnknown_082FF598 - .4byte gUnknown_082FF5B8 - .4byte gUnknown_082FF5C8 - .4byte gUnknown_082FF63C - .4byte gUnknown_082FF64C - .4byte gUnknown_082FF664 - .4byte gUnknown_082FF5D8 - .4byte gUnknown_082FF684 - - .align 2 -gUnknown_082FF6C0:: @ 82FF6C0 - .4byte gUnknown_082FF558 - .4byte gUnknown_082FF568 - .4byte gUnknown_082FF580 - .4byte gUnknown_082FF598 - .4byte gUnknown_082FF5B8 - .4byte gUnknown_082FF5C8 - .4byte gUnknown_082FF63C - .4byte gUnknown_082FF64C - .4byte gUnknown_082FF664 - .4byte gUnknown_082FF5D8 - .4byte gUnknown_082FF684 diff --git a/data/field_ground_effect.s b/data/field_ground_effect.s deleted file mode 100644 index 686d9396b7..0000000000 --- a/data/field_ground_effect.s +++ /dev/null @@ -1,6 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - diff --git a/ld_script.txt b/ld_script.txt index 071d2594ec..e9f59350e6 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -380,7 +380,6 @@ SECTIONS { src/rtc.o(.rodata); src/main_menu.o(.rodata); src/rom_8034C54.o(.rodata); - data/data2b.o(.rodata); src/data2b.o(.rodata); src/battle_data.o(.rodata); data/data2c.o(.rodata); diff --git a/src/data2b.c b/src/data2b.c index 46a158e09b..50cdee3232 100644 --- a/src/data2b.c +++ b/src/data2b.c @@ -1,9 +1,257 @@ #include "global.h" #include "data2.h" #include "graphics.h" +#include "malloc.h" -extern const union AnimCmd gAnimCmd_General_Frame0[]; -extern const union AnimCmd AnimCmd_82FF540[]; +const u16 gUnknown_082FF1D8[] = INCBIN_U16("graphics/link/minigame_digits.gbapal"); +const u8 gUnknown_082FF1F8[] = INCBIN_U8("graphics/link/minigame_digits.4bpp.lz"); +const u8 gUnknown_082FF2B8[] = INCBIN_U8("graphics/link/minigame_digits2.4bpp.lz"); + +const struct SpriteFrameImage gUnknown_082FF3A8[] = +{ + gHeap + 0x8000, 0x800, + gHeap + 0x8800, 0x800, + gHeap + 0x9000, 0x800, + gHeap + 0x9800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF3C8[] = +{ + gHeap + 0xA000, 0x800, + gHeap + 0xA800, 0x800, + gHeap + 0xB000, 0x800, + gHeap + 0xB800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF3E8[] = +{ + gHeap + 0xC000, 0x800, + gHeap + 0xC800, 0x800, + gHeap + 0xD000, 0x800, + gHeap + 0xD800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF408[] = +{ + gHeap + 0xE000, 0x800, + gHeap + 0xE800, 0x800, + gHeap + 0xF000, 0x800, + gHeap + 0xF800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF428[] = +{ + gTrainerBackPic_Brendan, 0x0800, + gTrainerBackPic_Brendan + 0x0800, 0x0800, + gTrainerBackPic_Brendan + 0x1000, 0x0800, + gTrainerBackPic_Brendan + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF448[] = +{ + gTrainerBackPic_May, 0x0800, + gTrainerBackPic_May + 0x0800, 0x0800, + gTrainerBackPic_May + 0x1000, 0x0800, + gTrainerBackPic_May + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF468[] = +{ + gTrainerBackPic_Red, 0x0800, + gTrainerBackPic_Red + 0x0800, 0x0800, + gTrainerBackPic_Red + 0x1000, 0x0800, + gTrainerBackPic_Red + 0x1800, 0x0800, + gTrainerBackPic_Red + 0x2000, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF490[] = +{ + gTrainerBackPic_Leaf, 0x0800, + gTrainerBackPic_Leaf + 0x0800, 0x0800, + gTrainerBackPic_Leaf + 0x1000, 0x0800, + gTrainerBackPic_Leaf + 0x1800, 0x0800, + gTrainerBackPic_Leaf + 0x2000, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF4B8[] = +{ + gTrainerBackPic_RubySapphireBrendan, 0x0800, + gTrainerBackPic_RubySapphireBrendan + 0x0800, 0x0800, + gTrainerBackPic_RubySapphireBrendan + 0x1000, 0x0800, + gTrainerBackPic_RubySapphireBrendan + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF4D8[] = +{ + gTrainerBackPic_RubySapphireMay, 0x0800, + gTrainerBackPic_RubySapphireMay + 0x0800, 0x0800, + gTrainerBackPic_RubySapphireMay + 0x1000, 0x0800, + gTrainerBackPic_RubySapphireMay + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF4F8[] = +{ + gTrainerBackPic_Wally, 0x0800, + gTrainerBackPic_Wally + 0x0800, 0x0800, + gTrainerBackPic_Wally + 0x1000, 0x0800, + gTrainerBackPic_Wally + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF518[] = +{ + gTrainerBackPic_Steven, 0x0800, + gTrainerBackPic_Steven + 0x0800, 0x0800, + gTrainerBackPic_Steven + 0x1000, 0x0800, + gTrainerBackPic_Steven + 0x1800, 0x0800, +}; + +const union AnimCmd gAnimCmd_General_Frame0[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +const union AnimCmd AnimCmd_82FF540[] = +{ + ANIMCMD_FRAME(3, 0), + ANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF548[] = +{ + AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF558[] = +{ + AFFINEANIMCMD_FRAME(0xff00, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF568[] = +{ + AFFINEANIMCMD_FRAME(0x0028, 0x0028, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x0012, 0x0012, 0x00, 0x0c), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF580[] = +{ + AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x12), + AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x0f), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF598[] = +{ + AFFINEANIMCMD_FRAME(0x00a0, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x0004, 0x0000, 0x00, 0x08), + AFFINEANIMCMD_FRAME(0xfffc, 0x0000, 0x00, 0x08), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd gUnknown_082FF5B8[] = +{ + AFFINEANIMCMD_FRAME(0x0002, 0x0002, 0x00, 0x14), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF5C8[] = +{ + AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x14), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF5D8[] = +{ + AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0000), + AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x09), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF5F0[] = +{ + AFFINEANIMCMD_FRAME(0x0004, 0x0004, 0x00, 0x3f), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF600[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd * const gUnknown_082FF618[] = +{ + gUnknown_082FF548, + gUnknown_082FF568, + gUnknown_082FF580, + gUnknown_082FF598, + gUnknown_082FF5B8, + gUnknown_082FF5C8, + gUnknown_082FF5F0, + gUnknown_082FF600, + gUnknown_082FF5D8, +}; + +const union AffineAnimCmd gUnknown_082FF63C[] = +{ + AFFINEANIMCMD_FRAME(0xfffc, 0xfffc, 0x04, 0x3f), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF64C[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF664[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfb, 0x14), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x00, 0x14), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x05, 0x14), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF684[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x09, 0x6e), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd * const gUnknown_082FF694[] = +{ + gUnknown_082FF548, + gUnknown_082FF568, + gUnknown_082FF580, + gUnknown_082FF598, + gUnknown_082FF5B8, + gUnknown_082FF5C8, + gUnknown_082FF63C, + gUnknown_082FF64C, + gUnknown_082FF664, + gUnknown_082FF5D8, + gUnknown_082FF684, +}; + +const union AffineAnimCmd * const gUnknown_082FF6C0[] = +{ + gUnknown_082FF558, + gUnknown_082FF568, + gUnknown_082FF580, + gUnknown_082FF598, + gUnknown_082FF5B8, + gUnknown_082FF5C8, + gUnknown_082FF63C, + gUnknown_082FF64C, + gUnknown_082FF664, + gUnknown_082FF5D8, + gUnknown_082FF684, +}; #include "data/pokemon_graphics/unknown_anims.h" #include "data/pokemon_graphics/front_pic_coordinates.h" From b6ee8823f021a7da98cf84d5fc8a6b8609d1630f Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 02:04:03 +0100 Subject: [PATCH 17/28] Move field_special_scene data to C --- data/field_special_scene.s | 15 --------------- ld_script.txt | 2 +- src/field_special_scene.c | 24 ++++++++++++------------ 3 files changed, 13 insertions(+), 28 deletions(-) delete mode 100644 data/field_special_scene.s diff --git a/data/field_special_scene.s b/data/field_special_scene.s deleted file mode 100644 index 16e5a366df..0000000000 --- a/data/field_special_scene.s +++ /dev/null @@ -1,15 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2, 0 - -gTruckCamera_HorizontalTable:: @ 858E898 - .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, -1, -1, -1, 0 - -gUnknown_0858E8AB:: @ 858E8AB - .byte 0x18, 0xFE - -gUnknown_0858E8AD:: @ 858E8AD - .byte 0x17, 0xFE diff --git a/ld_script.txt b/ld_script.txt index e9f59350e6..678939e64f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -454,7 +454,7 @@ SECTIONS { data/script_pokemon_util_80F87D8.o(.rodata); src/pokemon_size_record.o(.rodata) data/field_effect_misc.o(.rodata); - data/field_special_scene.o(.rodata); + src/field_special_scene.o(.rodata); src/rotating_gate.o(.rodata); data/item_use.o(.rodata); data/battle_anim_80FE840.o(.rodata); diff --git a/src/field_special_scene.c b/src/field_special_scene.c index c6cb0741d4..1cabf63d69 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -1,22 +1,21 @@ #include "global.h" -#include "task.h" -#include "sprite.h" +#include "event_data.h" #include "event_object_movement.h" -#include "constants/songs.h" -#include "sound.h" +#include "main.h" #include "palette.h" #include "script.h" +#include "script_movement.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "constants/songs.h" #include "constants/vars.h" -#include "event_data.h" -#include "main.h" #define SECONDS(value) ((signed) (60.0 * value + 0.5)) extern u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); // should be in field_specials.h extern void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -extern bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8); extern bool32 CountSSTidalStep(u16); -extern bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, u8 *); extern void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); extern void sp13E_warp_to_last_warp(void); extern void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); @@ -38,11 +37,12 @@ extern void pal_fill_black(void); extern void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatileId); extern void DrawWholeMapView(); -extern s8 gTruckCamera_HorizontalTable[]; - -extern u8 gUnknown_0858E8AB[]; -extern u8 gUnknown_0858E8AD[]; +//. rodata +static const s8 gTruckCamera_HorizontalTable[] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, -1, -1, -1, 0}; +const u8 gUnknown_0858E8AB[] = {0x18, 0xFE}; +const u8 gUnknown_0858E8AD[] = {0x17, 0xFE}; +// .text void Task_Truck3(u8); s16 GetTruckCameraBobbingY(int a1) From 3c16d8c59876b2d5d84a3c9d82a7fc5718a32edb Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 02:17:21 +0100 Subject: [PATCH 18/28] Move braille_puzzles data to C --- data/braille_puzzles.s | 16 ------------ ld_script.txt | 2 +- src/braille_puzzles.c | 55 ++++++++++++++++++++++++++++++++++-------- 3 files changed, 46 insertions(+), 27 deletions(-) delete mode 100644 data/braille_puzzles.s diff --git a/data/braille_puzzles.s b/data/braille_puzzles.s deleted file mode 100644 index 55dcb3a26a..0000000000 --- a/data/braille_puzzles.s +++ /dev/null @@ -1,16 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_085EFE74:: @ 85EFE74 - .byte 0x04, 0x15, 0x05, 0x15, 0x06, 0x15, 0x07, 0x15 - .byte 0x08, 0x15, 0x09, 0x15, 0x0a, 0x15, 0x0b, 0x15 - .byte 0x0c, 0x15, 0x0c, 0x16, 0x0c, 0x17, 0x0d, 0x17 - .byte 0x0d, 0x18, 0x0d, 0x19, 0x0d, 0x1a, 0x0d, 0x1b - .byte 0x0c, 0x1b, 0x0c, 0x1c, 0x04, 0x1d, 0x05, 0x1d - .byte 0x06, 0x1d, 0x07, 0x1d, 0x08, 0x1d, 0x09, 0x1d - .byte 0x0a, 0x1d, 0x0b, 0x1d, 0x0c, 0x1d, 0x04, 0x1c - .byte 0x04, 0x1b, 0x03, 0x1b, 0x03, 0x1a, 0x03, 0x19 - .byte 0x03, 0x18, 0x03, 0x17, 0x04, 0x17, 0x04, 0x16 diff --git a/ld_script.txt b/ld_script.txt index 678939e64f..95d546276a 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -512,7 +512,7 @@ SECTIONS { src/berry_tag_screen.o(.rodata); src/mystery_event_menu.o(.rodata); src/save_failed_screen.o(.rodata); - data/braille_puzzles.o(.rodata); + src/braille_puzzles.o(.rodata); src/pokeblock_feed.o(.rodata); src/clear_save_data_screen.o(.rodata); src/intro_credits_graphics.o(.rodata); diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index b7ed1f7135..4765141de4 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -1,19 +1,16 @@ #include "global.h" #include "event_data.h" -#include "constants/songs.h" -#include "sound.h" -#include "script.h" -#include "constants/species.h" -#include "task.h" +#include "field_camera.h" #include "field_effect.h" +#include "script.h" +#include "sound.h" +#include "task.h" #include "constants/flags.h" #include "constants/maps.h" +#include "constants/songs.h" +#include "constants/species.h" extern void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatileId); // fieldmap -extern void DrawWholeMapView(); // field_camera -extern void SetCameraPanningCallback(void ( *callback)()); // field_camera -extern void InstallCameraPanAheadCallback(void); -extern void SetCameraPanning(s16 x, s16 y); extern u8 GetCursorSelectionMonId(void); extern u8 oei_task_add(void); @@ -26,7 +23,45 @@ enum EWRAM_DATA static u8 sBraillePuzzleCallbackFlag = 0; -extern const u8 gUnknown_085EFE74[][2]; +static const u8 gUnknown_085EFE74[][2] = +{ + {0x04, 0x15}, + {0x05, 0x15}, + {0x06, 0x15}, + {0x07, 0x15}, + {0x08, 0x15}, + {0x09, 0x15}, + {0x0a, 0x15}, + {0x0b, 0x15}, + {0x0c, 0x15}, + {0x0c, 0x16}, + {0x0c, 0x17}, + {0x0d, 0x17}, + {0x0d, 0x18}, + {0x0d, 0x19}, + {0x0d, 0x1a}, + {0x0d, 0x1b}, + {0x0c, 0x1b}, + {0x0c, 0x1c}, + {0x04, 0x1d}, + {0x05, 0x1d}, + {0x06, 0x1d}, + {0x07, 0x1d}, + {0x08, 0x1d}, + {0x09, 0x1d}, + {0x0a, 0x1d}, + {0x0b, 0x1d}, + {0x0c, 0x1d}, + {0x04, 0x1c}, + {0x04, 0x1b}, + {0x03, 0x1b}, + {0x03, 0x1a}, + {0x03, 0x19}, + {0x03, 0x18}, + {0x03, 0x17}, + {0x04, 0x17}, + {0x04, 0x16}, +}; void SealedChamberShakingEffect(u8); void sub_8179860(void); From 991151f4613e534f73141035b054ab7914d04a14 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 03:04:19 +0100 Subject: [PATCH 19/28] Move item_use data to C --- data/item_use.s | 21 ---------------- include/party_menu.h | 11 +++++++++ ld_script.txt | 2 +- src/item_use.c | 59 ++++++++++++++++++++++++++------------------ 4 files changed, 47 insertions(+), 46 deletions(-) delete mode 100644 data/item_use.s diff --git a/data/item_use.s b/data/item_use.s deleted file mode 100644 index 6c9affbc80..0000000000 --- a/data/item_use.s +++ /dev/null @@ -1,21 +0,0 @@ - - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - - .align 2 -gUnknown_085920D8:: @ 85920D8 - .4byte sub_81B617C - .4byte CB2_ReturnToField - .4byte NULL - - .align 2 -gUnknown_085920E4:: @ 85920E4 - .byte 0x02, 0x04, 0x01, 0x03 - - .align 2 -gUnknown_085920E8:: @ 85920E8 - .4byte sub_80FE03C - .4byte bag_menu_inits_lists_menu diff --git a/include/party_menu.h b/include/party_menu.h index 02e4812002..b93b78544c 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -58,7 +58,18 @@ void sub_81B8904(u8 arg0, void (*callback)(void)); void OpenPartyMenuInBattle(u8 caseId); u16 ItemIdToBattleMoveId(u16 itemId); u8 sub_81B205C(struct Pokemon* a); +void sub_81B617C(void); u8 sub_81B6D14(u16 a); bool8 hm_add_c3_without_phase_2(void); +extern void dp05_ether(u8, u16, TaskFunc); +extern void dp05_pp_up(u8, u16, TaskFunc); +extern void dp05_rare_candy(u8, u16, TaskFunc); + +extern void sub_81B67C8(u8, u16, TaskFunc); +extern void sub_81B79E8(u8, u16, TaskFunc); +extern void sub_81B6DC4(u8, u16, TaskFunc); +extern void sub_81B7C74(u8, u16, TaskFunc); +extern u16 ItemIdToBattleMoveId(u16); + #endif // GUARD_PARTY_MENU_H diff --git a/ld_script.txt b/ld_script.txt index 95d546276a..6ec697253f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -456,7 +456,7 @@ SECTIONS { data/field_effect_misc.o(.rodata); src/field_special_scene.o(.rodata); src/rotating_gate.o(.rodata); - data/item_use.o(.rodata); + src/item_use.o(.rodata); data/battle_anim_80FE840.o(.rodata); src/bike.o(.rodata); data/easy_chat.o(.rodata); diff --git a/src/item_use.c b/src/item_use.c index ea8206502d..67bdabd879 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -1,15 +1,10 @@ #include "global.h" #include "item_use.h" #include "battle.h" -#include "main.h" +#include "battle_pyramid_bag.h" #include "berry.h" #include "bike.h" #include "coins.h" -#include "constants/bg_event_constants.h" -#include "constants/flags.h" -#include "constants/items.h" -#include "constants/songs.h" -#include "constants/vars.h" #include "data2.h" #include "event_data.h" #include "fieldmap.h" @@ -18,25 +13,31 @@ #include "field_screen.h" #include "field_weather.h" #include "item.h" +#include "item_menu.h" #include "mail.h" +#include "main.h" +#include "menu.h" +#include "menu_helpers.h" #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" +#include "party_menu.h" +#include "pokeblock.h" #include "pokemon.h" #include "rom_818CFC8.h" #include "script.h" #include "sound.h" +#include "strings.h" #include "string_util.h" #include "task.h" #include "text.h" -#include "strings.h" -#include "pokeblock.h" -#include "menu.h" -#include "item_menu.h" -#include "battle_pyramid_bag.h" +#include "constants/bg_event_constants.h" +#include "constants/flags.h" +#include "constants/items.h" +#include "constants/songs.h" +#include "constants/vars.h" extern void(*gUnknown_0203A0F4)(u8 taskId); -extern void(*gUnknown_085920D8[])(void); extern void (*gUnknown_03006328)(u8, u16, TaskFunc); extern void unknown_ItemMenu_Confirm(u8 taskId); extern void sub_81C5B14(u8 taskId); @@ -45,7 +46,6 @@ extern void ItemUseOutOfBattle_TMHM(u8 a); extern void ItemUseOutOfBattle_EvolutionStone(u8 b); extern bool8 IsPlayerFacingSurfableFishableWater(void); extern bool8 sub_81221AC(void); -extern u8 gUnknown_085920E4[]; extern u8 Route102_EventScript_274482[]; extern u8 Route102_EventScript_2744C0[]; extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[]; @@ -53,16 +53,7 @@ extern int sub_80247BC(void); extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection); extern void SetUpItemUseCallback(u8 taskId); extern void ItemUseCB_Medicine(u8, u16, TaskFunc); -extern void sub_81B67C8(u8, u16, TaskFunc); -extern void sub_81B79E8(u8, u16, TaskFunc); -extern void dp05_ether(u8, u16, TaskFunc); -extern void dp05_pp_up(u8, u16, TaskFunc); -extern void dp05_rare_candy(u8, u16, TaskFunc); -extern void sub_81B6DC4(u8, u16, TaskFunc); -extern void sub_81B7C74(u8, u16, TaskFunc); -extern u16 ItemIdToBattleMoveId(u16); -extern void bag_menu_yes_no(u8, u8, void(**)(u8 taskId)); -extern void (*gUnknown_085920E8[])(u8 taskId); +extern void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*); extern void sub_81C5924(void); extern void sub_81C59BC(void); extern void sub_81AB9A8(u8); @@ -92,6 +83,7 @@ void sub_80FDE7C(u8 taskId); void sub_80FDF90(u8 taskId); void task08_0809AD8C(u8 taskId); void sub_80FE024(u8 taskId); +void sub_80FE03C(u8 taskId); void sub_80FE124(u8 taskId); void sub_80FE164(u8 taskId); @@ -108,6 +100,25 @@ void sub_80FDBEC(void); bool8 sub_80FDE2C(void); void ItemUseOutOfBattle_CannotUse(u8 taskId); +// .rodata + +static const MainCallback gUnknown_085920D8[] = +{ + sub_81B617C, + CB2_ReturnToField, + NULL, +}; + +static const u8 gUnknown_085920E4[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST}; + +static const struct YesNoFuncTable gUnknown_085920E8 = +{ + .yesFunc = sub_80FE03C, + .noFunc = bag_menu_inits_lists_menu, +}; + +// .text + void SetUpItemUseCallback(u8 taskId) { u8 type; @@ -784,7 +795,7 @@ void task08_0809AD8C(u8 taskId) void sub_80FE024(u8 taskId) { - bag_menu_yes_no(taskId, 6, gUnknown_085920E8); + bag_menu_yes_no(taskId, 6, &gUnknown_085920E8); } void sub_80FE03C(u8 taskId) From ba125b23fd7a51675c27d5d23e8037e7c9dfdeb7 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 11 Sep 2018 17:18:10 -0500 Subject: [PATCH 20/28] Remove transparency from event object spritesheets --- Makefile | 2 +- event_obj_graphics_makefile_rules.mk | 618 ---------------- .../event_objects/pics/berry_trees/aguav.png | Bin 638 -> 522 bytes .../event_objects/pics/berry_trees/aspear.png | Bin 712 -> 596 bytes .../event_objects/pics/berry_trees/cheri.png | Bin 783 -> 667 bytes .../event_objects/pics/berry_trees/chesto.png | Bin 816 -> 700 bytes .../event_objects/pics/berry_trees/cornn.png | Bin 709 -> 593 bytes .../pics/berry_trees/dirt_pile.png | Bin 189 -> 176 bytes .../event_objects/pics/berry_trees/durin.png | Bin 680 -> 564 bytes .../event_objects/pics/berry_trees/figy.png | Bin 708 -> 592 bytes .../event_objects/pics/berry_trees/grepa.png | Bin 611 -> 495 bytes .../event_objects/pics/berry_trees/hondew.png | Bin 620 -> 504 bytes .../event_objects/pics/berry_trees/iapapa.png | Bin 566 -> 450 bytes .../event_objects/pics/berry_trees/kelpsy.png | Bin 580 -> 464 bytes .../event_objects/pics/berry_trees/lansat.png | Bin 626 -> 510 bytes .../event_objects/pics/berry_trees/leppa.png | Bin 691 -> 575 bytes .../event_objects/pics/berry_trees/liechi.png | Bin 681 -> 565 bytes .../event_objects/pics/berry_trees/lum.png | Bin 724 -> 608 bytes .../event_objects/pics/berry_trees/mago.png | Bin 717 -> 601 bytes .../event_objects/pics/berry_trees/nomel.png | Bin 605 -> 489 bytes .../event_objects/pics/berry_trees/oran.png | Bin 755 -> 639 bytes .../event_objects/pics/berry_trees/pamtre.png | Bin 636 -> 520 bytes .../event_objects/pics/berry_trees/pecha.png | Bin 680 -> 564 bytes .../event_objects/pics/berry_trees/persim.png | Bin 654 -> 538 bytes .../event_objects/pics/berry_trees/pomeg.png | Bin 588 -> 472 bytes .../event_objects/pics/berry_trees/rabuta.png | Bin 657 -> 541 bytes .../event_objects/pics/berry_trees/rawst.png | Bin 583 -> 467 bytes .../event_objects/pics/berry_trees/razz.png | Bin 766 -> 650 bytes .../event_objects/pics/berry_trees/sitrus.png | Bin 709 -> 593 bytes .../event_objects/pics/berry_trees/spelon.png | Bin 581 -> 465 bytes .../event_objects/pics/berry_trees/sprout.png | Bin 337 -> 221 bytes .../event_objects/pics/berry_trees/tamato.png | Bin 645 -> 529 bytes .../event_objects/pics/berry_trees/wepear.png | Bin 689 -> 573 bytes .../event_objects/pics/berry_trees/wiki.png | Bin 640 -> 524 bytes .../pics/cushions/ball_cushion.png | Bin 215 -> 202 bytes .../pics/cushions/diamond_cushion.png | Bin 216 -> 203 bytes .../pics/cushions/fire_cushion.png | Bin 209 -> 196 bytes .../pics/cushions/grass_cushion.png | Bin 208 -> 195 bytes .../pics/cushions/kiss_cushion.png | Bin 213 -> 200 bytes .../pics/cushions/pika_cushion.png | Bin 199 -> 186 bytes .../pics/cushions/round_cushion.png | Bin 214 -> 201 bytes .../pics/cushions/spin_cushion.png | Bin 224 -> 211 bytes .../pics/cushions/water_cushion.png | Bin 205 -> 192 bytes .../pics/cushions/zigzag_cushion.png | Bin 226 -> 213 bytes .../event_objects/pics/dolls/azurill_doll.png | Bin 215 -> 202 bytes .../event_objects/pics/dolls/baltoy_doll.png | Bin 216 -> 203 bytes .../pics/dolls/big_blastoise_doll.png | Bin 425 -> 412 bytes .../pics/dolls/big_charizard_doll.png | Bin 398 -> 385 bytes .../pics/dolls/big_lapras_doll.png | Bin 380 -> 367 bytes .../pics/dolls/big_regice_doll.png | Bin 380 -> 367 bytes .../pics/dolls/big_regirock_doll.png | Bin 390 -> 377 bytes .../pics/dolls/big_registeel_doll.png | Bin 389 -> 376 bytes .../pics/dolls/big_rhydon_doll.png | Bin 393 -> 380 bytes .../pics/dolls/big_snorlax_doll.png | Bin 379 -> 366 bytes .../pics/dolls/big_venusaur_doll.png | Bin 463 -> 450 bytes .../pics/dolls/big_wailmer_doll.png | Bin 357 -> 344 bytes .../pics/dolls/chikorita_doll.png | Bin 213 -> 200 bytes .../pics/dolls/clefairy_doll.png | Bin 227 -> 214 bytes .../pics/dolls/cyndaquil_doll.png | Bin 232 -> 219 bytes .../event_objects/pics/dolls/ditto_doll.png | Bin 205 -> 192 bytes .../event_objects/pics/dolls/duskull_doll.png | Bin 228 -> 215 bytes .../event_objects/pics/dolls/gulpin_doll.png | Bin 215 -> 202 bytes .../pics/dolls/jigglypuff_doll.png | Bin 229 -> 216 bytes .../event_objects/pics/dolls/kecleon_doll.png | Bin 236 -> 223 bytes .../event_objects/pics/dolls/lotad_doll.png | Bin 236 -> 223 bytes .../event_objects/pics/dolls/marill_doll.png | Bin 225 -> 212 bytes .../event_objects/pics/dolls/meowth_doll.png | Bin 248 -> 235 bytes .../event_objects/pics/dolls/mudkip_doll.png | Bin 225 -> 212 bytes .../event_objects/pics/dolls/pichu_doll.png | Bin 230 -> 217 bytes .../event_objects/pics/dolls/pikachu_doll.png | Bin 220 -> 207 bytes .../event_objects/pics/dolls/seedot_doll.png | Bin 258 -> 245 bytes .../event_objects/pics/dolls/skitty_doll.png | Bin 222 -> 209 bytes .../pics/dolls/smoochum_doll.png | Bin 236 -> 223 bytes .../event_objects/pics/dolls/swablu_doll.png | Bin 223 -> 210 bytes .../event_objects/pics/dolls/togepi_doll.png | Bin 224 -> 211 bytes .../event_objects/pics/dolls/torchic_doll.png | Bin 239 -> 226 bytes .../pics/dolls/totodile_doll.png | Bin 230 -> 217 bytes .../event_objects/pics/dolls/treecko_doll.png | Bin 233 -> 220 bytes .../pics/dolls/unused_magnemite_doll.png | Bin 223 -> 210 bytes .../pics/dolls/unused_natu_doll.png | Bin 216 -> 203 bytes .../pics/dolls/unused_pikachu_doll.png | Bin 231 -> 218 bytes .../pics/dolls/unused_porygon2_doll.png | Bin 252 -> 239 bytes .../pics/dolls/unused_squirtle_doll.png | Bin 245 -> 232 bytes .../pics/dolls/unused_wooper_doll.png | Bin 231 -> 218 bytes .../event_objects/pics/dolls/wynaut_doll.png | Bin 214 -> 201 bytes graphics/event_objects/pics/effects/arrow.png | Bin 430 -> 314 bytes graphics/event_objects/pics/effects/ash.png | Bin 400 -> 284 bytes .../effects/berry_tree_growth_sparkle.png | Bin 0 -> 205 bytes .../effects/berry_tree_growth_sparkle/0.png | Bin 132 -> 0 bytes .../effects/berry_tree_growth_sparkle/1.png | Bin 141 -> 0 bytes .../effects/berry_tree_growth_sparkle/2.png | Bin 151 -> 0 bytes .../effects/berry_tree_growth_sparkle/3.png | Bin 153 -> 0 bytes .../effects/berry_tree_growth_sparkle/4.png | Bin 145 -> 0 bytes .../effects/berry_tree_growth_sparkle/5.png | Bin 134 -> 0 bytes .../berry_tree_growth_sparkle.png | Bin 308 -> 0 bytes .../pics/effects/bike_hop_big_splash.png | Bin 389 -> 273 bytes .../pics/effects/bike_hop_small_splash.png | Bin 313 -> 197 bytes .../pics/effects/bike_hop_tall_grass.png | Bin 0 -> 205 bytes .../pics/effects/bike_hop_tall_grass/0.png | Bin 171 -> 0 bytes .../pics/effects/bike_hop_tall_grass/1.png | Bin 169 -> 0 bytes .../pics/effects/bike_hop_tall_grass/2.png | Bin 153 -> 0 bytes .../pics/effects/bike_hop_tall_grass/3.png | Bin 151 -> 0 bytes .../bike_hop_tall_grass.png | Bin 321 -> 0 bytes .../pics/effects/bike_tire_tracks.png | Bin 0 -> 179 bytes .../pics/effects/bike_tire_tracks/0.png | Bin 165 -> 0 bytes .../pics/effects/bike_tire_tracks/1.png | Bin 153 -> 0 bytes .../pics/effects/bike_tire_tracks/2.png | Bin 149 -> 0 bytes .../pics/effects/bike_tire_tracks/3.png | Bin 172 -> 0 bytes .../bike_tire_tracks/bike_tire_tracks.png | Bin 295 -> 0 bytes graphics/event_objects/pics/effects/bird.png | Bin 288 -> 275 bytes .../event_objects/pics/effects/bubbles.png | Bin 664 -> 548 bytes .../pics/effects/deep_sand_footprints.png | Bin 0 -> 196 bytes .../pics/effects/deep_sand_footprints/0.png | Bin 182 -> 0 bytes .../pics/effects/deep_sand_footprints/1.png | Bin 174 -> 0 bytes .../deep_sand_footprints.png | Bin 312 -> 0 bytes .../pics/effects/ground_impact_dust.png | Bin 0 -> 197 bytes .../pics/effects/ground_impact_dust/0.png | Bin 174 -> 0 bytes .../pics/effects/ground_impact_dust/1.png | Bin 165 -> 0 bytes .../pics/effects/ground_impact_dust/2.png | Bin 158 -> 0 bytes .../ground_impact_dust/ground_impact_dust.png | Bin 313 -> 0 bytes .../pics/effects/hot_springs_water.png | Bin 150 -> 137 bytes .../pics/effects/jump_out_of_ash.png | Bin 462 -> 346 bytes .../event_objects/pics/effects/long_grass.png | Bin 0 -> 400 bytes .../pics/effects/long_grass/0.png | Bin 236 -> 0 bytes .../pics/effects/long_grass/1.png | Bin 230 -> 0 bytes .../pics/effects/long_grass/2.png | Bin 231 -> 0 bytes .../pics/effects/long_grass/3.png | Bin 236 -> 0 bytes .../pics/effects/long_grass/long_grass.png | Bin 516 -> 0 bytes .../pics/effects/mountain_disguise.png | Bin 523 -> 407 bytes .../event_objects/pics/effects/ripple.png | Bin 349 -> 233 bytes .../effects/sand_disguise_placeholder.png | Bin 442 -> 326 bytes .../pics/effects/sand_footprints.png | Bin 0 -> 175 bytes .../pics/effects/sand_footprints/0.png | Bin 172 -> 0 bytes .../pics/effects/sand_footprints/1.png | Bin 159 -> 0 bytes .../sand_footprints/sand_footprints.png | Bin 291 -> 0 bytes .../pics/effects/shadow_extra_large.png | Bin 165 -> 152 bytes .../pics/effects/shadow_large.png | Bin 157 -> 144 bytes .../pics/effects/shadow_medium.png | Bin 156 -> 143 bytes .../pics/effects/shadow_small.png | Bin 156 -> 143 bytes .../pics/effects/short_grass.png | Bin 274 -> 158 bytes .../event_objects/pics/effects/splash.png | Bin 281 -> 165 bytes .../event_objects/pics/effects/surf_blob.png | Bin 477 -> 361 bytes .../event_objects/pics/effects/tall_grass.png | Bin 465 -> 349 bytes .../pics/effects/tree_disguise.png | Bin 561 -> 445 bytes .../event_objects/pics/effects/unknown_16.png | Bin 0 -> 567 bytes .../pics/effects/unknown_16/0.png | Bin 244 -> 0 bytes .../pics/effects/unknown_16/1.png | Bin 241 -> 0 bytes .../pics/effects/unknown_16/2.png | Bin 246 -> 0 bytes .../pics/effects/unknown_16/3.png | Bin 249 -> 0 bytes .../pics/effects/unknown_16/4.png | Bin 250 -> 0 bytes .../pics/effects/unknown_16/5.png | Bin 226 -> 0 bytes .../event_objects/pics/effects/unknown_17.png | Bin 663 -> 547 bytes .../event_objects/pics/effects/unknown_18.png | Bin 0 -> 344 bytes .../pics/effects/unknown_18/0.png | Bin 244 -> 0 bytes .../pics/effects/unknown_18/1.png | Bin 245 -> 0 bytes .../pics/effects/unknown_18/2.png | Bin 245 -> 0 bytes .../pics/effects/unknown_18/3.png | Bin 244 -> 0 bytes .../pics/effects/unknown_18/unknown_18.png | Bin 460 -> 0 bytes .../event_objects/pics/effects/unknown_19.png | Bin 0 -> 272 bytes .../pics/effects/unknown_19/0.png | Bin 186 -> 0 bytes .../pics/effects/unknown_19/1.png | Bin 204 -> 0 bytes .../pics/effects/unknown_19/2.png | Bin 211 -> 0 bytes .../pics/effects/unknown_19/3.png | Bin 203 -> 0 bytes .../pics/effects/unknown_19/unknown_19.png | Bin 388 -> 0 bytes .../event_objects/pics/effects/unknown_20.png | Bin 0 -> 319 bytes .../pics/effects/unknown_20/0.png | Bin 154 -> 0 bytes .../pics/effects/unknown_20/1.png | Bin 171 -> 0 bytes .../pics/effects/unknown_20/2.png | Bin 197 -> 0 bytes .../pics/effects/unknown_20/3.png | Bin 211 -> 0 bytes .../pics/effects/unknown_20/4.png | Bin 206 -> 0 bytes .../pics/effects/unknown_20/unknown_20.png | Bin 435 -> 0 bytes .../event_objects/pics/effects/unknown_29.png | Bin 0 -> 197 bytes .../pics/effects/unknown_29/0.png | Bin 164 -> 0 bytes .../pics/effects/unknown_29/1.png | Bin 176 -> 0 bytes .../pics/effects/unknown_29/2.png | Bin 171 -> 0 bytes .../pics/effects/unknown_29/unknown_29.png | Bin 313 -> 0 bytes .../event_objects/pics/effects/unknown_33.png | Bin 0 -> 406 bytes .../pics/effects/unknown_33/0.png | Bin 185 -> 0 bytes .../pics/effects/unknown_33/1.png | Bin 224 -> 0 bytes .../pics/effects/unknown_33/2.png | Bin 232 -> 0 bytes .../pics/effects/unknown_33/3.png | Bin 223 -> 0 bytes .../pics/effects/unknown_33/4.png | Bin 214 -> 0 bytes .../pics/effects/unknown_33/unknown_33.png | Bin 522 -> 0 bytes .../event_objects/pics/effects/unknown_35.png | Bin 0 -> 174 bytes .../pics/effects/unknown_35/0.png | Bin 157 -> 0 bytes .../pics/effects/unknown_35/1.png | Bin 175 -> 0 bytes .../pics/effects/unknown_35/unknown_35.png | Bin 290 -> 0 bytes .../pics/effects/unknown_4F7E38/0.png | Bin 175 -> 0 bytes .../pics/effects/unused_grass.png | Bin 0 -> 389 bytes .../pics/effects/unused_grass/0.png | Bin 231 -> 0 bytes .../pics/effects/unused_grass/1.png | Bin 228 -> 0 bytes .../pics/effects/unused_grass/2.png | Bin 230 -> 0 bytes .../pics/effects/unused_grass/3.png | Bin 232 -> 0 bytes .../effects/unused_grass/unused_grass.png | Bin 492 -> 0 bytes .../event_objects/pics/misc/birchs_bag.png | Bin 234 -> 221 bytes .../pics/misc/birth_island_stone.png | Bin 224 -> 211 bytes .../pics/misc/breakable_rock.png | Bin 497 -> 381 bytes .../event_objects/pics/misc/cable_car.png | Bin 569 -> 556 bytes .../event_objects/pics/misc/cuttable_tree.png | Bin 460 -> 344 bytes graphics/event_objects/pics/misc/fossil.png | Bin 261 -> 248 bytes .../event_objects/pics/misc/item_ball.png | Bin 205 -> 192 bytes .../event_objects/pics/misc/moving_box.png | Bin 206 -> 193 bytes .../pics/misc/mr_brineys_boat.png | Bin 736 -> 620 bytes .../pics/misc/pushable_boulder.png | Bin 224 -> 211 bytes graphics/event_objects/pics/misc/ss_tidal.png | Bin 706 -> 693 bytes graphics/event_objects/pics/misc/statue.png | Bin 257 -> 244 bytes .../pics/misc/submarine_shadow.png | Bin 256 -> 243 bytes graphics/event_objects/pics/misc/truck.png | Bin 436 -> 423 bytes graphics/event_objects/pics/people/artist.png | Bin 790 -> 674 bytes graphics/event_objects/pics/people/beauty.png | Bin 828 -> 712 bytes .../event_objects/pics/people/black_belt.png | Bin 873 -> 757 bytes graphics/event_objects/pics/people/boy_1.png | Bin 790 -> 674 bytes graphics/event_objects/pics/people/boy_2.png | Bin 850 -> 734 bytes graphics/event_objects/pics/people/boy_3.png | Bin 807 -> 691 bytes graphics/event_objects/pics/people/boy_4.png | Bin 875 -> 759 bytes graphics/event_objects/pics/people/boy_5.png | Bin 517 -> 401 bytes .../pics/people/brendan/acro_bike.png | Bin 2581 -> 2465 bytes .../pics/people/brendan/decorating.png | Bin 283 -> 270 bytes .../pics/people/brendan/field_move.png | Bin 750 -> 634 bytes .../pics/people/brendan/fishing.png | Bin 1586 -> 1470 bytes .../pics/people/brendan/mach_bike.png | Bin 1165 -> 1049 bytes .../pics/people/brendan/running.png | Bin 909 -> 793 bytes .../pics/people/brendan/surfing.png | Bin 884 -> 768 bytes .../pics/people/brendan/underwater.png | Bin 650 -> 534 bytes .../pics/people/brendan/walking.png | Bin 912 -> 796 bytes .../pics/people/brendan/watering.png | Bin 757 -> 641 bytes .../event_objects/pics/people/bug_catcher.png | Bin 806 -> 690 bytes .../event_objects/pics/people/cameraman.png | Bin 787 -> 671 bytes graphics/event_objects/pics/people/camper.png | Bin 809 -> 693 bytes .../pics/people/contest_old_man.png | Bin 872 -> 756 bytes graphics/event_objects/pics/people/cook.png | Bin 582 -> 466 bytes .../pics/people/cycling_triathlete_f.png | Bin 1176 -> 1060 bytes .../pics/people/cycling_triathlete_m.png | Bin 1173 -> 1057 bytes .../pics/people/elite_four/drake.png | Bin 574 -> 458 bytes .../pics/people/elite_four/glacia.png | Bin 572 -> 456 bytes .../pics/people/elite_four/phoebe.png | Bin 576 -> 460 bytes .../pics/people/elite_four/sidney.png | Bin 558 -> 442 bytes .../event_objects/pics/people/fat_man.png | Bin 784 -> 668 bytes .../event_objects/pics/people/fisherman.png | Bin 887 -> 771 bytes .../pics/people/frontier_brains/anabel.png | Bin 825 -> 709 bytes .../pics/people/frontier_brains/brandon.png | Bin 833 -> 717 bytes .../pics/people/frontier_brains/greta.png | Bin 853 -> 737 bytes .../pics/people/frontier_brains/lucy.png | Bin 796 -> 680 bytes .../pics/people/frontier_brains/noland.png | Bin 818 -> 702 bytes .../pics/people/frontier_brains/spenser.png | Bin 779 -> 663 bytes .../pics/people/frontier_brains/tucker.png | Bin 901 -> 785 bytes .../event_objects/pics/people/gentleman.png | Bin 861 -> 745 bytes graphics/event_objects/pics/people/girl_1.png | Bin 825 -> 709 bytes graphics/event_objects/pics/people/girl_2.png | Bin 826 -> 710 bytes graphics/event_objects/pics/people/girl_3.png | Bin 896 -> 780 bytes .../pics/people/gym_leaders/brawly.png | Bin 566 -> 450 bytes .../pics/people/gym_leaders/flannery.png | Bin 605 -> 489 bytes .../pics/people/gym_leaders/juan.png | Bin 792 -> 676 bytes .../pics/people/gym_leaders/liza.png | Bin 542 -> 426 bytes .../pics/people/gym_leaders/norman.png | Bin 826 -> 710 bytes .../pics/people/gym_leaders/roxanne.png | Bin 588 -> 472 bytes .../pics/people/gym_leaders/tate.png | Bin 540 -> 424 bytes .../pics/people/gym_leaders/wattson.png | Bin 599 -> 483 bytes .../pics/people/gym_leaders/winona.png | Bin 577 -> 461 bytes .../event_objects/pics/people/hex_maniac.png | Bin 790 -> 674 bytes graphics/event_objects/pics/people/hiker.png | Bin 821 -> 705 bytes .../pics/people/hot_springs_old_woman.png | Bin 509 -> 393 bytes graphics/event_objects/pics/people/lass.png | Bin 832 -> 716 bytes graphics/event_objects/pics/people/leaf.png | Bin 893 -> 777 bytes .../pics/people/little_boy_1.png | Bin 562 -> 446 bytes .../pics/people/little_boy_2.png | Bin 558 -> 442 bytes .../pics/people/little_girl_1.png | Bin 612 -> 496 bytes .../pics/people/little_girl_2.png | Bin 594 -> 478 bytes graphics/event_objects/pics/people/man_1.png | Bin 843 -> 727 bytes graphics/event_objects/pics/people/man_2.png | Bin 832 -> 716 bytes graphics/event_objects/pics/people/man_3.png | Bin 900 -> 784 bytes graphics/event_objects/pics/people/man_4.png | Bin 858 -> 742 bytes graphics/event_objects/pics/people/man_5.png | Bin 820 -> 704 bytes graphics/event_objects/pics/people/man_6.png | Bin 857 -> 741 bytes graphics/event_objects/pics/people/man_7.png | Bin 832 -> 716 bytes graphics/event_objects/pics/people/maniac.png | Bin 780 -> 664 bytes .../pics/people/mart_employee.png | Bin 891 -> 775 bytes .../pics/people/mauville_old_man_1.png | Bin 836 -> 720 bytes .../pics/people/mauville_old_man_2.png | Bin 839 -> 723 bytes .../pics/people/may/acro_bike.png | Bin 2629 -> 2513 bytes .../pics/people/may/decorating.png | Bin 279 -> 266 bytes .../pics/people/may/field_move.png | Bin 818 -> 702 bytes .../event_objects/pics/people/may/fishing.png | Bin 1640 -> 1524 bytes .../pics/people/may/mach_bike.png | Bin 1222 -> 1106 bytes .../event_objects/pics/people/may/running.png | Bin 964 -> 848 bytes .../event_objects/pics/people/may/surfing.png | Bin 874 -> 758 bytes .../pics/people/may/underwater.png | Bin 688 -> 572 bytes .../event_objects/pics/people/may/walking.png | Bin 887 -> 771 bytes .../pics/people/may/watering.png | Bin 775 -> 659 bytes graphics/event_objects/pics/people/mom.png | Bin 807 -> 691 bytes .../pics/people/mystery_event_deliveryman.png | Bin 530 -> 414 bytes graphics/event_objects/pics/people/nurse.png | Bin 711 -> 595 bytes .../event_objects/pics/people/old_man_1.png | Bin 773 -> 657 bytes .../event_objects/pics/people/old_man_2.png | Bin 585 -> 469 bytes .../event_objects/pics/people/old_woman_1.png | Bin 718 -> 602 bytes .../event_objects/pics/people/old_woman_2.png | Bin 754 -> 638 bytes .../event_objects/pics/people/picnicker.png | Bin 874 -> 758 bytes .../event_objects/pics/people/prof_birch.png | Bin 886 -> 770 bytes .../event_objects/pics/people/psychic_m.png | Bin 850 -> 734 bytes .../pics/people/quinty_plump.png | Bin 1430 -> 1314 bytes graphics/event_objects/pics/people/red.png | Bin 847 -> 731 bytes .../event_objects/pics/people/reporter_f.png | Bin 780 -> 664 bytes .../event_objects/pics/people/reporter_m.png | Bin 840 -> 724 bytes .../pics/people/rooftop_sale_woman.png | Bin 866 -> 750 bytes .../pics/people/rs_little_boy.png | Bin 565 -> 449 bytes .../people/ruby_sapphire_brendan/running.png | Bin 899 -> 783 bytes .../people/ruby_sapphire_brendan/walking.png | Bin 899 -> 783 bytes .../pics/people/ruby_sapphire_may/running.png | Bin 962 -> 846 bytes .../pics/people/ruby_sapphire_may/walking.png | Bin 861 -> 745 bytes .../pics/people/running_triathlete_f.png | Bin 854 -> 738 bytes .../pics/people/running_triathlete_m.png | Bin 877 -> 761 bytes graphics/event_objects/pics/people/sailor.png | Bin 780 -> 664 bytes .../pics/people/school_kid_m.png | Bin 826 -> 710 bytes .../event_objects/pics/people/scientist_1.png | Bin 799 -> 683 bytes .../event_objects/pics/people/scientist_2.png | Bin 804 -> 688 bytes graphics/event_objects/pics/people/scott.png | Bin 892 -> 776 bytes graphics/event_objects/pics/people/steven.png | Bin 820 -> 704 bytes .../event_objects/pics/people/swimmer_f.png | Bin 656 -> 540 bytes .../event_objects/pics/people/swimmer_m.png | Bin 649 -> 533 bytes graphics/event_objects/pics/people/teala.png | Bin 757 -> 641 bytes .../pics/people/team_aqua/aqua_member_f.png | Bin 814 -> 698 bytes .../pics/people/team_aqua/aqua_member_m.png | Bin 851 -> 735 bytes .../pics/people/team_aqua/archie.png | Bin 692 -> 576 bytes .../pics/people/team_magma/magma_member_f.png | Bin 803 -> 687 bytes .../pics/people/team_magma/magma_member_m.png | Bin 819 -> 703 bytes .../pics/people/team_magma/maxie.png | Bin 748 -> 632 bytes .../event_objects/pics/people/tuber_f.png | Bin 602 -> 486 bytes .../event_objects/pics/people/tuber_m.png | Bin 526 -> 410 bytes .../pics/people/tuber_m_swimming.png | Bin 530 -> 414 bytes .../pics/people/union_room_attendant.png | Bin 566 -> 450 bytes .../pics/people/unused_woman.png | Bin 826 -> 710 bytes .../event_objects/pics/people/wallace.png | Bin 911 -> 795 bytes graphics/event_objects/pics/people/wally.png | Bin 816 -> 700 bytes .../event_objects/pics/people/woman_1.png | Bin 883 -> 767 bytes .../event_objects/pics/people/woman_2.png | Bin 872 -> 756 bytes .../event_objects/pics/people/woman_3.png | Bin 890 -> 774 bytes .../event_objects/pics/people/woman_4.png | Bin 817 -> 701 bytes .../event_objects/pics/people/woman_5.png | Bin 852 -> 736 bytes .../event_objects/pics/people/woman_6.png | Bin 825 -> 709 bytes .../event_objects/pics/people/woman_7.png | Bin 946 -> 830 bytes .../event_objects/pics/people/youngster.png | Bin 790 -> 674 bytes .../event_objects/pics/pokemon/azumarill.png | Bin 441 -> 325 bytes .../event_objects/pics/pokemon/azurill.png | Bin 424 -> 308 bytes .../event_objects/pics/pokemon/deoxys.png | Bin 663 -> 547 bytes .../event_objects/pics/pokemon/dusclops.png | Bin 756 -> 640 bytes .../pics/pokemon/enemy_zigzagoon.png | Bin 842 -> 726 bytes .../event_objects/pics/pokemon/groudon.png | Bin 1168 -> 1052 bytes graphics/event_objects/pics/pokemon/ho_oh.png | Bin 645 -> 529 bytes .../event_objects/pics/pokemon/kecleon.png | Bin 461 -> 345 bytes .../event_objects/pics/pokemon/kirlia.png | Bin 585 -> 469 bytes .../event_objects/pics/pokemon/kyogre.png | Bin 1153 -> 1037 bytes .../pics/pokemon/latias_latios.png | Bin 689 -> 573 bytes graphics/event_objects/pics/pokemon/lugia.png | Bin 526 -> 410 bytes graphics/event_objects/pics/pokemon/mew.png | Bin 917 -> 801 bytes .../event_objects/pics/pokemon/pikachu.png | Bin 451 -> 335 bytes .../event_objects/pics/pokemon/poochyena.png | Bin 790 -> 674 bytes .../event_objects/pics/pokemon/rayquaza.png | Bin 1507 -> 1391 bytes .../pics/pokemon/rayquaza_still.png | Bin 538 -> 525 bytes graphics/event_objects/pics/pokemon/regi.png | Bin 386 -> 373 bytes .../event_objects/pics/pokemon/skitty.png | Bin 448 -> 332 bytes .../event_objects/pics/pokemon/sudowoodo.png | Bin 451 -> 335 bytes .../event_objects/pics/pokemon/vigoroth.png | Bin 1096 -> 980 bytes .../event_objects/pics/pokemon/wingull.png | Bin 470 -> 354 bytes .../event_objects/pics/pokemon/zigzagoon.png | Bin 415 -> 299 bytes spritesheet_rules.mk | 663 ++++++++++++++++++ .../field_event_obj/event_object_graphics.h | 74 +- .../field_event_obj/field_effect_objects.h | 108 +-- 367 files changed, 733 insertions(+), 732 deletions(-) delete mode 100644 event_obj_graphics_makefile_rules.mk create mode 100644 graphics/event_objects/pics/effects/berry_tree_growth_sparkle.png delete mode 100644 graphics/event_objects/pics/effects/berry_tree_growth_sparkle/0.png delete mode 100644 graphics/event_objects/pics/effects/berry_tree_growth_sparkle/1.png delete mode 100644 graphics/event_objects/pics/effects/berry_tree_growth_sparkle/2.png delete mode 100644 graphics/event_objects/pics/effects/berry_tree_growth_sparkle/3.png delete mode 100644 graphics/event_objects/pics/effects/berry_tree_growth_sparkle/4.png delete mode 100644 graphics/event_objects/pics/effects/berry_tree_growth_sparkle/5.png delete mode 100644 graphics/event_objects/pics/effects/berry_tree_growth_sparkle/berry_tree_growth_sparkle.png create mode 100755 graphics/event_objects/pics/effects/bike_hop_tall_grass.png delete mode 100644 graphics/event_objects/pics/effects/bike_hop_tall_grass/0.png delete mode 100644 graphics/event_objects/pics/effects/bike_hop_tall_grass/1.png delete mode 100644 graphics/event_objects/pics/effects/bike_hop_tall_grass/2.png delete mode 100644 graphics/event_objects/pics/effects/bike_hop_tall_grass/3.png delete mode 100644 graphics/event_objects/pics/effects/bike_hop_tall_grass/bike_hop_tall_grass.png create mode 100644 graphics/event_objects/pics/effects/bike_tire_tracks.png delete mode 100644 graphics/event_objects/pics/effects/bike_tire_tracks/0.png delete mode 100644 graphics/event_objects/pics/effects/bike_tire_tracks/1.png delete mode 100644 graphics/event_objects/pics/effects/bike_tire_tracks/2.png delete mode 100644 graphics/event_objects/pics/effects/bike_tire_tracks/3.png delete mode 100644 graphics/event_objects/pics/effects/bike_tire_tracks/bike_tire_tracks.png create mode 100644 graphics/event_objects/pics/effects/deep_sand_footprints.png delete mode 100644 graphics/event_objects/pics/effects/deep_sand_footprints/0.png delete mode 100644 graphics/event_objects/pics/effects/deep_sand_footprints/1.png delete mode 100644 graphics/event_objects/pics/effects/deep_sand_footprints/deep_sand_footprints.png create mode 100644 graphics/event_objects/pics/effects/ground_impact_dust.png delete mode 100644 graphics/event_objects/pics/effects/ground_impact_dust/0.png delete mode 100644 graphics/event_objects/pics/effects/ground_impact_dust/1.png delete mode 100644 graphics/event_objects/pics/effects/ground_impact_dust/2.png delete mode 100644 graphics/event_objects/pics/effects/ground_impact_dust/ground_impact_dust.png create mode 100644 graphics/event_objects/pics/effects/long_grass.png delete mode 100644 graphics/event_objects/pics/effects/long_grass/0.png delete mode 100644 graphics/event_objects/pics/effects/long_grass/1.png delete mode 100644 graphics/event_objects/pics/effects/long_grass/2.png delete mode 100644 graphics/event_objects/pics/effects/long_grass/3.png delete mode 100644 graphics/event_objects/pics/effects/long_grass/long_grass.png mode change 100644 => 100755 graphics/event_objects/pics/effects/sand_disguise_placeholder.png create mode 100644 graphics/event_objects/pics/effects/sand_footprints.png delete mode 100644 graphics/event_objects/pics/effects/sand_footprints/0.png delete mode 100644 graphics/event_objects/pics/effects/sand_footprints/1.png delete mode 100644 graphics/event_objects/pics/effects/sand_footprints/sand_footprints.png create mode 100755 graphics/event_objects/pics/effects/unknown_16.png delete mode 100644 graphics/event_objects/pics/effects/unknown_16/0.png delete mode 100644 graphics/event_objects/pics/effects/unknown_16/1.png delete mode 100644 graphics/event_objects/pics/effects/unknown_16/2.png delete mode 100644 graphics/event_objects/pics/effects/unknown_16/3.png delete mode 100644 graphics/event_objects/pics/effects/unknown_16/4.png delete mode 100644 graphics/event_objects/pics/effects/unknown_16/5.png create mode 100644 graphics/event_objects/pics/effects/unknown_18.png delete mode 100644 graphics/event_objects/pics/effects/unknown_18/0.png delete mode 100644 graphics/event_objects/pics/effects/unknown_18/1.png delete mode 100644 graphics/event_objects/pics/effects/unknown_18/2.png delete mode 100644 graphics/event_objects/pics/effects/unknown_18/3.png delete mode 100644 graphics/event_objects/pics/effects/unknown_18/unknown_18.png create mode 100644 graphics/event_objects/pics/effects/unknown_19.png delete mode 100644 graphics/event_objects/pics/effects/unknown_19/0.png delete mode 100644 graphics/event_objects/pics/effects/unknown_19/1.png delete mode 100644 graphics/event_objects/pics/effects/unknown_19/2.png delete mode 100644 graphics/event_objects/pics/effects/unknown_19/3.png delete mode 100644 graphics/event_objects/pics/effects/unknown_19/unknown_19.png create mode 100644 graphics/event_objects/pics/effects/unknown_20.png delete mode 100644 graphics/event_objects/pics/effects/unknown_20/0.png delete mode 100644 graphics/event_objects/pics/effects/unknown_20/1.png delete mode 100644 graphics/event_objects/pics/effects/unknown_20/2.png delete mode 100644 graphics/event_objects/pics/effects/unknown_20/3.png delete mode 100644 graphics/event_objects/pics/effects/unknown_20/4.png delete mode 100644 graphics/event_objects/pics/effects/unknown_20/unknown_20.png create mode 100644 graphics/event_objects/pics/effects/unknown_29.png delete mode 100644 graphics/event_objects/pics/effects/unknown_29/0.png delete mode 100644 graphics/event_objects/pics/effects/unknown_29/1.png delete mode 100644 graphics/event_objects/pics/effects/unknown_29/2.png delete mode 100644 graphics/event_objects/pics/effects/unknown_29/unknown_29.png create mode 100644 graphics/event_objects/pics/effects/unknown_33.png delete mode 100644 graphics/event_objects/pics/effects/unknown_33/0.png delete mode 100644 graphics/event_objects/pics/effects/unknown_33/1.png delete mode 100644 graphics/event_objects/pics/effects/unknown_33/2.png delete mode 100644 graphics/event_objects/pics/effects/unknown_33/3.png delete mode 100644 graphics/event_objects/pics/effects/unknown_33/4.png delete mode 100644 graphics/event_objects/pics/effects/unknown_33/unknown_33.png create mode 100644 graphics/event_objects/pics/effects/unknown_35.png delete mode 100644 graphics/event_objects/pics/effects/unknown_35/0.png delete mode 100644 graphics/event_objects/pics/effects/unknown_35/1.png delete mode 100644 graphics/event_objects/pics/effects/unknown_35/unknown_35.png delete mode 100644 graphics/event_objects/pics/effects/unknown_4F7E38/0.png create mode 100644 graphics/event_objects/pics/effects/unused_grass.png delete mode 100644 graphics/event_objects/pics/effects/unused_grass/0.png delete mode 100644 graphics/event_objects/pics/effects/unused_grass/1.png delete mode 100644 graphics/event_objects/pics/effects/unused_grass/2.png delete mode 100644 graphics/event_objects/pics/effects/unused_grass/3.png delete mode 100644 graphics/event_objects/pics/effects/unused_grass/unused_grass.png create mode 100644 spritesheet_rules.mk diff --git a/Makefile b/Makefile index 47bfee2a2f..a0ce6bdd12 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,7 @@ tidy: rm -r build/* include graphics_file_rules.mk -include event_obj_graphics_makefile_rules.mk +include spritesheet_rules.mk %.s: ; %.png: ; diff --git a/event_obj_graphics_makefile_rules.mk b/event_obj_graphics_makefile_rules.mk deleted file mode 100644 index c7b4ccba46..0000000000 --- a/event_obj_graphics_makefile_rules.mk +++ /dev/null @@ -1,618 +0,0 @@ -OVERWORLDGFXDIR := graphics/event_objects/pics - -$(OVERWORLDGFXDIR)/people/brendan/walking.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/brendan/running.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/brendan/field_move.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/brendan/surfing.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/brendan/mach_bike.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/brendan/acro_bike.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/brendan/fishing.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/brendan/watering.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/brendan/underwater.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - - -$(OVERWORLDGFXDIR)/people/elite_four/drake.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/elite_four/glacia.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/elite_four/phoebe.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/elite_four/sidney.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - - -$(OVERWORLDGFXDIR)/people/frontier_brains/anabel.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/frontier_brains/brandon.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/frontier_brains/greta.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/frontier_brains/lucy.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/frontier_brains/noland.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/frontier_brains/spenser.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/frontier_brains/tucker.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - - -$(OVERWORLDGFXDIR)/people/gym_leaders/brawly.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/gym_leaders/flannery.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/gym_leaders/juan.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/gym_leaders/liza.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/gym_leaders/norman.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/gym_leaders/roxanne.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/gym_leaders/tate.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/gym_leaders/wattson.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/gym_leaders/winona.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - - -$(OVERWORLDGFXDIR)/people/may/walking.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/may/running.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/may/field_move.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/may/surfing.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/may/mach_bike.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/may/acro_bike.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/may/fishing.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/may/watering.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/may/underwater.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - - -$(OVERWORLDGFXDIR)/people/ruby_sapphire_brendan/walking.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/ruby_sapphire_brendan/running.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - - -$(OVERWORLDGFXDIR)/people/ruby_sapphire_may/walking.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/ruby_sapphire_may/running.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - - -$(OVERWORLDGFXDIR)/people/team_aqua/aqua_member_f.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/team_aqua/aqua_member_m.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/team_aqua/archie.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - - -$(OVERWORLDGFXDIR)/people/team_magma/magma_member_f.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/team_magma/magma_member_m.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/team_magma/maxie.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - - -$(OVERWORLDGFXDIR)/people/artist.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/beauty.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/black_belt.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/boy_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/boy_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/boy_3.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/boy_4.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/boy_5.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/bug_catcher.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/cameraman.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/camper.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/contest_old_man.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/cook.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/cycling_triathlete_f.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/cycling_triathlete_m.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/fat_man.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/fisherman.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/gentleman.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/girl_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/girl_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/girl_3.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/hex_maniac.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/hiker.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/hot_springs_old_woman.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/lass.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/leaf.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/little_boy_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/people/little_boy_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/people/little_girl_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/little_girl_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/people/man_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/man_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/man_3.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/man_4.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/man_5.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/man_6.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/man_7.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/maniac.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/mart_employee.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/mauville_old_man_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/mauville_old_man_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/mom.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/mystery_event_deliveryman.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/nurse.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/old_man_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/old_man_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/old_woman_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/old_woman_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/picnicker.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/prof_birch.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/psychic_m.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/quinty_plump.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/people/red.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/reporter_f.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/reporter_m.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/rooftop_sale_woman.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/rs_little_boy.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/people/running_triathlete_f.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/running_triathlete_m.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/sailor.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/school_kid_m.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/scientist_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/scientist_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/scott.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/steven.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/swimmer_f.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/swimmer_m.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/teala.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/tuber_f.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/people/tuber_m.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/people/tuber_m_swimming.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/people/union_room_attendant.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/unused_woman.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/wallace.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/wally.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/woman_1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/woman_2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/woman_3.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/woman_4.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/woman_5.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/woman_6.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/woman_7.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/people/youngster.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - - - -$(OVERWORLDGFXDIR)/pokemon/azumarill.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/pokemon/azurill.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/pokemon/deoxys.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/dusclops.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/enemy_zigzagoon.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/groudon.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/ho_oh.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/kecleon.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/pokemon/kirlia.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/kyogre.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/latias_latios.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/lugia.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/mew.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/pikachu.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/pokemon/poochyena.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/rayquaza.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 8 -mheight 8 - -$(OVERWORLDGFXDIR)/pokemon/skitty.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/pokemon/sudowoodo.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/vigoroth.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/pokemon/wingull.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/pokemon/zigzagoon.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - - - -$(OVERWORLDGFXDIR)/berry_trees/aguav.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/aspear.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/cheri.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/chesto.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/cornn.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/durin.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/figy.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/grepa.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/hondew.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/iapapa.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/kelpsy.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/lansat.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/leppa.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/liechi.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/lum.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/mago.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/nomel.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/oran.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/pamtre.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/pecha.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/persim.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/pomeg.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/rabuta.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/rawst.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/razz.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/sitrus.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/spelon.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/sprout.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/berry_trees/tamato.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/wepear.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/berry_trees/wiki.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - - - -$(OVERWORLDGFXDIR)/misc/breakable_rock.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/misc/cuttable_tree.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/misc/mr_brineys_boat.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - - - -$(OVERWORLDGFXDIR)/effects/arrow.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/effects/ash.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/effects/bike_hop_big_splash.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/effects/bike_hop_small_splash.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 1 - -$(OVERWORLDGFXDIR)/effects/bubbles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/effects/jump_out_of_ash.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/effects/mountain_disguise.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/effects/ripple.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/effects/sand_disguise_placeholder.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/effects/short_grass.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/effects/surf_blob.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 4 -mheight 4 - -$(OVERWORLDGFXDIR)/effects/tall_grass.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 - -$(OVERWORLDGFXDIR)/effects/tree_disguise.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - -$(OVERWORLDGFXDIR)/effects/unknown_17.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 2 diff --git a/graphics/event_objects/pics/berry_trees/aguav.png b/graphics/event_objects/pics/berry_trees/aguav.png index 13321eb42e5779729c38a7674db1435fd337d3f3..fca4b0dd51bd8fc0c613d85603be4b78a98102b7 100644 GIT binary patch delta 39 tcmeyz(#0}CWn!H*2jf&v7sn8b-i@~>GYYJ+tlYo=1fH&bF6*2Ung9~V4MYF{ delta 153 zcmeBT`NuLrC7iv))7O>#5eFx)Hn(xq;tLE64B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N24qk5ba4!+n6oi`GNZuSwLKjmV?15`T-G@yGywob?k!XR diff --git a/graphics/event_objects/pics/berry_trees/aspear.png b/graphics/event_objects/pics/berry_trees/aspear.png index 984e598ea0d4a5d427ca80de188178268a33a196..d0782166ef25d45e1ef0f3b8b3120e42a4005d22 100644 GIT binary patch delta 39 tcmX@XdWB_z%EUTr4#xYQE{-7zmvv4FO#l%j47dOQ delta 153 zcmcb@a)Nb&N;rFor>`sfBMwep9X6&_o~sxb7{p6lBT9nv(@M${i&7cfeOvEaktF=u1?T}FYGy!kC4V?15`T-G@yGywo11uWA5 diff --git a/graphics/event_objects/pics/berry_trees/cheri.png b/graphics/event_objects/pics/berry_trees/cheri.png index 527ef9dfee1faa8ee7aacf914cae40e9ca9a2372..ec2db0ae30a231e688268b2670035ecec3721d76 100644 GIT binary patch delta 39 tcmeBYo6R~wWn!H*2a}qoi(`mI@5b9IOahBp+wL&{fv2mV%Q~loCIIj93=04N delta 153 zcmbQu+RrvYC7iv))7O>#5eFx)j+O3FQ(XoI2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;xX^K@|xshG1dU4=;?ZH}KT$QVyoKbLh*2~7a6f-0Z@ diff --git a/graphics/event_objects/pics/berry_trees/chesto.png b/graphics/event_objects/pics/berry_trees/chesto.png index 36b4520cefe71a9d39dac840076a5f6711e49546..3087de2b281b59ff4064188ecf0a36268711786c 100644 GIT binary patch delta 39 tcmdnMwug0s%EUTr4kmX`7sn8b-i^0inFM}**>A@H1fH&bF6*2Ung9+v4Q&7b delta 153 zcmdnPx`AziN;rFor>`sfBMwepUBksZcb_mYFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq89yQhm|NX49u>8?xyQoa|BK*o5w`njxgN@xNAX`sfBMwepJ2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N24vsyba4!+n6okc7Nfw;7h9fyjPZ2!b6Mw<&;$T6HZE)c diff --git a/graphics/event_objects/pics/berry_trees/dirt_pile.png b/graphics/event_objects/pics/berry_trees/dirt_pile.png index 3790fd846d045b0603c2aa519c41fb2b801d9cd7..ed2a38b3f69a5320a660f4f2190f347a9da8ffa2 100644 GIT binary patch delta 9 QcmdnXxPfs(!o=JF01~+at^fc4 delta 20 bcmdnMxR-H40vBURkY6x^!?PP{6Jvt`NgM}v diff --git a/graphics/event_objects/pics/berry_trees/durin.png b/graphics/event_objects/pics/berry_trees/durin.png index 250cea0311b00b650c6699c9edd908894fd58bee..c0caf166f3e6e0092236ba7760428de58192c4ee 100644 GIT binary patch delta 39 ucmZ3%x`kze%EUTr4#xeSE{-7`sfBMwepeZ`*M^-K&54B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24wH|ba4!+n6oi`FQY()zSwqa)fn)N;rFor>`sfBMwep1E~*pJa#ZJFo>79MwA5SrUOlo%M3yxm>? yFJ=F96e!JD666=m;PC858jyY4)5S5QV$R0&n~Vb6xU{)I#(28=xvXzmvv4FO#m2)4P5{L delta 153 zcmaFQ{Fr5eN;rFor>`sfBMwepL;e=2xk3yK4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24q)xx;TbZ%-NV;!6>lhX7f*wF`lk|F6*2UngAa(Em;5n diff --git a/graphics/event_objects/pics/berry_trees/hondew.png b/graphics/event_objects/pics/berry_trees/hondew.png index 45f5605eec1e48a77eb409419a56810abb328903..c07bc17f7cf60103b6e716b203755dec55461dd5 100644 GIT binary patch delta 39 tcmaFE@`HJT%EUTr4#s9r7sn8b-i@~#83kUy-DJc71fH&bF6*2UngA!U4k-Wt delta 153 zcmeyt{Dx(MN;rFor>`sfBMwepBOWum`PmE%4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24pvTx;TbZ%-NXU$S6>EIFAQpjHj!g%Q~loCIB%QEM5Qr diff --git a/graphics/event_objects/pics/berry_trees/iapapa.png b/graphics/event_objects/pics/berry_trees/iapapa.png index 2a8d9b7606e1d32e2e63db002af1bbfe265c2e3d..98eb27c1dd6392b227b0d0b7c8c4e2f46473a2ce 100644 GIT binary patch delta 39 tcmdnSa)^0?%EUTr4n|*37sn8b-i^1t83n4JEV<7B1fH&bF6*2Ung9+x4R-(l delta 153 zcmX@ayp3goN;rFor>`sfBMwepYl**VAL1Dp7{p6lBT9nv(@M${i&7cfeOve1v6!N;rFor>`sfBMweJ2H_Bfifs%G4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24qKjx;TbZ%-NV8$tW=6<-|&mF`lk|F6*2UngHzmvv4FO#mZW4blJr delta 153 zcmeyz{E20PN;rFor>`sfBMweJM*c`C(H#s74B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24r`7x;TbZ%-NXU&M2T2u;V|-7*AI}mvv4FO#lU}EP((3 diff --git a/graphics/event_objects/pics/berry_trees/leppa.png b/graphics/event_objects/pics/berry_trees/leppa.png index a0b3dccc01710629edb9af4f4c0876e8f588d106..601945e436a2389a14d7c055a4caf52f1d09545a 100644 GIT binary patch delta 39 ucmdnYx}Rl&%EUTr4#rcSE{-7`sfBMweJCXP43mv1mIFo>79MwA5SrUOlo%M3yxm>? yFJ=F96e!JD666=m;PC858jyX;)5S5QV$R0&6N~~M_)OwK#(28=xvX`sfBMweJX8vrQaw`S~2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# xrR<-M0;L&Cg8YIR9G=}s1F{czx;TbZ%-NW}k5OQ4twS!z7*AI}mvv4FO#r;`EDrzx diff --git a/graphics/event_objects/pics/berry_trees/lum.png b/graphics/event_objects/pics/berry_trees/lum.png index e108e428fff575979db94e2002a4e956bd558d47..a2e156ddd1ea256d3bcc82434e89788dedf112ef 100644 GIT binary patch delta 39 tcmcb@`haDE%EUTr4#wA>E{-7Ji=4>-1fH&bF6*2UngAYO4R8Pe delta 153 zcmaFBa)ot*N;rFor>`sfBMweJ7M{H+8{8Qf7{p6lBT9nv(@M${i&7cfeOvEaktF=u1?OGbfIwkHlic?M5cKbLh*2~7ZAEG%EUTr4#p>*E{-7oVifSczx+J|5O})!xvX`sfBMweJR(9jH5q%5{4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N24p|+ba4!+n6okc5u?C{u*EzeV?15`T-G@yGywoAOf2;P diff --git a/graphics/event_objects/pics/berry_trees/nomel.png b/graphics/event_objects/pics/berry_trees/nomel.png index b1c18046528117bb9ce782c652ed27a74ad2c6b1..fa60688b89988e3435f0b2d22bc419c094b47917 100644 GIT binary patch delta 39 tcmcc1@{)Oi%EUTr4#pBs7sn8b-i^157zK{DrZh1Cfv2mV%Q~loCIA=E4PgKP delta 153 zcmaFKe3xZ{N;rFor>`sfBMwecW3BhHH{}@^7{p6lBT9nv(@M${i&7cfeOv5jgR3=A9lx&I`xPE@p0Vqi@2c6a%| wl>O6DpfqDikY6x^!?PP{AhxHAV@SoEjp;><0<-HP;z7oEy85}Sb4q9e0C=V>`sfBMwec6TRhz-3J*M7{p6lBT9nv(@M${i&7cfeOvG71zmvv4FO#lRW3|{~M delta 153 zcmeBR`NJ|nC7iv))7O>#5eKKJso7dLrE3ff4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24qk6ba4!+n6oi`BBMaYIfX2cF`lk|F6*2UngCC%EXDu; diff --git a/graphics/event_objects/pics/berry_trees/pecha.png b/graphics/event_objects/pics/berry_trees/pecha.png index 7078d2bd1c6c808dc967f7be3b363761b2f17548..3bfec5753410d851d40e5b3eae0be8fd8944ffcd 100644 GIT binary patch delta 39 ucmZ3%x`kze%EUTr4#xeSE{-7 delta 153 zcmdnOvVwJjN;rFor>`sfBMwecb52dM+)M@r2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# wrR<-M0;L&Cg8YIR9G=}s1G4vfx;TbZ%-NW}mrmdKI;Vst0I+*2H~;_u diff --git a/graphics/event_objects/pics/berry_trees/persim.png b/graphics/event_objects/pics/berry_trees/persim.png index ff4d8f808a7d1d556d843f623a5c166e37867bf9..eb5450b8b7644298fa4a1c834674de3c68d97924 100644 GIT binary patch delta 39 ucmeBUoy9UiWn!H*2jfyt7sn8b-i@~xGYS}fSa_WQ2s~Z=T-G@yGywn(Q4Np) delta 153 zcmbQm(#JYMC7iv))7O>#5eKKJh3Kw+-Ioju4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N24pYwba4!+n6oi`F{8lCn5^$0V?15`T-G@yGywosSS`x{ diff --git a/graphics/event_objects/pics/berry_trees/pomeg.png b/graphics/event_objects/pics/berry_trees/pomeg.png index 78abc73eb13376cfc972ed8ada239f96180c90f2..cd0e5e6c39367d17ca66a50b6b8f7963b6bd1c27 100644 GIT binary patch delta 39 tcmX@Za)Wt-%EUTr4#s3p7sn8b-i@~t83pRNxC0n~z|+;wWt~$(69D{)3(x=n delta 153 zcmcb?e1>I$N;rFor>`sfBMwecOWp2iOUxJ;7{p6lBT9nv(@M${i&7cfeOvYV-!&TpXI~=1fH&bF6*2Ung9iG4AlSt delta 153 zcmbQsGLdzHN;rFor>`sfBMwecD}BGM({3^_Fo>79MwA5SrUOlo%M3yxm>? yFJ=F96e!JD666=m;PC858j!uh)5S5QV$R0&WsCwZ?wqv&8RO~d=d#Wzp$PzWz%DHS diff --git a/graphics/event_objects/pics/berry_trees/rawst.png b/graphics/event_objects/pics/berry_trees/rawst.png index e0bcac5322b4efe1fa69ad8e79ee54192b93e7f4..aad761f5bd55e72b684a390ecd5bf1c6e517bb34 100644 GIT binary patch delta 39 tcmX@ka+!I8%EUTr4#qf77sn8b-i^0o7zG|H+HPY20#8>zmvv4FO#lhR4A1}o delta 153 zcmcc2e4J&1N;rFor>`sfBMwe629X#5eKIjqvZbIL5d6v4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N#=yWN>gnPbQZZ*^x-gS~e|SO|$QVyoKbLh*2~7YmZYy8_ diff --git a/graphics/event_objects/pics/berry_trees/sitrus.png b/graphics/event_objects/pics/berry_trees/sitrus.png index bdfece860849f8a1f2483da94b43fc256f8f1031..c5392e3adb143975a5d06093bf8a9db55f9070b0 100644 GIT binary patch delta 39 ucmX@gdXZ&<%EUTr4#qp4E{-7`sfBMwe6CdEBhcGfU3Fo>79MwA5SrUOlo%M3yxm>? yFJ=F96e!JD666=m;PC858jyX*)5S5QV$R0&TZ{tlx6JwlGRD)@&t;ucLK6VVi!XHm diff --git a/graphics/event_objects/pics/berry_trees/spelon.png b/graphics/event_objects/pics/berry_trees/spelon.png index d9b7f4174509fdfa3e416f33197004bbca95fd64..572b4d4f9eacf8fc580de64300be0e21a0f6175e 100644 GIT binary patch delta 39 tcmX@ga*=t0%EUTr4#pTy7sn8b-i^1T7zKo%b@nj;fv2mV%Q~loCIAU}4B-F( delta 153 zcmcb}e3WH^N;rFor>`sfBMwe6W-TMxz^x1n4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24u&0x;TbZ%-NV8#VFA8L2V_-7*AI}mvv4FO#taIEFk~@ diff --git a/graphics/event_objects/pics/berry_trees/sprout.png b/graphics/event_objects/pics/berry_trees/sprout.png index 8fee510bdcb901c93a14050fb11114fdf616ea70..e343596272aeedaf8767f17da65830baec796a26 100644 GIT binary patch delta 37 rcmcb}beD00%EUSw_6$!K#}J9B6K|&p6n2LAF#v(5tDnm{r-UW|_-YJa delta 151 zcmcc1c#&y>N;rFor>`sfBMwe67Jjn`VN(VM2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)urZB4d)byUYKj w?4OPTWf@C?{DK)Ap4~_Taxy$!978JROiWJ`cva5)4=BRm>FVdQ&MBb@0B02|sQ>@~ diff --git a/graphics/event_objects/pics/berry_trees/tamato.png b/graphics/event_objects/pics/berry_trees/tamato.png index d0770746bd2677eeda02fa53ddc4480963172002..d12af1922ced3ab874720b0a424aea6233e52168 100644 GIT binary patch delta 39 tcmZo=oyamlWn!H*2jd)17sn8b-i^0sF$yd=6RpAk1fH&bF6*2Ung9Xk488yW delta 153 zcmbQp(#kqPC7iv))7O>#5eKIjE4PN;vs?xS2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# xrR<-M0;L&Cg8YIR9G=}s1G49Mx;TbZ%-NVei&5Z_>ODS?F`lk|F6*2UngGHUECK)k diff --git a/graphics/event_objects/pics/berry_trees/wepear.png b/graphics/event_objects/pics/berry_trees/wepear.png index 133140843f310d006757ac4e82d212d5cbff8356..63e5ae53d954ab0becb1c019b40b2838084b6165 100644 GIT binary patch delta 39 tcmdnUx|d~w%EUTr4#pFnE{-7IV-&a{SZu-o1fH&bF6*2Ung9{D4HEzW delta 153 zcmdnXvXOOyN;rFor>`sfBMwe6Hm(wuRtp9O2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# xrR<-M0;L&Cg8YIR9G=}s1F}zex;TbZ%-NWJj8UNYer*QG7*AI}mvv4FO#sGtEP?<4 diff --git a/graphics/event_objects/pics/berry_trees/wiki.png b/graphics/event_objects/pics/berry_trees/wiki.png index a78d55db4f9ccb0d0892e8a9730d44f3535d9693..2fa0c0b017224912b1e038e9e229eac12d462963 100644 GIT binary patch delta 39 tcmZo*?O~aqGO^B@gK@g2i(`mI@5b9x83p=(*Pmbj0#8>zmvv4FO#lmh4Uhl; delta 153 zcmeBSX<(h863$-Y>Fdh=h=Ws%o%Qd6l`j|=7{p6lBT9nv(@M${i&7cfeOvEaktF=u1?R7Qc&%|}c?#(28=xvXHq)$ delta 20 bcmX@Yc#&~J0vBURkY6x^!?PP{6Jyf>OehDl diff --git a/graphics/event_objects/pics/cushions/grass_cushion.png b/graphics/event_objects/pics/cushions/grass_cushion.png index 8ee854f1708eab671d6393fdfa3f99b455a115f3..44862882eb677fd00ce05d1332c8b4b046cc5945 100644 GIT binary patch delta 9 Qcmcb>c$jfQ!o=KU02BNJ=Kufz delta 20 bcmX@ic!6<30vBURkY6x^!?PP{6Jyf=OaTY5 diff --git a/graphics/event_objects/pics/cushions/kiss_cushion.png b/graphics/event_objects/pics/cushions/kiss_cushion.png index 6a99348c90f16fc8277d64141e365e6b700d2cf6..e24bd9deaaf98569b66d5e0639ece31384e61c37 100644 GIT binary patch delta 9 Qcmcc0c!F_4!o=JR02EOJ_5c6? delta 20 bcmX@Xc$INN0vBURkY6x^!?PP{6JxUhOvDGj diff --git a/graphics/event_objects/pics/cushions/pika_cushion.png b/graphics/event_objects/pics/cushions/pika_cushion.png index 947713c399f7ddaf9c67546535aa05bc6d88dc67..16661bc01bf9f1c94ea68037eefde961788cf63e 100644 GIT binary patch delta 9 QcmX@kxQlT@!o=Jt025;a%m4rY delta 20 bcmdnRc${%U0vBURkY6x^!?PP{6JuimN}>mq diff --git a/graphics/event_objects/pics/cushions/round_cushion.png b/graphics/event_objects/pics/cushions/round_cushion.png index 0e7b71ad58aa1d74ab89afb93e44bcefc00deae1..2a2c6d9d97f4a516b6c1066bdf45f77a5a238b87 100644 GIT binary patch delta 9 Qcmcb{c#?5K!o=K602E>a`2YX_ delta 20 bcmX@fc#UyF0vBURkY6x^!?PP{6Jv7#OzQ{2 diff --git a/graphics/event_objects/pics/cushions/spin_cushion.png b/graphics/event_objects/pics/cushions/spin_cushion.png index 81eba708c35e8ba1ef28761c4ff7ee1a36885c34..cfac6c811a1ba254b6901d95579e49a067f07c8a 100644 GIT binary patch delta 9 QcmaFBc$slR!o=KS02K@b7XSbN delta 20 bcmcc2_<(Uj0vBURkY6x^!?PP{6JyH&PH_j| diff --git a/graphics/event_objects/pics/cushions/water_cushion.png b/graphics/event_objects/pics/cushions/water_cushion.png index 9ed16c633b0618cdc63695ec78991b9100dfae71..848b0cd352ac4d6469a82807a2aa238a345d89a7 100644 GIT binary patch delta 9 QcmX@hcz|(2!o=JJ029dr-T(jq delta 20 bcmX@Wc$RTO0vBURkY6x^!?PP{6JwJBON2M+)M diff --git a/graphics/event_objects/pics/dolls/big_lapras_doll.png b/graphics/event_objects/pics/dolls/big_lapras_doll.png index 572d3c810611e337483fd9a033e12ee82b18451c..9695a0ea526e680ebd3c239e4a7d4dad4a7d1937 100644 GIT binary patch delta 10 Rcmeyv^qy%#!p2;FMgSV*1P%ZI delta 21 ccmaFQ^oMCe0vBURkY6x^!?PP{8)JnS0a}m;*8l(j diff --git a/graphics/event_objects/pics/dolls/big_regice_doll.png b/graphics/event_objects/pics/dolls/big_regice_doll.png index e437d3558af98b0afc1704d42738deeda18b0ef2..eff1de4928882dae53b78975f313618b94b6cc23 100644 GIT binary patch delta 10 Rcmeyv^qy%#!p2;FMgSV*1P%ZI delta 21 ccmaFQ^oMCe0vBURkY6x^!?PP{8)JnS0a}m;*8l(j diff --git a/graphics/event_objects/pics/dolls/big_regirock_doll.png b/graphics/event_objects/pics/dolls/big_regirock_doll.png index 139abbb288cdcfff64327705ddca163a05117a34..63ed272361bcca10278d19cd8d620fb3bc0183c6 100644 GIT binary patch delta 10 RcmZo;{>d~Ueq)XlBLEh!1FQf5 delta 22 dcmey#)W$p^o|}QOB*-tA!Qt7Bw2iSci~v|o|}QOB*-tA!Qt7Bw2iUSi~v;_2Xg=b diff --git a/graphics/event_objects/pics/dolls/big_rhydon_doll.png b/graphics/event_objects/pics/dolls/big_rhydon_doll.png index 2e059f8c94695e5f66ef38d6bf3daaab00536064..4e439330aebde1118be188e7289386fb80401b87 100644 GIT binary patch delta 10 RcmeBV{=+mOeq)X-BLEib1GNAE delta 22 dcmeyv)X6*{o|}QOB*-tA!Qt7Bw2iUyi~v>02Y&zn diff --git a/graphics/event_objects/pics/dolls/big_snorlax_doll.png b/graphics/event_objects/pics/dolls/big_snorlax_doll.png index 397c9baacd7bc57f89998b852cff004724ae110b..dcb1699bf29938581cbb9825988704eb57e0966c 100644 GIT binary patch delta 10 Rcmey(^p0sl!p2-aMgSVn1PcHF delta 21 ccmaFI^qXly0vBURkY6x^!?PP{8)F3-0a|7U)Bpeg diff --git a/graphics/event_objects/pics/dolls/big_venusaur_doll.png b/graphics/event_objects/pics/dolls/big_venusaur_doll.png index 9d1961608b041774f5f2991e6f54951067a16057..1910d1c6e590f4214c555ba87f479b944e6122f6 100644 GIT binary patch delta 10 RcmX@le295M{KlMQMgSOU1PA~C delta 22 dcmX@ae4cqiJU0VlNswPKgTu2MX&Ylx839)12hsol diff --git a/graphics/event_objects/pics/dolls/big_wailmer_doll.png b/graphics/event_objects/pics/dolls/big_wailmer_doll.png index a174d30f7ddb2a97f7ef0259cd7e10b70c8db672..13cbbccf329792c42b1f2422a203ad1d13a90025 100644 GIT binary patch delta 9 QcmaFLbc1O^!o=Jk02S{9r~m)} delta 20 ccmcb?^pt5r0vBURkY6x^!?PP{6Jvh^08iKmaR2}S diff --git a/graphics/event_objects/pics/dolls/chikorita_doll.png b/graphics/event_objects/pics/dolls/chikorita_doll.png index 6b5e6417d8411b1a7dabbab37406faeec486e2ba..9942fc9dc035890e03a36593ec050e8dd5c53553 100644 GIT binary patch delta 9 Qcmcc0c!F_4!o=JR02EOJ_5c6? delta 20 bcmX@Xc$INN0vBURkY6x^!?PP{6JxUhOvDGj diff --git a/graphics/event_objects/pics/dolls/clefairy_doll.png b/graphics/event_objects/pics/dolls/clefairy_doll.png index 137b202136f306c052983c81b65ef86417e60dc8..3aed333add2378db94f1d191d2ec6aa3d6d78b79 100644 GIT binary patch delta 9 QcmaFNc#UyF!o=J%02Mz3AOHXW delta 20 bcmcb{_?U4*0vBURkY6x^!?PP{6Jsj@PUZ*c diff --git a/graphics/event_objects/pics/dolls/cyndaquil_doll.png b/graphics/event_objects/pics/dolls/cyndaquil_doll.png index b76221e1d42c55c8a922a994f9c0f317587f6592..2f026816efb9d32d30612be06148af29ecc773ca 100644 GIT binary patch delta 9 QcmaFCc$;xT!o=Ka02P!3F8}}l delta 20 bcmcc3_=0gl0vBURkY6x^!?PP{6JzTDPpJp^ diff --git a/graphics/event_objects/pics/dolls/ditto_doll.png b/graphics/event_objects/pics/dolls/ditto_doll.png index da4c33018a069f0f761de7695c15ea23dddd19ba..7b8cb48aefff40ee8d888b1b21a0bcb5de516976 100644 GIT binary patch delta 9 QcmX@hcz|(2!o=JJ029dr-T(jq delta 20 bcmX@Wc$RTO0vBURkY6x^!?PP{6JwJBON^%%0vBURkY6x^!?PP{6Jx6ZPc#Sb diff --git a/graphics/event_objects/pics/dolls/kecleon_doll.png b/graphics/event_objects/pics/dolls/kecleon_doll.png index 92869882f1be80ad0860f014541af4c2a5581fb2..a70feb67ce08f75d4fd452ee05b47a4ed8afab89 100644 GIT binary patch delta 9 QcmaFEc%N}X!o=Kq02SB-I{*Lx delta 20 bcmcc5_=a&p0vBURkY6x^!?PP{6JwhIP(=s? diff --git a/graphics/event_objects/pics/dolls/lotad_doll.png b/graphics/event_objects/pics/dolls/lotad_doll.png index 9ee2182d191913130980cac92d148027ab57926f..69065a424043b2caaa2df432928e8abb2d18036f 100644 GIT binary patch delta 9 QcmaFEc%N}X!o=Kq02SB-I{*Lx delta 20 bcmcc5_=a&p0vBURkY6x^!?PP{6JwhIP(=s? diff --git a/graphics/event_objects/pics/dolls/marill_doll.png b/graphics/event_objects/pics/dolls/marill_doll.png index d5372f7ddf1fe0897e2f8be83effbdf44f8c1365..d90c0cee1c8177caf03f5d30e16116ea0a046db4 100644 GIT binary patch delta 9 QcmaFJc!hC7!o=JX02Lhs8UO$Q delta 20 bcmcb@_>gfz0vBURkY6x^!?PP{6JyH(PM8Pd diff --git a/graphics/event_objects/pics/dolls/meowth_doll.png b/graphics/event_objects/pics/dolls/meowth_doll.png index 67ce3db4c0d8676c28ac33089bdfa04ff414b47a..cb093acfa12bcf14e076cf265ccbedf4092577d3 100644 GIT binary patch delta 9 Qcmeyt_?mG-!o=Ke02ZVKUjP6A delta 20 bcmaFO_=9mm0vBURkY6x^!?PP{6Jz@TQW*#+ diff --git a/graphics/event_objects/pics/dolls/mudkip_doll.png b/graphics/event_objects/pics/dolls/mudkip_doll.png index 8d6af157f27a1720833fa6448196dabb99b5522b..440fde84bba268d09edcee58ef50f1282ed6d510 100644 GIT binary patch delta 9 QcmaFJc!hC7!o=JX02Lhs8UO$Q delta 20 bcmcb@_>gfz0vBURkY6x^!?PP{6JyH(PM8Pd diff --git a/graphics/event_objects/pics/dolls/pichu_doll.png b/graphics/event_objects/pics/dolls/pichu_doll.png index 7a2aefc3140041d8fd8ef8bdf1051054284e1902..69bcc64ae56afd2a2bbe351cde98c7cf4a35e674 100644 GIT binary patch delta 9 QcmaFHc$0BL!o=K402OisDF6Tf delta 20 bcmcb~_>6Hv0vBURkY6x^!?PP{6Ju)tPg@7_ diff --git a/graphics/event_objects/pics/dolls/pikachu_doll.png b/graphics/event_objects/pics/dolls/pikachu_doll.png index a762f1e15a02f6cedc802b38a44285657e78ce7e..1c9342ad1c85e7d01dc402c3869cbca5757ed6b1 100644 GIT binary patch delta 9 Qcmcb^c%E@W!o=Ks02Igs3jhEB delta 20 bcmX@lc!zO90vBURkY6x^!?PP{6Jv`2P1Og~ diff --git a/graphics/event_objects/pics/dolls/seedot_doll.png b/graphics/event_objects/pics/dolls/seedot_doll.png index e00c485ae0018019e144a30a4f527e0779fc3c43..255b4c55d064465a6207876933d6a369bd08942e 100644 GIT binary patch delta 9 QcmZo-`pP&VVPfu7020;%{r~^~ delta 20 bcmey$*u*p;fs3&u$S;_|;n|I}iLo;PO0WmV diff --git a/graphics/event_objects/pics/dolls/skitty_doll.png b/graphics/event_objects/pics/dolls/skitty_doll.png index 57ae4c5eda1c88b4a2a9d949b6196e9d5a31d2c8..6e04a9cb1df8057c6add145d818a043d295e62fa 100644 GIT binary patch delta 9 Qcmcb|c#&~J!o=J{02Jy35dZ)H delta 20 bcmcb}c#m;H0vBURkY6x^!?PP{6JtvNP9q1} diff --git a/graphics/event_objects/pics/dolls/smoochum_doll.png b/graphics/event_objects/pics/dolls/smoochum_doll.png index 4adacdfd56a7597a498cf9d96f46462119731f33..7dc1180fdd415af9be9cec000f970217d37e86a1 100644 GIT binary patch delta 9 QcmaFEc%N}X!o=Kq02SB-I{*Lx delta 20 bcmcc5_=a&p0vBURkY6x^!?PP{6JwhIP(=s? diff --git a/graphics/event_objects/pics/dolls/swablu_doll.png b/graphics/event_objects/pics/dolls/swablu_doll.png index 94e3051d7c254d888c901407aa4f32f74afa5bd0..271576db85b1962c5d915fcd36aea0ee3b78ae8f 100644 GIT binary patch delta 9 Qcmcc5c!_aB!o=Jn02KQK6aWAK delta 20 bcmcb_c%N}X0vBURkY6x^!?PP{6JtvOPD%&e diff --git a/graphics/event_objects/pics/dolls/togepi_doll.png b/graphics/event_objects/pics/dolls/togepi_doll.png index 4deda750c3338053bc526dc4e269c3cbfd357e09..aa527b44bb64c0e60add6449b93f9006618b1e73 100644 GIT binary patch delta 9 QcmaFBc$slR!o=KS02K@b7XSbN delta 20 bcmcc2_<(Uj0vBURkY6x^!?PP{6JyH&PH_j| diff --git a/graphics/event_objects/pics/dolls/torchic_doll.png b/graphics/event_objects/pics/dolls/torchic_doll.png index 067eae9fb83037bf2bc6f6874c17732b1ff72b6d..80969c4247f2beee6cb86f74606835c68ad9b566 100644 GIT binary patch delta 9 QcmaFQ_=s^r!o=Jr02T`bL;wH) delta 20 bcmaFF_?~e>0vBURkY6x^!?PP{6JuKeP`U^W diff --git a/graphics/event_objects/pics/dolls/totodile_doll.png b/graphics/event_objects/pics/dolls/totodile_doll.png index b347125c94b64ab2c0252856b6d77196fa7b5f7f..46324159e89f11bbc75ae6955d38bc1b18674702 100644 GIT binary patch delta 9 QcmaFHc$0BL!o=K402OisDF6Tf delta 20 bcmcb~_>6Hv0vBURkY6x^!?PP{6Ju)tPg@7_ diff --git a/graphics/event_objects/pics/dolls/treecko_doll.png b/graphics/event_objects/pics/dolls/treecko_doll.png index 3ccf44a58709f43d39046dcb04f6a54481c2cec3..6487fe8056c25ccba29301a61deb160d41f4a1cd 100644 GIT binary patch delta 9 QcmaFKc!zO9!o=Jf02QSKG5`Po delta 20 bcmcb^_>yr#0vBURkY6x^!?PP{6JzTEPtXVZ diff --git a/graphics/event_objects/pics/dolls/unused_magnemite_doll.png b/graphics/event_objects/pics/dolls/unused_magnemite_doll.png index bbf386e6ae72db2f4066f61019772b969ac8be50..2c9ef10c77672f767891ca4731573d64148f26a3 100644 GIT binary patch delta 9 Qcmcc5c!_aB!o=Jn02KQK6aWAK delta 20 bcmcb_c%N}X0vBURkY6x^!?PP{6JtvOPD%&e diff --git a/graphics/event_objects/pics/dolls/unused_natu_doll.png b/graphics/event_objects/pics/dolls/unused_natu_doll.png index a2c4995e396f2d3e20b99b461b8e5f90711cb046..8087db81dd88275910e0152ec9633fa329ed3693 100644 GIT binary patch delta 9 Qcmcb?c$#rS!o=Kc02G7+{{R30 delta 20 bcmX@jc!P050vBURkY6x^!?PP{6JzrLO*se1 diff --git a/graphics/event_objects/pics/dolls/unused_pikachu_doll.png b/graphics/event_objects/pics/dolls/unused_pikachu_doll.png index 9bf762d024a4c3cc953fd044025b20d1f0e2c119..2e5181977a326bc86b8811f3f38460d640574800 100644 GIT binary patch delta 9 QcmaFPc#CmD!o=Jv02PA-EC2ui delta 20 bcmcb`_?&S<0vBURkY6x^!?PP{6Ju)uPl5;a diff --git a/graphics/event_objects/pics/dolls/unused_porygon2_doll.png b/graphics/event_objects/pics/dolls/unused_porygon2_doll.png index 465b7a0922b21480371c34de146d3575d8d3b47a..f68182762ace3d0c20bb919ba13b01298b4eaa49 100644 GIT binary patch delta 9 Qcmeyv_?~e>!o=Ku02b&3YXATM delta 20 ccmaFQ_=j;q0vBURkY6x^!?PP{6JsX<08+IGGynhq diff --git a/graphics/event_objects/pics/dolls/unused_squirtle_doll.png b/graphics/event_objects/pics/dolls/unused_squirtle_doll.png index ccc526aae7cec7e9a18970ee65027db93d58613f..0480227d0e0e3e9c9bb692cea2573b8b659df354 100644 GIT binary patch delta 9 Qcmey$_=0gl!o=JT02XlsRsaA1 delta 20 bcmaFC_?2-&0vBURkY6x^!?PP{6JxspQKSeT diff --git a/graphics/event_objects/pics/dolls/unused_wooper_doll.png b/graphics/event_objects/pics/dolls/unused_wooper_doll.png index 29bc8fd9972f595a05a673aa652811e9d58a32be..69d73eadac771685aba3a6b34acfe7ab8b4e573e 100644 GIT binary patch delta 9 QcmaFPc#CmD!o=Jv02PA-EC2ui delta 20 bcmcb`_?&S<0vBURkY6x^!?PP{6Ju)uPl5;a diff --git a/graphics/event_objects/pics/dolls/wynaut_doll.png b/graphics/event_objects/pics/dolls/wynaut_doll.png index 3ac3d1311459d03742f1075db8503a99678eb88b..54332817826e16c955b99ce9e9dc77d7f3bb88bc 100644 GIT binary patch delta 9 Qcmcb{c#?5K!o=K602E>a`2YX_ delta 20 bcmX@fc#UyF0vBURkY6x^!?PP{6Jv7#OzQ{2 diff --git a/graphics/event_objects/pics/effects/arrow.png b/graphics/event_objects/pics/effects/arrow.png index a530b5344a266723a6bf599b54d0abb1b4b7361f..85ebdf514c2cd9a89afd78cddb050778366b1fb6 100644 GIT binary patch delta 37 scmZ3-yo+gq%EUSw_M@IIjv*Gk6K@|DXuNi!hye&ZUHx3vIVCg!01pQZ;s5{u delta 151 zcmdnRw2pa#N;rFor>`sfBMwe6X_fGOPhK-HFo>79MwA5SrUO6&aJf-Ch1K xW&d;(D9cz9`sfBMwe68RfRw&-)n|7{p6lBT9nv(@M${i&7cfeOvbP0l+XkK Dzcx;~ literal 0 HcmV?d00001 diff --git a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/0.png b/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/0.png deleted file mode 100644 index f3e751d3afed1c842ff5394472aaba4cc442ca91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&B|J5!3k50KarMTMB zF{^uxrB@P%fWp<{B}*KOgA^REUcK7gJ;l*6=>Px!Kuvm5=F@-_zo(012*=Figaxb> c4%_?~i~|@RR)0)C1e9X%boFyt=akR{0LE4Px!Kuvm5=F@Cd3A2@kE1{}44$rjF6*2UngDseFo*yE diff --git a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/2.png b/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/2.png deleted file mode 100644 index 9a9abf73e4b7531e0a7bc74fc49972749b359bb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&B|J5!3k50KarMTMB zF{^uxrB@P%fWp<{B}*KOgA^REUcK7gJ;l*6=>Px!Kuvm5=F@Bk&_iWwL@UHx3vIVCg!0A)5ZHvj+t diff --git a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/3.png b/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/3.png deleted file mode 100644 index 857abfb0b45ec4baea7e95c7b31a83652a0f0bf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&B|J5!3k50KarMTMB zF{^uxrB@P%fWp<{B}*KOgA^REUcK7gJ;l*6=>Px!Kuvm5=F@WX2*=Fi1coMd y9*GBx%xx_4Js;mO?&4Th#-mywnDW_>kztD($In0hZ{GmbGkCiCxvXPx!Kuvm5=F@Px!Kuvm5=F@*)n~jFx(*Z) zFL8}13C>R|DNig)WpMX#0UD!FmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6? zzK#qG8~eHcB(ehe1_3@HuEj@}{J*;8|IsP;rW98@I%ajRvGhvf5Ky>Uykv=Eagc)J z)vH&#yQerh2L1p4AE-%B%6uA-VodUOclp1R{nJq(C&JUkF{EP7(g_zi85B5NW*_)_ zyqGDyLt&wn&D3}9M;_0!Vw;ru5qQ!H<5lzpF}mwuSz*A>-bo|`NjE{Zm%&Yf#c uG02+w(ymggyqx1^`Gp<-;{Eaki+r~Rh`lbGwdo(w4hBzGKbLh*2~7Zkzim?h diff --git a/graphics/event_objects/pics/effects/bike_hop_big_splash.png b/graphics/event_objects/pics/effects/bike_hop_big_splash.png index 4546340fe77155d4d45bc15d3b796818786462cd..171d23457e06c87d68178350a62002afd1b12285 100644 GIT binary patch delta 37 rcmZo=p2##oWn!HT`y5Xf#}JK)6K~HF&|OpN!T#5eKK3oc>2lJ4m1$iT3%pZiZD>qJF+MaCp=cbET5 w**_fx$}*M&`2{mLJiCzwzopr0J4}Yp#T5? diff --git a/graphics/event_objects/pics/effects/bike_hop_small_splash.png b/graphics/event_objects/pics/effects/bike_hop_small_splash.png index 523238a1d4531cc40ffa26bdcb1b1c0d1c67c17a..e98ded0257aa7735c68b84754dc749b6753210e0 100644 GIT binary patch delta 37 rcmdnVbd+&|%EUSw_5e>8#}JO06L0$o=tqB!VgLe9S3j3^P6`sfBMwe6dE*U?OEef57{p6lBT9nv(@M${i&7cfeOvmdKI;Vst0J=si`~Uy| diff --git a/graphics/event_objects/pics/effects/bike_hop_tall_grass.png b/graphics/event_objects/pics/effects/bike_hop_tall_grass.png new file mode 100755 index 0000000000000000000000000000000000000000..c43da9f280869a0ffa8d1c868e898a447678d3c7 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^4nWMo!VDyL`#gCAqznRlLR^dYzT5J@x%p_4Ww)VM z6o;WBL(-aeNo$UFpZzxF+5aicNn6%TS#tGg@zEuYTbd=7WL=xCUkcP4;pyTSA~ChJ z|1>XyB8SVvbB#?qzT982{9YT^m6<%Zyc~XMe`B@p zn9+N(nuFnNH}CG)2A77wunt{5=Tknr!w=l~{#@xiyUtghFSTE6uLA90@O1TaS?83{ F1OUCYRuBLH literal 0 HcmV?d00001 diff --git a/graphics/event_objects/pics/effects/bike_hop_tall_grass/0.png b/graphics/event_objects/pics/effects/bike_hop_tall_grass/0.png deleted file mode 100644 index d2768ec0cea25034b380ec24745985771a93c343..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!VDytB9fK>DT4r?5ZB_p@3#DJZa$i1*=^_* z#bM~kkhJDq(wd{)XTME(_J2xq(v~$-mRvnrd~}K9mS%}1S=XlPmjd-NmIV0)GdMiE zkp|>wdb&7DT4r?5ZB_p@3#DJZa$i1*=^_* z#bM~kkhJDq(wd{)XTME(_J2xq(v~$-mRvnrd~}K9mS%}1S=XlPmjd-NmIV0)GdMiE zkp|?bd%8G=aLi0j5J+HPa?@b@$Wr0Z!`vglI6;8lW5&dX3@#HHn8g?v{JI$bKa=)e Q57ffo>FVdQ&MBb@0M;xwivR!s diff --git a/graphics/event_objects/pics/effects/bike_hop_tall_grass/2.png b/graphics/event_objects/pics/effects/bike_hop_tall_grass/2.png deleted file mode 100644 index 00c51d276559d14e46aa70521ed4643c1bc026d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!VDytB9fK>DT4r?5ZB_p@3#DJZa$i1*=^_* z#bM~kkhJDq(wd{)XTME(_J2xq(v~$-mRvnrd~}K9mS%}1S=XlPmjd-NmIV0)GdMiE zkp|?5d%8G=aLi0jIKX10@JL}7!zuv}o|*g%zU)jhLh^X$0F^L!y85}Sb4q9e0F~`B A+W-In diff --git a/graphics/event_objects/pics/effects/bike_hop_tall_grass/3.png b/graphics/event_objects/pics/effects/bike_hop_tall_grass/3.png deleted file mode 100644 index 210382b9334a141d065ae78a9dc47fa8aee42129..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!VDytB9fK>DT4r?5ZB_p@3#DJZa$i1*=^_* z#bM~kkhJDq(wd{)XTME(_J2xq(v~$-mRvnrd~}K9mS%}1S=XlPmjd-NmIV0)GdMiE ykp|?5db&7{2SfH9mXk+>CFcMYFnGH9xvX25}cn_Ql40p%HZzf0yIXUEVW3%SkI)eb;(1J5hVqF?m!u1Ae+IfK~o+`v7|ft zIx;Y9?C1WI$O_~e1o(uw7Vmwx<$rVY(Im@mL$4?fLq~?BHSdzv9PK{)ZOXI%Q<{^u zteLXp>e1q(OB}Z}ODxH{HeJ6IsFyLx+uh~=Qua?rL7b8xzhDN3XE)M-oCr@B$B>FS zrTwRQ85B8O9-eDtda<8xPw*A1ABT^qwsp?@*yyrar1$0iiskp(xUS6Px#i{XOZywE zeaDR6lhqsyXS;cK$2Pb$1cr6!@;RUK*&Tl1&iCg^=h=0>@_flTKMQ0#gQu&X%Q~lo FCIB|JcQ60| diff --git a/graphics/event_objects/pics/effects/bike_tire_tracks.png b/graphics/event_objects/pics/effects/bike_tire_tracks.png new file mode 100644 index 0000000000000000000000000000000000000000..2d989d28cb76304fcae6cef1c48cd939e2409807 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!VDxsPNql!DT4r?5Z9zN@4h`d`tItMdt0Xb z|NsBqvv+&XKAW@UUecT`|Mxxvs(SZq$-T49SGQ!HodYtZboFyt=akR{0KiU6egFUf literal 0 HcmV?d00001 diff --git a/graphics/event_objects/pics/effects/bike_tire_tracks/0.png b/graphics/event_objects/pics/effects/bike_tire_tracks/0.png deleted file mode 100644 index d4fd46f9ba1d2a8229083392b8d8eebe74428931..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUO22WQ% Jmvv4FO#o*?LgfGe diff --git a/graphics/event_objects/pics/effects/bike_tire_tracks/1.png b/graphics/event_objects/pics/effects/bike_tire_tracks/1.png deleted file mode 100644 index 9095cdd745c4d958ee82056c7d327f3eb49e6936..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUOzopr00GWBhX4Qo diff --git a/graphics/event_objects/pics/effects/bike_tire_tracks/2.png b/graphics/event_objects/pics/effects/bike_tire_tracks/2.png deleted file mode 100644 index 56907c153a9768f6ca8008ee94114d7dafff762b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUOmdKI;Vst0A3tK#sB~S diff --git a/graphics/event_objects/pics/effects/bike_tire_tracks/bike_tire_tracks.png b/graphics/event_objects/pics/effects/bike_tire_tracks/bike_tire_tracks.png deleted file mode 100644 index 383a393c4d38c594fbc3688b2a2ad0dfd22860f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!VDxsPNql!DfSXiUsv`=9Gqf`YI7u`_W^~( zOI#yLg7ec#$`gxH8QgtbfW|14r4}g|>zNd`E_n!4!ckJ-=MI!H2C^Bv8Z_mB6id3J zuOkD)#(wTUiL5}rL4Z$)Ytou`-<}Te8m10lBZ^&t{t7wj(fN4MTMA eGYOyT%nWn%)25!45BLEziNVv=&t;ucLK6V48Ehl~ diff --git a/graphics/event_objects/pics/effects/bird.png b/graphics/event_objects/pics/effects/bird.png index 3147f98f52cc0584b1b318dd1fd1b8e631b3b619..e9d9798fde6555444868395b7f814f41047f4590 100644 GIT binary patch delta 9 QcmZ3$G?{5a!o=Lo01;XP*#H0l delta 20 ccmbQtw18?q5uE@ diff --git a/graphics/event_objects/pics/effects/bubbles.png b/graphics/event_objects/pics/effects/bubbles.png index 554fc8425e300be8c6970a907ebe37ac3ac12e1d..b04ceaf09594dcbaf282f33a602346272f8100e7 100644 GIT binary patch delta 39 ucmbQix`btd%EUTr4#xGKE{-7{of~hjWfV9UY;}hL2s~Z=T-G@yGywn)a}8nu delta 153 zcmZ3&GJ|!3N;rFor>`sfBMwe6W#*^aZ>t#?7{p6lBT9nv(@M${i&7cfeOva>EaktF=u1?T1Ejmr*+>!#(28=xvX%%@*;Rn_39t_Uh@8@!_U@AYii1Wj}qwl+_Ilg{Buxx)dgLuXFcREfCDyNH|={cR= tUG8xDJ=4uS=?Y~Z<~2sveb+PMW$4#bIVE%Ef;7-*22WQ%mvv4FO#l~dRKx%P literal 0 HcmV?d00001 diff --git a/graphics/event_objects/pics/effects/deep_sand_footprints/0.png b/graphics/event_objects/pics/effects/deep_sand_footprints/0.png deleted file mode 100644 index c449b223e9cc72d090def49c99986d629ac1a346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUOgXhP2jW2g{ a19kbF6E3W~eC`ZTKZB>MpUXO@geCx^YE91o diff --git a/graphics/event_objects/pics/effects/deep_sand_footprints/1.png b/graphics/event_objects/pics/effects/deep_sand_footprints/1.png deleted file mode 100644 index 2a1d5cce5de114132150716fa75ccd318f95f819..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUO#hfZW&d@!?e<#hB#n?(%;r`=_HIPDzkoFoVOh8)-m}zo(01NX4Aw z1O=`S`&@+|RJ(gHICH+}X}v_TgV$9fK4jOY6OdZe2jL89ZJ6T-G@yGywnzLR7;5 literal 0 HcmV?d00001 diff --git a/graphics/event_objects/pics/effects/ground_impact_dust/0.png b/graphics/event_objects/pics/effects/ground_impact_dust/0.png deleted file mode 100644 index 57e2e88982a1adc3def6fdc0547e7a79ade6fc4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!VDytB9fK>DT4r?5Z9zN@4h`d`tItMdt0Xb z|NsBqvv+&XKAW@UUecT`|Mxxvs(SZq$-T49SGQ!HodYtZ$S;_|;n|He zAVDT4r?5Z9zN@4h`d`tItMdt0Xb z|NsBqvv+&XKAW@UUecT`|Mxxvs(SZq$-T49SGQ!HodYtZ$S;_|;n|He zAV=BL#W93qW^%#--Wj|LR2DOIFsewlI`FtEgwLGWc<=znLNNw~gN&gQC(k_xRLgTe~DWM4fChk9M diff --git a/graphics/event_objects/pics/effects/ground_impact_dust/2.png b/graphics/event_objects/pics/effects/ground_impact_dust/2.png deleted file mode 100644 index 8d0235141a311ee2ab29b15568c66766bc70ae64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!VDytB9fK>DT4r?5Z9zN@4h`d`tItMdt0Xb z|NsBqvv+&XKAW@UUecT`|Mxxvs(SZq$-T49SGQ!HodYtZ$S;_|;n|He zAVgTe~DWM4f DLqs~0 diff --git a/graphics/event_objects/pics/effects/ground_impact_dust/ground_impact_dust.png b/graphics/event_objects/pics/effects/ground_impact_dust/ground_impact_dust.png deleted file mode 100644 index 83b25a6057188ab2698620633bbfaef463a69e88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^20+Zg!VDyRSrbcu6nlxMuPgf_4o)!@*??5H`#>S_ z64!{5;QX|b^2DN426rD9pfL(%sYMFLdM1UfOCExZC@JuB2g(=&*$iF{n({!3CEd~2 zk%3`jKlh(RRv_OXz$e5tY0bND&yK#ky5-)MDgXcfzxV9j-m}l-XUqS+&w#4l zJzH|`Z1dGES!d^f+}H8(;Z-2TnB?v5@_#A&r=uWFNswPKgTu2MX+TbZr;B4q#hkUh z7kL>JIh?z77`sfBMwe6b7{p6lBT9nv(@M${i&7cfeOvCq6@elQp00i_>zopr04*>r`v3p{ diff --git a/graphics/event_objects/pics/effects/long_grass.png b/graphics/event_objects/pics/effects/long_grass.png new file mode 100644 index 0000000000000000000000000000000000000000..265e45056b49525149b5614982ecc766af15c509 GIT binary patch literal 400 zcmV;B0dM|^P)%W`?qaOPi_P|w=Kqv~VzjK3q}9c9#iT*BgBYZ0)|W4J0003S zNklPT0-b|EnEY4-INZ1eS5cJP1eUIPg*}=p zAGQRSyV9k+G!#RNsMOBfAV^&{5^BK>bk%Bv0FvpT%9chI2z{>tTfs{u1+V7Ri!M8g zk7pCk?x7`3m}oJwFACP5E%(qiF>1QA;(o$&Zfp*}j5hj4umZ uQ0iFm=V$vIGT0ByCF)20>u1Uzc>My~y>s_PZ^>H#0000wLYu+WTIof^p+mvVjr!*&RSu&W(c=eeF%G;udYsV9sU9v&Am<@SE&J!)|v?95g3JCCo`vQ_T9C%-a)`^Ths hd+D@Oo29mVWxsh^`cl~H*e;;044$rjF6*2UngH3tTi^fy diff --git a/graphics/event_objects/pics/effects/long_grass/1.png b/graphics/event_objects/pics/effects/long_grass/1.png deleted file mode 100644 index 97f652c6d477a967a719e9469020cf30833807f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSu~99TQ?cJyZ1dTGUrBUghsHc z`8*zVX|{)F!-7wGM7BO)RL-1jQZS*)YVtMdumevdRvRa`3ci%D`)+>ap!~mOZ9eHG c&!6%i+AsV4{?U`?fc7zXy85}Sb4q9e06IHg8vpwLYu+WTIof^p+mvVjr!*&RSu$IR3x&D`=iZSi{X c%I6=;yYh($ diff --git a/graphics/event_objects/pics/effects/long_grass/3.png b/graphics/event_objects/pics/effects/long_grass/3.png deleted file mode 100644 index 0565b40695d50fa2b7924a2115c81527e26dbf4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSubl#3pEHaHaoLjgYU3(9{aa%yC%<2jj@rg hD~(O4ac}(blewoznxkle#6O^|44$rjF6*2UngC8cUf=)# diff --git a/graphics/event_objects/pics/effects/long_grass/long_grass.png b/graphics/event_objects/pics/effects/long_grass/long_grass.png deleted file mode 100644 index 5dfc3b2469837e7dc17c33a441e3961b2c921c25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i`mP)W?zI1dgT-Pwi!n-C2r)qb zVyy0Bti_AX_LS!Tl!IcltdykH#dF1^L9~Myq-xfeFLeL_00Cl4M@0Xn2lB-L0004W zQchCPT0-b|EnEY4-INZ1e zS5cJP1eUIPg*}=pAGQRSyV9k+G!#RNsMOBfAV^&{5^BK>bk%Bv0FvpT%9chI2z{>t zTfs{u1+V7Ri!M8gk7pCk?x7`3m}oJwFACP5E%(qiF>1QA;(o z$&Zfp*}j5hj4umZQ0iFm=V$vIGT0ByCF)20>u1Uzc>My~y>s{N`3mj;0000#5eKK37UQkw=5h=S4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24pLFx;TbZ%-NW(z$oA`+wuy?7*AI}mvv4FO#t}zE1duU diff --git a/graphics/event_objects/pics/effects/ripple.png b/graphics/event_objects/pics/effects/ripple.png index 0352ef2d8bee96b6260ad0987e090b2b6f8e9096..87e6dd6176d09af902307e66aa14df79389f8d6b 100644 GIT binary patch delta 37 rcmcc1^pbIc%EUSw_7YDQ#}JK)6K@v@SQq#BF#v(5tDnm{r-UW|{a6f# delta 151 zcmaFKc$aB{N;rFor>`sfBMwe69f4=O8?qP}7{p6lBT9nv(@M${i&7cfeOvmdKI;Vst04NMB=Kufz diff --git a/graphics/event_objects/pics/effects/sand_disguise_placeholder.png b/graphics/event_objects/pics/effects/sand_disguise_placeholder.png old mode 100644 new mode 100755 index 66b9993e776bafd011eea89d5fcda175b607974b..76808a53bd75d2d125a82bdb2e1afb5a9905729d GIT binary patch delta 37 rcmdnRe2i&=%EUSw_KTh_jv*Gk6K|gv_~Ya*#sCDKu6{1-oD!M<2h9x} delta 151 zcmX@cw2OIyN;rFor>`sfBMwe6J$aXw^OXz?4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF+MaCp=cbET5 w**_fx$}*M&`2{mLJiCzw%%@*;Rn_39t_Uh@0lOHImG)e*1_Q5vi;5yKl#qIaowq|X6$(wb?;#4r&xze{hSPM XK1+RRo@)LcXbOX;tDnm{r-UW|DZ)!z literal 0 HcmV?d00001 diff --git a/graphics/event_objects/pics/effects/sand_footprints/0.png b/graphics/event_objects/pics/effects/sand_footprints/0.png deleted file mode 100644 index 3cc79aa184fe2a4ea03c52a105978252848113af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUObP0l+XkK D&v8KB diff --git a/graphics/event_objects/pics/effects/sand_footprints/sand_footprints.png b/graphics/event_objects/pics/effects/sand_footprints/sand_footprints.png deleted file mode 100644 index cec011d0a5752a253184580477c439e1763b8390..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%Amx6nlxMuPgf_4o)$B)&+mroq$5( zC9V-A!TD(=<%vb94DLQIKw}ijQi~Lf^-Ky|mplY2;V3Eaa|g;81KA8-4Vv;miY49A z*O7r?V?XzwL{=c*AiyWYHEGSeZ_kdtySnAxmMQ=L|G)R_-QKg$=4`o_G-u2Iz0ZKE z-aT7#?`-qcEm>#hfZW&d@!?e<#hB#n?(%;r`=_HIPDzkoFoVOh8)-m}m8XkiNX4Aw z1O=`S`&@+|RJ(gHICH;ee)Q%L@4HwBgM-WVJ4^iJJJZH>r@ET4=V8>ngQ1^d9WM2A ZGQ9aL^<~>T={TS%44$rjF6*2UngEKoYfJzD diff --git a/graphics/event_objects/pics/effects/shadow_extra_large.png b/graphics/event_objects/pics/effects/shadow_extra_large.png index 41b37d8fbae0e2465dc016f4bddd8d7cedbfb976..765a5291a8d9eb0f6508e5d9e223c421112ca56b 100644 GIT binary patch delta 47 zcmV+~0MP%X0hj@hI3@q2wAE^Ri$PM9#r9f@y$~@{w4`Etb3r*d82|tO0000TZJx)G FYC90I6?Fgr delta 60 zcmbQixRh~%g^{IKwWei~gl3R{g5|wu?~2bBdrb-YpA>b}(eeNP{|pQa`U>ZSfD~g% PkY6x^!?PP{6JxCbu)P+r diff --git a/graphics/event_objects/pics/effects/shadow_large.png b/graphics/event_objects/pics/effects/shadow_large.png index f0e76cd7ffd48d55ee831ab94715431eefc0809e..e917823b05cd96f64884877479f9c8df82d73483 100644 GIT binary patch delta 47 zcmV+~0MP%P0gwTZI3@q2wAE^Ri$PM9#r9f@y$~@{w4`Etb3r*d82|tO0000TZJx)G FYBLSV6b}(eeNP{|pQa`U>ZSfD~g% PkY6x^!?PP{6Jw15tpygC diff --git a/graphics/event_objects/pics/effects/shadow_medium.png b/graphics/event_objects/pics/effects/shadow_medium.png index 7bf9afef71957a93bf13446d3c3c2f355be8805f..83ab6e1f6e1ea9688552ceea05a987954f77d643 100644 GIT binary patch delta 47 zcmV+~0MP%O0gnNYI3@q2wAE^Ri$PM9#r9f@y$~@{w4`Etb3r*d82|tO0000TZJx)G FYBCLM6 P$S;_|;n|I}iLpiitd16y diff --git a/graphics/event_objects/pics/effects/shadow_small.png b/graphics/event_objects/pics/effects/shadow_small.png index 6c13c1b862b7c3f22c31436bd554a08efd197cdb..f5feada2b96633ca74e5281fa01fa7fd59aff536 100644 GIT binary patch delta 47 zcmV+~0MP%O0gnNYI3@q2wAE^Ri$PM9#r9f@y$~@{w4`Etb3r*d82|tO0000TZJx)G FYBCLM6 P$S;_|;n|I}iLpiitd16y diff --git a/graphics/event_objects/pics/effects/short_grass.png b/graphics/event_objects/pics/effects/short_grass.png index 53eb7924e2177f33a6d2c349e9b63061481cf127..dc477e29fc123e1084ebecf59917dd6dd2c15ad9 100644 GIT binary patch delta 37 rcmbQlG>>tD%EUSwc1=$g#}J9B6K|^vl*%(XGXR07tDnm{r-UW|(4GpQ delta 151 zcmbQoIEiV3N;rFor>`sfBMwe6eU&#;#AO&57{p6lBT9nv(@M${i&7cfeOvmdKI;Vst0H^RP{Qv*} diff --git a/graphics/event_objects/pics/effects/splash.png b/graphics/event_objects/pics/effects/splash.png index a33a0c9dac3341419a9041e7df2ddbff49968f74..6e55ffae0b30d4d29a8432fc520174a68051c318 100644 GIT binary patch delta 37 rcmbQqw3Kmz%EUSwb^}ir#}JO06L0GY^aXO=WB>wBS3j3^P6`sfBMwe61J>N-oOc))7{p6lBT9nv(@M${i&7cfeOvn+a diff --git a/graphics/event_objects/pics/effects/surf_blob.png b/graphics/event_objects/pics/effects/surf_blob.png index 7e91e17dc16d778cbb6e1aefc3c23dc80af6a3e5..b5656cf16bf9daf4cadd999460518e8d27239219 100644 GIT binary patch delta 37 scmcc1{E}&c%EUSw_Aj0;jv*Gk6K{VK_|Uwjf&mCTUHx3vIVCg!03}-vqyPW_ delta 151 zcmaFKbeDO8N;rFor>`sfBMwe61MQ84EW!*74B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF+MaCp=cbET5 w**_fx$}*M&`2{mLJiCzwfbI+T`9Ki{Pgg&ebxsLQ0O6`F9{>OV diff --git a/graphics/event_objects/pics/effects/tall_grass.png b/graphics/event_objects/pics/effects/tall_grass.png index b6b44307a944b5f53f7c398bd04073eb93191414..919fc6f8a833166b566fb490c7f8a793753ccf77 100644 GIT binary patch delta 37 scmcb}e3xm0%EUSw_7|Qmjv*QoC*FQ0VDiyxEdvmEy85}Sb4q9e02bN}?EnA( delta 151 zcmcc1bdh<2N;rFor>`sfBMwe6Lru4okU9ni2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)urZB4d)byUYKj w?4OPTWf@C?{DK)Ap4~_Ta$b14IEGZrnV9}epkrIy4xk8wr>mdKI;Vst0QUPWiU0rr diff --git a/graphics/event_objects/pics/effects/tree_disguise.png b/graphics/event_objects/pics/effects/tree_disguise.png index 77d07ef4eddfcb90c1cf5cffaff9854f2f3de10a..8acbfbd5d4959478898ce328dc853ff10f1db679 100644 GIT binary patch delta 39 tcmdnUvX^;+%EUTr4n_}87sn8b-i^227zMmszNRq%fv2mV%Q~loCIJ1Q3~B%X delta 153 zcmdnXypd&sN;rFor>`sfBMwe6V;=jkN4psq7{p6lBT9nv(@M${i&7cfeOv%W`?qaOPi_P|w=Kqv~VzjK3q}9c9#iT*BgBYZ0)|W4J0005P zNkl=jTwmcS-?D-xEOY(NTYlnk^^enooWOaHa36>P3Jq&P8i9--~BApf+MMbN@NTbc-+0btDwFi_DkP=jKC$ylljG#lsj?NG3rfaimcz{~F4OhV%((MQ z?NighN!l@^Ompqy72m{sSamIMPw?PhY9A^me4cJO{|Aew3_<<(b&LQ2002ovPDHLk FV1gs=40iwk literal 0 HcmV?d00001 diff --git a/graphics/event_objects/pics/effects/unknown_16/0.png b/graphics/event_objects/pics/effects/unknown_16/0.png deleted file mode 100644 index 491801c325a2dec635a40d514b93ed4011082cbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSuLR*(T}!?*C$r1`L_C8+85~h*(UJ6P>^i z)%Rr|+YveS;G>iN#+h_Ci|G}|Jel<3hh?hS;<%{P;^WJwx9&V*qvN~2^l-$PqqCLQ rZc6?-cgbP0l+XkK%xYxD diff --git a/graphics/event_objects/pics/effects/unknown_16/1.png b/graphics/event_objects/pics/effects/unknown_16/1.png deleted file mode 100644 index f83ca15da5aa69f65882f7c21ccd868e3143db60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSu4h3A zKdw5>J|j2bopfJ#$Z3fWZ%WxXjjl-ka4UMbs5?$lGa%}$SYx)>`Etn(drjnCclMVr n)J@Q~mant-EKJUN`jeUAqU5a5m5aTARx^0I`njxgN@xNA1;1b5 diff --git a/graphics/event_objects/pics/effects/unknown_16/2.png b/graphics/event_objects/pics/effects/unknown_16/2.png deleted file mode 100644 index 073aa9b7ef8518833bdee1fe1cfa70a1331063e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSulzLgexKeI%IKHYlgSu*cb)*r4Dz1mwP<{nycc5&hH^eaN|XW6^w-V&OZ tyim`mcbCW!^Y9?EE{{Ez-}KCwXMdVsMxw>()E=Py44$rjF6*2UngE%DXl(!h diff --git a/graphics/event_objects/pics/effects/unknown_16/3.png b/graphics/event_objects/pics/effects/unknown_16/3.png deleted file mode 100644 index e7b5c96cf524f451d779a86dcdebd09ae4118a6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSuU5Qh4+4ZoRmQAEV;@iy3mwKd?7PBuTE|-@ wXLVkDz_*r{_xqxM&gw-kx1PFuBKIG|)<23JNB^vy3UmU4r>mdKI;Vst0DWg>PXGV_ diff --git a/graphics/event_objects/pics/effects/unknown_16/4.png b/graphics/event_objects/pics/effects/unknown_16/4.png deleted file mode 100644 index 8972d5d810190983b69fb50854757aaa8fbb2334..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSua>LS`8Pis->;at^xpii-Pf$o yZEN|~5&guKC+4t4&K^VYpev2u^A(nV=0C7l+U@_kh@C(;FnGH9xvXwLYu+WTIof^p+mvVjr!*&RSu5 z_Va0mn}Zgp{(0P*9F({-MKSSg%9_33%KaMMnM-t6q&e@bu~6)=FqEu}IakAz|B0RH XR^;XT@w(rEb}@Lm`njxgN@xNAGm%+c diff --git a/graphics/event_objects/pics/effects/unknown_17.png b/graphics/event_objects/pics/effects/unknown_17.png index fedf86a10b0c4b18174196b3daea785d8da95ae1..f158bebc81e7bfa6fb1e64a5a00e9358300a0f50 100644 GIT binary patch delta 39 ucmbQvx|n5x%EUTr4#st!E{-7 delta 153 zcmZ3?GM#mTN;rFor>`sfBMwe6Q?|~VYm^xn7{p6lBT9nv(@M${i&7cfeOvS>EaktF=u1?8b$&08$n+|#(28=xvX%W`?qaOPi_P|w=Kqv~VzjK3q}9c9#iT*BgBYZ0)|W4J0002v zNklyiR;lE?ZvEWtaeaEh7>Yp#i3@awkjx2U|P7&dxZ qwRy^&G(+uS(C)MozC?BEcm4v??T4!bpiRC20000wLYu+WTIof^p+mvVjr!*&RSuH9XFVKK8tm$ujl$Sn{UB;RtWk} q-V*$Owf2Plhg}q&NS?giaCX1Gx-#EJ6)z>A?F^o-elF{r5}E*y-(dIv diff --git a/graphics/event_objects/pics/effects/unknown_18/1.png b/graphics/event_objects/pics/effects/unknown_18/1.png deleted file mode 100644 index 392298f5a734c09908ae8af5492faf2347e027a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSuC=>gTe~DWM4fBcEf7 diff --git a/graphics/event_objects/pics/effects/unknown_18/2.png b/graphics/event_objects/pics/effects/unknown_18/2.png deleted file mode 100644 index ff418e940c655817caf3cb3bec4eeb4bbefa02ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSu7PE?8_FcdGX_f_(g?aNA)Ks`eJ#b?Y7ODS)iAAR%XZAMEO@0 rfq%mDf178_Sd;ytZl?Ou-#?iCs446cIm4U-w4TA!)z4*}Q$iB}>=I&i diff --git a/graphics/event_objects/pics/effects/unknown_18/3.png b/graphics/event_objects/pics/effects/unknown_18/3.png deleted file mode 100644 index 0e1e134386f2d9cd163d63e48f6c2b61699be11e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSu;vEXewzdszA`1;}||DL-?&I-r9Z_u`` rJ9psC5z#gC4u_`PSpL&$=NWqecBO>|ekXW=wljFT`njxgN@xNAqori> diff --git a/graphics/event_objects/pics/effects/unknown_18/unknown_18.png b/graphics/event_objects/pics/effects/unknown_18/unknown_18.png deleted file mode 100644 index 19f08ac537e418f769c112e7ee207790ee0f5a52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!VDxsPNql!DfSXiUsv`=9GqfiEIz;HodF7o zm$*ih1m~xflqVLYGPwJ=0F6;7OD$3`)-x$=UGfm9grlUu&mAaZ3}iESHE7BMDVB6c zUq=Rpjs4tz5?O(Kg8-ip*W$hJw)}5yKAL3NZRi!nVd%(^wB}vXnxoxkzfF1ee@b)G zmNiqBTs>NRbcy4ZW{D+P*QV>20`)Q`dAqy(U&{XJD2P)M{`}v3$F$mpjLjNzSEoNSOs-3u_pbHa)nTbEp-1*@->_u+z09s4NsZ@? z&JFY0gZ=8~?$Q9eZk2@G1(r5-%0T7KHhV6lcvq(IF3kp4L)-8&{K|F~e3 z^Ch_7^>N@G+j-S}LT%py_;-KVX}WzKPwWzY=C4Qpt=PRoel~A;mbBO`^AE4Lz1zNG y&oT+Ks;I4%r{J;nW0ADIBnCbKk|Z47KnyFr}1l5-H-wi#iA5D zSq>I&loWW?WD3S@`U>yKp7nHCO}n{YhA0O_)5nv4dhFRy?M#u9!^dDDFbl$?UIOHc zfgK^h6ntlQkC;|1)(&!ba+`JR!79Q)FK%H+a!4s}v6EI*&;f6|_+YCY;1{nkZ_f*l W`J8V__%TBO00001ct*T`q3FY~Vnk3Z;CWo_ees8_aCNa9JkevUn5hkcI9 feFe49^?w*%#HH=$UT<;{Xa<9)tDnm{r-UW|M{P^w diff --git a/graphics/event_objects/pics/effects/unknown_19/1.png b/graphics/event_objects/pics/effects/unknown_19/1.png deleted file mode 100644 index 6fde1a291318e98f8481464c3570663252d96d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUO%1w&&}h=&>KWFxmTmf} zNs6EEC7XGy4&G_05LPNv@FJ`K$?BhLwjVkbKC6EBb4IhX>AO7q($#>5GkCiCxvX$DbJsYfN5Tv-sC_ZvD^hY0r|yEV+S(GI+ZBxvX&U>cv7h@-A}f$@5a1KynzZKKw`WJ+UEOkT%as5B|KEG|ZtvM=bGF<|nzQBq-e*8n z@18BWceeTJmaMaLK&MtP8XyS&186 zHI`x)@iV7v@r+XjELh_X!alIC55|AsjQ46BbCcv^l-F_U#*wz}brvr(L_qkjB8+agZU&z~PAklLaG#?_=()^2H}l Q0yQysy85}Sb4q9e05%y$djJ3c diff --git a/graphics/event_objects/pics/effects/unknown_20/2.png b/graphics/event_objects/pics/effects/unknown_20/2.png deleted file mode 100644 index 416dae69db4724dbe2ca67076403b7080ab246c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUO}xgHPTj8$-(rv9$fNou7b)GkCiCxvX&(_hr*1Bc3@iavg20n)mNGId8kVO}y^y-p|IuTbuj}Qi0|&c)I$ztaD0e0sxD1 BSoQz_ diff --git a/graphics/event_objects/pics/effects/unknown_20/unknown_20.png b/graphics/event_objects/pics/effects/unknown_20/unknown_20.png deleted file mode 100644 index 83e35467a185024283a160eae238c7fe2b96b7e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^0YEIk!VDyf)1Q6DIM25}cn_Ql40p%HZzf0yIXUEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4& zeH|GXHuiJ>Nn{1`4FY^ZT$9$k`}XYUyQ^F7ZJF}_|Nnc>-t9g6Y|fT@NprUR-}?-x z>fN&?_s%w7-I8^74#<5SA0J)?QjAI7?k@kAvVS@X;*%I`maeY>av8iOA(&j0uE7ovtQH|`B zjy0W@B=*sGdCte4U^bnI$9#wEHmv7AHf7)D1P9X=b3eDT4r?5Z9zN@4h`d`tItMdt0Xb z|NsBqvv+&XKAW@UUecT`|Mxxvs(SZq$-T49SGQ!HodYtZ$S;_|;n|He zAVDT4r?5Z9zN@4h`d`tItMdt0Xb z|NsBqvv+&XKAW@UUecT`|Mxxvs(SZq$-T49SGQ!HodYtZ$S;_|;n|He zAV<&B#W93qW^#f<12>15zWxk52EpA24p%?m;qRz@cwiDT4r?5Z9zN@4h`d`tItMdt0Xb z|NsBqvv+&XKAW@UUecT`|Mxxvs(SZq$-T49SGQ!HodYtZ$S;_|;n|He zAV<^F#W93qW^%#--g9$y{(g7&u5r4=xi@yqEam47KD@cdD`dkkiJ7q_iedT;@hLae S3fX{~7(8A5T-G@yGywo}7eycd diff --git a/graphics/event_objects/pics/effects/unknown_29/unknown_29.png b/graphics/event_objects/pics/effects/unknown_29/unknown_29.png deleted file mode 100644 index 2da55f179d82f719d92f7804908a606573c0998c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^20+Zg!VDyRSrbcu6nlxMuPgf_4o)#k);+14rUHe; zOI#yLg7ec#$`gxH8QgtbfW|14r4}g|>zNd`E_nztqNKpj9VlZAWHWd*XvzaAmUKs7 zM+SzC{oH>NS%G|m0G|-oq&4rpJv;jD>Xv(3ru_f^|K78Ad(S?bv*ljWoGt(NJ_D+H z_iV|%v&~nxWSyM@a$m>ChgX3VW0JSK%m1b9pN@h!B|(0{3=Yq3qyaero-U3d6?0ns zcJeY9awIcs{%>F+cYu{UrS(jKn^$R&h`7WoApxF$bu6{1-oD!M<^G9;# diff --git a/graphics/event_objects/pics/effects/unknown_33.png b/graphics/event_objects/pics/effects/unknown_33.png new file mode 100644 index 0000000000000000000000000000000000000000..26b8522003b3ad2b60747c3e1ac14c1e5ac1afc3 GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^0YEIk!VDyf)1Q679Ib>_w!{^Z;ekJLNX^s^W?h zZt*#5+ci}FYTk9_$P9@uwnodt7e2B4)p34%vP0-Kajk@_v@UWHe;8; za>lOaHP+L(WKLX&Na|ycd??ek^@U5QvBx>9GoDi-P0WsQ6dEv;9G!Jhyr?TpGp!+w z!M8PXsm+X{jgbzwOt$gQ0$bq>Ivp8=48p?N{&S@XlMX z@zU3dWp6*cIAS{cDR20$mqo?=|9Zb{EvfxeAUXd*kfh^1gTBXMT<;I>^U^zJ^Wx)! qj1Nt6-|t@PpI;$2=fV57`eU-M)TR^`UfX{b6n>trelF{r5}E*O46U31 literal 0 HcmV?d00001 diff --git a/graphics/event_objects/pics/effects/unknown_33/0.png b/graphics/event_objects/pics/effects/unknown_33/0.png deleted file mode 100644 index 2241eabd318bd1c67df192ab873dbdd4bbf87401..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=9cj|4&Lvx_Y&H&6=q0 zZpUZe&hCA;rTN~Lq&3|@Sv24?Gh7=e#8?vK7tG-B>_!@pWA5qV7{W0#IYEJIgW^Wv z1x}m-VNB8?4GZ_mtXi{}*{Qgs#H1nP+)P>~!H%tHk diff --git a/graphics/event_objects/pics/effects/unknown_33/1.png b/graphics/event_objects/pics/effects/unknown_33/1.png deleted file mode 100644 index 5f90405d83ce0e2bd254bece37b487b7297087da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=9cj|4&Lvx_Y&H&6=q0 zZpUZe&hCA;rTN~Lq&3|@Sv24?Gh7=e#8?vK7tG-B>_!@p6X)sT7{W2rwRa)k0RDL%0&Bt@gO3F}iqf@1sx~=A zt`d_8jM&sMHT=oV>*wz+3+L26X7MdU^PAQh(+{5+%dI3IH5cEX3v!94tDnm{r-UW| Dcok6X diff --git a/graphics/event_objects/pics/effects/unknown_33/2.png b/graphics/event_objects/pics/effects/unknown_33/2.png deleted file mode 100644 index 3f1c3a76a496503c91753921af726ca0bfcac471..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=9cj|4&Lvx_Y&H&6=q0 zZpUZe&hCA;rTN~Lq&3|@Sv24?Gh7=e#8?vK7tG-B>_!@pljiB-7{W2rw?|Rvhyf2X zZ?MFr>iEuP@1(;9+G`B{_!@p6YJ^X7{W0#x7Sdp!GVK0 z_~jk;FV#^Ovz*WIS4_EX`6ukcu|p=2Z4M3cy-%jCb6Um1adyQ40l6&>*~;0ISvI#Q zrXSNfw2))E?fK_?G0(T0nkc_Fv|g*Ly8iT?{a4Lr6)Me4RZT1cImFY|&t;ucLK6T} Co={Q% diff --git a/graphics/event_objects/pics/effects/unknown_33/4.png b/graphics/event_objects/pics/effects/unknown_33/4.png deleted file mode 100644 index c2d1785bf7e8a9ba8cb0238f556747857e11b2c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=9cj|4&Lvx_Y&H&6=q0 zZpUZe&hCA;rTN~Lq&3|@Sv24?Gh7=e#8?vK7tG-B>_!@p6XNOO7{W2LwpUT8!GVWa zyPw~nhW{wPM{1zB%%tDCnT8rlv)=mLn(=p~toM}SxsorfH*`uVR!ZzzNd`E_n!4!ckJ-=MI!H2C^Bv8Z_mB6id3J zuOkD)#(wTUiL5}rL4Z$)E0F&G|9?_a($%ZoYt}?{cRN1&c6RT(EzS3~B(3QN%Ax_E znc><%A;u(ccbET5**_fxaY};xf*Bm1-ADtn6+K-XLn`LdXL^9L>78;LdsT78 z3Agy1we1=ze>LyAa%6_Y7h9v{;R~Nw{^~ftJ=r1jnz&ZNQr+2xDvO`9ocndoPn)sJ zU^!z~^BU`ETrwvvL?rdGM?RG4+WNvJ)Y#*k)fvwzktSxxI0_9IN{-IDC|=Z+rkU1| z#^Bo;xzuJx(Z)!JTc%rcr)({{_UK}x<{ggL+*UO?}{(rq+wwBcXDUh81AV|{joh*G0EMiltDnm{r-UW|VeQOj diff --git a/graphics/event_objects/pics/effects/unknown_35.png b/graphics/event_objects/pics/effects/unknown_35.png new file mode 100644 index 0000000000000000000000000000000000000000..b2072bd2645adcb9d120be9199bbfb4974f56ea1 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h->p2umAu5pZ)fK&ei{3 zNB{q4Ab_m(&bkBjT6(%ThDc0JPEg>qSimi@fScoiNP||XSew)#C8mYFEenj=niSeL sD+oATNmy~fpqV4PaF@tk4g&^;3N}{3!1-$}fQB%5y85}Sb4q9e0CsaiD*ylh literal 0 HcmV?d00001 diff --git a/graphics/event_objects/pics/effects/unknown_35/0.png b/graphics/event_objects/pics/effects/unknown_35/0.png deleted file mode 100644 index c2ae128f7f2c03128b39294e3a25061757bd15a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUZC>N`|NsB9-~P|J`rqs5 z|NjgGkhR`fcc5Ozk|4ie28U-i(tsRkPZ!4!j+w~`3epk|nPP$(hXXD!__C~P%V1z| Xk!NI1TrK?vsEonW)z4*}Q$iB}l+rti diff --git a/graphics/event_objects/pics/effects/unknown_35/1.png b/graphics/event_objects/pics/effects/unknown_35/1.png deleted file mode 100644 index fe68b19fd06d2c053f23d6f1e4ec7faca46d3b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUZC>N`|NsB9-~P|J`rqs5 z|NjgGkhR`fcc5Ozk|4ie28U-i(tsRYPZ!4!j+w~`2e@Psc$g)e8RkCJ;R#JqVF`Pp p!@(k8xPoJnl+Rm^$q&mKfo_Ok;eYWwodu|o!PC{xWt~$(695fg+c{c@($`Y^~Pp00i_>zopr0DC1yyZ`_I diff --git a/graphics/event_objects/pics/effects/unused_grass.png b/graphics/event_objects/pics/effects/unused_grass.png new file mode 100644 index 0000000000000000000000000000000000000000..ffd68ec1da89c9c336ed536ad1493d3a736a0b5a GIT binary patch literal 389 zcmV;00eb$4P)%W`?qaOPi_P|w=Kqv~VzjK3q}9c9#iT*BgBYZ0)|W4J0003H zNklqBOO3N`=9&Yf;KroMG`W_3_JU@#voIN(*F@7 zZcz~X1N{!|6t+SHP!ezIr1Z(=mC>W+~ z=Oq;>EPAZgj1ejA@|^((Qi6$6&By{QyEJxA-B<-I$+$Ex#K2-Oc8j_+vs3 za}S=J9-e204qaTML5u~HQ_Hnj66Vtc9*qhT&%gOdU3o`w0+t;Dqs9bTJZnF>$ z_nYgM*TJbL|Dc^^2K#XmTtz0QZ~~9heuBr#PfmAV{XROu^i%yOnfC>^`>Po`{Z!xK jB4$euwLYu+WTIof^p+mvVjr!*&RSuLR*(T}!?*C$r1`L_C8+85~h*(UJ6P>^i)%Rr|+YveS;G>iN z#+h_Ci|G}|Jel<3hh?hS;<%{P;^WJwx9&V*qvN~2^l-$PqqCLQZc6?-cgbP0l+XkK*ehWA diff --git a/graphics/event_objects/pics/effects/unused_grass/1.png b/graphics/event_objects/pics/effects/unused_grass/1.png deleted file mode 100644 index dd33b0d8833891263c183a35cb719fa1d546be71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSu4h3AKdw5>J|j2bopfJ# z$Z3fWZ%WxXjjl-ka4UMbs5?$lGa%}$SYx)>`Etn(drjnCclMVr)J@Q~mant-EKJUN b`jeUAqU5a5m5aTARx^0I`njxgN@xNA9OPUS diff --git a/graphics/event_objects/pics/effects/unused_grass/2.png b/graphics/event_objects/pics/effects/unused_grass/2.png deleted file mode 100644 index 345d454cdd55248f64e886bd76051e11efd0638e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSuzp;?&+a>Cj8%tb)VOzbuWrXTO_&t?awMo_kNKd9CcouRgzf@hkgS eU$ZdZ@A6t3WL0lGo7M!hoWax8&t;ucLK6Vs4PvGM diff --git a/graphics/event_objects/pics/effects/unused_grass/3.png b/graphics/event_objects/pics/effects/unused_grass/3.png deleted file mode 100644 index 087676102697427479e0f68801493a8e93bd8c4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUE#CWX%m3!)qe+(ChF(z| zhK>wLYu+WTIof^p+mvVjr!*&RSu#UFqGTvg~a@>lr*<{an^LB{Ts5%}ZR* diff --git a/graphics/event_objects/pics/effects/unused_grass/unused_grass.png b/graphics/event_objects/pics/effects/unused_grass/unused_grass.png deleted file mode 100644 index 0c573b4aa4cd8e1b656f3f0186b3f560cc2567ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!VDxsPNql!DfSXiUsv`=9Gv2ejB7&|faJwX zTq8%tO|tAZ^orszbYw_c^Db%4(eAU~rab#Ur8#NK znkh@J9xXn)#Bocr#FDIQ)AdV%dKr_v-Ch1KW&d;($QJN)aSW-L<2y01=&%Bhi>c{< z9zVVSX+8mESqI18^MBuOGP87W6*4-?WBq%}F@@mvOaBFx^8y8aGymm#E3(arC7^=s z;byU$VZ7U-y;UcDT=#I7)+Bc4O9#TDA0{12-M)$?``1woiDkLZRYf&*s@7cV5!8J9 zX)YssP*Z2n*%M4UyG_dc?nbccoZMlef8;=tL0R8H&0P%7x_=})@fY*Yn*V0mTO&jxYq*6kZ{L4o_GSOmC%@Tn8~x3{eSP7*6)}Z#@-_?beV_e$+Vz7g z)&DP;o67dPP$E{S4&#`4Y~hNDb1Vz gaclaAr_28_@}^ZV7Tj030}LnzPgg&ebxsLQ03}Dnc>n+a diff --git a/graphics/event_objects/pics/misc/birchs_bag.png b/graphics/event_objects/pics/misc/birchs_bag.png index 045e5546c73d6adb71ad05d196a903e200ba8270..21f463b718b7cff3f6c1d2d806db4ca14bb25934 100644 GIT binary patch delta 9 QcmaFGc$aZP!o=KK02Q_bH2?qr delta 20 bcmcc1_=<5t0vBURkY6x^!?PP{6Jr|yPxlA@ diff --git a/graphics/event_objects/pics/misc/birth_island_stone.png b/graphics/event_objects/pics/misc/birth_island_stone.png index 2ec134c2291a7fa7c5494e5907501f4801549aea..3c5d82c1195e3ec4b00148b75974959d5d005353 100644 GIT binary patch delta 9 QcmaFBc$slR!o=KS02K@b7XSbN delta 20 bcmcc2_<(Uj0vBURkY6x^!?PP{6JyH&PH_j| diff --git a/graphics/event_objects/pics/misc/breakable_rock.png b/graphics/event_objects/pics/misc/breakable_rock.png index db9926804df07c3aa3a595ae9f859f53050c94f0..c5054da411b866e6e630e95efaa3b3df318b66dc 100644 GIT binary patch delta 39 tcmey!{FiBh%EUTr4n_`77sn8di5qXTF$!4j_N!+A0#8>zmvv4FO#lIz3^V`$ delta 153 zcmey%^pSajN;rFor>`sfBMwe+M(gaz%1;ao4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N24r)1x;TbZ%-NXE#wakugLMH=p25@A&t;ucLK6Ub(<}1; diff --git a/graphics/event_objects/pics/misc/cable_car.png b/graphics/event_objects/pics/misc/cable_car.png index e0bd21ddfa5e19edaa4d64520c6ea440fc2a8588..67f581fb978095c524a84e9317ec075a5eb2136a 100644 GIT binary patch delta 10 RcmdnVvW8_s{KlNKi~twH1V{h? delta 22 ecmZ3(vXf;(JU0VlNswPKgTu2MX&YnDGXelqMF`sfBMwe+CY{5}*MDPRU=S~HjVKAuPb(=;EJ|f?_i+jEb5|%! zEmAPnGbwCc@(`$mqolyk9VlZAWHWd*XvzaAmUKs7M+SzC{oH>NStlymD>5c|ySw~f x%KqsnP?oVI$S;_|;n|HeAm_2Ci(^Q|oQdfV1yV1wb^%2gJYD@<);T3K0RW$aE>Qpg diff --git a/graphics/event_objects/pics/misc/fossil.png b/graphics/event_objects/pics/misc/fossil.png index a8da0e8ff65d69eec073be43666de0f7371d19bc..3e070a6c9b9162dec453d5f407e0050ac4dc205c 100644 GIT binary patch delta 9 QcmZo=`oTCMVPftK022uW2LJ#7 delta 20 bcmeyt*vd2^fs3&u$S;_|;n|I}iLtW*OC<-; diff --git a/graphics/event_objects/pics/misc/item_ball.png b/graphics/event_objects/pics/misc/item_ball.png index a30e02fb1507ce737f939130624928f2c78871aa..ef02e158c99bfe6bfa98eb4c880e9c06ddaac6c1 100644 GIT binary patch delta 9 QcmX@hcz|(2!o=JJ029dr-T(jq delta 20 bcmX@Wc$RTO0vBURkY6x^!?PP{6JwJBON6 diff --git a/graphics/event_objects/pics/misc/mr_brineys_boat.png b/graphics/event_objects/pics/misc/mr_brineys_boat.png index e790eb172d7b241324e5f99fa4a799f3f0f8cb45..249f25b51ba2be9791be633d757587297add3798 100644 GIT binary patch delta 39 tcmaFB`i5nK%EUTr4#w}EE{-7`sfBMwe+W`lEk5B*?ZU=S~HjVKAuPb(=;EJ|f?_i+jEb5|%! zEmAPnGbwCc@(`$mqolyk9VlZAWHWd*XvzaAmUKs7M+SzC{oH>NStlymDKRi6dAqy( zU&{XJC{UWQB*-tA!Qt7BG$8xCr;B4q#hi`lUl|3CnCUJ6$}@Pn`njxgN@xNAB#?fs3&u$S;_|;n|I}iLuiGN{I)= diff --git a/graphics/event_objects/pics/misc/submarine_shadow.png b/graphics/event_objects/pics/misc/submarine_shadow.png index b9dfc4c553a596b6210c1ebb3f8318b2f069b316..d43bc98dc1a1e2fe0bd7f82c38749a33f6d5b86f 100644 GIT binary patch delta 9 QcmZo*`ph^XVPfuN01~tV_y7O^ delta 20 bcmey&*uXR)fs3&u$S;_|;n|I}iLuiFN@54W diff --git a/graphics/event_objects/pics/misc/truck.png b/graphics/event_objects/pics/misc/truck.png index 0d31ffbc20c64de8e89a0e121b572a6f52ccd244..46940a9a3a6fb1f0d2de0821a344c7f2b5798aed 100644 GIT binary patch delta 10 RcmdnOyqtML{Kgy)MgSI01GfMG delta 22 dcmZ3^yoGr}JU0VlNswPKgTu2MX&Ym`7y(j22Y~

zmvv4FO#t&(3=9AO delta 153 zcmZ3)I*o0DN;rFor>`sfBMx?M37xjg3N8i)2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;y?^>lFzshG1dU7JZDKlbV#kTIUFelF{r5}E+Ov@4?k diff --git a/graphics/event_objects/pics/people/beauty.png b/graphics/event_objects/pics/people/beauty.png index ac07e8e9b9eec9b8a51717386e08e6bcf29a6691..dd3a3d76b1d958938d197c1705c71ea12a9415e8 100644 GIT binary patch delta 39 tcmdnPc7k<+%EUTr4yIsF7sn8f&W*PNnFO{7=7uu>fv2mV%Q~loCIA3K3`hU~ delta 153 zcmX@Xx`%CoN;rFor>`sfBMx?MDPbl{^Q{aF4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yW7?CIhdQZZ*^dLWa)Vzmvv4FO#mIF4U_-? delta 153 zcmey$`jTyeN;rFor>`sfBMx?MX=4Q+H5HJsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;xv@N{tushG1dy^cvh>szM)$QVyoKbLh*2~7anW-GD) diff --git a/graphics/event_objects/pics/people/boy_1.png b/graphics/event_objects/pics/people/boy_1.png index 72cb2c2b51c988b44a0efbe3a5d76ba1de196b80..cd7507c9b2d0c21e463f51bf8aeab03a21b639c4 100644 GIT binary patch delta 39 ucmbQnwup6t%EUTr4kles7sn8f&W*RVnFL-RKX;V@2s~Z=T-G@yGywny&kcM4 delta 153 zcmZ3)I*o0DN;rFor>`sfBMuf}DcPrt?o${T7{p6lBT9nv(@M${i&7cfeOvzmvv4FO#l{*4SoOs delta 153 zcmcb|dWmg`sfBMuf}8GeUH6QdXy7{p6lBT9nv(@M${i&7cfeOvN`sfBMuf}S@j$rj)x2k4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_KuS1D3jExGGR8nQgI9y5Jdk2Zcl32+VA$Bt{U?!iqN1G=17ni6yUYKj x?4OPTr5Q_t{DK)Ap4~`eU|_QIba4!+n6ok6hDks=VW|(u7*AI}mvv4FO#tNQD=Pp1 diff --git a/graphics/event_objects/pics/people/boy_4.png b/graphics/event_objects/pics/people/boy_4.png index 2e2fd0412a87fb84a82f79b779c3e5592ba191fd..6536d2c23a60aa0af42b1d36246af11f6d42e5e3 100644 GIT binary patch delta 39 tcmaFO_MLTt%EUTr4yGng7sn8f&W*Plm;@a4Jwq6Pz|+;wWt~$(695lO42S># delta 153 zcmey)`kHNmN;rFor>`sfBMuf}dC_TWtsgTmFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq7Ulc$SgNX49u=?zQ*tNP#if{gKW^>bP0l+XkKttBn; diff --git a/graphics/event_objects/pics/people/boy_5.png b/graphics/event_objects/pics/people/boy_5.png index 19fff5b36e68306bc3b18c9e49d24c3fd0e96809..b0b7426516e681567b6311d5043156f34a2d2554 100644 GIT binary patch delta 39 tcmZo=naDgrWn!H*2cwLqi(`n!#ErM57zK=Eg0?UKfv2mV%Q~loCIH@;3mE_a delta 153 zcmbQp+{!XRC7iv))7O>#5eJK~0<+cfC4CGG4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24u^4x;TbZ%-NVO#VF9ZzqtftjHj!g%Q~loCIIRQE5QH& diff --git a/graphics/event_objects/pics/people/brendan/acro_bike.png b/graphics/event_objects/pics/people/brendan/acro_bike.png index 367fa1bd5a206c8bac324a8bd2b46777e437f2c1..183e2b7c957463ed1a1dc06667554da34e314308 100644 GIT binary patch delta 39 tcmbO#vQT(}%EUTr4o)3U7srr{#*MeNI0Y&$vgt7Zfv2mV%Q~loCIIxs3*rC( delta 153 zcmZ1|JXK_ZN;rFor>`sfBX$`9Gma%;^E4S47{p6lBT9nv(@M${i&7cfeOv`sfBX$`98QEnIw!LCtU=S~HjVKAuPb(=;EJ|f?_i+jEb5|%! zEmAPnGbwCc@(`$mqolyk9VlZAWHWd*XvzaAmUKs7M+SzC{oH>NStlymDKRi6dAqy( zU&{XJC{UWQB*-tA!Qt7BGzJDHR!bP0l+XkK`#&tj diff --git a/graphics/event_objects/pics/people/brendan/fishing.png b/graphics/event_objects/pics/people/brendan/fishing.png index 8ebe7ae4d9b7dc5ac7b50f33138abb343100e70c..bb2a8f7472d91a3658eaaff669fefaa8e33b7113 100644 GIT binary patch delta 39 tcmdnQvyXd%%EUTr4pvW37srr@){VE_Sp|Lwt`B4Y0#8>zmvv4FO#lXD488yW delta 153 zcmdnTy@_XnN;rFor>`sfBX$`9Mcr2y&;4LvU=S~HjVKAuPb(=;EJ|f?_i+jEb5|%! zEmAPnGbwCc@(`$mqolyk9VlZAWHWd*XvzaAmUKs7M+SzC{oH>NStlymDKRi6dAqy( zU&{XJC{UWQB*-tA!Qt7BGzJD%Pfr)ekcv4Q)7@DGJj*@SgN*TX^>bP0l+XkK2;(iX diff --git a/graphics/event_objects/pics/people/brendan/mach_bike.png b/graphics/event_objects/pics/people/brendan/mach_bike.png index a1518cf9a7a17e1cbca11a7b3bf66611f2e077b8..661ebb7330dafb2e42897984ec19aa7e0d14d9b9 100644 GIT binary patch delta 39 tcmeC>oXIgkWn!H*2lEn77srr@){VCpF$=gADIa720#8>zmvv4FO#lOU46^_L delta 153 zcmbQq(aSkOC7iv))7O>#5xb0lq(bw5zI_Y~4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yY5#M8wwq+-s-^hL}9PZuQ41R3M$>gTe~DWM4fOiL}4 diff --git a/graphics/event_objects/pics/people/brendan/running.png b/graphics/event_objects/pics/people/brendan/running.png index cf5a6b61e62505f161c32f0f710a93cae8081fc8..a66dbf8d3ed2ae23471212fd8db68312eec30415 100644 GIT binary patch delta 39 tcmeBWpUE~sWn!H*2h$Qy7sn8f&W*PhF$o-H=3rs~0#8>zmvv4FO#t`M3)cVu delta 153 zcmbQq*2_LYC7iv))7O>#5xb0l2-9OjLvaQM2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;xf;_2cTQZZ*^`XVNQpg4XRkTIUFelF{r5}E*`B`Vbb diff --git a/graphics/event_objects/pics/people/brendan/surfing.png b/graphics/event_objects/pics/people/brendan/surfing.png index c0ddb14f6a73cf4d5515c33c4d27e9960cc1d062..1baa4afc6c0fbcfdd2cf6d913750ec07a452e848 100644 GIT binary patch delta 39 tcmeyu*1$GFWn!H*2UEAFi(`mK=f>NeOacL4qr@42z|+;wWt~$(695aL4AuYu delta 153 zcmZo*`@%LsC7iv))7O>#5xcB_B=bxaiIoft4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N#=yYT?djqeQZZ*^dMA^B>(2TVkTIUFelF{r5}E++BP<^P diff --git a/graphics/event_objects/pics/people/brendan/underwater.png b/graphics/event_objects/pics/people/brendan/underwater.png index 86e436e55ddcc9fcdfd0016ed9ef4ae2c2732812..47f926b61267c5f489052d1c91f7be8335cab686 100644 GIT binary patch delta 39 tcmeBToyIajWn!H*2jfCd7sn8f&W*R{GYV{euNS}o1fH&bF6*2Ung9rC4HEzW delta 153 zcmbQn(#1MKC7iv))7O>#5xb0lx*T&fM+O4}gLsK+L`iUdT1k0gQ7VJGk4u1`yFyuN zk%F`sfBX%hsZj*~`>u)eHFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq8kcv4Q)0Z*{lzAR(1{ve&>gTe~DWM4fkRvUw diff --git a/graphics/event_objects/pics/people/brendan/watering.png b/graphics/event_objects/pics/people/brendan/watering.png index e348d8994dfed761d5ab278086aac3abcbc5029e..999608437b508f411dc847316dba84c9339798d6 100644 GIT binary patch delta 39 tcmey$+Q>RVWn!H*2NRE{i(`mK=f>MyOaczmvv4FO#uC343z)? delta 153 zcmZo<{mME)C7iv))7O>#5xcB_v}~ZPy9WaUgLsK+L`iUdT1k0gQ7VJGk4u1`yFyuN zk%FMLOY diff --git a/graphics/event_objects/pics/people/bug_catcher.png b/graphics/event_objects/pics/people/bug_catcher.png index 489050251436fb1d5391818a5e4005e617cd38d9..7f733b936112bdf19453ff8fe0101f8353cbc579 100644 GIT binary patch delta 39 tcmZ3+wuyCu%EUTr4klYq7sn8f&W*RNnFRU-?ofv2mV%Q~loCII!A3;qBA delta 153 zcmdnQx{PgtN;rFor>`sfBMx?MS>^176YnuFFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq89t*47)NX49u>DEjFq3X+PK*o5w`njxgN@xNAQe-SE diff --git a/graphics/event_objects/pics/people/cameraman.png b/graphics/event_objects/pics/people/cameraman.png index 23addbab1dec604cc09bec7860db215ee7adde28..b1f972438a7edaf1463c566020c6338cbe22fe20 100644 GIT binary patch delta 39 tcmbQtHlKBZ%EUTr4kj&67sn8f&W*Ptz|+;wWt~$(69Dcx3&H>Z delta 153 zcmbQwI+<;PN;rFor>`sfBMx?MdEQpXf0G#)7{p6lBT9nv(@M${i&7cfeOv5$X delta 153 zcmdnWx{_^zN;rFor>`sfBMx?M1#{`iys``o4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yYj;OXKRQZZ*^x*e0i6px??pge=8tDnm{r-UW|iUKN< diff --git a/graphics/event_objects/pics/people/contest_old_man.png b/graphics/event_objects/pics/people/contest_old_man.png index b5e9e5cde62ca0b49f20ca035745b571cce5d9b5..919230cb7ef1ef0748ac83068c94372e22d7c635 100644 GIT binary patch delta 39 tcmaFC_JwtV%EUTr4yJlf7sn8f&W*QgnFOAvOn=A#1fH&bF6*2UngAxk4l)1$ delta 153 zcmeyu`hsnON;rFor>`sfBMx?MC6%?(dX5YX4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4jW)V{Hw`%fb4L`6F#2F4_BcbET5 x**_fxN;8%O`2{mLJiC#`z`#`R>EaktF=u0XEt9|@CecoiF`lk|F6*2Ung9mwE4Tmv diff --git a/graphics/event_objects/pics/people/cook.png b/graphics/event_objects/pics/people/cook.png index 66d77802cb6ceee39bc44f5a123f5cdd69aa8355..9ac187130b89825a64a91b17f83ad0305a16755b 100644 GIT binary patch delta 39 tcmX@ca*26@%EUTr4#rqd7sn8di5qW6GYTwpitbzmvv4FO#lT>437W+ delta 153 zcmcb_e2is+N;rFor>`sfBMx?MWrfYTwK0?V?15`T-G@yGywoou`J>M diff --git a/graphics/event_objects/pics/people/cycling_triathlete_f.png b/graphics/event_objects/pics/people/cycling_triathlete_f.png index 42be9a608aa714f7b47bc651b300e932893abf69..a291b79c50f9c10df05a545be923c35ffb3884af 100644 GIT binary patch delta 39 ucmbQixrAea%EUTr4(9cqE{-7)ts8HzWfn-?C4Gzm2s~Z=T-G@yGywn(x(!1B delta 153 zcmZ3&F@tl0N;rFor>`sfBMx?MRWrfIC(ki3Fo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq9KdQTU}kcv4Q)7LT!DDSR(1v19d)z4*}Q$iB}c`Pl+ diff --git a/graphics/event_objects/pics/people/cycling_triathlete_m.png b/graphics/event_objects/pics/people/cycling_triathlete_m.png index e2ae09033d461aab5cf0456e8b0e068682dadac5..08a848d27dade286d67c59e13a4b7c86235ef3a8 100644 GIT binary patch delta 39 ucmbQrxsYRm%EUTr4(2tUE{-7)ts8HzVix#Ou(^`~2s~Z=T-G@yGywn?S`FI( delta 153 zcmZ3;F_m+IN;rFor>`sfBMx?Mbt9D>`JoI94B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yY5#?!?yq+-s-^i|9PN5j%jfQ<2U^>bP0l+XkK{JSjJ diff --git a/graphics/event_objects/pics/people/elite_four/drake.png b/graphics/event_objects/pics/people/elite_four/drake.png index 74328006e9cb4ea48c26065c3c2f8c9b96f0f897..9fde008fff342c58c5ef833af394d176483bd025 100644 GIT binary patch delta 39 tcmdnTa*BC^%EUTr4#rSV7sn8di5qVRGYTxvmgQmq0#8>zmvv4FO#u323*rC( delta 153 zcmX@bypLsqN;rFor>`sfBMuf}5w%mD&2|h74B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24shNx;TbZ%-NV8%qVan$hs3`jHj!g%Q~loCICTLEMx!x diff --git a/graphics/event_objects/pics/people/elite_four/glacia.png b/graphics/event_objects/pics/people/elite_four/glacia.png index 978d87db02c114012f88a061415fff5cd516e227..fcf6dbde2481c7c729f534069bfd7039a47d978a 100644 GIT binary patch delta 39 tcmdnPa)Nn+%EUTr4#r?l7sn8di5qVRG750(K8|Am0#8>zmvv4FO#u5O3>p9c delta 153 zcmX@XyoY6iN;rFor>`sfBMuf}VO5!fF3t=L4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24n|&x;TbZ%-NV8$S6?kZ@Cj>jHj!g%Q~loCIH>)D|i3^ diff --git a/graphics/event_objects/pics/people/elite_four/phoebe.png b/graphics/event_objects/pics/people/elite_four/phoebe.png index e5d54ed779798a96e932bd05fa1903d571997f02..243057ae261d614075e6ad10e962f0d193b9de1c 100644 GIT binary patch delta 39 tcmX@Wa)x<=%EUTr4#sd#7sn8di5qW+G76juJ{8IU1fH&bF6*2Ung9uQ4DA2_ delta 153 zcmX@Ze1K(wN;rFor>`sfBMuf}A-zc)Yq}U17{p6lBT9nv(@M${i&7cfeOv}=!)Hm5F`lk|F6*2UngApdEKC3Z diff --git a/graphics/event_objects/pics/people/elite_four/sidney.png b/graphics/event_objects/pics/people/elite_four/sidney.png index 15892f926c4140cd0f11ceed21b3d98cb4d97d4c..de9d08719336ebd13ef10cf23820ee6f4edeec32 100644 GIT binary patch delta 39 tcmZ3-vWt0w%EUTr4n|i`7sn8di5qV_GYT}77;7^Cfv2mV%Q~loCIIuy3%vjU delta 153 zcmdnRypCmpN;rFor>`sfBMuf}L9GBK=4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO^`O0bVpxD28NCO+zmvv4FO#t={3}OHP delta 153 zcmbQkI)QD1N;rFor>`sfBMx?MO$E;;2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N#=yX&?&;zfQZZ*^x+;@^SIRMTOadLObAuUxz|+;wWt~$(695S~45`_48&C7iv))7O>#5eGZBmhm$|#XbfG2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;zF^K@|xshG1dy@yG_Q+t{)$QVyoKbLh*2~7YH{wuZs diff --git a/graphics/event_objects/pics/people/frontier_brains/anabel.png b/graphics/event_objects/pics/people/frontier_brains/anabel.png index 0b6bc0eb968a6f18c9f300dc5c7b3420cef75a7a..fce97a5e379b07d710ff7a4b0a13351d7fb6e933 100644 GIT binary patch delta 39 tcmdnVc9eC3%EUTr4yFK47sn8f&W*SIm;~ZpZA)eV0#8>zmvv4FO#lkR4HN(X delta 153 zcmX@gx|3~!N;rFor>`sfBMwF}E6du+TkRMa7{p6lBT9nv(@M${i&7cfeOv`sfBMwG!2D6jyG7lLT7{p6lBT9nv(@M${i&7cfeOvEaktF=u0X7?XhU*N9k`sfBMwG!X0{`n>-!iO7{p6lBT9nv(@M${i&7cfeOvbP0l+XkKi^wgc diff --git a/graphics/event_objects/pics/people/frontier_brains/lucy.png b/graphics/event_objects/pics/people/frontier_brains/lucy.png index ebb93ad8cb30f507471c7960c746a7a1433dee94..7f935612c87a2d1e7a4505c5f45d8d75590d66c8 100644 GIT binary patch delta 39 tcmbQkwt{tn%EUTr4klwy7sn8f&W*PXnFLNG`Wr9+fv2mV%Q~loCIIs#3+Dg; delta 153 zcmZ3%I)`n7N;rFor>`sfBMwG!7DHoyA2$XD2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;x1_H=O!shG1d-H=JZ!bpS@WQ?b)pUXO@geCxamnnY$ diff --git a/graphics/event_objects/pics/people/frontier_brains/noland.png b/graphics/event_objects/pics/people/frontier_brains/noland.png index aa03eb7bd496a57f248ea3d498e59dd6ae14f5cc..b71430bd1668f37e7c4b7685e6104cefdb01ad49 100644 GIT binary patch delta 39 tcmdnQwvTm!%EUTr4kk}e7sn8f&W*R-nFMYMz5mGo1fH&bF6*2Ung9(d4Qc=Y delta 153 zcmdnTx`}OqN;rFor>`sfBMwG!HubM-XHR8dU=S~HjVKAuPb(=;EJ|f?_i+jEb5|%! zEmAPnGbwCc@(`$mqolyk9VlZAWHWd*XvzaAmUKs7M+SzC{oH>NStlymDKRi6dAqy( zU&{XJC{UWQB*-tA!Qt7BGzJDHPfr)ekcv4Q)7_Z_^f$~~12V?b)z4*}Q$iB}k;*ME diff --git a/graphics/event_objects/pics/people/frontier_brains/spenser.png b/graphics/event_objects/pics/people/frontier_brains/spenser.png index f27b643f0846a3e7c7080436d2740e6fdf203164..cd8563d5e93f964b2f955309d50f7f9c5ebc935a 100644 GIT binary patch delta 39 tcmeBXo6b5xWn!H*2a}Sgi(`mK=f>L#Oah;tm}f8mfv2mV%Q~loCII%&3~&Gd delta 153 zcmbQv+RZjWC7iv))7O>#5eK62lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yX&#5eK62lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yWd$J50zq+-s-^jS;-o-^Jb0~zD#>gTe~DWM4fDYz|O diff --git a/graphics/event_objects/pics/people/gentleman.png b/graphics/event_objects/pics/people/gentleman.png index 5ae953c5e013bc90ca8296c9c8bef19b44892899..409c593e22985bfb05e6e381ef0b455294272775 100644 GIT binary patch delta 39 tcmcc1_L6mi%EUTr4yF=M7sn8f&W*Q=m;^dAc$P5$fv2mV%Q~loCIAsU4CVj; delta 153 zcmaFKdY5g2N;rFor>`sfBMx?M9T8DS<75T~2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;w^@pN$vshG1dy@*MmP4wOskTIUFelF{r5}E+m{46E_ diff --git a/graphics/event_objects/pics/people/girl_1.png b/graphics/event_objects/pics/people/girl_1.png index 6a3a1cf32748e9ce3469b6baaf07a53eaad1cf49..d0666c1c3c5be2e070ffcc0191daf2b48673e9ea 100644 GIT binary patch delta 39 tcmdnVc9eC3%EUTr4yFK47sn8f&W*SIm;@Y7{|aIN0#8>zmvv4FO#lh)4GI7N delta 153 zcmX@gx|3~!N;rFor>`sfBMuf3Q+9rX32Y1u4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yW7;OXKRQZZ*^x*wB3#HRGsAY(jT{an^LB{Ts5n&2x? diff --git a/graphics/event_objects/pics/people/girl_2.png b/graphics/event_objects/pics/people/girl_2.png index dc04a5f5ed7aa2ad8d8c701012496a83de17db41..fa54bd715d9df18e989171c395a7190600aad334 100644 GIT binary patch delta 39 tcmdnRc8qm`%EUTr4yHg)7sn8f&W*SInFO}J?!3YP1fH&bF6*2UngA384YU9N delta 153 zcmX@cx{GasN;rFor>`sfBMuf3Gp)o!^EWUsFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq7Upr?ytNX49u>HbUtg_CxD1R3M$>gTe~DWM4fjFT;= diff --git a/graphics/event_objects/pics/people/girl_3.png b/graphics/event_objects/pics/people/girl_3.png index 73fae17f3490822608ec2a4a0e1327904d29a038..7e329f6284a37fbbd75a52e7c18f2c8223d1c180 100644 GIT binary patch delta 39 tcmZo*?_ryuGO^B@gK4^_i(`mK=f>MpnFQ9R>wRDV0#8>zmvv4FO#lQY4FdoG delta 153 zcmeBSYha(C63$-Y>Fdh=h=WDMLVUUAKYa!U2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# zrR<-M0;L&Cg8YIR9G=}sV_;yK?&;zfQZZ*^`cx)??3McpLB@Ex`njxgN@xNA3zsa= diff --git a/graphics/event_objects/pics/people/gym_leaders/brawly.png b/graphics/event_objects/pics/people/gym_leaders/brawly.png index 77553369bbdfa6ec585dfa87380ec79d2d62a93f..1fdd98b04ed2653dae0d98fbfc084cdf7c0a83db 100644 GIT binary patch delta 39 tcmdnSa)^0?%EUTr4n|*37sn8di5qWwGYYgk_$$T$1fH&bF6*2Ung9qQ4FCWD delta 153 zcmX@ayp3goN;rFor>`sfBMuf}R`#ow8wwa07{p6lBT9nv(@M${i&7cfeOvg%6C#(28=xvXzmvv4FO#lkL44nV~ delta 153 zcmaFKe3xZ{N;rFor>`sfBMuf}HeJ>ATB!^S4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf wOW8ji1xhoP1o;IsI6S+N24Z`zopr01WpmMgRZ+ diff --git a/graphics/event_objects/pics/people/gym_leaders/juan.png b/graphics/event_objects/pics/people/gym_leaders/juan.png index d3320f0e13eac1ed61ea186e653b79b1bd19173c..aa246861abd718ccd0384ddb08de11ba9ec5cd71 100644 GIT binary patch delta 39 tcmbQiwuE(p%EUTr4kmq17sn8f&W*QqnFQX5IV@%X0#8>zmvv4FO#t*63={wW delta 153 zcmZ3&I)iP3N;rFor>`sfBMuf}UUu0BRuv2k4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yX&@9E+gQZZ*^x-OHz`;fP6AY(jT{an^LB{Ts5%X=%A diff --git a/graphics/event_objects/pics/people/gym_leaders/liza.png b/graphics/event_objects/pics/people/gym_leaders/liza.png index 9d3f302e7b1c9b94c10664dcfd3792d568bf56ea..6a1eec536709865c4fcc2244106c5da807acc0ad 100644 GIT binary patch delta 39 tcmbQovWj_v%EUTr4n|W?7sn8di5qVlGYS~J476nc0#8>zmvv4FO#twP3(^1p delta 153 zcmZ3*Jdb69N;rFor>`sfBMuf}Zg%fobN?|gFo>79MwA5SrUOlo%M3yxm>? yFJ=F96e!JD666=m;PC858jx-3>EaktF=u1CF{6OO``=X{V?15`T-G@yGywok>MZ5} diff --git a/graphics/event_objects/pics/people/gym_leaders/norman.png b/graphics/event_objects/pics/people/gym_leaders/norman.png index 91c6189e3ea45ce1f8560eedc05127f4c0906cac..48755d3bdc30e5f8efb2956dccf504b2f31bb851 100644 GIT binary patch delta 39 tcmdnRc8qm`%EUTr4yHg)7sn8f&W*SInFLhcu3%>X0#8>zmvv4FO#lL040iwk delta 153 zcmX@cx{GasN;rFor>`sfBMuf}4mp-TX@40Q7{p6lBT9nv(@M${i&7cfeOvbP0l+XkKUzRN3 diff --git a/graphics/event_objects/pics/people/gym_leaders/roxanne.png b/graphics/event_objects/pics/people/gym_leaders/roxanne.png index 9a3f34cbe957f4a7044dbd6829d706eea75e8e59..c1a1421a0242b6e68e7e980f5ccb8aebdfa967f6 100644 GIT binary patch delta 39 tcmX@Za)Wt-%EUTr4#s3p7sn8di5qVxG71FA@<=fNfv2mV%Q~loCII&y3w8hi delta 153 zcmcb?e1>I$N;rFor>`sfBMuf}7WOkrjfM;i4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24p9Dx;TbZ%-NWp$SClDSMnXm7*AI}mvv4FO#uJ4EC&Dp diff --git a/graphics/event_objects/pics/people/gym_leaders/tate.png b/graphics/event_objects/pics/people/gym_leaders/tate.png index 5e8a7703988e087b2eb36afce41bba600f6d0ae9..f73ee136b8db86b878b6ab0806607fe99f26a3eb 100644 GIT binary patch delta 39 ucmbQkvVwVn%EUTr4n|{77sn8di5qVlG79Y3Rz05q2s~Z=T-G@yGywqocnqxo delta 153 zcmZ3%Jcnh1N;rFor>`sfBMuf}E`f_hniUKT4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24ow1x;TbZ%-NW3$SCl|gKY`O7*AI}mvv4FO#tZOD~tdD diff --git a/graphics/event_objects/pics/people/gym_leaders/wattson.png b/graphics/event_objects/pics/people/gym_leaders/wattson.png index ac4368679b092d40240e4eceb1dcda4409b14997..73ab5e8fcad617781a24f92c82f6d681fbb44c23 100644 GIT binary patch delta 39 ucmcc4@|byo%EUTr4#qrB7sn8di5qX{FbYgqap)}r5O})!xvX`sfBMuf}R*U5LxxNex4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24v@Xx;TbZ%-NWp!zd7-#?JyW#?#f$Wt~$(695{)D+T}n diff --git a/graphics/event_objects/pics/people/gym_leaders/winona.png b/graphics/event_objects/pics/people/gym_leaders/winona.png index bffaeba3d436be264318f8541636f161bf8ad739..9a1ce83eb9e01f0024bcb07e14cfc2b7015bb2b4 100644 GIT binary patch delta 39 ucmX@ea+Z05%EUTr4#o&i7sn8di5qW+F$zqRz44m?2s~Z=T-G@yGywn%xeYr2 delta 153 zcmX@he2`^=N;rFor>`sfBMuf}PQl&?FI@%(2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# xrR<-M0;L&Cg8YIR9G=}s1F|DLT^vIy=4?z4V-$F~wX70kjHj!g%Q~loCIH^ZEI$AM diff --git a/graphics/event_objects/pics/people/hex_maniac.png b/graphics/event_objects/pics/people/hex_maniac.png index caee0bd22488b4dce774ab098bc3557cc8fc9ac9..b0e3b22a060634e561a902b95b898fdf39289c36 100644 GIT binary patch delta 39 tcmbQnwup6t%EUTr4kles7sn8f&W*RVnFJJf?c2rx1fH&bF6*2UngI9e40Zqj delta 153 zcmZ3)I*o0DN;rFor>`sfBMx?MT@!N?rB@6L4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yX&>*?YcQZZ*^x;B%*u4TCkfbtBUu6{1-oD!M<(^M4Zi>Y delta 153 zcmX@ex|MB$N;rFor>`sfBMx?Mec=ThUzr&g7{p6lBT9nv(@M${i&7cfeOvmkOQQAY(jT{an^LB{Ts5`rIq5 diff --git a/graphics/event_objects/pics/people/hot_springs_old_woman.png b/graphics/event_objects/pics/people/hot_springs_old_woman.png index 82fbc489b887455f80874dbd9390c9ee489a9722..874ba8a4516a8c3152b9644678bf15ff37f9832b 100644 GIT binary patch delta 39 tcmey%+{rvaWn!H*2cw9mi(`mK=f>MYi~_lwZ;C7iv))7O>#5eGZBA#>)xTRRvS7{p6lBT9nv(@M${i&7cfeOv`sfBMx?MBk92Xg1QV04B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yW7?&;zfQZZ*^dMJ}X&AiCjAY(jT{an^LB{Ts5=?W|2 diff --git a/graphics/event_objects/pics/people/leaf.png b/graphics/event_objects/pics/people/leaf.png index fb110cd0d6002651ca79297c383b04b14107d0b6..d96dd26638c90cf6793a7df147dc046ef66d62d5 100644 GIT binary patch delta 39 tcmey%*2y+OWn!H*2h$W!7sn8f&W*PxF$rw?+|R=R1fH&bF6*2UngAG04TJyy delta 153 zcmeBV`^z>#C7iv))7O>#5eGZBvB49Gn>q{(4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yWd#nZ(xq+-s-^hrztQoko~gN*TX^>bP0l+XkKR6s1k diff --git a/graphics/event_objects/pics/people/little_boy_1.png b/graphics/event_objects/pics/people/little_boy_1.png index dc6dd8a5def4214c1530bc746927bf52fd7540ef..ce4f3e92cdcca0dfdc0209b15548763612fe9ed0 100644 GIT binary patch delta 39 tcmdnQvX6O!%EUTr4n|K;7sn8b-i^2283i1}n{F`xfv2mV%Q~loCIJ3I40!+m delta 153 zcmdnTyoqIkN;rFor>`sfBMx?MQ)#(>?XMUZ7{p6lBT9nv(@M${i&7cfeOv`sfBMx?MGsAZovi}(v7{p6lBT9nv(@M${i&7cfeOv`sfBMx?M3!zIrj?4@U4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24q)zx;TbZ%-NV;$tcht&vFH1jHj!g%Q~loCICKSEOh_? diff --git a/graphics/event_objects/pics/people/little_girl_2.png b/graphics/event_objects/pics/people/little_girl_2.png index ee82a5659e5e283daad47acd3d574696b853ad14..2540d84af93cae7b50d38a10239379a25173a1b5 100644 GIT binary patch delta 39 scmcb_a*ug}%EUTr4#rGR7sn8b-i^1@83j@UGZ{d@)78&qol`;+00SosBme*a delta 153 zcmcb|e2Ha(N;rFor>`sfBMx?MOT8yQc#bkKFo>79MwA5SrUOlo%M3yxm>? xFJ=D(GL^9;$S;_|;n|HeAUo63#WAE}&c^g~MuF>hFKK{`@pScbS?83{1OUwBE`sfBMuf}75yAx-b@At2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;xP@^o`sfBMuf}HTjA^@$L)^4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N#=yW7?&;zfQZZ*^dMJ}XUHn^9kTIUFelF{r5}E)|c`Td& diff --git a/graphics/event_objects/pics/people/man_3.png b/graphics/event_objects/pics/people/man_3.png index efa81c2c4bc7febc4f8082eb77cbcd8d0889e961..a41a1ee9b5b1f583ab8d682d86e403a5fc92f277 100644 GIT binary patch delta 39 tcmZo+pTIUjWn!H*2h(g%7sn8f&W*QcG6^(n=`v#g0#8>zmvv4FO#lO14AlSt delta 153 zcmbQh*1|qPC7iv))7O>#5eJK~hVc87c8?es7{p6lBT9nv(@M${i&7cfeOvbP0l+XkKZ7?kf diff --git a/graphics/event_objects/pics/people/man_4.png b/graphics/event_objects/pics/people/man_4.png index 4419e4c95799586846daaad8c96c2f40f6617504..05a87d4ddbec40b096f3bff8d9bf61cff0c1749b 100644 GIT binary patch delta 39 tcmcb`_KbCc%EUTr4yHm+7sn8f&W*S8nFOq+uw*j;fv2mV%Q~loCIAWm40Heh delta 153 zcmaFHdW&s>N;rFor>`sfBMuf}O_SgoyG}4LFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq7Up{I*uNX49u>G@0o)}I)zf{gKW^>bP0l+XkK%RVi# diff --git a/graphics/event_objects/pics/people/man_5.png b/graphics/event_objects/pics/people/man_5.png index 3ab97efd31c5be2b63ef84c738e947d9cbd79622..234d679242f6e7989009314287b97dd50a120a62 100644 GIT binary patch delta 39 tcmdnOc7Sz)%EUTr4km9;7sn8f&W*P{nFJp58E<0%0#8>zmvv4FO#lGZ40!+m delta 153 zcmX@Wx`l0mN;rFor>`sfBMuf}ZS|)CGp8^xFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq89x2KC^NX49u>7Gmi%m;MWgN*TX^>bP0l+XkKWtS{r diff --git a/graphics/event_objects/pics/people/man_6.png b/graphics/event_objects/pics/people/man_6.png index 7832e9f2a91ec02d88fcc930e0d217ee76941f4c..f86aff0e4cd118d487bd93a9a3b63c4feedf1174 100644 GIT binary patch delta 39 ucmcb~_LOyk%EUTr4yFQ67sn8f&W*S8m;_$FTC;`$2s~Z=T-G@yGywo5{0?3K delta 153 zcmaFLdXsH}N;rFor>`sfBMuf}T>`sfBMuf}J+n{KeU%v)7{p6lBT9nv(@M${i&7cfeOv&y7;%IAY(jT{an^LB{Ts5P>C#> diff --git a/graphics/event_objects/pics/people/maniac.png b/graphics/event_objects/pics/people/maniac.png index 9b3846279353cd748f237afdb45e3025795e5c4f..29829c309e9f80f793367e6e4934b8aca83e179d 100644 GIT binary patch delta 39 tcmeBSo54CkWn!H*2a~d=i(`mK=f>NLOajc(ADtP1z|+;wWt~$(69DAi3sC?7 delta 153 zcmbQi+QT+MC7iv))7O>#5eGZBwTQr>?Oz!f7{p6lBT9nv(@M${i&7cfeOv#5eGXDqwqS1SF0Ep7{p6lBT9nv(@M${i&7cfeOvgTe~DWM4fY^W_H diff --git a/graphics/event_objects/pics/people/mauville_old_man_1.png b/graphics/event_objects/pics/people/mauville_old_man_1.png index 2c06a8f7345364a01e9d66b67eb4192dd35e2bf3..200f733b6cae917552925d3ba84afd127f0994d7 100644 GIT binary patch delta 95 zcmV-l0HFWG2G9kNBttMzOjJd4#iak$wExAF-js8DK|#&U-khAhN=kcky#PUb01!C< z&0dW3C)N;rFor>`sfBMx>RCLLq$DIp9D4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJFy&;LudT+OQP zb_|+w^jlQ-UID|PElZNBiybX3CI0{a57Z%>JMTDFS8`C411Q@rd?gq*;c)I$ztaD0e0suRWJw*Tj diff --git a/graphics/event_objects/pics/people/mauville_old_man_2.png b/graphics/event_objects/pics/people/mauville_old_man_2.png index c70175be3d1d83793f67ec269a8339cc7db83549..6da0c24c4ca3d54bd236ebd285e21c9cbab692af 100644 GIT binary patch delta 95 zcmV-l0HFWJ2Ga$QBttMzOjJd4#iak$wExAF-js8DK|yMZtT{?z2oNCEbEKp}b5bBd z)z#IDi`sfBMx>R7Ow3v+w>V27{p6lBT9nv(@M${i&7cfeOvqa#47K%EUTr4$c@)7srr{#*Me5I0aM+?D!afz|+;wWt~$(6958b3`sfBX(He diff --git a/graphics/event_objects/pics/people/may/decorating.png b/graphics/event_objects/pics/people/may/decorating.png index 7f83dfde934a305e3c59e2c2855fac87e08ec8c6..8e8e346550dc6061a27b2c1583f5140b97601542 100644 GIT binary patch delta 9 QcmbQv)WtL*VPfto01&|gz5oCK delta 20 bcmeBTn$9#Kfs3&u$S;_|;n|I}iLq+|L-q%U diff --git a/graphics/event_objects/pics/people/may/field_move.png b/graphics/event_objects/pics/people/may/field_move.png index 41aa13627fccd17086f85d6724cf989517bfb3ee..7882009d57dd6908c4a7df494a6566b394a18a6b 100644 GIT binary patch delta 39 tcmdnQwvTm!%EUTr4kk}e7sn8f&W*R-nFP%9W2_l~z|+;wWt~$(69D$U3)BDr delta 153 zcmdnTx`}OqN;rFor>`sfBX(JSeSW?#in|yX7{p6lBT9nv(@M${i&7cfeOvNzmvv4FO#mKD4SfIr delta 153 zcmeyu{eowLN;rFor>`sfBX(JSBcqic7`HPpFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq7sy{C&~NX49u>9wo^<#s1*LB@Ex`njxgN@xNA!e=dW diff --git a/graphics/event_objects/pics/people/may/mach_bike.png b/graphics/event_objects/pics/people/may/mach_bike.png index 4e199b84a8bd86e69bc184470c2e95a5b99d04ea..14eaf36ea78b95c378bbcddfb9aa55eb0021cc63 100644 GIT binary patch delta 39 ucmX@cd5L3!%EUTr4(7X_E{-7)ts8IOW)?W`V&QHEAn`sfBX(JSQ|tM;`d1hj7{p6lBT9nv(@M${i&7cfeOv9?5$e!tSV1v19d)z4*}Q$iB}oQW>j diff --git a/graphics/event_objects/pics/people/may/running.png b/graphics/event_objects/pics/people/may/running.png index 40808c9650ee10defeabd9298f97da7fd72f172b..54fa079a0cc0cfd13904dc8ae8bcc18be564974a 100644 GIT binary patch delta 39 ucmX@Yet~U*%EUTr4yN0lE{-7{of~i8WD?kWn9Y^}2s~Z=T-G@yGywn~?+v5? delta 153 zcmcb>c7%O`N;rFor>`sfBX(JCP1BjHzXvfeFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq8gTe~DWM4fxJWI+ diff --git a/graphics/event_objects/pics/people/may/surfing.png b/graphics/event_objects/pics/people/may/surfing.png index 5b783f4991d92f949a99cd4365c99b90fe657393..758063ab89ce6f429c766f8bbea5e585817a5a30 100644 GIT binary patch delta 39 tcmaFG_KkId%EUTr4yHy=7sn8f&W*S0nFK;6Z(76v1fH&bF6*2UngAb=4YB|L delta 153 zcmeyy`igCWN;rFor>`sfBX(H<0qN*2>un4S4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yYT=;`7ZQZZ*^dOefCFUBe9AY(jT{an^LB{Ts5V^%Ek diff --git a/graphics/event_objects/pics/people/may/underwater.png b/graphics/event_objects/pics/people/may/underwater.png index 8a2d654656a5a7c637bd68aa48eddbd80d8a56f1..8c260d93272e25f7b6fbf868b1822fcf313845fc 100644 GIT binary patch delta 39 ucmdnMx`$`sfBX(JSD}gPZr=l4c7{p6lBT9nv(@M${i&7cfeOvEaktF=u1?QAUC8Nf9eR#(28=xvXMTOaj_Fz2-9jfv2mV%Q~loCIAga4EX>6 delta 153 zcmZo>`_48&C7iv))7O>#5xXq6n%cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# zrR<-M0;L&Cg8YIR9G=}sV_;zF^K@|xshG1dy@yHQ)pW=EAY(jT{an^LB{Ts57(gu@ diff --git a/graphics/event_objects/pics/people/may/watering.png b/graphics/event_objects/pics/people/may/watering.png index 28c5b41beb9f086864a110835136edbaf90fe56e..368b6a4627408ac88a7d9cac0d6010931f4610db 100644 GIT binary patch delta 39 tcmZo?o6I^vWn!H*2a}wqi(`mK=f>MIOacMEYI7KXz|+;wWt~$(69D6&3rYY0 delta 153 zcmbQt+RipXC7iv))7O>#5xcB_2v=y>JqHE`2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;yC^K@|xshG1dU4}^@bEWk)kTIUFelF{r5}E+d!Yg?I diff --git a/graphics/event_objects/pics/people/mom.png b/graphics/event_objects/pics/people/mom.png index 8b78515ff6d7e20fc8fd892276e23fb6c9c77dd6..252eccf48fee8e75a1db9255c38ff161fce5e94c 100644 GIT binary patch delta 39 tcmZ3^wwZN;%EUTr4kkNK7sn8f&W*Qim;`wB)S?)Gz|+;wWt~$(69DO@3nl;n delta 153 zcmdnYx}0r-N;rFor>`sfBMx>RR*h=)V_ggk4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N#=yX2=jq}YQZZ*^x($=SYESo8kTIUFelF{r5}E)87%Q~^ diff --git a/graphics/event_objects/pics/people/mystery_event_deliveryman.png b/graphics/event_objects/pics/people/mystery_event_deliveryman.png index 2181de2f121f2ffd4b7d5a5941069655c0b5bd40..8c1cbbc6e72196e56e9dd04401df0d566ce3c3f2 100644 GIT binary patch delta 39 tcmbQlGLLzJ%EUTr4n|E+7sn8di5qXLGYYWY|I@<&1fH&bF6*2UngH~;3}pZS delta 153 zcmbQoJc(t3N;rFor>`sfBMx>RHi@#!OP?|@Fo>79MwA5SrUOlo%M3yxm>? yFJ=F96e!JD666=m;PC858j!8&>EaktF=u1CI-|hB6?08M#(28=xvX`sfBMx>RcJcq^ou&*74B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N24vs!ba4!+n6okc4x_-!)n`|MjPZ2!b6Mw<&;$T>ye_W* diff --git a/graphics/event_objects/pics/people/old_man_1.png b/graphics/event_objects/pics/people/old_man_1.png index 2249869904b1802d36074d4a026c2493182341a3..6bd5afc448adea6a3f5eada90e4b114928156da1 100644 GIT binary patch delta 39 tcmZo=o5(srWn!H*2a}Aai(`mK=f>MoOaiOiXWn7}0#8>zmvv4FO#ty=3`YO} delta 153 zcmbQp+R8RTC7iv))7O>#5eGXDhkn3Y-4q4}2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# zrR<-M0;L&Cg8YIR9G=}sV_;yC@pN$vshG1dU5ZIy&!gHaAY(jT{an^LB{Ts5+qf)3 diff --git a/graphics/event_objects/pics/people/old_man_2.png b/graphics/event_objects/pics/people/old_man_2.png index 82bb66f8a97fbc3cd44914b0651b6c8e402a9b64..fe2a77c6e336320869f2d28881d854a479d9b78b 100644 GIT binary patch delta 39 tcmX@fa+P_4%EUTr4#ose7sn8di5qXnF$%=A%+hB70#8>zmvv4FO#lTt41NFr delta 153 zcmcc0e3E5?N;rFor>`sfBMx>RPML3NwZ;q#4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617$$U8N3=a<$)ASx}&cn1H;CC?mvmF6BX^07#Neh-Ch1K xW&d;(D9u`sfBMx>RE+fXf%JvKl4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N24p|=ba4!+n6okcF{8lKc}?XYV?15`T-G@yGywn!1}$a) diff --git a/graphics/event_objects/pics/people/old_woman_2.png b/graphics/event_objects/pics/people/old_woman_2.png index 0a6f5ebd3fb6f559fb56338923f65b9fd657e519..84a5ba8010813015ca10e55f31df80a79a091273 100644 GIT binary patch delta 39 tcmeyw`j2IT%EUTr4kk`d7sn8f&W*R(nFMYvDqFz-1fH&bF6*2Ung9{y4KDxy delta 153 zcmeyz@`-hVN;rFor>`sfBMx>R9%1QsQ=T(0Fo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq6pr>Bc!NX49u>Fi7b;eUTE0vY4!>gTe~DWM4fsAVma diff --git a/graphics/event_objects/pics/people/picnicker.png b/graphics/event_objects/pics/people/picnicker.png index 207c4220066cb0419f6c7c826c2ed5b2f14b7eda..a15eeb644885e820f655ccdfc21a34313d4300df 100644 GIT binary patch delta 39 tcmaFG_KkId%EUTr4yHy=7sn8f&W*S0nFRP6*^?Q7z|+;wWt~$(695gB3~&Gd delta 153 zcmeyy`igCWN;rFor>`sfBMx>RUTv-KvK9;s4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yYT=;`7ZQZZ*^dOefC0%65vAY(jT{an^LB{Ts5BpECU diff --git a/graphics/event_objects/pics/people/prof_birch.png b/graphics/event_objects/pics/people/prof_birch.png index 5c3fda9f9e62eea35b7c29cde27532bef9a2167d..d3ea18c319cc8068d9d5b0a85e02fe6712e9c558 100644 GIT binary patch delta 39 tcmeyy*2FeJWn!H*2UD-7i(`mK=f>OJOafb^|2Z=Nfv2mV%Q~loCIAsd4LAS* delta 153 zcmZo-`^GjwC7iv))7O>#5eGXDKg(tTr^gHo4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N#=yYT>*?YcQZZ*^dN-56Z(h+_kTIUFelF{r5}E)K1uQ54 diff --git a/graphics/event_objects/pics/people/psychic_m.png b/graphics/event_objects/pics/people/psychic_m.png index 74e85032946dbcf83d0133f07869ee8ebbb0cc6d..3efe5c0afc37a8e9f554066f902ec7b000d5b209 100644 GIT binary patch delta 39 tcmcb_c8_&}%EUTr4yH^`7sn8f&W*RznFQ3oO?<%s1fH&bF6*2UngAHZ4XpqG delta 153 zcmcb|dWmg`sfBMx>R0f{Vc0V4(m2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;y)^mK6yshG1dJ)KG5>U6JskTIUFelF{r5}E+Rk}Jjl diff --git a/graphics/event_objects/pics/people/quinty_plump.png b/graphics/event_objects/pics/people/quinty_plump.png index 8b08ba7d720b19445c2625c35c544683e08a08d6..49d4c70382babb477065aab14f8e00d51628ce5f 100644 GIT binary patch delta 39 tcmbQny@+dq%EUTr4wki^E{-7{of~hjW)YCgkFa0>0#8>zmvv4FO#lFD3{3z4 delta 153 zcmZ3)HH~|MN;rFor>`sfBMx>RA(O17a={D?4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N22{G%)5S5QV$R0&)hq&j_9}uPV?15`T-G@yGywq7Q7b3_ diff --git a/graphics/event_objects/pics/people/red.png b/graphics/event_objects/pics/people/red.png index b233aeaebfb53a494b3d6773e9c4c05aa168da19..7215156c1d0484c8310a625564f1d9948453e826 100644 GIT binary patch delta 39 ucmX@lcAIsA%EUTr4yH6u7sn8f&W*QIm;?@OSumXe2s~Z=T-G@yGywn^+YPt? delta 153 zcmcc3dY)~9N;rFor>`sfBMx>R5xM6s12lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N#=yXo=IP=XQZZ*^dJ2<(3IE9^kTIUFelF{r5}E)J?JLv( diff --git a/graphics/event_objects/pics/people/reporter_f.png b/graphics/event_objects/pics/people/reporter_f.png index 781b07fc690b218ae474a2b0f1901e16c8913b27..289aef6d972c30bbed066cebea0132f43e9bfb5b 100644 GIT binary patch delta 39 tcmeBSo54CkWn!H*2a~d=i(`mK=f>NLOaceKs=a3b0#8>zmvv4FO#u5A49Nfh delta 153 zcmbQi+QT+MC7iv))7O>#5eGYuB)eJTvOWd|2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# yrR<-M0;L&Cg8YIR9G=}sV_;xX_H=O!shG1dU6D!P!YY|&kTIUFelF{r5}E+p_$!V8 diff --git a/graphics/event_objects/pics/people/reporter_m.png b/graphics/event_objects/pics/people/reporter_m.png index 0992b12ea2cce2a2fea7374ebe55b671eb02e2f9..09b2b964e7b1dbb58a9819d5117dc92953da660e 100644 GIT binary patch delta 39 tcmX@Xc7=6<%EUTr4yJfd7sn8f&W*QYnFQ2IESnjCz|+;wWt~$(6958O3`GC{ delta 153 zcmcb@dV+0&N;rFor>`sfBMx>RDUEHlCqx(+7{p6lBT9nv(@M${i&7cfeOv`sfBMx>R88(}bNwEwJ4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yW->FMGaQZZ*^dO4H8iRK diff --git a/graphics/event_objects/pics/people/rs_little_boy.png b/graphics/event_objects/pics/people/rs_little_boy.png index 6e8b4bdaba02b771eb89f7885f1ccfd7613b035c..41bc20afbe9c491d8445631912634b27b9655b1a 100644 GIT binary patch delta 39 tcmdnWa*%m~%EUTr4n`kO7sn8b-i^1t7zLa%ID{C0z|+;wWt~$(69Dh-3snFB delta 153 zcmX@eyp?5wN;rFor>`sfBMx>R1;g+A_pN1MU=S~HjVKAuPb(=;EJ|f?_i+jEb5|%! zEmAPnGbwCc@(`$mqolyk9VlZAWHWd*XvzaAmUKs7M+SzC{oH>NStlymDKRi6dAqy( yU&{XJC{UWQB*-tA!Qt7BG$7l@)5S5QV$Q~NFGhhy91os?jPZ2!b6Mw<&;$U`UM=YW diff --git a/graphics/event_objects/pics/people/ruby_sapphire_brendan/running.png b/graphics/event_objects/pics/people/ruby_sapphire_brendan/running.png index d7a1c222423717738f6b2b42ab35e6d6bf1e5f8c..3a4e710f313561b5426fcb6e3b60ec8e08dbf16e 100644 GIT binary patch delta 39 tcmZo>?`NB!GO^B@gK3thi(`mK=f>MJm;~<5%Bx@i0#8>zmvv4FO#le|4LSe- delta 153 zcmeBYYi6II63$-Y>Fdh=h=ZL+p0RVs5?cla2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# zrR<-M0;L&Cg8YIR9G=}sV_;yK<>}%WQZZ*^`V1xkgAY|pK*o5w`njxgN@xNA2H7mg diff --git a/graphics/event_objects/pics/people/ruby_sapphire_brendan/walking.png b/graphics/event_objects/pics/people/ruby_sapphire_brendan/walking.png index 833e635d528083298e4362418d4937b7cfcb564a..7f3d4bde708bff758e029f0afa41e59032b187da 100644 GIT binary patch delta 39 tcmZo>?`NB!GO^B@gK3thi(`mK=f>MJm;~0;vrc9J0#8>zmvv4FO#uJt44?o2 delta 153 zcmeBYYi6II63$-Y>Fdh=h=ZL+R^j{eYY!P17{p6lBT9nv(@M${i&7cfeOvqJsV)V?15`T-G@yGywp>0W8n} diff --git a/graphics/event_objects/pics/people/ruby_sapphire_may/running.png b/graphics/event_objects/pics/people/ruby_sapphire_may/running.png index dbde4aa307a64905c401e727d6690d92851b45bf..7c546a2867d66c24797c92b11f496208736ec909 100644 GIT binary patch delta 39 ucmX@aevWN|%EUTr4yK!)E{-7{of~goXA<~Tcr1zm2s~Z=T-G@yGywo9^bTYI delta 153 zcmX@dc8Gm~N;rFor>`sfBMx>RWyOQ4f4LYK7{p6lBT9nv(@M${i&7cfeOvDQSA>K0rM2N~n(>gTe~DWM4fRvRt7 diff --git a/graphics/event_objects/pics/people/ruby_sapphire_may/walking.png b/graphics/event_objects/pics/people/ruby_sapphire_may/walking.png index c48b04cb207931c9d5e76dc1d36c98c61a9513e5..7c600a003079f1b6107075f5c02ebd6a93700706 100644 GIT binary patch delta 39 tcmcc1_L6mi%EUTr4yF=M7sn8f&W*Q=m;}xU7R+M+0#8>zmvv4FO#l^R4K4rx delta 153 zcmaFKdY5g2N;rFor>`sfBMx>RC2r2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yW-;_2cTQZZ*^dJ&Vr;haTpK*o5w`njxgN@xNA_AM;J diff --git a/graphics/event_objects/pics/people/running_triathlete_f.png b/graphics/event_objects/pics/people/running_triathlete_f.png index 85494110d73a32114a139eea7bd2f7024ce12f0d..f95eb2be266f34664bad1888c5f10143d60176c5 100644 GIT binary patch delta 39 tcmcb{_K0`sfBMx>R70bCCpJy{LFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq7UuBVG*NX49u>Df#IIX{YdLB@Ex`njxgN@xNAgfT4! diff --git a/graphics/event_objects/pics/people/running_triathlete_m.png b/graphics/event_objects/pics/people/running_triathlete_m.png index 97e5d0e85e2f7150a566c559f79948307df27796..b2b681201dcf9da90dd34615f4c26a1be6d5deb3 100644 GIT binary patch delta 39 tcmaFM_LFsj%EUTr4yG1Q7sn8f&W*R5m;{zmvv4FO#mrl4p#sG delta 153 zcmey#`j%~iN;rFor>`sfBMx>RHHpXJjqVH#4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yYT;_2cTQZZ*^dJ~htNxR?6LB@Ex`njxgN@xNAg?cU5 diff --git a/graphics/event_objects/pics/people/sailor.png b/graphics/event_objects/pics/people/sailor.png index b84eac22ccaba835c8c82d4f8052dd11157bace1..6c8a867f4c5dc1243431e09aa2afb734ab9ae30a 100644 GIT binary patch delta 39 tcmeBSo54CkWn!H*2a~d=i(`mK=f>NLOal7M4=*qPfv2mV%Q~loCIIYz3*rC( delta 153 zcmbQi+QT+MC7iv))7O>#5eGYux|+4_+O-S}4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yX&?CIhdQZZ*^x+0T+ea!7WAY(jT{an^LB{Ts5-RUc< diff --git a/graphics/event_objects/pics/people/school_kid_m.png b/graphics/event_objects/pics/people/school_kid_m.png index e9e8e48899cd10821fea503b39171574a839bd16..ddfc28b1084ce948dfaf17f3765f8df65de2b3ba 100644 GIT binary patch delta 39 tcmdnRc8qm`%EUTr4yHg)7sn8f&W*SInFInGB={JBz|+;wWt~$(69D%#3$6eF delta 153 zcmX@cx{GasN;rFor>`sfBMx>RO-6<#rXCCo4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yW7=;`7ZQZZ*^x<8Y^)SuegAY(jT{an^LB{Ts5wSX&8 diff --git a/graphics/event_objects/pics/people/scientist_1.png b/graphics/event_objects/pics/people/scientist_1.png index f6e79660c7cc6fc0b7296ce6315891c380b545dd..2b1f6605ddacb61b2dead007d3d396b0edd70b3a 100644 GIT binary patch delta 39 tcmbQwwwiT<%EUTr4kj~C7sn8f&W*QCm;?k>IZ_#bz|+;wWt~$(69D9K3hn>^ delta 153 zcmZ3@I-hNVN;rFor>`sfBMx>RE#Vsm;)fX+7{p6lBT9nv(@M${i&7cfeOv`sfBMx>RZRO{m#Pk>#7{p6lBT9nv(@M${i&7cfeOvbP0l+XkKH6tvd diff --git a/graphics/event_objects/pics/people/scott.png b/graphics/event_objects/pics/people/scott.png index 41c7100c49b0b6439c3ef7a6b6f6a650669735fb..113614f5f14ef5f9677ff0e59f63ae6838058de9 100644 GIT binary patch delta 39 tcmeyv*1#5eGYuj@6kP8k!6Y4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yWd+0(@_q+-s-^odLY2EWB-fsFBV^>bP0l+XkKQBo}7 diff --git a/graphics/event_objects/pics/people/steven.png b/graphics/event_objects/pics/people/steven.png index ab113d35063988149c41839901982ad5a86261b1..da692f51dbbf62b328ba1705adaf64a0c85935d6 100644 GIT binary patch delta 39 tcmdnOc7Sz)%EUTr4km9;7sn8f&W*P{nFQ8I9JOQs0#8>zmvv4FO#uIo3}FBO delta 153 zcmX@Wx`l0mN;rFor>`sfBMx>RJzlrq_e&TU7{p6lBT9nv(@M${i&7cfeOv`sfBMx>RebubLW%3LR4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO^`O0bVpxD28NCO+&A83k@%RXYJP#?#f$Wt~$(696QEEo1-y diff --git a/graphics/event_objects/pics/people/swimmer_m.png b/graphics/event_objects/pics/people/swimmer_m.png index 25068830e11f2117cbab984155aa198781d1dc00..eb1733da8d0053429afda9174d61a93419f999ae 100644 GIT binary patch delta 39 tcmeBVoysynWn!H*2jc=y7sn8f&W*R{F$%bJitsW3fv2mV%Q~loCII##3*7(! delta 153 zcmbQr(#bkOC7iv))7O>#5eGYufyI%9A`uJ>4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N24pYrba4!+n6oi`9;3h-ne4?NV?15`T-G@yGywnuhAe3S diff --git a/graphics/event_objects/pics/people/teala.png b/graphics/event_objects/pics/people/teala.png index f38bc479ece46f43971606d2e793f578c2d1b42d..cfc47b112b7b2b30205da89a6d878321290be909 100644 GIT binary patch delta 39 tcmey$+Q>RVWn!H*2NRE{i(`mK=f>MyOah(%eD5&;fv2mV%Q~loCIA7>4AcMs delta 153 zcmZo<{mME)C7iv))7O>#5eGYu5$AHxvIh(d4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yYDzmvv4FO#uFW41NFr delta 153 zcmdnRx{hsvN;rFor>`sfBMwF}1JSKZ48s{17{p6lBT9nv(@M${i&7cfeOvq+-s-bY~`kz0B9yLB@Ex`njxgN@xNA6@n|e diff --git a/graphics/event_objects/pics/people/team_aqua/aqua_member_m.png b/graphics/event_objects/pics/people/team_aqua/aqua_member_m.png index eba838305f1069bca375bbed06d9e7f52c2bcc10..434085954804c41d2bd699c0734f167f76a57cde 100644 GIT binary patch delta 39 tcmcc2cAs^E%EUTr4yG(m7sn8f&W*P-m;_WlyNfaafv2mV%Q~loCIAW`42}Q* delta 153 zcmcc5dYNs4N;rFor>`sfBMwF}ZMGRYyM-AT7{p6lBT9nv(@M${i&7cfeOv`sfBMwF}W6rJ)yW0#54B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24tW1ba4!+n6okcB%?rM(^nmkF`lk|F6*2UngCmiEtLQO diff --git a/graphics/event_objects/pics/people/team_magma/magma_member_f.png b/graphics/event_objects/pics/people/team_magma/magma_member_f.png index fe74beeec46948d94965b3d2729d48557a3b72b2..60bd8494eff13e9e8bd74859a42da9ca95105037 100644 GIT binary patch delta 39 ucmZ3?ww`r@%EUTr4kjy47sn8f&W*P%m;_e-_<5KC2s~Z=T-G@yGywn(Jq@@3 delta 153 zcmZ3_x|nT(N;rFor>`sfBMwG!StCQYEl(I27{p6lBT9nv(@M${i&7cfeOv`sfBMwG!X=}LytB)}-Fo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq89m#2$kNX49u=^ji1Rp)txLB@Ex`njxgN@xNAT16}v diff --git a/graphics/event_objects/pics/people/team_magma/maxie.png b/graphics/event_objects/pics/people/team_magma/maxie.png index 16b35d2fa2d0e81c48872be6951753bc0dc76d41..cc8b180ed1c9fa1fbe213a5dd50f89955a0d5dc1 100644 GIT binary patch delta 39 tcmaFE`h#VH%EUTr4kl(#7sn8f&W*PjnFI_rb$?|50#8>zmvv4FO#ljF4Br3% delta 153 zcmeyt@`iPSN;rFor>`sfBMwG!c{RyZOwtSt4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N#=yYD?CIhdQZZ*^IwO;SoR-Z#kTIUFelF{r5}E+T?zmvv4FO#l~c4O;*J delta 153 zcmaFHe2Zm*N;rFor>`sfBMx>RV79MwA5Sr#5eGYuiQ!Gb%pVL44B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24t&xx;TbZ%-NW(%qS4h`KlOXjHj!g%Q~loCIB-jEK&df diff --git a/graphics/event_objects/pics/people/tuber_m_swimming.png b/graphics/event_objects/pics/people/tuber_m_swimming.png index 6cdeded89eb7e347273ba0d524bfe8a237e3c6ae..15dedb2590f0b07fd8276843b2da243d42f0dd1c 100644 GIT binary patch delta 39 tcmbQlGLLzJ%EUTr4n|E+7sn8b-i^1_83q1M7jj?#0#8>zmvv4FO#tw43+n&? delta 153 zcmbQoJc(t3N;rFor>`sfBMx>RGlj2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24rh`x;TbZ%-NW(&M2TZVXrmF7*AI}mvv4FO#tU`D@yzmvv4FO#uFq3{(IB delta 153 zcmX@ayp3goN;rFor>`sfBMx>RbFpx<{s0CB2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# xrR<-M0;L&Cg8YIR9G=}s1G0TRT^vIy=4?#&W)xWQJ>WIS7*AI}mvv4FO#t(_ES~@X diff --git a/graphics/event_objects/pics/people/unused_woman.png b/graphics/event_objects/pics/people/unused_woman.png index 393d38ddc9a674b19aa3ba9200651905eefa4e99..395ed1c099fee457cd49c19edde436c871403b77 100644 GIT binary patch delta 39 tcmdnRc8qm`%EUTr4yHg)7sn8f&W*SInFI{tH_l@K0#8>zmvv4FO#lM&43z)? delta 153 zcmX@cx{GasN;rFor>`sfBMx>R3&YYSYF`)_7{p6lBT9nv(@M${i&7cfeOvzmvv4FO#lgx4ITgh delta 153 zcmbQu*3UjcC7iv))7O>#5eJK~xY6%AmIej}2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# zrR<-M0;L&Cg8YIR9G=}sV_;xf=IP=XQZZ*^`VuAqC9luEAY(jT{an^LB{Ts56Y(r= diff --git a/graphics/event_objects/pics/people/wally.png b/graphics/event_objects/pics/people/wally.png index 32276ad77cdb550bfb2eb8f867fe453054e3dff6..190ee671322afb569580dbe02f3e1e7468cfcbd3 100644 GIT binary patch delta 39 tcmdnMwug0s%EUTr4kmX`7sn8f&W*QSnFJVX(>ob}z|+;wWt~$(69D(h3;h59 delta 153 zcmdnPx`AziN;rFor>`sfBMx>RE79tS3zjo5Fo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq89yQhm|NX49u>8?xy;nz;y0U6`z>gTe~DWM4fWo<2P diff --git a/graphics/event_objects/pics/people/woman_1.png b/graphics/event_objects/pics/people/woman_1.png index 285c2947c9e06c84d9763266016f4bb0afa98083..2207993f741e88d1a972d2af2556d61ad6b631aa 100644 GIT binary patch delta 39 tcmey&_Mdfv%EUTr4yGzmvv4FO#m3h4G#bS delta 153 zcmey*`k8HlN;rFor>`sfBMuf3YxC_{y($b04B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yYT<>}%WQZZ*^dIyuh{>f5jLB@Ex`njxgN@xNAjQA~x diff --git a/graphics/event_objects/pics/people/woman_2.png b/graphics/event_objects/pics/people/woman_2.png index b4381c2f436944b72ac77343926fba04c00b6cdb..c97fc3507007dc91db3ed4ba2a5fcc98f3595ac3 100644 GIT binary patch delta 39 tcmaFC_JwtV%EUTr4yJlf7sn8f&W*QgnFKy`vVUU$0#8>zmvv4FO#mXU4dnm; delta 153 zcmeyu`hsnON;rFor>`sfBMuf(Mx}pu?lv+oFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq7Uy{C&~NX49u>9tG(SKqhJ0~zD#>gTe~DWM4f7!EHY diff --git a/graphics/event_objects/pics/people/woman_3.png b/graphics/event_objects/pics/people/woman_3.png index 00579b200ce767045734ba585ca6bc0b00b3172a..8d35b165372d4118839578eb5da5cd335f9ffcf3 100644 GIT binary patch delta 39 tcmeyx*2XqLWn!H*2h&7P7sn8f&W*SGnFL&~%=2Xc0#8>zmvv4FO#l*F4Lkq< delta 153 zcmZo;`^7dvC7iv))7O>#5eJJXGuwxk(U%w)7{p6lBT9nv(@M${i&7cfeOvHSOsTsg-*K*o5w`njxgN@xNAr^+oo diff --git a/graphics/event_objects/pics/people/woman_4.png b/graphics/event_objects/pics/people/woman_4.png index cb88cab47f3ff1b92b4689ff3c919580e53bcdd5..2a29acae3018dab7ebe06ca70f55e7f985c70c2c 100644 GIT binary patch delta 39 tcmdnUwwHB+%EUTr4kiyz7sn8f&W*R-m;}0l*9kBHfv2mV%Q~loCII{#3@!iw delta 153 zcmdnXx{+;yN;rFor>`sfBMuf(7EO`L4?YYG4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N#=yYj;pyTSQZZ*^x*L`sfBMuf(Hi`0ylfE!8Fo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq7Uwx^3@NX49u>6uId&TemOK*o5w`njxgN@xNAk#H?8 diff --git a/graphics/event_objects/pics/people/woman_6.png b/graphics/event_objects/pics/people/woman_6.png index 51ef0954094072663e0d45953d8e13820da148c3..2ffdd5af61d66d16cef8f34c73ab364f8b55e118 100644 GIT binary patch delta 39 tcmdnVc9eC3%EUTr4yFK47sn8f&W*SIm;|00_`GKT0#8>zmvv4FO#lg<4FdoG delta 153 zcmX@gx|3~!N;rFor>`sfBMuf(c1xwln_n|9Fo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq7UfTxRNNX49u>3&QCe?2dXfsFBV^>bP0l+XkKjrJ`x diff --git a/graphics/event_objects/pics/people/woman_7.png b/graphics/event_objects/pics/people/woman_7.png index 522c5254d740dc83cbab6354851ae490e25cec65..a7750dc4cb0d85a6b45e75ab24a47cc6387d45d8 100644 GIT binary patch delta 39 ucmdnQzK?B!%EUTr4yKcyE{-7{of~f-XA;;tqoJMw2s~Z=T-G@yGywn}N)6=z delta 153 zcmdnTwuya$N;rFor>`sfBMuf(PA!Xj_jfZeFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq8`sfBMx>RYqh&kA3iWJFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq89uBVG*NX49u>Do*J-3x?vfQ<2U^>bP0l+XkKq}nY1 diff --git a/graphics/event_objects/pics/pokemon/azumarill.png b/graphics/event_objects/pics/pokemon/azumarill.png index 0a03fd3d4d297723bc879d88f3fe1e50ab794d52..84b07ea5bc12f6d737863afce821b11e24ec3c9d 100644 GIT binary patch delta 37 scmdnVe3WT|%EUSw_6wdajv*3LC*D3MklFfcIRg-Qy85}Sb4q9e01+e&^Z)<= delta 151 zcmX@gw3B&)N;rFor>`sfBMuI6StB36-+2rS4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF+MaCp=cbET5 w**_fx$}*M&`2{mLJiCzwmdKI;Vst020|PWdHyG diff --git a/graphics/event_objects/pics/pokemon/azurill.png b/graphics/event_objects/pics/pokemon/azurill.png index d6050257b721a7d0373d2ce78130d5350a082443..99cd25fe5c772963d5a6a530a5f5e492c0c3e748 100644 GIT binary patch delta 37 scmZ3%yoG6k%EUSw_WhnNjv*3LC*IyGaOw4hd`sfBMuI6Imy%a1K%<*Fo>79MwA5SrUO6&aJf-Ch1K xW&d;(D9cz9zmvv4FO#lEU3}FBO delta 153 zcmZ3?GM#mTN;rFor>`sfBMuI6d6tcbcuE-<7{p6lBT9nv(@M${i&7cfeOvS>EaktF=u1?8b*Ov*Y14+8RO~d=d#Wzp$PyZt}aCY diff --git a/graphics/event_objects/pics/pokemon/dusclops.png b/graphics/event_objects/pics/pokemon/dusclops.png index faf183ff430c87c8bf4a34947385978cae6cee84..fb2c85576c08e846addb2496d030ea8ebbd05d3e 100644 GIT binary patch delta 39 tcmeyu+Q2$NWn!H*2NSoai(`mK=f>NdOajMSlX@9|z|+;wWt~$(69D@b3|RmG delta 153 zcmZo*{lYpyC7iv))7O>#5eJ93f@t#^w%rU24B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yYD?djqeQZZ*^IwzCB&6E?tAY(jT{an^LB{Ts59x5yn diff --git a/graphics/event_objects/pics/pokemon/enemy_zigzagoon.png b/graphics/event_objects/pics/pokemon/enemy_zigzagoon.png index 5c75f647f544260185f665d3195e112c2bbe2559..2684ad13021b1a86f086a14e93cb904244f1ac69 100644 GIT binary patch delta 39 tcmX@bc8zs{%EUTr4yHs;7srr@){VF0nFLt>Oy0u)1fH&bF6*2Ung9|X4O0LB delta 153 zcmcb{dWvm=N;rFor>`sfBMuI6CC1eb8(bI|7{p6lBT9nv(@M${i&7cfeOvaE{-7{of~g2WfsukOx?u*1fH&bF6*2UngIVi3~K-Y delta 153 zcmbQkF@bY}N;rFor>`sfBMuI6X)YtNCuIx_4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf zOW8ji1xhoP1o;IsI6S+N#=yY5+|$J|q+-s-^rg%KPr3W;K*o5w`njxgN@xNA+K4O? diff --git a/graphics/event_objects/pics/pokemon/ho_oh.png b/graphics/event_objects/pics/pokemon/ho_oh.png index 883bf657735b28e3ac499d10c7953fd9826ba458..e6c7374e03b5398acc3c34e0fa313554666c29f6 100644 GIT binary patch delta 39 tcmZo=oyamlWn!H*2jd)17sn8b-i^0sF$#PX^pIr$0#8>zmvv4FO#u3i3_1V+ delta 153 zcmbQp(#kqPC7iv))7O>#5eJ93lHvrt2|Wx94B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf yOW8ji1xhoP1o;IsI6S+N24v6iba4!+n6oi`7NfxCA7{-$#(28=xvXFVdQ&MBb@04Glm9smFU delta 151 zcmcb~be4I7N;rFor>`sfBMuI6Wi}mqk!1`F4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF+MaCp=cbET5 w**_fx$}*M&`2{mLJiCzwzmvv4FO#l!<4MhL| delta 153 zcmcc0e3E5?N;rFor>`sfBMuI6718Gh4)14RU=S~HjVKAuPb(=;EJ|f?_i+jEb5|%! zEmAPnGbwCc@(`$mqolyk9VlZAWHWd*XvzaAmUKs7M+SzC{oH>NStlymDKRi6dAqy( yU&{XJC{UWQB*-tA!Qt7BG$1>{)5S5QV$R0&I7WfiQyc6-#(28=xvXO9m<9SjlrLid0#8>zmvv4FO#lnW4R-(l delta 153 zcmeC>Xylxr63$-Y>Fdh=h=W61M)14Q?pOu}2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)ur35(8tBx4X;# zrR<-M0;L&Cg8YIR9G=}sV_;yO;pyTSQZZ*^`ZQ*N4Q^AOf{gKW^>bP0l+XkKCg3eE diff --git a/graphics/event_objects/pics/pokemon/latias_latios.png b/graphics/event_objects/pics/pokemon/latias_latios.png index e9355d4a6069f3d2ff75ffdadfdd7b12da023a27..4030d413c62c9c2fce28a58d0acc8a1f7154a41b 100644 GIT binary patch delta 39 tcmdnUx|d~w%EUTr4#pFnE{-7IV-!d!duYl41fH&bF6*2UngAAZ4RZhh delta 153 zcmdnXvXOOyN;rFor>`sfBMuI6Ri0TJqU;zL7{p6lBT9nv(@M${i&7cfeOv>EaktF=u1?F-C#&JKkr4jPZ2!b6Mw<&;$TG@-6rP diff --git a/graphics/event_objects/pics/pokemon/lugia.png b/graphics/event_objects/pics/pokemon/lugia.png index d38e374b380d64ef7740c0d79ef644bfced8f84a..1dfc6858b90f830a7433edd0333e1d548ce231e0 100644 GIT binary patch delta 39 tcmeBUnZ-OoWn!H*2cxQ|i(`mI@5bB8i~>vDFFs`e0#8>zmvv4FO#t^N43_`^ delta 153 zcmbQm+{ZFOC7iv))7O>#5eJ93s^-NleU%Ih4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF6B?iVMZ+Dmf xOW8ji1xhoP1o;IsI6S+N24t&xx;TbZ%-NW(%qXDvJ75OL7*AI}mvv4FO#n?VELH#j diff --git a/graphics/event_objects/pics/pokemon/mew.png b/graphics/event_objects/pics/pokemon/mew.png index 152bdabce2a86b7c4016abc18b81fafaa63ea987..00cbd277947d4122321e752ecee69c4ac05e74ba 100644 GIT binary patch delta 39 ucmbQrzL0H#%EUTr4yHApE{-7{of~hjViK6VTj>!45O})!xvX`sfBMuI6HH!(Fe?1r&7{p6lBT9nv(@M${i&7cfeOv8qFo-bmk%0U6`z>gTe~DWM4fG_)-` diff --git a/graphics/event_objects/pics/pokemon/pikachu.png b/graphics/event_objects/pics/pokemon/pikachu.png index bd7026955500ed0ed193737da2809e4fa1a0b8b2..b2d15ef1796db2730dd20195815ad1320908a576 100644 GIT binary patch delta 37 scmX@ie4c57%EUSw_FJAVjv*3LC*Hmx5c6eXG6N8Jy85}Sb4q9e01`C~(EtDd delta 151 zcmX@lbeMU9N;rFor>`sfBMuI6b(yV(8aEgi7{p6lBT9nv(@M${i&7cfeOv delta 153 zcmZ3)I*o0DN;rFor>`sfBMuI6O;-P#Yo{?VFo>79MwA5SrUOlo%M3yxm>? zFJ=F96e!JD666=m;PC858Uq89uBVG*NX49u>Do*JwZ|_hfsFBV^>bP0l+XkKJE$yg diff --git a/graphics/event_objects/pics/pokemon/rayquaza.png b/graphics/event_objects/pics/pokemon/rayquaza.png index aec6616d9ae6bcb38ddca0e230f7a005fec705dc..9a74dc64f034e17394d2a7412bb0decd3c6be983 100644 GIT binary patch delta 39 tcmaFN{hn)r%EUTr4whe@E{-7?jT>+OU=i@m*~7~K1fH&bF6*2UngA{J4g&xH delta 153 zcmaFQ^_Y8tN;rFor>`sfBMuI6Evc7(J}+QkU=S~HjVKAuPb(=;EJ|f?_i+jEb5|%! zEmAPnGbwCc@(`$mqolyk9VlZAWHWd*XvzaAmUKs7M+SzC{oH>NStlymDKRi6dAqy( yU&{XJC{UWQB*-tA!Qt7BG@#O7o-U3d6>~PG|6mcQbWn-~8RO~d=d#Wzp$Py>;4ahv diff --git a/graphics/event_objects/pics/pokemon/rayquaza_still.png b/graphics/event_objects/pics/pokemon/rayquaza_still.png index 1c18b2ffc1aa6179bee49a2f5b6b5291fb8a8cc2..55d638f292894865fb9ec8a3c233013b742eda14 100644 GIT binary patch delta 10 RcmbQm(#tX-eq+u$MgSF71M2_) delta 22 dcmeBWnZ+_8o|}QOB*-tA!Qt7Bw2iSF7y(Z42ekkI diff --git a/graphics/event_objects/pics/pokemon/regi.png b/graphics/event_objects/pics/pokemon/regi.png index 8425040dd121adab156bbcccbbeaab7fe0db0983..c3bb15e57dabc44cc0e3007809a8bb0293d5fdba 100644 GIT binary patch delta 10 RcmZo-{>n5Veq)XpBLEg(1E2r^ delta 22 dcmey$)Wkd?o|}QOB*-tA!Qt7Bw2iS6i~v-W2WkKS diff --git a/graphics/event_objects/pics/pokemon/skitty.png b/graphics/event_objects/pics/pokemon/skitty.png index 2b4011320727777e3989e7484b5513ed87d8ef5a..2b78104123fa1fecc7ca029e6a205719119c568b 100644 GIT binary patch delta 37 scmX@We1>U)%EUSw_UoQ5jv*3LC*Hm)z$U`9i2(>aUHx3vIVCg!0Qz_gPXGV_ delta 151 zcmX@Zbbxt+N;rFor>`sfBMuI6ZT86z*I6(yFo>79MwA5SrUO6&aJf-Ch1K xW&d;(D9cz9`sfBMuI6Z41@*W>y9U2JsTth?3y^w370~qErTVAC~|>cZIUl zA_ZeTlfu>|4}nTJN(%hkfilKGHiK7#raX{hNq6*hWMJ6X&;2Knb)urZB4d)byUYKj w?4OPTWf@C?{DK)Ap4~_Ta&CFLIEGZrnV5b<;N67h5zm+&(Hfv2mV%Q~loCIAQ;43Yo< delta 153 zcmcb@eu86yN;rFor>`sfBMuI6Jz3!|i`f|%7{p6lBT9nv(@M${i&7cfeOv`sfBMuI637yksMji|d4B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF+MaCp=cbET5 w**_fx$}*M&`2{mLJiCzwmdKI;Vst0OrXossI20 diff --git a/graphics/event_objects/pics/pokemon/zigzagoon.png b/graphics/event_objects/pics/pokemon/zigzagoon.png index 2312d4f97a5181859a719920e526752c631f776a..2eaf2403d5f7eed52a53ce9c66333a9201188ab7 100644 GIT binary patch delta 37 scmbQwyqal(%EUSw_HCXnjv*3LC*Iy7@S}kvmH`MnUHx3vIVCg!0Q}kv+5i9m delta 151 zcmZ3@G@p5bN;rFor>`sfBMuI6eN+1=t33=14B{oO5hcO-X(i=}MX3z#J}v=%?h0k8 zMGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1$iT3%pZiZD>qJF+MaCp=cbET5 w**_fx$}*M&`2{mLJiCzwmdKI;Vst0J@kgP5=M^ diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk new file mode 100644 index 0000000000..2f5bfe608e --- /dev/null +++ b/spritesheet_rules.mk @@ -0,0 +1,663 @@ +EVENTOBJGFXDIR := graphics/event_objects/pics + +$(EVENTOBJGFXDIR)/people/brendan/walking.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/brendan/running.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/brendan/field_move.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/brendan/surfing.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/brendan/mach_bike.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/brendan/acro_bike.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/brendan/fishing.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/brendan/watering.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/brendan/underwater.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + + +$(EVENTOBJGFXDIR)/people/elite_four/drake.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/elite_four/glacia.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/elite_four/phoebe.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/elite_four/sidney.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + + +$(EVENTOBJGFXDIR)/people/frontier_brains/anabel.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/frontier_brains/brandon.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/frontier_brains/greta.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/frontier_brains/lucy.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/frontier_brains/noland.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/frontier_brains/spenser.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/frontier_brains/tucker.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + + +$(EVENTOBJGFXDIR)/people/gym_leaders/brawly.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/gym_leaders/flannery.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/gym_leaders/juan.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/gym_leaders/liza.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/gym_leaders/norman.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/gym_leaders/roxanne.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/gym_leaders/tate.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/gym_leaders/wattson.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/gym_leaders/winona.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + + +$(EVENTOBJGFXDIR)/people/may/walking.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/may/running.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/may/field_move.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/may/surfing.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/may/mach_bike.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/may/acro_bike.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/may/fishing.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/may/watering.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/may/underwater.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + + +$(EVENTOBJGFXDIR)/people/ruby_sapphire_brendan/walking.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/ruby_sapphire_brendan/running.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + + +$(EVENTOBJGFXDIR)/people/ruby_sapphire_may/walking.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/ruby_sapphire_may/running.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + + +$(EVENTOBJGFXDIR)/people/team_aqua/aqua_member_f.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/team_aqua/aqua_member_m.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/team_aqua/archie.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + + +$(EVENTOBJGFXDIR)/people/team_magma/magma_member_f.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/team_magma/magma_member_m.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/team_magma/maxie.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + + +$(EVENTOBJGFXDIR)/people/artist.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/beauty.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/black_belt.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/boy_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/boy_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/boy_3.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/boy_4.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/boy_5.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/bug_catcher.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/cameraman.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/camper.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/contest_old_man.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/cook.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/cycling_triathlete_f.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/cycling_triathlete_m.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/fat_man.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/fisherman.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/gentleman.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/girl_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/girl_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/girl_3.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/hex_maniac.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/hiker.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/hot_springs_old_woman.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/lass.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/leaf.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/little_boy_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/people/little_boy_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/people/little_girl_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/little_girl_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/people/man_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/man_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/man_3.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/man_4.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/man_5.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/man_6.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/man_7.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/maniac.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/mart_employee.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/mauville_old_man_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/mauville_old_man_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/mom.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/mystery_event_deliveryman.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/nurse.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/old_man_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/old_man_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/old_woman_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/old_woman_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/picnicker.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/prof_birch.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/psychic_m.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/quinty_plump.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/people/red.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/reporter_f.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/reporter_m.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/rooftop_sale_woman.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/rs_little_boy.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/people/running_triathlete_f.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/running_triathlete_m.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/sailor.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/school_kid_m.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/scientist_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/scientist_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/scott.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/steven.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/swimmer_f.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/swimmer_m.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/teala.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/tuber_f.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/people/tuber_m.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/people/tuber_m_swimming.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/people/union_room_attendant.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/unused_woman.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/wallace.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/wally.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/woman_1.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/woman_2.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/woman_3.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/woman_4.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/woman_5.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/woman_6.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/woman_7.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/people/youngster.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + + + +$(EVENTOBJGFXDIR)/pokemon/azumarill.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/pokemon/azurill.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/pokemon/deoxys.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/dusclops.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/enemy_zigzagoon.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/groudon.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/ho_oh.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/kecleon.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/pokemon/kirlia.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/kyogre.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/latias_latios.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/lugia.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/mew.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/pikachu.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/pokemon/poochyena.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/rayquaza.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 8 -mheight 8 + +$(EVENTOBJGFXDIR)/pokemon/skitty.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/pokemon/sudowoodo.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/vigoroth.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/pokemon/wingull.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/pokemon/zigzagoon.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + + + +$(EVENTOBJGFXDIR)/berry_trees/aguav.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/aspear.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/cheri.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/chesto.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/cornn.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/durin.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/figy.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/grepa.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/hondew.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/iapapa.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/kelpsy.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/lansat.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/leppa.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/liechi.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/lum.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/mago.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/nomel.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/oran.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/pamtre.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/pecha.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/persim.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/pomeg.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/rabuta.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/rawst.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/razz.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/sitrus.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/spelon.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/sprout.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/berry_trees/tamato.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/wepear.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/berry_trees/wiki.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + + + +$(EVENTOBJGFXDIR)/misc/breakable_rock.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/misc/cuttable_tree.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/misc/mr_brineys_boat.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + + + +$(EVENTOBJGFXDIR)/effects/arrow.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/ash.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/berry_tree_growth_sparkle.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/bike_hop_big_splash.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/bike_hop_small_splash.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 1 + +$(EVENTOBJGFXDIR)/effects/bike_hop_tall_grass.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 1 + +$(EVENTOBJGFXDIR)/effects/bike_tire_tracks.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/bubbles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/effects/deep_sand_footprints.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/ground_impact_dust.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 1 + +$(EVENTOBJGFXDIR)/effects/jump_out_of_ash.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/long_grass.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/mountain_disguise.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/effects/ripple.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/sand_disguise_placeholder.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/effects/sand_footprints.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/short_grass.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/surf_blob.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(EVENTOBJGFXDIR)/effects/tall_grass.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/tree_disguise.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 + +$(EVENTOBJGFXDIR)/effects/unknown_16.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/unknown_17.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/unknown_18.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/unknown_19.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/unknown_20.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/unknown_29.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 1 + +$(EVENTOBJGFXDIR)/effects/unknown_33.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/unknown_35.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(EVENTOBJGFXDIR)/effects/unused_grass.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index 522f14db40..a99d5a779e 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -255,12 +255,7 @@ const u32 gEventObjectPic_CableCar[] = INCBIN_U32("graphics/event_objects/pics/m const u16 gEventObjectPalette20[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_20.gbapal"); const u32 gEventObjectPic_SSTidal[] = INCBIN_U32("graphics/event_objects/pics/misc/ss_tidal.4bpp"); const u16 gEventObjectPalette21[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_21.gbapal"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_0[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/0.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_1[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/1.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_2[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/2.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_3[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/3.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_4[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/4.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_5[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/5.4bpp"); +const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle.4bpp"); const u32 gEventObjectPic_BerryTreeDirtPile[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/dirt_pile.4bpp"); const u32 gEventObjectPic_BerryTreeSprout[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sprout.4bpp"); const u32 gEventObjectPic_PechaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha.4bpp"); @@ -310,72 +305,33 @@ const u32 gFieldEffectObjectPic_Ash[] = INCBIN_U32("graphics/event_objects/pics/ const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow.4bpp"); const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_00.gbapal"); const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_01.gbapal"); -const u32 gFieldEffectObjectPic_GroundImpactDust_0[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust/0.4bpp"); -const u32 gFieldEffectObjectPic_GroundImpactDust_1[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust/1.4bpp"); -const u32 gFieldEffectObjectPic_GroundImpactDust_2[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust/2.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass_0[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass/0.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass_1[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass/1.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass_2[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass/2.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass_3[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass/3.4bpp"); -const u32 gUnusedGrass_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass/0.4bpp"); -const u32 gUnusedGrass_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass/1.4bpp"); -const u32 gUnusedGrass_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass/2.4bpp"); -const u32 gUnusedGrass_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/4.4bpp"); -const u32 gUnknown_084F7E38[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_4F7E38/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_5[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/5.4bpp"); +const u32 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust.4bpp"); +const u32 gFieldEffectObjectPic_BikeHopTallGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass.4bpp"); +const u32 gUnusedGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass.4bpp"); +const u32 gFieldEffectObjectPic_Unknown16[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16.4bpp"); const u32 gFieldEffectObjectPic_Unknown17[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/3.4bpp"); -const u32 gFieldEffectObjectPic_LongGrass_0[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/0.4bpp"); -const u32 gFieldEffectObjectPic_LongGrass_1[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/1.4bpp"); -const u32 gFieldEffectObjectPic_LongGrass_2[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/2.4bpp"); -const u32 gFieldEffectObjectPic_LongGrass_3[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/3.4bpp"); +const u32 gFieldEffectObjectPic_Unknown18[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18.4bpp"); +const u32 gFieldEffectObjectPic_LongGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass.4bpp"); const u32 gFieldEffectObjectPic_TallGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/tall_grass.4bpp"); const u32 gFieldEffectObjectPic_ShortGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/short_grass.4bpp"); -const u32 gFieldEffectObjectPic_SandFootprints_0[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_footprints/0.4bpp"); -const u32 gFieldEffectObjectPic_SandFootprints_1[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_footprints/1.4bpp"); -const u32 gFieldEffectObjectPic_DeepSandFootprints_0[] = INCBIN_U32("graphics/event_objects/pics/effects/deep_sand_footprints/0.4bpp"); -const u32 gFieldEffectObjectPic_DeepSandFootprints_1[] = INCBIN_U32("graphics/event_objects/pics/effects/deep_sand_footprints/1.4bpp"); -const u32 gFieldEffectObjectPic_BikeTireTracks_0[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks/0.4bpp"); -const u32 gFieldEffectObjectPic_BikeTireTracks_1[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks/1.4bpp"); -const u32 gFieldEffectObjectPic_BikeTireTracks_2[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks/2.4bpp"); -const u32 gFieldEffectObjectPic_BikeTireTracks_3[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown29_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown29_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown29_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29/2.4bpp"); +const u32 gFieldEffectObjectPic_SandFootprints[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_footprints.4bpp"); +const u32 gFieldEffectObjectPic_DeepSandFootprints[] = INCBIN_U32("graphics/event_objects/pics/effects/deep_sand_footprints.4bpp"); +const u32 gFieldEffectObjectPic_BikeTireTracks[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks.4bpp"); +const u32 gFieldEffectObjectPic_Unknown19[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19.4bpp"); +const u32 gFieldEffectObjectPic_Unknown29[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29.4bpp"); const u32 gFieldEffectObjectPic_BikeHopBigSplash[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_big_splash.4bpp"); const u32 gFieldEffectObjectPic_Splash[] = INCBIN_U32("graphics/event_objects/pics/effects/splash.4bpp"); const u32 gFieldEffectObjectPic_BikeHopSmallSplash[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_small_splash.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/4.4bpp"); +const u32 gFieldEffectObjectPic_Unknown20[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20.4bpp"); const u32 gFieldEffectObjectPic_TreeDisguise[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise.4bpp"); const u32 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise.4bpp"); const u32 gFieldEffectObjectPic_SandDisguisePlaceholder[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder.4bpp"); const u32 gFieldEffectObjectPic_HotSpringsWater[] = INCBIN_U32("graphics/event_objects/pics/effects/hot_springs_water.4bpp"); const u16 gFieldEffectObjectPalette2[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_02.gbapal"); const u32 gFieldEffectObjectPic_JumpOutOfAsh[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/4.4bpp"); +const u32 gFieldEffectObjectPic_Unknown33[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33.4bpp"); const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles.4bpp"); -const u32 gFieldEffectObjectPic_Unknown35_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown35_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35/1.4bpp"); +const u32 gFieldEffectObjectPic_Unknown35[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35.4bpp"); const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_03.gbapal"); const u32 gFieldEffectObjectPic_Bird[] = INCBIN_U32("graphics/event_objects/pics/effects/bird.4bpp"); const u32 gEventObjectPic_Juan[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/juan.4bpp"); diff --git a/src/data/field_event_obj/field_effect_objects.h b/src/data/field_event_obj/field_effect_objects.h index 45a498dac1..15fc733433 100755 --- a/src/data/field_event_obj/field_effect_objects.h +++ b/src/data/field_event_obj/field_effect_objects.h @@ -208,9 +208,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Arrow[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Arrow, gFieldEffectObjectPicTable_Arrow, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; const struct SpriteFrameImage gFieldEffectObjectPicTable_GroundImpactDust[] = { - obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_0), - obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_1), - obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_2), + overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850CC8C[] = @@ -229,10 +229,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_GroundImpactDust[] = const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_GroundImpactDust, gFieldEffectObjectPicTable_GroundImpactDust, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopTallGrass[] = { - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_0), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_1), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_2), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_3), + overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 2), + overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CCD8[] = @@ -252,8 +252,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopTallGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopTallGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopTallGrass, gFieldEffectObjectPicTable_BikeHopTallGrass, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_SandFootprints[] = { - obj_frame_tiles(gFieldEffectObjectPic_SandFootprints_0), - obj_frame_tiles(gFieldEffectObjectPic_SandFootprints_1), + overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850CD18[] = @@ -292,8 +292,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_SandFootprints[] = const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_SandFootprints, gFieldEffectObjectPicTable_SandFootprints, gDummySpriteAffineAnimTable, sub_8154C60}; const struct SpriteFrameImage gFieldEffectObjectPicTable_DeepSandFootprints[] = { - obj_frame_tiles(gFieldEffectObjectPic_DeepSandFootprints_0), - obj_frame_tiles(gFieldEffectObjectPic_DeepSandFootprints_1), + overworld_frame(gFieldEffectObjectPic_DeepSandFootprints, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_DeepSandFootprints, 2, 2, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850CD74[] = @@ -332,10 +332,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_DeepSandFootprints[] const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_DeepSandFootprints, gFieldEffectObjectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, sub_8154C60}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeTireTracks[] = { - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_0), - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_1), - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_2), - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_3), + overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CDE0[] = @@ -479,10 +479,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopSmallSplash[] const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopSmallSplash = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopSmallSplash, gFieldEffectObjectPicTable_BikeHopSmallSplash, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_LongGrass[] = { - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_0), - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_1), - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_2), - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_3), + overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CF70[] = @@ -505,12 +505,12 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_LongGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_LongGrass, gFieldEffectObjectPicTable_LongGrass, gDummySpriteAffineAnimTable, unc_grass_tall}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown16[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_3), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_4), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_5), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6), }; const union AnimCmd gFieldEffectObjectImageAnim_850CFDC[] = @@ -532,7 +532,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown16[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16 = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown16, gFieldEffectObjectPicTable_Unknown16, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown17[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_5), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 2), @@ -565,10 +565,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown17[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17 = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown17, gFieldEffectObjectPicTable_Unknown17, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown18[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_3), + overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D0C0[] = @@ -590,10 +590,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown18[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown18 = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown18, gFieldEffectObjectPicTable_Unknown18, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown19[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_3), + overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D118[] = @@ -613,9 +613,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown19[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19 = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown19, gFieldEffectObjectPicTable_Unknown19, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown29[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown29_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown29_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown29_2), + overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850D160[] = @@ -634,10 +634,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown29[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29 = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Unknown29, gFieldEffectObjectPicTable_Unknown29, gDummySpriteAffineAnimTable, sub_81559BC}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown20[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_3), + overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D1AC[] = @@ -695,12 +695,12 @@ const union AffineAnimCmd *const gFieldEffectObjectRotScalAnimTable_Unknown21[] const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectObjectRotScalAnimTable_Unknown21, SpriteCallbackDummy}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BerryTreeGrowthSparkle[] = { - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_0), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_1), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_2), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_3), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_4), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_5), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 5), }; const union AnimCmd gFieldEffectObjectImageAnim_850D2D4[] = @@ -900,11 +900,11 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh = {0xFFFF, 0 const struct SpritePalette gFieldEffectObjectPaletteInfo2 = {gFieldEffectObjectPalette2, 0x100D}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown33[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_3), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_4), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850D5B0[] = @@ -956,8 +956,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bubbles[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_Bubbles, gFieldEffectObjectPicTable_Bubbles, gDummySpriteAffineAnimTable, sub_8155AEC}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown35[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown35_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown35_1), + overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850D674[] = From f40fa373988288ee6ca9b8938cb6c33aa409575e Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 23:37:47 +0100 Subject: [PATCH 21/28] Move battle_bg data to C --- data/data2c.s | 173 ----------- include/battle_main.h | 2 +- ld_script.txt | 1 + src/battle_bg.c | 679 ++++++++++++++++++++++++++++++++++++++++-- src/battle_main.c | 2 +- 5 files changed, 659 insertions(+), 198 deletions(-) diff --git a/data/data2c.s b/data/data2c.s index a661dc165a..1946f5bdb4 100644 --- a/data/data2c.s +++ b/data/data2c.s @@ -8,179 +8,6 @@ .section .rodata - .align 2 - .2byte 0x0300, 0x0000 - - .align 2 -gUnknown_0831A988:: @ 831A988 - .byte 0x00, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_0831A990:: @ 831A990 - .byte 0x00, 0x03, 0x00, 0xc0, 0x40, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_0831A998:: @ 831A998 - .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_0831A9A8:: @ 831A9A8 - .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0x0018, 0x0018, 0x8000, 0x0000 - .2byte 0x0018, 0x0018, 0x8000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_0831A9C8:: @ 831A9C8 - .4byte gUnknown_0831A998 - .4byte gUnknown_0831A9A8 - - .align 2 -gUnknown_0831A9D0:: @ 831A9D0 - spr_template 0x2710, 0x2710, gUnknown_0831A988, gDummySpriteAnimTable, NULL, gUnknown_0831A9C8, nullsub_17 - - .align 2 -gUnknown_0831A9E8:: @ 831A9E8 - spr_template 0x2710, 0x2710, gUnknown_0831A990, gDummySpriteAnimTable, NULL, gUnknown_0831A9C8, nullsub_17 - - .align 2 -gUnknown_0831AA00:: @ 831AA00 - obj_tiles gUnknown_08D77B0C, 0x1000, 0x2710 - - .align 2 -gBattleBgTemplates:: @ 831AA08 - .4byte 0x00000580, 0x000005c5, 0x000013e6, 0x000033ab - - .align 2 -gUnknown_0831AA18:: @ 831AA18 - window_template 0x00, 0x02, 0x0f, 0x1a, 0x04, 0x00, 0x0090 - window_template 0x00, 0x01, 0x23, 0x0e, 0x04, 0x00, 0x01c0 - window_template 0x00, 0x11, 0x23, 0x0c, 0x04, 0x05, 0x0190 - window_template 0x00, 0x02, 0x37, 0x08, 0x02, 0x05, 0x0300 - window_template 0x00, 0x0b, 0x37, 0x08, 0x02, 0x05, 0x0310 - window_template 0x00, 0x02, 0x39, 0x08, 0x02, 0x05, 0x0320 - window_template 0x00, 0x0b, 0x39, 0x08, 0x02, 0x05, 0x0330 - window_template 0x00, 0x15, 0x37, 0x04, 0x02, 0x05, 0x0290 - window_template 0x00, 0x15, 0x39, 0x00, 0x00, 0x05, 0x0298 - window_template 0x00, 0x19, 0x37, 0x04, 0x02, 0x05, 0x0298 - window_template 0x00, 0x15, 0x39, 0x08, 0x02, 0x05, 0x02a0 - window_template 0x00, 0x15, 0x37, 0x08, 0x04, 0x05, 0x02b0 - window_template 0x00, 0x1a, 0x09, 0x03, 0x04, 0x05, 0x0100 - window_template 0x01, 0x13, 0x08, 0x0a, 0x0b, 0x05, 0x0100 - window_template 0x02, 0x12, 0x00, 0x0c, 0x03, 0x06, 0x016e - window_template 0x01, 0x02, 0x03, 0x06, 0x02, 0x05, 0x0020 - window_template 0x02, 0x02, 0x03, 0x06, 0x02, 0x05, 0x0040 - window_template 0x01, 0x02, 0x02, 0x06, 0x02, 0x05, 0x0020 - window_template 0x02, 0x02, 0x02, 0x06, 0x02, 0x05, 0x0040 - window_template 0x01, 0x02, 0x06, 0x06, 0x02, 0x05, 0x0060 - window_template 0x02, 0x02, 0x06, 0x06, 0x02, 0x05, 0x0080 - window_template 0x00, 0x0c, 0x02, 0x06, 0x02, 0x00, 0x00a0 - window_template 0x00, 0x04, 0x02, 0x07, 0x02, 0x00, 0x00a0 - window_template 0x00, 0x13, 0x02, 0x07, 0x02, 0x00, 0x00b0 - null_window_template - - .align 2 -gUnknown_0831AAE0:: @ 831AAE0 - window_template 0x00, 0x02, 0x0f, 0x1a, 0x04, 0x00, 0x0090 - window_template 0x00, 0x01, 0x23, 0x0e, 0x04, 0x00, 0x01c0 - window_template 0x00, 0x11, 0x23, 0x0c, 0x04, 0x05, 0x0190 - window_template 0x00, 0x02, 0x37, 0x08, 0x02, 0x05, 0x0300 - window_template 0x00, 0x0b, 0x37, 0x08, 0x02, 0x05, 0x0310 - window_template 0x00, 0x02, 0x39, 0x08, 0x02, 0x05, 0x0320 - window_template 0x00, 0x0b, 0x39, 0x08, 0x02, 0x05, 0x0330 - window_template 0x00, 0x15, 0x37, 0x04, 0x02, 0x05, 0x0290 - window_template 0x00, 0x15, 0x39, 0x00, 0x00, 0x05, 0x0298 - window_template 0x00, 0x19, 0x37, 0x04, 0x02, 0x05, 0x0298 - window_template 0x00, 0x15, 0x39, 0x08, 0x02, 0x05, 0x02a0 - window_template 0x00, 0x15, 0x37, 0x08, 0x04, 0x05, 0x02b0 - window_template 0x00, 0x1a, 0x09, 0x03, 0x04, 0x05, 0x0100 - window_template 0x01, 0x13, 0x08, 0x0a, 0x0b, 0x05, 0x0100 - window_template 0x02, 0x12, 0x00, 0x0c, 0x03, 0x06, 0x016e - window_template 0x00, 0x06, 0x01, 0x08, 0x02, 0x05, 0x0100 - window_template 0x00, 0x0e, 0x01, 0x02, 0x02, 0x05, 0x0110 - window_template 0x00, 0x10, 0x01, 0x08, 0x02, 0x05, 0x0114 - window_template 0x00, 0x0c, 0x04, 0x06, 0x02, 0x05, 0x0124 - window_template 0x00, 0x0c, 0x06, 0x06, 0x02, 0x05, 0x0130 - window_template 0x00, 0x0c, 0x08, 0x06, 0x02, 0x05, 0x013c - window_template 0x00, 0x08, 0x0b, 0x0e, 0x02, 0x05, 0x0148 - window_template 0x00, 0x02, 0x0f, 0x1a, 0x04, 0x07, 0x0090 - null_window_template - - .align 2 -gBattleWindowTemplates:: @ 831ABA0 - .4byte gUnknown_0831AA18 - .4byte gUnknown_0831AAE0 - - .align 2 -gBattleTerrainTable:: @ 831ABA8 - @ tall_grass - .4byte gBattleTerrainTiles_TallGrass - .4byte gBattleTerrainTilemap_TallGrass - .4byte gBattleTerrainAnimTiles_TallGrass - .4byte gBattleTerrainAnimTilemap_TallGrass - .4byte gBattleTerrainPalette_TallGrass - - @ long_grass - .4byte gBattleTerrainTiles_LongGrass - .4byte gBattleTerrainTilemap_LongGrass - .4byte gBattleTerrainAnimTiles_LongGrass - .4byte gBattleTerrainAnimTilemap_LongGrass - .4byte gBattleTerrainPalette_LongGrass - - @ sand - .4byte gBattleTerrainTiles_Sand - .4byte gBattleTerrainTilemap_Sand - .4byte gBattleTerrainAnimTiles_Sand - .4byte gBattleTerrainAnimTilemap_Sand - .4byte gBattleTerrainPalette_Sand - - @ underwater - .4byte gBattleTerrainTiles_Underwater - .4byte gBattleTerrainTilemap_Underwater - .4byte gBattleTerrainAnimTiles_Underwater - .4byte gBattleTerrainAnimTilemap_Underwater - .4byte gBattleTerrainPalette_Underwater - - @ water - .4byte gBattleTerrainTiles_Water - .4byte gBattleTerrainTilemap_Water - .4byte gBattleTerrainAnimTiles_Water - .4byte gBattleTerrainAnimTilemap_Water - .4byte gBattleTerrainPalette_Water - - @ pond_water - .4byte gBattleTerrainTiles_PondWater - .4byte gBattleTerrainTilemap_PondWater - .4byte gBattleTerrainAnimTiles_PondWater - .4byte gBattleTerrainAnimTilemap_PondWater - .4byte gBattleTerrainPalette_PondWater - - @ rock - .4byte gBattleTerrainTiles_Rock - .4byte gBattleTerrainTilemap_Rock - .4byte gBattleTerrainAnimTiles_Rock - .4byte gBattleTerrainAnimTilemap_Rock - .4byte gBattleTerrainPalette_Rock - - @ cave - .4byte gBattleTerrainTiles_Cave - .4byte gBattleTerrainTilemap_Cave - .4byte gBattleTerrainAnimTiles_Cave - .4byte gBattleTerrainAnimTilemap_Cave - .4byte gBattleTerrainPalette_Cave - - @ building - .4byte gBattleTerrainTiles_Building - .4byte gBattleTerrainTilemap_Building - .4byte gBattleTerrainAnimTiles_Building - .4byte gBattleTerrainAnimTilemap_Building - .4byte gBattleTerrainPalette_Building - - @ plain - .4byte gBattleTerrainTiles_Building - .4byte gBattleTerrainTilemap_Building - .4byte gBattleTerrainAnimTiles_Building - .4byte gBattleTerrainAnimTilemap_Building - .4byte gBattleTerrainPalette_Plain - .align 2 gUnknown_0831AC70:: @ 831AC70 .4byte REG_BG3HOFS diff --git a/include/battle_main.h b/include/battle_main.h index 27e61c8fc2..5a61b5ef01 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -35,7 +35,7 @@ void CB2_QuitRecordedBattle(void); void sub_8038528(struct Sprite* sprite); void sub_8038A04(void); // unused void VBlankCB_Battle(void); -void nullsub_17(void); +void nullsub_17(struct Sprite *sprite); void sub_8038B74(struct Sprite *sprite); void sub_8038D64(void); u32 sub_80391E0(u8 arrayId, u8 caseId); diff --git a/ld_script.txt b/ld_script.txt index 6ec697253f..56d246d70f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -382,6 +382,7 @@ SECTIONS { src/rom_8034C54.o(.rodata); src/data2b.o(.rodata); src/battle_data.o(.rodata); + src/battle_bg.o(.rodata); data/data2c.o(.rodata); src/battle_main.o(.rodata); src/battle_util.o(.rodata); diff --git a/src/battle_bg.c b/src/battle_bg.c index 999b64a542..b8c24e10fe 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -1,24 +1,26 @@ #include "global.h" #include "battle.h" -#include "sprite.h" -#include "constants/trainers.h" -#include "graphics.h" -#include "decompress.h" -#include "bg.h" -#include "palette.h" -#include "main.h" -#include "gpu_regs.h" -#include "link.h" +#include "battle_bg.h" +#include "battle_main.h" #include "battle_message.h" -#include "task.h" -#include "trig.h" -#include "sound.h" -#include "constants/songs.h" -#include "window.h" -#include "text_window.h" -#include "menu.h" #include "battle_setup.h" +#include "bg.h" +#include "decompress.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "link.h" +#include "main.h" +#include "menu.h" +#include "palette.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "text_window.h" +#include "trig.h" +#include "window.h" #include "constants/map_types.h" +#include "constants/songs.h" +#include "constants/trainers.h" struct BattleBackground { @@ -29,13 +31,6 @@ struct BattleBackground const void *palette; }; -extern const struct SpriteTemplate gUnknown_0831A9D0; -extern const struct SpriteTemplate gUnknown_0831A9E8; -extern const struct CompressedSpriteSheet gUnknown_0831AA00; -extern const struct BgTemplate gBattleBgTemplates[4]; -extern const struct WindowTemplate *const gBattleWindowTemplates[]; -extern const struct BattleBackground gBattleTerrainTable[]; - extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; @@ -43,6 +38,644 @@ extern u16 gBattle_BG2_Y; extern u8 GetCurrentMapBattleScene(void); +// .rodata +static const u16 sUnrefArray[] = {0x0300, 0x0000}; //OamData? + +static const struct OamData gUnknown_0831A988 = +{ + .y = 0, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_0831A990 = +{ + .y = 0, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 64, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AffineAnimCmd gUnknown_0831A998[] = +{ + AFFINEANIMCMD_FRAME(0x0080, 0x0080, 0x00, 0x00), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_0831A9A8[] = +{ + AFFINEANIMCMD_FRAME(0x0080, 0x0080, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x0018, 0x0018, 0x00, 0x80), + AFFINEANIMCMD_FRAME(0x0018, 0x0018, 0x00, 0x80), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gUnknown_0831A9C8[] = +{ + gUnknown_0831A998, + gUnknown_0831A9A8, +}; + +static const struct SpriteTemplate gUnknown_0831A9D0 = +{ + .tileTag = 0x2710, + .paletteTag = 0x2710, + .oam = &gUnknown_0831A988, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_0831A9C8, + .callback = nullsub_17 +}; + +static const struct SpriteTemplate gUnknown_0831A9E8 = +{ + .tileTag = 0x2710, + .paletteTag = 0x2710, + .oam = &gUnknown_0831A990, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_0831A9C8, + .callback = nullsub_17 +}; + +static const struct CompressedSpriteSheet gUnknown_0831AA00 = +{ + gUnknown_08D77B0C, 0x1000, 0x2710 +}; + +const struct BgTemplate gBattleBgTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 24, + .screenSize = 2, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 28, + .screenSize = 2, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 1, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 26, + .screenSize = 1, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate gUnknown_0831AA18[] = +{ + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x0090, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 35, + .width = 14, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x01c0, + }, + { + .priority = 0, + .tilemapLeft = 17, + .tilemapTop = 35, + .width = 12, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x0190, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 55, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0300, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 55, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0310, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0320, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0330, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 55, + .width = 4, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0290, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 57, + .width = 0, + .height = 0, + .paletteNum = 5, + .baseBlock = 0x0298, + }, + { + .priority = 0, + .tilemapLeft = 25, + .tilemapTop = 55, + .width = 4, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0298, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x02a0, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 55, + .width = 8, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x02b0, + }, + { + .priority = 0, + .tilemapLeft = 26, + .tilemapTop = 9, + .width = 3, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 1, + .tilemapLeft = 19, + .tilemapTop = 8, + .width = 10, + .height = 11, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 2, + .tilemapLeft = 18, + .tilemapTop = 0, + .width = 12, + .height = 3, + .paletteNum = 6, + .baseBlock = 0x016e, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 3, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0020, + }, + { + .priority = 2, + .tilemapLeft = 2, + .tilemapTop = 3, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0040, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 2, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0020, + }, + { + .priority = 2, + .tilemapLeft = 2, + .tilemapTop = 2, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0040, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 6, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0060, + }, + { + .priority = 2, + .tilemapLeft = 2, + .tilemapTop = 6, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0080, + }, + { + .priority = 0, + .tilemapLeft = 12, + .tilemapTop = 2, + .width = 6, + .height = 2, + .paletteNum = 0, + .baseBlock = 0x00a0, + }, + { + .priority = 0, + .tilemapLeft = 4, + .tilemapTop = 2, + .width = 7, + .height = 2, + .paletteNum = 0, + .baseBlock = 0x00a0, + }, + { + .priority = 0, + .tilemapLeft = 19, + .tilemapTop = 2, + .width = 7, + .height = 2, + .paletteNum = 0, + .baseBlock = 0x00b0, + }, + DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate gUnknown_0831AAE0[] = +{ + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x0090, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 35, + .width = 14, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x01c0, + }, + { + .priority = 0, + .tilemapLeft = 17, + .tilemapTop = 35, + .width = 12, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x0190, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 55, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0300, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 55, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0310, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0320, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0330, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 55, + .width = 4, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0290, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 57, + .width = 0, + .height = 0, + .paletteNum = 5, + .baseBlock = 0x0298, + }, + { + .priority = 0, + .tilemapLeft = 25, + .tilemapTop = 55, + .width = 4, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0298, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x02a0, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 55, + .width = 8, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x02b0, + }, + { + .priority = 0, + .tilemapLeft = 26, + .tilemapTop = 9, + .width = 3, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 1, + .tilemapLeft = 19, + .tilemapTop = 8, + .width = 10, + .height = 11, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 2, + .tilemapLeft = 18, + .tilemapTop = 0, + .width = 12, + .height = 3, + .paletteNum = 6, + .baseBlock = 0x016e, + }, + { + .priority = 0, + .tilemapLeft = 6, + .tilemapTop = 1, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 0, + .tilemapLeft = 14, + .tilemapTop = 1, + .width = 2, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0110, + }, + { + .priority = 0, + .tilemapLeft = 16, + .tilemapTop = 1, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0114, + }, + { + .priority = 0, + .tilemapLeft = 12, + .tilemapTop = 4, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0124, + }, + { + .priority = 0, + .tilemapLeft = 12, + .tilemapTop = 6, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0130, + }, + { + .priority = 0, + .tilemapLeft = 12, + .tilemapTop = 8, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x013c, + }, + { + .priority = 0, + .tilemapLeft = 8, + .tilemapTop = 11, + .width = 14, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0148, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 7, + .baseBlock = 0x0090, + }, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate * const gBattleWindowTemplates[] = +{ + gUnknown_0831AA18, + gUnknown_0831AAE0, +}; + +static const struct BattleBackground gBattleTerrainTable[] = +{ + { + .tileset = gBattleTerrainTiles_TallGrass, + .tilemap = gBattleTerrainTilemap_TallGrass, + .entryTileset = gBattleTerrainAnimTiles_TallGrass, + .entryTilemap = gBattleTerrainAnimTilemap_TallGrass, + .palette = gBattleTerrainPalette_TallGrass, + }, + { + .tileset = gBattleTerrainTiles_LongGrass, + .tilemap = gBattleTerrainTilemap_LongGrass, + .entryTileset = gBattleTerrainAnimTiles_LongGrass, + .entryTilemap = gBattleTerrainAnimTilemap_LongGrass, + .palette = gBattleTerrainPalette_LongGrass, + }, + { + .tileset = gBattleTerrainTiles_Sand, + .tilemap = gBattleTerrainTilemap_Sand, + .entryTileset = gBattleTerrainAnimTiles_Sand, + .entryTilemap = gBattleTerrainAnimTilemap_Sand, + .palette = gBattleTerrainPalette_Sand, + }, + { + .tileset = gBattleTerrainTiles_Underwater, + .tilemap = gBattleTerrainTilemap_Underwater, + .entryTileset = gBattleTerrainAnimTiles_Underwater, + .entryTilemap = gBattleTerrainAnimTilemap_Underwater, + .palette = gBattleTerrainPalette_Underwater, + }, + { + .tileset = gBattleTerrainTiles_Water, + .tilemap = gBattleTerrainTilemap_Water, + .entryTileset = gBattleTerrainAnimTiles_Water, + .entryTilemap = gBattleTerrainAnimTilemap_Water, + .palette = gBattleTerrainPalette_Water, + }, + { + .tileset = gBattleTerrainTiles_PondWater, + .tilemap = gBattleTerrainTilemap_PondWater, + .entryTileset = gBattleTerrainAnimTiles_PondWater, + .entryTilemap = gBattleTerrainAnimTilemap_PondWater, + .palette = gBattleTerrainPalette_PondWater, + }, + { + .tileset = gBattleTerrainTiles_Rock, + .tilemap = gBattleTerrainTilemap_Rock, + .entryTileset = gBattleTerrainAnimTiles_Rock, + .entryTilemap = gBattleTerrainAnimTilemap_Rock, + .palette = gBattleTerrainPalette_Rock, + }, + { + .tileset = gBattleTerrainTiles_Cave, + .tilemap = gBattleTerrainTilemap_Cave, + .entryTileset = gBattleTerrainAnimTiles_Cave, + .entryTilemap = gBattleTerrainAnimTilemap_Cave, + .palette = gBattleTerrainPalette_Cave, + }, + { + .tileset = gBattleTerrainTiles_Building, + .tilemap = gBattleTerrainTilemap_Building, + .entryTileset = gBattleTerrainAnimTiles_Building, + .entryTilemap = gBattleTerrainAnimTilemap_Building, + .palette = gBattleTerrainPalette_Building, + }, + {// plain + .tileset = gBattleTerrainTiles_Building, + .tilemap = gBattleTerrainTilemap_Building, + .entryTileset = gBattleTerrainAnimTiles_Building, + .entryTilemap = gBattleTerrainAnimTilemap_Building, + .palette = gBattleTerrainPalette_Plain, + }, +}; + +// .text void BattleInitBgsAndWindows(void) { ResetBgsAndClearDma3BusyFlags(0); diff --git a/src/battle_main.c b/src/battle_main.c index 1a1f6f61a6..781fbeff40 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -2055,7 +2055,7 @@ void VBlankCB_Battle(void) ScanlineEffect_InitHBlankDmaTransfer(); } -void nullsub_17(void) +void nullsub_17(struct Sprite *sprite) { } From b860d583e4a5b6fd39e725df998ee9837f7f3029 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 14 Sep 2018 12:15:46 -0500 Subject: [PATCH 22/28] Document main_menu --- asm/battle_frontier_2.s | 2 +- asm/rom_8011DC0.s | 4 +- asm/trade.s | 2 +- include/main_menu.h | 2 +- include/menu.h | 2 +- src/data/pokemon/trainer_class_lookups.h | 4 +- src/field_message_box.c | 2 +- src/main_menu.c | 1054 ++++++++++++---------- src/mauville_old_man.c | 2 +- src/menu.c | 2 +- src/slot_machine.c | 2 +- src/start_menu.c | 2 +- 12 files changed, 568 insertions(+), 512 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index c7966b48df..27eee478aa 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -2156,7 +2156,7 @@ sub_81A0A34: @ 81A0A34 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8197224 + bl RunTextPrintersAndIsPrinter0Active lsls r0, 16 cmp r0, 0 bne _081A0A68 diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s index 84573367a4..33ace5757f 100644 --- a/asm/rom_8011DC0.s +++ b/asm/rom_8011DC0.s @@ -2831,7 +2831,7 @@ sub_8017020: @ 8017020 thumb_func_start sub_801704C sub_801704C: @ 801704C push {lr} - bl sub_8197224 + bl RunTextPrintersAndIsPrinter0Active lsls r0, 16 cmp r0, 0 beq _0801705C @@ -2871,7 +2871,7 @@ _08017076: b _080170AE .pool _0801709C: - bl sub_8197224 + bl RunTextPrintersAndIsPrinter0Active lsls r0, 16 lsrs r0, 16 cmp r0, 0 diff --git a/asm/trade.s b/asm/trade.s index 1c9d1f17b4..f81d8c6b21 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -1881,7 +1881,7 @@ sub_807825C: @ 807825C lsrs r1, 24 movs r0, 0x1C bl SetGpuReg - bl sub_8197224 + bl RunTextPrintersAndIsPrinter0Active bl RunTasks bl AnimateSprites bl BuildOamBuffer diff --git a/include/main_menu.h b/include/main_menu.h index 4f75b17679..1944f4ecc5 100644 --- a/include/main_menu.h +++ b/include/main_menu.h @@ -2,6 +2,6 @@ #define GUARD_MAIN_MENU_H void CB2_InitMainMenu(void); -void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f); +void CreateYesNoMenuParameterized(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f); #endif // GUARD_MAIN_MENU_H diff --git a/include/menu.h b/include/menu.h index 309667b19d..cddab0870e 100644 --- a/include/menu.h +++ b/include/menu.h @@ -22,7 +22,7 @@ extern const u16 gUnknown_0860F074[]; void sub_81971D0(void); void sub_8197200(void); -u16 sub_8197224(void); +u16 RunTextPrintersAndIsPrinter0Active(void); void sub_81973A4(void); void NewMenuHelpers_DrawDialogueFrame(u8, u8); void sub_819746C(u8 windowId, bool8 copyToVram); diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h index ec4dbf0fb5..02b2016c1b 100644 --- a/src/data/pokemon/trainer_class_lookups.h +++ b/src/data/pokemon/trainer_class_lookups.h @@ -63,10 +63,10 @@ const u8 gFacilityClassToPicIndex[] = TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1 - TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_MAY + TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3 TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4 - TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN + TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_MAY TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6 TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7 TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2 diff --git a/src/field_message_box.c b/src/field_message_box.c index 7ed87e837f..19859ec0f8 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -37,7 +37,7 @@ void sub_8098154(u8 taskId) task->data[0]++; break; case 2: - if (sub_8197224() != 1) + if (RunTextPrintersAndIsPrinter0Active() != 1) { gUnknown_020375BC = 0; DestroyTask(taskId); diff --git a/src/main_menu.c b/src/main_menu.c index 7e84ae7ec1..bcc4f9af54 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -5,6 +5,7 @@ #include "constants/rgb.h" #include "constants/songs.h" #include "constants/species.h" +#include "constants/trainers.h" #include "decompress.h" #include "event_data.h" #include "field_effect.h" @@ -45,91 +46,91 @@ static EWRAM_DATA u8 gUnknown_02022D04 = 0; static EWRAM_DATA u16 sCurrItemAndOptionMenuCheck = 0; -static IWRAM_DATA u8 gUnknown_03000DD0; +static IWRAM_DATA u8 sBirchSpeechMainTaskId; // Static ROM declarations -u32 InitMainMenu(bool8); -void Task_MainMenuCheckSaveFile(u8); -void Task_MainMenuCheckBattery(u8); -void Task_WaitForSaveFileErrorWindow(u8); -void CreateMainMenuErrorWindow(const u8*); +static u32 InitMainMenu(bool8); +static void Task_MainMenuCheckSaveFile(u8); +static void Task_MainMenuCheckBattery(u8); +static void Task_WaitForSaveFileErrorWindow(u8); +static void CreateMainMenuErrorWindow(const u8*); static void ClearMainMenuWindowTilemap(const struct WindowTemplate*); -void Task_DisplayMainMenu(u8); -void Task_WaitForBatteryDryErrorWindow(u8); -void fmt_savegame(void); -void HighlightSelectedMainMenuItem(u8, u8, s16); -void Task_HandleMainMenuInput(u8); -void Task_HandleMainMenuAPressed(u8); -void Task_HandleMainMenuBPressed(u8); -void task_new_game_prof_birch_speech_1(u8); -void Task_DisplayMainMenuInvalidActionError(u8); -void AddBirchSpeechObjects(u8); -void task_new_game_prof_birch_speech_2(u8); -void sub_8031BAC(u8, u8); -void sub_8031D34(u8, u8); -void task_new_game_prof_birch_speech_3(u8); -void unknown_rbox_to_vram(u8, u8); -void sub_8032318(u8); -void task_new_game_prof_birch_speech_4(u8); -void task_new_game_prof_birch_speech_5(u8); -void sub_80323A0(struct TextSubPrinter *printer, u16 a); -void task_new_game_prof_birch_speech_6(u8); -void sub_8030B14(u8); -void task_new_game_prof_birch_speech_7(u8); -void sub_8031ACC(u8, u8); -void sub_8031C88(u8, u8); -void task_new_game_prof_birch_speech_8(u8); -void task_new_game_prof_birch_speech_9(u8); -void task_new_game_prof_birch_speech_10(u8); -void task_new_game_prof_birch_speech_11(u8); -void LoadMainMenuWindowFrameTiles(u8, u16); -void DrawMainMenuWindowBorder(const struct WindowTemplate*, u16); -void Task_HighlightSelectedMainMenuItem(u8); -void task_new_game_prof_birch_speech_12(u8); -void task_new_game_prof_birch_speech_13(u8); -void sub_8031D74(void); -s8 sub_8031DB4(void); -void sub_80322E0(u8, u8); -void task_new_game_prof_birch_speech_14(u8); -void sub_8030ED4(u8); -void sub_8030F7C(u8); -void task_new_game_prof_birch_speech_15(u8); -void task_new_game_prof_birch_speech_16(u8); -void task_new_game_prof_birch_speech_17(u8); -void new_game_prof_birch_speech_part2_start(void); -void set_default_player_name(u8); -void task_new_game_prof_birch_speech_part2_3(u8); -void task_new_game_prof_birch_speech_part2_4(u8); -void sub_80323CC(u8, u8, u16, u16, u8, u8); -void task_new_game_prof_birch_speech_part2_5(u8); -void task_new_game_prof_birch_speech_part2_6(u8); -void task_new_game_prof_birch_speech_part2_7(u8); -void task_new_game_prof_birch_speech_part2_8(u8); -void task_new_game_prof_birch_speech_part2_9(u8); -void sub_80318D8(struct Sprite*); -void task_new_game_prof_birch_speech_part2_10(u8); -void task_new_game_prof_birch_speech_part2_11(u8); -void task_new_game_prof_birch_speech_part2_12(u8); -void nullsub_11(); -void task_new_game_prof_birch_speech_part2_1(u8); -void fmt_time(void); -void fmt_pokedex(void); -void fmt_player(void); -void fmt_badges(void); -void sub_8032474(u8, u8, u8, u8, u8, u8); +static void Task_DisplayMainMenu(u8); +static void Task_WaitForBatteryDryErrorWindow(u8); +static void MainMenu_FormatSavegameText(void); +static void HighlightSelectedMainMenuItem(u8, u8, s16); +static void Task_HandleMainMenuInput(u8); +static void Task_HandleMainMenuAPressed(u8); +static void Task_HandleMainMenuBPressed(u8); +static void Task_NewGameBirchSpeech_Init(u8); +static void Task_DisplayMainMenuInvalidActionError(u8); +static void AddBirchSpeechObjects(u8); +static void Task_NewGameBirchSpeech_WaitToShowBirch(u8); +static void NewGameBirchSpeech_StartFadeInTarget1OutTarget2(u8, u8); +static void NewGameBirchSpeech_StartFadePlatformOut(u8, u8); +static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8); +static void NewGameBirchSpeech_ShowDialogueWindow(u8, u8); +static void NewGameBirchSpeech_ClearWindow(u8); +static void Task_NewGameBirchSpeech_ThisIsAPokemon(u8); +static void Task_NewGameBirchSpeech_MainSpeech(u8); +static void NewGameBirchSpeech_ShowPokeBallPrinterCallback(struct TextSubPrinter *printer, u16 a); +static void Task_NewGameBirchSpeech_AndYouAre(u8); +static void Task_NewGameBirchSpeechSub_WaitForLotad(u8); +static void Task_NewGameBirchSpeech_StartBirchLotadPlatformFade(u8); +static void NewGameBirchSpeech_StartFadeOutTarget1InTarget2(u8, u8); +static void NewGameBirchSpeech_StartFadePlatformIn(u8, u8); +static void Task_NewGameBirchSpeech_SlidePlatformAway(u8); +static void Task_NewGameBirchSpeech_StartPlayerFadeIn(u8); +static void Task_NewGameBirchSpeech_WaitForPlayerFadeIn(u8); +static void Task_NewGameBirchSpeech_BoyOrGirl(u8); +static void LoadMainMenuWindowFrameTiles(u8, u16); +static void DrawMainMenuWindowBorder(const struct WindowTemplate*, u16); +static void Task_HighlightSelectedMainMenuItem(u8); +static void Task_NewGameBirchSpeech_WaitToShowGenderMenu(u8); +static void Task_NewGameBirchSpeech_ChooseGender(u8); +static void NewGameBirchSpeech_ShowGenderMenu(void); +static s8 NewGameBirchSpeech_ProcessGenderMenuInput(void); +static void NewGameBirchSpeech_ClearGenderWindow(u8, u8); +static void Task_NewGameBirchSpeech_WhatsYourName(u8); +static void Task_NewGameBirchSpeech_SlideOutOldGenderSprite(u8); +static void Task_NewGameBirchSpeech_SlideInNewGenderSprite(u8); +static void Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint(u8); +static void Task_NewGameBirchSpeech_WaitPressBeforeNameChoice(u8); +static void Task_NewGameBirchSpeech_StartNamingScreen(u8); +static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void); +static void NewGameBirchSpeech_SetDefaultPlayerName(u8); +static void Task_NewGameBirchSpeech_CreateNameYesNo(u8); +static void Task_NewGameBirchSpeech_ProcessNameYesNoMenu(u8); +void CreateYesNoMenuParameterized(u8, u8, u16, u16, u8, u8); +static void Task_NewGameBirchSpeech_SlidePlatformAway2(u8); +static void Task_NewGameBirchSpeech_ReshowBirchLotad(u8); +static void Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter(u8); +static void Task_NewGameBirchSpeech_AreYouReady(u8); +static void Task_NewGameBirchSpeech_ShrinkPlayer(u8); +static void SpriteCB_MovePlayerDownWhileShrinking(struct Sprite*); +static void Task_NewGameBirchSpeech_WaitForPlayerShrink(u8); +static void Task_NewGameBirchSpeech_FadePlayerToWhite(u8); +static void Task_NewGameBirchSpeech_Cleanup(u8); +static void nullsub_11(); +static void Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox(u8); +static void MainMenu_FormatSavegamePlayer(void); +static void MainMenu_FormatSavegamePokedex(void); +static void MainMenu_FormatSavegameTime(void); +static void MainMenu_FormatSavegameBadges(void); +static void NewGameBirchSpeech_CreateDialogueWindowBorder(u8, u8, u8, u8, u8, u8); // .rodata -const u16 gUnknown_082FECFC[][16] = { +static const u16 sBirchSpeechBgPals[][16] = { INCBIN_U16("graphics/birch_speech/bg0.gbapal"), INCBIN_U16("graphics/birch_speech/bg1.gbapal") }; -const u8 gBirchIntroShadowGfx[] = INCBIN_U8("graphics/birch_speech/shadow.4bpp.lz"); -const u8 gUnknown_082FEEF0[] = INCBIN_U8("graphics/birch_speech/map.bin.lz"); -const u16 gUnknown_082FF018[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal"); -const u16 gUnknown_082FF028[] = {0, 0, 0, 0, 0, 0, 0, 0}; +static const u8 sBirchSpeechShadowGfx[] = INCBIN_U8("graphics/birch_speech/shadow.4bpp.lz"); +static const u8 sBirchSpeechBgMap[] = INCBIN_U8("graphics/birch_speech/map.bin.lz"); +static const u16 sBirchSpeechBgGradientPal[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal"); +static const u16 sBirchSpeechPlatformBlackPal[] = {RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK}; #define MENU_LEFT 2 #define MENU_TOP_WIN0 1 @@ -159,7 +160,7 @@ const u16 gUnknown_082FF028[] = {0, 0, 0, 0, 0, 0, 0, 0}; #define MENU_WIN_VCOORDS(n) WIN_RANGE(((MENU_TOP_WIN##n - 1) * 8) + MENU_SHADOW_PADDING, (MENU_TOP_WIN##n + MENU_HEIGHT_WIN##n + 1) * 8 - MENU_SHADOW_PADDING) #define MENU_SCROLL_SHIFT WIN_RANGE(32, 32) -const struct WindowTemplate sWindowTemplates_MainMenu[] = +static const struct WindowTemplate sWindowTemplates_MainMenu[] = { // No saved game // NEW GAME @@ -246,7 +247,7 @@ const struct WindowTemplate sWindowTemplates_MainMenu[] = DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gUnknown_082FF080[] = +static const struct WindowTemplate gUnknown_082FF080[] = { { .priority = 0, @@ -278,13 +279,13 @@ const struct WindowTemplate gUnknown_082FF080[] = DUMMY_WIN_TEMPLATE }; -const u16 gMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal"); -const u16 gMainMenuTextPal[] = INCBIN_U16("graphics/misc/main_menu_text.gbapal"); +static const u16 sMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal"); +static const u16 sMainMenuTextPal[] = INCBIN_U16("graphics/misc/main_menu_text.gbapal"); -const u8 gTextColor_Headers[] = {10, 11, 12}; -const u8 gUnknown_082FF0E3[] = {10, 1, 12}; +static const u8 sTextColor_Headers[] = {10, 11, 12}; +static const u8 sTextColor_PlayerGenderColor[] = {10, 1, 12}; -const struct BgTemplate gUnknown_082FF0E8[] = { +static const struct BgTemplate sMainMenuBgTemplates[] = { { .bg = 0, .charBaseIndex = 2, @@ -305,7 +306,7 @@ const struct BgTemplate gUnknown_082FF0E8[] = { } }; -const struct BgTemplate gUnknown_082FF0F0 = { +static const struct BgTemplate sBirchBgTemplate = { .bg = 0, .charBaseIndex = 3, .mapBaseIndex = 30, @@ -315,21 +316,24 @@ const struct BgTemplate gUnknown_082FF0F0 = { .baseTile = 0 }; -const struct ScrollArrowsTemplate sScrollArrowsTemplate_MainMenu = {2, 0x78, 8, 3, 0x78, 0x98, 3, 4, 1, 1, 0}; +static const struct ScrollArrowsTemplate sScrollArrowsTemplate_MainMenu = {2, 0x78, 8, 3, 0x78, 0x98, 3, 4, 1, 1, 0}; -const union AffineAnimCmd gUnknown_082FF104[] = { +static const union AffineAnimCmd sSpriteAffineAnim_PlayerShrink[] = { AFFINEANIMCMD_FRAME(-2, -2, 0, 0x30), AFFINEANIMCMD_END }; -const union AffineAnimCmd *const gUnknown_082FF114 = gUnknown_082FF104; +static const union AffineAnimCmd *const sSpriteAffineAnimTable_PlayerShrink[] = +{ + sSpriteAffineAnim_PlayerShrink +}; -const struct MenuAction gUnknown_082FF118[] = { +static const struct MenuAction sMenuActions_Gender[] = { {gText_BirchBoy, NULL}, {gText_BirchGirl, NULL} }; -const u8 *const gMalePresetNames[] = { +static const u8 *const gMalePresetNames[] = { gText_DefaultNameStu, gText_DefaultNameMilton, gText_DefaultNameTom, @@ -352,7 +356,7 @@ const u8 *const gMalePresetNames[] = { gText_DefaultNameQuincy }; -const u8 *const gFemalePresetNames[] = { +static const u8 *const gFemalePresetNames[] = { gText_DefaultNameKimmy, gText_DefaultNameTiara, gText_DefaultNameBella, @@ -385,7 +389,8 @@ enum HAS_MYSTERY_EVENTS, //CONTINUE, NEW GAME, MYSTERY GIFT, MYSTERY EVENTS, OPTION }; -enum { +enum +{ ACTION_NEW_GAME, ACTION_CONTINUE, ACTION_OPTION, @@ -397,7 +402,7 @@ enum { #define MAIN_MENU_BORDER_TILE 0x1D5 -void CB2_MainMenu(void) +static void CB2_MainMenu(void) { RunTasks(); AnimateSprites(); @@ -405,7 +410,7 @@ void CB2_MainMenu(void) UpdatePaletteFade(); } -void VBlankCB_MainMenu(void) +static void VBlankCB_MainMenu(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -422,7 +427,7 @@ void CB2_ReinitMainMenu(void) InitMainMenu(TRUE); } -u32 InitMainMenu(bool8 returningFromOptionsMenu) +static u32 InitMainMenu(bool8 returningFromOptionsMenu) { SetVBlankCallback(NULL); @@ -442,8 +447,8 @@ u32 InitMainMenu(bool8 returningFromOptionsMenu) DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); ResetPaletteFade(); - LoadPalette(gMainMenuBgPal, 0, 32); - LoadPalette(gMainMenuTextPal, 0xF0, 32); + LoadPalette(sMainMenuBgPal, 0, 32); + LoadPalette(sMainMenuTextPal, 0xF0, 32); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -453,7 +458,7 @@ u32 InitMainMenu(bool8 returningFromOptionsMenu) else BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0xFFFF); // fade to white ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_082FF0E8, ARRAY_COUNT(gUnknown_082FF0E8)); + InitBgsFromTemplates(0, sMainMenuBgTemplates, ARRAY_COUNT(sMainMenuBgTemplates)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -490,7 +495,7 @@ u32 InitMainMenu(bool8 returningFromOptionsMenu) #define tArrowTaskIsScrolled data[15] // For scroll indicator arrow task -void Task_MainMenuCheckSaveFile(u8 taskId) +static void Task_MainMenuCheckSaveFile(u8 taskId) { s16* data = gTasks[taskId].data; @@ -559,7 +564,7 @@ void Task_MainMenuCheckSaveFile(u8 taskId) } } -void Task_WaitForSaveFileErrorWindow(u8 taskId) +static void Task_WaitForSaveFileErrorWindow(u8 taskId) { RunTextPrinters(); if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON)) @@ -570,7 +575,7 @@ void Task_WaitForSaveFileErrorWindow(u8 taskId) } } -void Task_MainMenuCheckBattery(u8 taskId) +static void Task_MainMenuCheckBattery(u8 taskId) { if (!gPaletteFade.active) { @@ -594,7 +599,7 @@ void Task_MainMenuCheckBattery(u8 taskId) } } -void Task_WaitForBatteryDryErrorWindow(u8 taskId) +static void Task_WaitForBatteryDryErrorWindow(u8 taskId) { RunTextPrinters(); if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON)) @@ -605,7 +610,7 @@ void Task_WaitForBatteryDryErrorWindow(u8 taskId) } } -void Task_DisplayMainMenu(u8 taskId) +static void Task_DisplayMainMenu(u8 taskId) { s16* data = gTasks[taskId].data; u16 palette; @@ -649,8 +654,8 @@ void Task_DisplayMainMenu(u8 taskId) default: FillWindowPixelBuffer(0, 0xAA); FillWindowPixelBuffer(1, 0xAA); - AddTextPrinterParameterized3(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - AddTextPrinterParameterized3(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(0, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(1, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); PutWindowTilemap(0); PutWindowTilemap(1); CopyWindowToVram(0, 2); @@ -662,10 +667,10 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(2, 0xAA); FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(4, 0xAA); - AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); - fmt_savegame(); + AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); + MainMenu_FormatSavegameText(); PutWindowTilemap(2); PutWindowTilemap(3); PutWindowTilemap(4); @@ -681,11 +686,11 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(5, 0xAA); - AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift); - AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); - fmt_savegame(); + AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift); + AddTextPrinterParameterized3(5, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); + MainMenu_FormatSavegameText(); PutWindowTilemap(2); PutWindowTilemap(3); PutWindowTilemap(4); @@ -705,12 +710,12 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(5, 0xAA); FillWindowPixelBuffer(6, 0xAA); - AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2); - AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents); - AddTextPrinterParameterized3(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); - fmt_savegame(); + AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift2); + AddTextPrinterParameterized3(5, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryEvents); + AddTextPrinterParameterized3(6, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); + MainMenu_FormatSavegameText(); PutWindowTilemap(2); PutWindowTilemap(3); PutWindowTilemap(4); @@ -741,13 +746,13 @@ void Task_DisplayMainMenu(u8 taskId) } } -void Task_HighlightSelectedMainMenuItem(u8 taskId) +static void Task_HighlightSelectedMainMenuItem(u8 taskId) { HighlightSelectedMainMenuItem(gTasks[taskId].tMenuType, gTasks[taskId].tCurrItem, gTasks[taskId].tIsScrolled); gTasks[taskId].func = Task_HandleMainMenuInput; } -bool8 HandleMainMenuInput(u8 taskId) +static bool8 HandleMainMenuInput(u8 taskId) { s16* data = gTasks[taskId].data; @@ -793,13 +798,13 @@ bool8 HandleMainMenuInput(u8 taskId) return FALSE; } -void Task_HandleMainMenuInput(u8 taskId) +static void Task_HandleMainMenuInput(u8 taskId) { if (HandleMainMenuInput(taskId)) gTasks[taskId].func = Task_HighlightSelectedMainMenuItem; } -void Task_HandleMainMenuAPressed(u8 taskId) +static void Task_HandleMainMenuAPressed(u8 taskId) { bool8 wirelessAdapterConnected; u8 action; @@ -925,7 +930,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) default: gPlttBufferUnfaded[0] = RGB_BLACK; gPlttBufferFaded[0] = RGB_BLACK; - gTasks[taskId].func = task_new_game_prof_birch_speech_1; + gTasks[taskId].func = Task_NewGameBirchSpeech_Init; break; case ACTION_CONTINUE: gPlttBufferUnfaded[0] = RGB_BLACK; @@ -972,7 +977,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) } } -void Task_HandleMainMenuBPressed(u8 taskId) +static void Task_HandleMainMenuBPressed(u8 taskId) { if (!gPaletteFade.active) { @@ -985,7 +990,7 @@ void Task_HandleMainMenuBPressed(u8 taskId) } } -void Task_DisplayMainMenuInvalidActionError(u8 taskId) +static void Task_DisplayMainMenuInvalidActionError(u8 taskId) { switch (gTasks[taskId].tCurrItem) { @@ -1033,7 +1038,7 @@ void Task_DisplayMainMenuInvalidActionError(u8 taskId) #undef tArrowTaskIsScrolled -void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrolled) +static void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrolled) { SetGpuReg(REG_OFFSET_WIN0H, MENU_WIN_HCOORDS); @@ -1118,11 +1123,21 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrol } } -void task_new_game_prof_birch_speech_1(u8 taskId) +#define tPlayerSpriteId data[2] +#define tBG1HOFS data[4] +#define tIsDoneFadingSprites data[5] +#define tPlayerGender data[6] +#define tTimer data[7] +#define tBirchSpriteId data[8] +#define tLotadSpriteId data[9] +#define tBrendanSpriteId data[10] +#define tMaySpriteId data[11] + +static void Task_NewGameBirchSpeech_Init(u8 taskId) { SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - InitBgFromTemplate(&gUnknown_082FF0F0); + InitBgFromTemplate(&sBirchBgTemplate); SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WININ, 0); @@ -1131,518 +1146,522 @@ void task_new_game_prof_birch_speech_1(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); - LZ77UnCompVram(gBirchIntroShadowGfx, (void*)VRAM); - LZ77UnCompVram(gUnknown_082FEEF0, (void*)(VRAM + 0x3800)); - LoadPalette(gUnknown_082FECFC, 0, 64); - LoadPalette(gUnknown_082FF028, 1, 16); + LZ77UnCompVram(sBirchSpeechShadowGfx, (void*)VRAM); + LZ77UnCompVram(sBirchSpeechBgMap, (void*)(VRAM + 0x3800)); + LoadPalette(sBirchSpeechBgPals, 0, 64); + LoadPalette(sBirchSpeechPlatformBlackPal, 1, 16); ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); ResetAllPicSprites(); AddBirchSpeechObjects(taskId); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - gTasks[taskId].data[4] = 0; - gTasks[taskId].func = task_new_game_prof_birch_speech_2; - gTasks[taskId].data[2] = 0xFF; + gTasks[taskId].tBG1HOFS = 0; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitToShowBirch; + gTasks[taskId].tPlayerSpriteId = 0xFF; gTasks[taskId].data[3] = 0xFF; - gTasks[taskId].data[7] = 0xD8; + gTasks[taskId].tTimer = 0xD8; PlayBGM(MUS_DOORO_X4); ShowBg(0); ShowBg(1); } -void task_new_game_prof_birch_speech_2(u8 taskId) +static void Task_NewGameBirchSpeech_WaitToShowBirch(u8 taskId) { u8 spriteId; - if (gTasks[taskId].data[7]) + if (gTasks[taskId].tTimer) { - gTasks[taskId].data[7]--; + gTasks[taskId].tTimer--; } else { - spriteId = gTasks[taskId].data[8]; - gSprites[spriteId].pos1.x = 0x88; - gSprites[spriteId].pos1.y = 0x3C; + spriteId = gTasks[taskId].tBirchSpriteId; + gSprites[spriteId].pos1.x = 136; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - sub_8031BAC(taskId, 10); - sub_8031D34(taskId, 20); - gTasks[taskId].data[7] = 0x50; - gTasks[taskId].func = task_new_game_prof_birch_speech_3; + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 10); + NewGameBirchSpeech_StartFadePlatformOut(taskId, 20); + gTasks[taskId].tTimer = 80; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome; } } -void task_new_game_prof_birch_speech_3(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8 taskId) { - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[8]].oam.objMode = 0; - if (gTasks[taskId].data[7]) + gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 0; + if (gTasks[taskId].tTimer) { - gTasks[taskId].data[7]--; + gTasks[taskId].tTimer--; } else { InitWindows(gUnknown_082FF080); LoadMainMenuWindowFrameTiles(0, 0xF3); - LoadMessageBoxGfx(0, 0xFC, 0xF0); - unknown_rbox_to_vram(0, 1); + LoadMessageBoxGfx(0, 0xFC, 0xF0); + NewGameBirchSpeech_ShowDialogueWindow(0, 1); PutWindowTilemap(0); CopyWindowToVram(0, 2); - sub_8032318(0); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_Welcome); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_4; + gTasks[taskId].func = Task_NewGameBirchSpeech_ThisIsAPokemon; } } } -void task_new_game_prof_birch_speech_4(u8 taskId) +static void Task_NewGameBirchSpeech_ThisIsAPokemon(u8 taskId) { - if (!gPaletteFade.active && !sub_8197224()) + if (!gPaletteFade.active && !RunTextPrintersAndIsPrinter0Active()) { - gTasks[taskId].func = task_new_game_prof_birch_speech_5; + gTasks[taskId].func = Task_NewGameBirchSpeech_MainSpeech; StringExpandPlaceholders(gStringVar4, gText_ThisIsAPokemon); - AddTextPrinterWithCallbackForMessage(1, sub_80323A0); - gUnknown_03000DD0 = taskId; + AddTextPrinterWithCallbackForMessage(1, NewGameBirchSpeech_ShowPokeBallPrinterCallback); + sBirchSpeechMainTaskId = taskId; } } -void task_new_game_prof_birch_speech_5(u8 taskId) +static void Task_NewGameBirchSpeech_MainSpeech(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { StringExpandPlaceholders(gStringVar4, gText_Birch_MainSpeech); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_6; + gTasks[taskId].func = Task_NewGameBirchSpeech_AndYouAre; } } -void sub_8030A70(u8 taskId) -{ - u8 spriteId = gTasks[gUnknown_03000DD0].data[9]; +#define tState data[0] - gSprites[spriteId].pos1.x = 0x64; - gSprites[spriteId].pos1.y = 0x4B; +static void Task_NewGameBirchSpeechSub_InitPokeBall(u8 taskId) +{ + u8 spriteId = gTasks[sBirchSpeechMainTaskId].tLotadSpriteId; + + gSprites[spriteId].pos1.x = 100; + gSprites[spriteId].pos1.y = 75; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].data[0] = 0; - CreatePokeballSpriteToReleaseMon(spriteId, gSprites[spriteId].oam.paletteNum, 0x70, 0x3A, 0, 0, 0x20, 0xFFFF, SPECIES_LOTAD); - gTasks[taskId].func = sub_8030B14; - gTasks[gUnknown_03000DD0].data[7] = 0; + CreatePokeballSpriteToReleaseMon(spriteId, gSprites[spriteId].oam.paletteNum, 112, 58, 0, 0, 32, 0x0000FFFF, SPECIES_LOTAD); + gTasks[taskId].func = Task_NewGameBirchSpeechSub_WaitForLotad; + gTasks[sBirchSpeechMainTaskId].tTimer = 0; } -void sub_8030B14(u8 taskId) +static void Task_NewGameBirchSpeechSub_WaitForLotad(u8 taskId) { s16 *data = gTasks[taskId].data; - struct Sprite *sprite = &gSprites[gTasks[gUnknown_03000DD0].data[9]]; + struct Sprite *sprite = &gSprites[gTasks[sBirchSpeechMainTaskId].tLotadSpriteId]; - switch (data[0]) + switch (tState) { case 0: if (sprite->callback == SpriteCallbackDummy) { sprite->oam.affineMode = 0; - goto _08030B98_inc_data0; + goto incrementStateAndTimer; } break; case 1: - if (gTasks[gUnknown_03000DD0].data[7] >= 0x60) + if (gTasks[sBirchSpeechMainTaskId].tTimer >= 96) { DestroyTask(taskId); - if (gTasks[gUnknown_03000DD0].data[7] < 0x4000) - gTasks[gUnknown_03000DD0].data[7]++; + if (gTasks[sBirchSpeechMainTaskId].tTimer < 0x4000) + gTasks[sBirchSpeechMainTaskId].tTimer++; } break; - _08030B98_inc_data0: + incrementStateAndTimer: default: - data[0]++; - if (gTasks[gUnknown_03000DD0].data[7] < 0x4000) - gTasks[gUnknown_03000DD0].data[7]++; + tState++; + if (gTasks[sBirchSpeechMainTaskId].tTimer < 0x4000) + gTasks[sBirchSpeechMainTaskId].tTimer++; break; } } -void task_new_game_prof_birch_speech_6(u8 taskId) +#undef tState + +static void Task_NewGameBirchSpeech_AndYouAre(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { gUnknown_02022D04 = 0; StringExpandPlaceholders(gStringVar4, gText_Birch_AndYouAre); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_7; + gTasks[taskId].func = Task_NewGameBirchSpeech_StartBirchLotadPlatformFade; } } -void task_new_game_prof_birch_speech_7(u8 taskId) +static void Task_NewGameBirchSpeech_StartBirchLotadPlatformFade(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { - gSprites[gTasks[taskId].data[8]].oam.objMode = 1; - gSprites[gTasks[taskId].data[9]].oam.objMode = 1; - sub_8031ACC(taskId, 2); - sub_8031C88(taskId, 1); - gTasks[taskId].data[7] = 0x40; - gTasks[taskId].func = task_new_game_prof_birch_speech_8; + gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 1; + gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = 1; + NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformIn(taskId, 1); + gTasks[taskId].tTimer = 64; + gTasks[taskId].func = Task_NewGameBirchSpeech_SlidePlatformAway; } } -void task_new_game_prof_birch_speech_8(u8 taskId) +static void Task_NewGameBirchSpeech_SlidePlatformAway(u8 taskId) { - if (gTasks[taskId].data[4] != -60) + if (gTasks[taskId].tBG1HOFS != -60) { - gTasks[taskId].data[4] -= 2; - SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].data[4]); + gTasks[taskId].tBG1HOFS -= 2; + SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].tBG1HOFS); } else { - gTasks[taskId].data[4] = -60; - gTasks[taskId].func = task_new_game_prof_birch_speech_9; + gTasks[taskId].tBG1HOFS = -60; + gTasks[taskId].func = Task_NewGameBirchSpeech_StartPlayerFadeIn; } } -void task_new_game_prof_birch_speech_9(u8 taskId) +static void Task_NewGameBirchSpeech_StartPlayerFadeIn(u8 taskId) { - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[8]].invisible = TRUE; - gSprites[gTasks[taskId].data[9]].invisible = TRUE; - if (gTasks[taskId].data[7]) + gSprites[gTasks[taskId].tBirchSpriteId].invisible = TRUE; + gSprites[gTasks[taskId].tLotadSpriteId].invisible = TRUE; + if (gTasks[taskId].tTimer) { - gTasks[taskId].data[7]--; + gTasks[taskId].tTimer--; } else { - u8 spriteId = gTasks[taskId].data[10]; + u8 spriteId = gTasks[taskId].tBrendanSpriteId; - gSprites[spriteId].pos1.x = 0xB4; - gSprites[spriteId].pos1.y = 0x3C; + gSprites[spriteId].pos1.x = 180; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - gTasks[taskId].data[2] = spriteId; - gTasks[taskId].data[6] = 0; - sub_8031BAC(taskId, 2); - sub_8031D34(taskId, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_10; + gTasks[taskId].tPlayerSpriteId = spriteId; + gTasks[taskId].tPlayerGender = MALE; + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformOut(taskId, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForPlayerFadeIn; } } } -void task_new_game_prof_birch_speech_10(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForPlayerFadeIn(u8 taskId) { - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[2]].oam.objMode = 0; - gTasks[taskId].func = task_new_game_prof_birch_speech_11; + gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 0; + gTasks[taskId].func = Task_NewGameBirchSpeech_BoyOrGirl; } } -void task_new_game_prof_birch_speech_11(u8 taskId) +static void Task_NewGameBirchSpeech_BoyOrGirl(u8 taskId) { - sub_8032318(0); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_BoyOrGirl); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_12; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitToShowGenderMenu; } -void task_new_game_prof_birch_speech_12(u8 taskId) +static void Task_NewGameBirchSpeech_WaitToShowGenderMenu(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { - sub_8031D74(); - gTasks[taskId].func = task_new_game_prof_birch_speech_13; + NewGameBirchSpeech_ShowGenderMenu(); + gTasks[taskId].func = Task_NewGameBirchSpeech_ChooseGender; } } -void task_new_game_prof_birch_speech_13(u8 taskId) +static void Task_NewGameBirchSpeech_ChooseGender(u8 taskId) { - int gender = sub_8031DB4(); - int r3; + int gender = NewGameBirchSpeech_ProcessGenderMenuInput(); + int gender2; switch (gender) { case MALE: PlaySE(SE_SELECT); gSaveBlock2Ptr->playerGender = gender; - sub_80322E0(1, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_14; + NewGameBirchSpeech_ClearGenderWindow(1, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_WhatsYourName; break; case FEMALE: PlaySE(SE_SELECT); gSaveBlock2Ptr->playerGender = gender; - sub_80322E0(1, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_14; + NewGameBirchSpeech_ClearGenderWindow(1, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_WhatsYourName; break; } - r3 = GetMenuCursorPos(); - if (r3 != gTasks[taskId].data[6]) + gender2 = GetMenuCursorPos(); + if (gender2 != gTasks[taskId].tPlayerGender) { - gTasks[taskId].data[6] = r3; - gSprites[gTasks[taskId].data[2]].oam.objMode = 1; - sub_8031ACC(taskId, 0); - gTasks[taskId].func = sub_8030ED4; + gTasks[taskId].tPlayerGender = gender2; + gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 1; + NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 0); + gTasks[taskId].func = Task_NewGameBirchSpeech_SlideOutOldGenderSprite; } } -void sub_8030ED4(u8 taskId) +static void Task_NewGameBirchSpeech_SlideOutOldGenderSprite(u8 taskId) { - u8 spriteId = gTasks[taskId].data[2]; - if (gTasks[taskId].data[5] == 0) + u8 spriteId = gTasks[taskId].tPlayerSpriteId; + if (gTasks[taskId].tIsDoneFadingSprites == 0) { gSprites[spriteId].pos1.x += 4; } else { gSprites[spriteId].invisible = TRUE; - if (gTasks[taskId].data[6]) - spriteId = gTasks[taskId].data[11]; + if (gTasks[taskId].tPlayerGender != MALE) + spriteId = gTasks[taskId].tMaySpriteId; else - spriteId = gTasks[taskId].data[10]; - gSprites[spriteId].pos1.x = 0xF0; - gSprites[spriteId].pos1.y = 0x3C; + spriteId = gTasks[taskId].tBrendanSpriteId; + gSprites[spriteId].pos1.x = 240; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; - gTasks[taskId].data[2] = spriteId; + gTasks[taskId].tPlayerSpriteId = spriteId; gSprites[spriteId].oam.objMode = 1; - sub_8031BAC(taskId, 0); - gTasks[taskId].func = sub_8030F7C; + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 0); + gTasks[taskId].func = Task_NewGameBirchSpeech_SlideInNewGenderSprite; } } -void sub_8030F7C(u8 taskId) +static void Task_NewGameBirchSpeech_SlideInNewGenderSprite(u8 taskId) { - u8 spriteId = gTasks[taskId].data[2]; + u8 spriteId = gTasks[taskId].tPlayerSpriteId; - if (gSprites[spriteId].pos1.x > 0xB4) + if (gSprites[spriteId].pos1.x > 180) { gSprites[spriteId].pos1.x -= 4; } else { - gSprites[spriteId].pos1.x = 0xB4; - if (gTasks[taskId].data[5]) + gSprites[spriteId].pos1.x = 180; + if (gTasks[taskId].tIsDoneFadingSprites) { gSprites[spriteId].oam.objMode = 0; - gTasks[taskId].func = task_new_game_prof_birch_speech_13; + gTasks[taskId].func = Task_NewGameBirchSpeech_ChooseGender; } } } -void task_new_game_prof_birch_speech_14(u8 taskId) +static void Task_NewGameBirchSpeech_WhatsYourName(u8 taskId) { - sub_8032318(0); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_WhatsYourName); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_15; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint; } -void task_new_game_prof_birch_speech_15(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint(u8 taskId) { - if (!sub_8197224()) - gTasks[taskId].func = task_new_game_prof_birch_speech_16; + if (!RunTextPrintersAndIsPrinter0Active()) + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitPressBeforeNameChoice; } -void task_new_game_prof_birch_speech_16(u8 taskId) +static void Task_NewGameBirchSpeech_WaitPressBeforeNameChoice(u8 taskId) { if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[taskId].func = task_new_game_prof_birch_speech_17; + gTasks[taskId].func = Task_NewGameBirchSpeech_StartNamingScreen; } } -void task_new_game_prof_birch_speech_17(u8 taskId) +static void Task_NewGameBirchSpeech_StartNamingScreen(u8 taskId) { if (!gPaletteFade.active) { FreeAllWindowBuffers(); - FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]); - set_default_player_name(Random() % 20); + FreeAndDestroyMonPicSprite(gTasks[taskId].tLotadSpriteId); + NewGameBirchSpeech_SetDefaultPlayerName(Random() % 20); DestroyTask(taskId); - DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, new_game_prof_birch_speech_part2_start); + DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_NewGameBirchSpeech_ReturnFromNamingScreen); } } -void task_new_game_prof_birch_speech_part2_2(u8 taskId) +static void Task_NewGameBirchSpeech_SoItsPlayerName(u8 taskId) { - sub_8032318(0); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_SoItsPlayer); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_3; + gTasks[taskId].func = Task_NewGameBirchSpeech_CreateNameYesNo; } -void task_new_game_prof_birch_speech_part2_3(u8 taskId) +static void Task_NewGameBirchSpeech_CreateNameYesNo(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { - sub_80323CC(2, 1, 0xF3, 0xDF, 2, 15); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_4; + CreateYesNoMenuParameterized(2, 1, 0xF3, 0xDF, 2, 15); + gTasks[taskId].func = Task_NewGameBirchSpeech_ProcessNameYesNoMenu; } } -void task_new_game_prof_birch_speech_part2_4(u8 taskId) +static void Task_NewGameBirchSpeech_ProcessNameYesNoMenu(u8 taskId) { switch (Menu_ProcessInputNoWrap_()) { case 0: PlaySE(SE_SELECT); - gSprites[gTasks[taskId].data[2]].oam.objMode = 1; - sub_8031ACC(taskId, 2); - sub_8031C88(taskId, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_5; + gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 1; + NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformIn(taskId, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_SlidePlatformAway2; break; case -1: case 1: PlaySE(SE_SELECT); - gTasks[taskId].func = task_new_game_prof_birch_speech_11; + gTasks[taskId].func = Task_NewGameBirchSpeech_BoyOrGirl; } } -void task_new_game_prof_birch_speech_part2_5(u8 taskId) +static void Task_NewGameBirchSpeech_SlidePlatformAway2(u8 taskId) { - if (gTasks[taskId].data[4]) + if (gTasks[taskId].tBG1HOFS) { - gTasks[taskId].data[4] += 2; - SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].data[4]); + gTasks[taskId].tBG1HOFS += 2; + SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].tBG1HOFS); } else { - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_6; + gTasks[taskId].func = Task_NewGameBirchSpeech_ReshowBirchLotad; } } -void task_new_game_prof_birch_speech_part2_6(u8 taskId) +static void Task_NewGameBirchSpeech_ReshowBirchLotad(u8 taskId) { u8 spriteId; - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[10]].invisible = TRUE; - gSprites[gTasks[taskId].data[11]].invisible = TRUE; - spriteId = gTasks[taskId].data[8]; - gSprites[spriteId].pos1.x = 0x88; - gSprites[spriteId].pos1.y = 0x3C; + gSprites[gTasks[taskId].tBrendanSpriteId].invisible = TRUE; + gSprites[gTasks[taskId].tMaySpriteId].invisible = TRUE; + spriteId = gTasks[taskId].tBirchSpriteId; + gSprites[spriteId].pos1.x = 136; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - spriteId = gTasks[taskId].data[9]; - gSprites[spriteId].pos1.x = 0x64; - gSprites[spriteId].pos1.y = 0x4B; + spriteId = gTasks[taskId].tLotadSpriteId; + gSprites[spriteId].pos1.x = 100; + gSprites[spriteId].pos1.y = 75; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - sub_8031BAC(taskId, 2); - sub_8031D34(taskId, 1); - sub_8032318(0); + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformOut(taskId, 1); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_YourePlayer); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_7; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter; } } -void task_new_game_prof_birch_speech_part2_7(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter(u8 taskId) { - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[8]].oam.objMode = 0; - gSprites[gTasks[taskId].data[9]].oam.objMode = 0; - if (!sub_8197224()) + gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 0; + gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = 0; + if (!RunTextPrintersAndIsPrinter0Active()) { - gSprites[gTasks[taskId].data[8]].oam.objMode = 1; - gSprites[gTasks[taskId].data[9]].oam.objMode = 1; - sub_8031ACC(taskId, 2); - sub_8031C88(taskId, 1); - gTasks[taskId].data[7] = 64; - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_8; + gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 1; + gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = 1; + NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformIn(taskId, 1); + gTasks[taskId].tTimer = 64; + gTasks[taskId].func = Task_NewGameBirchSpeech_AreYouReady; } } } -void task_new_game_prof_birch_speech_part2_8(u8 taskId) +static void Task_NewGameBirchSpeech_AreYouReady(u8 taskId) { u8 spriteId; - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[8]].invisible = TRUE; - gSprites[gTasks[taskId].data[9]].invisible = TRUE; - if (gTasks[taskId].data[7]) + gSprites[gTasks[taskId].tBirchSpriteId].invisible = TRUE; + gSprites[gTasks[taskId].tLotadSpriteId].invisible = TRUE; + if (gTasks[taskId].tTimer) { - gTasks[taskId].data[7]--; + gTasks[taskId].tTimer--; return; } if (gSaveBlock2Ptr->playerGender != MALE) - spriteId = gTasks[taskId].data[11]; + spriteId = gTasks[taskId].tMaySpriteId; else - spriteId = gTasks[taskId].data[10]; - gSprites[spriteId].pos1.x = 0x78; - gSprites[spriteId].pos1.y = 0x3C; + spriteId = gTasks[taskId].tBrendanSpriteId; + gSprites[spriteId].pos1.x = 120; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - gTasks[taskId].data[2] = spriteId; - sub_8031BAC(taskId, 2); - sub_8031D34(taskId, 1); + gTasks[taskId].tPlayerSpriteId = spriteId; + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformOut(taskId, 1); StringExpandPlaceholders(gStringVar4, gText_Birch_AreYouReady); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_9; + gTasks[taskId].func = Task_NewGameBirchSpeech_ShrinkPlayer; } } -void task_new_game_prof_birch_speech_part2_9(u8 taskId) +static void Task_NewGameBirchSpeech_ShrinkPlayer(u8 taskId) { u8 spriteId; - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[2]].oam.objMode = 0; - if (!sub_8197224()) + gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 0; + if (!RunTextPrintersAndIsPrinter0Active()) { - spriteId = gTasks[taskId].data[2]; + spriteId = gTasks[taskId].tPlayerSpriteId; gSprites[spriteId].oam.affineMode = 1; - gSprites[spriteId].affineAnims = &gUnknown_082FF114; + gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_PlayerShrink; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 0); - gSprites[spriteId].callback = sub_80318D8; + gSprites[spriteId].callback = SpriteCB_MovePlayerDownWhileShrinking; BeginNormalPaletteFade(0x0000FFFF, 0, 0, 16, RGB_BLACK); FadeOutBGM(4); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_10; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForPlayerShrink; } } } -void task_new_game_prof_birch_speech_part2_10(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForPlayerShrink(u8 taskId) { - u8 spriteId = gTasks[taskId].data[2]; + u8 spriteId = gTasks[taskId].tPlayerSpriteId; if (gSprites[spriteId].affineAnimEnded) - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_11; + gTasks[taskId].func = Task_NewGameBirchSpeech_FadePlayerToWhite; } -void task_new_game_prof_birch_speech_part2_11(u8 taskId) +static void Task_NewGameBirchSpeech_FadePlayerToWhite(u8 taskId) { u8 spriteId; if (!gPaletteFade.active) { - spriteId = gTasks[taskId].data[2]; + spriteId = gTasks[taskId].tPlayerSpriteId; gSprites[spriteId].callback = nullsub_11; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); BeginNormalPaletteFade(0xFFFF0000, 0, 0, 16, RGB_WHITEALPHA); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_12; + gTasks[taskId].func = Task_NewGameBirchSpeech_Cleanup; } } -void task_new_game_prof_birch_speech_part2_12(u8 taskId) +static void Task_NewGameBirchSpeech_Cleanup(u8 taskId) { if (!gPaletteFade.active) { FreeAllWindowBuffers(); - FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]); + FreeAndDestroyMonPicSprite(gTasks[taskId].tLotadSpriteId); ResetAllPicSprites(); SetMainCallback2(CB2_NewGame); DestroyTask(taskId); } } -void new_game_prof_birch_speech_part2_start(void) +static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) { u8 taskId; u8 spriteId; @@ -1651,8 +1670,8 @@ void new_game_prof_birch_speech_part2_start(void) ResetBgsAndClearDma3BusyFlags(0); SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - InitBgsFromTemplates(0, gUnknown_082FF0E8, 2); - InitBgFromTemplate(&gUnknown_082FF0F0); + InitBgsFromTemplates(0, sMainMenuBgTemplates, 2); + InitBgFromTemplate(&sBirchBgTemplate); SetVBlankCallback(NULL); SetGpuReg(REG_OFFSET_BG2CNT, 0); SetGpuReg(REG_OFFSET_BG1CNT, 0); @@ -1667,14 +1686,14 @@ void new_game_prof_birch_speech_part2_start(void) DmaFill32(3, 0, OAM, OAM_SIZE); DmaFill16(3, 0, PLTT, PLTT_SIZE); ResetPaletteFade(); - LZ77UnCompVram(gBirchIntroShadowGfx, (u8*)VRAM); - LZ77UnCompVram(gUnknown_082FEEF0, (u8*)(VRAM + 0x3800)); - LoadPalette(gUnknown_082FECFC, 0, 64); - LoadPalette(&gUnknown_082FF018[1], 1, 16); + LZ77UnCompVram(sBirchSpeechShadowGfx, (u8*)VRAM); + LZ77UnCompVram(sBirchSpeechBgMap, (u8*)(VRAM + 0x3800)); + LoadPalette(sBirchSpeechBgPals, 0, 64); + LoadPalette(&sBirchSpeechBgGradientPal[1], 1, 16); ResetTasks(); - taskId = CreateTask(task_new_game_prof_birch_speech_part2_1, 0); - gTasks[taskId].data[7] = 5; - gTasks[taskId].data[4] = -60; + taskId = CreateTask(Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox, 0); + gTasks[taskId].tTimer = 5; + gTasks[taskId].tBG1HOFS = -60; ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -1682,18 +1701,18 @@ void new_game_prof_birch_speech_part2_start(void) AddBirchSpeechObjects(taskId); if (gSaveBlock2Ptr->playerGender != MALE) { - gTasks[taskId].data[6] = FEMALE; - spriteId = gTasks[taskId].data[11]; + gTasks[taskId].tPlayerGender = FEMALE; + spriteId = gTasks[taskId].tMaySpriteId; } else { - gTasks[taskId].data[6] = MALE; - spriteId = gTasks[taskId].data[10]; + gTasks[taskId].tPlayerGender = MALE; + spriteId = gTasks[taskId].tBrendanSpriteId; } - gSprites[spriteId].pos1.x = 0xB4; - gSprites[spriteId].pos1.y = 0x3C; + gSprites[spriteId].pos1.x = 180; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; - gTasks[taskId].data[2] = spriteId; + gTasks[taskId].tPlayerSpriteId = spriteId; SetGpuReg(REG_OFFSET_BG1HOFS, -60); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); SetGpuReg(REG_OFFSET_WIN0H, 0); @@ -1718,11 +1737,11 @@ void new_game_prof_birch_speech_part2_start(void) CopyWindowToVram(0, 3); } -void nullsub_11(struct Sprite *sprite) +static void nullsub_11(struct Sprite *sprite) { } -void sub_80318D8(struct Sprite *sprite) +static void SpriteCB_MovePlayerDownWhileShrinking(struct Sprite *sprite) { u32 y; @@ -1731,201 +1750,236 @@ void sub_80318D8(struct Sprite *sprite) sprite->data[0] = y; } -u8 sub_80318F4(u8 a, u8 b) +static u8 NewGameBirchSpeech_CreateLotadSprite(u8 a, u8 b) { return CreatePicSprite2(SPECIES_LOTAD, 8, 0, 1, a, b, 14, -1); } -void AddBirchSpeechObjects(u8 taskId) +static void AddBirchSpeechObjects(u8 taskId) { - u8 spriteId = AddNewGameBirchObject(0x88, 0x3C, 1); - u8 spriteId2; - u8 spriteId3; - u8 spriteId4; + u8 birchSpriteId; + u8 lotadSpriteId; + u8 brendanSpriteId; + u8 maySpriteId; - gSprites[spriteId].callback = nullsub_11; - gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].invisible = TRUE; - gTasks[taskId].data[8] = spriteId; - spriteId2 = sub_80318F4(100, 0x4B); - gSprites[spriteId2].callback = nullsub_11; - gSprites[spriteId2].oam.priority = 0; - gSprites[spriteId2].invisible = TRUE; - gTasks[taskId].data[9] = spriteId2; - spriteId3 = CreateTrainerSprite(FacilityClassToPicIndex(0x3C), 0x78, 0x3C, 0, gDecompressionBuffer); - gSprites[spriteId3].callback = nullsub_11; - gSprites[spriteId3].invisible = TRUE; - gSprites[spriteId3].oam.priority = 0; - gTasks[taskId].data[10] = spriteId3; - spriteId4 = CreateTrainerSprite(FacilityClassToPicIndex(0x3F), 0x78, 0x3C, 0, &gDecompressionBuffer[0x800]); - gSprites[spriteId4].callback = nullsub_11; - gSprites[spriteId4].invisible = TRUE; - gSprites[spriteId4].oam.priority = 0; - gTasks[taskId].data[11] = spriteId4; + birchSpriteId = AddNewGameBirchObject(0x88, 0x3C, 1); + gSprites[birchSpriteId].callback = nullsub_11; + gSprites[birchSpriteId].oam.priority = 0; + gSprites[birchSpriteId].invisible = TRUE; + gTasks[taskId].tBirchSpriteId = birchSpriteId; + lotadSpriteId = NewGameBirchSpeech_CreateLotadSprite(100, 0x4B); + gSprites[lotadSpriteId].callback = nullsub_11; + gSprites[lotadSpriteId].oam.priority = 0; + gSprites[lotadSpriteId].invisible = TRUE; + gTasks[taskId].tLotadSpriteId = lotadSpriteId; + brendanSpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN), 120, 60, 0, &gDecompressionBuffer[0]); + gSprites[brendanSpriteId].callback = nullsub_11; + gSprites[brendanSpriteId].invisible = TRUE; + gSprites[brendanSpriteId].oam.priority = 0; + gTasks[taskId].tBrendanSpriteId = brendanSpriteId; + maySpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_MAY), 120, 60, 0, &gDecompressionBuffer[0x800]); + gSprites[maySpriteId].callback = nullsub_11; + gSprites[maySpriteId].invisible = TRUE; + gSprites[maySpriteId].oam.priority = 0; + gTasks[taskId].tMaySpriteId = maySpriteId; } -void sub_8031A5C(u8 taskId) -{ - int alpha; +#undef tPlayerSpriteId +#undef tBG1HOFS +#undef tPlayerGender +#undef tBirchSpriteId +#undef tLotadSpriteId +#undef tBrendanSpriteId +#undef tMaySpriteId - if (gTasks[taskId].data[1] == 0) +#define tMainTask data[0] +#define tAlphaCoeff1 data[1] +#define tAlphaCoeff2 data[2] +#define tDelay data[3] +#define tDelayTimer data[4] + +static void Task_NewGameBirchSpeech_FadeOutTarget1InTarget2(u8 taskId) +{ + int alphaCoeff2; + + if (gTasks[taskId].tAlphaCoeff1 == 0) { - gTasks[gTasks[taskId].data[0]].data[5] = 1; + gTasks[gTasks[taskId].tMainTask].tIsDoneFadingSprites = TRUE; DestroyTask(taskId); } - else if (gTasks[taskId].data[4]) + else if (gTasks[taskId].tDelayTimer) { - gTasks[taskId].data[4]--; + gTasks[taskId].tDelayTimer--; } else { - gTasks[taskId].data[4] = gTasks[taskId].data[3]; - gTasks[taskId].data[1]--; - gTasks[taskId].data[2]++; - alpha = gTasks[taskId].data[2] << 8; - SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1] + alpha); + gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; + gTasks[taskId].tAlphaCoeff1--; + gTasks[taskId].tAlphaCoeff2++; + alphaCoeff2 = gTasks[taskId].tAlphaCoeff2 << 8; + SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].tAlphaCoeff1 + alphaCoeff2); } } -void sub_8031ACC(u8 taskId, u8 a) +static void NewGameBirchSpeech_StartFadeOutTarget1InTarget2(u8 taskId, u8 delay) { u8 taskId2; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); SetGpuReg(REG_OFFSET_BLDY, 0); - gTasks[taskId].data[5] = 0; - taskId2 = CreateTask(sub_8031A5C, 0); - gTasks[taskId2].data[0] = taskId; - gTasks[taskId2].data[1] = 16; - gTasks[taskId2].data[2] = 0; - gTasks[taskId2].data[3] = a; - gTasks[taskId2].data[4] = a; + gTasks[taskId].tIsDoneFadingSprites = 0; + taskId2 = CreateTask(Task_NewGameBirchSpeech_FadeOutTarget1InTarget2, 0); + gTasks[taskId2].tMainTask = taskId; + gTasks[taskId2].tAlphaCoeff1 = 16; + gTasks[taskId2].tAlphaCoeff2 = 0; + gTasks[taskId2].tDelay = delay; + gTasks[taskId2].tDelayTimer = delay; } -void sub_8031B3C(u8 taskId) +static void Task_NewGameBirchSpeech_FadeInTarget1OutTarget2(u8 taskId) { - int alpha; + int alphaCoeff2; - if (gTasks[taskId].data[1] == 16) + if (gTasks[taskId].tAlphaCoeff1 == 16) { - gTasks[gTasks[taskId].data[0]].data[5] = 1; + gTasks[gTasks[taskId].tMainTask].tIsDoneFadingSprites = TRUE; DestroyTask(taskId); } - else if (gTasks[taskId].data[4]) + else if (gTasks[taskId].tDelayTimer) { - gTasks[taskId].data[4]--; + gTasks[taskId].tDelayTimer--; } else { - gTasks[taskId].data[4] = gTasks[taskId].data[3]; - gTasks[taskId].data[1]++; - gTasks[taskId].data[2]--; - alpha = gTasks[taskId].data[2] << 8; - SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1] + alpha); + gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; + gTasks[taskId].tAlphaCoeff1++; + gTasks[taskId].tAlphaCoeff2--; + alphaCoeff2 = gTasks[taskId].tAlphaCoeff2 << 8; + SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].tAlphaCoeff1 + alphaCoeff2); } } -void sub_8031BAC(u8 taskId, u8 a) +static void NewGameBirchSpeech_StartFadeInTarget1OutTarget2(u8 taskId, u8 delay) { u8 taskId2; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); SetGpuReg(REG_OFFSET_BLDY, 0); - gTasks[taskId].data[5] = 0; - taskId2 = CreateTask(sub_8031B3C, 0); - gTasks[taskId2].data[0] = taskId; - gTasks[taskId2].data[1] = 0; - gTasks[taskId2].data[2] = 16; - gTasks[taskId2].data[3] = a; - gTasks[taskId2].data[4] = a; + gTasks[taskId].tIsDoneFadingSprites = 0; + taskId2 = CreateTask(Task_NewGameBirchSpeech_FadeInTarget1OutTarget2, 0); + gTasks[taskId2].tMainTask = taskId; + gTasks[taskId2].tAlphaCoeff1 = 0; + gTasks[taskId2].tAlphaCoeff2 = 16; + gTasks[taskId2].tDelay = delay; + gTasks[taskId2].tDelayTimer = delay; } -void sub_8031C1C(u8 taskId) +#undef tMainTask +#undef tAlphaCoeff1 +#undef tAlphaCoeff2 +#undef tDelay +#undef tDelayTimer + +#undef tIsDoneFadingSprites + +#define tMainTask data[0] +#define tPalIndex data[1] +#define tDelayBefore data[2] +#define tDelay data[3] +#define tDelayTimer data[4] + +static void Task_NewGameBirchSpeech_FadePlatformIn(u8 taskId) { - if (gTasks[taskId].data[2]) + if (gTasks[taskId].tDelayBefore) { - gTasks[taskId].data[2]--; + gTasks[taskId].tDelayBefore--; } - else if (gTasks[taskId].data[1] == 8) + else if (gTasks[taskId].tPalIndex == 8) { DestroyTask(taskId); } - else if (gTasks[taskId].data[4]) + else if (gTasks[taskId].tDelayTimer) { - gTasks[taskId].data[4]--; + gTasks[taskId].tDelayTimer--; } else { - gTasks[taskId].data[4] = gTasks[taskId].data[3]; - gTasks[taskId].data[1]++; - LoadPalette(&gUnknown_082FF018[gTasks[taskId].data[1]], 1, 16); + gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; + gTasks[taskId].tPalIndex++; + LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], 1, 16); } } -void sub_8031C88(u8 taskId, u8 a) +static void NewGameBirchSpeech_StartFadePlatformIn(u8 taskId, u8 delay) { u8 taskId2; - taskId2 = CreateTask(sub_8031C1C, 0); - gTasks[taskId2].data[0] = taskId; - gTasks[taskId2].data[1] = 0; - gTasks[taskId2].data[2] = 8; - gTasks[taskId2].data[3] = a; - gTasks[taskId2].data[4] = a; + taskId2 = CreateTask(Task_NewGameBirchSpeech_FadePlatformIn, 0); + gTasks[taskId2].tMainTask = taskId; + gTasks[taskId2].tPalIndex = 0; + gTasks[taskId2].tDelayBefore = 8; + gTasks[taskId2].tDelay = delay; + gTasks[taskId2].tDelayTimer = delay; } -void sub_8031CC8(u8 taskId) +static void Task_NewGameBirchSpeech_FadePlatformOut(u8 taskId) { - if (gTasks[taskId].data[2]) + if (gTasks[taskId].tDelayBefore) { - gTasks[taskId].data[2]--; + gTasks[taskId].tDelayBefore--; } - else if (gTasks[taskId].data[1] == 0) + else if (gTasks[taskId].tPalIndex == 0) { DestroyTask(taskId); } - else if (gTasks[taskId].data[4]) + else if (gTasks[taskId].tDelayTimer) { - gTasks[taskId].data[4]--; + gTasks[taskId].tDelayTimer--; } else { - gTasks[taskId].data[4] = gTasks[taskId].data[3]; - gTasks[taskId].data[1]--; - LoadPalette(&gUnknown_082FF018[gTasks[taskId].data[1]], 1, 16); + gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; + gTasks[taskId].tPalIndex--; + LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], 1, 16); } } -void sub_8031D34(u8 taskId, u8 a) +static void NewGameBirchSpeech_StartFadePlatformOut(u8 taskId, u8 delay) { u8 taskId2; - taskId2 = CreateTask(sub_8031CC8, 0); - gTasks[taskId2].data[0] = taskId; - gTasks[taskId2].data[1] = 8; - gTasks[taskId2].data[2] = 8; - gTasks[taskId2].data[3] = a; - gTasks[taskId2].data[4] = a; + taskId2 = CreateTask(Task_NewGameBirchSpeech_FadePlatformOut, 0); + gTasks[taskId2].tMainTask = taskId; + gTasks[taskId2].tPalIndex = 8; + gTasks[taskId2].tDelayBefore = 8; + gTasks[taskId2].tDelay = delay; + gTasks[taskId2].tDelayTimer = delay; } -void sub_8031D74(void) +#undef tMainTask +#undef tPalIndex +#undef tDelayBefore +#undef tDelay +#undef tDelayTimer + +static void NewGameBirchSpeech_ShowGenderMenu(void) { DrawMainMenuWindowBorder(&gUnknown_082FF080[1], 0xF3); FillWindowPixelBuffer(1, 17); - PrintMenuTable(1, 2, gUnknown_082FF118); + PrintMenuTable(1, 2, sMenuActions_Gender); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); PutWindowTilemap(1); CopyWindowToVram(1, 3); } -s8 sub_8031DB4(void) +static s8 NewGameBirchSpeech_ProcessGenderMenuInput(void) { return Menu_ProcessInputNoWrapAround(); } -void set_default_player_name(u8 nameId) +static void NewGameBirchSpeech_SetDefaultPlayerName(u8 nameId) { const u8* name; u8 i; @@ -1939,7 +1993,7 @@ void set_default_player_name(u8 nameId) gSaveBlock2Ptr->playerName[7] = 0xFF; } -void CreateMainMenuErrorWindow(const u8* str) +static void CreateMainMenuErrorWindow(const u8* str) { FillWindowPixelBuffer(7, 17); AddTextPrinterParameterized(7, 1, str, 0, 1, 2, 0); @@ -1950,35 +2004,35 @@ void CreateMainMenuErrorWindow(const u8* str) SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(113, 159)); } -void fmt_savegame(void) +static void MainMenu_FormatSavegameText(void) { - fmt_time(); - fmt_pokedex(); - fmt_player(); - fmt_badges(); + MainMenu_FormatSavegamePlayer(); + MainMenu_FormatSavegamePokedex(); + MainMenu_FormatSavegameTime(); + MainMenu_FormatSavegameBadges(); } -void fmt_time(void) +static void MainMenu_FormatSavegamePlayer(void) { StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPlayer); - AddTextPrinterParameterized3(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4); - AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName); + AddTextPrinterParameterized3(2, 1, 0, 17, sTextColor_PlayerGenderColor, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, sTextColor_PlayerGenderColor, -1, gSaveBlock2Ptr->playerName); } -void fmt_player(void) +static void MainMenu_FormatSavegameTime(void) { u8 str[0x20]; u8* ptr; StringExpandPlaceholders(gStringVar4, gText_ContinueMenuTime); - AddTextPrinterParameterized3(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0x6C, 17, sTextColor_PlayerGenderColor, -1, gStringVar4); ptr = ConvertIntToDecimalStringN(str, gSaveBlock2Ptr->playTimeHours, 0, 3); *ptr = 0xF0; ConvertIntToDecimalStringN(ptr + 1, gSaveBlock2Ptr->playTimeMinutes, 2, 2); - AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, sTextColor_PlayerGenderColor, -1, str); } -void fmt_pokedex(void) +static void MainMenu_FormatSavegamePokedex(void) { u8 str[0x20]; u16 dexCount; @@ -1990,13 +2044,13 @@ void fmt_pokedex(void) else dexCount = GetHoennPokedexCount(1); StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPokedex); - AddTextPrinterParameterized3(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0, 33, sTextColor_PlayerGenderColor, -1, gStringVar4); ConvertIntToDecimalStringN(str, dexCount, 0, 3); - AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, sTextColor_PlayerGenderColor, -1, str); } } -void fmt_badges(void) +static void MainMenu_FormatSavegameBadges(void) { u8 str[0x20]; u8 badgeCount = 0; @@ -2008,18 +2062,18 @@ void fmt_badges(void) badgeCount++; } StringExpandPlaceholders(gStringVar4, gText_ContinueMenuBadges); - AddTextPrinterParameterized3(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0x6C, 33, sTextColor_PlayerGenderColor, -1, gStringVar4); ConvertIntToDecimalStringN(str, badgeCount, 2, 1); - AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, sTextColor_PlayerGenderColor, -1, str); } -void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset) +static void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset) { LoadBgTiles(bgId, GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, tileOffset); LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, 32, 32); } -void DrawMainMenuWindowBorder(const struct WindowTemplate *template, u16 baseTileNum) +static void DrawMainMenuWindowBorder(const struct WindowTemplate *template, u16 baseTileNum) { u16 r9 = 1 + baseTileNum; u16 r10 = 2 + baseTileNum; @@ -2046,42 +2100,42 @@ static void ClearMainMenuWindowTilemap(const struct WindowTemplate *template) CopyBgTilemapBufferToVram(template->priority); } -void sub_8032298(u8 a, u8 b, u8 c, u8 d, u8 e, u8 unused) +static void NewGameBirchSpeech_ClearGenderWindowTilemap(u8 a, u8 b, u8 c, u8 d, u8 e, u8 unused) { FillBgTilemapBufferRect(a, 0, b + 0xFF, c + 0xFF, d + 2, e + 2, 2); } -void sub_80322E0(u8 windowId, u8 a) +static void NewGameBirchSpeech_ClearGenderWindow(u8 windowId, u8 a) { - CallWindowFunction(windowId, sub_8032298); + CallWindowFunction(windowId, NewGameBirchSpeech_ClearGenderWindowTilemap); FillWindowPixelBuffer(windowId, 0x11); ClearWindowTilemap(windowId); if (a == 1) CopyWindowToVram(windowId, 3); } -void sub_8032318(u8 a) +static void NewGameBirchSpeech_ClearWindow(u8 windowId) { - u8 fontAttribute = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND); - u8 fontAttribute2 = GetFontAttribute(1, FONTATTR_MAX_LETTER_WIDTH); - u8 fontAttribute3 = GetFontAttribute(1, FONTATTR_MAX_LETTER_HEIGHT); - u8 windowAttribute = GetWindowAttribute(a, WINDOW_WIDTH); - u8 windowAttribute2 = GetWindowAttribute(a, WINDOW_HEIGHT); + u8 bgColor = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND); + u8 maxCharWidth = GetFontAttribute(1, FONTATTR_MAX_LETTER_WIDTH); + u8 maxCharHeight = GetFontAttribute(1, FONTATTR_MAX_LETTER_HEIGHT); + u8 winWidth = GetWindowAttribute(windowId, WINDOW_WIDTH); + u8 winHeight = GetWindowAttribute(windowId, WINDOW_HEIGHT); - FillWindowPixelRect(a, fontAttribute, 0, 0, fontAttribute2 * windowAttribute, fontAttribute3 * windowAttribute2); - CopyWindowToVram(a, 2); + FillWindowPixelRect(windowId, bgColor, 0, 0, maxCharWidth * winWidth, maxCharHeight * winHeight); + CopyWindowToVram(windowId, 2); } -void sub_80323A0(struct TextSubPrinter *printer, u16 a) +static void NewGameBirchSpeech_ShowPokeBallPrinterCallback(struct TextSubPrinter *printer, u16 a) { if (*(printer->current_text_offset - 2) == 8 && gUnknown_02022D04 == 0) { gUnknown_02022D04 = 1; - CreateTask(sub_8030A70, 0); + CreateTask(Task_NewGameBirchSpeechSub_InitPokeBall, 0); } } -void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) +void CreateYesNoMenuParameterized(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) { struct WindowTemplate sp; @@ -2089,16 +2143,16 @@ void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) CreateYesNoMenu(&sp, c, e, 0); } -void unknown_rbox_to_vram(u8 windowId, u8 a) +static void NewGameBirchSpeech_ShowDialogueWindow(u8 windowId, u8 copyToVram) { - CallWindowFunction(windowId, sub_8032474); + CallWindowFunction(windowId, NewGameBirchSpeech_CreateDialogueWindowBorder); FillWindowPixelBuffer(windowId, 17); PutWindowTilemap(windowId); - if (a == 1) + if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void sub_8032474 (u8 a, u8 b, u8 c, u8 d, u8 e, u8 f) +static void NewGameBirchSpeech_CreateDialogueWindowBorder(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f) { FillBgTilemapBufferRect(a, 0xFD, b-2, c-1, 1, 1, f); FillBgTilemapBufferRect(a, 0xFF, b-1, c-1, 1, 1, f); @@ -2115,11 +2169,13 @@ void sub_8032474 (u8 a, u8 b, u8 c, u8 d, u8 e, u8 f) FillBgTilemapBufferRect(a, BG_TILE_V_FLIP(0x102), b+d, c+e, 1, 1, f); } -void task_new_game_prof_birch_speech_part2_1(u8 taskId) +static void Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox(u8 taskId) { - if (gTasks[taskId].data[7]-- <= 0) + if (gTasks[taskId].tTimer-- <= 0) { - unknown_rbox_to_vram(0, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_2; + NewGameBirchSpeech_ShowDialogueWindow(0, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_SoItsPlayerName; } } + +#undef tTimer diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 6ebc7affaa..3d3408bbb6 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -668,7 +668,7 @@ static void Task_BardSong(u8 taskId) task->tState = 3; break; } - sub_8197224(); + RunTextPrintersAndIsPrinter0Active(); } void ScrSpecial_SetMauvilleOldManEventObjGfx(void) diff --git a/src/menu.c b/src/menu.c index c5d70f5559..0e5d1b8568 100644 --- a/src/menu.c +++ b/src/menu.c @@ -157,7 +157,7 @@ void sub_8197200(void) sub_81973A4(); } -u16 sub_8197224(void) +u16 RunTextPrintersAndIsPrinter0Active(void) { RunTextPrinters(); return IsTextPrinterActive(0); diff --git a/src/slot_machine.c b/src/slot_machine.c index ed00f41c21..5edd31e998 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -968,7 +968,7 @@ bool8 sub_8102318(struct Task *task) NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sub_80323CC(0x15, 7, 0x214, 0x180, 0xE, 0xF); + CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); sSlotMachine->state = 22; return FALSE; } diff --git a/src/start_menu.c b/src/start_menu.c index 56dad89f7f..9d10aeaa4b 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -866,7 +866,7 @@ static void InitSave(void) static u8 RunSaveCallback(void) { // True if text is still printing - if (sub_8197224() == TRUE) + if (RunTextPrintersAndIsPrinter0Active() == TRUE) { return SAVE_IN_PROGRESS; } From e8be47abb880a06090f36a7305ab0e4f59f0a701 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 14 Sep 2018 22:35:04 -0500 Subject: [PATCH 23/28] Add running status to mid2agb --- tools/mid2agb/main.cpp | 14 +++++++++++++- tools/mid2agb/midi.cpp | 13 +++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/tools/mid2agb/main.cpp b/tools/mid2agb/main.cpp index 9b883fba5b..5659e49b17 100644 --- a/tools/mid2agb/main.cpp +++ b/tools/mid2agb/main.cpp @@ -73,6 +73,18 @@ static std::string StripExtension(std::string s) return s; } +static std::string StripPathAndExtension(std::string s) +{ + std::size_t pos = s.find_last_of("/\\"); + + if (pos > 0 && pos != std::string::npos) + { + s = s.substr(pos + 1, pos); + } + + return StripExtension(s); +} + static std::string GetExtension(std::string s) { std::size_t pos = s.find_last_of('.'); @@ -206,7 +218,7 @@ int main(int argc, char** argv) RaiseError("output filename extension is not \"s\""); if (g_asmLabel.empty()) - g_asmLabel = StripExtension(outputFilename); + g_asmLabel = StripPathAndExtension(outputFilename); g_inputFile = std::fopen(inputFilename.c_str(), "rb"); diff --git a/tools/mid2agb/midi.cpp b/tools/mid2agb/midi.cpp index ba5dd654ae..7c05c52374 100644 --- a/tools/mid2agb/midi.cpp +++ b/tools/mid2agb/midi.cpp @@ -52,6 +52,7 @@ static std::int32_t s_absoluteTime; static int s_blockCount = 0; static int s_minNote; static int s_maxNote; +static int s_runningStatus = 0; void Seek(long offset) { @@ -181,19 +182,31 @@ void DetermineEventCategory(MidiEventCategory& category, int& typeChan, int& siz { typeChan = ReadInt8(); + if (typeChan < 0x80 && s_runningStatus != 0) + { + typeChan = s_runningStatus; + Skip(-1); + } + if (typeChan == 0xFF) { category = MidiEventCategory::Meta; size = 0; } + else if (typeChan >= 0xF8) + { + category = MidiEventCategory::Invalid; + } else if (typeChan >= 0xF0) { category = MidiEventCategory::SysEx; size = 0; + s_runningStatus = 0; } else if (typeChan >= 0x80) { category = MidiEventCategory::Control; + s_runningStatus = typeChan; switch (typeChan >> 4) { From ff13cb63520d58951c6d7fcbb026b1f1beb21ae8 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 15 Sep 2018 13:50:23 +0200 Subject: [PATCH 24/28] decompile cable car util which has nothing to do with actual cable car --- asm/cable_car_util.s | 762 ------------------------------------------ include/pokemon.h | 8 +- include/rom_8034C54.h | 2 +- include/rom_81520A8.h | 33 ++ ld_script.txt | 2 +- src/hall_of_fame.c | 51 +-- src/rom_8034C54.c | 4 +- src/rom_81520A8.c | 218 ++++++++++++ sym_ewram.txt | 4 +- 9 files changed, 270 insertions(+), 814 deletions(-) delete mode 100644 asm/cable_car_util.s create mode 100644 include/rom_81520A8.h create mode 100644 src/rom_81520A8.c diff --git a/asm/cable_car_util.s b/asm/cable_car_util.s deleted file mode 100644 index db434eaf91..0000000000 --- a/asm/cable_car_util.s +++ /dev/null @@ -1,762 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81520A8 -sub_81520A8: @ 81520A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - ldr r0, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - movs r0, 0 - lsrs r4, r3, 24 - cmp r0, r8 - bcs _08152122 -_081520DA: - ldr r2, [sp] - movs r3, 0 - adds r6, r4, 0x1 - adds r0, 0x1 - mov r12, r0 - cmp r3, r7 - bcs _0815210C - lsls r5, r4, 6 -_081520EA: - lsls r0, r2, 1 - adds r0, r5 - add r0, r10 - mov r1, r9 - strh r1, [r0] - adds r1, r2, 0x1 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r7 - bcc _081520EA -_0815210C: - adds r0, r6, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r6, r0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r1, r12 - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, r8 - bcc _081520DA -_08152122: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81520A8 - - thumb_func_start sub_8152134 -sub_8152134: @ 8152134 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - ldr r0, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - movs r0, 0 - adds r5, r1, 0 - lsrs r4, r3, 24 - cmp r0, r9 - bcs _081521AE -_08152164: - ldr r2, [sp] - movs r3, 0 - adds r7, r4, 0x1 - adds r0, 0x1 - mov r8, r0 - cmp r3, r12 - bcs _08152198 - lsls r6, r4, 6 -_08152174: - lsls r0, r2, 1 - adds r0, r6 - add r0, r10 - ldrh r1, [r5] - strh r1, [r0] - adds r5, 0x2 - adds r1, r2, 0x1 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r12 - bcc _08152174 -_08152198: - adds r0, r7, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r7, r0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, r9 - bcc _08152164 -_081521AE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8152134 - - thumb_func_start sub_81521C0 -sub_81521C0: @ 81521C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - cmp r4, 0 - beq _081521FE - cmp r4, 0x40 - bls _081521D6 - movs r4, 0x40 -_081521D6: - ldr r6, =gUnknown_0203ABB8 - movs r0, 0x8 - bl AllocZeroed - str r0, [r6] - cmp r0, 0 - beq _081521FE - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 4 - bl AllocZeroed - ldr r1, [r6] - str r0, [r1, 0x4] - cmp r0, 0 - bne _08152208 - adds r0, r1, 0 - bl Free - str r5, [r6] -_081521FE: - movs r0, 0 - b _08152244 - .pool -_08152208: - strb r4, [r1] - cmp r5, r4 - bcs _08152242 - adds r3, r6, 0 - ldr r0, =gDummyOamData - mov r12, r0 - movs r2, 0x4 - mov r8, r2 -_08152218: - ldr r0, [r3] - ldr r2, [r0, 0x4] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 4 - adds r2, r1, r2 - mov r0, r12 - ldm r0!, {r6,r7} - stm r2!, {r6,r7} - ldr r0, [r3] - ldr r0, [r0, 0x4] - adds r1, r0 - ldrb r0, [r1, 0x19] - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x19] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r4 - bcc _08152218 -_08152242: - movs r0, 0x1 -_08152244: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81521C0 - - thumb_func_start sub_8152254 -sub_8152254: @ 8152254 - push {r4-r7,lr} - movs r3, 0 - ldr r0, =gUnknown_0203ABB8 - ldr r2, [r0] - adds r5, r0, 0 - cmp r2, 0 - bne _0815226C - movs r0, 0 - b _081522C4 - .pool -_0815226C: - ldrb r2, [r2] - cmp r3, r2 - bcs _08152292 - ldr r0, =gMain+0x238 - mov r12, r0 - ldr r4, =gDummyOamData - adds r2, r5, 0 -_0815227A: - lsls r1, r3, 3 - add r1, r12 - adds r0, r4, 0 - ldm r0!, {r6,r7} - stm r1!, {r6,r7} - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, [r2] - ldrb r0, [r0] - cmp r3, r0 - bcc _0815227A -_08152292: - ldr r1, [r5] - ldrb r0, [r1] - lsls r2, r0, 1 - adds r2, r0 - ldr r0, [r1, 0x4] - lsls r2, 4 - movs r1, 0 - bl memset - ldr r0, [r5] - ldr r0, [r0, 0x4] - bl Free - ldr r0, [r5] - movs r4, 0 - str r4, [r0, 0x4] - movs r1, 0 - movs r2, 0x8 - bl memset - ldr r0, [r5] - bl Free - str r4, [r5] - movs r0, 0x1 -_081522C4: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8152254 - - thumb_func_start sub_81522D4 -sub_81522D4: @ 81522D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, =gUnknown_0203ABB8 - ldr r1, [r0] - adds r3, r0, 0 - cmp r1, 0 - beq _081522EC - ldr r0, [r1, 0x4] - cmp r0, 0 - bne _081522F4 -_081522EC: - movs r0, 0 - b _081523D2 - .pool -_081522F4: - ldrb r1, [r1] - cmp r6, r1 - bcs _081523D0 - adds r7, r3, 0 - movs r0, 0x3 - mov r8, r0 -_08152300: - ldr r0, [r7] - ldr r1, [r0, 0x4] - lsls r0, r6, 1 - adds r0, r6 - lsls r5, r0, 4 - adds r2, r5, r1 - ldrb r1, [r2, 0x19] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x3 - bne _081523C2 - ldr r1, [r2, 0x2C] - cmp r1, 0 - beq _08152322 - adds r0, r2, 0 - bl _call_via_r1 -_08152322: - ldr r0, [r7] - ldr r0, [r0, 0x4] - adds r2, r5, r0 - ldrb r1, [r2, 0x19] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08152348 - lsls r0, r6, 3 - ldr r1, =gMain+0x238 - adds r0, r1 - ldr r1, =gDummyOamData - ldm r1!, {r2,r3} - stm r0!, {r2,r3} - b _081523C0 - .pool -_08152348: - ldrb r0, [r2, 0xE] - ldrb r4, [r2, 0xA] - adds r0, r4 - strb r0, [r2] - ldr r4, [r7] - ldr r3, [r4, 0x4] - adds r3, r5, r3 - movs r0, 0x8 - ldrsh r2, [r3, r0] - movs r1, 0xC - ldrsh r0, [r3, r1] - adds r2, r0 - ldr r1, =0x000001ff - adds r0, r1, 0 - ands r2, r0 - ldrh r0, [r3, 0x2] - ldr r1, =0xfffffe00 - mov r12, r1 - mov r1, r12 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x2] - ldr r3, [r4, 0x4] - adds r3, r5, r3 - ldrb r0, [r3, 0x19] - lsls r0, 27 - lsrs r0, 30 - mov r2, r8 - ands r0, r2 - lsls r0, 2 - ldrb r1, [r3, 0x5] - movs r4, 0xD - negs r4, r4 - adds r2, r4, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x5] - ldr r4, [r7] - ldr r2, [r4, 0x4] - adds r2, r5, r2 - ldrh r3, [r2, 0x14] - ldr r1, =0x000003ff - adds r0, r1, 0 - adds r1, r3, 0 - ands r1, r0 - mov r12, r1 - ldrh r0, [r2, 0x4] - ldr r3, =0xfffffc00 - adds r1, r3, 0 - ands r0, r1 - mov r1, r12 - orrs r0, r1 - strh r0, [r2, 0x4] - lsls r1, r6, 3 - ldr r2, =gMain+0x238 - ldr r0, [r4, 0x4] - adds r1, r2 - adds r0, r5, r0 - ldm r0!, {r2,r3} - stm r1!, {r2,r3} -_081523C0: - ldr r3, =gUnknown_0203ABB8 -_081523C2: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [r3] - ldrb r0, [r0] - cmp r6, r0 - bcc _08152300 -_081523D0: - movs r0, 0x1 -_081523D2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81522D4 - - thumb_func_start sub_81523F4 -sub_81523F4: @ 81523F4 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r4, 0 - beq _08152430 - ldrh r0, [r4, 0x10] - bl GetSpriteTileStartByTag - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x0000ffff - cmp r5, r0 - beq _08152430 - strb r6, [r4, 0x18] - ldrb r0, [r4, 0x1] - lsrs r0, 6 - ldrb r1, [r4, 0x3] - lsrs r1, 6 - bl sub_80355F8 - lsls r0, 24 - lsrs r0, 24 - muls r0, r6 - adds r0, r5, r0 - strh r0, [r4, 0x14] - movs r0, 0x1 - b _08152432 - .pool -_08152430: - movs r0, 0 -_08152432: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81523F4 - - thumb_func_start sub_8152438 -sub_8152438: @ 8152438 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_0203ABB8 - ldr r0, [r0] - cmp r0, 0 - beq _0815246C - ldrb r1, [r0] - cmp r2, r1 - bcs _0815246C - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 4 - adds r3, r0, r1 - ldrb r1, [r3, 0x19] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0815246C - str r4, [r3, 0x2C] - adds r0, r2, 0 - b _0815246E - .pool -_0815246C: - movs r0, 0xFF -_0815246E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8152438 - - thumb_func_start sub_8152474 -sub_8152474: @ 8152474 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 16 - lsrs r5, r2, 16 - ldr r0, =gUnknown_0203ABB8 - ldr r0, [r0] - cmp r0, 0 - beq _081524A8 - ldrb r1, [r0] - cmp r3, r1 - bcs _081524A8 - ldr r1, [r0, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 4 - adds r2, r0, r1 - ldrb r1, [r2, 0x19] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081524A8 - cmp r4, 0x7 - bls _081524B0 -_081524A8: - movs r0, 0xFF - b _081524BC - .pool -_081524B0: - lsls r1, r4, 1 - adds r0, r2, 0 - adds r0, 0x1A - adds r0, r1 - strh r5, [r0] - adds r0, r3, 0 -_081524BC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8152474 - - thumb_func_start sub_81524C4 -sub_81524C4: @ 81524C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r9, r0 - ldr r0, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x4] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0xC] - lsls r5, 24 - lsrs r5, 24 - mov r10, r5 - movs r5, 0 - ldr r0, =gUnknown_0203ABB8 - ldr r0, [r0] - cmp r0, 0 - beq _0815255E - mov r1, r9 - cmp r1, 0 - bne _08152530 - b _0815255E - .pool -_08152514: - adds r5, r2, 0 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x30 - bl memset - strb r4, [r5, 0x16] - ldrb r0, [r5, 0x19] - movs r1, 0x1 - orrs r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r5, 0x19] - b _0815255A -_08152530: - movs r4, 0 - ldrb r1, [r0] - cmp r5, r1 - bcs _0815255A - ldr r6, [r0, 0x4] - adds r3, r1, 0 - movs r7, 0x1 -_0815253E: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 4 - adds r2, r0, r6 - ldrb r1, [r2, 0x19] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _08152514 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r3 - bcc _0815253E -_0815255A: - cmp r5, 0 - bne _08152562 -_0815255E: - movs r0, 0xFF - b _081525C0 -_08152562: - adds r1, r5, 0 - mov r0, r9 - ldm r0!, {r2,r3} - stm r1!, {r2,r3} - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, 0x10] - mov r1, r8 - strh r1, [r5, 0x12] - mov r2, sp - ldrh r2, [r2, 0x4] - strh r2, [r5, 0x8] - mov r3, sp - ldrh r3, [r3, 0x8] - strh r3, [r5, 0xA] - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r1, [r5, 0x5] - movs r4, 0xF - ands r4, r1 - orrs r4, r0 - strb r4, [r5, 0x5] - mov r0, r10 - cmp r0, 0x3 - bhi _081525B6 - movs r1, 0x3 - ands r1, r0 - lsls r3, r1, 3 - ldrb r2, [r5, 0x19] - movs r0, 0x19 - negs r0, r0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, 0x19] - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r4, r0 - orrs r4, r1 - strb r4, [r5, 0x5] -_081525B6: - adds r0, r5, 0 - ldr r1, [sp, 0xC] - bl sub_81523F4 - ldrb r0, [r5, 0x16] -_081525C0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81524C4 - - thumb_func_start sub_81525D0 -sub_81525D0: @ 81525D0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, =gUnknown_0203ABB8 - ldr r0, [r6] - cmp r0, 0 - beq _081525F2 - ldr r1, [r0, 0x4] - lsls r0, r5, 1 - adds r0, r5 - lsls r4, r0, 4 - adds r2, r4, r1 - ldrb r1, [r2, 0x19] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081525FC -_081525F2: - movs r0, 0xFF - b _0815263C - .pool -_081525FC: - adds r0, r2, 0 - movs r1, 0 - movs r2, 0x30 - bl memset - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - movs r1, 0xA0 - strb r1, [r0] - ldr r3, [r6] - ldr r2, [r3, 0x4] - adds r2, r4, r2 - ldrh r1, [r2, 0x2] - ldr r0, =0xfffffe00 - ands r0, r1 - movs r1, 0xF0 - orrs r0, r1 - strh r0, [r2, 0x2] - ldr r1, [r3, 0x4] - adds r1, r4, r1 - ldrb r0, [r1, 0x19] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x19] - lsls r1, r5, 3 - ldr r0, =gMain+0x238 - adds r1, r0 - ldr r0, =gDummyOamData - ldm r0!, {r2,r3} - stm r1!, {r2,r3} - adds r0, r5, 0 -_0815263C: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81525D0 - - .align 2, 0 @ Don't pad with nop. diff --git a/include/pokemon.h b/include/pokemon.h index abfb360f0d..9eddd8155a 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -268,12 +268,12 @@ struct UnknownPokemonStruct3 struct Unknown_806F160_Struct { - u8 field_0_0 : 4; - u8 field_0_1 : 4; + u8 field_0_0:4; + u8 field_0_1:4; u8 field_1; u8 magic; - u8 field_3_0 : 4; - u8 field_3_1 : 4; + u8 field_3_0:4; + u8 field_3_1:4; void *bytes; u8 **byteArrays; struct SpriteTemplate *templates; diff --git a/include/rom_8034C54.h b/include/rom_8034C54.h index 9ad84ca139..4da324dd10 100644 --- a/include/rom_8034C54.h +++ b/include/rom_8034C54.h @@ -21,6 +21,6 @@ bool32 sub_8034D14(u32 id, s32 arg1, const struct UnkStruct3 *arg2); void sub_8035044(u32 id, s32 arg1); void sub_80353DC(u32 id); void sub_803547C(u32 id, bool32 arg1); -u8 sub_80355F8(u32 arg0, u32 arg1); +u8 sub_80355F8(u32 shape, u32 size); #endif // GUARD_ROM_8034C54_H diff --git a/include/rom_81520A8.h b/include/rom_81520A8.h new file mode 100644 index 0000000000..2be12200fb --- /dev/null +++ b/include/rom_81520A8.h @@ -0,0 +1,33 @@ +#ifndef GUARD_ROM_81520A8_H +#define GUARD_ROM_81520A8_H + +struct UnkStruct_81520A8 +{ + struct OamData oam; + s16 x; + s16 y; + s16 xDelta; + s16 yDelta; + u16 tileTag; + u16 palTag; + u16 tileNum; + u8 id; + u8 filler17; // Unused. + u8 unk18; + u8 unk19_0:1; + u8 unk19_1:1; + u8 unk19_2:1; + u8 priority:2; + s16 data[8]; + void (*callback)(struct UnkStruct_81520A8 *); +}; + +bool32 sub_81521C0(u8 count); +bool32 sub_8152254(void); +bool32 sub_81522D4(void); +u8 sub_8152438(u8 id, void (*func)(struct UnkStruct_81520A8 *)); +u8 sub_8152474(u8 id, u8 dataArrayId, s16 dataValue); +u8 sub_81524C4(const struct OamData *oam, u16 tileTag, u16 palTag, s16 x, s16 y, u8 arg5, u8 priority); +u8 sub_81525D0(u8 id); + +#endif // GUARD_ROM_81520A8_H diff --git a/ld_script.txt b/ld_script.txt index 2e36161218..50a2b60489 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -199,7 +199,7 @@ SECTIONS { asm/cable_car.o(.text); src/math_util.o(.text); asm/roulette_util.o(.text); - asm/cable_car_util.o(.text); + src/rom_81520A8.o(.text); src/save.o(.text); src/mystery_event_script.o(.text); asm/field_effect_helpers.o(.text); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 522d11d4f3..2b09046725 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -29,6 +29,7 @@ #include "menu.h" #include "trainer_pokemon_sprites.h" #include "data2.h" +#include "rom_81520A8.h" struct HallofFameMon { @@ -91,13 +92,6 @@ extern void sub_80F9BCC(u16, u16, u8); extern bool8 sub_80F9C1C(void); extern void sub_81971D0(void); extern void sub_8197200(void); -extern void sub_8152254(void); -extern void sub_81525D0(u8); -extern void sub_8152438(u8, void*); -extern void sub_8152474(u8, u8, u8); -extern void sub_81522D4(void); -extern bool32 sub_81521C0(u8); -extern u8 sub_81524C4(const struct OamData *arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, u8 arg5, s16 arg6); // this file's functions static void ClearVramOamPltt_LoadHofPal(void); @@ -1444,53 +1438,28 @@ static void sub_81752C0(void) FreeSpritePaletteByTag(0x3E9); } -struct UnknownStruct912B4 +static void sub_81752F4(struct UnkStruct_81520A8 *structPtr) { - s16 field_0; - s16 field_2; - s16 field_4; - s16 field_6; - s16 field_8; - s16 field_A; - s16 field_C; - s16 field_E; - s16 field_10; - s16 field_12; - s16 field_14; - s16 field_16; - s16 field_18; - s16 field_1A; - s16 field_1C; - s16 field_1E; - s16 field_20; - s16 field_22; - s16 field_24; - s16 field_26; - s16 field_28; -}; - -static void sub_81752F4(struct UnknownStruct912B4 *unkStruct) -{ - if (unkStruct->field_E > 110) + if (structPtr->yDelta > 110) { - gTasks[unkStruct->field_28].data[15]--; - sub_81525D0(unkStruct->field_16); + gTasks[structPtr->data[7]].data[15]--; + sub_81525D0(structPtr->id); } else { u8 var; s32 rand; - unkStruct->field_E++; - unkStruct->field_E += unkStruct->field_1C; + structPtr->yDelta++; + structPtr->yDelta += structPtr->data[1]; - var = unkStruct->field_1A; + var = structPtr->data[0]; rand = Random(); rand &= 3; rand += 8; - unkStruct->field_C = (rand) * ((gSineTable[var])) / 256; + structPtr->xDelta = (rand) * ((gSineTable[var])) / 256; - unkStruct->field_1A += 4; + structPtr->data[0] += 4; } } diff --git a/src/rom_8034C54.c b/src/rom_8034C54.c index da18c330cc..1ef223c696 100644 --- a/src/rom_8034C54.c +++ b/src/rom_8034C54.c @@ -431,9 +431,9 @@ static bool32 SharesPalWithAnyActive(u32 id) return FALSE; } -u8 sub_80355F8(u32 arg0, u32 arg1) +u8 sub_80355F8(u32 shape, u32 size) { - return gUnknown_082FF1C8[arg0][arg1]; + return gUnknown_082FF1C8[shape][size]; } static void sub_8035608(void) diff --git a/src/rom_81520A8.c b/src/rom_81520A8.c new file mode 100644 index 0000000000..f6d14d49c4 --- /dev/null +++ b/src/rom_81520A8.c @@ -0,0 +1,218 @@ +#include "global.h" +#include "rom_81520A8.h" +#include "malloc.h" +#include "main.h" +#include "rom_8034C54.h" + +static EWRAM_DATA struct +{ + u8 count; + struct UnkStruct_81520A8 *unk4; +} *sUnknown_0203ABB8 = NULL; + +void sub_81520A8(void *dest, u16 value, u8 left, u8 top, u8 width, u8 height) // Unused. +{ + u8 i; + u8 j; + u8 x; + u8 y; + + for (i = 0, y = top; i < height; i++) + { + for (x = left, j = 0; j < width; j++) + { + *(u16 *)((dest) + (y * 64 + x * 2)) = value; + x = (x + 1) % 32; + } + y = (y + 1) % 32; + } +} + +void sub_8152134(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height) // Unused. +{ + u8 i; + u8 j; + u8 x; + u8 y; + const u16 *_src; + + for (i = 0, _src = src, y = top; i < height; i++) + { + for (x = left, j = 0; j < width; j++) + { + *(u16 *)((dest) + (y * 64 + x * 2)) = *(_src++); + x = (x + 1) % 32; + } + y = (y + 1) % 32; + } +} + +bool32 sub_81521C0(u8 count) +{ + u8 i = 0; + + if (count == 0) + return FALSE; + if (count > 64) + count = 64; + + sUnknown_0203ABB8 = AllocZeroed(sizeof(*sUnknown_0203ABB8)); + if (sUnknown_0203ABB8 == NULL) + return FALSE; + sUnknown_0203ABB8->unk4 = AllocZeroed(count * sizeof(struct UnkStruct_81520A8)); + if (sUnknown_0203ABB8->unk4 == NULL) + { + FREE_AND_SET_NULL(sUnknown_0203ABB8); + return FALSE; + } + + sUnknown_0203ABB8->count = count; + for (i = 0; i < count; i++) + { + memcpy(&sUnknown_0203ABB8->unk4[i].oam, &gDummyOamData, sizeof(struct OamData)); + sUnknown_0203ABB8->unk4[i].unk19_2 = TRUE; + } + + return TRUE; +} + +bool32 sub_8152254(void) +{ + u8 i = 0; + + if (sUnknown_0203ABB8 == NULL) + return FALSE; + + for (i = 0; i < sUnknown_0203ABB8->count; i++) + memcpy(&gMain.oamBuffer[i + 64], &gDummyOamData, sizeof(struct OamData)); + + memset(sUnknown_0203ABB8->unk4, 0, sUnknown_0203ABB8->count * sizeof(struct UnkStruct_81520A8)); + FREE_AND_SET_NULL(sUnknown_0203ABB8->unk4); + memset(sUnknown_0203ABB8, 0, sizeof(*sUnknown_0203ABB8)); + FREE_AND_SET_NULL(sUnknown_0203ABB8); + + return TRUE; +} + +bool32 sub_81522D4(void) +{ + u8 i = 0; + + if (sUnknown_0203ABB8 == NULL || sUnknown_0203ABB8->unk4 == NULL) + return FALSE; + + for (i = 0; i < sUnknown_0203ABB8->count; i++) + { + if (sUnknown_0203ABB8->unk4[i].unk19_0 && sUnknown_0203ABB8->unk4[i].unk19_1) + { + if (sUnknown_0203ABB8->unk4[i].callback != NULL) + sUnknown_0203ABB8->unk4[i].callback(&sUnknown_0203ABB8->unk4[i]); + + if (sUnknown_0203ABB8->unk4[i].unk19_2) + { + memcpy(&gMain.oamBuffer[i + 64], &gDummyOamData, sizeof(struct OamData)); + } + else + { + sUnknown_0203ABB8->unk4[i].oam.y = sUnknown_0203ABB8->unk4[i].y + sUnknown_0203ABB8->unk4[i].yDelta; + sUnknown_0203ABB8->unk4[i].oam.x = sUnknown_0203ABB8->unk4[i].x + sUnknown_0203ABB8->unk4[i].xDelta; + sUnknown_0203ABB8->unk4[i].oam.priority = sUnknown_0203ABB8->unk4[i].priority; + sUnknown_0203ABB8->unk4[i].oam.tileNum = sUnknown_0203ABB8->unk4[i].tileNum; + memcpy(&gMain.oamBuffer[i + 64], &sUnknown_0203ABB8->unk4[i], sizeof(struct OamData)); + } + } + } + + return TRUE; +} + +static bool32 sub_81523F4(struct UnkStruct_81520A8 *structPtr, u8 arg1) +{ + u16 tileStart; + + if (structPtr == NULL) + return FALSE; + + tileStart = GetSpriteTileStartByTag(structPtr->tileTag); + if (tileStart == 0xFFFF) + return FALSE; + + structPtr->unk18 = arg1; + structPtr->tileNum = (sub_80355F8(structPtr->oam.shape, structPtr->oam.size) * arg1) + tileStart; + return TRUE; +} + +u8 sub_8152438(u8 id, void (*func)(struct UnkStruct_81520A8 *)) +{ + if (sUnknown_0203ABB8 == NULL || id >= sUnknown_0203ABB8->count) + return 0xFF; + else if (!sUnknown_0203ABB8->unk4[id].unk19_0) + return 0xFF; + + sUnknown_0203ABB8->unk4[id].callback = func; + return id; +} + +u8 sub_8152474(u8 id, u8 dataArrayId, s16 dataValue) +{ + if (sUnknown_0203ABB8 == NULL || id >= sUnknown_0203ABB8->count) + return 0xFF; + else if (!sUnknown_0203ABB8->unk4[id].unk19_0 || dataArrayId >= ARRAY_COUNT(sUnknown_0203ABB8->unk4[id].data)) + return 0xFF; + + sUnknown_0203ABB8->unk4[id].data[dataArrayId] = dataValue; + return id; +} + +u8 sub_81524C4(const struct OamData *oam, u16 tileTag, u16 palTag, s16 x, s16 y, u8 arg5, u8 priority) +{ + struct UnkStruct_81520A8 *structPtr = NULL; + u8 i; + + if (sUnknown_0203ABB8 == NULL || oam == NULL) + return 0xFF; + + for (i = 0; i < sUnknown_0203ABB8->count; i++) + { + if (!sUnknown_0203ABB8->unk4[i].unk19_0) + { + structPtr = &sUnknown_0203ABB8->unk4[i]; + memset(structPtr, 0, sizeof(*structPtr)); + structPtr->id = i; + structPtr->unk19_0 = TRUE; + structPtr->unk19_1 = TRUE; + break; + } + } + + if (structPtr == NULL) + return 0xFF; + + memcpy(&structPtr->oam, oam, sizeof(*oam)); + structPtr->tileTag = tileTag; + structPtr->palTag = palTag; + structPtr->x = x; + structPtr->y = y; + structPtr->oam.paletteNum = IndexOfSpritePaletteTag(palTag); + if (priority < 4) + { + structPtr->priority = priority; + structPtr->oam.priority = priority; + } + sub_81523F4(structPtr, arg5); + + return structPtr->id; +} + +u8 sub_81525D0(u8 id) +{ + if (sUnknown_0203ABB8 == NULL || !sUnknown_0203ABB8->unk4[id].unk19_0) + return 0xFF; + + memset(&sUnknown_0203ABB8->unk4[id], 0, sizeof(struct UnkStruct_81520A8)); + sUnknown_0203ABB8->unk4[id].oam.y = 160; + sUnknown_0203ABB8->unk4[id].oam.x = 240; + sUnknown_0203ABB8->unk4[id].unk19_2 = TRUE; + memcpy(&gMain.oamBuffer[id + 64], &gDummyOamData, sizeof(struct OamData)); + return id; +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 8515e91198..f1c821d819 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -591,9 +591,7 @@ gUnknown_0203ABB4: @ 203ABB4 gUnknown_0203ABB5: @ 203ABB5 .space 0x3 -gUnknown_0203ABB8: @ 203ABB8 - .space 0x4 - + .include "src/rom_81520A8.o" .include "src/save.o" .space 0x4 /*unused var?*/ From 0547e260a4d1e89b6efac0c85c276316186d370c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 15 Sep 2018 18:01:20 +0200 Subject: [PATCH 25/28] More of slot machine --- asm/slot_machine.s | 5426 +--------------------------------------- data/slot_machine.s | 207 +- include/field_effect.h | 2 + include/sprite.h | 6 +- src/slot_machine.c | 1989 ++++++++++++++- 5 files changed, 2047 insertions(+), 5583 deletions(-) diff --git a/asm/slot_machine.s b/asm/slot_machine.s index e6828cb707..d700bf5c54 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,5245 +5,9 @@ .text - thumb_func_start sub_8102A64 -sub_8102A64: @ 812BAFC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_085A74C4 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0812BB0E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0812BB0E - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8102A64 - - thumb_func_start sub_812BB34 -sub_812BB34: @ 812BB34 - push {r4,lr} - adds r4, r0, 0 - bl sub_812CF6C - lsls r0, 24 - cmp r0, 0 - beq _0812BB60 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812BB60 - movs r0, 0x2 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _0812BB62 - .pool -_0812BB60: - movs r0, 0 -_0812BB62: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812BB34 - - thumb_func_start sub_812BB68 -sub_812BB68: @ 812BB68 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0812BBBC - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _0812BB8E - movs r0, 0x15 - bl PlaySE -_0812BB8E: - ldr r0, =sSlotMachine - ldr r2, [r0] - ldrh r0, [r2, 0xE] - subs r0, 0x1 - strh r0, [r2, 0xE] - ldrh r3, [r2, 0xC] - movs r0, 0xC - ldrsh r1, [r2, r0] - ldr r0, =0x0000270e - cmp r1, r0 - bgt _0812BBA8 - adds r0, r3, 0x1 - strh r0, [r2, 0xC] -_0812BBA8: - movs r0, 0x8 - strh r0, [r4, 0xA] - ldr r0, =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812BBBC - movs r0, 0x4 - strh r0, [r4, 0xA] -_0812BBBC: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _0812BBF6 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0812BBF6 - movs r0, 0x15 - bl PlaySE - ldr r1, =sSlotMachine - ldr r2, [r1] - ldrh r0, [r2, 0xE] - ldrh r3, [r2, 0xC] - adds r0, r3 - strh r0, [r2, 0xC] - lsls r0, 16 - asrs r0, 16 - ldr r3, =0x0000270f - cmp r0, r3 - ble _0812BBF0 - strh r3, [r2, 0xC] -_0812BBF0: - ldr r1, [r1] - movs r0, 0 - strh r0, [r1, 0xE] -_0812BBF6: - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812BC08 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0812BC08: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812BB68 - - thumb_func_start sub_812BC20 -sub_812BC20: @ 812BC20 - push {lr} - bl sub_812CFB8 - lsls r0, 24 - cmp r0, 0 - beq _0812BC3A - ldr r0, =sub_8102A64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0812BC3A: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812BC20 - - thumb_func_start GetTagOfReelSymbolOnScreenAtPos -GetTagOfReelSymbolOnScreenAtPos: @ 812BC44 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, =sSlotMachine - ldr r0, [r0] - lsls r2, r4, 1 - adds r0, 0x28 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r1, 16 - asrs r1, 16 - adds r0, r1 - movs r1, 0x15 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _0812BC76 - adds r0, 0x15 - lsls r0, 16 - lsrs r1, r0, 16 -_0812BC76: - ldr r2, =gUnknown_085A766E - lsls r1, 16 - asrs r1, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 2 - adds r0, r4 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetTagOfReelSymbolOnScreenAtPos - - thumb_func_start sub_812BC98 -sub_812BC98: @ 812BC98 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - movs r6, 0 - ldr r0, =sSlotMachine - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x1C - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - beq _0812BCC2 - ldr r6, =0x0000ffff -_0812BCC2: - lsls r1, r5, 16 - asrs r1, 16 - lsls r0, r6, 16 - asrs r0, 16 - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl GetTagOfReelSymbolOnScreenAtPos - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812BC98 - - thumb_func_start sub_812BCE8 -sub_812BCE8: @ 812BCE8 - push {lr} - ldr r1, =sSlotMachine - ldr r1, [r1] - movs r2, 0x16 - ldrsh r1, [r1, r2] - lsls r0, 16 - asrs r0, 16 - adds r1, r0 - adds r0, r1, 0 - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _0812BD10 - adds r0, 0x6 - lsls r0, 16 - lsrs r1, r0, 16 -_0812BD10: - ldr r0, =gUnknown_085A76AD - lsls r1, 16 - asrs r1, 16 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .pool - thumb_func_end sub_812BCE8 - - thumb_func_start sub_812BD28 -sub_812BD28: @ 812BD28 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - ldr r0, =sSlotMachine - ldr r6, [r0] - lsrs r5, 23 - adds r4, r6, 0 - adds r4, 0x1C - adds r4, r5 - lsls r1, 16 - asrs r1, 16 - ldrh r0, [r4] - adds r1, r0 - strh r1, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xFC - lsls r1, 1 - bl __modsi3 - strh r0, [r4] - adds r6, 0x28 - adds r6, r5 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x18 - bl __divsi3 - movs r1, 0x15 - subs r1, r0 - strh r1, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812BD28 - - thumb_func_start sub_812BD70 -sub_812BD70: @ 812BD70 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r7, =sSlotMachine - ldr r0, [r7] - lsls r6, r5, 1 - adds r0, 0x1C - adds r0, r6 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r2, r0, 16 - asrs r1, r2, 16 - cmp r1, 0 - beq _0812BDC4 - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - bge _0812BDA6 - lsrs r4, r2, 16 -_0812BDA6: - lsls r1, r4, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_812BD28 - ldr r0, [r7] - adds r0, 0x1C - adds r0, r6 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 -_0812BDC4: - lsls r0, 16 - asrs r0, 16 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812BD70 - - thumb_func_start sub_812BDD4 -sub_812BDD4: @ 812BDD4 - push {r4,lr} - ldr r1, =sSlotMachine - ldr r4, [r1] - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4, 0x14] - adds r0, r1 - strh r0, [r4, 0x14] - movs r1, 0x14 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl __modsi3 - strh r0, [r4, 0x14] - movs r1, 0x14 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl __divsi3 - movs r1, 0x6 - subs r1, r0 - strh r1, [r4, 0x16] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812BDD4 - - thumb_func_start sub_812BE0C -sub_812BE0C: @ 812BE0C - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, =sSlotMachine - ldr r0, [r5] - movs r1, 0x14 - ldrsh r0, [r0, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r2, r0, 16 - asrs r1, r2, 16 - cmp r1, 0 - beq _0812BE4E - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - bge _0812BE36 - lsrs r4, r2, 16 -_0812BE36: - lsls r0, r4, 16 - asrs r0, 16 - bl sub_812BDD4 - ldr r0, [r5] - movs r1, 0x14 - ldrsh r0, [r0, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 -_0812BE4E: - lsls r0, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812BE0C - - thumb_func_start sub_8102DA8 -sub_8102DA8: @ 812BE5C - push {r4-r6,lr} - movs r4, 0 - ldr r5, =sub_812BF2C - ldr r6, =gTasks -_0812BE64: - adds r0, r5, 0 - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - strh r4, [r1, 0x26] - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x3A - adds r1, r4 - strb r0, [r1] - bl _call_via_r5 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0812BE64 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8102DA8 - - thumb_func_start sub_8102DEC -sub_8102DEC: @ 812BEA4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gTasks - ldr r1, =sSlotMachine - ldr r2, [r1] - adds r2, 0x3A - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r3, 0x1 - strh r3, [r0, 0x8] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strh r3, [r0, 0x24] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8102DEC - - thumb_func_start sub_8102E1C -sub_8102E1C: @ 812BEDC - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x3A - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x8] - bx lr - .pool - thumb_func_end sub_8102E1C - - thumb_func_start sub_8102E40 -sub_8102E40: @ 812BF04 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x3A - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x24] - lsls r0, 24 - lsrs r0, 24 - bx lr - .pool - thumb_func_end sub_8102E40 - - thumb_func_start sub_812BF2C -sub_812BF2C: @ 812BF2C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_085A74D0 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0812BF3E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0812BF3E - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812BF2C - - thumb_func_start sub_812BF64 -sub_812BF64: @ 812BF64 - movs r0, 0 - bx lr - thumb_func_end sub_812BF64 - - thumb_func_start sub_812BF68 -sub_812BF68: @ 812BF68 - push {lr} - ldrh r0, [r0, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldr r1, =sSlotMachine - ldr r1, [r1] - movs r2, 0x1A - ldrsh r1, [r1, r2] - bl sub_812BD28 - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812BF68 - - thumb_func_start sub_812BF88 -sub_812BF88: @ 812BF88 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0x8] - ldr r0, =sSlotMachine - ldr r3, [r0] - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x34 - adds r0, r1 - strh r2, [r0] - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x2E - adds r0, r1 - strh r2, [r0] - ldrb r0, [r3, 0xA] - cmp r0, 0 - bne _0812BFF4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _0812BFDC - ldrb r0, [r3, 0x6] - cmp r0, 0 - beq _0812BFDC - ldr r1, =gUnknown_085A74E4 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - cmp r0, 0 - bne _0812BFF4 -_0812BFDC: - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x6] - ldr r1, =gUnknown_085A74F0 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_0812BFF4: - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r1, 0x2E - adds r1, r0 - ldrh r0, [r1] - strh r0, [r4, 0xA] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812BF88 - - thumb_func_start sub_812C01C -sub_812C01C: @ 812C01C - push {r4-r7,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r1, =gUnknown_085A74FC - mov r0, sp - movs r2, 0xA - bl memcpy - ldr r7, =sSlotMachine - ldr r5, [r7] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r6, r0, 1 - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r6 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r0, 0 - beq _0812C068 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1A - ldrsh r1, [r5, r6] - bl sub_812BD70 - b _0812C0A0 - .pool -_0812C068: - adds r0, r5, 0 - adds r0, 0x2E - adds r1, r0, r6 - ldrh r3, [r1] - movs r6, 0 - ldrsh r0, [r1, r6] - cmp r0, 0 - beq _0812C0A4 - subs r0, r3, 0x1 - strh r0, [r1] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1A - ldrsh r1, [r5, r2] - bl sub_812BD28 - ldr r1, [r7] - movs r6, 0x26 - ldrsh r0, [r4, r6] - lsls r0, 1 - adds r1, 0x1C - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r1, 0x18 - bl __modsi3 -_0812C0A0: - lsls r0, 16 - lsrs r2, r0, 16 -_0812C0A4: - cmp r2, 0 - bne _0812C0D2 - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r6, 0x26 - ldrsh r0, [r4, r6] - lsls r0, 1 - adds r1, 0x2E - adds r1, r0 - movs r0, 0 - ldrsh r1, [r1, r0] - cmp r1, 0 - bne _0812C0D2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0xA] - strh r1, [r4, 0xC] -_0812C0D2: - movs r0, 0 - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812C01C - - thumb_func_start sub_812C0E0 -sub_812C0E0: @ 812C0E0 - push {r4,lr} - adds r2, r0, 0 - ldr r4, =sSlotMachine - ldr r1, [r4] - movs r3, 0x26 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r1, 0x22 - adds r1, r0 - ldrh r0, [r2, 0xA] - strh r0, [r1] - ldrh r0, [r2, 0xA] - negs r3, r0 - strh r3, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0812C110 - lsls r0, r3, 16 - asrs r0, 17 - strh r0, [r2, 0xA] -_0812C110: - movs r0, 0xA - ldrsh r3, [r2, r0] - cmp r3, 0 - bne _0812C12A - strh r3, [r2, 0x8] - strh r3, [r2, 0x24] - ldr r1, [r4] - movs r4, 0x26 - ldrsh r0, [r2, r4] - lsls r0, 1 - adds r1, 0x22 - adds r1, r0 - strh r3, [r1] -_0812C12A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812C0E0 - - thumb_func_start sub_812C138 -sub_812C138: @ 812C138 - push {r4,r5,lr} - ldr r4, =sSlotMachine - ldr r0, [r4] - ldrb r0, [r0, 0x4] - bl sub_810250C - lsls r0, 24 - lsrs r3, r0, 24 - adds r5, r3, 0 - ldr r4, [r4] - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _0812C15A - movs r5, 0 - movs r3, 0x1 -_0812C15A: - ldr r1, =gUnknown_085A7508 - movs r2, 0x12 - ldrsh r0, [r4, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r3, 0 - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812C138 - - thumb_func_start sub_812C184 -sub_812C184: @ 812C184 - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 16 - asrs r3, 16 - movs r0, 0 - adds r1, r3, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, r4 - beq _0812C1AC - cmp r0, r5 - bne _0812C1BC -_0812C1AC: - ldr r0, =sSlotMachine - ldr r0, [r0] - strb r1, [r0, 0x7] - movs r0, 0x1 - b _0812C1BE - .pool -_0812C1BC: - movs r0, 0 -_0812C1BE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_812C184 - - thumb_func_start sub_812C1C4 -sub_812C1C4: @ 812C1C4 - push {r4,lr} - movs r1, 0x1 - lsls r0, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _0812C20C - movs r1, 0x2 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _0812C20C - movs r1, 0x3 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0812C210 -_0812C20C: - movs r0, 0x1 - b _0812C212 -_0812C210: - movs r0, 0 -_0812C212: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812C1C4 - - thumb_func_start sub_812C218 -sub_812C218: @ 812C218 - push {lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - ldrb r1, [r0, 0x4] - movs r0, 0xC2 - ands r0, r1 - cmp r0, 0 - bne _0812C230 - movs r0, 0 - b _0812C232 - .pool -_0812C230: - movs r0, 0x1 -_0812C232: - pop {r1} - bx r1 - thumb_func_end sub_812C218 - - thumb_func_start sub_812C238 -sub_812C238: @ 812C238 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - movs r5, 0 - movs r0, 0x2 - mov r8, r0 -_0812C24C: - lsls r0, r5, 16 - asrs r4, r0, 16 - mov r1, r8 - subs r0, r1, r4 - lsls r0, 16 - asrs r0, 16 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_812C184 - lsls r0, 24 - cmp r0, 0 - beq _0812C278 - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x2 - strh r0, [r1, 0x34] - strh r5, [r1, 0x2E] - movs r0, 0x1 - b _0812C286 - .pool -_0812C278: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C24C - movs r0, 0 -_0812C286: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_812C238 - - thumb_func_start sub_812C290 -sub_812C290: @ 812C290 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - bl sub_812C218 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0812C2BE - movs r0, 0 - bl sub_812C1C4 - lsls r0, 24 - cmp r0, 0 - bne _0812C2F4 -_0812C2BE: - movs r7, 0x1 - movs r6, 0 -_0812C2C2: - lsls r0, r7, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - mov r1, r9 - mov r2, r8 - bl sub_812C184 - lsls r0, 24 - cmp r0, 0 - beq _0812C2E8 - ldr r0, =sSlotMachine - ldr r0, [r0] - strh r7, [r0, 0x34] - strh r6, [r0, 0x2E] - movs r0, 0x1 - b _0812C390 - .pool -_0812C2E8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0812C2C2 -_0812C2F4: - movs r7, 0x1 - adds r6, r5, 0 - ldr r0, =sSlotMachine - mov r10, r0 -_0812C2FC: - lsls r5, r7, 16 - cmp r6, 0 - bne _0812C30E - asrs r0, r5, 16 - bl sub_812C1C4 - lsls r0, 24 - cmp r0, 0 - bne _0812C380 -_0812C30E: - movs r0, 0x1 - asrs r4, r5, 16 - subs r0, r4 - lsls r0, 16 - asrs r0, 16 - mov r1, r9 - mov r2, r8 - bl sub_812C184 - lsls r0, 24 - cmp r0, 0 - beq _0812C380 - cmp r4, 0x1 - bne _0812C34C - cmp r6, 0 - bne _0812C33A - movs r0, 0x3 - bl sub_812C1C4 - lsls r0, 24 - cmp r0, 0 - bne _0812C34C -_0812C33A: - mov r0, r10 - ldr r1, [r0] - movs r0, 0x3 - strh r0, [r1, 0x34] - strh r0, [r1, 0x2E] - movs r0, 0x1 - b _0812C390 - .pool -_0812C34C: - asrs r0, r5, 16 - cmp r0, 0x3 - bgt _0812C374 - adds r4, r0, 0x1 - cmp r6, 0 - bne _0812C366 - lsls r0, r4, 16 - asrs r0, 16 - bl sub_812C1C4 - lsls r0, 24 - cmp r0, 0 - bne _0812C374 -_0812C366: - mov r0, r10 - ldr r1, [r0] - movs r0, 0x2 - strh r0, [r1, 0x34] - strh r4, [r1, 0x2E] - movs r0, 0x1 - b _0812C390 -_0812C374: - mov r0, r10 - ldr r1, [r0] - movs r0, 0x1 - strh r0, [r1, 0x34] - strh r7, [r1, 0x2E] - b _0812C390 -_0812C380: - movs r1, 0x80 - lsls r1, 9 - adds r0, r5, r1 - lsrs r7, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C2FC - movs r0, 0 -_0812C390: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_812C290 - - thumb_func_start sub_812C3A0 -sub_812C3A0: @ 812C3A0 - push {lr} - ldr r1, =gUnknown_085A7514 - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812C3A0 - - thumb_func_start sub_812C3C8 -sub_812C3C8: @ 812C3C8 - push {r4-r7,lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r5, 0 - ldrh r7, [r0, 0x34] - movs r1, 0x34 - ldrsh r6, [r0, r1] -_0812C3D6: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r6, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - ldr r1, =sSlotMachine - ldr r1, [r1] - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r1, 0x7] - cmp r0, r2 - bne _0812C400 - strh r7, [r1, 0x36] - strh r5, [r1, 0x30] - movs r0, 0x1 - b _0812C40E - .pool -_0812C400: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C3D6 - movs r0, 0 -_0812C40E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_812C3C8 - - thumb_func_start sub_812C414 -sub_812C414: @ 812C414 - push {r4-r6,lr} - bl sub_812C3C8 - lsls r0, 24 - cmp r0, 0 - beq _0812C476 - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _0812C472 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _0812C472 - cmp r0, 0x4 - beq _0812C472 - movs r5, 0 - movs r6, 0x2 -_0812C43C: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r6, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - ldr r1, =sSlotMachine - ldr r1, [r1] - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r1, 0x7] - cmp r0, r2 - beq _0812C46C - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C43C - b _0812C472 - .pool -_0812C46C: - movs r0, 0x2 - strh r0, [r1, 0x36] - strh r5, [r1, 0x30] -_0812C472: - movs r0, 0x1 - b _0812C4B2 -_0812C476: - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r1, 0x34 - ldrsh r0, [r0, r1] - cmp r0, 0x2 - beq _0812C4B0 - movs r5, 0 - movs r6, 0x2 -_0812C486: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r6, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - ldr r1, =sSlotMachine - ldr r1, [r1] - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r1, 0x7] - cmp r0, r2 - beq _0812C46C - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C486 -_0812C4B0: - movs r0, 0 -_0812C4B2: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812C414 - - thumb_func_start sub_812C4BC -sub_812C4BC: @ 812C4BC - push {r4,lr} - ldr r2, =sSlotMachine - ldr r0, [r2] - ldrb r3, [r0, 0x7] - adds r4, r3, 0 - ldrb r1, [r0, 0x4] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0812C4D8 - movs r3, 0 - cmp r4, 0 - bne _0812C4D8 - movs r3, 0x1 -_0812C4D8: - ldr r1, =gUnknown_085A7520 - ldr r0, [r2] - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r3, 0 - bl _call_via_r1 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812C4BC - - thumb_func_start sub_812C500 -sub_812C500: @ 812C500 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r5, 0 - ldrh r1, [r0, 0x36] - mov r8, r1 - movs r1, 0x36 - ldrsh r6, [r0, r1] -_0812C518: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r6, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_812BC98 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r7 - bne _0812C544 - ldr r0, =sSlotMachine - ldr r0, [r0] - mov r1, r8 - strh r1, [r0, 0x38] - strh r5, [r0, 0x32] - movs r0, 0x1 - b _0812C552 - .pool -_0812C544: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C518 - movs r0, 0 -_0812C552: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_812C500 - - thumb_func_start sub_812C55C -sub_812C55C: @ 812C55C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r2, 0x34 - ldrsh r1, [r0, r2] - movs r2, 0x36 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _0812C59C - adds r0, r6, 0 - bl sub_812C500 - lsls r0, 24 - lsrs r0, 24 - b _0812C5D2 - .pool -_0812C588: - ldr r0, =sSlotMachine - ldr r0, [r0] - strh r5, [r0, 0x32] - mov r1, r8 - strh r1, [r0, 0x38] - movs r0, 0x1 - b _0812C5D2 - .pool -_0812C59C: - movs r2, 0x1 - mov r8, r2 - cmp r1, 0x1 - bne _0812C5A8 - movs r0, 0x3 - mov r8, r0 -_0812C5A8: - movs r5, 0 - mov r7, r8 -_0812C5AC: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_812BC98 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r6 - beq _0812C588 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C5AC - movs r0, 0 -_0812C5D2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_812C55C - - thumb_func_start sub_812C5DC -sub_812C5DC: @ 812C5DC - push {r4,r5,lr} - movs r5, 0 - b _0812C5E8 -_0812C5E2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0812C5E8: - lsls r0, r5, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - bl sub_812C1C4 - lsls r0, 24 - cmp r0, 0 - bne _0812C5E2 - ldr r0, =sSlotMachine - ldr r0, [r0] - strh r5, [r0, 0x2E] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812C5DC - - thumb_func_start sub_812C608 -sub_812C608: @ 812C608 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _0812C616 - movs r0, 0x1 - b _0812C620 -_0812C616: - cmp r0, 0x1 - beq _0812C61E - movs r0, 0 - b _0812C624 -_0812C61E: - movs r0, 0 -_0812C620: - strb r0, [r1] - movs r0, 0x1 -_0812C624: - pop {r1} - bx r1 - thumb_func_end sub_812C608 - - thumb_func_start sub_812C628 -sub_812C628: @ 812C628 - push {lr} - ldr r1, =gUnknown_085A752C - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_812C628 - - thumb_func_start sub_812C64C -sub_812C64C: @ 812C64C - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, =sSlotMachine - ldr r2, [r0] - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0812C6C4 - ldrb r1, [r2, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812C6C4 - ldrh r0, [r2, 0x2E] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_812C608 - lsls r0, 24 - cmp r0, 0 - beq _0812C6C4 - movs r5, 0 - mov r6, sp - movs r7, 0x2 -_0812C68C: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - ldrb r1, [r6] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0812C6B8 - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x2 - strh r0, [r1, 0x36] - strh r5, [r1, 0x30] - b _0812C6C4 - .pool -_0812C6B8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C68C -_0812C6C4: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812C64C - - thumb_func_start j5_08111E84 -j5_08111E84: @ 812C6CC - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, =sSlotMachine - ldr r2, [r4] - ldrh r3, [r2, 0x34] - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0812C744 - ldrb r1, [r2, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812C744 - ldrh r1, [r2, 0x2E] - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_812C608 - lsls r0, 24 - cmp r0, 0 - beq _0812C744 - movs r5, 0 - mov r7, sp - adds r6, r4, 0 -_0812C70C: - ldr r0, [r6] - ldrh r1, [r0, 0x34] - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0812C738 - ldr r0, [r6] - ldrh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r5, [r0, 0x30] - b _0812C744 - .pool -_0812C738: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C70C -_0812C744: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end j5_08111E84 - - thumb_func_start sub_812C74C -sub_812C74C: @ 812C74C - push {r4-r7,lr} - sub sp, 0x4 - ldr r6, =sSlotMachine - ldr r2, [r6] - ldrh r4, [r2, 0x34] - movs r0, 0x34 - ldrsh r3, [r2, r0] - cmp r3, 0 - beq _0812C84A - ldrb r1, [r2, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812C84A - cmp r3, 0x2 - bne _0812C796 - bl j5_08111E84 - b _0812C84A - .pool -_0812C778: - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r1, 0 - strh r5, [r0, 0x36] - strh r1, [r0, 0x30] - b _0812C84A - .pool -_0812C788: - movs r0, 0x2 - strh r0, [r1, 0x36] - adds r0, r4, 0x1 - strh r0, [r1, 0x30] - b _0812C84A -_0812C792: - movs r0, 0x3 - b _0812C824 -_0812C796: - ldrh r1, [r2, 0x2E] - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_812C608 - lsls r0, 24 - cmp r0, 0 - beq _0812C84A - movs r5, 0x2 - ldr r0, [r6] - movs r1, 0x34 - ldrsh r0, [r0, r1] - cmp r0, 0x3 - bne _0812C7C2 - movs r5, 0x3 -_0812C7C2: - movs r6, 0 - mov r7, sp -_0812C7C6: - lsls r0, r5, 16 - asrs r4, r0, 16 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_812BC98 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _0812C778 - lsls r1, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r1, r2 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - lsrs r6, r1, 16 - asrs r1, 16 - cmp r1, 0x1 - ble _0812C7C6 - movs r5, 0x1 - mov r7, sp - ldr r6, =sSlotMachine -_0812C7F8: - ldr r0, [r6] - ldrh r1, [r0, 0x34] - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0812C83E - ldr r1, [r6] - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _0812C830 - cmp r4, 0x2 - ble _0812C788 -_0812C824: - strh r0, [r1, 0x36] - strh r5, [r1, 0x30] - b _0812C84A - .pool -_0812C830: - cmp r4, 0x2 - ble _0812C792 - movs r0, 0x2 - strh r0, [r1, 0x36] - subs r0, r4, 0x1 - strh r0, [r1, 0x30] - b _0812C84A -_0812C83E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C7F8 -_0812C84A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812C74C - - thumb_func_start sub_812C854 -sub_812C854: @ 812C854 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r0, 0 - bne _0812C868 - cmp r1, 0x1 - beq _0812C870 -_0812C868: - cmp r0, 0x1 - bne _0812C874 - cmp r2, 0 - bne _0812C874 -_0812C870: - movs r0, 0x1 - b _0812C876 -_0812C874: - movs r0, 0 -_0812C876: - pop {r1} - bx r1 - thumb_func_end sub_812C854 - - thumb_func_start sub_812C87C -sub_812C87C: @ 812C87C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0 - bne _0812C896 - cmp r1, 0x1 - bne _0812C896 - cmp r2, 0 - beq _0812C8A2 -_0812C896: - cmp r0, 0x1 - bne _0812C8A6 - cmp r1, 0 - bne _0812C8A6 - cmp r2, 0x1 - bne _0812C8A6 -_0812C8A2: - movs r0, 0x1 - b _0812C8A8 -_0812C8A6: - movs r0, 0 -_0812C8A8: - pop {r1} - bx r1 - thumb_func_end sub_812C87C - - thumb_func_start sub_812C8AC -sub_812C8AC: @ 812C8AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0 - bne _0812C8C6 - cmp r1, 0x1 - bne _0812C8C6 - cmp r2, 0 - beq _0812C8F2 -_0812C8C6: - cmp r0, 0x1 - bne _0812C8D2 - cmp r1, 0 - bne _0812C8D2 - cmp r2, 0x1 - beq _0812C8F2 -_0812C8D2: - cmp r0, 0 - bne _0812C8DE - cmp r1, 0 - bne _0812C8DE - cmp r2, 0x1 - beq _0812C8F2 -_0812C8DE: - cmp r0, 0x1 - bne _0812C8EA - cmp r1, 0x1 - bne _0812C8EA - cmp r2, 0 - beq _0812C8F2 -_0812C8EA: - cmp r0, r1 - bne _0812C8F6 - cmp r0, r2 - bne _0812C8F6 -_0812C8F2: - movs r0, 0 - b _0812C8F8 -_0812C8F6: - movs r0, 0x1 -_0812C8F8: - pop {r1} - bx r1 - thumb_func_end sub_812C8AC - - thumb_func_start sub_812C8FC -sub_812C8FC: @ 812C8FC - push {lr} - ldr r1, =gUnknown_085A7538 - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_812C8FC - - thumb_func_start sub_812C920 -sub_812C920: @ 812C920 - push {r4-r7,lr} - movs r6, 0 - ldr r7, =sSlotMachine - ldr r0, [r7] - ldrh r1, [r0, 0x2E] - movs r4, 0x2 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r7] - ldrh r0, [r0, 0x30] - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r5, r1 - bne _0812C994 - movs r4, 0x2 - b _0812C96A - .pool -_0812C960: - lsls r0, r6, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r6, r0, 16 -_0812C96A: - lsls r1, r6, 16 - asrs r1, 16 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_812BC98 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _0812C960 - cmp r5, 0 - bne _0812C98A - cmp r0, 0x1 - beq _0812C960 -_0812C98A: - cmp r5, 0x1 - bne _0812C9F6 - cmp r0, 0 - beq _0812C960 - b _0812C9F6 -_0812C994: - adds r0, r5, 0 - bl sub_812C854 - lsls r0, 24 - cmp r0, 0 - beq _0812C9F6 - ldr r0, [r7] - ldrb r1, [r0, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812C9D2 - movs r7, 0x2 -_0812C9AE: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_812BC98 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _0812C9F6 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812C9AE -_0812C9D2: - movs r6, 0 - movs r7, 0x2 - b _0812C9DE -_0812C9D8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_0812C9DE: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_812BC98 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _0812C9D8 -_0812C9F6: - ldr r0, =sSlotMachine - ldr r0, [r0] - strh r6, [r0, 0x32] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812C920 - - thumb_func_start sub_812CA08 -sub_812CA08: @ 812CA08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, =sSlotMachine - ldr r2, [r4] - movs r5, 0x36 - ldrsh r1, [r2, r5] - cmp r1, 0 - beq _0812CAA4 - ldrh r3, [r2, 0x34] - movs r5, 0x34 - ldrsh r0, [r2, r5] - cmp r0, r1 - bne _0812CAA4 - ldrb r1, [r2, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812CAA4 - ldrh r1, [r2, 0x2E] - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, [r4] - ldrh r1, [r0, 0x36] - ldrh r0, [r0, 0x30] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_812C854 - lsls r0, 24 - cmp r0, 0 - beq _0812CAA4 - movs r5, 0 - b _0812CA7E - .pool -_0812CA78: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0812CA7E: - lsls r6, r5, 16 - asrs r5, r6, 16 - cmp r5, 0x4 - bgt _0812CAA4 - ldr r0, =sSlotMachine - ldr r0, [r0] - ldrh r1, [r0, 0x36] - subs r1, r5 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_812BC98 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r7, r4 - bne _0812CA78 - lsrs r6, 16 - str r6, [sp] -_0812CAA4: - ldr r0, =sSlotMachine - mov r9, r0 -_0812CAA8: - movs r5, 0x1 - movs r1, 0 - mov r8, r1 - ldr r2, [sp] - lsls r2, 16 - mov r10, r2 -_0812CAB4: - mov r1, r9 - ldr r0, [r1] - ldrh r1, [r0, 0x2E] - lsls r5, 16 - asrs r4, r5, 16 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r7, r0, 24 - mov r2, r9 - ldr r0, [r2] - ldrh r1, [r0, 0x30] - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r10 - asrs r0, r1, 16 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x2 - adds r1, r4, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_812C8AC - lsls r0, 24 - cmp r0, 0 - bne _0812CB3C - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_812C87C - lsls r0, 24 - cmp r0, 0 - beq _0812CB28 - mov r2, r9 - ldr r0, [r2] - ldrb r1, [r0, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812CB3C -_0812CB28: - mov r5, r8 - lsls r0, r5, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r0, 16 - mov r8, r0 - b _0812CB4A - .pool -_0812CB3C: - movs r2, 0x80 - lsls r2, 9 - adds r0, r5, r2 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0812CAB4 -_0812CB4A: - mov r5, r8 - cmp r5, 0 - beq _0812CB60 - ldr r1, [sp] - lsls r0, r1, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r0, 16 - str r0, [sp] - b _0812CAA8 -_0812CB60: - ldr r0, =sSlotMachine - ldr r0, [r0] - mov r5, sp - ldrh r5, [r5] - strh r5, [r0, 0x32] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812CA08 - - thumb_func_start sub_812CB80 -sub_812CB80: @ 812CB80 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl sub_812CA08 - ldr r4, =sSlotMachine - ldr r2, [r4] - movs r0, 0x36 - ldrsh r1, [r2, r0] - cmp r1, 0 - beq _0812CC34 - ldrh r3, [r2, 0x34] - movs r5, 0x34 - ldrsh r0, [r2, r5] - cmp r0, r1 - beq _0812CC34 - ldrb r1, [r2, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812CC34 - ldrh r1, [r2, 0x2E] - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [r4] - ldrh r1, [r0, 0x36] - ldrh r0, [r0, 0x30] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_812C854 - lsls r0, 24 - cmp r0, 0 - beq _0812CC34 - movs r1, 0x1 - ldr r0, [r4] - movs r2, 0x34 - ldrsh r0, [r0, r2] - cmp r0, 0x1 - bne _0812CBEE - movs r1, 0x3 -_0812CBEE: - movs r3, 0 - lsls r1, 16 - mov r8, r1 - adds r7, r4, 0 -_0812CBF6: - ldr r0, [r7] - ldrh r2, [r0, 0x32] - lsls r0, r3, 16 - asrs r5, r0, 16 - adds r2, r5, r2 - mov r0, r8 - asrs r1, r0, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_812BC98 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r6, r4 - bne _0812CC28 - ldr r1, [r7] - ldrh r0, [r1, 0x32] - adds r0, r5, r0 - strh r0, [r1, 0x32] - b _0812CC34 - .pool -_0812CC28: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812CBF6 -_0812CC34: - ldr r7, =sSlotMachine -_0812CC36: - ldr r0, [r7] - ldrh r0, [r0, 0x2E] - movs r1, 0x1 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [r7] - ldrh r0, [r0, 0x30] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r7] - ldrh r0, [r0, 0x32] - movs r1, 0x3 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_812BC98 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_812C8AC - lsls r0, 24 - cmp r0, 0 - bne _0812CCB4 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_812C87C - lsls r0, 24 - cmp r0, 0 - beq _0812CCA4 - ldr r0, [r7] - ldrb r1, [r0, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812CCB4 -_0812CCA4: - ldr r1, [r7] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - b _0812CC36 - .pool -_0812CCB4: - ldr r7, =sSlotMachine -_0812CCB6: - ldr r0, [r7] - ldrh r0, [r0, 0x2E] - movs r1, 0x3 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_812BC98 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [r7] - ldrh r0, [r0, 0x30] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_812BC98 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r7] - ldrh r0, [r0, 0x32] - movs r1, 0x1 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_812BC98 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_812C8AC - lsls r0, 24 - cmp r0, 0 - bne _0812CD34 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_812C87C - lsls r0, 24 - cmp r0, 0 - beq _0812CD24 - ldr r0, [r7] - ldrb r1, [r0, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812CD34 -_0812CD24: - ldr r1, [r7] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - b _0812CCB6 - .pool -_0812CD34: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812CB80 - - thumb_func_start sub_8103C14 -sub_8103C14: @ 812CD40 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =sub_812CD74 - adds r0, r5, 0 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x26] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8103C14 - - thumb_func_start sub_812CD74 -sub_812CD74: @ 812CD74 - push {r4,lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_085A7544 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r4, 0x8 - ldrsh r2, [r0, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812CD74 - - thumb_func_start sub_812CDA4 -sub_812CDA4: @ 812CDA4 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, =gUnknown_085A7550 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x73 - str r1, [sp] - movs r1, 0x62 - movs r2, 0x63 - movs r3, 0x72 - bl sub_812FA78 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812CDA4 - - thumb_func_start sub_812CDD8 -sub_812CDD8: @ 812CDD8 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _0812CDF0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0812CDF0: - pop {r0} - bx r0 - thumb_func_end sub_812CDD8 - - thumb_func_start sub_812CDF4 -sub_812CDF4: @ 812CDF4 - push {r4,lr} - sub sp, 0x4 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r1, =gUnknown_085A7550 - movs r2, 0x26 - ldrsh r0, [r0, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x53 - str r1, [sp] - movs r1, 0x42 - movs r2, 0x43 - movs r3, 0x52 - bl sub_812FA78 - adds r0, r4, 0 - bl DestroyTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812CDF4 - - thumb_func_start sub_812CE2C -sub_812CE2C: @ 812CE2C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_085A8408 - lsls r1, r0, 2 - adds r1, r2 - ldr r2, [r1] - ldr r1, =gUnknown_085A8430 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - bl LoadPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_812CE2C - - thumb_func_start sub_812CE54 -sub_812CE54: @ 812CE54 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_085A841C - lsls r1, r0, 2 - adds r1, r2 - ldr r2, [r1] - ldr r1, =gUnknown_085A8430 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - bl LoadPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_812CE54 - - thumb_func_start sub_8103D50 -sub_8103D50: @ 812CE7C - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - ldr r0, =gUnknown_085A843B - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bcs _0812CEA8 - ldr r7, =gUnknown_085A8435 - adds r6, r0, 0 - lsls r5, r1, 1 -_0812CE94: - adds r0, r4, r5 - adds r0, r7 - ldrb r0, [r0] - bl sub_812CE2C - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _0812CE94 -_0812CEA8: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8103D50 - - thumb_func_start sub_8103D8C -sub_8103D8C: @ 812CEB8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - ldr r0, =gUnknown_085A843B - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bcs _0812CEE4 - ldr r7, =gUnknown_085A8435 - adds r6, r0, 0 - lsls r5, r1, 1 -_0812CED0: - adds r0, r4, r5 - adds r0, r7 - ldrb r0, [r0] - bl sub_812CE54 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _0812CED0 -_0812CEE4: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8103D8C - - thumb_func_start sub_8103DC8 -sub_8103DC8: @ 812CEF4 - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gSprites -_0812CEFA: - ldr r0, =sub_812D024 - bl CreateInvisibleSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - strh r4, [r1, 0x2E] - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x44 - adds r1, r4 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0812CEFA - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8103DC8 - - thumb_func_start sub_8103E04 -sub_8103E04: @ 812CF34 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x44 - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x30] - movs r1, 0x4 - strh r1, [r0, 0x32] - strh r2, [r0, 0x34] - strh r2, [r0, 0x36] - movs r1, 0x2 - strh r1, [r0, 0x38] - strh r2, [r0, 0x3C] - bx lr - .pool - thumb_func_end sub_8103E04 - - thumb_func_start sub_812CF6C -sub_812CF6C: @ 812CF6C - push {r4,r5,lr} - movs r2, 0 - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r3, r0, 0 - adds r3, 0x44 - ldr r4, =gSprites -_0812CF7A: - adds r0, r3, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - movs r5, 0x30 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _0812CFA4 - movs r5, 0x32 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _0812CFA4 - movs r0, 0 - b _0812CFB0 - .pool -_0812CFA4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _0812CF7A - movs r0, 0x1 -_0812CFB0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_812CF6C - - thumb_func_start sub_812CFB8 -sub_812CFB8: @ 812CFB8 - push {r4,lr} - movs r4, 0 -_0812CFBC: - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x44 - adds r0, r4 - ldrb r0, [r0] - bl sub_812CFEC - lsls r0, 24 - cmp r0, 0 - bne _0812CFD8 - movs r0, 0 - b _0812CFE4 - .pool -_0812CFD8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0812CFBC - movs r0, 0x1 -_0812CFE4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812CFB8 - - thumb_func_start sub_812CFEC -sub_812CFEC: @ 812CFEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0812D00C - movs r0, 0x1 - b _0812D01E - .pool -_0812D00C: - ldrh r2, [r1, 0x3C] - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0812D01A - movs r0, 0 - strh r0, [r1, 0x30] -_0812D01A: - lsls r0, r2, 24 - lsrs r0, 24 -_0812D01E: - pop {r1} - bx r1 - thumb_func_end sub_812CFEC - - thumb_func_start sub_812D024 -sub_812D024: @ 812D024 - push {r4-r7,lr} - adds r2, r0, 0 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0812D0A6 - ldrh r0, [r2, 0x34] - subs r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0812D08E - movs r0, 0 - strh r0, [r2, 0x3C] - movs r6, 0x1 - strh r6, [r2, 0x34] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x36] - adds r0, r1, r3 - strh r0, [r2, 0x36] - movs r4, 0x4 - ldrh r5, [r2, 0x32] - movs r7, 0x32 - ldrsh r3, [r2, r7] - cmp r3, 0 - beq _0812D060 - movs r4, 0x8 -_0812D060: - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bgt _0812D078 - strh r6, [r2, 0x3C] - negs r0, r1 - strh r0, [r2, 0x38] - cmp r3, 0 - beq _0812D08E - subs r0, r5, 0x1 - strh r0, [r2, 0x32] - b _0812D080 -_0812D078: - cmp r0, r4 - blt _0812D080 - negs r0, r1 - strh r0, [r2, 0x38] -_0812D080: - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0812D08E - ldrh r0, [r2, 0x34] - lsls r0, 1 - strh r0, [r2, 0x34] -_0812D08E: - ldr r1, =gUnknown_085A8430 - movs r3, 0x2E - ldrsh r0, [r2, r3] - adds r0, r1 - ldrb r0, [r0] - ldrh r3, [r2, 0x36] - lsls r3, 24 - lsrs r3, 24 - adds r1, r3, 0 - adds r2, r3, 0 - bl MultiplyPaletteRGBComponents -_0812D0A6: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D024 - - thumb_func_start sub_8103F70 -sub_8103F70: @ 812D0B0 - push {r4,lr} - ldr r4, =sub_812D128 - adds r0, r4, 0 - movs r1, 0x6 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x1 - strh r2, [r1, 0xE] - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8103F70 - - thumb_func_start sub_8103FA0 -sub_8103FA0: @ 812D0E0 - push {lr} - ldr r0, =sub_812D128 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812D10C - movs r0, 0 - b _0812D120 - .pool -_0812D10C: - adds r0, r2, 0 - bl DestroyTask - ldr r0, =gUnknown_085A84AC - ldr r0, [r0] - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x1 -_0812D120: - pop {r1} - bx r1 - .pool - thumb_func_end sub_8103FA0 - - thumb_func_start sub_812D128 -sub_812D128: @ 812D128 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r2, r1, r0 - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0812D166 - movs r0, 0x4 - strh r0, [r2, 0xA] - ldrh r1, [r2, 0xE] - ldrh r3, [r2, 0xC] - adds r0, r1, r3 - strh r0, [r2, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _0812D162 - cmp r0, 0x2 - bne _0812D166 -_0812D162: - negs r0, r1 - strh r0, [r2, 0xE] -_0812D166: - ldr r0, =gUnknown_085A84A0 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D128 - - thumb_func_start sub_8104048 -sub_8104048: @ 812D188 - push {lr} - ldr r0, =sub_812D230 - movs r1, 0x8 - bl CreateTask - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x3E - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8104048 - - thumb_func_start sub_8104064 -sub_8104064: @ 812D1A8 - push {r4,lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3E - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - adds r0, r4, 0 - bl sub_812D394 - movs r1, 0x1 - strh r1, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - strh r1, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8104064 - - thumb_func_start sub_812D1DC -sub_812D1DC: @ 812D1DC - push {r4,lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3E - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - adds r0, r4, 0 - bl sub_812D394 - movs r0, 0x3 - strh r0, [r4, 0x8] - movs r0, 0x1 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D1DC - - thumb_func_start sub_81040C8 -sub_81040C8: @ 812D20C - ldr r2, =gTasks - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3E - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x26] - lsls r0, 24 - lsrs r0, 24 - bx lr - .pool - thumb_func_end sub_81040C8 - - thumb_func_start sub_812D230 -sub_812D230: @ 812D230 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_085A7558 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D230 - - thumb_func_start nullsub_50 -nullsub_50: @ 812D260 - bx lr - thumb_func_end nullsub_50 - - thumb_func_start sub_812D264 -sub_812D264: @ 812D264 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - lsls r0, 19 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - asrs r0, 16 - movs r1, 0x14 - bl sub_812EF00 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812D264 - - thumb_func_start sub_812D28C -sub_812D28C: @ 812D28C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, =gSprites - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812D2FC - ldrh r1, [r4, 0xA] - adds r0, r1, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - movs r3, 0 - movs r2, 0 - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1 - bne _0812D2C4 - movs r3, 0x1 - movs r2, 0x1 - b _0812D2CC - .pool -_0812D2C4: - cmp r1, 0x10 - bne _0812D2CC - movs r3, 0x2 - movs r2, 0x2 -_0812D2CC: - ldr r0, =gUnknown_0203AACC - ldr r0, [r0] - lsls r1, r2, 1 - adds r1, r0 - ldr r2, =gUnknown_085A7568 - lsls r0, r3, 2 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - lsls r3, r5, 16 - movs r0, 0x80 - lsls r0, 15 - adds r3, r0 - lsrs r3, 16 - movs r0, 0x2 - movs r2, 0x2 - bl LoadBgTilemap - ldrb r0, [r4, 0xC] - bl sub_812EF6C - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0x26] -_0812D2FC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D28C - - thumb_func_start sub_812D30C -sub_812D30C: @ 812D30C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0xA] - adds r0, r1, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - movs r3, 0 - movs r2, 0x3 - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1 - bne _0812D32A - movs r3, 0x1 - movs r2, 0x1 - b _0812D332 -_0812D32A: - cmp r1, 0x10 - bne _0812D332 - movs r3, 0x2 - movs r2, 0x2 -_0812D332: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0812D366 - ldr r0, =gUnknown_0203AACC - ldr r0, [r0] - lsls r1, r2, 1 - adds r1, r0 - ldr r0, =gUnknown_085A7568 - lsls r2, r3, 2 - adds r0, 0x2 - adds r2, r0 - ldrh r0, [r2] - strh r0, [r1] - lsls r3, r5, 16 - movs r0, 0x80 - lsls r0, 15 - adds r3, r0 - lsrs r3, 16 - movs r0, 0x2 - movs r2, 0x2 - bl LoadBgTilemap - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] -_0812D366: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _0812D378 - movs r0, 0 - strh r0, [r4, 0xC] -_0812D378: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0812D384 - strh r0, [r4, 0x8] - strh r0, [r4, 0x26] -_0812D384: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D30C - - thumb_func_start sub_812D394 -sub_812D394: @ 812D394 - push {lr} - movs r1, 0x2 - adds r2, r0, 0 - adds r2, 0x8 - movs r3, 0 -_0812D39E: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _0812D39E - pop {r0} - bx r0 - thumb_func_end sub_812D394 - - thumb_func_start sub_810423C -sub_810423C: @ 812D3B4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0x3 - movs r5, 0 - cmp r5, r6 - bge _0812D41E - ldr r7, =gUnknown_085A7568 -_0812D3C4: - movs r3, 0 - movs r1, 0 - lsls r0, r5, 16 - asrs r0, 16 - cmp r0, 0 - bne _0812D3DC - movs r3, 0x1 - movs r1, 0x1 - b _0812D3E4 - .pool -_0812D3DC: - cmp r0, 0xF - bne _0812D3E4 - movs r3, 0x2 - movs r1, 0x2 -_0812D3E4: - ldr r0, =gUnknown_0203AACC - ldr r0, [r0] - lsls r1, 1 - adds r1, r0 - lsls r0, r3, 2 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r3, r4, 16 - asrs r4, r3, 16 - movs r0, 0x80 - lsls r0, 15 - adds r3, r0 - lsrs r3, 16 - movs r0, 0x2 - movs r2, 0x2 - bl LoadBgTilemap - lsls r0, r5, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - adds r4, 0x1 - lsls r4, 16 - lsrs r4, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r6 - blt _0812D3C4 -_0812D41E: - lsls r2, r5, 16 - asrs r0, r2, 16 - cmp r0, 0xF - bgt _0812D484 - ldr r7, =gUnknown_085A756A -_0812D428: - movs r3, 0 - movs r1, 0x3 - asrs r0, r2, 16 - cmp r0, 0 - bne _0812D440 - movs r3, 0x1 - movs r1, 0x1 - b _0812D448 - .pool -_0812D440: - cmp r0, 0xF - bne _0812D448 - movs r3, 0x2 - movs r1, 0x2 -_0812D448: - ldr r0, =gUnknown_0203AACC - ldr r0, [r0] - lsls r1, 1 - adds r1, r0 - lsls r0, r3, 2 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r3, r4, 16 - asrs r4, r3, 16 - movs r0, 0x80 - lsls r0, 15 - adds r3, r0 - lsrs r3, 16 - movs r0, 0x2 - movs r2, 0x2 - bl LoadBgTilemap - lsls r0, r5, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r5, r0, 16 - adds r4, 0x1 - lsls r4, 16 - lsrs r4, 16 - lsls r2, r5, 16 - asrs r0, r2, 16 - cmp r0, 0xF - ble _0812D428 -_0812D484: - ldr r2, =gTasks - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3E - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r6, [r0, 0xA] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_810423C - - thumb_func_start sub_810430C -sub_810430C: @ 812D4AC - push {r4,lr} - ldr r4, =sub_812D4EC - adds r0, r4, 0 - movs r1, 0x7 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_810430C - - thumb_func_start sub_810432C -sub_810432C: @ 812D4CC - push {lr} - ldr r0, =sub_812D4EC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0812D4E4 - movs r0, 0 - b _0812D4E6 - .pool -_0812D4E4: - movs r0, 0x1 -_0812D4E6: - pop {r1} - bx r1 - thumb_func_end sub_810432C - - thumb_func_start sub_812D4EC -sub_812D4EC: @ 812D4EC - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_085A7574 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D4EC - - thumb_func_start sub_812D51C -sub_812D51C: @ 812D51C - push {lr} - ldr r3, =sSlotMachine - ldr r1, [r3] - movs r2, 0 - strb r2, [r1, 0xA] - ldr r1, [r3] - strh r2, [r1, 0x14] - strh r2, [r1, 0x16] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - strh r2, [r0, 0xA] - movs r1, 0x1E - strh r1, [r0, 0xC] - movs r1, 0xA0 - lsls r1, 3 - strh r1, [r0, 0x10] - ldr r0, =gSpriteCoordOffsetX - strh r2, [r0] - ldr r0, =gSpriteCoordOffsetY - strh r2, [r0] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl sub_812DC08 - bl sub_812E474 - bl sub_812E33C - bl sub_812E650 - bl sub_812E70C - bl sub_812E7CC - bl sub_8102680 - bl StopMapMusic - movs r0, 0xC4 - lsls r0, 1 - bl PlayNewMapMusic - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D51C - - thumb_func_start sub_812D594 -sub_812D594: @ 812D594 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r1, =gSpriteCoordOffsetX - ldrh r0, [r1] - subs r0, 0x8 - strh r0, [r1] - ldrh r1, [r4, 0xA] - adds r1, 0x8 - strh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - adds r0, 0xF0 - movs r2, 0xFF - ands r0, r2 - lsrs r5, r0, 3 - ldr r0, =0x000001ff - ands r1, r0 - movs r0, 0x14 - bl SetGpuReg - adds r2, r5, 0 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r2, r0 - beq _0812D5E2 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x12 - bgt _0812D5E2 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 19 - strh r0, [r4, 0xE] - movs r0, 0xE - ldrsh r1, [r4, r0] - adds r0, r2, 0 - bl sub_812DC08 -_0812D5E2: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0xC7 - ble _0812D5F4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xE] -_0812D5F4: - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_812BDD4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D594 - - thumb_func_start sub_812D60C -sub_812D60C: @ 812D60C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_812BDD4 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _0812D636 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_812E934 - bl sub_812EAB0 -_0812D636: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812D60C - - thumb_func_start sub_812D63C -sub_812D63C: @ 812D63C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r7, r0, 0 - ldr r1, =gUnknown_085A75C0 - mov r0, sp - movs r2, 0x4 - bl memcpy - add r0, sp, 0x4 - mov r8, r0 - ldr r1, =gUnknown_085A75C4 - movs r2, 0x8 - bl memcpy - add r6, sp, 0xC - ldr r1, =gUnknown_085A75CC - adds r0, r6, 0 - movs r2, 0x8 - bl memcpy - ldrh r0, [r7, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_812BDD4 - ldrh r0, [r7, 0x10] - subs r0, 0x4 - strh r0, [r7, 0x10] - lsls r0, 16 - asrs r0, 24 - movs r5, 0x4 - subs r5, r0 - lsls r4, r5, 1 - add r8, r4 - mov r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - bl sub_812EA44 - adds r6, r4 - movs r1, 0 - ldrsh r0, [r6, r1] - bl sub_812EBAC - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - mov r2, sp - adds r1, r2, r5 - ldrb r1, [r1] - bl StartSpriteAnimIfDifferent - movs r1, 0x10 - ldrsh r0, [r7, r1] - movs r1, 0x80 - lsls r1, 1 - cmp r0, r1 - bgt _0812D6CC - ldrh r0, [r7, 0x8] - adds r0, 0x1 - strh r0, [r7, 0x8] - strh r1, [r7, 0x10] - movs r0, 0 - strh r0, [r7, 0x12] -_0812D6CC: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D63C - - thumb_func_start sub_812D6EC -sub_812D6EC: @ 812D6EC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_812BDD4 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _0812D730 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] - movs r0, 0x2 - bl sub_812EBAC - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent -_0812D730: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D6EC - - thumb_func_start sub_812D740 -sub_812D740: @ 812D740 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_812BDD4 - ldrb r0, [r4, 0x10] - adds r0, 0x80 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _0812D76C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] -_0812D76C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812D740 - - thumb_func_start sub_812D774 -sub_812D774: @ 812D774 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_812BDD4 - ldrb r0, [r4, 0x10] - adds r0, 0x40 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _0812D7DC - movs r0, 0 - strh r0, [r4, 0x12] - ldr r0, =sSlotMachine - ldr r1, [r0] - ldrb r0, [r1, 0x5] - cmp r0, 0 - beq _0812D7B8 - ldrb r1, [r1, 0xA] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bgt _0812D7D6 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0812D7D4 - .pool -_0812D7B8: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _0812D7C6 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0812D7D4 -_0812D7C6: - ldrh r0, [r4, 0x14] - bl sub_81026DC - lsls r0, 24 - cmp r0, 0 - beq _0812D7D6 - movs r0, 0xE -_0812D7D4: - strh r0, [r4, 0x8] -_0812D7D6: - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] -_0812D7DC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812D774 - - thumb_func_start sub_812D7E4 -sub_812D7E4: @ 812D7E4 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, =sSlotMachine - ldr r0, [r6] - movs r1, 0x14 - ldrsh r0, [r0, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r0, 0 - beq _0812D810 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_812BE0C - b _0812D838 - .pool -_0812D810: - movs r0, 0x1 - bl sub_812BCE8 - ldr r1, [r6] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x5] - cmp r0, r1 - beq _0812D842 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_812BDD4 - ldr r0, [r6] - movs r1, 0x14 - ldrsh r0, [r0, r1] - movs r1, 0x14 - bl __modsi3 -_0812D838: - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r0, [r4, 0x10] - adds r0, 0x40 - strh r0, [r4, 0x10] -_0812D842: - lsls r0, r5, 16 - asrs r5, r0, 16 - cmp r5, 0 - bne _0812D866 - movs r0, 0x1 - bl sub_812BCE8 - ldr r1, =sSlotMachine - ldr r1, [r1] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x5] - cmp r0, r1 - bne _0812D866 - strh r5, [r4, 0x10] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0812D866: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D7E4 - - thumb_func_start sub_812D870 -sub_812D870: @ 812D870 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - adds r0, 0x1 - movs r6, 0 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _0812D914 - bl StopMapMusic - bl sub_812EA7C - bl sub_812EBCC - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r5, =sSlotMachine - ldr r1, [r5] - ldrb r0, [r1, 0x5] - cmp r0, 0 - bne _0812D8D0 - movs r0, 0xA0 - strh r0, [r4, 0x10] - adds r0, r1, 0 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0x5 - bl StartSpriteAnimIfDifferent - ldr r0, =0x00000187 - bl PlayFanfare - b _0812D914 - .pool -_0812D8D0: - movs r0, 0xC0 - strh r0, [r4, 0x10] - adds r0, r1, 0 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - movs r1, 0x4 - bl StartSpriteAnimIfDifferent - ldr r0, [r5] - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2B - strb r6, [r0] - ldr r0, [r5] - ldrb r0, [r0, 0x2] - cmp r0, 0 - beq _0812D90C - bl sub_812D1DC - ldr r0, [r5] - strb r6, [r0, 0x2] -_0812D90C: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare -_0812D914: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812D870 - - thumb_func_start sub_812D920 -sub_812D920: @ 812D920 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0812D938 - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0812D948 -_0812D938: - bl sub_81040C8 - lsls r0, 24 - cmp r0, 0 - bne _0812D948 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0812D948: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812D920 - - thumb_func_start sub_812D950 -sub_812D950: @ 812D950 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r1, =gSpriteCoordOffsetX - ldrh r0, [r1] - subs r0, 0x8 - strh r0, [r1] - ldrh r1, [r4, 0xA] - adds r1, 0x8 - strh r1, [r4, 0xA] - ldrh r0, [r4, 0xE] - adds r0, 0x8 - strh r0, [r4, 0xE] - movs r2, 0xA - ldrsh r0, [r4, r2] - subs r0, 0x8 - movs r2, 0xFF - ands r0, r2 - lsrs r5, r0, 3 - ldr r0, =0x000001ff - ands r1, r0 - movs r0, 0x14 - bl SetGpuReg - ldrh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 19 - cmp r0, 0x19 - bgt _0812D998 - adds r0, r5, 0 - bl sub_812DC50 - b _0812D99E - .pool -_0812D998: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0812D99E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_812D950 - - thumb_func_start sub_812D9A4 -sub_812D9A4: @ 812D9A4 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, =sSlotMachine - ldr r0, [r4] - movs r6, 0 - strb r6, [r0, 0xB] - ldr r1, [r4] - ldrb r0, [r1, 0x5] - strb r0, [r1, 0xA] - ldr r0, =gSpriteCoordOffsetX - strh r6, [r0] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldr r1, [r4] - movs r0, 0x8 - strh r0, [r1, 0x1A] - bl sub_812E3E8 - bl sub_812E82C - bl sub_812E8C4 - ldr r0, [r4] - adds r0, 0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - ldr r0, [r4] - ldrb r0, [r0, 0xA] - cmp r0, 0 - bne _0812DA04 - ldr r0, =sub_812D4EC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _0812DA1A - .pool -_0812DA04: - movs r0, 0x4 - bl sub_8104CAC - bl dp15_jump_random_unknown - strh r0, [r5, 0xA] - strh r6, [r5, 0xC] - strh r6, [r5, 0xE] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_0812DA1A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812D9A4 - - thumb_func_start sub_812DA20 -sub_812DA20: @ 812DA20 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, =sSlotMachine - ldr r5, [r0] - movs r0, 0x1A - ldrsh r1, [r5, r0] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0812DA40 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0812DA66 - .pool -_0812DA40: - movs r1, 0x1C - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _0812DA66 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0812DA66 - ldrh r0, [r5, 0x1A] - lsls r0, 16 - asrs r0, 17 - strh r0, [r5, 0x1A] -_0812DA66: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_812DA20 - - thumb_func_start sub_812DA6C -sub_812DA6C: @ 812DA6C - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _0812DA86 - ldr r0, =sub_812D4EC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0812DA86: - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DA6C - - thumb_func_start sub_812DA90 -sub_812DA90: @ 812DA90 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_812E82C - bl sub_812EA7C - bl sub_812EBCC - bl sub_812EC20 - ldr r5, =gSprites - ldr r3, =sSlotMachine - ldr r0, [r3] - adds r0, 0x4E - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x5 - bl StartSpriteAnimIfDifferent - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - movs r0, 0x4 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - bl StopMapMusic - ldr r0, =0x00000187 - bl PlayFanfare - movs r0, 0xB2 - bl PlaySE - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DA90 - - thumb_func_start sub_812DB04 -sub_812DB04: @ 812DB04 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r1, =gSpriteCoordOffsetY - ldrh r0, [r4, 0x10] - strh r0, [r1] - ldrh r1, [r4, 0x10] - movs r0, 0x16 - bl SetGpuReg - ldrh r1, [r4, 0x12] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812DB26 - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] -_0812DB26: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - movs r1, 0x1F - ands r0, r1 - cmp r0, 0 - bne _0812DB3C - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 17 - strh r0, [r4, 0x10] -_0812DB3C: - movs r0, 0x10 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _0812DB7A - bl sub_812EC70 - bl sub_812EC94 - bl sub_812E5A8 - bl sub_812EDC0 - ldr r2, =gSprites - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x4E - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - strh r5, [r4, 0x12] -_0812DB7A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DB04 - - thumb_func_start sub_812DB8C -sub_812DB8C: @ 812DB8C - push {r4,lr} - adds r4, r0, 0 - ldr r1, =gSpriteCoordOffsetY - movs r0, 0 - strh r0, [r1] - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - bl sub_812EEA8 - lsls r0, 24 - cmp r0, 0 - beq _0812DBB2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_812EECC -_0812DBB2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DB8C - - thumb_func_start sub_812DBBC -sub_812DBBC: @ 812DBBC - push {lr} - ldr r1, =gSpriteCoordOffsetX - movs r0, 0 - strh r0, [r1] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - bl sub_812E3E8 - bl sub_812E8F8 - bl sub_812E8C4 - bl sub_812ED8C - ldr r0, =sub_812D4EC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DBBC - - thumb_func_start sub_812DC08 -sub_812DC08: @ 812DC08 - push {r4-r6,lr} - movs r2, 0x4 - lsls r1, 16 - asrs r6, r1, 16 - lsls r0, 16 - asrs r5, r0, 16 -_0812DC14: - lsls r4, r2, 16 - asrs r4, 16 - subs r0, r4, 0x4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6, r1 - lsls r1, 1 - ldr r0, =gUnknown_085A96E0 - adds r1, r0 - lsls r3, r4, 5 - adds r3, r5, r3 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x1 - movs r2, 0x2 - bl LoadBgTilemap - adds r4, 0x1 - lsls r4, 16 - lsrs r2, r4, 16 - asrs r4, 16 - cmp r4, 0xE - ble _0812DC14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DC08 - - thumb_func_start sub_812DC50 -sub_812DC50: @ 812DC50 - push {r4,r5,lr} - movs r4, 0x4 - lsls r0, 16 - asrs r5, r0, 16 -_0812DC58: - lsls r3, r4, 5 - adds r3, r5, r3 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x1 - ldr r1, =gUnknown_085A9898 - movs r2, 0x2 - bl LoadBgTilemap - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xE - bls _0812DC58 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DC50 - - thumb_func_start sub_8104AB8 -sub_8104AB8: @ 812DC80 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =sub_812DCD4 - adds r0, r5, 0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8104AB8 - - thumb_func_start sub_8104AEC -sub_8104AEC: @ 812DCB4 - push {lr} - ldr r0, =sub_812DCD4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0812DCCC - movs r0, 0 - b _0812DCCE - .pool -_0812DCCC: - movs r0, 0x1 -_0812DCCE: - pop {r1} - bx r1 - thumb_func_end sub_8104AEC - - thumb_func_start sub_812DCD4 -sub_812DCD4: @ 812DCD4 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_085A75D4 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DCD4 - - thumb_func_start sub_812DD04 -sub_812DD04: @ 812DD04 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812DD04 - - thumb_func_start sub_812DD28 -sub_812DD28: @ 812DD28 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812DD3E - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_0812DD3E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DD28 - - thumb_func_start sub_812DD48 -sub_812DD48: @ 812DD48 - push {r4,lr} - adds r4, r0, 0 - bl sub_8104DA4 - bl sub_812FAF4 - ldr r0, =gUnknown_085A7444 - bl AddWindow - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DD48 - - thumb_func_start sub_812DD78 -sub_812DD78: @ 812DD78 - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - ldr r0, =gUnknown_085A744C - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r0, =gText_ReelTimeHelp - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x5 - bl AddTextPrinterParameterized3 - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DD78 - - thumb_func_start sub_812DDC4 -sub_812DDC4: @ 812DDC4 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _0812DE08 - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0x1 - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0x1 - bl RemoveWindow - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0812DE08: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DDC4 - - thumb_func_start sub_812DE14 -sub_812DE14: @ 812DE14 - push {r4,lr} - adds r4, r0, 0 - bl sub_812F968 - movs r0, 0x3 - bl ShowBg - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812DE14 - - thumb_func_start sub_812DE30 -sub_812DE30: @ 812DE30 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_8104CAC - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812DE30 - - thumb_func_start sub_812DE48 -sub_812DE48: @ 812DE48 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, =sSlotMachine - ldr r0, [r0] - ldrb r0, [r0, 0x2] - bl sub_810423C - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DE48 - - thumb_func_start sub_812DE7C -sub_812DE7C: @ 812DE7C - push {lr} - ldr r0, =sub_812DCD4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_812DE7C - - thumb_func_start sub_8104C5C -sub_8104C5C: @ 812DE94 - push {lr} - ldr r0, =sub_812E0B0 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3D - strb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 - ldr r1, =0x0000ffff - strh r1, [r0, 0xA] - movs r1, 0x4 - adds r2, r0, 0 - adds r2, 0x8 - movs r3, 0x40 -_0812DEC0: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _0812DEC0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8104C5C - - thumb_func_start sub_8104CAC -sub_8104CAC: @ 812DEE4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8104DA4 - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks - adds r7, r0, r1 - strh r4, [r7, 0xA] - movs r6, 0 - ldr r1, =gUnknown_085A7A04 - lsls r5, r4, 2 - adds r0, r5, r1 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xFF - beq _0812DF52 - mov r8, r1 -_0812DF1A: - mov r0, r8 - adds r4, r5, r0 - ldr r0, [r4] - lsls r2, r6, 2 - adds r2, r0 - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - movs r3, 0x2 - ldrsh r2, [r2, r3] - bl sub_812EF98 - lsls r0, 24 - lsrs r0, 24 - adds r2, r6, 0x4 - lsls r2, 1 - adds r1, r7, 0 - adds r1, 0x8 - adds r1, r2 - strh r0, [r1] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, [r4] - lsls r0, r6, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812DF1A -_0812DF52: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8104CAC - - thumb_func_start sub_812DF68 -sub_812DF68: @ 812DF68 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r1 - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 - mov r12, r0 - movs r5, 0x4 - lsls r4, 16 - asrs r6, r4, 16 - lsls r2, 16 - lsls r3, 16 -_0812DF96: - lsls r0, r5, 1 - mov r1, r12 - adds r1, 0x8 - adds r4, r1, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bne _0812DFC4 - str r6, [sp] - adds r0, r7, 0 - mov r1, r8 - asrs r2, 16 - asrs r3, 16 - bl sub_812EFDC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - b _0812DFCE - .pool -_0812DFC4: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _0812DF96 -_0812DFCE: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812DF68 - - thumb_func_start sub_8104DA4 -sub_8104DA4: @ 812DFDC - push {r4-r6,lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _0812E008 - ldr r0, =gUnknown_085A7A20 - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_0812E008: - movs r5, 0x4 - adds r6, r4, 0 - adds r6, 0x8 -_0812E00E: - lsls r0, r5, 1 - adds r4, r6, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _0812E02E - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0x40 - strh r0, [r4] -_0812E02E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _0812E00E - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8104DA4 - - thumb_func_start sub_8104E18 -sub_8104E18: @ 812E054 - push {r4,r5,lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 - movs r2, 0x4 - adds r3, r0, 0 - adds r3, 0x8 - ldr r4, =gSprites -_0812E070: - lsls r0, r2, 1 - adds r1, r3, r0 - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, 0x40 - beq _0812E09C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r5, 0x3C - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _0812E09C - movs r0, 0 - b _0812E0A8 - .pool -_0812E09C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _0812E070 - movs r0, 0x1 -_0812E0A8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8104E18 - - thumb_func_start sub_812E0B0 -sub_812E0B0: @ 812E0B0 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_085A7610 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_812E0B0 - - thumb_func_start nullsub_51 -nullsub_51: @ 812E0E0 - bx lr - thumb_func_end nullsub_51 - - thumb_func_start sub_8104EA8 -sub_8104EA8: @ 812E0E4 - push {r4-r7,lr} - movs r6, 0 - movs r0, 0x30 -_0812E0EA: - movs r4, 0 - lsls r5, r0, 16 - lsls r7, r6, 16 -_0812E0F0: - ldr r0, =gUnknown_085A7CE0 - asrs r1, r5, 16 - movs r2, 0 - movs r3, 0xE - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - ldrb r0, [r1, 0x5] - movs r2, 0xC - orrs r0, r2 - strb r0, [r1, 0x5] - strh r6, [r1, 0x2E] - strh r4, [r1, 0x30] - ldr r0, =0x0000ffff - strh r0, [r1, 0x34] - lsls r0, r4, 16 - movs r1, 0xC0 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x77 - ble _0812E0F0 - movs r2, 0x80 - lsls r2, 9 - adds r1, r7, r2 - movs r2, 0xA0 - lsls r2, 14 - adds r0, r5, r2 - lsrs r0, 16 - lsrs r6, r1, 16 - asrs r1, 16 - cmp r1, 0x2 - ble _0812E0EA - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8104EA8 - - thumb_func_start sub_812E154 -sub_812E154: @ 812E154 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =sSlotMachine - ldr r4, [r0] - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x1C - adds r1, r0 - ldrh r0, [r5, 0x30] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - movs r1, 0x78 - bl __modsi3 - strh r0, [r5, 0x32] - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r1, 1 - adds r4, 0x22 - adds r4, r1 - ldrh r1, [r4] - adds r1, 0x1C - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r4, [r5, 0x2E] - lsls r4, 24 - lsrs r4, 24 - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl GetTagOfReelSymbolOnScreenAtPos - lsls r0, 24 - lsrs r0, 24 - bl GetSpriteTileStartByTag - adds r1, r5, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r5, 0 - bl SetSpriteSheetFrameTileNum - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812E154 - - thumb_func_start sub_8104F8C -sub_8104F8C: @ 812E1C8 - push {r4-r6,lr} - movs r4, 0xCB - movs r5, 0x1 - ldr r6, =0x0000270f -_0812E1D0: - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - movs r1, 0x17 - movs r2, 0 - adds r3, r5, 0 - bl sub_812E230 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 17 - subs r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r6 - ble _0812E1D0 - movs r4, 0xEB - movs r5, 0x1 - ldr r6, =0x0000270f -_0812E1FE: - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - movs r1, 0x17 - movs r2, 0x1 - adds r3, r5, 0 - bl sub_812E230 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 17 - subs r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r6 - ble _0812E1FE - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8104F8C - - thumb_func_start sub_812E230 -sub_812E230: @ 812E230 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - adds r4, r3, 0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =gUnknown_085A7CF8 - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0xD - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - mov r0, r8 - strh r0, [r2, 0x2E] - strh r4, [r2, 0x30] - lsls r4, 16 - asrs r4, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 1 - strh r0, [r2, 0x32] - ldr r0, =0x0000ffff - strh r0, [r2, 0x34] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812E230 - - thumb_func_start sub_812E2A8 -sub_812E2A8: @ 812E2A8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =sSlotMachine - ldr r1, [r0] - ldrh r2, [r1, 0xC] - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _0812E2BC - ldrh r2, [r1, 0xE] -_0812E2BC: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, r2 - beq _0812E2F6 - strh r2, [r4, 0x34] - ldrh r1, [r4, 0x32] - adds r0, r2, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r1, [r4, 0x30] - adds r0, r2, 0 - bl __udivsi3 - lsls r0, 16 - movs r3, 0xE0 - lsls r3, 11 - adds r0, r3 - lsrs r2, r0, 16 - adds r0, r2, 0 - bl GetSpriteTileStartByTag - adds r1, r4, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r4, 0 - bl SetSpriteSheetFrameTileNum -_0812E2F6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812E2A8 - - thumb_func_start sub_81050C4 -sub_81050C4: @ 812E300 - push {lr} - ldr r0, =gUnknown_085A7D10 - movs r1, 0x58 - movs r2, 0x48 - movs r3, 0xF - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, =gUnknown_085A7FC0 - bl SetSubspriteTables - pop {r0} - bx r0 - .pool - thumb_func_end sub_81050C4 - - thumb_func_start sub_812E33C -sub_812E33C: @ 812E33C + + thumb_func_start sub_8105100 +sub_8105100: @ 812E33C push {r4,r5,lr} sub sp, 0x18 ldr r4, =gUnknown_0203AAE4 @@ -5280,7 +44,7 @@ _0812E350: str r1, [r2, 0x20] strh r3, [r2, 0x24] mov r1, sp - ldr r0, =gUnknown_085A7D28 + ldr r0, =gSpriteTemplate_83ED45C ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} @@ -5320,10 +84,10 @@ _0812E350: pop {r0} bx r0 .pool - thumb_func_end sub_812E33C + thumb_func_end sub_8105100 - thumb_func_start sub_812E3E8 -sub_812E3E8: @ 812E3E8 + thumb_func_start sub_810514C +sub_810514C: @ 812E3E8 push {r4,lr} ldr r0, =sSlotMachine ldr r0, [r0] @@ -5347,7 +111,7 @@ _0812E410: pop {r0} bx r0 .pool - thumb_func_end sub_812E3E8 + thumb_func_end sub_810514C thumb_func_start sub_812E424 sub_812E424: @ 812E424 @@ -5394,8 +158,8 @@ _0812E46A: .pool thumb_func_end sub_812E424 - thumb_func_start sub_812E474 -sub_812E474: @ 812E474 + thumb_func_start sub_81051C0 +sub_81051C0: @ 812E474 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -5528,10 +292,10 @@ _0812E510: pop {r0} bx r0 .pool - thumb_func_end sub_812E474 + thumb_func_end sub_81051C0 - thumb_func_start sub_812E5A8 -sub_812E5A8: @ 812E5A8 + thumb_func_start sub_8105284_ +sub_8105284_: @ 812E5A8 push {r4,r5,lr} sub sp, 0x18 ldr r4, =gUnknown_0203AAF0 @@ -5601,10 +365,10 @@ _0812E5BC: pop {r0} bx r0 .pool - thumb_func_end sub_812E5A8 + thumb_func_end sub_8105284_ - thumb_func_start sub_812E650 -sub_812E650: @ 812E650 + thumb_func_start sub_81052EC +sub_81052EC: @ 812E650 push {r4-r6,lr} movs r4, 0 movs r5, 0 @@ -5658,10 +422,10 @@ _0812E656: pop {r0} bx r0 .pool - thumb_func_end sub_812E650 + thumb_func_end sub_81052EC - thumb_func_start sub_812E6C4 -sub_812E6C4: @ 812E6C4 + thumb_func_start sub_810535C +sub_810535C: @ 812E6C4 push {r4,lr} adds r4, r0, 0 ldr r0, =sSlotMachine @@ -5682,7 +446,7 @@ sub_812E6C4: @ 812E6C4 bl __divsi3 lsls r0, 16 asrs r0, 16 - bl sub_812BCE8 + bl sub_8102C48 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -5692,10 +456,10 @@ sub_812E6C4: @ 812E6C4 pop {r0} bx r0 .pool - thumb_func_end sub_812E6C4 + thumb_func_end sub_810535C - thumb_func_start sub_812E70C -sub_812E70C: @ 812E70C + thumb_func_start sub_81053A0 +sub_81053A0: @ 812E70C push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -5780,10 +544,10 @@ sub_812E70C: @ 812E70C pop {r0} bx r0 .pool - thumb_func_end sub_812E70C + thumb_func_end sub_81053A0 - thumb_func_start sub_812E7CC -sub_812E7CC: @ 812E7CC + thumb_func_start sub_810545C +sub_810545C: @ 812E7CC push {r4,lr} ldr r0, =gUnknown_085A7DB8 movs r1, 0xB8 @@ -5822,10 +586,10 @@ sub_812E7CC: @ 812E7CC pop {r0} bx r0 .pool - thumb_func_end sub_812E7CC + thumb_func_end sub_810545C - thumb_func_start sub_812E82C -sub_812E82C: @ 812E82C + thumb_func_start sub_81054B8 +sub_81054B8: @ 812E82C push {r4,lr} ldr r0, =sSlotMachine ldr r0, [r0] @@ -5893,10 +657,10 @@ _0812E88A: pop {r0} bx r0 .pool - thumb_func_end sub_812E82C + thumb_func_end sub_81054B8 - thumb_func_start sub_812E8C4 -sub_812E8C4: @ 812E8C4 + thumb_func_start sub_8105524 +sub_8105524: @ 812E8C4 push {r4,lr} movs r4, 0 _0812E8C8: @@ -5920,10 +684,10 @@ _0812E8C8: pop {r0} bx r0 .pool - thumb_func_end sub_812E8C4 + thumb_func_end sub_8105524 - thumb_func_start sub_812E8F8 -sub_812E8F8: @ 812E8F8 + thumb_func_start sub_8105554 +sub_8105554: @ 812E8F8 push {r4,lr} ldr r0, =sSlotMachine ldr r0, [r0] @@ -5947,10 +711,10 @@ _0812E920: pop {r0} bx r0 .pool - thumb_func_end sub_812E8F8 + thumb_func_end sub_8105554 - thumb_func_start sub_812E934 -sub_812E934: @ 812E934 + thumb_func_start sub_8105578 +sub_8105578: @ 812E934 push {r4-r6,lr} mov r6, r10 mov r5, r9 @@ -6032,7 +796,7 @@ sub_812E934: @ 812E934 pop {r0} bx r0 .pool - thumb_func_end sub_812E934 + thumb_func_end sub_8105578 thumb_func_start sub_812E9E8 sub_812E9E8: @ 812E9E8 @@ -6086,8 +850,8 @@ _0812EA3E: bx r0 thumb_func_end sub_812E9E8 - thumb_func_start sub_812EA44 -sub_812EA44: @ 812EA44 + thumb_func_start sub_8105688 +sub_8105688: @ 812EA44 push {r4,lr} lsls r0, 16 lsrs r0, 16 @@ -6113,10 +877,10 @@ sub_812EA44: @ 812EA44 pop {r0} bx r0 .pool - thumb_func_end sub_812EA44 + thumb_func_end sub_8105688 - thumb_func_start sub_812EA7C -sub_812EA7C: @ 812EA7C + thumb_func_start sub_81056C0 +sub_81056C0: @ 812EA7C push {r4,lr} movs r4, 0 _0812EA80: @@ -6140,10 +904,10 @@ _0812EA80: pop {r0} bx r0 .pool - thumb_func_end sub_812EA7C + thumb_func_end sub_81056C0 - thumb_func_start sub_812EAB0 -sub_812EAB0: @ 812EAB0 + thumb_func_start sub_81056F0 +sub_81056F0: @ 812EAB0 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -6212,7 +976,7 @@ sub_812EAB0: @ 812EAB0 pop {r0} bx r0 .pool - thumb_func_end sub_812EAB0 + thumb_func_end sub_81056F0 thumb_func_start sub_812EB48 sub_812EB48: @ 812EB48 @@ -6262,8 +1026,8 @@ _0812EB9A: .pool thumb_func_end sub_812EB48 - thumb_func_start sub_812EBAC -sub_812EBAC: @ 812EBAC + thumb_func_start sub_81057E8 +sub_81057E8: @ 812EBAC ldr r3, =gSprites ldr r1, =sSlotMachine ldr r1, [r1] @@ -6276,10 +1040,10 @@ sub_812EBAC: @ 812EBAC strh r0, [r1, 0x3C] bx lr .pool - thumb_func_end sub_812EBAC + thumb_func_end sub_81057E8 - thumb_func_start sub_812EBCC -sub_812EBCC: @ 812EBCC + thumb_func_start sub_8105804 +sub_8105804: @ 812EBCC push {r4,lr} movs r0, 0x7 bl IndexOfSpritePaletteTag @@ -6314,10 +1078,10 @@ _0812EBEA: pop {r0} bx r0 .pool - thumb_func_end sub_812EBCC + thumb_func_end sub_8105804 - thumb_func_start sub_812EC20 -sub_812EC20: @ 812EC20 + thumb_func_start sub_8105854 +sub_8105854: @ 812EC20 push {lr} ldr r0, =gUnknown_085A7E00 movs r1, 0xA8 @@ -6345,7 +1109,7 @@ sub_812EC20: @ 812EC20 pop {r0} bx r0 .pool - thumb_func_end sub_812EC20 + thumb_func_end sub_8105854 thumb_func_start sub_812EC64 sub_812EC64: @ 812EC64 @@ -6356,8 +1120,8 @@ sub_812EC64: @ 812EC64 .pool thumb_func_end sub_812EC64 - thumb_func_start sub_812EC70 -sub_812EC70: @ 812EC70 + thumb_func_start sub_81058A0 +sub_81058A0: @ 812EC70 push {lr} ldr r0, =sSlotMachine ldr r0, [r0] @@ -6372,10 +1136,10 @@ sub_812EC70: @ 812EC70 pop {r0} bx r0 .pool - thumb_func_end sub_812EC70 + thumb_func_end sub_81058A0 - thumb_func_start sub_812EC94 -sub_812EC94: @ 812EC94 + thumb_func_start sub_81058C4 +sub_81058C4: @ 812EC94 push {r4,r5,lr} sub sp, 0x8 ldr r1, =gUnknown_085A7616 @@ -6436,7 +1200,7 @@ _0812ECA4: pop {r0} bx r0 .pool - thumb_func_end sub_812EC94 + thumb_func_end sub_81058C4 thumb_func_start sub_812ED20 sub_812ED20: @ 812ED20 @@ -6495,8 +1259,8 @@ _0812ED84: bx r0 thumb_func_end sub_812ED20 - thumb_func_start sub_812ED8C -sub_812ED8C: @ 812ED8C + thumb_func_start sub_81059B8 +sub_81059B8: @ 812ED8C push {r4,lr} movs r4, 0 _0812ED90: @@ -6520,10 +1284,10 @@ _0812ED90: pop {r0} bx r0 .pool - thumb_func_end sub_812ED8C + thumb_func_end sub_81059B8 - thumb_func_start sub_812EDC0 -sub_812EDC0: @ 812EDC0 + thumb_func_start sub_81059E8 +sub_81059E8: @ 812EDC0 push {r4,lr} ldr r0, =gUnknown_085A7E30 movs r1, 0xA8 @@ -6558,7 +1322,7 @@ sub_812EDC0: @ 812EDC0 pop {r0} bx r0 .pool - thumb_func_end sub_812EDC0 + thumb_func_end sub_81059E8 thumb_func_start sub_812EE14 sub_812EE14: @ 812EE14 @@ -6640,8 +1404,8 @@ _0812EE90: bx r0 thumb_func_end sub_812EE14 - thumb_func_start sub_812EEA8 -sub_812EEA8: @ 812EEA8 + thumb_func_start sub_8105ACC +sub_8105ACC: @ 812EEA8 ldr r2, =gSprites ldr r0, =sSlotMachine ldr r0, [r0] @@ -6656,10 +1420,10 @@ sub_812EEA8: @ 812EEA8 lsrs r0, 24 bx lr .pool - thumb_func_end sub_812EEA8 + thumb_func_end sub_8105ACC - thumb_func_start sub_812EECC -sub_812EECC: @ 812EECC + thumb_func_start sub_8105AEC +sub_8105AEC: @ 812EECC push {r4,lr} ldr r0, =sSlotMachine ldr r0, [r0] @@ -6680,10 +1444,10 @@ sub_812EECC: @ 812EECC pop {r0} bx r0 .pool - thumb_func_end sub_812EECC + thumb_func_end sub_8105AEC - thumb_func_start sub_812EF00 -sub_812EF00: @ 812EF00 + thumb_func_start sub_8105B1C +sub_8105B1C: @ 812EF00 push {r4,lr} adds r3, r0, 0 adds r2, r1, 0 @@ -6720,7 +1484,7 @@ sub_812EF00: @ 812EF00 pop {r1} bx r1 .pool - thumb_func_end sub_812EF00 + thumb_func_end sub_8105B1C thumb_func_start sub_812EF54 sub_812EF54: @ 812EF54 @@ -6739,8 +1503,8 @@ _0812EF68: bx r0 thumb_func_end sub_812EF54 - thumb_func_start sub_812EF6C -sub_812EF6C: @ 812EF6C + thumb_func_start sub_8105B88 +sub_8105B88: @ 812EF6C push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -6759,10 +1523,10 @@ sub_812EF6C: @ 812EF6C pop {r0} bx r0 .pool - thumb_func_end sub_812EF6C + thumb_func_end sub_8105B88 - thumb_func_start sub_812EF98 -sub_812EF98: @ 812EF98 + thumb_func_start sub_8105BB4 +sub_8105BB4: @ 812EF98 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 @@ -6785,7 +1549,7 @@ sub_812EF98: @ 812EF98 str r2, [sp] adds r1, r5, 0 adds r2, r4, 0 - bl sub_812EFDC + bl sub_8105BF8 lsls r0, 24 lsrs r0, 24 add sp, 0x4 @@ -6793,10 +1557,10 @@ sub_812EF98: @ 812EF98 pop {r1} bx r1 .pool - thumb_func_end sub_812EF98 + thumb_func_end sub_8105BB4 - thumb_func_start sub_812EFDC -sub_812EFDC: @ 812EFDC + thumb_func_start sub_8105BF8 +sub_8105BF8: @ 812EFDC push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -6866,7 +1630,7 @@ _0812F056: pop {r1} bx r1 .pool - thumb_func_end sub_812EFDC + thumb_func_end sub_8105BF8 thumb_func_start sub_812F078 sub_812F078: @ 812F078 @@ -7762,7 +2526,7 @@ _0812F6E0: movs r0, 0x5 movs r2, 0xD0 movs r3, 0x74 - bl sub_812DF68 + bl sub_8104D30 ldr r2, [r6] adds r1, r2, 0 adds r1, 0x58 @@ -8194,8 +2958,8 @@ _0812FA32: .pool thumb_func_end sub_812F980 - thumb_func_start sub_812FA78 -sub_812FA78: @ 812FA78 + thumb_func_start sub_81065A8 +sub_81065A8: @ 812FA78 push {r4-r6,lr} adds r4, r0, 0 ldr r5, [sp, 0x10] @@ -8249,10 +3013,10 @@ sub_812FA78: @ 812FA78 pop {r0} bx r0 .pool - thumb_func_end sub_812FA78 + thumb_func_end sub_81065A8 - thumb_func_start sub_812FAF4 -sub_812FAF4: @ 812FAF4 + thumb_func_start sub_81065DC +sub_81065DC: @ 812FAF4 push {lr} ldr r1, =gUnknown_08DCEC70 movs r2, 0xA0 @@ -8265,7 +3029,7 @@ sub_812FAF4: @ 812FAF4 pop {r0} bx r0 .pool - thumb_func_end sub_812FAF4 + thumb_func_end sub_81065DC thumb_func_start SlotMachineSetup_9_0 SlotMachineSetup_9_0: @ 812FB14 diff --git a/data/slot_machine.s b/data/slot_machine.s index 0896d6348a..bbbba9652f 100644 --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -4,173 +4,6 @@ .section .rodata .align 2, 0 -gUnknown_085A7424:: @ 85A7424 - .4byte 0x1F8 - .4byte 0x11C5 - .4byte 0x21D6 - .4byte 0x11E7 - -gUnknown_085A7434:: @ 85A7434 - window_template 0, 2, 15, 0x1B, 4, 15, 0x194 - null_window_template - -gUnknown_085A7444:: @ 85A7444 - window_template 0, 1, 3, 20, 13, 13, 1 - -gUnknown_085A744C:: @ 85A744C - .byte 3, 1, 2, 0 - -gUnknown_083ECAAC:: @ 85A7450 - .4byte sub_8101D5C - .4byte sub_8101D8C - .4byte sub_8101DB0 - .4byte sub_8101DF4 - .4byte sub_8101E10 - .4byte sub_8101E3C - .4byte sub_8101F44 - .4byte sub_8101F60 - .4byte sub_8101F88 - .4byte sub_8101FA4 - .4byte sub_8102008 - .4byte sub_8102034 - .4byte sub_8102058 - .4byte sub_8102090 - .4byte sub_81020C8 - .4byte sub_81021E0 - .4byte sub_81021FC - .4byte sub_8102264 - .4byte sub_81022A0 - .4byte sub_81022CC - .4byte sub_81022F0 - .4byte sub_8102318 - .4byte sub_8102344 - .4byte sub_810239C - .4byte sub_81023B8 - .4byte sub_81023E0_ - .4byte sub_81023FC - .4byte sub_8102424 - .4byte sub_8102460 - -gUnknown_085A74C4:: @ 85A74C4 - .4byte sub_812BB34 - .4byte sub_812BB68 - .4byte sub_812BC20 - -gUnknown_085A74D0:: @ 85A74D0 - .4byte sub_812BF64 - .4byte sub_812BF68 - .4byte sub_812BF88 - .4byte sub_812C01C - .4byte sub_812C0E0 - -gUnknown_085A74E4:: @ 85A74E4 - .4byte sub_812C138 - .4byte sub_812C3A0 - .4byte sub_812C4BC - -gUnknown_085A74F0:: @ 85A74F0 - .4byte sub_812C5DC - .4byte sub_812C628 - .4byte sub_812C8FC - -gUnknown_085A74FC:: @ 85A74FC - .2byte 2, 4, 4, 4, 8, 0 - -gUnknown_085A7508:: @ 85A7508 - .4byte sub_812C238 - .4byte sub_812C290 - .4byte sub_812C290 - -gUnknown_085A7514:: @ 85A7514 - .4byte sub_812C3C8 - .4byte sub_812C3C8 - .4byte sub_812C414 - -gUnknown_085A7520:: @ 85A7520 - .4byte sub_812C500 - .4byte sub_812C500 - .4byte sub_812C55C - -gUnknown_085A752C:: @ 85A752C - .4byte sub_812C64C - .4byte j5_08111E84 - .4byte sub_812C74C - -gUnknown_085A7538:: @ 85A7538 - .4byte sub_812C920 - .4byte sub_812CA08 - .4byte sub_812CB80 - -gUnknown_085A7544:: @ 85A7544 - .4byte sub_812CDA4 - .4byte sub_812CDD8 - .4byte sub_812CDF4 - -gUnknown_085A7550:: @ 85A7550 - .2byte 5, 10, 15, 0 - -gUnknown_085A7558:: @ 85A7558 - .4byte nullsub_50 - .4byte sub_812D264 - .4byte sub_812D28C - .4byte sub_812D30C - -gUnknown_085A7568:: @ 85A7568 - .2byte 0x9E - -gUnknown_085A756A:: @ 85A756A - .2byte 0x6E, 0x9F, 0x6F, 0xAF, 0x7F - -gUnknown_085A7574:: @ 85A7574 - .4byte sub_812D51C - .4byte sub_812D594 - .4byte sub_812D60C - .4byte sub_812D63C - .4byte sub_812D6EC - .4byte sub_812D740 - .4byte sub_812D774 - .4byte sub_812D7E4 - .4byte sub_812D870 - .4byte sub_812D920 - .4byte sub_812D950 - .4byte sub_812D9A4 - .4byte sub_812DA20 - .4byte sub_812DA6C - .4byte sub_812DA90 - .4byte sub_812DB04 - .4byte sub_812DB8C - .4byte sub_812D950 - .4byte sub_812DBBC - -gUnknown_085A75C0:: @ 85A75C0 - .byte 1, 1, 2, 2 - -gUnknown_085A75C4:: @ 85A75C4 - .2byte 0x40, 0x30, 0x18, 8 - -gUnknown_085A75CC:: @ 85A75CC - .2byte 10, 8, 6, 4 - -gUnknown_085A75D4:: @ 85A75D4 - .4byte sub_812DD04 - .4byte sub_812DD28 - .4byte sub_812DD48 - .4byte sub_812DD28 - .4byte sub_812DD78 - .4byte sub_812DD28 - .4byte sub_812DDC4 - .4byte sub_812DD28 - .4byte sub_812DE14 - .4byte sub_812DD28 - .4byte sub_812DE30 - .4byte sub_812DD28 - .4byte sub_812DE48 - .4byte sub_812DD28 - .4byte sub_812DE7C - -gUnknown_085A7610:: @ 85A7610 - .4byte nullsub_51 - gUnknown_085A7614:: @ 85A7614 .2byte 16 @@ -195,12 +28,12 @@ gUnknown_085A764E:: @ 85A764E gUnknown_085A765E:: @ 85A765E .2byte 0xA0, 0xC0, 0xE0, 0x68, 0x50, 0x40, 0x30, 0x18 -gUnknown_085A766E:: @ 85A766E +sReelSymbols:: @ 85A766E .byte 0, 4, 2, 6, 5, 3, 1, 3, 4, 5, 6, 2, 0, 5, 3, 6, 2, 1, 5, 3, 6 .byte 0, 4, 6, 3, 2, 4, 6, 5, 5, 3, 1, 3, 6, 4, 2, 3, 6, 4, 3, 6, 4 .byte 0, 5, 1, 6, 3, 2, 6, 3, 5, 2, 6, 3, 2, 5, 6, 3, 2, 5, 6, 3, 4 -gUnknown_085A76AD:: @ 85A76AD +gUnknown_083ECCF1:: @ 85A76AD .byte 1, 0, 5, 4, 3, 2, 0 gUnknown_083ECCF8:: @ 85A76B4 @@ -505,7 +338,7 @@ gUnknown_085A79DC:: @ 85A79DC .byte 0 .2byte 0 -gUnknown_085A7A04:: @ 85A7A04 +gUnknown_083ED048:: @ 85A7A04 .4byte gUnknown_085A7954 .4byte gUnknown_085A7964 .4byte gUnknown_085A7980 @@ -514,7 +347,7 @@ gUnknown_085A7A04:: @ 85A7A04 .4byte gUnknown_085A79DC .4byte gUnknown_085A79B4 -gUnknown_085A7A20:: @ 85A7A20 +gUnknown_083ED064:: @ 85A7A20 .4byte sub_812F7C0 .4byte sub_812F784 .4byte sub_812F794 @@ -820,16 +653,16 @@ gUnknown_085A7C8C:: @ 85A7C8C gUnknown_085A7CDC:: @ 85A7CDC .4byte gUnknown_085A7C8C -gUnknown_085A7CE0:: @ 85A7CE0 - spr_template 0, 0, gUnknown_085A7A5C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_812E154 +gSpriteTemplate_83ED414:: @ 85A7CE0 + spr_template 0, 0, gUnknown_085A7A5C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_8104F18 -gUnknown_085A7CF8:: @ 85A7CF8 - spr_template 7, 4, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_812E2A8 +gSpriteTemplate_83ED42C:: @ 85A7CF8 + spr_template 7, 4, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_810506C -gUnknown_085A7D10:: @ 85A7D10 +gSpriteTemplate_83ED444:: @ 85A7D10 spr_template 17, 0, gUnknown_085A7A74, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy -gUnknown_085A7D28:: @ 85A7D28 +gSpriteTemplate_83ED45C:: @ 85A7D28 spr_template 0xFFFF, 1, gUnknown_085A7A74, gUnknown_085A7C00, NULL, gDummySpriteAffineAnimTable, sub_812E424 gUnknown_085A7D40:: @ 85A7D40 @@ -842,7 +675,7 @@ gUnknown_085A7D70:: @ 85A7D70 spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7D88:: @ 85A7D88 - spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7C18, gUnknown_085A7A7C, gDummySpriteAffineAnimTable, sub_812E6C4 + spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7C18, gUnknown_085A7A7C, gDummySpriteAffineAnimTable, sub_810535C gUnknown_085A7DA0:: @ 85A7DA0 spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AAC, gDummySpriteAffineAnimTable, SpriteCallbackDummy @@ -916,7 +749,7 @@ gUnknown_085A7FB0:: @ 85A7FB0 subsprite -64, 0, 3, 0, 64x64 subsprite 0, 0, 3, 0, 64x64 -gUnknown_085A7FC0:: @ 85A7FC0 +gSubspriteTables_83ED704:: @ 85A7FC0 .4byte 4, gUnknown_085A7FB0 gUnknown_085A7FC8:: @ 85A7FC8 @@ -1272,29 +1105,29 @@ gUnknown_085A8402:: @ 85A8402 gUnknown_085A8404:: @ 85A8404 .byte 0xBF, 0x4A, 0, 0 -gUnknown_085A8408:: @ 85A8408 +gUnknown_083EDD08:: @ 85A8408 .4byte gUnknown_085A83FC .4byte gUnknown_085A83FE .4byte gUnknown_085A8400 .4byte gUnknown_085A8402 .4byte gUnknown_085A8404 -gUnknown_085A841C:: @ 85A841C +gUnknown_083EDD1C:: @ 85A841C .4byte gSlotMachineMenu_Pal + 0x94 .4byte gSlotMachineMenu_Pal + 0x96 .4byte gSlotMachineMenu_Pal + 0x98 .4byte gSlotMachineMenu_Pal + 0x9A .4byte gSlotMachineMenu_Pal + 0x9C -gUnknown_085A8430:: @ 85A8430 +gUnknown_083EDD30:: @ 85A8430 .byte 0x4A, 0x4B, 0x4C, 0x4E, 0x4D -gUnknown_085A8435:: @ 85A8435 +gUnknown_083EDD35:: @ 85A8435 .byte 0, 0 .byte 1, 2 .byte 3, 4 -gUnknown_085A843B:: @ 85A843B +gUnknown_083EDD3B:: @ 85A843B .byte 1, 2, 2 gUnknown_085A843E:: @ 85A843E @@ -1307,12 +1140,12 @@ gUnknown_085A847E:: @ 85A847E .incbin "graphics/slot_machine/85A847E.gbapal" .align 2 -gUnknown_085A84A0:: @ 85A84A0 +gUnknown_083EDDA0:: @ 85A84A0 .4byte gUnknown_085A843E .4byte gUnknown_085A845E .4byte gUnknown_085A847E -gUnknown_085A84AC:: @ 85A84AC +gUnknown_083EDDAC:: @ 85A84AC .4byte gSlotMachineMenu_Pal + 0x20 gUnknown_085A84B0:: @ 85A84B0 @@ -1351,7 +1184,7 @@ gUnknown_085A8544:: @ 85A8544 gUnknown_085A858C:: @ 85A858C .incbin "graphics/slot_machine/reel_time_gfx.4bpp.lz" -gUnknown_085A96E0:: @ 85A96E0 +sReelTimeWindowTilemap:: @ 85A96E0 @if anyone knows what this tilemap is please do share .incbin "graphics/slot_machine/85A96E0.bin" diff --git a/include/field_effect.h b/include/field_effect.h index cdabd5c992..e05ded6214 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -236,4 +236,6 @@ void sub_80B9CDC(s16*, u8); void sub_80B7CAC(struct Sprite*); void sub_80B7A58(struct Sprite*); +void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b); + #endif //GUARD_FIELD_EFFECTS_H diff --git a/include/sprite.h b/include/sprite.h index 26263737b1..8fc45d5018 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -160,6 +160,8 @@ struct SubspriteTable struct Sprite; +typedef void (*SpriteCallback)(struct Sprite *); + struct SpriteTemplate { u16 tileTag; @@ -168,7 +170,7 @@ struct SpriteTemplate const union AnimCmd *const *anims; const struct SpriteFrameImage *images; const union AffineAnimCmd *const *affineAnims; - void (*callback)(struct Sprite *); + SpriteCallback callback; }; struct Sprite @@ -179,7 +181,7 @@ struct Sprite /*0x10*/ const union AffineAnimCmd *const *affineAnims; /*0x14*/ const struct SpriteTemplate *template; /*0x18*/ const struct SubspriteTable *subspriteTables; - /*0x1C*/ void (*callback)(struct Sprite *); + /*0x1C*/ SpriteCallback callback; /*0x20*/ struct Coords16 pos1; /*0x24*/ struct Coords16 pos2; diff --git a/src/slot_machine.c b/src/slot_machine.c index 5edd31e998..4ee4a2fe4f 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -22,6 +22,44 @@ #include "text_window.h" #include "constants/rgb.h" #include "main_menu.h" +#include "bg.h" +#include "window.h" + +extern u8 gOamLimit; +extern u16 *gUnknown_0203AAC8; +extern u16 *gUnknown_0203AACC; +extern u16 *gUnknown_0203AAD0; +extern u16 *gUnknown_0203AADC; +extern void *gUnknown_0203AAF4; +extern void *gUnknown_0203AAF8; +extern void *gUnknown_0203AAFC; +extern void *gUnknown_0203AB00; +extern void *gUnknown_0203AB04; +extern void *gUnknown_0203AB08; +extern void *gUnknown_0203AB0C; +extern void *gUnknown_0203AB10; +extern void *gUnknown_0203AB14; +extern void *gUnknown_0203AB18; +extern void *gUnknown_0203AB1C; +extern void *gUnknown_0203AB20; +extern void *gUnknown_0203AB24; +extern void *gUnknown_0203AB28; +extern void *gUnknown_0203AAE4; +extern void *gUnknown_0203AAE8; +extern void *gUnknown_0203AAEC; +extern void *gUnknown_0203AAF0; +extern void *gUnknown_0203AAD4; +extern void *gUnknown_0203AAD8; +extern void *gUnknown_0203AAE0; +extern void *gUnknown_0203AB2C; +extern void *gUnknown_0203AB30; + +// Text +extern const u8 gText_YouDontHaveThreeCoins[]; +extern const u8 gText_QuitTheGame[]; +extern const u8 gText_YouveGot9999Coins[]; +extern const u8 gText_YouveRunOutOfCoins[]; +extern const u8 gText_ReelTimeHelp[]; enum { @@ -220,7 +258,7 @@ bool8 sub_81020C8(struct Task *task); /*static*/void sub_8103EE4(struct Sprite *sprite); /*static*/void sub_8103F70(void); /*static*/bool8 sub_8103FA0(void); -/*static*/void sub_8103FE8(u8 taskId); +/*static*/void sub_8103FE8_(u8 taskId); /*static*/void sub_8104048(void); /*static*/void sub_8104064(u8 pikaPower); /*static*/bool8 sub_81040C8(void); @@ -229,7 +267,7 @@ bool8 sub_81020C8(struct Task *task); /*static*/void sub_810411C(struct Task *task); /*static*/void sub_8104144(struct Task *task); /*static*/void sub_81041AC(struct Task *task); -/*static*/void sub_810421C(struct Task *task); +/*static*/void sub_812D394(struct Task *task); /*static*/void sub_810423C(u8 pikaPower); /*static*/void sub_810430C(void); /*static*/bool8 sub_810432C(void); @@ -261,13 +299,16 @@ bool8 sub_81020C8(struct Task *task); /*static*/void sub_8104B60(struct Task *task); /*static*/void sub_8104B80(struct Task *task); /*static*/void sub_8104BC8(struct Task *task); +/*static*/void sub_812DD78(struct Task *task); /*static*/void sub_8104BFC(struct Task *task); +/*static*/void sub_812DE14(struct Task *task); +/*static*/void sub_812DE30(struct Task *task); /*static*/void sub_8104C44(struct Task *task); /*static*/void sub_8104C5C(void); /*static*/void sub_8104CAC(u8 arg0); /*static*/bool8 sub_8104E18(void); /*static*/void nullsub_69(struct Task *task); -/*static*/void sub_8104E74(u8 taskId); +/*static*/void sub_8104E74_(u8 taskId); /*static*/void sub_8104EA8(void); /*static*/void sub_8104F8C(void); /*static*/void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); @@ -275,7 +316,7 @@ bool8 sub_81020C8(struct Task *task); /*static*/void sub_8105100(void); /*static*/void sub_810514C(void); /*static*/void sub_81051C0(void); -/*static*/void sub_8105284(void); +/*static*/void sub_8105284_(void); /*static*/void sub_81052EC(void); /*static*/void sub_81053A0(void); /*static*/void sub_810545C(void); @@ -304,12 +345,291 @@ bool8 sub_81020C8(struct Task *task); /*static*/void sub_81064B8(void); /*static*/void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); /*static*/void sub_81065DC(void); +/*static*/void sub_812F908(void); +/*static*/void sub_812F958(void); +/*static*/void sub_812F7E4(void); +/*static*/void sub_812F968(void); +void LoadSlotMachineWheelOverlay(void); +u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); + +// Const rom data. /*static*/extern const struct UnkStruct1 *const gUnknown_083ED048[]; /*static*/extern const u16 gPalette_83EDE24[]; /*static*/extern const u8 gUnknown_083ECD04[][3]; /*static*/extern const u8 gUnknown_083ECE3A[]; /*static*/extern const u16 gUnknown_083ECE42[]; /*static*/extern const u16 gUnknown_083ECE48[]; +extern const u16 gUnknown_083ECE12[]; +extern const u16 gUnknown_083ECE1C[][2]; +extern const u16 gUnknown_083ECE30[]; +extern const u16 sSlotMatchFlags[]; +extern const u16 sSlotPayouts[]; +extern const s16 gUnknown_083ECCF8[][2]; +extern const struct BgTemplate gUnknown_085A7424[4]; +extern const struct WindowTemplate gUnknown_085A7434[]; +extern const u8 gUnknown_083ECD16[][6]; +extern const u8 gUnknown_083ECD28[][6]; +extern const u8 gUnknown_083ECD46[][17]; +extern const u8 gUnknown_083ECDAC[][17]; +extern const u8 sSym2Match[]; +extern const u8 gUnknown_083ECCF1[]; +extern const u8 sReelSymbols[][21]; +extern const u16 *const gUnknown_083EDD08[]; +extern const u16 *const gUnknown_083EDD1C[]; +extern const u8 gUnknown_083EDD30[]; +extern const u8 gUnknown_083EDD35[][2]; +extern const u8 gUnknown_083EDD3B[]; +extern const u16 *const gUnknown_083EDDA0[]; +extern const u16 *const gUnknown_083EDDAC; +extern const u16 sReelTimeWindowTilemap[]; +extern const u16 gUnknown_085A9898[]; +extern void (*const gUnknown_083ED064[])(void); + +const struct BgTemplate gUnknown_085A7424[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, +}; + +const struct WindowTemplate gUnknown_085A7434[] = +{ + {0, 2, 15, 0x1B, 4, 15, 0x194}, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate gUnknown_085A7444 = +{ + 0, 1, 3, 20, 13, 13, 1 +}; + +const u8 gUnknown_085A744C[] = {3, 1, 2, 0}; + +bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = +{ + sub_8101D5C, + sub_8101D8C, + sub_8101DB0, + sub_8101DF4, + sub_8101E10, + sub_8101E3C, + sub_8101F44, + sub_8101F60, + sub_8101F88, + sub_8101FA4, + sub_8102008, + sub_8102034, + sub_8102058, + sub_8102090, + sub_81020C8, + sub_81021E0, + sub_81021FC, + sub_8102264, + sub_81022A0, + sub_81022CC, + sub_81022F0, + sub_8102318, + sub_8102344, + sub_810239C, + sub_81023B8, + sub_81023E0_, + sub_81023FC, + sub_8102424, + sub_8102460, +}; + +bool8 (*const gUnknown_083ECB20[])(struct Task *task) = +{ + sub_8102A9C, + sub_8102AD0, + sub_8102B80 +}; + +bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = +{ + sub_8102EA0, + sub_8102EA4, + sub_8102EC0, + sub_8102F4C, + sub_8103008 +}; + +bool8 (*const gUnknown_083ECB40[])(void) = +{ + sub_810305C, + sub_81032C0, + sub_81033DC +}; + +void (*const gUnknown_083ECB4C[])(void) = +{ + sub_81034F4, + sub_8103540, + sub_810380C +}; + +const u16 gUnknown_085A74FC[] = {2, 4, 4, 4, 8}; + +bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = +{ + sub_8103154, + sub_81031B4, + sub_81031B4 +}; + +bool8 (*const gUnknown_083ECB70[])(void) = +{ + sub_81032E8, + sub_81032E8, + sub_810333C +}; + +bool8 (*const gUnknown_083ECB7C[])(u8 a0) = +{ + sub_810341C, + sub_810341C, + sub_810347C +}; + +void (*const gUnknown_083ECB88[])(void) = +{ + sub_8103564, + j5_08111E84, + sub_8103668 +}; + +void (*const gUnknown_083ECB94[])(void) = +{ + sub_8103830, + sub_8103910, + sub_8103A78 +}; + +void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = +{ + sub_8103C78, + sub_8103CAC, + sub_8103CC8 +}; + +const s16 gUnknown_083ECBAC[] = {5, 10, 15}; + +void (*const gUnknown_083ECBB4[])(struct Task *task) = +{ + nullsub_68, + sub_810411C, + sub_8104144, + sub_81041AC +}; + +const u16 gUnknown_083ECBC4[][2] = +{ + {0x9e, 0x6e}, + {0x9f, 0x6f}, + {0xaf, 0x7f}, +}; + +void (*const gUnknown_083ECBD0[])(struct Task *task) = +{ + sub_810437C, + sub_81043EC, + sub_8104468, + sub_8104498, + sub_8104548, + sub_8104598, + sub_81045CC, + sub_810463C, + sub_81046C0, + sub_8104764, + sub_8104794, + sub_81047EC, + sub_8104860, + sub_81048A8, + sub_81048CC, + sub_8104940, + sub_81049C8, + sub_8104794, + sub_81049F8 +}; + +const u8 gUnknown_085A75C0[] = {1, 1, 2, 2}; +const s16 gUnknown_085A75C4[] = {0x40, 0x30, 0x18, 0x08}; +const s16 gUnknown_085A75CC[] = {10, 8, 6, 4}; + +void (*const gUnknown_083ECC30[])(struct Task *task) = +{ + sub_8104B3C, + sub_8104B60, + sub_8104B80, + sub_8104B60, + sub_812DD78, + sub_8104B60, + sub_8104BC8, + sub_8104B60, + sub_812DE14, + sub_8104B60, + sub_812DE30, + sub_8104B60, + sub_8104BFC, + sub_8104B60, + sub_8104C44, +}; + +void (*const gUnknown_083ECC54[])(struct Task *task) = +{ + nullsub_69, +}; + +extern const struct SpriteTemplate gSpriteTemplate_83ED504; +extern const struct SpriteTemplate gSpriteTemplate_83ED4EC; +extern const struct SubspriteTable gSubspriteTables_83ED7D4[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED4D4; +extern const struct SubspriteTable gSubspriteTables_83ED7B4[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED4BC; +extern const struct SpriteTemplate gSpriteTemplate_83ED4A4; +extern const struct SubspriteTable gSubspriteTables_83ED78C[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED474; +extern const struct SpriteTemplate gSpriteTemplate_83ED48C; +extern const struct SubspriteTable gSubspriteTables_83ED73C[]; +extern const struct SubspriteTable gSubspriteTables_83ED75C[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED444; +extern const struct SubspriteTable gSubspriteTables_83ED704[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED42C; +extern const struct SpriteTemplate gSpriteTemplate_83ED414; +extern const struct SpriteTemplate gSpriteTemplate_83ED45C; // code #define tState data[0] @@ -442,9 +762,6 @@ void SlotMachineDummyTask(u8 taskId) { } -extern const struct BgTemplate gUnknown_085A7424[4]; -extern const struct WindowTemplate gUnknown_085A7434[]; - void SlotMachineSetup_0_0(void) { SetVBlankCallback(NULL); @@ -493,8 +810,6 @@ void SlotMachineSetup_2_1(void) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } -extern const s16 gUnknown_083ECCF8[][2]; - void SlotMachineSetup_0_1(void) { u8 i; @@ -528,8 +843,6 @@ void SlotMachineSetup_0_1(void) sub_80EDE70(GetCoins()); } -extern u8 gOamLimit; - void SlotMachineSetup_3_0(void) { ResetPaletteFade(); @@ -539,34 +852,6 @@ void SlotMachineSetup_3_0(void) ResetTasks(); } -extern u16 *gUnknown_0203AAC8; -extern u16 *gUnknown_0203AACC; -extern u16 *gUnknown_0203AAD0; -extern u16 *gUnknown_0203AADC; -extern void *gUnknown_0203AAF4; -extern void *gUnknown_0203AAF8; -extern void *gUnknown_0203AAFC; -extern void *gUnknown_0203AB00; -extern void *gUnknown_0203AB04; -extern void *gUnknown_0203AB08; -extern void *gUnknown_0203AB0C; -extern void *gUnknown_0203AB10; -extern void *gUnknown_0203AB14; -extern void *gUnknown_0203AB18; -extern void *gUnknown_0203AB1C; -extern void *gUnknown_0203AB20; -extern void *gUnknown_0203AB24; -extern void *gUnknown_0203AB28; -extern void *gUnknown_0203AAE4; -extern void *gUnknown_0203AAE8; -extern void *gUnknown_0203AAEC; -extern void *gUnknown_0203AAF0; -extern void *gUnknown_0203AAD4; -extern void *gUnknown_0203AAD8; -extern void *gUnknown_0203AAE0; -extern void *gUnknown_0203AB2C; -extern void *gUnknown_0203AB30; - void SlotMachineSetup_4_0(void) { gUnknown_0203AACC = Alloc(8); @@ -582,10 +867,6 @@ void SlotMachineSetup_4_0(void) gUnknown_0203AAD0[6] = 0x20BF; } -/*static*/void sub_812F908(void); -/*static*/void sub_812F958(void); -/*static*/void sub_812F7E4(void); - void SlotMachineSetup_5_0(void) { sub_812F908(); @@ -617,8 +898,6 @@ void sub_8101D04(void) sub_8101D24(CreateTask(sub_8101D24, 0)); } -extern bool8 (*const gUnknown_083ECAAC[])(struct Task *task); - void sub_8101D24(u8 taskId) { while (gUnknown_083ECAAC[sSlotMachine->state](gTasks + taskId)) @@ -717,11 +996,6 @@ bool8 sub_8101E3C(struct Task *task) return FALSE; } -extern const u8 gText_YouDontHaveThreeCoins[]; -extern const u8 gText_QuitTheGame[]; -extern const u8 gText_YouveGot9999Coins[]; -extern const u8 gText_YouveRunOutOfCoins[]; - bool8 sub_8101F44(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); @@ -1139,11 +1413,6 @@ bool8 sub_8102540_(void) return FALSE; } -extern const u8 gUnknown_083ECD16[][6]; -extern const u8 gUnknown_083ECD28[][6]; -extern const u8 gUnknown_083ECD46[][17]; -extern const u8 gUnknown_083ECDAC[][17]; - u8 sub_8102578(void) { s16 i; @@ -1210,12 +1479,6 @@ void sub_8102680(void) sSlotMachine->unk05 = i; } -extern const u16 gUnknown_083ECE12[]; -extern const u16 gUnknown_083ECE1C[][2]; -extern const u16 gUnknown_083ECE30[]; -extern const u16 sSlotMatchFlags[]; -extern const u16 sSlotPayouts[]; - bool8 sub_81026DC(u16 a0) { u16 rval = Random() & 0xff; @@ -1337,8 +1600,6 @@ void CheckMatch_Diagonals(void) } } -extern const u8 sSym2Match[]; - u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) @@ -1364,3 +1625,1605 @@ bool8 sub_8102A44(void) else return FALSE; } + +void sub_8102A64(u8 taskId) +{ + while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)) + ; +} + +bool8 sub_8102A9C(struct Task *task) +{ + if (sub_8103E38()) + { + task->data[0]++; + if (sSlotMachine->payout == 0) + { + task->data[0] = 2; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_8102AD0(struct Task *task) +{ + if (!task->data[1]--) + { + if (IsFanfareTaskInactive()) + PlaySE(SE_PIN); + sSlotMachine->payout--; + if (sSlotMachine->coins < 9999) + sSlotMachine->coins++; + task->data[1] = 8; + if (gMain.heldKeys & A_BUTTON) + task->data[1] = 4; + } + if (IsFanfareTaskInactive() && gMain.newKeys & START_BUTTON) + { + PlaySE(SE_PIN); + sSlotMachine->coins += sSlotMachine->payout; + if (sSlotMachine->coins > 9999) + sSlotMachine->coins = 9999; + sSlotMachine->payout = 0; + } + if (sSlotMachine->payout == 0) + task->data[0]++; + return FALSE; +} + +bool8 sub_8102B80(struct Task *task) +{ + if (sub_8103E7C()) + DestroyTask(FindTaskIdByFunc(sub_8102A64)); + return FALSE; +} + +u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) +{ + s16 offset = (sSlotMachine->reelPositions[x] + y) % 21; + if (offset < 0) + offset += 21; + return sReelSymbols[x][offset]; +} + +u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) +{ + s16 r6 = 0; + s16 result = sSlotMachine->unk1C[x] % 24; + if (result != 0) + r6 = -1; + return GetTagOfReelSymbolOnScreenAtPos(x, y + r6); +} + +u8 sub_8102C48(s16 a0) +{ + s16 r1 = (sSlotMachine->unk16 + a0) % 6; + if (r1 < 0) + r1 += 6; + return gUnknown_083ECCF1[r1]; +} + +void sub_8102C84(u8 a0, s16 a1) +{ + sSlotMachine->unk1C[a0] += a1; + sSlotMachine->unk1C[a0] %= 504; + sSlotMachine->reelPositions[a0] = 21 - sSlotMachine->unk1C[a0] / 24; +} + +s16 sub_8102CCC(u8 a0, s16 a1) +{ + s16 r1 = sSlotMachine->unk1C[a0] % 24; + if (r1 != 0) + { + if (r1 < a1) + a1 = r1; + sub_8102C84(a0, a1); + r1 = sSlotMachine->unk1C[a0] % 24; + } + return r1; +} + +void sub_8102D28(s16 a0) +{ + sSlotMachine->unk14 += a0; + sSlotMachine->unk14 %= 120; + sSlotMachine->unk16 = 6 - sSlotMachine->unk14 / 20; +} + +s16 sub_8102D5C(s16 a0) +{ + s16 r1 = sSlotMachine->unk14 % 20; + if (r1 != 0) + { + if (r1 < a0) + a0 = r1; + sub_8102D28(a0); + r1 = sSlotMachine->unk14 % 20; + } + return r1; +} + +void sub_8102DA8(void) +{ + u8 i; + for (i = 0; i < 3; i++) + { + u8 taskId = CreateTask(sub_8102E68, 2); + gTasks[taskId].data[15] = i; + sSlotMachine->reelTasks[i] = taskId; + sub_8102E68(taskId); + } +} + +void sub_8102DEC(u8 a0) +{ + gTasks[sSlotMachine->reelTasks[a0]].data[0] = 1; + gTasks[sSlotMachine->reelTasks[a0]].data[14] = 1; +} + +void sub_8102E1C(u8 a0) +{ + gTasks[sSlotMachine->reelTasks[a0]].data[0] = 2; +} + +bool8 sub_8102E40(u8 a0) +{ + return gTasks[sSlotMachine->reelTasks[a0]].data[14]; +} + +void sub_8102E68(u8 taskId) +{ + while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)) + ; +} + +bool8 sub_8102EA0(struct Task *task) +{ + return FALSE; +} + +bool8 sub_8102EA4(struct Task *task) +{ + sub_8102C84(task->data[15], sSlotMachine->unk1A); + return FALSE; +} + + +bool8 sub_8102EC0(struct Task *task) +{ + task->data[0]++; + sSlotMachine->unk34[task->data[15]] = 0; + sSlotMachine->unk2E[task->data[15]] = 0; + if (sSlotMachine->unk0A == 0 && (sSlotMachine->unk04 == 0 || sSlotMachine->unk06 == 0 || !gUnknown_083ECB40[task->data[15]]())) + { + sSlotMachine->unk06 = 0; + gUnknown_083ECB4C[task->data[15]](); + } + task->data[1] = sSlotMachine->unk2E[task->data[15]]; + return TRUE; +} + +bool8 sub_8102F4C(struct Task *task) +{ + u16 sp[ARRAY_COUNT(gUnknown_085A74FC)]; + s16 r2; + + memcpy(sp, gUnknown_085A74FC, sizeof(gUnknown_085A74FC)); + r2 = sSlotMachine->unk1C[task->data[15]] % 24; + if (r2 != 0) + r2 = sub_8102CCC(task->data[15], sSlotMachine->unk1A); + else if (sSlotMachine->unk2E[task->data[15]]) + { + sSlotMachine->unk2E[task->data[15]]--; + sub_8102C84(task->data[15], sSlotMachine->unk1A); + r2 = sSlotMachine->unk1C[task->data[15]] % 24; + } + if (r2 == 0 && sSlotMachine->unk2E[task->data[15]] == 0) + { + task->data[0]++; + task->data[1] = sp[task->data[1]]; + task->data[2] = 0; + } + return FALSE; +} + +bool8 sub_8103008(struct Task *task) +{ + sSlotMachine->unk22[task->data[15]] = task->data[1]; + task->data[1] = -task->data[1]; + task->data[2]++; + if ((task->data[2] & 0x3) == 0) + task->data[1] >>= 1; + if (task->data[1] == 0) + { + task->data[0] = 0; + task->data[14] = 0; + sSlotMachine->unk22[task->data[15]] = 0; + } + return FALSE; +} + +bool8 sub_810305C(void) +{ + u8 r3 = sub_810250C(sSlotMachine->unk04); + u8 r5 = r3; + if (sSlotMachine->unk04 & 0xc0) + { + r5 = 0; + r3 = 1; + } + return gUnknown_083ECB64[sSlotMachine->bet - 1](r5, r3); +} + +bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) +{ + u8 tag = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, y); + if (tag == tag1 || tag == tag2) + { + sSlotMachine->unk07 = tag; + return TRUE; + } + return FALSE; +} + +bool8 sub_81030E0(s16 y) +{ + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - y) == 4) + return TRUE; + else + return FALSE; +} + +bool8 sub_8103134(void) +{ + if (sSlotMachine->unk04 & 0xc2) + return TRUE; + else + return FALSE; +} + +bool8 sub_8103154(u8 a0, u8 a1) +{ + s16 i; + + for (i = 0; i < 5; i++) + { + if (sub_81030A4(2 - i, a0, a1)) + { + sSlotMachine->unk34[0] = 2; + sSlotMachine->unk2E[0] = i; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_81031B4(u8 tag1, u8 tag2) +{ + s16 i; + bool8 r6 = sub_8103134(); + if (r6 || !sub_81030E0(0)) + { + for (i = 1; i < 4; i++) + { + if (sub_81030A4(i, tag1, tag2)) + { + sSlotMachine->unk34[0] = i; + sSlotMachine->unk2E[0] = 0; + return TRUE; + } + } + } + for (i = 1; i < 5; i++) + { + bool8 r7 = r6; + if (r7 || !sub_81030E0(i)) + { + if (sub_81030A4(1 - i, tag1, tag2)) + { + if (i == 1 && (r7 || !sub_81030E0(3))) + { + sSlotMachine->unk34[0] = 3; + sSlotMachine->unk2E[0] = 3; + return TRUE; + } + if (i < 4 && (r7 || !sub_81030E0(i + 1))) + { + sSlotMachine->unk34[0] = 2; + sSlotMachine->unk2E[0] = i + 1; + return TRUE; + } + sSlotMachine->unk34[0] = 1; + sSlotMachine->unk2E[0] = i; + return TRUE; + } + } + } + return FALSE; +} + +bool8 sub_81032C0(void) +{ + return gUnknown_083ECB70[sSlotMachine->bet - 1](); +} + +bool8 sub_81032E8(void) +{ + s16 i; + s16 unk34_0 = sSlotMachine->unk34[0]; + + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, unk34_0 - i) == sSlotMachine->unk07) + { + sSlotMachine->unk34[1] = unk34_0; + sSlotMachine->unk2E[1] = i; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_810333C(void) +{ + s16 i; + if (sub_81032E8()) + { + if (sSlotMachine->unk34[0] != 2 && sSlotMachine->unk2E[1] > 1 && sSlotMachine->unk2E[1] != 4) + { + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == sSlotMachine->unk07) + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = i; + break; + } + } + } + return TRUE; + } + if (sSlotMachine->unk34[0] != 2) + { + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == sSlotMachine->unk07) + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = i; + return TRUE; + } + } + } + return FALSE; +} + +bool8 sub_81033DC(void) +{ + u8 r3 = sSlotMachine->unk07; + if (sSlotMachine->unk04 & 0x40) + { + r3 = 0; + if (sSlotMachine->unk07 == 0) + { + r3 = 1; + } + } + return gUnknown_083ECB7C[sSlotMachine->bet - 1](r3); +} + +bool8 sub_810341C(u8 a0) +{ + s16 i; + s16 unk34_1 = sSlotMachine->unk34[1]; + + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, unk34_1 - i) == a0) + { + sSlotMachine->unk34[2] = unk34_1; + sSlotMachine->unk2E[2] = i; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_810347C(u8 a0) +{ + s16 i; + s16 r8; + if (sSlotMachine->unk34[0] == sSlotMachine->unk34[1]) + return sub_810341C(a0); + if (sSlotMachine->unk34[0] == 1) + r8 = 3; + else + r8 = 1; + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - i) == a0) + { + sSlotMachine->unk2E[2] = i; + sSlotMachine->unk34[2] = r8; + return TRUE; + } + } + return FALSE; +} + +void sub_81034F4(void) +{ + s16 i = 0; + + while (sub_81030E0(i) != 0) + i++; + sSlotMachine->unk2E[0] = i; +} + +bool8 sub_8103520(u8 *a0) +{ + if (*a0 == 0) + { + *a0 = 1; + return TRUE; + } + if (*a0 == 1) + { + *a0 = 0; + return TRUE; + } + return FALSE; +} + +void sub_8103540(void) +{ + gUnknown_083ECB88[sSlotMachine->bet - 1](); +} + +void sub_8103564(void) +{ + if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + { + u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); + if (sub_8103520(&sp0)) + { + s16 i; + for (i = 0; i < 5; i++) + { + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i)) + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = i; + break; + } + } + } + } +} + +void j5_08111E84(void) +{ + if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + { + u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); + if (sub_8103520(&sp0)) + { + s16 i; + for (i = 0; i < 5; i++) + { + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[0] - i)) + { + sSlotMachine->unk34[1] = sSlotMachine->unk34[0]; + sSlotMachine->unk2E[1] = i; + break; + } + } + } + } +} + +void sub_8103668(void) +{ + s16 i; + s16 j; + if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + { + if (sSlotMachine->unk34[0] == 2) + { + j5_08111E84(); + } + else + { + u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); + if (sub_8103520(&sp0)) + { + j = 2; + if (sSlotMachine->unk34[0] == 3) + j = 3; + for (i = 0; i < 2; i++, j--) + { + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, j)) + { + sSlotMachine->unk34[1] = j; + sSlotMachine->unk2E[1] = 0; + return; + } + } + for (j = 1; j < 5; j++) + { + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[0] - j)) + { + if (sSlotMachine->unk34[0] == 1) + { + if (j < 3) + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = j + 1; + } + else + { + sSlotMachine->unk34[1] = 1; + sSlotMachine->unk2E[1] = j; + } + } + else + { + if (j < 3) + { + sSlotMachine->unk34[1] = 3; + sSlotMachine->unk2E[1] = j; + } + else + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = j - 1; + } + } + return; + } + } + } + } + } +} + +bool8 sub_8103764(u8 a0, u8 a1) +{ + if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0)) + return TRUE; + else + return FALSE; +} + +bool8 sub_810378C(u8 a0, u8 a1, u8 a2) +{ + if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1)) + return TRUE; + else + return FALSE; +} + +bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) +{ + if ((a0 == 0 && a1 == 1 && a2 == 0) || + (a0 == 1 && a1 == 0 && a2 == 1) || + (a0 == 0 && a1 == 0 && a2 == 1) || + (a0 == 1 && a1 == 1 && a2 == 0) || + (a0 == a1 && a0 == a2)) + { + return FALSE; + } + return TRUE; +} + +void sub_810380C(void) +{ + gUnknown_083ECB94[sSlotMachine->bet - 1](); +} + +void sub_8103830(void) +{ + s16 i = 0; + u8 r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); + u8 r1 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); + if (r5 == r1) + { + while (1) + { + u8 r0; + if (!(r5 == (r0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + break; + i++; + } + } + else if (sub_8103764(r5, r1)) + { + if (sSlotMachine->unk04 & 0x80) + { + for (i = 0; i < 5; i++) + { + if (r5 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) + { + sSlotMachine->unk2E[2] = i; + return; + } + } + } + i = 0; + while (1) + { + if (r5 != GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) + break; + i++; + } + } + sSlotMachine->unk2E[2] = i; +} + +void sub_8103910(void) +{ + s16 sp0 = 0; + s16 i; + u8 r7; + u8 r6; + u8 r4; + + if (sSlotMachine->unk34[1] != 0 && sSlotMachine->unk34[0] == sSlotMachine->unk34[1] && sSlotMachine->unk04 & 0x80) + { + r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[1] - sSlotMachine->unk2E[1]); + if (sub_8103764(r7, r6)) + { + for (i = 0; i < 5; i++) + { + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, sSlotMachine->unk34[1] - i); + if (r7 == r4) + { + sp0 = i; + break; + } + } + } + } + while (1) + { + s16 r8; + for (i = 1, r8 = 0; i < 4; i++) + { + r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, i - sSlotMachine->unk2E[0]); + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, i - sSlotMachine->unk2E[1]); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, i - sp0); + if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->unk04 & 0x80))) + { + r8++; + break; + } + } + if (r8 == 0) + break; + sp0++; + } + sSlotMachine->unk2E[2] = sp0; +} + +void sub_8103A78(void) +{ + u8 r6; + u8 r5; + u8 r4; + s16 r8; + s16 i; + + sub_8103910(); + if (sSlotMachine->unk34[1] != 0 && sSlotMachine->unk34[0] != sSlotMachine->unk34[1] && sSlotMachine->unk04 & 0x80) + { + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); + r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[1] - sSlotMachine->unk2E[1]); + if (sub_8103764(r6, r5)) + { + r8 = 1; + if (sSlotMachine->unk34[0] == 1) + r8 = 3; + for (i = 0; i < 5; i++) + { + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - (sSlotMachine->unk2E[2] + i)); + if (r6 == r4) + { + sSlotMachine->unk2E[2] += i; + break; + } + } + } + } + while (1) + { + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - sSlotMachine->unk2E[0]); + r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 3 - sSlotMachine->unk2E[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->unk04 & 0x80)) + break; + sSlotMachine->unk2E[2]++; + } + while (1) + { + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - sSlotMachine->unk2E[0]); + r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 1 - sSlotMachine->unk2E[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->unk04 & 0x80)) + break; + sSlotMachine->unk2E[2]++; + } +} + +void sub_8103C14(u8 a0) +{ + u8 taskId = CreateTask(sub_8103C48, 5); + gTasks[taskId].data[15] = a0; + sub_8103C48(taskId); +} + +void sub_8103C48(u8 taskId) +{ + gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); +} + +void sub_8103C78(struct Task *task, u8 taskId) +{ + sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); + task->data[0]++; +} + +void sub_8103CAC(struct Task *task, u8 taskId) +{ + if (++task->data[1] > 11) + task->data[0]++; +} + +void sub_8103CC8(struct Task *task, u8 taskId) +{ + sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); + DestroyTask(taskId); +} + +void sub_8103D00(u8 a0) +{ + LoadPalette(gUnknown_083EDD08[a0], gUnknown_083EDD30[a0], 2); +} + +void sub_8103D28(u8 a0) +{ + LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); +} + +void sub_8103D50(u8 a0) +{ + u8 i; + for (i = 0; i < gUnknown_083EDD3B[a0]; i++) + sub_8103D00(gUnknown_083EDD35[a0][i]); +} + +void sub_8103D8C(u8 a0) +{ + u8 i; + for (i = 0; i < gUnknown_083EDD3B[a0]; i++) + sub_8103D28(gUnknown_083EDD35[a0][i]); +} + +void sub_8103DC8(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + u8 spriteId = CreateInvisibleSprite(sub_8103EE4); + gSprites[spriteId].data[0] = i; + sSlotMachine->unk44[i] = spriteId; + } +} + +void sub_8103E04(u8 a0) +{ + struct Sprite *sprite = gSprites + sSlotMachine->unk44[a0]; + sprite->data[1] = 1; + sprite->data[2] = 4; + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = 2; + sprite->data[7] = 0; +} + +bool8 sub_8103E38(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + struct Sprite *sprite = &gSprites[sSlotMachine->unk44[i]]; + if (sprite->data[1] && sprite->data[2]) + return FALSE; + } + return TRUE; +} + +bool8 sub_8103E7C(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + if (!sub_8103EAC(sSlotMachine->unk44[i])) + return FALSE; + } + return TRUE; +} + +bool8 sub_8103EAC(u8 spriteId) +{ + struct Sprite *sprite = gSprites + spriteId; + if (!sprite->data[1]) + return TRUE; + if (sprite->data[7]) + sprite->data[1] = 0; + return sprite->data[7]; +} + +void sub_8103EE4(struct Sprite *sprite) +{ + s16 r4; + if (sprite->data[1]) + { + if (!sprite->data[3]--) + { + sprite->data[7] = 0; + sprite->data[3] = 1; + sprite->data[4] += sprite->data[5]; + r4 = 4; + if (sprite->data[2]) + r4 = 8; + if (sprite->data[4] <= 0) + { + sprite->data[7] = 1; + sprite->data[5] = -sprite->data[5]; + if (sprite->data[2]) + sprite->data[2]--; + } + else if (sprite->data[4] >= r4) + sprite->data[5] = -sprite->data[5]; + if (sprite->data[2]) + sprite->data[3] <<= 1; + } + MultiplyPaletteRGBComponents(gUnknown_083EDD30[sprite->data[0]], sprite->data[4], sprite->data[4], sprite->data[4]); + } +} + +void sub_8103F70(void) +{ + u8 taskId = CreateTask(sub_8103FE8_, 6); + gTasks[taskId].data[3] = 1; + sub_8103FE8_(taskId); +} + +bool8 sub_8103FA0(void) +{ + u8 taskId = FindTaskIdByFunc(sub_8103FE8_); + if (!gTasks[taskId].data[2]) + { + DestroyTask(taskId); + LoadPalette(gUnknown_083EDDAC, 0x10, 0x20); + return TRUE; + } + return FALSE; +} + +void sub_8103FE8_(u8 taskId) +{ + struct Task *task = gTasks + taskId; + if (!task->data[1]--) + { + task->data[1] = 4; + task->data[2] += task->data[3]; + if (task->data[2] == 0 || task->data[2] == 2) + task->data[3] = -task->data[3]; + } + LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); +} + +void sub_8104048(void) +{ + sSlotMachine->unk3E = CreateTask(sub_81040E8, 8); +} + +void sub_8104064(u8 pikaPower) +{ + struct Task *task = gTasks + sSlotMachine->unk3E; + sub_812D394(task); + task->data[0] = 1; + task->data[1]++; + task->data[15] = 1; +} + +void sub_8104098(void) +{ + struct Task *task = gTasks + sSlotMachine->unk3E; + sub_812D394(task); + task->data[0] = 3; + task->data[15] = 1; +} + +bool8 sub_81040C8(void) +{ + return gTasks[sSlotMachine->unk3E].data[15]; +} + +void sub_81040E8(u8 taskId) +{ + gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); +} + +void nullsub_68(struct Task *task) +{ +} + +void sub_810411C(struct Task *task) +{ + task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); + task->data[0]++; +} + +void sub_8104144(struct Task *task) +{ + if (gSprites[task->data[2]].data[7]) + { + s16 r5 = task->data[1] + 2; + s16 r3 = 0; + s16 r2 = 0; + if (task->data[1] == 1) + r3 = 1, r2 = 1; + else if (task->data[1] == 16) + r3 = 2, r2 = 2; + gUnknown_0203AACC[r2] = gUnknown_083ECBC4[r3][0]; + LoadBgTilemap(2, &gUnknown_0203AACC[r2], 2, r5 + 0x40); + sub_8105B88(task->data[2]); + task->data[0] = 0; + task->data[15] = 0; + } +} + +void sub_81041AC(struct Task *task) +{ + s16 r5 = task->data[1] + 2; + s16 r3 = 0; + s16 r2 = 3; + if (task->data[1] == 1) + r3 = 1, r2 = 1; + else if (task->data[1] == 16) + r3 = 2, r2 = 2; + if (task->data[2] == 0) + { + gUnknown_0203AACC[r2] = gUnknown_083ECBC4[r3][1]; + LoadBgTilemap(2, &gUnknown_0203AACC[r2], 2, r5 + 0x40); + task->data[1]--; + } + if (++task->data[2] >= 20) + task->data[2] = 0; + if (task->data[1] == 0) + { + task->data[0] = 0; + task->data[15] = 0; + } +} + +void sub_812D394(struct Task *task) +{ + u8 i; + + for (i = 2; i < 16; i++) + task->data[i] = 0; +} + +void sub_810423C(u8 pikaPower) +{ + s16 i; + s16 r3 = 0, r1 = 0; + s16 r4 = 3; + for (i = 0; i < pikaPower; i++, r4++) + { + r3 = 0, r1 = 0; + if (i == 0) + r3 = 1, r1 = 1; + else if (i == 15) + r3 = 2, r1 = 2; + gUnknown_0203AACC[r1] = gUnknown_083ECBC4[r3][0]; + LoadBgTilemap(2, &gUnknown_0203AACC[r1], 2, r4 + 0x40); + } + for (; i < 16; i++, r4++) + { + r3 = 0, r1 = 3; + if (i == 0) + r3 = 1, r1 = 1; + else if (i == 15) + r3 = 2, r1 = 2; + gUnknown_0203AACC[r1] = gUnknown_083ECBC4[r3][1]; + LoadBgTilemap(2, &gUnknown_0203AACC[r1], 2, r4 + 0x40); + } + gTasks[sSlotMachine->unk3E].data[1] = pikaPower; +} + +void sub_810430C(void) +{ + u8 taskId = CreateTask(sub_810434C, 7); + sub_810434C(taskId); +} + +bool8 sub_810432C(void) +{ + if (FindTaskIdByFunc(sub_810434C) == 0xFF) + return TRUE; + return FALSE; +} + +void sub_810434C(u8 taskId) +{ + gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId); +} + +void sub_810437C(struct Task *task) +{ + sSlotMachine->unk0A = 0; + sSlotMachine->unk14 = 0; + sSlotMachine->unk16 = 0; + task->data[0]++; + task->data[1] = 0; + task->data[2] = 30; + task->data[4] = 1280; + gSpriteCoordOffsetX = 0; + gSpriteCoordOffsetY = 0; + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + sub_8104A40(REG_OFFSET_BG3VOFS, 0); + sub_81051C0(); + sub_8105100(); + sub_81052EC(); + sub_81053A0(); + sub_810545C(); + sub_8102680(); + StopMapMusic(); + PlayNewMapMusic(MUS_BD_TIME); +} + +void sub_81043EC(struct Task *task) +{ + s16 r3; + gSpriteCoordOffsetX -= 8; + task->data[1] += 8; + r3 = ((task->data[1] + 240) & 0xff) >> 3; + SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); + if (r3 != task->data[2] && task->data[3] <= 18) + { + task->data[2] = r3; + task->data[3] = task->data[1] >> 3; + sub_8104A40(r3, task->data[3]); + } + if (task->data[1] >= 200) + { + task->data[0]++; + task->data[3] = 0; + } + sub_8102D28(task->data[4] >> 8); +} + +void sub_8104468(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + if (++task->data[5] >= 60) + { + task->data[0]++; + sub_8105578(); + sub_81056F0(); + } +} + +void sub_8104498(struct Task *task) +{ + int r5; + u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; + s16 sp4[ARRAY_COUNT(gUnknown_085A75C4)]; + s16 spC[ARRAY_COUNT(gUnknown_085A75CC)]; + + memcpy(sp0, gUnknown_085A75C0, sizeof(gUnknown_085A75C0)); + memcpy(sp4, gUnknown_085A75C4, sizeof(gUnknown_085A75C4)); + memcpy(spC, gUnknown_085A75CC, sizeof(gUnknown_085A75CC)); + + sub_8102D28(task->data[4] >> 8); + task->data[4] -= 4; + r5 = 4 - (task->data[4] >> 8); + sub_8105688(sp4[r5]); + sub_81057E8(spC[r5]); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, sp0[r5]); + if (task->data[4] <= 0x100) + { + task->data[0]++; + task->data[4] = 0x100; + task->data[5] = 0; + } +} + +void sub_8104548(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + if (++task->data[5] >= 80) + { + task->data[0]++; + task->data[5] = 0; + sub_81057E8(2); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 3); + } +} + +void sub_8104598(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + task->data[4] = (u8)task->data[4] + 0x80; + if (++task->data[5] >= 80) + { + task->data[0]++; + task->data[5] = 0; + } +} + +void sub_81045CC(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + task->data[4] = (u8)task->data[4] + 0x40; + if (++task->data[5] >= 40) + { + task->data[5] = 0; + if (sSlotMachine->unk05) + { + if (sSlotMachine->unk0A <= task->data[6]) + task->data[0]++; + } + else if (task->data[6] > 3) + { + task->data[0]++; + } + else if (sub_81026DC(task->data[6])) + { + task->data[0] = 14; + } + task->data[6]++; + } +} + +void sub_810463C(struct Task *task) +{ + s16 r5 = sSlotMachine->unk14 % 20; + if (r5) + { + r5 = sub_8102D5C(task->data[4] >> 8); + task->data[4] = (u8)task->data[4] + 0x40; + } + else if (sub_8102C48(1) != sSlotMachine->unk05) + { + sub_8102D28(task->data[4] >> 8); + r5 = sSlotMachine->unk14 % 20; + task->data[4] = (u8)task->data[4] + 0x40; + } + if (r5 == 0 && sub_8102C48(1) == sSlotMachine->unk05) + { + task->data[4] = 0; + task->data[0]++; + } +} + +void sub_81046C0(struct Task *task) +{ + if (++task->data[4] >= 60) + { + StopMapMusic(); + sub_81056C0(); + sub_8105804(); + task->data[0]++; + if(sSlotMachine->unk05 == 0) + { + task->data[4] = 0xa0; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 5); + PlayFanfare(MUS_ME_ZANNEN); + } + else + { + task->data[4] = 0xc0; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 4); + gSprites[sSlotMachine->unk3F].animCmdIndex = 0; + if (sSlotMachine->pikaPower) + { + sub_8104098(); + sSlotMachine->pikaPower = 0; + } + PlayFanfare(MUS_ME_B_SMALL); + } + } +} + +void sub_8104764(struct Task *task) +{ + if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) + task->data[0]++; +} + +void sub_8104794(struct Task *task) +{ + s16 r4; + gSpriteCoordOffsetX -= 8; + task->data[1] += 8; + task->data[3] += 8; + r4 = ((task->data[1] - 8) & 0xff) >> 3; + SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); + if (task->data[3] >> 3 <= 25) + sub_8104A88(r4); + else + task->data[0]++; +} + +void sub_81047EC(struct Task *task) +{ + sSlotMachine->unk0B = 0; + sSlotMachine->unk0A = sSlotMachine->unk05; + gSpriteCoordOffsetX = 0; + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + sSlotMachine->unk1A = 8; + sub_810514C(); + sub_81054B8(); + sub_8105524(); + PlayNewMapMusic(sSlotMachine->backupMapMusic); + if (sSlotMachine->unk0A == 0) + { + DestroyTask(FindTaskIdByFunc(sub_810434C)); + } + else + { + sub_8104CAC(4); + task->data[1] = dp15_jump_random_unknown(); + task->data[2] = 0; + task->data[3] = 0; + task->data[0]++; + } +} + +void sub_8104860(struct Task *task) +{ + if (sSlotMachine->unk1A == task->data[1]) + task->data[0]++; + else if (sSlotMachine->unk1C[0] % 24 == 0 && (++task->data[2]& 0x07) == 0) + sSlotMachine->unk1A >>= 1; +} + +void sub_81048A8(struct Task *task) +{ + if (sub_8104E18()) + DestroyTask(FindTaskIdByFunc(sub_810434C)); +} + +void sub_81048CC(struct Task *task) +{ + sub_81054B8(); + sub_81056C0(); + sub_8105804(); + sub_8105854(); + gSprites[sSlotMachine->unk4E[0]].invisible = TRUE; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 5); + task->data[0]++; + task->data[4] = 4; + task->data[5] = 0; + StopMapMusic(); + PlayFanfare(MUS_ME_ZANNEN); + PlaySE(SE_W153); +} + +void sub_8104940(struct Task *task) +{ + gSpriteCoordOffsetY = task->data[4]; + SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); + if (task->data[5] & 0x01) + task->data[4] = -task->data[4]; + if ((++task->data[5] & 0x1f) == 0) + task->data[4] >>= 1; + if (task->data[4] == 0) + { + sub_81058A0(); + sub_81058C4(); + sub_8105284_(); + sub_81059E8(); + gSprites[sSlotMachine->unk4E[0]].invisible = FALSE; + task->data[0]++; + task->data[5] = 0; + } +} + +void sub_81049C8(struct Task *task) +{ + gSpriteCoordOffsetY = 0; + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + if (sub_8105ACC()) + { + task->data[0]++; + sub_8105AEC(); + } +} + +void sub_81049F8(struct Task *task) +{ + gSpriteCoordOffsetX = 0; + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + PlayNewMapMusic(sSlotMachine->backupMapMusic); + sub_810514C(); + sub_8105554(); + sub_8105524(); + sub_81059B8(); + DestroyTask(FindTaskIdByFunc(sub_810434C)); +} + +void sub_8104A40(s16 a0, s16 a1) +{ + s16 i; + + for (i = 4; i < 15; i++) + { + LoadBgTilemap(1, &sReelTimeWindowTilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); + } +} + +void sub_8104A88(s16 a0) +{ + u8 i; + + for (i = 4; i < 15; i++) + { + LoadBgTilemap(1, gUnknown_085A9898, 2, 32 * i + a0); + } +} + +void sub_8104AB8(u8 a0) +{ + u8 taskId = CreateTask(sub_8104B0C, 1); + gTasks[taskId].data[1] = a0; + sub_8104B0C(taskId); +} + +bool8 sub_8104AEC(void) +{ + if (FindTaskIdByFunc(sub_8104B0C) == 0xFF) + return TRUE; + else + return FALSE; +} + +void sub_8104B0C(u8 taskId) +{ + gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId); +} + +void sub_8104B3C(struct Task *task) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + task->data[0]++; +} + +void sub_8104B60(struct Task *task) +{ + if (!gPaletteFade.active) + task->data[0]++; +} + +void sub_8104B80(struct Task *task) +{ + sub_8104DA4(); + sub_81065DC(); + AddWindow(&gUnknown_085A7444); + PutWindowTilemap(1); + FillWindowPixelBuffer(1, 0); + task->data[0]++; +} + +void sub_812DD78(struct Task *task) +{ + AddTextPrinterParameterized3(1, 1, 2, 5, gUnknown_085A744C, 0, gText_ReelTimeHelp); + CopyWindowToVram(1, 3); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + task->data[0]++; +} + +void sub_8104BC8(struct Task *task) +{ + if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) + { + FillWindowPixelBuffer(1, 0); + ClearWindowTilemap(1); + CopyWindowToVram(1, 1); + RemoveWindow(1); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + task->data[0]++; + } +} + +void sub_812DE14(struct Task *task) +{ + sub_812F968(); + ShowBg(3); + task->data[0]++; +} + +void sub_812DE30(struct Task *task) +{ + sub_8104CAC(task->data[1]); + task->data[0]++; +} + +void sub_8104BFC(struct Task *task) +{ + sub_810423C(sSlotMachine->pikaPower); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + task->data[0]++; +} + +void sub_8104C44(struct Task *task) +{ + DestroyTask(FindTaskIdByFunc(sub_8104B0C)); +} + +void sub_8104C5C(void) +{ + u8 i; + struct Task *task; + i = CreateTask(sub_8104E74_, 3); + sSlotMachine->unk3D = i; + task = gTasks + i; + task->data[1] = -1; + for (i = 4; i < 16; i++) + task->data[i] = MAX_SPRITES; +} + +void sub_8104CAC(u8 arg0) +{ + u8 i; + struct Task *task; + + sub_8104DA4(); + + task = gTasks + sSlotMachine->unk3D; + task->data[1] = arg0; + + for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) + { + u8 spriteId; + spriteId = sub_8105BB4( + gUnknown_083ED048[arg0][i].unk00, + gUnknown_083ED048[arg0][i].unk01, + gUnknown_083ED048[arg0][i].unk02 + ); + task->data[4 + i] = spriteId; + } +} + +void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +{ + u8 i; + struct Task *task = gTasks + sSlotMachine->unk3D; + for (i = 4; i < 16; i++) + { + if (task->data[i] == MAX_SPRITES) + { + task->data[i] = sub_8105BF8(a0, a1, a2, a3, a4); + break; + } + } +} + +void sub_8104DA4(void) +{ + u8 i; + struct Task *task = gTasks + sSlotMachine->unk3D; + if ((u16)task->data[1] != 0xFFFF) + gUnknown_083ED064[task->data[1]](); + for (i = 4; i < 16; i++) + { + if (task->data[i] != MAX_SPRITES) + { + DestroySprite(gSprites + task->data[i]); + task->data[i] = MAX_SPRITES; + } + } +} + +bool8 sub_8104E18(void) +{ + u8 i; + struct Task *task = gTasks + sSlotMachine->unk3D; + for (i = 4; i < 16; i++) + { + if (task->data[i] != MAX_SPRITES) + { + if (gSprites[task->data[i]].data[7]) + return FALSE; + } + } + return TRUE; +} + +void sub_8104E74_(u8 taskId) +{ + gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId); +} + +void nullsub_69(struct Task *task) +{ +} + +void sub_8104EA8(void) +{ + s16 i; + s16 j; + s16 x; + for (i = 0, x = 0x30; i < 3; i++, x += 0x28) + { + for (j = 0; j < 120; j += 24) + { + struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED414, x, 0, 14); + sprite->oam.priority = 3; + sprite->data[0] = i; + sprite->data[1] = j; + sprite->data[3] = -1; + } + } +} + +void sub_8104F18(struct Sprite *sprite) +{ + sprite->data[2] = sSlotMachine->unk1C[sprite->data[0]] + sprite->data[1]; + sprite->data[2] %= 120; + sprite->pos1.y = sSlotMachine->unk22[sprite->data[0]] + 28 + sprite->data[2]; + sprite->sheetTileStart = GetSpriteTileStartByTag(GetTagOfReelSymbolOnScreenAtPos(sprite->data[0], sprite->data[2] / 24)); + SetSpriteSheetFrameTileNum(sprite); +} + +void sub_8104F8C(void) +{ + s16 i; + s16 x; + + for (x = 203, i = 1; i < 10000; i *= 10, x -= 7) + sub_8104FF4(x, 23, 0, i); + for (x = 235, i = 1; i < 10000; i *= 10, x -= 7) + sub_8104FF4(x, 23, 1, i); +} + +void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +{ + struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); + sprite->oam.priority = 2; + sprite->data[0] = a2; + sprite->data[1] = a3; + sprite->data[2] = a3 * 10; + sprite->data[3] = -1; +} + +void sub_810506C(struct Sprite *sprite) +{ + u16 tag = sSlotMachine->coins; + if (sprite->data[0]) + tag = sSlotMachine->payout; + if (sprite->data[3] != tag) + { + sprite->data[3] = tag; + tag %= (u16)sprite->data[2]; + tag /= (u16)sprite->data[1]; + tag += 7; + sprite->sheetTileStart = GetSpriteTileStartByTag(tag); + SetSpriteSheetFrameTileNum(sprite); + } +} + +void sub_81050C4(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); + gSprites[spriteId].oam.priority = 3; + SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); +} From 3028fdc353447be5b36a5bee526ffe3ee696a62a Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 15 Sep 2018 15:49:31 -0500 Subject: [PATCH 26/28] Update mid2agb source Credit to @camthesaxman --- tools/mid2agb/Makefile | 7 ++- tools/mid2agb/main.cpp | 128 ++++++++++++++++++----------------------- tools/mid2agb/midi.cpp | 21 ++++--- 3 files changed, 74 insertions(+), 82 deletions(-) diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile index 7fd5d5fc83..4dc2f123fc 100644 --- a/tools/mid2agb/Makefile +++ b/tools/mid2agb/Makefile @@ -1,12 +1,15 @@ CXX := g++ -CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror +CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror SRCS := agb.cpp error.cpp main.cpp midi.cpp tables.cpp HEADERS := agb.h error.h main.h midi.h tables.h -.PHONY: clean +.PHONY: all clean + +all: mid2agb + @: mid2agb: $(SRCS) $(HEADERS) $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) diff --git a/tools/mid2agb/main.cpp b/tools/mid2agb/main.cpp index 5659e49b17..03feabdd8f 100644 --- a/tools/mid2agb/main.cpp +++ b/tools/mid2agb/main.cpp @@ -50,7 +50,8 @@ bool g_compressionEnabled = true; " input_file filename(.mid) of MIDI file\n" " output_file filename(.s) for AGB file (default:input_file)\n" "\n" - "options -V??? master volume (default:127)\n" + "options -L??? label for assembler (default:output_file)\n" + " -V??? master volume (default:127)\n" " -G??? voice group number (default:0)\n" " -P??? priority (default:0)\n" " -R??? reverb (default:off)\n" @@ -73,18 +74,6 @@ static std::string StripExtension(std::string s) return s; } -static std::string StripPathAndExtension(std::string s) -{ - std::size_t pos = s.find_last_of("/\\"); - - if (pos > 0 && pos != std::string::npos) - { - s = s.substr(pos + 1, pos); - } - - return StripExtension(s); -} - static std::string GetExtension(std::string s) { std::size_t pos = s.find_last_of('.'); @@ -97,57 +86,45 @@ static std::string GetExtension(std::string s) return ""; } -struct Option +static std::string BaseName(std::string s) { - char letter = 0; - const char *arg = NULL; -}; + std::size_t posAfterSlash = s.find_last_of("/\\"); -static Option ParseOption(int& index, const int argc, char** argv) + if (posAfterSlash == std::string::npos) + posAfterSlash = 0; + else + posAfterSlash++; + + std::size_t dotPos = s.find_first_of('.', posAfterSlash); + if (dotPos > posAfterSlash && dotPos != std::string::npos) + s = s.substr(posAfterSlash, dotPos - posAfterSlash); + + return s; +} + +static const char *GetArgument(int argc, char **argv, int& index) { - static std::set optionsWithArg = { 'L', 'V', 'G', 'P', 'R' }; - static std::set optionsWithoutArg = { 'X', 'E', 'N' }; - assert(index >= 0 && index < argc); - const char *opt = argv[index]; + const char *option = argv[index]; - assert(opt[0] == '-'); - assert(std::strlen(opt) == 2); + assert(option != nullptr); + assert(option[0] == '-'); - char letter = std::toupper(opt[1]); + // If there is text following the letter, return that. + if (std::strlen(option) >= 3) + return option + 2; - bool isOption = false; - bool hasArg = false; - - if (optionsWithArg.count(letter) != 0) - { - isOption = true; - hasArg = true; - } - else if (optionsWithoutArg.count(letter) != 0) - { - isOption = true; - } - - if (!isOption) - PrintUsage(); - - Option retVal; - - retVal.letter = letter; - - if (hasArg) + // Otherwise, try to get the next arg. + if (index + 1 < argc) { index++; - - if (index >= argc) - RaiseError("missing argument for \"-%c\"", letter); - - retVal.arg = argv[index]; + return argv[index]; + } + else + { + return nullptr; } - - return retVal; } int main(int argc, char** argv) @@ -157,51 +134,60 @@ int main(int argc, char** argv) for (int i = 1; i < argc; i++) { - if (argv[i][0] == '-' && std::strlen(argv[i]) == 2) - { - Option option = ParseOption(i, argc, argv); + const char *option = argv[i]; - switch (option.letter) + if (option[0] == '-' && option[1] != '\0') + { + const char *arg = GetArgument(argc, argv, i); + + switch (std::toupper(option[1])) { case 'E': g_exactGateTime = true; break; case 'G': - g_voiceGroup = std::stoi(option.arg); + if (arg == nullptr) + PrintUsage(); + g_voiceGroup = std::stoi(arg); break; case 'L': - g_asmLabel = option.arg; + if (arg == nullptr) + PrintUsage(); + g_asmLabel = std::stoi(arg); break; case 'N': g_compressionEnabled = false; break; case 'P': - g_priority = std::stoi(option.arg); + if (arg == nullptr) + PrintUsage(); + g_priority = std::stoi(arg); break; case 'R': - g_reverb = std::stoi(option.arg); + if (arg == nullptr) + PrintUsage(); + g_reverb = std::stoi(arg); break; case 'V': - g_masterVolume = std::stoi(option.arg); + if (arg == nullptr) + PrintUsage(); + g_masterVolume = std::stoi(arg); break; case 'X': g_clocksPerBeat = 2; break; + default: + PrintUsage(); } } else { - switch (i) - { - case 1: + if (inputFilename.empty()) inputFilename = argv[i]; - break; - case 2: + else if (outputFilename.empty()) outputFilename = argv[i]; - break; - default: + else PrintUsage(); - } } } @@ -218,7 +204,7 @@ int main(int argc, char** argv) RaiseError("output filename extension is not \"s\""); if (g_asmLabel.empty()) - g_asmLabel = StripPathAndExtension(outputFilename); + g_asmLabel = BaseName(outputFilename); g_inputFile = std::fopen(inputFilename.c_str(), "rb"); diff --git a/tools/mid2agb/midi.cpp b/tools/mid2agb/midi.cpp index 7c05c52374..09480e139c 100644 --- a/tools/mid2agb/midi.cpp +++ b/tools/mid2agb/midi.cpp @@ -52,7 +52,7 @@ static std::int32_t s_absoluteTime; static int s_blockCount = 0; static int s_minNote; static int s_maxNote; -static int s_runningStatus = 0; +static int s_runningStatus; void Seek(long offset) { @@ -171,6 +171,7 @@ void StartTrack() { Seek(s_trackDataStart); s_absoluteTime = 0; + s_runningStatus = 0; } void SkipEventData() @@ -182,20 +183,18 @@ void DetermineEventCategory(MidiEventCategory& category, int& typeChan, int& siz { typeChan = ReadInt8(); - if (typeChan < 0x80 && s_runningStatus != 0) + if (typeChan < 0x80) { + // If data byte was found, use the running status. + ungetc(typeChan, g_inputFile); typeChan = s_runningStatus; - Skip(-1); } - + if (typeChan == 0xFF) { category = MidiEventCategory::Meta; size = 0; - } - else if (typeChan >= 0xF8) - { - category = MidiEventCategory::Invalid; + s_runningStatus = 0; } else if (typeChan >= 0xF0) { @@ -206,7 +205,6 @@ void DetermineEventCategory(MidiEventCategory& category, int& typeChan, int& siz else if (typeChan >= 0x80) { category = MidiEventCategory::Control; - s_runningStatus = typeChan; switch (typeChan >> 4) { @@ -218,6 +216,7 @@ void DetermineEventCategory(MidiEventCategory& category, int& typeChan, int& siz size = 2; break; } + s_runningStatus = typeChan; } else { @@ -434,7 +433,10 @@ bool CheckNoteEnd(Event& event) void FindNoteEnd(Event& event) { + // Save the current file position and running status + // which get modified by CheckNoteEnd. long startPos = ftell(g_inputFile); + int savedRunningStatus = s_runningStatus; event.param2 = 0; @@ -442,6 +444,7 @@ void FindNoteEnd(Event& event) ; Seek(startPos); + s_runningStatus = savedRunningStatus; } bool ReadTrackEvent(Event& event) From db248dada23086ed8a5fd26d7fcce52b575768d2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 15 Sep 2018 22:59:45 +0200 Subject: [PATCH 27/28] slot machine is decompiled --- asm/slot_machine.s | 3289 ------------------------------------------- data/slot_machine.s | 304 +--- src/slot_machine.c | 1318 ++++++++++++++++- 3 files changed, 1367 insertions(+), 3544 deletions(-) diff --git a/asm/slot_machine.s b/asm/slot_machine.s index d700bf5c54..c3fc4d140b 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,3295 +5,6 @@ .text - - thumb_func_start sub_8105100 -sub_8105100: @ 812E33C - push {r4,r5,lr} - sub sp, 0x18 - ldr r4, =gUnknown_0203AAE4 - ldr r0, [r4] - cmp r0, 0 - bne _0812E350 - movs r0, 0x28 - bl AllocZeroed - str r0, [r4] -_0812E350: - ldr r2, [r4] - ldr r0, =gUnknown_0203AAD8 - ldr r1, [r0] - str r1, [r2] - movs r3, 0x80 - lsls r3, 4 - strh r3, [r2, 0x4] - adds r0, r1, r3 - str r0, [r2, 0x8] - strh r3, [r2, 0xC] - movs r4, 0x80 - lsls r4, 5 - adds r0, r1, r4 - str r0, [r2, 0x10] - strh r3, [r2, 0x14] - movs r5, 0xC0 - lsls r5, 5 - adds r0, r1, r5 - str r0, [r2, 0x18] - strh r3, [r2, 0x1C] - movs r0, 0x80 - lsls r0, 6 - adds r1, r0 - str r1, [r2, 0x20] - strh r3, [r2, 0x24] - mov r1, sp - ldr r0, =gSpriteTemplate_83ED45C - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - str r2, [sp, 0xC] - movs r1, 0x8C - lsls r1, 1 - mov r0, sp - movs r2, 0x50 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x3F - strb r0, [r1] - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105100 - thumb_func_start sub_810514C -sub_810514C: @ 812E3E8 - push {r4,lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - ldr r4, =gUnknown_0203AAE4 - ldr r0, [r4] - cmp r0, 0 - beq _0812E410 - bl Free - movs r0, 0 - str r0, [r4] -_0812E410: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_810514C - - thumb_func_start sub_812E424 -sub_812E424: @ 812E424 - push {lr} - adds r2, r0, 0 - movs r0, 0 - strh r0, [r2, 0x24] - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0x4 - bne _0812E46A - movs r0, 0x8 - strh r0, [r2, 0x24] - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - beq _0812E458 - adds r0, r2, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _0812E466 - b _0812E46A -_0812E458: - adds r0, r2, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _0812E46A -_0812E466: - ldr r0, =0x0000fff8 - strh r0, [r2, 0x26] -_0812E46A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_812E424 - - thumb_func_start sub_81051C0 -sub_81051C0: @ 812E474 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - ldr r4, =gUnknown_0203AAE8 - ldr r0, [r4] - cmp r0, 0 - bne _0812E490 - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] -_0812E490: - ldr r2, [r4] - ldr r0, =gUnknown_0203AAD8 - mov r10, r0 - ldr r0, [r0] - movs r1, 0xA0 - lsls r1, 6 - adds r0, r1 - str r0, [r2] - movs r0, 0xC0 - lsls r0, 2 - strh r0, [r2, 0x4] - mov r1, sp - ldr r0, =gUnknown_085A7D40 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - str r2, [sp, 0xC] - mov r0, sp - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0x34 - movs r3, 0x7 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r5, =gSprites - mov r9, r5 - adds r2, r0, r5 - ldrb r1, [r2, 0x5] - movs r7, 0xD - negs r7, r7 - mov r8, r7 - mov r0, r8 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r6, 0x2 - orrs r0, r6 - strb r0, [r1] - ldr r1, =gUnknown_085A7FE0 - adds r0, r2, 0 - bl SetSubspriteTables - ldr r5, =sSlotMachine - ldr r0, [r5] - adds r0, 0x49 - strb r4, [r0] - ldr r4, =gUnknown_0203AAEC - ldr r0, [r4] - cmp r0, 0 - bne _0812E510 - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] -_0812E510: - ldr r2, [r4] - mov r3, r10 - ldr r0, [r3] - movs r4, 0xAC - lsls r4, 6 - adds r0, r4 - str r0, [r2] - movs r0, 0xA0 - lsls r0, 3 - strh r0, [r2, 0x4] - mov r1, sp - ldr r0, =gUnknown_085A7D58 - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - str r2, [sp, 0xC] - mov r0, sp - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0x54 - movs r3, 0x7 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - mov r7, r9 - adds r2, r0, r7 - ldrb r1, [r2, 0x5] - mov r0, r8 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r1, =gUnknown_085A7FF4 - adds r0, r2, 0 - bl SetSubspriteTables - ldr r0, [r5] - adds r0, 0x4A - strb r4, [r0] - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81051C0 - - thumb_func_start sub_8105284_ -sub_8105284_: @ 812E5A8 - push {r4,r5,lr} - sub sp, 0x18 - ldr r4, =gUnknown_0203AAF0 - ldr r0, [r4] - cmp r0, 0 - bne _0812E5BC - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] -_0812E5BC: - ldr r2, [r4] - ldr r0, =gUnknown_0203AAD8 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - str r0, [r2] - movs r0, 0xC0 - lsls r0, 3 - strh r0, [r2, 0x4] - mov r1, sp - ldr r0, =gUnknown_085A7D70 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - str r2, [sp, 0xC] - ldr r0, =gSpriteCoordOffsetX - ldrh r0, [r0] - movs r1, 0xA8 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldr r1, =gUnknown_085A8010 - bl SetSubspriteTables - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x42 - strb r4, [r0] - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105284_ - - thumb_func_start sub_81052EC -sub_81052EC: @ 812E650 - push {r4-r6,lr} - movs r4, 0 - movs r5, 0 -_0812E656: - ldr r0, =gUnknown_085A7D88 - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - ldr r1, =gSprites - adds r3, r1 - ldrb r2, [r3, 0x5] - movs r6, 0xD - negs r6, r6 - adds r1, r6, 0 - ands r2, r1 - movs r1, 0x4 - orrs r2, r1 - strb r2, [r3, 0x5] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - strh r5, [r3, 0x3C] - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x4B - adds r1, r4 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r5, 16 - movs r6, 0xA0 - lsls r6, 13 - adds r0, r6 - lsrs r5, r0, 16 - cmp r4, 0x2 - bls _0812E656 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81052EC - - thumb_func_start sub_810535C -sub_810535C: @ 812E6C4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =sSlotMachine - ldr r1, [r0] - ldrh r0, [r4, 0x3C] - ldrh r1, [r1, 0x14] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x28 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - adds r1, r0, 0 - adds r1, 0x3B - strh r1, [r4, 0x22] - movs r1, 0x14 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - bl sub_8102C48 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnimIfDifferent - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_810535C - - thumb_func_start sub_81053A0 -sub_81053A0: @ 812E70C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r1, 0xB8 - lsls r1, 1 - ldr r0, =gUnknown_085A7DA0 - movs r2, 0x64 - movs r3, 0x9 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r7, =gSprites - adds r2, r0, r7 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x2 - mov r10, r3 - mov r3, r10 - orrs r0, r3 - strb r0, [r1] - ldrb r1, [r2, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - movs r1, 0x4 - mov r8, r1 - mov r3, r8 - orrs r0, r3 - strb r0, [r2, 0x5] - ldr r0, =gUnknown_085A8028 - mov r9, r0 - adds r0, r2, 0 - mov r1, r9 - bl SetSubspriteTables - ldr r6, =sSlotMachine - ldr r0, [r6] - adds r0, 0x4E - strb r4, [r0] - movs r1, 0x90 - lsls r1, 1 - ldr r0, =gUnknown_085A7DA0 - movs r2, 0x68 - movs r3, 0x4 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r2, r0, r7 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r10 - orrs r0, r3 - strb r0, [r1] - ldrb r0, [r2, 0x5] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r2, 0x5] - adds r0, r2, 0 - mov r1, r9 - bl SetSubspriteTables - ldr r0, [r6] - adds r0, 0x4F - strb r4, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81053A0 - - thumb_func_start sub_810545C -sub_810545C: @ 812E7CC - push {r4,lr} - ldr r0, =gUnknown_085A7DB8 - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0x4C - movs r3, 0xB - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, =gUnknown_085A803C - bl SetSubspriteTables - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x40 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_810545C - - thumb_func_start sub_81054B8 -sub_81054B8: @ 812E82C - push {r4,lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - movs r4, 0 -_0812E846: - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x49 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0812E846 - ldr r4, =gUnknown_0203AAE8 - ldr r0, [r4] - cmp r0, 0 - beq _0812E878 - bl Free - movs r0, 0 - str r0, [r4] -_0812E878: - ldr r4, =gUnknown_0203AAEC - ldr r0, [r4] - cmp r0, 0 - beq _0812E888 - bl Free - movs r0, 0 - str r0, [r4] -_0812E888: - movs r4, 0 -_0812E88A: - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x4B - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0812E88A - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81054B8 - - thumb_func_start sub_8105524 -sub_8105524: @ 812E8C4 - push {r4,lr} - movs r4, 0 -_0812E8C8: - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x4E - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0812E8C8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105524 - - thumb_func_start sub_8105554 -sub_8105554: @ 812E8F8 - push {r4,lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x42 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - ldr r4, =gUnknown_0203AAF0 - ldr r0, [r4] - cmp r0, 0 - beq _0812E920 - bl Free - movs r0, 0 - str r0, [r4] -_0812E920: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105554 - - thumb_func_start sub_8105578 -sub_8105578: @ 812E934 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r0, =gUnknown_085A7DD0 - mov r10, r0 - movs r1, 0x98 - movs r2, 0x20 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, =gSprites - mov r9, r2 - adds r3, r1, r2 - ldrb r2, [r3, 0x5] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r1, r2 - movs r2, 0x4 - mov r8, r2 - mov r2, r8 - orrs r1, r2 - strb r1, [r3, 0x5] - adds r5, r3, 0 - adds r5, 0x3F - ldrb r1, [r5] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r5] - ldr r6, =sSlotMachine - ldr r1, [r6] - adds r1, 0x50 - strb r0, [r1] - movs r0, 0x8 - strh r0, [r3, 0x2E] - ldr r0, =0x0000ffff - strh r0, [r3, 0x30] - movs r0, 0x1 - negs r0, r0 - strh r0, [r3, 0x32] - movs r5, 0x20 - strh r5, [r3, 0x3C] - mov r0, r10 - movs r1, 0xB8 - movs r2, 0x20 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - mov r2, r9 - adds r3, r1, r2 - ldrb r1, [r3, 0x5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r3, 0x5] - ldr r1, [r6] - adds r1, 0x51 - strb r0, [r1] - movs r0, 0x1 - strh r0, [r3, 0x30] - subs r0, 0x2 - strh r0, [r3, 0x32] - strh r5, [r3, 0x3C] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105578 - - thumb_func_start sub_812E9E8 -sub_812E9E8: @ 812E9E8 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - movs r1, 0x2E - ldrsh r4, [r2, r1] - cmp r4, 0 - beq _0812EA0C - subs r0, 0x1 - movs r1, 0 - strh r0, [r2, 0x2E] - strh r1, [r2, 0x24] - strh r1, [r2, 0x26] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - b _0812EA3E -_0812EA0C: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _0812EA3E - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x2E] - strh r4, [r2, 0x34] -_0812EA3E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812E9E8 - - thumb_func_start sub_8105688 -sub_8105688: @ 812EA44 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gSprites - ldr r1, =sSlotMachine - ldr r3, [r1] - adds r1, r3, 0 - adds r1, 0x50 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x3C] - adds r3, 0x51 - ldrb r2, [r3] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x3C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105688 - - thumb_func_start sub_81056C0 -sub_81056C0: @ 812EA7C - push {r4,lr} - movs r4, 0 -_0812EA80: - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x50 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0812EA80 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81056C0 - - thumb_func_start sub_81056F0 -sub_81056F0: @ 812EAB0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r0, =gUnknown_085A7DE8 - mov r8, r0 - movs r1, 0x48 - movs r2, 0x50 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - mov r9, r1 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r9 - ldrb r3, [r2, 0x5] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r1, r3 - movs r6, 0x4 - orrs r1, r6 - strb r1, [r2, 0x5] - movs r3, 0 - movs r1, 0x1 - strh r1, [r2, 0x2E] - strh r3, [r2, 0x38] - movs r1, 0x10 - strh r1, [r2, 0x3A] - movs r1, 0x8 - strh r1, [r2, 0x3C] - ldr r5, =sSlotMachine - ldr r1, [r5] - adds r1, 0x52 - strb r0, [r1] - mov r0, r8 - movs r1, 0x68 - movs r2, 0x50 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r2, [r1, 0x5] - ands r4, r2 - orrs r4, r6 - strb r4, [r1, 0x5] - adds r1, 0x3F - ldrb r2, [r1] - movs r3, 0x1 - orrs r2, r3 - strb r2, [r1] - ldr r1, [r5] - adds r1, 0x53 - strb r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81056F0 - - thumb_func_start sub_812EB48 -sub_812EB48: @ 812EB48 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, =gUnknown_085A7614 - mov r0, sp - movs r2, 0x2 - bl memcpy - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0812EB9A - ldrh r0, [r4, 0x3A] - subs r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - cmp r0, 0 - bgt _0812EB9A - movs r0, 0x7 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r2, =0x01030000 - adds r0, r2 - lsrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r4, r2] - add r1, sp - ldrb r3, [r1] - adds r1, r3, 0 - adds r2, r3, 0 - bl MultiplyInvertedPaletteRGBComponents - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3C] - strh r0, [r4, 0x3A] -_0812EB9A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812EB48 - - thumb_func_start sub_81057E8 -sub_81057E8: @ 812EBAC - ldr r3, =gSprites - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x52 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - strh r0, [r1, 0x3C] - bx lr - .pool - thumb_func_end sub_81057E8 - - thumb_func_start sub_8105804 -sub_8105804: @ 812EBCC - push {r4,lr} - movs r0, 0x7 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, =0x01030000 - adds r0, r1 - lsrs r0, 16 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl MultiplyInvertedPaletteRGBComponents - movs r4, 0 -_0812EBEA: - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x52 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0812EBEA - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105804 - - thumb_func_start sub_8105854 -sub_8105854: @ 812EC20 - push {lr} - ldr r0, =gUnknown_085A7E00 - movs r1, 0xA8 - movs r2, 0x50 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x5] - movs r2, 0xD - negs r2, r2 - ands r2, r3 - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1, 0x5] - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x41 - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105854 - - thumb_func_start sub_812EC64 -sub_812EC64: @ 812EC64 - ldr r1, =gSpriteCoordOffsetY - ldrh r1, [r1] - strh r1, [r0, 0x26] - bx lr - .pool - thumb_func_end sub_812EC64 - - thumb_func_start sub_81058A0 -sub_81058A0: @ 812EC70 - push {lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x41 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .pool - thumb_func_end sub_81058A0 - - thumb_func_start sub_81058C4 -sub_81058C4: @ 812EC94 - push {r4,r5,lr} - sub sp, 0x8 - ldr r1, =gUnknown_085A7616 - mov r0, sp - movs r2, 0x8 - bl memcpy - movs r4, 0 -_0812ECA4: - ldr r0, =gSpriteCoordOffsetX - ldrh r0, [r0] - movs r1, 0x50 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - ldr r0, =gUnknown_085A7E18 - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - ldr r1, =gSprites - adds r3, r1 - ldrb r2, [r3, 0x5] - movs r5, 0xD - negs r5, r5 - adds r1, r5, 0 - ands r2, r1 - movs r1, 0x4 - orrs r2, r1 - strb r2, [r3, 0x5] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - lsls r1, r4, 1 - add r1, sp - ldrh r1, [r1] - strh r1, [r3, 0x2E] - ldr r1, =sSlotMachine - ldr r1, [r1] - adds r1, 0x54 - adds r1, r4 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0812ECA4 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81058C4 - - thumb_func_start sub_812ED20 -sub_812ED20: @ 812ED20 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - subs r0, 0x2 - movs r4, 0 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl Cos - strh r0, [r5, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r1, 0x6 - bl Sin - strh r0, [r5, 0x26] - adds r1, r5, 0 - adds r1, 0x43 - strb r4, [r1] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x7F - ble _0812ED5A - movs r0, 0x2 - strb r0, [r1] -_0812ED5A: - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _0812ED84 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r0, r2, 31 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0 - strh r0, [r5, 0x30] -_0812ED84: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_812ED20 - - thumb_func_start sub_81059B8 -sub_81059B8: @ 812ED8C - push {r4,lr} - movs r4, 0 -_0812ED90: - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x54 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0812ED90 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81059B8 - - thumb_func_start sub_81059E8 -sub_81059E8: @ 812EDC0 - push {r4,lr} - ldr r0, =gUnknown_085A7E30 - movs r1, 0xA8 - movs r2, 0x3C - movs r3, 0x8 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - bl InitSpriteAffineAnim - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x43 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81059E8 - - thumb_func_start sub_812EE14 -sub_812EE14: @ 812EE14 - push {lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x2E] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _0812EE36 - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0812EE90 - adds r0, r2, 0x1 - strh r0, [r3, 0x2E] - b _0812EE90 -_0812EE36: - cmp r0, 0x1 - bne _0812EE72 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - ble _0812EE90 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - movs r0, 0 - strh r0, [r3, 0x32] - b _0812EE90 -_0812EE72: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _0812EE90 - movs r0, 0x1 - strh r0, [r3, 0x3C] -_0812EE90: - ldrh r0, [r3, 0x30] - movs r1, 0xFF - ands r1, r0 - adds r1, 0x10 - strh r1, [r3, 0x30] - lsrs r1, 8 - ldrh r0, [r3, 0x26] - subs r0, r1 - strh r0, [r3, 0x26] - pop {r0} - bx r0 - thumb_func_end sub_812EE14 - - thumb_func_start sub_8105ACC -sub_8105ACC: @ 812EEA8 - ldr r2, =gSprites - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x43 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bx lr - .pool - thumb_func_end sub_8105ACC - - thumb_func_start sub_8105AEC -sub_8105AEC: @ 812EECC - push {r4,lr} - ldr r0, =sSlotMachine - ldr r0, [r0] - adds r0, 0x43 - ldrb r0, [r0] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105AEC - - thumb_func_start sub_8105B1C -sub_8105B1C: @ 812EF00 - push {r4,lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, =gUnknown_085A7F98 - lsls r3, 16 - asrs r3, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r3, 0 - movs r3, 0xC - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - bl InitSpriteAffineAnim - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8105B1C - - thumb_func_start sub_812EF54 -sub_812EF54: @ 812EF54 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0812EF68 - movs r0, 0x1 - strh r0, [r2, 0x3C] -_0812EF68: - pop {r0} - bx r0 - thumb_func_end sub_812EF54 - - thumb_func_start sub_8105B88 -sub_8105B88: @ 812EF6C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8105B88 - - thumb_func_start sub_8105BB4 -sub_8105BB4: @ 812EF98 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, =gUnknown_085A78C8 - lsrs r1, 22 - adds r3, r1, r3 - ldr r5, [r3] - ldr r3, =gUnknown_085A783A - adds r4, r1, r3 - movs r6, 0 - ldrsh r4, [r4, r6] - adds r3, 0x2 - adds r1, r3 - movs r6, 0 - ldrsh r3, [r1, r6] - lsls r2, 16 - asrs r2, 16 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8105BF8 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8105BB4 - - thumb_func_start sub_8105BF8 -sub_8105BF8: @ 812EFDC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - adds r4, r0, 0 - mov r8, r1 - adds r1, r2, 0 - adds r2, r3, 0 - ldr r5, [sp, 0x34] - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - mov r9, r5 - ldr r0, =gUnknown_085A8264 - lsrs r4, 22 - adds r0, r4, r0 - mov r3, sp - ldr r0, [r0] - ldm r0!, {r5-r7} - stm r3!, {r5-r7} - ldm r0!, {r5-r7} - stm r3!, {r5-r7} - ldr r0, =gUnknown_03001188 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp, 0xC] - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - mov r0, sp - movs r3, 0x10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, =gSprites - adds r2, r0, r1 - ldrb r0, [r2, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r2, 0x5] - mov r0, r8 - str r0, [r2, 0x1C] - mov r5, r9 - strh r5, [r2, 0x3A] - movs r0, 0x1 - strh r0, [r2, 0x3C] - ldr r0, =gUnknown_085A82CC - adds r4, r0 - ldr r1, [r4] - cmp r1, 0 - beq _0812F056 - adds r0, r2, 0 - bl SetSubspriteTables -_0812F056: - adds r0, r7, 0 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8105BF8 - - thumb_func_start sub_812F078 -sub_812F078: @ 812F078 - movs r1, 0 - strh r1, [r0, 0x3C] - bx lr - thumb_func_end sub_812F078 - - thumb_func_start sub_812F080 -sub_812F080: @ 812F080 - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r1, =gUnknown_085A761E - mov r0, sp - movs r2, 0x8 - bl memcpy - add r5, sp, 0x8 - ldr r1, =gUnknown_085A7626 - adds r0, r5, 0 - movs r2, 0x8 - bl memcpy - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _0812F0C6 - adds r3, r4, 0 - adds r3, 0x42 - ldrb r2, [r3] - lsls r0, r2, 26 - lsrs r0, 26 - movs r1, 0x1 - eors r1, r0 - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0 - strh r0, [r4, 0x30] -_0812F0C6: - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x42 - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - beq _0812F0F2 - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, 0x26] -_0812F0F2: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F080 - - thumb_func_start sub_812F104 -sub_812F104: @ 812F104 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r3] - bl sub_812F080 - pop {r0} - bx r0 - thumb_func_end sub_812F104 - - thumb_func_start sub_812F11C -sub_812F11C: @ 812F11C - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - bl sub_812F080 - pop {r0} - bx r0 - thumb_func_end sub_812F11C - - thumb_func_start sub_812F134 -sub_812F134: @ 812F134 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x1 - orrs r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - bl sub_812F080 - pop {r0} - bx r0 - thumb_func_end sub_812F134 - - thumb_func_start sub_812F150 -sub_812F150: @ 812F150 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _0812F184 - cmp r0, 0x1 - bgt _0812F166 - cmp r0, 0 - beq _0812F170 - b _0812F1B4 -_0812F166: - cmp r0, 0x2 - beq _0812F194 - cmp r0, 0x3 - beq _0812F1B0 - b _0812F1B4 -_0812F170: - ldrh r0, [r2, 0x20] - adds r0, 0x4 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xCF - ble _0812F1B4 - movs r0, 0xD0 - strh r0, [r2, 0x20] - b _0812F1A2 -_0812F184: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _0812F1B4 - b _0812F1A2 -_0812F194: - ldrh r0, [r2, 0x20] - adds r0, 0x4 - strh r0, [r2, 0x20] - lsls r0, 16 - ldr r1, =0x010f0000 - cmp r0, r1 - ble _0812F1B4 -_0812F1A2: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - b _0812F1B4 - .pool -_0812F1B0: - movs r0, 0 - strh r0, [r2, 0x3C] -_0812F1B4: - pop {r0} - bx r0 - thumb_func_end sub_812F150 - - thumb_func_start sub_812F1B8 -sub_812F1B8: @ 812F1B8 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _0812F1EC - cmp r0, 0x1 - bgt _0812F1CE - cmp r0, 0 - beq _0812F1D8 - b _0812F216 -_0812F1CE: - cmp r0, 0x2 - beq _0812F1FC - cmp r0, 0x3 - beq _0812F212 - b _0812F216 -_0812F1D8: - ldrh r0, [r1, 0x20] - subs r0, 0x4 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - bgt _0812F216 - movs r0, 0xD0 - strh r0, [r1, 0x20] - b _0812F20A -_0812F1EC: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _0812F216 - b _0812F20A -_0812F1FC: - ldrh r0, [r1, 0x20] - subs r0, 0x4 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x90 - bgt _0812F216 -_0812F20A: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _0812F216 -_0812F212: - movs r0, 0 - strh r0, [r1, 0x3C] -_0812F216: - pop {r0} - bx r0 - thumb_func_end sub_812F1B8 - - thumb_func_start sub_812F21C -sub_812F21C: @ 812F21C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bhi _0812F2C6 - lsls r0, 2 - ldr r1, =_0812F238 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0812F238: - .4byte _0812F250 - .4byte _0812F268 - .4byte _0812F288 - .4byte _0812F29C - .4byte _0812F2AC - .4byte _0812F2C2 -_0812F250: - ldr r0, =sSlotMachine - ldr r0, [r0] - ldrb r1, [r0, 0xA] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0812F268: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0812F2C6 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x30] - b _0812F2C6 - .pool -_0812F288: - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xCF - ble _0812F2C6 - movs r0, 0xD0 - strh r0, [r4, 0x20] - b _0812F2BA -_0812F29C: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _0812F2C6 - b _0812F2BA -_0812F2AC: - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF7 - ble _0812F2C6 -_0812F2BA: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _0812F2C6 -_0812F2C2: - movs r0, 0 - strh r0, [r4, 0x3C] -_0812F2C6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812F21C - - thumb_func_start sub_812F2CC -sub_812F2CC: @ 812F2CC - push {lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _0812F2FA - cmp r0, 0x1 - bgt _0812F2E2 - cmp r0, 0 - beq _0812F2E8 - b _0812F368 -_0812F2E2: - cmp r0, 0x2 - beq _0812F318 - b _0812F368 -_0812F2E8: - adds r2, r3, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] -_0812F2FA: - ldrh r0, [r3, 0x22] - adds r0, 0x8 - strh r0, [r3, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _0812F368 - movs r0, 0x70 - strh r0, [r3, 0x22] - movs r0, 0x10 - strh r0, [r3, 0x30] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _0812F368 -_0812F318: - movs r0, 0x32 - ldrsh r2, [r3, r0] - cmp r2, 0 - bne _0812F35E - ldrh r0, [r3, 0x22] - ldrh r1, [r3, 0x30] - subs r0, r1 - strh r0, [r3, 0x22] - negs r1, r1 - strh r1, [r3, 0x30] - ldrh r0, [r3, 0x34] - adds r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _0812F35E - lsls r0, r1, 16 - asrs r0, 18 - strh r0, [r3, 0x30] - strh r2, [r3, 0x34] - adds r1, r0, 0 - cmp r1, 0 - bne _0812F35E - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - strh r1, [r3, 0x3C] - adds r2, r3, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0812F35E: - ldrh r0, [r3, 0x32] - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r3, 0x32] -_0812F368: - pop {r0} - bx r0 - thumb_func_end sub_812F2CC - - thumb_func_start sub_812F36C -sub_812F36C: @ 812F36C - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0812F37E - cmp r0, 0x1 - beq _0812F394 - b _0812F3B0 -_0812F37E: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _0812F3B0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _0812F3B0 -_0812F394: - ldrh r0, [r1, 0x22] - adds r0, 0x2 - strh r0, [r1, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _0812F3B0 - movs r0, 0x30 - strh r0, [r1, 0x22] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - movs r0, 0 - strh r0, [r1, 0x3C] -_0812F3B0: - pop {r0} - bx r0 - thumb_func_end sub_812F36C - - thumb_func_start sub_812F3B4 -sub_812F3B4: @ 812F3B4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0812F3C6 - cmp r0, 0x1 - beq _0812F416 - b _0812F468 -_0812F3C6: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _0812F468 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x5 - strh r0, [r4, 0x30] - ldrb r0, [r4, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r4, 0x30] - lsls r1, r0, 4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 16 - movs r0, 0x4C - bl SetGpuReg - b _0812F468 -_0812F416: - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r4, 0x30] - subs r0, r1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _0812F42C - movs r0, 0 - strh r0, [r4, 0x30] -_0812F42C: - ldrh r0, [r4, 0x30] - lsls r1, r0, 4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 16 - movs r0, 0x4C - bl SetGpuReg - ldrh r1, [r4, 0x32] - movs r0, 0xFF - ands r0, r1 - adds r0, 0x80 - strh r0, [r4, 0x32] - movs r0, 0x30 - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _0812F468 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_0812F468: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812F3B4 - - thumb_func_start sub_812F470 -sub_812F470: @ 812F470 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x2 - bgt _0812F4C0 - ldr r1, =gUnknown_085A8510 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0812F4FC - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - movs r0, 0 - strh r0, [r5, 0x32] - b _0812F4FC - .pool -_0812F4C0: - ldr r1, =gUnknown_085A8510 - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r5, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _0812F4FC - strh r1, [r5, 0x30] - strh r1, [r5, 0x32] -_0812F4FC: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnimIfDifferent - movs r0, 0 - strh r0, [r5, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F470 - - thumb_func_start sub_812F514 -sub_812F514: @ 812F514 - push {r4-r6,lr} - sub sp, 0x30 - adds r4, r0, 0 - ldr r1, =gUnknown_085A762E - mov r0, sp - movs r2, 0x10 - bl memcpy - add r6, sp, 0x10 - ldr r1, =gUnknown_085A763E - adds r0, r6, 0 - movs r2, 0x10 - bl memcpy - add r5, sp, 0x20 - ldr r1, =gUnknown_085A764E - adds r0, r5, 0 - movs r2, 0x10 - bl memcpy - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0812F58C - cmp r0, 0x1 - bgt _0812F55C - cmp r0, 0 - beq _0812F562 - b _0812F5D8 - .pool -_0812F55C: - cmp r0, 0x2 - beq _0812F5A0 - b _0812F5D8 -_0812F562: - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r0, r6, r0 - ldrh r0, [r0] - strh r0, [r4, 0x26] - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0812F58C: - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0812F5D8 - b _0812F5D2 -_0812F5A0: - ldrh r0, [r4, 0x24] - movs r2, 0x24 - ldrsh r1, [r4, r2] - cmp r1, 0 - ble _0812F5AE - subs r0, 0x4 - b _0812F5B4 -_0812F5AE: - cmp r1, 0 - bge _0812F5B6 - adds r0, 0x4 -_0812F5B4: - strh r0, [r4, 0x24] -_0812F5B6: - ldrh r0, [r4, 0x26] - movs r2, 0x26 - ldrsh r1, [r4, r2] - cmp r1, 0 - ble _0812F5C4 - subs r0, 0x4 - b _0812F5CA -_0812F5C4: - cmp r1, 0 - bge _0812F5CC - adds r0, 0x4 -_0812F5CA: - strh r0, [r4, 0x26] -_0812F5CC: - ldr r0, [r4, 0x24] - cmp r0, 0 - bne _0812F5D8 -_0812F5D2: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0812F5D8: - add sp, 0x30 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812F514 - - thumb_func_start sub_812F5E0 -sub_812F5E0: @ 812F5E0 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r1, =gUnknown_085A765E - mov r0, sp - movs r2, 0x10 - bl memcpy - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0812F602 - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0xC - strh r0, [r4, 0x30] -_0812F602: - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0812F63C - subs r0, r1, 0x1 - strh r0, [r4, 0x30] -_0812F63C: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F5E0 - - thumb_func_start sub_812F648 -sub_812F648: @ 812F648 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0812F694 - cmp r0, 0x1 - bgt _0812F660 - cmp r0, 0 - beq _0812F66A - b _0812F76C -_0812F660: - cmp r0, 0x2 - beq _0812F6E0 - cmp r0, 0x3 - beq _0812F71C - b _0812F76C -_0812F66A: - ldr r0, =sSlotMachine - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x5C - movs r0, 0x2F - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x3F - strh r0, [r1] - subs r1, 0x4 - ldr r0, =0x00002088 - strh r0, [r1] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_0812F694: - ldrh r0, [r5, 0x30] - adds r2, r0, 0x2 - strh r2, [r5, 0x30] - adds r0, 0xB2 - strh r0, [r5, 0x32] - movs r1, 0xF0 - subs r1, r2 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - ble _0812F6B0 - movs r0, 0xD0 - strh r0, [r5, 0x32] -_0812F6B0: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xCF - bgt _0812F6BC - movs r0, 0xD0 - strh r0, [r5, 0x34] -_0812F6BC: - ldr r0, =sSlotMachine - ldr r2, [r0] - ldrh r0, [r5, 0x32] - lsls r0, 8 - ldrh r1, [r5, 0x34] - orrs r0, r1 - adds r1, r2, 0 - adds r1, 0x58 - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x33 - ble _0812F76C - b _0812F75E - .pool -_0812F6E0: - ldr r6, =sSlotMachine - ldr r0, [r6] - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812F76C - ldr r1, =SpriteCallbackDummy - movs r4, 0 - str r4, [sp] - movs r0, 0x5 - movs r2, 0xD0 - movs r3, 0x74 - bl sub_8104D30 - ldr r2, [r6] - adds r1, r2, 0 - adds r1, 0x58 - ldr r0, =0x0000c0e0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xD1 - lsls r0, 7 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2F - strh r0, [r1] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - strh r4, [r5, 0x30] -_0812F71C: - ldrh r0, [r5, 0x30] - adds r2, r0, 0x2 - strh r2, [r5, 0x30] - adds r0, 0xC2 - strh r0, [r5, 0x32] - movs r1, 0xE0 - subs r1, r2 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - ble _0812F738 - movs r0, 0xD0 - strh r0, [r5, 0x32] -_0812F738: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xCF - bgt _0812F744 - movs r0, 0xD0 - strh r0, [r5, 0x34] -_0812F744: - ldr r0, =sSlotMachine - ldr r2, [r0] - ldrh r0, [r5, 0x32] - lsls r0, 8 - ldrh r1, [r5, 0x34] - orrs r0, r1 - adds r1, r2, 0 - adds r1, 0x58 - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0xF - ble _0812F76C -_0812F75E: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r1, r2, 0 - adds r1, 0x5C - movs r0, 0x3F - strh r0, [r1] -_0812F76C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F648 - - thumb_func_start nullsub_101 -nullsub_101: @ 812F780 - bx lr - thumb_func_end nullsub_101 - - thumb_func_start sub_812F784 -sub_812F784: @ 812F784 - push {lr} - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_812F784 - - thumb_func_start sub_812F794 -sub_812F794: @ 812F794 - push {r4,lr} - ldr r0, =gUnknown_085A8520 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F794 - - thumb_func_start sub_812F7C0 -sub_812F7C0: @ 812F7C0 - ldr r0, =sSlotMachine - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x58 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xA0 - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x5C - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .pool - thumb_func_end sub_812F7C0 - - thumb_func_start sub_812F7E4 -sub_812F7E4: @ 812F7E4 - push {r4-r6,lr} - bl sub_812F8A0 - ldr r4, =gUnknown_0203AAD4 - movs r0, 0xC8 - lsls r0, 6 - bl Alloc - adds r1, r0, 0 - str r1, [r4] - ldr r0, =gSlotMachineReelTime_Gfx - bl LZDecompressWram - ldr r4, =gUnknown_0203AAD8 - movs r0, 0xD8 - lsls r0, 6 - bl Alloc - adds r1, r0, 0 - str r1, [r4] - ldr r0, =gUnknown_085A858C - bl LZDecompressWram - ldr r4, =gUnknown_0203AB30 - movs r0, 0xB0 - bl AllocZeroed - str r0, [r4] - movs r3, 0 - ldr r5, =gUnknown_085A8334 - adds r6, r4, 0 -_0812F822: - ldr r2, [r4] - lsls r1, r3, 3 - adds r2, r1, r2 - adds r1, r5 - ldr r0, [r1] - str r0, [r2] - ldrh r0, [r1, 0x4] - strh r0, [r2, 0x4] - ldrh r0, [r1, 0x6] - strh r0, [r2, 0x6] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x15 - bls _0812F822 - ldr r3, [r6] - adds r2, r3, 0 - adds r2, 0x88 - ldr r0, =gUnknown_0203AAD4 - ldr r1, [r0] - movs r4, 0xA0 - lsls r4, 4 - adds r0, r1, r4 - str r0, [r2] - adds r2, 0x8 - movs r4, 0xA0 - lsls r4, 5 - adds r0, r1, r4 - str r0, [r2] - adds r2, 0x8 - movs r4, 0xB0 - lsls r4, 5 - adds r0, r1, r4 - str r0, [r2] - adds r0, r3, 0 - adds r0, 0xA0 - movs r2, 0xC8 - lsls r2, 5 - adds r1, r2 - str r1, [r0] - adds r0, r3, 0 - bl LoadSpriteSheets - ldr r0, =gUnknown_085A8544 - bl LoadSpritePalettes - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F7E4 - - thumb_func_start sub_812F8A0 -sub_812F8A0: @ 812F8A0 - push {r4-r6,lr} - ldr r5, =gUnknown_0203AB2C - movs r0, 0x8 - bl AllocZeroed - str r0, [r5] - ldr r4, =gUnknown_0203AAE0 - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - str r0, [r4] - adds r3, r0, 0 - movs r1, 0 - adds r6, r4, 0 - ldr r0, =gUnknown_085A83E4 - ldr r4, [r0] -_0812F8C2: - movs r2, 0 - adds r1, 0x1 -_0812F8C6: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, 0x1 - cmp r2, 0x1F - bls _0812F8C6 - lsls r0, r1, 24 - lsrs r1, r0, 24 - cmp r1, 0x3F - bls _0812F8C2 - ldr r0, [r5] - ldr r1, [r6] - str r1, [r0] - movs r1, 0x80 - lsls r1, 4 - strh r1, [r0, 0x4] - movs r1, 0x11 - strh r1, [r0, 0x6] - bl LoadSpriteSheet - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F8A0 - - thumb_func_start sub_812F908 -sub_812F908: @ 812F908 - push {r4,r5,lr} - ldr r4, =gUnknown_0203AAC8 - movs r5, 0x88 - lsls r5, 6 - adds r0, r5, 0 - bl Alloc - adds r1, r0, 0 - str r1, [r4] - ldr r0, =gSlotMachineMenu_Gfx - bl LZDecompressWram - ldr r1, [r4] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl LoadBgTiles - ldr r0, =gSlotMachineMenu_Pal - movs r1, 0 - movs r2, 0xA0 - bl LoadPalette - ldr r0, =gUnknown_085A8524 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F908 - - thumb_func_start sub_812F958 -sub_812F958: @ 812F958 - push {lr} - bl sub_812F968 - bl sub_812F980 - pop {r0} - bx r0 - thumb_func_end sub_812F958 - - thumb_func_start sub_812F968 -sub_812F968: @ 812F968 - push {lr} - ldr r1, =gSlotMachineMenu_Tilemap - movs r2, 0xA0 - lsls r2, 3 - movs r0, 0x2 - movs r3, 0 - bl LoadBgTilemap - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F968 - - thumb_func_start sub_812F980 -sub_812F980: @ 812F980 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r1, 0x4 - ldr r0, =gUnknown_0203AAD0 - mov r8, r0 -_0812F98E: - movs r0, 0 - lsls r1, 16 - mov r9, r1 -_0812F994: - mov r2, r8 - ldr r1, [r2] - mov r2, r9 - asrs r6, r2, 16 - lsls r4, r0, 16 - asrs r4, 16 - adds r5, r6, r4 - adds r3, r5, 0 - adds r3, 0xA0 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x3 - movs r2, 0x2 - bl LoadBgTilemap - mov r0, r8 - ldr r1, [r0] - adds r1, 0x2 - movs r2, 0xD0 - lsls r2, 1 - adds r3, r5, r2 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x3 - movs r2, 0x2 - bl LoadBgTilemap - mov r0, r8 - ldr r1, [r0] - adds r1, 0x4 - adds r3, r5, 0 - adds r3, 0xC0 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x3 - movs r2, 0x2 - bl LoadBgTilemap - mov r2, r8 - ldr r1, [r2] - adds r1, 0x6 - movs r0, 0xC0 - lsls r0, 1 - adds r7, r0, 0 - adds r3, r5, r7 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x3 - movs r2, 0x2 - bl LoadBgTilemap - adds r4, 0x1 - lsls r4, 16 - lsrs r0, r4, 16 - asrs r4, 16 - cmp r4, 0x3 - ble _0812F994 - mov r2, r8 - ldr r1, [r2] - adds r1, 0x8 - adds r3, r6, 0 - adds r3, 0xC0 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x3 - movs r2, 0x2 - bl LoadBgTilemap - mov r0, r8 - ldr r1, [r0] - adds r1, 0xA - adds r3, r6, r7 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x3 - movs r2, 0x2 - bl LoadBgTilemap - movs r0, 0x7 -_0812FA32: - mov r2, r8 - ldr r1, [r2] - adds r1, 0xC - lsls r4, r0, 16 - asrs r4, 16 - lsls r3, r4, 5 - mov r0, r9 - asrs r5, r0, 16 - adds r3, r5, r3 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x3 - movs r2, 0x2 - bl LoadBgTilemap - adds r4, 0x1 - lsls r4, 16 - lsrs r0, r4, 16 - asrs r4, 16 - cmp r4, 0xB - ble _0812FA32 - adds r0, r5, 0x5 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _0812F98E - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812F980 - - thumb_func_start sub_81065A8 -sub_81065A8: @ 812FA78 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, [sp, 0x10] - ldr r6, =gUnknown_0203AADC - ldr r0, [r6] - strh r1, [r0] - ldr r1, [r6] - strh r2, [r1, 0x2] - strh r3, [r1, 0x4] - strh r5, [r1, 0x6] - lsls r4, 16 - asrs r5, r4, 16 - movs r0, 0xF0 - lsls r0, 17 - adds r4, r0 - lsrs r4, 16 - movs r0, 0x2 - movs r2, 0x2 - adds r3, r4, 0 - bl LoadBgTilemap - ldr r1, [r6] - adds r1, 0x2 - ldr r0, =0x000001e1 - adds r3, r5, r0 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x2 - movs r2, 0x2 - bl LoadBgTilemap - ldr r1, [r6] - adds r1, 0x4 - movs r0, 0x80 - lsls r0, 2 - adds r3, r5, r0 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x2 - movs r2, 0x2 - bl LoadBgTilemap - ldr r1, [r6] - adds r1, 0x6 - ldr r0, =0x00000201 - adds r5, r0 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0x2 - movs r2, 0x2 - adds r3, r5, 0 - bl LoadBgTilemap - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81065A8 - - thumb_func_start sub_81065DC -sub_81065DC: @ 812FAF4 - push {lr} - ldr r1, =gUnknown_08DCEC70 - movs r2, 0xA0 - lsls r2, 3 - movs r0, 0x2 - movs r3, 0 - bl LoadBgTilemap - movs r0, 0x3 - bl HideBg - pop {r0} - bx r0 - .pool - thumb_func_end sub_81065DC - - thumb_func_start SlotMachineSetup_9_0 -SlotMachineSetup_9_0: @ 812FB14 - ldr r1, =gUnknown_03001188 - ldr r0, =gUnknown_0203AAF4 - ldr r0, [r0] - str r0, [r1] - ldr r0, =gUnknown_0203AAF8 - ldr r0, [r0] - str r0, [r1, 0x4] - ldr r0, =gUnknown_0203AAFC - ldr r0, [r0] - str r0, [r1, 0x8] - ldr r0, =gUnknown_0203AB04 - ldr r0, [r0] - str r0, [r1, 0xC] - ldr r0, =gUnknown_0203AB08 - ldr r0, [r0] - str r0, [r1, 0x10] - ldr r0, =gUnknown_0203AB18 - ldr r0, [r0] - str r0, [r1, 0x14] - ldr r0, =gUnknown_0203AB1C - ldr r0, [r0] - str r0, [r1, 0x18] - ldr r0, =gUnknown_0203AB20 - ldr r0, [r0] - str r0, [r1, 0x1C] - ldr r0, =gUnknown_0203AB24 - ldr r0, [r0] - str r0, [r1, 0x20] - ldr r0, =gUnknown_0203AB28 - ldr r0, [r0] - str r0, [r1, 0x24] - ldr r0, =gUnknown_0203AB00 - ldr r0, [r0] - str r0, [r1, 0x28] - str r0, [r1, 0x2C] - str r0, [r1, 0x30] - str r0, [r1, 0x34] - ldr r0, =gUnknown_0203AB0C - ldr r0, [r0] - str r0, [r1, 0x38] - str r0, [r1, 0x3C] - str r0, [r1, 0x40] - str r0, [r1, 0x44] - str r0, [r1, 0x48] - ldr r0, =gUnknown_0203AB10 - ldr r0, [r0] - str r0, [r1, 0x4C] - str r0, [r1, 0x50] - str r0, [r1, 0x54] - ldr r0, =gUnknown_0203AB14 - ldr r0, [r0] - str r0, [r1, 0x58] - str r0, [r1, 0x5C] - str r0, [r1, 0x60] - movs r0, 0 - str r0, [r1, 0x64] - bx lr - .pool - thumb_func_end SlotMachineSetup_9_0 - - thumb_func_start SlotMachineSetup_8_0 -SlotMachineSetup_8_0: @ 812FBC4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, =gUnknown_0203AAF4 - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r6, =gUnknown_0203AAD4 - ldr r1, [r6] - str r1, [r0] - movs r5, 0xC0 - lsls r5, 3 - strh r5, [r0, 0x4] - ldr r4, =gUnknown_0203AAF8 - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - adds r1, r5 - str r1, [r0] - movs r1, 0x80 - lsls r1, 2 - mov r8, r1 - mov r2, r8 - strh r2, [r0, 0x4] - ldr r4, =gUnknown_0203AAFC - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r3, 0x80 - lsls r3, 4 - adds r1, r3 - str r1, [r0] - mov r4, r8 - strh r4, [r0, 0x4] - ldr r4, =gUnknown_0203AB00 - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r2, 0xA0 - lsls r2, 4 - adds r1, r2 - str r1, [r0] - mov r3, r8 - strh r3, [r0, 0x4] - ldr r4, =gUnknown_0203AB04 - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r4, 0xC0 - lsls r4, 4 - adds r1, r4 - str r1, [r0] - movs r5, 0xC0 - lsls r5, 2 - strh r5, [r0, 0x4] - ldr r4, =gUnknown_0203AB08 - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - str r1, [r0] - movs r1, 0x80 - lsls r1, 3 - strh r1, [r0, 0x4] - ldr r4, =gUnknown_0203AB0C - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r3, 0xA0 - lsls r3, 5 - adds r1, r3 - str r1, [r0] - mov r4, r8 - strh r4, [r0, 0x4] - ldr r4, =gUnknown_0203AB10 - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r2, 0xB0 - lsls r2, 5 - adds r1, r2 - str r1, [r0] - strh r5, [r0, 0x4] - ldr r4, =gUnknown_0203AB14 - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r3, 0xC8 - lsls r3, 5 - adds r1, r3 - str r1, [r0] - strh r5, [r0, 0x4] - ldr r4, =gUnknown_0203AB18 - movs r0, 0x10 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r4, 0xE0 - lsls r4, 5 - adds r2, r1, r4 - str r2, [r0] - mov r2, r8 - strh r2, [r0, 0x4] - movs r3, 0xF0 - lsls r3, 5 - adds r1, r3 - str r1, [r0, 0x8] - strh r2, [r0, 0xC] - ldr r4, =gUnknown_0203AB1C - movs r0, 0x8 - bl AllocZeroed - str r0, [r4] - ldr r1, [r6] - movs r4, 0x80 - lsls r4, 6 - adds r1, r4 - str r1, [r0] - movs r1, 0xA0 - lsls r1, 2 - strh r1, [r0, 0x4] - ldr r4, =gUnknown_0203AB20 - movs r0, 0x28 - bl AllocZeroed - str r0, [r4] - ldr r2, [r6] - movs r3, 0x8A - lsls r3, 6 - adds r1, r2, r3 - str r1, [r0] - movs r3, 0x80 - strh r3, [r0, 0x4] - movs r4, 0x8C - lsls r4, 6 - adds r1, r2, r4 - str r1, [r0, 0x8] - strh r3, [r0, 0xC] - adds r4, 0x80 - adds r1, r2, r4 - str r1, [r0, 0x10] - strh r3, [r0, 0x14] - adds r4, 0x80 - adds r1, r2, r4 - str r1, [r0, 0x18] - strh r3, [r0, 0x1C] - movs r1, 0x92 - lsls r1, 6 - adds r2, r1 - str r2, [r0, 0x20] - strh r3, [r0, 0x24] - ldr r4, =gUnknown_0203AB24 - movs r0, 0x10 - bl AllocZeroed - str r0, [r4] - ldr r2, [r6] - movs r3, 0x98 - lsls r3, 6 - adds r1, r2, r3 - str r1, [r0] - movs r1, 0x90 - lsls r1, 3 - strh r1, [r0, 0x4] - movs r4, 0xAA - lsls r4, 6 - adds r2, r4 - str r2, [r0, 0x8] - strh r1, [r0, 0xC] - ldr r4, =gUnknown_0203AB28 - movs r0, 0x10 - bl AllocZeroed - str r0, [r4] - ldr r2, [r6] - movs r3, 0xBC - lsls r3, 6 - adds r1, r2, r3 - str r1, [r0] - movs r1, 0xC0 - lsls r1, 1 - strh r1, [r0, 0x4] - movs r4, 0xC2 - lsls r4, 6 - adds r2, r4 - str r2, [r0, 0x8] - strh r1, [r0, 0xC] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end SlotMachineSetup_8_0 .align 2, 0 @ Don't pad with nop. diff --git a/data/slot_machine.s b/data/slot_machine.s index bbbba9652f..1a57f6abd1 100644 --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -2,195 +2,45 @@ .include "constants/constants.inc" .section .rodata - .align 2, 0 -gUnknown_085A7614:: @ 85A7614 - .2byte 16 - -gUnknown_085A7616:: @ 85A7616 - .2byte 0, 0x40, 0x80, 0xC0 - -gUnknown_085A761E:: @ 85A761E - .2byte 4, -4, 4, -4 - -gUnknown_085A7626:: @ 85A7626 - .2byte 4, 4, -4, -4 - -gUnknown_085A762E:: @ 85A762E - .2byte 0, 0xFFD8, 0, 0, 0x30, 0, 0x18, 0 - -gUnknown_085A763E:: @ 85A763E - .2byte 0xFFE0, 0, 0xFFE0, 0xFFD0, 0, 0xFFD0, 0, 0xFFD0 - -gUnknown_085A764E:: @ 85A764E - .2byte 16, 12, 16, 0, 0, 4, 8, 8 - -gUnknown_085A765E:: @ 85A765E - .2byte 0xA0, 0xC0, 0xE0, 0x68, 0x50, 0x40, 0x30, 0x18 - -sReelSymbols:: @ 85A766E - .byte 0, 4, 2, 6, 5, 3, 1, 3, 4, 5, 6, 2, 0, 5, 3, 6, 2, 1, 5, 3, 6 - .byte 0, 4, 6, 3, 2, 4, 6, 5, 5, 3, 1, 3, 6, 4, 2, 3, 6, 4, 3, 6, 4 - .byte 0, 5, 1, 6, 3, 2, 6, 3, 5, 2, 6, 3, 2, 5, 6, 3, 2, 5, 6, 3, 4 - -gUnknown_083ECCF1:: @ 85A76AD - .byte 1, 0, 5, 4, 3, 2, 0 - -gUnknown_083ECCF8:: @ 85A76B4 - .2byte 0, 6, 0, 10, 0, 2 - -gUnknown_083ECD04:: @ 85A76C0 - .byte 1, 1, 12 - .byte 1, 1, 14 - .byte 2, 2, 14 - .byte 2, 2, 14 - .byte 2, 3, 16 - .byte 3, 3, 16 - -gUnknown_083ECD16:: @ 85A76D2 - .byte 0x19, 0x19, 0x1E, 0x28, 0x28, 0x32 - .byte 0x19, 0x19, 0x1E, 0x1E, 0x23, 0x23 - .byte 0x19, 0x19, 0x1E, 0x19, 0x19, 0x1E - -gUnknown_083ECD28:: @ 85A76E4 - .byte 0x14, 0x19, 0x19, 0x14, 0x19, 0x19 - .byte 0xC, 0xF, 0xF, 0x12, 0x13, 0x16 - .byte 0x19, 0x19, 0x19, 0x1E, 0x1E, 0x28 - .byte 0x19, 0x19, 0x14, 0x14, 0xF, 0xF - .byte 0x28, 0x28, 0x23, 0x23, 0x28, 0x28 - -gUnknown_083ECD46:: @ 85A7702 - .byte 0xF3, 0xF3, 0xF3, 0x50, 0x50, 0x50, 0x50, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x5, 0x5, 0x5, 0x5 - .byte 0x5, 0x5, 0x5, 0x96, 0x96, 0x96, 0x96, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x64, 0x64, 0x64, 0x5 - .byte 0x4, 0x4, 0x4, 0x14, 0x14, 0x14, 0x14, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x64, 0x64, 0x64, 0x28 - .byte 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2D, 0x2D, 0x2D, 0x64 - .byte 0x1, 0x1, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x5, 0x5, 0x5, 0x64 - .byte 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x6 - -gUnknown_083ECDAC:: @ 85A7768 - .byte 0xF3, 0xF3, 0xF3, 0xC8, 0xC8, 0xC8, 0xC8, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0x46, 0x46, 0x46, 0x05 - .byte 0x05, 0x05, 0x05, 0x19, 0x19, 0x19, 0x19, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x02, 0x02, 0x02, 0x06 - .byte 0x04, 0x04, 0x04, 0x19, 0x19, 0x19, 0x19, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x28, 0x28, 0x28, 0x23 - .byte 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x64, 0x64, 0x64, 0x32 - .byte 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x28, 0x28, 0x28, 0x64 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x04, 0x3C - -gUnknown_083ECE12:: @ 85A77CE - .2byte 0x80, 0xAF, 0xC8, 0xE1, 0x100 - -gUnknown_083ECE1C:: @ 85A77D8 - .byte 10, 0, 5, 0 - .byte 10, 0, 10, 0 - .byte 10, 0, 15, 0 - .byte 10, 0, 25, 0 - .byte 10, 0, 35, 0 - -gUnknown_083ECE30:: @ 85A77EC - .byte 0, 0 - .byte 5, 0 - .byte 10, 0 - .byte 15, 0 - .byte 20, 0 - -gUnknown_083ECE3A:: @ 85A77F6 - .byte 6, 4, 3, 2, 5, 0, 0, 0 - -gUnknown_083ECE42:: @ 85A77FE - .byte 0x80, 0 - .byte 0x20, 0 - .byte 0x40, 0 - -gUnknown_083ECE48:: @ 85A7804 - .byte 16, 0 - .byte 8, 0 - .byte 4, 0 - .byte 2, 0 - .byte 1, 0 - -sSym2Match:: @ 85A780E - .byte 7, 8, 4, 3, 0, 5, 2, 0 - -sSlotMatchFlags:: @ 85A7816 - .2byte 1, 2, 4, 8, 16, 32, 64, 128, 256 - -sSlotPayouts:: @ 85A7828 - .2byte 2, 4, 0, 6, 12, 3, 0x5A, 0x12C, 0x12C - -gUnknown_085A783A:: @ 85A783A - .2byte 0xD0, 0x38 - .2byte 0xB8, 0 - .2byte 0xC8, 8 - .2byte 0xD8, 0x10 - .2byte 0xE8, 0x18 - .2byte 0xD0, 0x48 - .2byte 0xD0, 8 - .2byte 0xD0, 0x40 - .2byte 0xD0, 0x38 - .2byte 0xC0, 0x58 - .2byte 0xE0, 0x58 - .2byte 0xC0, 0x78 - .2byte 0xE0, 0x78 - .2byte 0x90, 0x38 - .2byte 0x110, 0x58 - .2byte 0xA8, 0x70 - .2byte 0xD0, 0x54 - .2byte 0xD0, 0x70 - .2byte 0xBC, 0x34 - .2byte 0xD0, 0x34 - .2byte 0xE4, 0x34 - .2byte 0xB8, 0x48 - .2byte 0xC4, 0x48 - .2byte 0xD0, 0x48 - .2byte 0xDC, 0x48 - .2byte 0xE8, 0x48 - .2byte 0xBC, 0x34 - .2byte 0xD0, 0x34 - .2byte 0xE4, 0x34 - .2byte 0xB8, 0x48 - .2byte 0xC4, 0x48 - .2byte 0xD0, 0x48 - .2byte 0xDC, 0x48 - .2byte 0xE8, 0x48 - .2byte 0x00, 0x00 - .2byte 0 +.align 2 - -gUnknown_085A78C8:: @ 85A78C8 - .4byte sub_812F078 - .4byte sub_812F36C - .4byte sub_812F36C - .4byte sub_812F36C - .4byte sub_812F36C - .4byte sub_812F3B4 - .4byte sub_812F2CC - .4byte sub_812F078 - .4byte sub_812F078 - .4byte sub_812F080 - .4byte sub_812F104 - .4byte sub_812F11C - .4byte sub_812F134 - .4byte sub_812F150 - .4byte sub_812F1B8 - .4byte sub_812F21C - .4byte sub_812F078 - .4byte sub_812F470 - .4byte sub_812F514 - .4byte sub_812F514 - .4byte sub_812F514 - .4byte sub_812F514 - .4byte sub_812F514 - .4byte sub_812F514 - .4byte sub_812F514 - .4byte sub_812F514 - .4byte sub_812F5E0 - .4byte sub_812F5E0 - .4byte sub_812F5E0 - .4byte sub_812F5E0 - .4byte sub_812F5E0 - .4byte sub_812F5E0 - .4byte sub_812F5E0 - .4byte sub_812F5E0 - .4byte sub_812F648 +gUnknown_083ECF0C:: @ 85A78C8 + .4byte sub_8105C64 + .4byte sub_8105F54 + .4byte sub_8105F54 + .4byte sub_8105F54 + .4byte sub_8105F54 + .4byte sub_8105F9C + .4byte sub_8105EB4 + .4byte sub_8105C64 + .4byte sub_8105C64 + .4byte sub_8105C6C + .4byte sub_8105CF0 + .4byte sub_8105D08 + .4byte sub_8105D20 + .4byte sub_8105D3C + .4byte sub_8105DA4 + .4byte sub_8105E08 + .4byte sub_8105C64 + .4byte sub_8106058 + .4byte sub_81060FC + .4byte sub_81060FC + .4byte sub_81060FC + .4byte sub_81060FC + .4byte sub_81060FC + .4byte sub_81060FC + .4byte sub_81060FC + .4byte sub_81060FC + .4byte sub_81061C8 + .4byte sub_81061C8 + .4byte sub_81061C8 + .4byte sub_81061C8 + .4byte sub_81061C8 + .4byte sub_81061C8 + .4byte sub_81061C8 + .4byte sub_81061C8 + .4byte sub_8106230 gUnknown_085A7954:: @ 85A7954 .byte 0x19 @@ -348,13 +198,13 @@ gUnknown_083ED048:: @ 85A7A04 .4byte gUnknown_085A79B4 gUnknown_083ED064:: @ 85A7A20 - .4byte sub_812F7C0 - .4byte sub_812F784 - .4byte sub_812F794 - .4byte nullsub_101 - .4byte nullsub_101 - .4byte sub_812F794 - .4byte sub_812F794 + .4byte sub_810639C + .4byte sub_8106364 + .4byte sub_8106370 + .4byte nullsub_70 + .4byte nullsub_70 + .4byte sub_8106370 + .4byte sub_8106370 gUnknown_085A7A3C:: @ 85A7A3C .2byte 0 @@ -663,40 +513,40 @@ gSpriteTemplate_83ED444:: @ 85A7D10 spr_template 17, 0, gUnknown_085A7A74, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED45C:: @ 85A7D28 - spr_template 0xFFFF, 1, gUnknown_085A7A74, gUnknown_085A7C00, NULL, gDummySpriteAffineAnimTable, sub_812E424 + spr_template 0xFFFF, 1, gUnknown_085A7A74, gUnknown_085A7C00, NULL, gDummySpriteAffineAnimTable, sub_8105170 -gUnknown_085A7D40:: @ 85A7D40 +gSpriteTemplate_83ED474:: @ 85A7D40 spr_template 0xFFFF, 2, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy -gUnknown_085A7D58:: @ 85A7D58 +gSpriteTemplate_83ED48C:: @ 85A7D58 spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy -gUnknown_085A7D70:: @ 85A7D70 +gSpriteTemplate_83ED4A4:: @ 85A7D70 spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy -gUnknown_085A7D88:: @ 85A7D88 +gSpriteTemplate_83ED4BC:: @ 85A7D88 spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7C18, gUnknown_085A7A7C, gDummySpriteAffineAnimTable, sub_810535C -gUnknown_085A7DA0:: @ 85A7DA0 +gSpriteTemplate_83ED4D4:: @ 85A7DA0 spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AAC, gDummySpriteAffineAnimTable, SpriteCallbackDummy -gUnknown_085A7DB8:: @ 85A7DB8 +gSpriteTemplate_83ED4EC:: @ 85A7DB8 spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AB4, gDummySpriteAffineAnimTable, SpriteCallbackDummy -gUnknown_085A7DD0:: @ 85A7DD0 - spr_template 0xFFFF, 4, gUnknown_085A7A54, gUnknown_085A7C30, gUnknown_085A7ABC, gDummySpriteAffineAnimTable, sub_812E9E8 +gSpriteTemplate_83ED504:: @ 85A7DD0 + spr_template 0xFFFF, 4, gUnknown_085A7A54, gUnknown_085A7C30, gUnknown_085A7ABC, gDummySpriteAffineAnimTable, sub_810562C -gUnknown_085A7DE8:: @ 85A7DE8 - spr_template 0xFFFF, 7, gUnknown_085A7A64, gUnknown_085A7BF8, gUnknown_085A7ACC, gDummySpriteAffineAnimTable, sub_812EB48 +gSpriteTemplate_83ED51C:: @ 85A7DE8 + spr_template 0xFFFF, 7, gUnknown_085A7A64, gUnknown_085A7BF8, gUnknown_085A7ACC, gDummySpriteAffineAnimTable, sub_8105784 -gUnknown_085A7E00:: @ 85A7E00 - spr_template 0xFFFF, 5, gUnknown_085A7A5C, gUnknown_085A7C34, gUnknown_085A7AD4, gDummySpriteAffineAnimTable, sub_812EC64 +gSpriteTemplate_83ED534:: @ 85A7E00 + spr_template 0xFFFF, 5, gUnknown_085A7A5C, gUnknown_085A7C34, gUnknown_085A7AD4, gDummySpriteAffineAnimTable, sub_8105894 -gUnknown_085A7E18:: @ 85A7E18 - spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BFC, gUnknown_085A7AE4, gDummySpriteAffineAnimTable, sub_812ED20 +gSpriteTemplate_83ED54C:: @ 85A7E18 + spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BFC, gUnknown_085A7AE4, gDummySpriteAffineAnimTable, sub_810594C -gUnknown_085A7E30:: @ 85A7E30 - spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AEC, gUnknown_085A7C88, sub_812EE14 +gSpriteTemplate_83ED564:: @ 85A7E30 + spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AEC, gUnknown_085A7C88, sub_8105A38 gUnknown_085A7E48:: @ 85A7E48 spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy @@ -740,8 +590,8 @@ gUnknown_085A7F68:: @ 85A7F68 gUnknown_085A7F80:: @ 85A7F80 spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7C40, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy -gUnknown_085A7F98:: @ 85A7F98 - spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BF8, gUnknown_085A7AF4, gUnknown_085A7CDC, sub_812EF54 +gSpriteTemplate_83ED6CC:: @ 85A7F98 + spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BF8, gUnknown_085A7AF4, gUnknown_085A7CDC, sub_8105B70 gUnknown_085A7FB0:: @ 85A7FB0 subsprite -64, -64, 3, 0, 64x64 @@ -760,7 +610,7 @@ gUnknown_085A7FC8:: @ 85A7FC8 subsprite -32, 4, 1, 16, 32x8 subsprite 0, 4, 1, 20, 32x8 -gUnknown_085A7FE0:: @ 85A7FE0 +gSubspriteTables_83ED73C:: @ 85A7FE0 .4byte 6, gUnknown_085A7FC8 gUnknown_085A7FE8:: @ 85A7FE8 @@ -768,7 +618,7 @@ gUnknown_085A7FE8:: @ 85A7FE8 subsprite -32, 12, 1, 32, 32x8 subsprite 0, 12, 1, 36, 32x8 -gUnknown_085A7FF4:: @ 85A7FF4 +gSubspriteTables_83ED75C:: @ 85A7FF4 .4byte 3, gUnknown_085A7FE8 gUnknown_085A7FFC:: @ 85A7FFC @@ -778,7 +628,7 @@ gUnknown_085A7FFC:: @ 85A7FFC subsprite -32, 16, 1, 40, 32x8 subsprite 0, 16, 1, 44, 32x8 -gUnknown_085A8010:: @ 85A8010 +gSubspriteTables_83ED78C:: @ 85A8010 .4byte 5, gUnknown_085A7FFC gUnknown_085A8018:: @ 85A8018 @@ -787,7 +637,7 @@ gUnknown_085A8018:: @ 85A8018 subsprite -32, 0, 1, 8, 32x8 subsprite 0, 0, 1, 12, 32x8 -gUnknown_085A8028:: @ 85A8028 +gSubspriteTables_83ED7B4:: @ 85A8028 .4byte 4, gUnknown_085A8018 gUnknown_085A8030:: @ 85A8030 @@ -795,7 +645,7 @@ gUnknown_085A8030:: @ 85A8030 subsprite -8, -4, 1, 0, 16x8 subsprite -8, 4, 1, 0, 16x8 -gUnknown_085A803C:: @ 85A803C +gSubspriteTables_83ED7D4:: @ 85A803C .4byte 3, gUnknown_085A8030 gUnknown_085A8044:: @ 85A8044 @@ -1006,7 +856,7 @@ gUnknown_085A8244:: @ 85A8244 gUnknown_085A825C:: @ 85A825C .4byte 6, gUnknown_085A8244 -gUnknown_085A8264:: @ 85A8264 +gUnknown_083EDB5C:: @ 85A8264 .4byte gUnknown_085A7E48 .4byte gUnknown_085A7E60 .4byte gUnknown_085A7E78 @@ -1034,7 +884,7 @@ gUnknown_085A8264:: @ 85A8264 .4byte gUnknown_085A7F08 .4byte gDummySpriteTemplate -gUnknown_085A82CC:: @ 85A82CC +gUnknown_083EDBC4:: @ 85A82CC .4byte gUnknown_085A8058 .4byte gUnknown_085A8070 .4byte gUnknown_085A8088 @@ -1063,7 +913,7 @@ gUnknown_085A82CC:: @ 85A82CC .4byte NULL .align 2 -gUnknown_085A8334:: @ 85A8334 +sSlotMachineSpriteSheets:: @ 85A8334 obj_tiles gSlotMachineReelSymbol1Tiles, 0x0200, 0x0000 obj_tiles gSlotMachineReelSymbol2Tiles, 0x0200, 0x0001 obj_tiles gSlotMachineReelSymbol3Tiles, 0x0200, 0x0002 @@ -1085,7 +935,7 @@ gUnknown_085A8334:: @ 85A8334 .align 2 .byte 0, 0, 0, 0, 0, 2, 0x12, 0, 0, 0, 0, 0, 0, 2, 0x13, 0, 0, 0, 0, 0, 0, 3, 0x14, 0, 0, 0, 0, 0, 0, 3, 0x15, 0, 0, 0, 0, 0, 0, 0, 0, 0 -gUnknown_085A83E4:: @ 85A83E4 +gUnknown_083EDCDC:: @ 85A83E4 .4byte gUnknown_08DD19F8 @ might be a palette idk .byte 0x7B, 0x6F, 0x68, 0x69, 0xAB, 0x36, 0xFF, 0x7F, 0x50, 0x57, 0xC0, 0x7E, 0xBA, 2, 0xBA, 2, 0xFD, 1, 0xFD, 1 @@ -1157,20 +1007,20 @@ gUnknown_085A84D0:: @ 85A84D0 gUnknown_085A84F0:: @ 85A84F0 .incbin "graphics/slot_machine/85A84F0.gbapal" -gUnknown_085A8510:: @ 85A8510 +gUnknown_083EDE10:: @ 85A8510 .4byte gUnknown_085A84B0 .4byte gUnknown_085A84D0 .4byte gUnknown_085A84F0 .4byte gUnknown_08DCF230 -gUnknown_085A8520:: @ 85A8520 +gUnknown_083EDE20:: @ 85A8520 .4byte gUnknown_08DCF230 -gUnknown_085A8524:: @ 85A8524 +gPalette_83EDE24:: @ 85A8524 .incbin "graphics/slot_machine/85A8524.bin" .align 2 -gUnknown_085A8544:: @ 85A8544 +gSlotMachineSpritePalettes:: @ 85A8544 obj_pal gUnknown_08DCF170, 0 obj_pal gUnknown_08DCF190, 1 obj_pal gUnknown_08DCF1B0, 2 @@ -1181,7 +1031,7 @@ gUnknown_085A8544:: @ 85A8544 obj_pal gUnknown_08DCF1F0, 7 null_obj_pal -gUnknown_085A858C:: @ 85A858C +sReelTimeGfx:: @ 85A858C .incbin "graphics/slot_machine/reel_time_gfx.4bpp.lz" sReelTimeWindowTilemap:: @ 85A96E0 diff --git a/src/slot_machine.c b/src/slot_machine.c index 4ee4a2fe4f..ec5640b912 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -30,29 +30,31 @@ extern u16 *gUnknown_0203AAC8; extern u16 *gUnknown_0203AACC; extern u16 *gUnknown_0203AAD0; extern u16 *gUnknown_0203AADC; -extern void *gUnknown_0203AAF4; -extern void *gUnknown_0203AAF8; -extern void *gUnknown_0203AAFC; -extern void *gUnknown_0203AB00; -extern void *gUnknown_0203AB04; -extern void *gUnknown_0203AB08; -extern void *gUnknown_0203AB0C; -extern void *gUnknown_0203AB10; -extern void *gUnknown_0203AB14; -extern void *gUnknown_0203AB18; -extern void *gUnknown_0203AB1C; -extern void *gUnknown_0203AB20; -extern void *gUnknown_0203AB24; -extern void *gUnknown_0203AB28; -extern void *gUnknown_0203AAE4; -extern void *gUnknown_0203AAE8; -extern void *gUnknown_0203AAEC; -extern void *gUnknown_0203AAF0; -extern void *gUnknown_0203AAD4; -extern void *gUnknown_0203AAD8; -extern void *gUnknown_0203AAE0; -extern void *gUnknown_0203AB2C; -extern void *gUnknown_0203AB30; +extern struct SpriteFrameImage *gUnknown_0203AAF4; +extern struct SpriteFrameImage *gUnknown_0203AAF8; +extern struct SpriteFrameImage *gUnknown_0203AAFC; +extern struct SpriteFrameImage *gUnknown_0203AB00; +extern struct SpriteFrameImage *gUnknown_0203AB04; +extern struct SpriteFrameImage *gUnknown_0203AB08; +extern struct SpriteFrameImage *gUnknown_0203AB0C; +extern struct SpriteFrameImage *gUnknown_0203AB10; +extern struct SpriteFrameImage *gUnknown_0203AB14; +extern struct SpriteFrameImage *gUnknown_0203AB18; +extern struct SpriteFrameImage *gUnknown_0203AB1C; +extern struct SpriteFrameImage *gUnknown_0203AB20; +extern struct SpriteFrameImage *gUnknown_0203AB24; +extern struct SpriteFrameImage *gUnknown_0203AB28; +extern struct SpriteFrameImage *gUnknown_0203AAE4; +extern struct SpriteFrameImage *gUnknown_0203AAE8; +extern struct SpriteFrameImage *gUnknown_0203AAEC; +extern struct SpriteFrameImage *gUnknown_0203AAF0; +extern u8 *gUnknown_0203AAD4; +extern u8 *gUnknown_0203AAD8; +extern u8 *gUnknown_0203AAE0; +extern struct SpriteSheet *gUnknown_0203AB2C; +extern struct SpriteSheet *gUnknown_0203AB30; + +extern struct SpriteFrameImage *gUnknown_03001188[]; // Text extern const u8 gText_YouDontHaveThreeCoins[]; @@ -61,6 +63,9 @@ extern const u8 gText_YouveGot9999Coins[]; extern const u8 gText_YouveRunOutOfCoins[]; extern const u8 gText_ReelTimeHelp[]; +// gfx +extern const u8 gSlotMachineReelTime_Gfx[]; + enum { SLOT_MACHINE_TAG_7_RED, @@ -345,9 +350,7 @@ bool8 sub_81020C8(struct Task *task); /*static*/void sub_81064B8(void); /*static*/void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); /*static*/void sub_81065DC(void); -/*static*/void sub_812F908(void); /*static*/void sub_812F958(void); -/*static*/void sub_812F7E4(void); /*static*/void sub_812F968(void); void LoadSlotMachineWheelOverlay(void); u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); @@ -359,11 +362,28 @@ u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); /*static*/extern const u8 gUnknown_083ECE3A[]; /*static*/extern const u16 gUnknown_083ECE42[]; /*static*/extern const u16 gUnknown_083ECE48[]; +extern const s16 gUnknown_083ECE7E[][2]; +extern const SpriteCallback gUnknown_083ECF0C[]; +extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; +extern const struct SubspriteTable *const gUnknown_083EDBC4[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED6CC; +extern const struct SpriteTemplate gSpriteTemplate_83ED564; +extern const struct SpriteTemplate gSpriteTemplate_83ED54C; +extern const struct SpriteTemplate gSpriteTemplate_83ED534; +extern const u8 gUnknown_083ECC58[2]; // don't remove this until decompiled through gUnknown_083ECCF8 +extern const struct SpriteTemplate gSpriteTemplate_83ED51C; extern const u16 gUnknown_083ECE12[]; +extern const u16 *const gUnknown_083EDE10[]; extern const u16 gUnknown_083ECE1C[][2]; extern const u16 gUnknown_083ECE30[]; extern const u16 sSlotMatchFlags[]; extern const u16 sSlotPayouts[]; +extern const u8 *const gUnknown_083EDCE4; +extern const u8 *const gUnknown_083EDCDC; +extern const u8 sReelTimeGfx[]; +extern const struct SpriteSheet sSlotMachineSpriteSheets[]; +extern const struct SpritePalette gSlotMachineSpritePalettes[]; +extern const u16 *const gUnknown_083EDE20; extern const s16 gUnknown_083ECCF8[][2]; extern const struct BgTemplate gUnknown_085A7424[4]; extern const struct WindowTemplate gUnknown_085A7434[]; @@ -869,9 +889,9 @@ void SlotMachineSetup_4_0(void) void SlotMachineSetup_5_0(void) { - sub_812F908(); - sub_812F958(); - sub_812F7E4(); + sub_8106448(); + sub_81064B8(); + sub_81063C0(); LoadMessageBoxGfx(0, 0x200, 0xF0); LoadUserWindowBorderGfx(0, 0x214, 0xE0); PutWindowTilemap(0); @@ -3227,3 +3247,1245 @@ void sub_81050C4(void) gSprites[spriteId].oam.priority = 3; SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); } + +void sub_8105100(void) +{ + struct SpriteTemplate spriteTemplate; + u8 spriteId; + if (gUnknown_0203AAE4 == NULL) + gUnknown_0203AAE4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + + gUnknown_0203AAE4[0].data = gUnknown_0203AAD8 + (0 * 0x800); + gUnknown_0203AAE4[0].size = 0x800; + gUnknown_0203AAE4[1].data = gUnknown_0203AAD8 + (1 * 0x800); + gUnknown_0203AAE4[1].size = 0x800; + gUnknown_0203AAE4[2].data = gUnknown_0203AAD8 + (2 * 0x800); + gUnknown_0203AAE4[2].size = 0x800; + gUnknown_0203AAE4[3].data = gUnknown_0203AAD8 + (3 * 0x800); + gUnknown_0203AAE4[3].size = 0x800; + gUnknown_0203AAE4[4].data = gUnknown_0203AAD8 + (4 * 0x800); + gUnknown_0203AAE4[4].size = 0x800; + + spriteTemplate = gSpriteTemplate_83ED45C; + spriteTemplate.images = gUnknown_0203AAE4; + spriteId = CreateSprite(&spriteTemplate, 280, 80, 1); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].coordOffsetEnabled = TRUE; + sSlotMachine->unk3F = spriteId; +} + +void sub_810514C(void) +{ + DestroySprite(gSprites + sSlotMachine->unk3F); + if (gUnknown_0203AAE4 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAE4); +} + +void sub_8105170(struct Sprite *sprite) +{ + sprite->pos2.y = sprite->pos2.x = 0; + if (sprite->animNum == 4) + { + sprite->pos2.y = sprite->pos2.x = 8; + if ((sprite->animCmdIndex != 0 && sprite->animDelayCounter != 0) || (sprite->animCmdIndex == 0 && sprite->animDelayCounter == 0)) + sprite->pos2.y = -8; + } +} + +void sub_81051C0(void) +{ + struct SpriteTemplate spriteTemplate; + u8 spriteId; + struct Sprite *sprite; + + if (gUnknown_0203AAE8 == NULL) + gUnknown_0203AAE8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + + gUnknown_0203AAE8[0].data = gUnknown_0203AAD8 + 0x2800; + gUnknown_0203AAE8[0].size = 0x300; + spriteTemplate = gSpriteTemplate_83ED474; + spriteTemplate.images = gUnknown_0203AAE8; + spriteId = CreateSprite(&spriteTemplate, 368, 52, 7); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + SetSubspriteTables(sprite, gSubspriteTables_83ED73C); + sSlotMachine->unk49[0] = spriteId; + + if (gUnknown_0203AAEC == NULL) + gUnknown_0203AAEC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + + gUnknown_0203AAEC[0].data = gUnknown_0203AAD8 + 0x2800 + 0x300; + gUnknown_0203AAEC[0].size = 0x500; + spriteTemplate = gSpriteTemplate_83ED48C; + spriteTemplate.images = gUnknown_0203AAEC; + spriteId = CreateSprite(&spriteTemplate, 368, 84, 7); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + SetSubspriteTables(sprite, gSubspriteTables_83ED75C); + sSlotMachine->unk49[1] = spriteId; +} + +void sub_8105284_(void) +{ + struct SpriteTemplate spriteTemplate; + u8 spriteId; + struct Sprite *sprite; + + if (gUnknown_0203AAF0 == NULL) + gUnknown_0203AAF0 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + + gUnknown_0203AAF0[0].data = gUnknown_0203AAD8 + 0x3000; + gUnknown_0203AAF0[0].size = 0x600; + spriteTemplate = gSpriteTemplate_83ED4A4; + spriteTemplate.images = gUnknown_0203AAF0; + spriteId = CreateSprite(&spriteTemplate, 0xa8 - gSpriteCoordOffsetX, 0x50, 7); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + SetSubspriteTables(sprite, gSubspriteTables_83ED78C); + sSlotMachine->unk42 = spriteId; +} + +void sub_81052EC(void) +{ + u8 i; + s16 r5; + for (i = 0, r5 = 0; i < 3; i++, r5 += 20) + { + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4BC, 0x170, 0, 10); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + sprite->data[7] = r5; + sSlotMachine->unk4B[i] = spriteId; + } +} + +void sub_810535C(struct Sprite *sprite) +{ + s16 r0 = (u16)(sSlotMachine->unk14 + sprite->data[7]); + r0 %= 40; + sprite->pos1.y = r0 + 59; + StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20)); +} + +void sub_81053A0(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = 1; + SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); + sSlotMachine->unk4E[0] = spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x120, 0x68, 4); + sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = 1; + SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); + sSlotMachine->unk4E[1] = spriteId; +} + +void sub_810545C(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = 1; + SetSubspriteTables(sprite, gSubspriteTables_83ED7D4); + sSlotMachine->unk40 = spriteId; +} + +void sub_81054B8(void) +{ + u8 i; + + DestroySprite(&gSprites[sSlotMachine->unk40]); + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk49[i]]); + + if (gUnknown_0203AAE8 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAE8); + if (gUnknown_0203AAEC != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAEC); + + for (i = 0; i < 3; i++) + DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); +} + +void sub_8105524(void) +{ + u8 i; + + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk4E[i]]); +} + +void sub_8105554(void) +{ + DestroySprite(&gSprites[sSlotMachine->unk42]); + if (gUnknown_0203AAF0 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAF0); +} + +void sub_8105578(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->hFlip = TRUE; + sSlotMachine->unk50[0] = spriteId; + sprite->data[0] = 8; + sprite->data[1] = -1; + sprite->data[2] = -1; + sprite->data[7] = 0x20; + + spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0xb8, 0x20, 5); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sSlotMachine->unk50[1] = spriteId; + sprite->data[1] = 1; + sprite->data[2] = -1; + sprite->data[7] = 0x20; +} + +void sub_810562C(struct Sprite *sprite) +{ + if (sprite->data[0] != 0) + { + sprite->data[0]--; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->invisible = TRUE; + } + else + { + sprite->invisible = FALSE; + sprite->pos2.x += sprite->data[1]; + sprite->pos2.y += sprite->data[2]; + if (++sprite->data[3] >= 8) + { + sprite->data[0] = sprite->data[7]; + sprite->data[3] = 0; + } + } +} + +void sub_8105688(s16 a0) +{ + gSprites[sSlotMachine->unk50[0]].data[7] = a0; + gSprites[sSlotMachine->unk50[1]].data[7] = a0; +} + +void sub_81056C0(void) +{ + u8 i; + + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk50[i]]); +} + +void sub_81056F0(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 1; + gSprites[spriteId].data[5] = 0; + gSprites[spriteId].data[6] = 16; + gSprites[spriteId].data[7] = 8; + sSlotMachine->unk52[0] = spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x68, 0x50, 3); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].hFlip = TRUE; + sSlotMachine->unk52[1] = spriteId; +} + +void sub_8105784(struct Sprite *sprite) +{ + u8 sp[] = {16, 0}; + if (sprite->data[0] && --sprite->data[6] <= 0) + { + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, sp[sprite->data[5]], sp[sprite->data[5]], sp[sprite->data[5]]); + ++sprite->data[5]; + sprite->data[5] &= 1; + sprite->data[6] = sprite->data[7]; + } +} + +void sub_81057E8(s16 a0) +{ + gSprites[sSlotMachine->unk52[0]].data[7] = a0; +} + +void sub_8105804(void) +{ + u8 i; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk52[i]]); +} + +void sub_8105854(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); + gSprites[spriteId].oam.priority = 1; + sSlotMachine->unk41 = spriteId; +} + +void sub_8105894(struct Sprite *sprite) +{ + sprite->pos2.y = gSpriteCoordOffsetY; +} + +void sub_81058A0(void) +{ + DestroySprite(&gSprites[sSlotMachine->unk41]); +} + +void sub_81058C4(void) +{ + u8 i; + u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; + for (i = 0; i < 4; i++) + { + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED54C, 0x50 - gSpriteCoordOffsetX, 0x44, 0); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + sprite->data[0] = sp[i]; + sSlotMachine->unk54[i] = spriteId; + } +} + +void sub_810594C(struct Sprite *sprite) +{ + sprite->data[0] -= 2; + sprite->data[0] &= 0xff; + sprite->pos2.x = Cos(sprite->data[0], 20); + sprite->pos2.y = Sin(sprite->data[0], 6); + sprite->subpriority = 0; + if (sprite->data[0] >= 0x80) + { + sprite->subpriority = 2; + } + if (++sprite->data[1] >= 16) + { + sprite->hFlip ^= 1; + sprite->data[1] = 0; + } +} + +void sub_81059B8(void) +{ + u8 i; + for (i = 0; i < 4; i++) + { + DestroySprite(&gSprites[sSlotMachine->unk54[i]]); + } +} + +void sub_81059E8(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; + InitSpriteAffineAnim(sprite); + sSlotMachine->unk43 = spriteId; +} + +void sub_8105A38(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + if (sprite->affineAnimEnded) + sprite->data[0]++; + } + else if (sprite->data[0] == 1) + { + sprite->invisible ^= 1; + if (++sprite->data[2] >= 24) + { + sprite->data[0]++; + sprite->data[2] = 0; + } + } + else + { + sprite->invisible = TRUE; + if (++sprite->data[2] >= 16) + sprite->data[7] = 1; + } + sprite->data[1] &= 0xff; + sprite->data[1] += 16; + sprite->pos2.y -= (sprite->data[1] >> 8); +} + +u8 sub_8105ACC(void) +{ + return gSprites[sSlotMachine->unk43].data[7]; +} + +void sub_8105AEC(void) +{ + struct Sprite *sprite = &gSprites[sSlotMachine->unk43]; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); +} + +u8 sub_8105B1C(s16 x, s16 y) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 2; + sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; + InitSpriteAffineAnim(sprite); + return spriteId; +} + +void sub_8105B70(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + sprite->data[7] = 1; +} + +void sub_8105B88(u8 spriteId) +{ + struct Sprite *sprite = &gSprites[spriteId]; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); +} + +u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) +{ + return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); +} + +u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +{ + struct SpriteTemplate spriteTemplate; + u8 spriteId; + struct Sprite *sprite; + + spriteTemplate = *gUnknown_083EDB5C[templateIdx]; + spriteTemplate.images = gUnknown_03001188[templateIdx]; + spriteId = CreateSprite(&spriteTemplate, x, y, 16); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 3; + sprite->callback = callback; + sprite->data[6] = a4; + sprite->data[7] = 1; + if (gUnknown_083EDBC4[templateIdx]) + SetSubspriteTables(sprite, gUnknown_083EDBC4[templateIdx]); + return spriteId; +} + +void sub_8105C64(struct Sprite *sprite) +{ + sprite->data[7] = 0; +} + +void sub_8105C6C(struct Sprite *sprite) +{ + s16 sp0[] = {4, -4, 4, -4}; + s16 sp8[] = {4, 4, -4, -4}; + + if (sprite->data[1]++ >= 16) + { + sprite->subspriteTableNum ^= 1; + sprite->data[1] = 0; + } + sprite->pos2.x = 0; + sprite->pos2.y = 0; + if (sprite->subspriteTableNum != 0) + { + sprite->pos2.x = sp0[sprite->data[6]]; + sprite->pos2.y = sp8[sprite->data[6]]; + } +} + +void sub_8105CF0(struct Sprite *sprite) +{ + sprite->hFlip = TRUE; + sub_8105C6C(sprite); +} + +void sub_8105D08(struct Sprite *sprite) +{ + sprite->vFlip = TRUE; + sub_8105C6C(sprite); +} + +void sub_8105D20(struct Sprite *sprite) +{ + sprite->hFlip = TRUE; + sprite->vFlip = TRUE; + sub_8105C6C(sprite); +} + +void sub_8105D3C(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0xd0) + { + sprite->pos1.x = 0xd0; + sprite->data[0]++; + } + break; + case 1: + if (++sprite->data[1] > 90) + sprite->data[0]++; + break; + case 2: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0x110) + sprite->data[0]++; + break; + case 3: + sprite->data[7] = 0; + break; + } +} + +void sub_8105DA4(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->pos1.x -= 4; + if (sprite->pos1.x <= 0xd0) + { + sprite->pos1.x = 0xd0; + sprite->data[0]++; + } + break; + case 1: + if (++sprite->data[1] > 90) + sprite->data[0]++; + break; + case 2: + sprite->pos1.x -= 4; + if (sprite->pos1.x <= 0x90) + sprite->data[0]++; + break; + case 3: + sprite->data[7] = 0; + break; + } +} + +void sub_8105E08(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + StartSpriteAnim(sprite, sSlotMachine->unk0A - 1); + sprite->data[0]++; + // fallthrough + case 1: + if (++sprite->data[1] >= 4) + { + sprite->data[0]++; + sprite->data[1] = 0; + } + break; + case 2: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0xd0) + { + sprite->pos1.x = 0xd0; + sprite->data[0]++; + } + break; + case 3: + if (++sprite->data[1] > 90) + sprite->data[0]++; + break; + case 4: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0xf8) + sprite->data[0]++; + break; + case 5: + sprite->data[7] = 0; + break; + } +} + +void sub_8105EB4(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->animPaused = TRUE; + sprite->data[0]++; + // fallthrough + case 1: + sprite->pos1.y += 8; + if (sprite->pos1.y >= 0x70) + { + sprite->pos1.y = 0x70; + sprite->data[1] = 16; + sprite->data[0]++; + } + break; + case 2: + if (sprite->data[2] == 0) + { + sprite->pos1.y -= sprite->data[1]; + sprite->data[1] = -sprite->data[1]; + if (++sprite->data[3] >= 2) + { + sprite->data[1] >>= 2; + sprite->data[3] = 0; + if (sprite->data[1] == 0) + { + sprite->data[0]++; + sprite->data[7] = 0; + sprite->animPaused = FALSE; + } + } + } + sprite->data[2]++; + sprite->data[2] &= 0x07; + break; + } +} + +void sub_8105F54(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + if (++sprite->data[1] > 8) + sprite->data[0]++; + break; + case 1: + sprite->pos1.y += 2; + if (sprite->pos1.y >= 0x30) + { + sprite->pos1.y = 0x30; + sprite->data[0]++; + sprite->data[7] = 0; + } + break; + } +} + +void sub_8105F9C(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->invisible = TRUE; + if (++sprite->data[1] > 0x20) + { + sprite->data[0]++; + sprite->data[1] = 5; + sprite->oam.mosaic = TRUE; + sprite->invisible = FALSE; + StartSpriteAnim(sprite, 1); + SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->data[1] << 4) | sprite->data[1]) << 8); + } + break; + case 1: + sprite->data[1] -= (sprite->data[2] >> 8); + if (sprite->data[1] < 0) + sprite->data[1] = 0; + SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->data[1] << 4) | sprite->data[1]) << 8); + sprite->data[2] &= 0xff; + sprite->data[2] += 0x80; + if (sprite->data[1] == 0) + { + sprite->data[0]++; + sprite->data[7] = 0; + sprite->oam.mosaic = FALSE; + StartSpriteAnim(sprite, 0); + } + break; + } +} + +void sub_8106058(struct Sprite *sprite) +{ + if (sprite->data[1] < 3) + { + LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + if (++sprite->data[2] >= 4) + { + sprite->data[1]++; + sprite->data[2] = 0; + } + } + else + { + LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + if (++sprite->data[2] >= 25) + { + sprite->data[1] = 0; + sprite->data[2] = 0; + } + } + StartSpriteAnimIfDifferent(sprite, 1); + sprite->data[7] = 0; +} + +void sub_81060FC(struct Sprite *sprite) +{ + s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; + s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; + s16 sp20[] = {16, 12, 16, 0, 0, 4, 8, 8}; + + switch (sprite->data[0]) + { + case 0: + sprite->pos2.x = sp00[sprite->data[6]]; + sprite->pos2.y = sp10[sprite->data[6]]; + sprite->data[1] = sp20[sprite->data[6]]; + sprite->data[0]++; + // fallthrough + case 1: + if (sprite->data[1]-- == 0) + sprite->data[0]++; + break; + case 2: + if (sprite->pos2.x > 0) + sprite->pos2.x -= 4; + else if (sprite->pos2.x < 0) + sprite->pos2.x += 4; + + if (sprite->pos2.y > 0) + sprite->pos2.y -= 4; + else if (sprite->pos2.y < 0) + sprite->pos2.y += 4; + + if (sprite->pos2.x == 0 && sprite->pos2.y == 0) + sprite->data[0]++; + break; + } +} + +void sub_81061C8(struct Sprite *sprite) +{ + s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; + + if (sprite->data[0] == 0) + { + sprite->data[0]++; + sprite->data[1] = 12; + } + sprite->pos2.x = Cos(sp0[sprite->data[6]], sprite->data[1]); + sprite->pos2.y = Sin(sp0[sprite->data[6]], sprite->data[1]); + if (sprite->data[1] != 0) + sprite->data[1]--; +} + +void sub_8106230(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sSlotMachine->winIn = 0x2f; + sSlotMachine->winOut = 0x3f; + sSlotMachine->win0v = 0x2088; + sprite->invisible = TRUE; + sprite->data[0]++; + // fallthrough + case 1: + sprite->data[1] += 2; + sprite->data[2] = sprite->data[1] + 0xb0; + sprite->data[3] = 0xf0 - sprite->data[1]; + if (sprite->data[2] > 0xd0) + sprite->data[2] = 0xd0; + if (sprite->data[3] < 0xd0) + sprite->data[3] = 0xd0; + sSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; + if (sprite->data[1] > 0x33) + { + sprite->data[0]++; + sSlotMachine->winIn = 0x3f; + } + break; + case 2: + if (sSlotMachine->bet == 0) + break; + sub_8104D30(5, SpriteCallbackDummy, 0xd0, 0x74, 0); + sSlotMachine->win0h = 0xc0e0; + sSlotMachine->win0v = 0x6880; + sSlotMachine->winIn = 0x2f; + sprite->data[0]++; + sprite->data[1] = 0; + // fallthrough + case 3: + sprite->data[1] += 2; + sprite->data[2] = sprite->data[1] + 0xc0; + sprite->data[3] = 0xe0 - sprite->data[1]; + if (sprite->data[2] > 0xd0) + sprite->data[2] = 0xd0; + if (sprite->data[3] < 0xd0) + sprite->data[3] = 0xd0; + sSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; + if (sprite->data[1] > 0x0f) + { + sprite->data[0]++; + sSlotMachine->winIn = 0x3f; + } + break; + } +} + +void nullsub_70(void) +{ +} + +void sub_8106364(void) +{ + SetGpuReg(REG_OFFSET_MOSAIC, 0); +} + +void sub_8106370(void) +{ + LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); +} + +void sub_810639C(void) +{ + sSlotMachine->win0h = 0xf0; + sSlotMachine->win0v = 0xa0; + sSlotMachine->winIn = 0x3f; + sSlotMachine->winOut = 0x3f; +} + +void sub_81063C0(void) +{ + u8 i; + + sub_8106404(); + gUnknown_0203AAD4 = Alloc(0x3200); + LZDecompressWram(gSlotMachineReelTime_Gfx, gUnknown_0203AAD4); + gUnknown_0203AAD8 = Alloc(0x3600); + LZDecompressWram(sReelTimeGfx, gUnknown_0203AAD8); + gUnknown_0203AB30 = AllocZeroed(sizeof(struct SpriteSheet) * 22); + for (i = 0; i < 22; i++) + { + gUnknown_0203AB30[i].data = sSlotMachineSpriteSheets[i].data; + gUnknown_0203AB30[i].size = sSlotMachineSpriteSheets[i].size; + gUnknown_0203AB30[i].tag = sSlotMachineSpriteSheets[i].tag; + } + gUnknown_0203AB30[17].data = gUnknown_0203AAD4 + 0xA00; + gUnknown_0203AB30[18].data = gUnknown_0203AAD4 + 0x1400; + gUnknown_0203AB30[19].data = gUnknown_0203AAD4 + 0x1600; + gUnknown_0203AB30[20].data = gUnknown_0203AAD4 + 0x1900; + LoadSpriteSheets(gUnknown_0203AB30); + LoadSpritePalettes(gSlotMachineSpritePalettes); +} + +void sub_8106404(void) +{ + u8 *dest; + u8 i, j; + + gUnknown_0203AB2C = AllocZeroed(sizeof(struct SpriteSheet)); + gUnknown_0203AAE0 = AllocZeroed(0x2000); + dest = gUnknown_0203AAE0; + for (i = 0; i < 0x40; i++) + { + for (j = 0; j < 0x20; j++, dest++) + *dest = gUnknown_083EDCDC[j]; + } + gUnknown_0203AB2C->data = gUnknown_0203AAE0; + gUnknown_0203AB2C->size = 0x800; + gUnknown_0203AB2C->tag = 0x11; + LoadSpriteSheet(gUnknown_0203AB2C); +} + +extern const u8 gSlotMachineMenu_Gfx[]; +extern const u8 gSlotMachineMenu_Tilemap[]; +extern const u8 gUnknown_08DCEC70[]; +extern const u16 gSlotMachineMenu_Pal[]; + +void sub_8106448(void) +{ + gUnknown_0203AAC8 = Alloc(0x2200); + LZDecompressWram(gSlotMachineMenu_Gfx, gUnknown_0203AAC8); + LoadBgTiles(2, gUnknown_0203AAC8, 0x2200, 0); + LoadPalette(gSlotMachineMenu_Pal, 0, 160); + LoadPalette(gPalette_83EDE24, 208, 32); +} + +void sub_81064B8(void) +{ + sub_812F968(); + LoadSlotMachineWheelOverlay(); +} + +void sub_812F968(void) +{ + LoadBgTilemap(2, gSlotMachineMenu_Tilemap, 0x500, 0); +} + +void LoadSlotMachineWheelOverlay(void) +{ + s16 x, y, dx; + + for (x = 4; x < 18; x += 5) + { + for (dx = 0; dx < 4; dx++) + { + LoadBgTilemap(3, gUnknown_0203AAD0, 2, x + dx + 5 * 32); + LoadBgTilemap(3, gUnknown_0203AAD0 + 1, 2, x + dx + 13 * 32); + LoadBgTilemap(3, gUnknown_0203AAD0 + 2, 2, x + dx + 6 * 32); + LoadBgTilemap(3, gUnknown_0203AAD0 + 3, 2, x + dx + 12 * 32); + } + + LoadBgTilemap(3, gUnknown_0203AAD0 + 4, 2, x + 6 * 32); + LoadBgTilemap(3, gUnknown_0203AAD0 + 5, 2, x + 12 * 32); + + for (y = 7; y <= 11; y++) + LoadBgTilemap(3, gUnknown_0203AAD0 + 6, 2, x + y * 32); + } +} + +void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) +{ + gUnknown_0203AADC[0] = arg1; + gUnknown_0203AADC[1] = arg2; + gUnknown_0203AADC[2] = arg3; + gUnknown_0203AADC[3] = arg4; + + LoadBgTilemap(2, gUnknown_0203AADC, 2, 15 * 32 + arg0); + LoadBgTilemap(2, gUnknown_0203AADC + 1, 2, 15 * 32 + 1 + arg0); + LoadBgTilemap(2, gUnknown_0203AADC + 2, 2, 16 * 32 + arg0); + LoadBgTilemap(2, gUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); +} + +void sub_81065DC(void) +{ + LoadBgTilemap(2, gUnknown_08DCEC70, 0x500, 0); + HideBg(3); +} + +void SlotMachineSetup_9_0(void) +{ + gUnknown_03001188[0] = gUnknown_0203AAF4; + gUnknown_03001188[1] = gUnknown_0203AAF8; + gUnknown_03001188[2] = gUnknown_0203AAFC; + gUnknown_03001188[3] = gUnknown_0203AB04; + gUnknown_03001188[4] = gUnknown_0203AB08; + gUnknown_03001188[5] = gUnknown_0203AB18; + gUnknown_03001188[6] = gUnknown_0203AB1C; + gUnknown_03001188[7] = gUnknown_0203AB20; + gUnknown_03001188[8] = gUnknown_0203AB24; + gUnknown_03001188[9] = gUnknown_0203AB28; + gUnknown_03001188[10] = gUnknown_0203AB00; + gUnknown_03001188[11] = gUnknown_0203AB00; + gUnknown_03001188[12] = gUnknown_0203AB00; + gUnknown_03001188[13] = gUnknown_0203AB00; + gUnknown_03001188[14] = gUnknown_0203AB0C; + gUnknown_03001188[15] = gUnknown_0203AB0C; + gUnknown_03001188[16] = gUnknown_0203AB0C; + gUnknown_03001188[17] = gUnknown_0203AB0C; + gUnknown_03001188[18] = gUnknown_0203AB0C; + gUnknown_03001188[19] = gUnknown_0203AB10; + gUnknown_03001188[20] = gUnknown_0203AB10; + gUnknown_03001188[21] = gUnknown_0203AB10; + gUnknown_03001188[22] = gUnknown_0203AB14; + gUnknown_03001188[23] = gUnknown_0203AB14; + gUnknown_03001188[24] = gUnknown_0203AB14; + gUnknown_03001188[25] = NULL; +} + +void SlotMachineSetup_8_0(void) +{ + gUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; + gUnknown_0203AAF4[0].size = 0x600; + + gUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AAF8[0].data = gUnknown_0203AAD4 + 0x600; + gUnknown_0203AAF8[0].size = 0x200; + + gUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AAFC[0].data = gUnknown_0203AAD4 + 0x800; + gUnknown_0203AAFC[0].size = 0x200; + + gUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB00[0].data = gUnknown_0203AAD4 + 0xA00; + gUnknown_0203AB00[0].size = 0x200; + + gUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB04[0].data = gUnknown_0203AAD4 + 0xC00; + gUnknown_0203AB04[0].size = 0x300; + + gUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB08[0].data = gUnknown_0203AAD4 + 0x1000; + gUnknown_0203AB08[0].size = 0x400; + + gUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB0C[0].data = gUnknown_0203AAD4 + 0x1400; + gUnknown_0203AB0C[0].size = 0x200; + + gUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB10[0].data = gUnknown_0203AAD4 + 0x1600; + gUnknown_0203AB10[0].size = 0x300; + + gUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB14[0].data = gUnknown_0203AAD4 + 0x1900; + gUnknown_0203AB14[0].size = 0x300; + + gUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + gUnknown_0203AB18[0].data = gUnknown_0203AAD4 + 0x1C00; + gUnknown_0203AB18[0].size = 0x200; + gUnknown_0203AB18[1].data = gUnknown_0203AAD4 + 0x1E00; + gUnknown_0203AB18[1].size = 0x200; + + gUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB1C[0].data = gUnknown_0203AAD4 + 0x2000; + gUnknown_0203AB1C[0].size = 640; + + gUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + gUnknown_0203AB20[0].data = gUnknown_0203AAD4 + 0x2280; + gUnknown_0203AB20[0].size = 0x80; + gUnknown_0203AB20[1].data = gUnknown_0203AAD4 + 0x2300; + gUnknown_0203AB20[1].size = 0x80; + gUnknown_0203AB20[2].data = gUnknown_0203AAD4 + 0x2380; + gUnknown_0203AB20[2].size = 0x80; + gUnknown_0203AB20[3].data = gUnknown_0203AAD4 + 0x2400; + gUnknown_0203AB20[3].size = 0x80; + gUnknown_0203AB20[4].data = gUnknown_0203AAD4 + 0x2480; + gUnknown_0203AB20[4].size = 0x80; + + gUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + gUnknown_0203AB24[0].data = gUnknown_0203AAD4 + 0x2600; + gUnknown_0203AB24[0].size = 0x480; + gUnknown_0203AB24[1].data = gUnknown_0203AAD4 + 10880; + gUnknown_0203AB24[1].size = 0x480; + + gUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + gUnknown_0203AB28[0].data = gUnknown_0203AAD4 + 0x2F00; + gUnknown_0203AB28[0].size = 0x180; + gUnknown_0203AB28[1].data = gUnknown_0203AAD4 + 0x3080; + gUnknown_0203AB28[1].size = 0x180; +} + +const u8 sReelSymbols[][21] = +{ + { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY + }, + { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_CHERRY + }, + { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_CHERRY + }, +}; + +const u8 gUnknown_083ECCF1[] = { + 1, 0, 5, 4, 3, 2 +}; + +const s16 gUnknown_083ECCF8[][2] = { + {0, 6}, + {0, 10}, + {0, 2} +}; + +const u8 gUnknown_083ECD04[][3] = { + {1, 1, 12}, + {1, 1, 14}, + {2, 2, 14}, + {2, 2, 14}, + {2, 3, 16}, + {3, 3, 16} +}; + +const u8 gUnknown_083ECD16[][6] = { + {25, 25, 30, 40, 40, 50}, + {25, 25, 30, 30, 35, 35}, + {25, 25, 30, 25, 25, 30} +}; + +const u8 gUnknown_083ECD28[][6] = { + {20, 25, 25, 20, 25, 25}, + {12, 15, 15, 18, 19, 22}, + {25, 25, 25, 30, 30, 40}, + {25, 25, 20, 20, 15, 15}, + {40, 40, 35, 35, 40, 40} +}; + +const u8 gUnknown_083ECD46[][17] = { + {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, + { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, + { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, + { 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 45, 45, 45, 100}, + { 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 100}, + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} +}; + +const u8 gUnknown_083ECDAC[][17] = { + { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, + { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, + { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, + { 2, 2, 2, 3, 3, 3, 3, 30, 30, 30, 30, 30, 30, 100, 100, 100, 50}, + { 1, 1, 1, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 40, 40, 40, 100}, + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} +}; + +const u16 gUnknown_083ECE12[] = { + 0x80, 0xaf, 0xc8, 0xe1, 0x100 +}; + +const u16 gUnknown_083ECE1C[][2] = { + {10, 5}, + {10, 10}, + {10, 15}, + {10, 25}, + {10, 35} +}; + +const u16 gUnknown_083ECE30[] = { + 0, 5, 10, 15, 20 +}; + +const u8 gUnknown_083ECE3A[] = { + 6, 4, 3, 2, 5, 0, 0, 0 +}; + +const u16 gUnknown_083ECE42[] = { + 0x80, 0x20, 0x40 +}; + +const u16 gUnknown_083ECE48[] = { + 0x10, 0x08, 0x04, 0x02, 0x01 +}; + +const u8 sSym2Match[] = { + SLOT_MACHINE_MATCHED_777_RED, + SLOT_MACHINE_MATCHED_777_BLUE, + SLOT_MACHINE_MATCHED_AZURILL, + SLOT_MACHINE_MATCHED_LOTAD, + SLOT_MACHINE_MATCHED_1CHERRY, + SLOT_MACHINE_MATCHED_POWER, + SLOT_MACHINE_MATCHED_REPLAY +}; + +const u16 sSlotMatchFlags[] = { + 1 << SLOT_MACHINE_MATCHED_1CHERRY, + 1 << SLOT_MACHINE_MATCHED_2CHERRY, + 1 << SLOT_MACHINE_MATCHED_REPLAY, + 1 << SLOT_MACHINE_MATCHED_LOTAD, + 1 << SLOT_MACHINE_MATCHED_AZURILL, + 1 << SLOT_MACHINE_MATCHED_POWER, + 1 << SLOT_MACHINE_MATCHED_777_MIXED, + 1 << SLOT_MACHINE_MATCHED_777_RED, + 1 << SLOT_MACHINE_MATCHED_777_BLUE +}; + +const u16 sSlotPayouts[] = { + 2, 4, 0, 6, 12, 3, 90, 300, 300 +}; + +const s16 gUnknown_083ECE7E[][2] = { + { 0xd0, 0x38}, + { 0xb8, 0x00}, + { 0xc8, 0x08}, + { 0xd8, 0x10}, + { 0xe8, 0x18}, + { 0xd0, 0x48}, + { 0xd0, 0x08}, + { 0xd0, 0x40}, + { 0xd0, 0x38}, + { 0xc0, 0x58}, + { 0xe0, 0x58}, + { 0xc0, 0x78}, + { 0xe0, 0x78}, + { 0x90, 0x38}, + {0x110, 0x58}, + { 0xa8, 0x70}, + { 0xd0, 0x54}, + { 0xd0, 0x70}, + { 0xbc, 0x34}, + { 0xd0, 0x34}, + { 0xe4, 0x34}, + { 0xb8, 0x48}, + { 0xc4, 0x48}, + { 0xd0, 0x48}, + { 0xdc, 0x48}, + { 0xe8, 0x48}, + { 0xbc, 0x34}, + { 0xd0, 0x34}, + { 0xe4, 0x34}, + { 0xb8, 0x48}, + { 0xc4, 0x48}, + { 0xd0, 0x48}, + { 0xdc, 0x48}, + { 0xe8, 0x48}, + { 0x00, 0x00} +}; From 4d2637883a55d916badb0b7b6107da5b9145b529 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 15 Sep 2018 23:19:37 +0200 Subject: [PATCH 28/28] Slot machine is decompiled. --- asm/slot_machine.s | 10 - data/slot_machine.s | 201 -------- ld_script.txt | 1 - src/slot_machine.c | 1109 ++++++++++++++++++++++++------------------- sym_bss.txt | 4 +- sym_ewram.txt | 89 +--- 6 files changed, 619 insertions(+), 795 deletions(-) delete mode 100644 asm/slot_machine.s diff --git a/asm/slot_machine.s b/asm/slot_machine.s deleted file mode 100644 index c3fc4d140b..0000000000 --- a/asm/slot_machine.s +++ /dev/null @@ -1,10 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - - .align 2, 0 @ Don't pad with nop. diff --git a/data/slot_machine.s b/data/slot_machine.s index 1a57f6abd1..4a354d71c9 100644 --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -4,207 +4,6 @@ .section .rodata .align 2 - -gUnknown_083ECF0C:: @ 85A78C8 - .4byte sub_8105C64 - .4byte sub_8105F54 - .4byte sub_8105F54 - .4byte sub_8105F54 - .4byte sub_8105F54 - .4byte sub_8105F9C - .4byte sub_8105EB4 - .4byte sub_8105C64 - .4byte sub_8105C64 - .4byte sub_8105C6C - .4byte sub_8105CF0 - .4byte sub_8105D08 - .4byte sub_8105D20 - .4byte sub_8105D3C - .4byte sub_8105DA4 - .4byte sub_8105E08 - .4byte sub_8105C64 - .4byte sub_8106058 - .4byte sub_81060FC - .4byte sub_81060FC - .4byte sub_81060FC - .4byte sub_81060FC - .4byte sub_81060FC - .4byte sub_81060FC - .4byte sub_81060FC - .4byte sub_81060FC - .4byte sub_81061C8 - .4byte sub_81061C8 - .4byte sub_81061C8 - .4byte sub_81061C8 - .4byte sub_81061C8 - .4byte sub_81061C8 - .4byte sub_81061C8 - .4byte sub_81061C8 - .4byte sub_8106230 - -gUnknown_085A7954:: @ 85A7954 - .byte 0x19 - .byte 0x22 - .2byte 0 - .byte 0x2 - .byte 0 - .2byte 0 - .byte 0x9 - .byte 0x10 - .2byte 0 - .byte 0xFF - .byte 0 - .2byte 0 - -gUnknown_085A7964:: @ 85A7964 - .byte 0xA - .byte 0x1 - .2byte 0 - .byte 0xB - .byte 2 - .2byte 0 - .byte 0xC - .byte 0x3 - .2byte 0 - .byte 0xD - .byte 4 - .2byte 0 - .byte 0x5 - .byte 5 - .2byte 0 - .byte 0x8 - .byte 0x6 - .2byte 0 - .byte 0xFF - .byte 0 - .2byte 0 - -gUnknown_085A7980:: @ 85A7980 - .byte 0x3 - .byte 0x7 - .2byte 0 - .byte 0x8 - .byte 0x11 - .2byte 0 - .byte 0xFF - .byte 0 - .2byte 0 - -gUnknown_085A798C:: @ 85A798C - .byte 0x4 - .byte 0x8 - .2byte 0 - .byte 0x6 - .byte 0x9 - .2byte 0 - .byte 0x6 - .byte 0xA - .2byte 1 - .byte 0x6 - .byte 0xB - .2byte 2 - .byte 0x6 - .byte 0xC - .2byte 3 - .byte 0xFF - .byte 0 - .2byte 0 - -gUnknown_085A79A4:: @ 85A79A4 - .byte 0 - .byte 0xD - .2byte 0 - .byte 1 - .byte 0xE - .2byte 0 - .byte 0x7 - .byte 0xF - .2byte 0 - .byte 0xFF - .byte 0 - .2byte 0 - -gUnknown_085A79B4:: @ 85A79B4 - .byte 0x13 - .byte 0x1A - .2byte 0 - .byte 0x14 - .byte 0x1B - .2byte 1 - .byte 0x15 - .byte 0x1C - .2byte 2 - .byte 0xE - .byte 0x1D - .2byte 3 - .byte 0xF - .byte 0x1E - .2byte 4 - .byte 0x10 - .byte 0x1F - .2byte 5 - .byte 0x11 - .byte 0x20 - .2byte 6 - .byte 0x12 - .byte 0x21 - .2byte 7 - .byte 0x8 - .byte 0x11 - .2byte 0 - .byte 0xFF - .byte 0 - .2byte 0 - -gUnknown_085A79DC:: @ 85A79DC - .byte 0x16 - .byte 0x12 - .2byte 0 - .byte 0x17 - .byte 0x13 - .2byte 1 - .byte 0x18 - .byte 0x14 - .2byte 2 - .byte 0xE - .byte 0x15 - .2byte 3 - .byte 0xF - .byte 0x16 - .2byte 4 - .byte 0x10 - .byte 0x17 - .2byte 5 - .byte 0x11 - .byte 0x18 - .2byte 6 - .byte 0x12 - .byte 0x19 - .2byte 7 - .byte 0x8 - .byte 0x11 - .2byte 0 - .byte 0xFF - .byte 0 - .2byte 0 - -gUnknown_083ED048:: @ 85A7A04 - .4byte gUnknown_085A7954 - .4byte gUnknown_085A7964 - .4byte gUnknown_085A7980 - .4byte gUnknown_085A798C - .4byte gUnknown_085A79A4 - .4byte gUnknown_085A79DC - .4byte gUnknown_085A79B4 - -gUnknown_083ED064:: @ 85A7A20 - .4byte sub_810639C - .4byte sub_8106364 - .4byte sub_8106370 - .4byte nullsub_70 - .4byte nullsub_70 - .4byte sub_8106370 - .4byte sub_8106370 gUnknown_085A7A3C:: @ 85A7A3C .2byte 0 diff --git a/ld_script.txt b/ld_script.txt index 2e36161218..e2ea3e5425 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -171,7 +171,6 @@ SECTIONS { asm/cute_sketch.o(.text); src/decoration.o(.text); src/slot_machine.o(.text); - asm/slot_machine.o(.text); asm/contest_painting.o(.text); src/battle_ai_script_commands.o(.text); src/trader.o(.text); diff --git a/src/slot_machine.c b/src/slot_machine.c index ec5640b912..ef52b71716 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -26,35 +26,6 @@ #include "window.h" extern u8 gOamLimit; -extern u16 *gUnknown_0203AAC8; -extern u16 *gUnknown_0203AACC; -extern u16 *gUnknown_0203AAD0; -extern u16 *gUnknown_0203AADC; -extern struct SpriteFrameImage *gUnknown_0203AAF4; -extern struct SpriteFrameImage *gUnknown_0203AAF8; -extern struct SpriteFrameImage *gUnknown_0203AAFC; -extern struct SpriteFrameImage *gUnknown_0203AB00; -extern struct SpriteFrameImage *gUnknown_0203AB04; -extern struct SpriteFrameImage *gUnknown_0203AB08; -extern struct SpriteFrameImage *gUnknown_0203AB0C; -extern struct SpriteFrameImage *gUnknown_0203AB10; -extern struct SpriteFrameImage *gUnknown_0203AB14; -extern struct SpriteFrameImage *gUnknown_0203AB18; -extern struct SpriteFrameImage *gUnknown_0203AB1C; -extern struct SpriteFrameImage *gUnknown_0203AB20; -extern struct SpriteFrameImage *gUnknown_0203AB24; -extern struct SpriteFrameImage *gUnknown_0203AB28; -extern struct SpriteFrameImage *gUnknown_0203AAE4; -extern struct SpriteFrameImage *gUnknown_0203AAE8; -extern struct SpriteFrameImage *gUnknown_0203AAEC; -extern struct SpriteFrameImage *gUnknown_0203AAF0; -extern u8 *gUnknown_0203AAD4; -extern u8 *gUnknown_0203AAD8; -extern u8 *gUnknown_0203AAE0; -extern struct SpriteSheet *gUnknown_0203AB2C; -extern struct SpriteSheet *gUnknown_0203AB30; - -extern struct SpriteFrameImage *gUnknown_03001188[]; // Text extern const u8 gText_YouDontHaveThreeCoins[]; @@ -140,8 +111,6 @@ struct SlotMachineEwramStruct /*0x64*/ MainCallback prevMainCb; }; -extern struct SlotMachineEwramStruct *sSlotMachine; - struct UnkStruct1 { /*0x00*/ u8 unk00; @@ -151,217 +120,250 @@ struct UnkStruct1 #define SLOTMACHINE_GFX_TILES 233 -/*static*/void CB2_SlotMachineSetup(void); -/*static*/void CB2_SlotMachineLoop(void); -/*static*/void PlaySlotMachine_Internal(u8 arg0, MainCallback cb); -/*static*/void SlotMachineDummyTask(u8 taskId); -/*static*/void SlotMachineSetup_0_0(void); -/*static*/void SlotMachineSetup_6_2(void); -/*static*/void SlotMachineSetup_1_0(void); -/*static*/void SlotMachineSetup_2_0(void); -/*static*/void SlotMachineSetup_2_1(void); -/*static*/void SlotMachineSetup_0_1(void); -/*static*/void SlotMachineSetup_3_0(void); -/*static*/void SlotMachineSetup_4_0(void); -/*static*/void SlotMachineSetup_5_0(void); -/*static*/void SlotMachineSetup_6_0(void); -/*static*/void SlotMachineSetup_6_1(void); -/*static*/void SlotMachineSetup_8_0(void); -/*static*/void SlotMachineSetup_9_0(void); -/*static*/void SlotMachineSetup_10_0(void); -/*static*/void SlotMachineSetup_10_1(void); -/*static*/void sub_8101D04(void); -/*static*/void sub_8104DA4(void); -/*static*/void sub_8101D24(u8 taskId); -/*static*/bool8 sub_8101D5C(struct Task *task); -/*static*/bool8 sub_8101D8C(struct Task *task); -/*static*/bool8 sub_8101DB0(struct Task *task); -/*static*/bool8 sub_8101DF4(struct Task *task); -/*static*/bool8 sub_8101E10(struct Task *task); -/*static*/bool8 sub_8101E3C(struct Task *task); -/*static*/bool8 sub_8101F44(struct Task *task); -/*static*/bool8 sub_8101F60(struct Task *task); -/*static*/bool8 sub_8101F88(struct Task *task); -/*static*/bool8 sub_8101FA4(struct Task *task); -/*static*/bool8 sub_8102008(struct Task *task); -/*static*/bool8 sub_8102034(struct Task *task); -/*static*/bool8 sub_8102058(struct Task *task); -/*static*/bool8 sub_8102090(struct Task *task); -bool8 sub_81020C8(struct Task *task); -/*static*/bool8 sub_81021E0(struct Task *task); -/*static*/bool8 sub_81021FC(struct Task *task); -/*static*/bool8 sub_8102264(struct Task *task); -/*static*/bool8 sub_81022A0(struct Task *task); -/*static*/bool8 sub_81022CC(struct Task *task); -/*static*/bool8 sub_81022F0(struct Task *task); -/*static*/bool8 sub_8102318(struct Task *task); -/*static*/bool8 sub_8102344(struct Task *task); -/*static*/bool8 sub_810239C(struct Task *task); -/*static*/bool8 sub_81023B8(struct Task *task); -/*static*/bool8 sub_81023E0_(struct Task *task); -/*static*/bool8 sub_81023FC(struct Task *task); -/*static*/bool8 sub_8102424(struct Task *task); -/*static*/bool8 sub_8102460(struct Task *task); -/*static*/void sub_8102484(void); -/*static*/void sub_81024F0(void); -/*static*/bool8 sub_8102540_(void); -/*static*/u8 sub_8102578(void); -/*static*/u16 dp15_jump_random_unknown(void); -/*static*/u8 sub_81025BC(void); -/*static*/void CheckMatch(void); -/*static*/void CheckMatch_CenterRow(void); -/*static*/void CheckMatch_TopAndBottom(void); -/*static*/void CheckMatch_Diagonals(void); -/*static*/u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); -/*static*/void sub_8102A24(void); -/*static*/void sub_8102A64(u8 taskId); -/*static*/bool8 sub_8102A44(void); -/*static*/bool8 sub_8102A9C(struct Task *task); -/*static*/bool8 sub_8102AD0(struct Task *task); -/*static*/bool8 sub_8102B80(struct Task *task); -/*static*/u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y); -/*static*/void sub_8102DA8(void); -/*static*/void sub_8102DEC(u8 a0); -/*static*/void sub_8102E1C(u8 a0); -/*static*/bool8 sub_8102E40(u8 a0); -/*static*/void sub_8102E68(u8 taskId); -/*static*/bool8 sub_8102EA0(struct Task *task); -/*static*/bool8 sub_8102EA4(struct Task *task); -/*static*/bool8 sub_8102EC0(struct Task *task); -/*static*/bool8 sub_8102F4C(struct Task *task); -/*static*/bool8 sub_8103008(struct Task *task); -/*static*/bool8 sub_810305C(void); -/*static*/bool8 sub_8103154(u8 a0, u8 a1); -/*static*/bool8 sub_81031B4(u8 a0, u8 a1); -/*static*/bool8 sub_81032C0(void); -/*static*/bool8 sub_81032E8(void); -/*static*/bool8 sub_810333C(void); -/*static*/bool8 sub_81033DC(void); -/*static*/bool8 sub_810341C(u8 a0); -/*static*/bool8 sub_810347C(u8 a0); -/*static*/void sub_81034F4(void); -/*static*/void sub_8103540(void); -/*static*/void sub_8103564(void); -/*static*/void j5_08111E84(void); -/*static*/void sub_8103668(void); -/*static*/void sub_810380C(void); -/*static*/void sub_8103830(void); -/*static*/void sub_8103910(void); -/*static*/void sub_8103A78(void); -/*static*/void sub_8103C14(u8 a0); -/*static*/void sub_8103C48(u8 taskId); -/*static*/void sub_8103D50(u8 a0); -/*static*/void sub_8103C78(struct Task *task, u8 taskId); -/*static*/void sub_8103CAC(struct Task *task, u8 taskId); -/*static*/void sub_8103CC8(struct Task *task, u8 taskId); -/*static*/void sub_8103D8C(u8 a0); -/*static*/void sub_8103DC8(void); -/*static*/void sub_8103E04(u8 a0); -/*static*/bool8 sub_8103E38(void); -/*static*/bool8 sub_8103E7C(void); -/*static*/bool8 sub_8103EAC(u8 spriteId); -/*static*/void sub_8103EE4(struct Sprite *sprite); -/*static*/void sub_8103F70(void); -/*static*/bool8 sub_8103FA0(void); -/*static*/void sub_8103FE8_(u8 taskId); -/*static*/void sub_8104048(void); -/*static*/void sub_8104064(u8 pikaPower); -/*static*/bool8 sub_81040C8(void); -/*static*/void sub_81040E8(u8 taskId); -/*static*/void nullsub_68(struct Task *task); -/*static*/void sub_810411C(struct Task *task); -/*static*/void sub_8104144(struct Task *task); -/*static*/void sub_81041AC(struct Task *task); -/*static*/void sub_812D394(struct Task *task); -/*static*/void sub_810423C(u8 pikaPower); -/*static*/void sub_810430C(void); -/*static*/bool8 sub_810432C(void); -/*static*/void sub_810434C(u8 taskId); -/*static*/void sub_810437C(struct Task *task); -/*static*/void sub_81043EC(struct Task *task); -/*static*/void sub_8104468(struct Task *task); -/*static*/void sub_8104498(struct Task *task); -/*static*/void sub_8104548(struct Task *task); -/*static*/void sub_8104598(struct Task *task); -/*static*/void sub_81045CC(struct Task *task); -/*static*/void sub_810463C(struct Task *task); -/*static*/void sub_81046C0(struct Task *task); -/*static*/void sub_8104764(struct Task *task); -/*static*/void sub_8104794(struct Task *task); -/*static*/void sub_81047EC(struct Task *task); -/*static*/void sub_8104860(struct Task *task); -/*static*/void sub_81048A8(struct Task *task); -/*static*/void sub_81048CC(struct Task *task); -/*static*/void sub_8104940(struct Task *task); -/*static*/void sub_81049C8(struct Task *task); -/*static*/void sub_81049F8(struct Task *task); -/*static*/void sub_8104A40(s16 a0, s16 a1); -/*static*/void sub_8104A88(s16 a0); -/*static*/void sub_8104AB8(u8 a0); -/*static*/bool8 sub_8104AEC(void); -/*static*/void sub_8104B0C(u8 taskId); -/*static*/void sub_8104B3C(struct Task *task); -/*static*/void sub_8104B60(struct Task *task); -/*static*/void sub_8104B80(struct Task *task); -/*static*/void sub_8104BC8(struct Task *task); -/*static*/void sub_812DD78(struct Task *task); -/*static*/void sub_8104BFC(struct Task *task); -/*static*/void sub_812DE14(struct Task *task); -/*static*/void sub_812DE30(struct Task *task); -/*static*/void sub_8104C44(struct Task *task); -/*static*/void sub_8104C5C(void); -/*static*/void sub_8104CAC(u8 arg0); -/*static*/bool8 sub_8104E18(void); -/*static*/void nullsub_69(struct Task *task); -/*static*/void sub_8104E74_(u8 taskId); -/*static*/void sub_8104EA8(void); -/*static*/void sub_8104F8C(void); -/*static*/void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); -/*static*/void sub_81050C4(void); -/*static*/void sub_8105100(void); -/*static*/void sub_810514C(void); -/*static*/void sub_81051C0(void); -/*static*/void sub_8105284_(void); -/*static*/void sub_81052EC(void); -/*static*/void sub_81053A0(void); -/*static*/void sub_810545C(void); -/*static*/void sub_81054B8(void); -/*static*/void sub_8105524(void); -/*static*/void sub_8105554(void); -/*static*/void sub_8105578(void); -/*static*/void sub_8105688(s16 a0); -/*static*/void sub_81056C0(void); -/*static*/void sub_81056F0(void); -/*static*/void sub_81057E8(s16 a0); -/*static*/void sub_8105804(void); -/*static*/void sub_8105854(void); -/*static*/void sub_81058A0(void); -/*static*/void sub_81058C4(void); -/*static*/void sub_81059B8(void); -/*static*/void sub_81059E8(void); -/*static*/bool8 sub_8105ACC(void); -/*static*/void sub_8105AEC(void); -/*static*/u8 sub_8105B1C(s16 x, s16 y); -/*static*/void sub_8105B88(u8 spriteId); -/*static*/u8 sub_8105BF8(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); -/*static*/void sub_81063C0(void); -/*static*/void sub_8106404(void); -/*static*/void sub_8106448(void); -/*static*/void sub_81064B8(void); -/*static*/void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); -/*static*/void sub_81065DC(void); -/*static*/void sub_812F958(void); -/*static*/void sub_812F968(void); -void LoadSlotMachineWheelOverlay(void); -u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); +/*static */void CB2_SlotMachineSetup(void); +/*static */void CB2_SlotMachineLoop(void); +/*static */void PlaySlotMachine_Internal(u8 arg0, MainCallback cb); +/*static */void SlotMachineDummyTask(u8 taskId); +/*static */void SlotMachineSetup_0_0(void); +/*static */void SlotMachineSetup_6_2(void); +/*static */void SlotMachineSetup_1_0(void); +/*static */void SlotMachineSetup_2_0(void); +/*static */void SlotMachineSetup_2_1(void); +/*static */void SlotMachineSetup_0_1(void); +/*static */void SlotMachineSetup_3_0(void); +/*static */void SlotMachineSetup_4_0(void); +/*static */void SlotMachineSetup_5_0(void); +/*static */void SlotMachineSetup_6_0(void); +/*static */void SlotMachineSetup_6_1(void); +/*static */void SlotMachineSetup_8_0(void); +/*static */void SlotMachineSetup_9_0(void); +/*static */void SlotMachineSetup_10_0(void); +/*static */void SlotMachineSetup_10_1(void); +/*static */void sub_8101D04(void); +/*static */void sub_8104DA4(void); +/*static */void sub_8101D24(u8 taskId); +/*static */bool8 sub_8101D5C(struct Task *task); +/*static */bool8 sub_8101D8C(struct Task *task); +/*static */bool8 sub_8101DB0(struct Task *task); +/*static */bool8 sub_8101DF4(struct Task *task); +/*static */bool8 sub_8101E10(struct Task *task); +/*static */bool8 sub_8101E3C(struct Task *task); +/*static */bool8 sub_8101F44(struct Task *task); +/*static */bool8 sub_8101F60(struct Task *task); +/*static */bool8 sub_8101F88(struct Task *task); +/*static */bool8 sub_8101FA4(struct Task *task); +/*static */bool8 sub_8102008(struct Task *task); +/*static */bool8 sub_8102034(struct Task *task); +/*static */bool8 sub_8102058(struct Task *task); +/*static */bool8 sub_8102090(struct Task *task); +/*static */bool8 sub_81020C8(struct Task *task); +/*static */bool8 sub_81021E0(struct Task *task); +/*static */bool8 sub_81021FC(struct Task *task); +/*static */bool8 sub_8102264(struct Task *task); +/*static */bool8 sub_81022A0(struct Task *task); +/*static */bool8 sub_81022CC(struct Task *task); +/*static */bool8 sub_81022F0(struct Task *task); +/*static */bool8 sub_8102318(struct Task *task); +/*static */bool8 sub_8102344(struct Task *task); +/*static */bool8 sub_810239C(struct Task *task); +/*static */bool8 sub_81023B8(struct Task *task); +/*static */bool8 sub_81023E0_(struct Task *task); +/*static */bool8 sub_81023FC(struct Task *task); +/*static */bool8 sub_8102424(struct Task *task); +/*static */bool8 sub_8102460(struct Task *task); +/*static */void sub_8102484(void); +/*static */void sub_81024F0(void); +/*static */bool8 sub_8102540_(void); +/*static */u8 sub_8102578(void); +/*static */u16 dp15_jump_random_unknown(void); +/*static */u8 sub_81025BC(void); +/*static */void CheckMatch(void); +/*static */void CheckMatch_CenterRow(void); +/*static */void CheckMatch_TopAndBottom(void); +/*static */void CheckMatch_Diagonals(void); +/*static */u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); +/*static */void sub_8102A24(void); +/*static */void sub_8102A64(u8 taskId); +/*static */bool8 sub_8102A44(void); +/*static */bool8 sub_8102A9C(struct Task *task); +/*static */bool8 sub_8102AD0(struct Task *task); +/*static */bool8 sub_8102B80(struct Task *task); +/*static */u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y); +/*static */void sub_8102DA8(void); +/*static */void sub_8102DEC(u8 a0); +/*static */void sub_8102E1C(u8 a0); +/*static */bool8 sub_8102E40(u8 a0); +/*static */void sub_8102E68(u8 taskId); +/*static */bool8 sub_8102EA0(struct Task *task); +/*static */bool8 sub_8102EA4(struct Task *task); +/*static */bool8 sub_8102EC0(struct Task *task); +/*static */bool8 sub_8102F4C(struct Task *task); +/*static */bool8 sub_8103008(struct Task *task); +/*static */bool8 sub_810305C(void); +/*static */bool8 sub_8103154(u8 a0, u8 a1); +/*static */bool8 sub_81031B4(u8 a0, u8 a1); +/*static */bool8 sub_81032C0(void); +/*static */bool8 sub_81032E8(void); +/*static */bool8 sub_810333C(void); +/*static */bool8 sub_81033DC(void); +/*static */bool8 sub_810341C(u8 a0); +/*static */bool8 sub_810347C(u8 a0); +/*static */void sub_81034F4(void); +/*static */void sub_8103540(void); +/*static */void sub_8103564(void); +/*static */void j5_08111E84(void); +/*static */void sub_8103668(void); +/*static */void sub_810380C(void); +/*static */void sub_8103830(void); +/*static */void sub_8103910(void); +/*static */void sub_8103A78(void); +/*static */void sub_8103C14(u8 a0); +/*static */void sub_8103C48(u8 taskId); +/*static */void sub_8103D50(u8 a0); +/*static */void sub_8103C78(struct Task *task, u8 taskId); +/*static */void sub_8103CAC(struct Task *task, u8 taskId); +/*static */void sub_8103CC8(struct Task *task, u8 taskId); +/*static */void sub_8103D8C(u8 a0); +/*static */void sub_8103DC8(void); +/*static */void sub_8103E04(u8 a0); +/*static */bool8 sub_8103E38(void); +/*static */bool8 sub_8103E7C(void); +/*static */bool8 sub_8103EAC(u8 spriteId); +/*static */void sub_8103EE4(struct Sprite *sprite); +/*static */void sub_8103F70(void); +/*static */bool8 sub_8103FA0(void); +/*static */void sub_8103FE8_(u8 taskId); +/*static */void sub_8104048(void); +/*static */void sub_8104064(u8 pikaPower); +/*static */bool8 sub_81040C8(void); +/*static */void sub_81040E8(u8 taskId); +/*static */void nullsub_68(struct Task *task); +/*static */void sub_810411C(struct Task *task); +/*static */void sub_8104144(struct Task *task); +/*static */void sub_81041AC(struct Task *task); +/*static */void sub_812D394(struct Task *task); +/*static */void sub_810423C(u8 pikaPower); +/*static */void sub_810430C(void); +/*static */bool8 sub_810432C(void); +/*static */void sub_810434C(u8 taskId); +/*static */void sub_810437C(struct Task *task); +/*static */void sub_81043EC(struct Task *task); +/*static */void sub_8104468(struct Task *task); +/*static */void sub_8104498(struct Task *task); +/*static */void sub_8104548(struct Task *task); +/*static */void sub_8104598(struct Task *task); +/*static */void sub_81045CC(struct Task *task); +/*static */void sub_810463C(struct Task *task); +/*static */void sub_81046C0(struct Task *task); +/*static */void sub_8104764(struct Task *task); +/*static */void sub_8104794(struct Task *task); +/*static */void sub_81047EC(struct Task *task); +/*static */void sub_8104860(struct Task *task); +/*static */void sub_81048A8(struct Task *task); +/*static */void sub_81048CC(struct Task *task); +/*static */void sub_8104940(struct Task *task); +/*static */void sub_81049C8(struct Task *task); +/*static */void sub_81049F8(struct Task *task); +/*static */void sub_8104A40(s16 a0, s16 a1); +/*static */void sub_8104A88(s16 a0); +/*static */void sub_8104AB8(u8 a0); +/*static */bool8 sub_8104AEC(void); +/*static */void sub_8104B0C(u8 taskId); +/*static */void sub_8104B3C(struct Task *task); +/*static */void sub_8104B60(struct Task *task); +/*static */void sub_8104B80(struct Task *task); +/*static */void sub_8104BC8(struct Task *task); +/*static */void sub_812DD78(struct Task *task); +/*static */void sub_8104BFC(struct Task *task); +/*static */void sub_812DE14(struct Task *task); +/*static */void sub_812DE30(struct Task *task); +/*static */void sub_8104C44(struct Task *task); +/*static */void sub_8104C5C(void); +/*static */void sub_8104CAC(u8 arg0); +/*static */bool8 sub_8104E18(void); +/*static */void nullsub_69(struct Task *task); +/*static */void sub_8104E74_(u8 taskId); +/*static */void sub_8104EA8(void); +/*static */void sub_8104F8C(void); +/*static */void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); +/*static */void sub_81050C4(void); +/*static */void sub_8105100(void); +/*static */void sub_810514C(void); +/*static */void sub_81051C0(void); +/*static */void sub_8105284_(void); +/*static */void sub_81052EC(void); +/*static */void sub_81053A0(void); +/*static */void sub_810545C(void); +/*static */void sub_81054B8(void); +/*static */void sub_8105524(void); +/*static */void sub_8105554(void); +/*static */void sub_8105578(void); +/*static */void sub_8105688(s16 a0); +/*static */void sub_81056C0(void); +/*static */void sub_81056F0(void); +/*static */void sub_81057E8(s16 a0); +/*static */void sub_8105804(void); +/*static */void sub_8105854(void); +/*static */void sub_81058A0(void); +/*static */void sub_81058C4(void); +/*static */void sub_81059B8(void); +/*static */void sub_81059E8(void); +/*static */bool8 sub_8105ACC(void); +/*static */void sub_8105AEC(void); +/*static */u8 sub_8105B1C(s16 x, s16 y); +/*static */void sub_8105B88(u8 spriteId); +/*static */u8 sub_8105BF8(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); +/*static */void sub_81063C0(void); +/*static */void sub_8106404(void); +/*static */void sub_8106448(void); +/*static */void sub_81064B8(void); +/*static */void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); +/*static */void sub_81065DC(void); +/*static */void sub_812F958(void); +/*static */void sub_812F968(void); +/*static */void LoadSlotMachineWheelOverlay(void); +/*static */u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); + +// Ewram variables +static EWRAM_DATA u16 *gUnknown_0203AAC8 = NULL; +static EWRAM_DATA u16 *gUnknown_0203AACC = NULL; +static EWRAM_DATA u16 *gUnknown_0203AAD0 = NULL; +static EWRAM_DATA u8 *gUnknown_0203AAD4 = NULL; +static EWRAM_DATA u8 *gUnknown_0203AAD8 = NULL; +static EWRAM_DATA u16 *gUnknown_0203AADC = NULL; +static EWRAM_DATA u8 *gUnknown_0203AAE0 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAE4 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAE8 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAEC = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF0 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF4 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF8 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAFC = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB00 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB04 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB08 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB0C = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB10 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB14 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB18 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB1C = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB20 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB24 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB28 = NULL; +static EWRAM_DATA struct SpriteSheet *gUnknown_0203AB2C = NULL; +static EWRAM_DATA struct SpriteSheet *gUnknown_0203AB30 = NULL; +static EWRAM_DATA struct SlotMachineEwramStruct *sSlotMachine = NULL; + +// IWRAM bss +static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; // Const rom data. -/*static*/extern const struct UnkStruct1 *const gUnknown_083ED048[]; -/*static*/extern const u16 gPalette_83EDE24[]; -/*static*/extern const u8 gUnknown_083ECD04[][3]; -/*static*/extern const u8 gUnknown_083ECE3A[]; -/*static*/extern const u16 gUnknown_083ECE42[]; -/*static*/extern const u16 gUnknown_083ECE48[]; +extern const struct UnkStruct1 *const gUnknown_083ED048[]; +extern const u16 gPalette_83EDE24[]; +extern const u8 gUnknown_083ECD04[][3]; +extern const u8 gUnknown_083ECE3A[]; +extern const u16 gUnknown_083ECE42[]; +extern const u16 gUnknown_083ECE48[]; extern const s16 gUnknown_083ECE7E[][2]; extern const SpriteCallback gUnknown_083ECF0C[]; extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; @@ -370,7 +372,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED6CC; extern const struct SpriteTemplate gSpriteTemplate_83ED564; extern const struct SpriteTemplate gSpriteTemplate_83ED54C; extern const struct SpriteTemplate gSpriteTemplate_83ED534; -extern const u8 gUnknown_083ECC58[2]; // don't remove this until decompiled through gUnknown_083ECCF8 +extern const u8 gUnknown_083ECC58[2]; extern const struct SpriteTemplate gSpriteTemplate_83ED51C; extern const u16 gUnknown_083ECE12[]; extern const u16 *const gUnknown_083EDE10[]; @@ -654,7 +656,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED45C; // code #define tState data[0] -void Task_FadeToSlotMachine(u8 taskId) +/*static */void Task_FadeToSlotMachine(u8 taskId) { switch (gTasks[taskId].tState) { @@ -684,7 +686,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) #undef tState -void CB2_SlotMachineSetup(void) +/*static */void CB2_SlotMachineSetup(void) { switch (gMain.state) { @@ -745,7 +747,7 @@ void CB2_SlotMachineSetup(void) } } -void CB2_SlotMachineLoop(void) +/*static */void CB2_SlotMachineLoop(void) { RunTasks(); AnimateSprites(); @@ -753,7 +755,7 @@ void CB2_SlotMachineLoop(void) UpdatePaletteFade(); } -void SlotMachine_VBlankCallback(void) +/*static */void SlotMachine_VBlankCallback(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -764,25 +766,25 @@ void SlotMachine_VBlankCallback(void) SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); } -void PlaySlotMachine_Internal(u8 arg0, MainCallback cb) +/*static */void PlaySlotMachine_Internal(u8 arg0, MainCallback cb) { struct Task *task = gTasks + CreateTask(SlotMachineDummyTask, 0xFF); task->data[0] = arg0; StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); } -void sub_81019EC(void) +/*static */void sub_81019EC(void) { struct Task *task = gTasks + FindTaskIdByFunc(SlotMachineDummyTask); sSlotMachine->unk01 = task->data[0]; LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&sSlotMachine->prevMainCb); } -void SlotMachineDummyTask(u8 taskId) +/*static */void SlotMachineDummyTask(u8 taskId) { } -void SlotMachineSetup_0_0(void) +/*static */void SlotMachineSetup_0_0(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); @@ -793,24 +795,24 @@ void SlotMachineSetup_0_0(void) DeactivateAllTextPrinters(); } -void SlotMachineSetup_6_0(void) +/*static */void SlotMachineSetup_6_0(void) { SetVBlankCallback(SlotMachine_VBlankCallback); EnableInterrupts(INTR_FLAG_VBLANK); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); } -void SlotMachineSetup_1_0(void) +/*static */void SlotMachineSetup_1_0(void) { DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000); } -void SlotMachineSetup_2_0(void) +/*static */void SlotMachineSetup_2_0(void) { DmaClear16(3, (u16 *)OAM, OAM_SIZE); } -void SlotMachineSetup_2_1(void) +/*static */void SlotMachineSetup_2_1(void) { SetGpuReg(REG_OFFSET_BG0CNT, 0); SetGpuReg(REG_OFFSET_BG1CNT, 0); @@ -830,7 +832,7 @@ void SlotMachineSetup_2_1(void) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } -void SlotMachineSetup_0_1(void) +/*static */void SlotMachineSetup_0_1(void) { u8 i; @@ -863,7 +865,7 @@ void SlotMachineSetup_0_1(void) sub_80EDE70(GetCoins()); } -void SlotMachineSetup_3_0(void) +/*static */void SlotMachineSetup_3_0(void) { ResetPaletteFade(); ResetSpriteData(); @@ -872,7 +874,7 @@ void SlotMachineSetup_3_0(void) ResetTasks(); } -void SlotMachineSetup_4_0(void) +/*static */void SlotMachineSetup_4_0(void) { gUnknown_0203AACC = Alloc(8); gUnknown_0203AAD0 = AllocZeroed(0xE); @@ -887,7 +889,7 @@ void SlotMachineSetup_4_0(void) gUnknown_0203AAD0[6] = 0x20BF; } -void SlotMachineSetup_5_0(void) +/*static */void SlotMachineSetup_5_0(void) { sub_8106448(); sub_81064B8(); @@ -897,7 +899,7 @@ void SlotMachineSetup_5_0(void) PutWindowTilemap(0); } -void SlotMachineSetup_10_0(void) +/*static */void SlotMachineSetup_10_0(void) { sub_8104EA8(); sub_8104F8C(); @@ -905,7 +907,7 @@ void SlotMachineSetup_10_0(void) sub_81050C4(); } -void SlotMachineSetup_10_1(void) +/*static */void SlotMachineSetup_10_1(void) { sub_8104048(); sub_8102DA8(); @@ -913,18 +915,18 @@ void SlotMachineSetup_10_1(void) sub_8101D04(); } -void sub_8101D04(void) +/*static */void sub_8101D04(void) { sub_8101D24(CreateTask(sub_8101D24, 0)); } -void sub_8101D24(u8 taskId) +/*static */void sub_8101D24(u8 taskId) { while (gUnknown_083ECAAC[sSlotMachine->state](gTasks + taskId)) ; } -bool8 sub_8101D5C(struct Task *task) +/*static */bool8 sub_8101D5C(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); sub_810423C(sSlotMachine->pikaPower); @@ -932,14 +934,14 @@ bool8 sub_8101D5C(struct Task *task) return FALSE; } -bool8 sub_8101D8C(struct Task *task) +/*static */bool8 sub_8101D8C(struct Task *task) { if (!gPaletteFade.active) sSlotMachine->state++; return FALSE; } -bool8 sub_8101DB0(struct Task *task) +/*static */bool8 sub_8101DB0(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; @@ -958,14 +960,14 @@ bool8 sub_8101DB0(struct Task *task) return TRUE; } -bool8 sub_8101DF4(struct Task *task) +/*static */bool8 sub_8101DF4(struct Task *task) { if (sub_8104E18()) sSlotMachine->state = 4; return FALSE; } -bool8 sub_8101E10(struct Task *task) +/*static */bool8 sub_8101E10(struct Task *task) { sub_8104CAC(0); sSlotMachine->state = 5; @@ -974,7 +976,7 @@ bool8 sub_8101E10(struct Task *task) return TRUE; } -bool8 sub_8101E3C(struct Task *task) +/*static */bool8 sub_8101E3C(struct Task *task) { s16 i; @@ -1016,7 +1018,7 @@ bool8 sub_8101E3C(struct Task *task) return FALSE; } -bool8 sub_8101F44(struct Task *task) +/*static */bool8 sub_8101F44(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); @@ -1025,7 +1027,7 @@ bool8 sub_8101F44(struct Task *task) return FALSE; } -bool8 sub_8101F60(struct Task *task) +/*static */bool8 sub_8101F60(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1035,14 +1037,14 @@ bool8 sub_8101F60(struct Task *task) return FALSE; } -bool8 sub_8101F88(struct Task *task) +/*static */bool8 sub_8101F88(struct Task *task) { if (sub_8104AEC()) sSlotMachine->state = 5; return FALSE; } -bool8 sub_8101FA4(struct Task *task) +/*static */bool8 sub_8101FA4(struct Task *task) { sub_8102484(); sub_8104DA4(); @@ -1067,7 +1069,7 @@ bool8 sub_8101FA4(struct Task *task) return FALSE; } -bool8 sub_8102008(struct Task *task) +/*static */bool8 sub_8102008(struct Task *task) { if (sub_810432C()) { @@ -1078,7 +1080,7 @@ bool8 sub_8102008(struct Task *task) return FALSE; } -bool8 sub_8102034(struct Task *task) +/*static */bool8 sub_8102034(struct Task *task) { if (++task->data[0] >= 30) { @@ -1088,7 +1090,7 @@ bool8 sub_8102034(struct Task *task) return FALSE; } -bool8 sub_8102058(struct Task *task) +/*static */bool8 sub_8102058(struct Task *task) { if (gMain.newKeys & A_BUTTON) { @@ -1100,7 +1102,7 @@ bool8 sub_8102058(struct Task *task) return FALSE; } -bool8 sub_8102090(struct Task *task) +/*static */bool8 sub_8102090(struct Task *task) { if (!sub_8102E40(sSlotMachine->unk18)) { @@ -1115,7 +1117,7 @@ bool8 sub_8102090(struct Task *task) return FALSE; } -bool8 sub_81020C8(struct Task *task) +/*static */bool8 sub_81020C8(struct Task *task) { sSlotMachine->unk04 &= 0xc0; CheckMatch(); @@ -1177,14 +1179,14 @@ bool8 sub_81020C8(struct Task *task) return FALSE; } -bool8 sub_81021E0(struct Task *task) +/*static */bool8 sub_81021E0(struct Task *task) { if (sub_8102A44()) sSlotMachine->state = 16; return FALSE; } -bool8 sub_81021FC(struct Task *task) +/*static */bool8 sub_81021FC(struct Task *task) { if (sub_8103FA0()) { @@ -1207,7 +1209,7 @@ bool8 sub_81021FC(struct Task *task) return FALSE; } -bool8 sub_8102264(struct Task *task) +/*static */bool8 sub_8102264(struct Task *task) { if (!sub_81040C8()) { @@ -1225,7 +1227,7 @@ bool8 sub_8102264(struct Task *task) return FALSE; } -bool8 sub_81022A0(struct Task *task) +/*static */bool8 sub_81022A0(struct Task *task) { if (sub_8104E18()) { @@ -1238,7 +1240,7 @@ bool8 sub_81022A0(struct Task *task) return FALSE; } -bool8 sub_81022CC(struct Task *task) +/*static */bool8 sub_81022CC(struct Task *task) { sub_8103D8C(0); sub_8103D8C(1); @@ -1247,7 +1249,7 @@ bool8 sub_81022CC(struct Task *task) return FALSE; } -bool8 sub_81022F0(struct Task *task) +/*static */bool8 sub_81022F0(struct Task *task) { if (++task->data[1] > 64) { @@ -1257,7 +1259,7 @@ bool8 sub_81022F0(struct Task *task) return FALSE; } -bool8 sub_8102318(struct Task *task) +/*static */bool8 sub_8102318(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); @@ -1267,7 +1269,7 @@ bool8 sub_8102318(struct Task *task) return FALSE; } -bool8 sub_8102344(struct Task *task) +/*static */bool8 sub_8102344(struct Task *task) { s8 input = Menu_ProcessInputNoWrap_(); if (input == 0) @@ -1287,7 +1289,7 @@ bool8 sub_8102344(struct Task *task) return FALSE; } -bool8 sub_810239C(struct Task *task) +/*static */bool8 sub_810239C(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); @@ -1296,7 +1298,7 @@ bool8 sub_810239C(struct Task *task) return FALSE; } -bool8 sub_81023B8(struct Task *task) +/*static */bool8 sub_81023B8(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1306,7 +1308,7 @@ bool8 sub_81023B8(struct Task *task) return FALSE; } -bool8 sub_81023E0_(struct Task *task) +/*static */bool8 sub_81023E0_(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); @@ -1315,7 +1317,7 @@ bool8 sub_81023E0_(struct Task *task) return FALSE; } -bool8 sub_81023FC(struct Task *task) +/*static */bool8 sub_81023FC(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1325,7 +1327,7 @@ bool8 sub_81023FC(struct Task *task) return FALSE; } -bool8 sub_8102424(struct Task *task) +/*static */bool8 sub_8102424(struct Task *task) { SetCoins(sSlotMachine->coins); sub_80EDD78(GetCoins()); @@ -1334,7 +1336,7 @@ bool8 sub_8102424(struct Task *task) return FALSE; } -bool8 sub_8102460(struct Task *task) +/*static */bool8 sub_8102460(struct Task *task) { if (!gPaletteFade.active) { @@ -1376,7 +1378,7 @@ bool8 sub_8102460(struct Task *task) return FALSE; } -void sub_8102484(void) +/*static */void sub_8102484(void) { u8 r3; @@ -1405,14 +1407,14 @@ void sub_8102484(void) } } -void sub_81024F0(void) +/*static */void sub_81024F0(void) { sSlotMachine->unk06 = 0; if (sSlotMachine->unk04) sSlotMachine->unk06 = 1; } -u8 sub_810250C(u8 a0) +/*static */u8 sub_810250C(u8 a0) { u8 i; @@ -1425,7 +1427,7 @@ u8 sub_810250C(u8 a0) return 0; } -bool8 sub_8102540_(void) +/*static */bool8 sub_8102540_(void) { u8 rval = Random(); if (gUnknown_083ECD04[sSlotMachine->unk01][sSlotMachine->bet - 1] > rval) @@ -1433,7 +1435,7 @@ bool8 sub_8102540_(void) return FALSE; } -u8 sub_8102578(void) +/*static */u8 sub_8102578(void) { s16 i; @@ -1447,7 +1449,7 @@ u8 sub_8102578(void) return i; } -u8 sub_81025BC(void) +/*static */u8 sub_81025BC(void) { s16 i; @@ -1473,7 +1475,7 @@ u8 sub_81025BC(void) return i; } -u8 sub_810264C(u8 a0) +/*static */u8 sub_810264C(u8 a0) { if (sSlotMachine->unk03 == 0) return gUnknown_083ECD46[a0][sSlotMachine->pikaPower]; @@ -1481,7 +1483,7 @@ u8 sub_810264C(u8 a0) return gUnknown_083ECDAC[a0][sSlotMachine->pikaPower]; } -void sub_8102680(void) +/*static */void sub_8102680(void) { u8 rval; s16 i; @@ -1499,7 +1501,7 @@ void sub_8102680(void) sSlotMachine->unk05 = i; } -bool8 sub_81026DC(u16 a0) +/*static */bool8 sub_81026DC(u16 a0) { u16 rval = Random() & 0xff; if (rval < gUnknown_083ECE12[a0]) @@ -1508,7 +1510,7 @@ bool8 sub_81026DC(u16 a0) return FALSE; } -u16 dp15_jump_random_unknown(void) +/*static */u16 dp15_jump_random_unknown(void) { u8 r4 = 0; u8 rval; @@ -1532,7 +1534,7 @@ u16 dp15_jump_random_unknown(void) return 8; } -void CheckMatch(void) +/*static */void CheckMatch(void) { sSlotMachine->matchedSymbols = 0; CheckMatch_CenterRow(); @@ -1542,7 +1544,7 @@ void CheckMatch(void) CheckMatch_Diagonals(); } -void CheckMatch_CenterRow(void) +/*static */void CheckMatch_CenterRow(void) { u8 c1, c2, c3, match; @@ -1558,7 +1560,7 @@ void CheckMatch_CenterRow(void) } } -void CheckMatch_TopAndBottom(void) +/*static */void CheckMatch_TopAndBottom(void) { u8 c1, c2, c3, match; @@ -1588,7 +1590,7 @@ void CheckMatch_TopAndBottom(void) } } -void CheckMatch_Diagonals(void) +/*static */void CheckMatch_Diagonals(void) { u8 c1, c2, c3, match; @@ -1620,7 +1622,7 @@ void CheckMatch_Diagonals(void) } } -u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) +/*static */u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) return sSym2Match[c1]; @@ -1633,12 +1635,12 @@ u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) return SLOT_MACHINE_MATCHED_NONE; } -void sub_8102A24(void) +/*static */void sub_8102A24(void) { sub_8102A64(CreateTask(sub_8102A64, 4)); } -bool8 sub_8102A44(void) +/*static */bool8 sub_8102A44(void) { if (FindTaskIdByFunc(sub_8102A64) == 0xff) return TRUE; @@ -1646,13 +1648,13 @@ bool8 sub_8102A44(void) return FALSE; } -void sub_8102A64(u8 taskId) +/*static */void sub_8102A64(u8 taskId) { while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)) ; } -bool8 sub_8102A9C(struct Task *task) +/*static */bool8 sub_8102A9C(struct Task *task) { if (sub_8103E38()) { @@ -1666,7 +1668,7 @@ bool8 sub_8102A9C(struct Task *task) return FALSE; } -bool8 sub_8102AD0(struct Task *task) +/*static */bool8 sub_8102AD0(struct Task *task) { if (!task->data[1]--) { @@ -1692,14 +1694,14 @@ bool8 sub_8102AD0(struct Task *task) return FALSE; } -bool8 sub_8102B80(struct Task *task) +/*static */bool8 sub_8102B80(struct Task *task) { if (sub_8103E7C()) DestroyTask(FindTaskIdByFunc(sub_8102A64)); return FALSE; } -u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) +/*static */u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) { s16 offset = (sSlotMachine->reelPositions[x] + y) % 21; if (offset < 0) @@ -1707,7 +1709,7 @@ u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) return sReelSymbols[x][offset]; } -u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) +/*static */u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) { s16 r6 = 0; s16 result = sSlotMachine->unk1C[x] % 24; @@ -1716,7 +1718,7 @@ u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) return GetTagOfReelSymbolOnScreenAtPos(x, y + r6); } -u8 sub_8102C48(s16 a0) +/*static */u8 sub_8102C48(s16 a0) { s16 r1 = (sSlotMachine->unk16 + a0) % 6; if (r1 < 0) @@ -1724,7 +1726,7 @@ u8 sub_8102C48(s16 a0) return gUnknown_083ECCF1[r1]; } -void sub_8102C84(u8 a0, s16 a1) +/*static */void sub_8102C84(u8 a0, s16 a1) { sSlotMachine->unk1C[a0] += a1; sSlotMachine->unk1C[a0] %= 504; @@ -1744,7 +1746,7 @@ s16 sub_8102CCC(u8 a0, s16 a1) return r1; } -void sub_8102D28(s16 a0) +/*static */void sub_8102D28(s16 a0) { sSlotMachine->unk14 += a0; sSlotMachine->unk14 %= 120; @@ -1764,7 +1766,7 @@ s16 sub_8102D5C(s16 a0) return r1; } -void sub_8102DA8(void) +/*static */void sub_8102DA8(void) { u8 i; for (i = 0; i < 3; i++) @@ -1776,41 +1778,41 @@ void sub_8102DA8(void) } } -void sub_8102DEC(u8 a0) +/*static */void sub_8102DEC(u8 a0) { gTasks[sSlotMachine->reelTasks[a0]].data[0] = 1; gTasks[sSlotMachine->reelTasks[a0]].data[14] = 1; } -void sub_8102E1C(u8 a0) +/*static */void sub_8102E1C(u8 a0) { gTasks[sSlotMachine->reelTasks[a0]].data[0] = 2; } -bool8 sub_8102E40(u8 a0) +/*static */bool8 sub_8102E40(u8 a0) { return gTasks[sSlotMachine->reelTasks[a0]].data[14]; } -void sub_8102E68(u8 taskId) +/*static */void sub_8102E68(u8 taskId) { while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)) ; } -bool8 sub_8102EA0(struct Task *task) +/*static */bool8 sub_8102EA0(struct Task *task) { return FALSE; } -bool8 sub_8102EA4(struct Task *task) +/*static */bool8 sub_8102EA4(struct Task *task) { sub_8102C84(task->data[15], sSlotMachine->unk1A); return FALSE; } -bool8 sub_8102EC0(struct Task *task) +/*static */bool8 sub_8102EC0(struct Task *task) { task->data[0]++; sSlotMachine->unk34[task->data[15]] = 0; @@ -1824,7 +1826,7 @@ bool8 sub_8102EC0(struct Task *task) return TRUE; } -bool8 sub_8102F4C(struct Task *task) +/*static */bool8 sub_8102F4C(struct Task *task) { u16 sp[ARRAY_COUNT(gUnknown_085A74FC)]; s16 r2; @@ -1848,7 +1850,7 @@ bool8 sub_8102F4C(struct Task *task) return FALSE; } -bool8 sub_8103008(struct Task *task) +/*static */bool8 sub_8103008(struct Task *task) { sSlotMachine->unk22[task->data[15]] = task->data[1]; task->data[1] = -task->data[1]; @@ -1864,7 +1866,7 @@ bool8 sub_8103008(struct Task *task) return FALSE; } -bool8 sub_810305C(void) +/*static */bool8 sub_810305C(void) { u8 r3 = sub_810250C(sSlotMachine->unk04); u8 r5 = r3; @@ -1876,7 +1878,7 @@ bool8 sub_810305C(void) return gUnknown_083ECB64[sSlotMachine->bet - 1](r5, r3); } -bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) +/*static */bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) { u8 tag = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, y); if (tag == tag1 || tag == tag2) @@ -1887,7 +1889,7 @@ bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) return FALSE; } -bool8 sub_81030E0(s16 y) +/*static */bool8 sub_81030E0(s16 y) { if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - y) == 4) return TRUE; @@ -1895,7 +1897,7 @@ bool8 sub_81030E0(s16 y) return FALSE; } -bool8 sub_8103134(void) +/*static */bool8 sub_8103134(void) { if (sSlotMachine->unk04 & 0xc2) return TRUE; @@ -1903,7 +1905,7 @@ bool8 sub_8103134(void) return FALSE; } -bool8 sub_8103154(u8 a0, u8 a1) +/*static */bool8 sub_8103154(u8 a0, u8 a1) { s16 i; @@ -1919,7 +1921,7 @@ bool8 sub_8103154(u8 a0, u8 a1) return FALSE; } -bool8 sub_81031B4(u8 tag1, u8 tag2) +/*static */bool8 sub_81031B4(u8 tag1, u8 tag2) { s16 i; bool8 r6 = sub_8103134(); @@ -1963,12 +1965,12 @@ bool8 sub_81031B4(u8 tag1, u8 tag2) return FALSE; } -bool8 sub_81032C0(void) +/*static */bool8 sub_81032C0(void) { return gUnknown_083ECB70[sSlotMachine->bet - 1](); } -bool8 sub_81032E8(void) +/*static */bool8 sub_81032E8(void) { s16 i; s16 unk34_0 = sSlotMachine->unk34[0]; @@ -1985,7 +1987,7 @@ bool8 sub_81032E8(void) return FALSE; } -bool8 sub_810333C(void) +/*static */bool8 sub_810333C(void) { s16 i; if (sub_81032E8()) @@ -2019,7 +2021,7 @@ bool8 sub_810333C(void) return FALSE; } -bool8 sub_81033DC(void) +/*static */bool8 sub_81033DC(void) { u8 r3 = sSlotMachine->unk07; if (sSlotMachine->unk04 & 0x40) @@ -2033,7 +2035,7 @@ bool8 sub_81033DC(void) return gUnknown_083ECB7C[sSlotMachine->bet - 1](r3); } -bool8 sub_810341C(u8 a0) +/*static */bool8 sub_810341C(u8 a0) { s16 i; s16 unk34_1 = sSlotMachine->unk34[1]; @@ -2050,7 +2052,7 @@ bool8 sub_810341C(u8 a0) return FALSE; } -bool8 sub_810347C(u8 a0) +/*static */bool8 sub_810347C(u8 a0) { s16 i; s16 r8; @@ -2072,7 +2074,7 @@ bool8 sub_810347C(u8 a0) return FALSE; } -void sub_81034F4(void) +/*static */void sub_81034F4(void) { s16 i = 0; @@ -2081,7 +2083,7 @@ void sub_81034F4(void) sSlotMachine->unk2E[0] = i; } -bool8 sub_8103520(u8 *a0) +/*static */bool8 sub_8103520(u8 *a0) { if (*a0 == 0) { @@ -2096,12 +2098,12 @@ bool8 sub_8103520(u8 *a0) return FALSE; } -void sub_8103540(void) +/*static */void sub_8103540(void) { gUnknown_083ECB88[sSlotMachine->bet - 1](); } -void sub_8103564(void) +/*static */void sub_8103564(void) { if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) { @@ -2122,7 +2124,7 @@ void sub_8103564(void) } } -void j5_08111E84(void) +/*static */void j5_08111E84(void) { if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) { @@ -2143,7 +2145,7 @@ void j5_08111E84(void) } } -void sub_8103668(void) +/*static */void sub_8103668(void) { s16 i; s16 j; @@ -2208,7 +2210,7 @@ void sub_8103668(void) } } -bool8 sub_8103764(u8 a0, u8 a1) +/*static */bool8 sub_8103764(u8 a0, u8 a1) { if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0)) return TRUE; @@ -2216,7 +2218,7 @@ bool8 sub_8103764(u8 a0, u8 a1) return FALSE; } -bool8 sub_810378C(u8 a0, u8 a1, u8 a2) +/*static */bool8 sub_810378C(u8 a0, u8 a1, u8 a2) { if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1)) return TRUE; @@ -2224,7 +2226,7 @@ bool8 sub_810378C(u8 a0, u8 a1, u8 a2) return FALSE; } -bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) +/*static */bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) { if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1) || @@ -2237,12 +2239,12 @@ bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) return TRUE; } -void sub_810380C(void) +/*static */void sub_810380C(void) { gUnknown_083ECB94[sSlotMachine->bet - 1](); } -void sub_8103830(void) +/*static */void sub_8103830(void) { s16 i = 0; u8 r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); @@ -2281,7 +2283,7 @@ void sub_8103830(void) sSlotMachine->unk2E[2] = i; } -void sub_8103910(void) +/*static */void sub_8103910(void) { s16 sp0 = 0; s16 i; @@ -2327,7 +2329,7 @@ void sub_8103910(void) sSlotMachine->unk2E[2] = sp0; } -void sub_8103A78(void) +/*static */void sub_8103A78(void) { u8 r6; u8 r5; @@ -2376,61 +2378,61 @@ void sub_8103A78(void) } } -void sub_8103C14(u8 a0) +/*static */void sub_8103C14(u8 a0) { u8 taskId = CreateTask(sub_8103C48, 5); gTasks[taskId].data[15] = a0; sub_8103C48(taskId); } -void sub_8103C48(u8 taskId) +/*static */void sub_8103C48(u8 taskId) { gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); } -void sub_8103C78(struct Task *task, u8 taskId) +/*static */void sub_8103C78(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); task->data[0]++; } -void sub_8103CAC(struct Task *task, u8 taskId) +/*static */void sub_8103CAC(struct Task *task, u8 taskId) { if (++task->data[1] > 11) task->data[0]++; } -void sub_8103CC8(struct Task *task, u8 taskId) +/*static */void sub_8103CC8(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); DestroyTask(taskId); } -void sub_8103D00(u8 a0) +/*static */void sub_8103D00(u8 a0) { LoadPalette(gUnknown_083EDD08[a0], gUnknown_083EDD30[a0], 2); } -void sub_8103D28(u8 a0) +/*static */void sub_8103D28(u8 a0) { LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } -void sub_8103D50(u8 a0) +/*static */void sub_8103D50(u8 a0) { u8 i; for (i = 0; i < gUnknown_083EDD3B[a0]; i++) sub_8103D00(gUnknown_083EDD35[a0][i]); } -void sub_8103D8C(u8 a0) +/*static */void sub_8103D8C(u8 a0) { u8 i; for (i = 0; i < gUnknown_083EDD3B[a0]; i++) sub_8103D28(gUnknown_083EDD35[a0][i]); } -void sub_8103DC8(void) +/*static */void sub_8103DC8(void) { u8 i; for (i = 0; i < 5; i++) @@ -2441,7 +2443,7 @@ void sub_8103DC8(void) } } -void sub_8103E04(u8 a0) +/*static */void sub_8103E04(u8 a0) { struct Sprite *sprite = gSprites + sSlotMachine->unk44[a0]; sprite->data[1] = 1; @@ -2452,7 +2454,7 @@ void sub_8103E04(u8 a0) sprite->data[7] = 0; } -bool8 sub_8103E38(void) +/*static */bool8 sub_8103E38(void) { u8 i; for (i = 0; i < 5; i++) @@ -2464,7 +2466,7 @@ bool8 sub_8103E38(void) return TRUE; } -bool8 sub_8103E7C(void) +/*static */bool8 sub_8103E7C(void) { u8 i; for (i = 0; i < 5; i++) @@ -2475,7 +2477,7 @@ bool8 sub_8103E7C(void) return TRUE; } -bool8 sub_8103EAC(u8 spriteId) +/*static */bool8 sub_8103EAC(u8 spriteId) { struct Sprite *sprite = gSprites + spriteId; if (!sprite->data[1]) @@ -2485,7 +2487,7 @@ bool8 sub_8103EAC(u8 spriteId) return sprite->data[7]; } -void sub_8103EE4(struct Sprite *sprite) +/*static */void sub_8103EE4(struct Sprite *sprite) { s16 r4; if (sprite->data[1]) @@ -2514,14 +2516,14 @@ void sub_8103EE4(struct Sprite *sprite) } } -void sub_8103F70(void) +/*static */void sub_8103F70(void) { u8 taskId = CreateTask(sub_8103FE8_, 6); gTasks[taskId].data[3] = 1; sub_8103FE8_(taskId); } -bool8 sub_8103FA0(void) +/*static */bool8 sub_8103FA0(void) { u8 taskId = FindTaskIdByFunc(sub_8103FE8_); if (!gTasks[taskId].data[2]) @@ -2533,7 +2535,7 @@ bool8 sub_8103FA0(void) return FALSE; } -void sub_8103FE8_(u8 taskId) +/*static */void sub_8103FE8_(u8 taskId) { struct Task *task = gTasks + taskId; if (!task->data[1]--) @@ -2546,12 +2548,12 @@ void sub_8103FE8_(u8 taskId) LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); } -void sub_8104048(void) +/*static */void sub_8104048(void) { sSlotMachine->unk3E = CreateTask(sub_81040E8, 8); } -void sub_8104064(u8 pikaPower) +/*static */void sub_8104064(u8 pikaPower) { struct Task *task = gTasks + sSlotMachine->unk3E; sub_812D394(task); @@ -2560,7 +2562,7 @@ void sub_8104064(u8 pikaPower) task->data[15] = 1; } -void sub_8104098(void) +/*static */void sub_8104098(void) { struct Task *task = gTasks + sSlotMachine->unk3E; sub_812D394(task); @@ -2568,27 +2570,27 @@ void sub_8104098(void) task->data[15] = 1; } -bool8 sub_81040C8(void) +/*static */bool8 sub_81040C8(void) { return gTasks[sSlotMachine->unk3E].data[15]; } -void sub_81040E8(u8 taskId) +/*static */void sub_81040E8(u8 taskId) { gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); } -void nullsub_68(struct Task *task) +/*static */void nullsub_68(struct Task *task) { } -void sub_810411C(struct Task *task) +/*static */void sub_810411C(struct Task *task) { task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); task->data[0]++; } -void sub_8104144(struct Task *task) +/*static */void sub_8104144(struct Task *task) { if (gSprites[task->data[2]].data[7]) { @@ -2607,7 +2609,7 @@ void sub_8104144(struct Task *task) } } -void sub_81041AC(struct Task *task) +/*static */void sub_81041AC(struct Task *task) { s16 r5 = task->data[1] + 2; s16 r3 = 0; @@ -2631,7 +2633,7 @@ void sub_81041AC(struct Task *task) } } -void sub_812D394(struct Task *task) +/*static */void sub_812D394(struct Task *task) { u8 i; @@ -2639,7 +2641,7 @@ void sub_812D394(struct Task *task) task->data[i] = 0; } -void sub_810423C(u8 pikaPower) +/*static */void sub_810423C(u8 pikaPower) { s16 i; s16 r3 = 0, r1 = 0; @@ -2667,25 +2669,25 @@ void sub_810423C(u8 pikaPower) gTasks[sSlotMachine->unk3E].data[1] = pikaPower; } -void sub_810430C(void) +/*static */void sub_810430C(void) { u8 taskId = CreateTask(sub_810434C, 7); sub_810434C(taskId); } -bool8 sub_810432C(void) +/*static */bool8 sub_810432C(void) { if (FindTaskIdByFunc(sub_810434C) == 0xFF) return TRUE; return FALSE; } -void sub_810434C(u8 taskId) +/*static */void sub_810434C(u8 taskId) { gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId); } -void sub_810437C(struct Task *task) +/*static */void sub_810437C(struct Task *task) { sSlotMachine->unk0A = 0; sSlotMachine->unk14 = 0; @@ -2709,7 +2711,7 @@ void sub_810437C(struct Task *task) PlayNewMapMusic(MUS_BD_TIME); } -void sub_81043EC(struct Task *task) +/*static */void sub_81043EC(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; @@ -2730,7 +2732,7 @@ void sub_81043EC(struct Task *task) sub_8102D28(task->data[4] >> 8); } -void sub_8104468(struct Task *task) +/*static */void sub_8104468(struct Task *task) { sub_8102D28(task->data[4] >> 8); if (++task->data[5] >= 60) @@ -2741,7 +2743,7 @@ void sub_8104468(struct Task *task) } } -void sub_8104498(struct Task *task) +/*static */void sub_8104498(struct Task *task) { int r5; u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; @@ -2766,7 +2768,7 @@ void sub_8104498(struct Task *task) } } -void sub_8104548(struct Task *task) +/*static */void sub_8104548(struct Task *task) { sub_8102D28(task->data[4] >> 8); if (++task->data[5] >= 80) @@ -2778,7 +2780,7 @@ void sub_8104548(struct Task *task) } } -void sub_8104598(struct Task *task) +/*static */void sub_8104598(struct Task *task) { sub_8102D28(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; @@ -2789,7 +2791,7 @@ void sub_8104598(struct Task *task) } } -void sub_81045CC(struct Task *task) +/*static */void sub_81045CC(struct Task *task) { sub_8102D28(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; @@ -2813,7 +2815,7 @@ void sub_81045CC(struct Task *task) } } -void sub_810463C(struct Task *task) +/*static */void sub_810463C(struct Task *task) { s16 r5 = sSlotMachine->unk14 % 20; if (r5) @@ -2834,7 +2836,7 @@ void sub_810463C(struct Task *task) } } -void sub_81046C0(struct Task *task) +/*static */void sub_81046C0(struct Task *task) { if (++task->data[4] >= 60) { @@ -2863,13 +2865,13 @@ void sub_81046C0(struct Task *task) } } -void sub_8104764(struct Task *task) +/*static */void sub_8104764(struct Task *task) { if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) task->data[0]++; } -void sub_8104794(struct Task *task) +/*static */void sub_8104794(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2883,7 +2885,7 @@ void sub_8104794(struct Task *task) task->data[0]++; } -void sub_81047EC(struct Task *task) +/*static */void sub_81047EC(struct Task *task) { sSlotMachine->unk0B = 0; sSlotMachine->unk0A = sSlotMachine->unk05; @@ -2908,7 +2910,7 @@ void sub_81047EC(struct Task *task) } } -void sub_8104860(struct Task *task) +/*static */void sub_8104860(struct Task *task) { if (sSlotMachine->unk1A == task->data[1]) task->data[0]++; @@ -2916,13 +2918,13 @@ void sub_8104860(struct Task *task) sSlotMachine->unk1A >>= 1; } -void sub_81048A8(struct Task *task) +/*static */void sub_81048A8(struct Task *task) { if (sub_8104E18()) DestroyTask(FindTaskIdByFunc(sub_810434C)); } -void sub_81048CC(struct Task *task) +/*static */void sub_81048CC(struct Task *task) { sub_81054B8(); sub_81056C0(); @@ -2938,7 +2940,7 @@ void sub_81048CC(struct Task *task) PlaySE(SE_W153); } -void sub_8104940(struct Task *task) +/*static */void sub_8104940(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -2958,7 +2960,7 @@ void sub_8104940(struct Task *task) } } -void sub_81049C8(struct Task *task) +/*static */void sub_81049C8(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); @@ -2969,7 +2971,7 @@ void sub_81049C8(struct Task *task) } } -void sub_81049F8(struct Task *task) +/*static */void sub_81049F8(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -2981,7 +2983,7 @@ void sub_81049F8(struct Task *task) DestroyTask(FindTaskIdByFunc(sub_810434C)); } -void sub_8104A40(s16 a0, s16 a1) +/*static */void sub_8104A40(s16 a0, s16 a1) { s16 i; @@ -2991,7 +2993,7 @@ void sub_8104A40(s16 a0, s16 a1) } } -void sub_8104A88(s16 a0) +/*static */void sub_8104A88(s16 a0) { u8 i; @@ -3001,14 +3003,14 @@ void sub_8104A88(s16 a0) } } -void sub_8104AB8(u8 a0) +/*static */void sub_8104AB8(u8 a0) { u8 taskId = CreateTask(sub_8104B0C, 1); gTasks[taskId].data[1] = a0; sub_8104B0C(taskId); } -bool8 sub_8104AEC(void) +/*static */bool8 sub_8104AEC(void) { if (FindTaskIdByFunc(sub_8104B0C) == 0xFF) return TRUE; @@ -3016,24 +3018,24 @@ bool8 sub_8104AEC(void) return FALSE; } -void sub_8104B0C(u8 taskId) +/*static */void sub_8104B0C(u8 taskId) { gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId); } -void sub_8104B3C(struct Task *task) +/*static */void sub_8104B3C(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); task->data[0]++; } -void sub_8104B60(struct Task *task) +/*static */void sub_8104B60(struct Task *task) { if (!gPaletteFade.active) task->data[0]++; } -void sub_8104B80(struct Task *task) +/*static */void sub_8104B80(struct Task *task) { sub_8104DA4(); sub_81065DC(); @@ -3043,7 +3045,7 @@ void sub_8104B80(struct Task *task) task->data[0]++; } -void sub_812DD78(struct Task *task) +/*static */void sub_812DD78(struct Task *task) { AddTextPrinterParameterized3(1, 1, 2, 5, gUnknown_085A744C, 0, gText_ReelTimeHelp); CopyWindowToVram(1, 3); @@ -3051,7 +3053,7 @@ void sub_812DD78(struct Task *task) task->data[0]++; } -void sub_8104BC8(struct Task *task) +/*static */void sub_8104BC8(struct Task *task) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { @@ -3064,32 +3066,32 @@ void sub_8104BC8(struct Task *task) } } -void sub_812DE14(struct Task *task) +/*static */void sub_812DE14(struct Task *task) { sub_812F968(); ShowBg(3); task->data[0]++; } -void sub_812DE30(struct Task *task) +/*static */void sub_812DE30(struct Task *task) { sub_8104CAC(task->data[1]); task->data[0]++; } -void sub_8104BFC(struct Task *task) +/*static */void sub_8104BFC(struct Task *task) { sub_810423C(sSlotMachine->pikaPower); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -void sub_8104C44(struct Task *task) +/*static */void sub_8104C44(struct Task *task) { DestroyTask(FindTaskIdByFunc(sub_8104B0C)); } -void sub_8104C5C(void) +/*static */void sub_8104C5C(void) { u8 i; struct Task *task; @@ -3101,7 +3103,7 @@ void sub_8104C5C(void) task->data[i] = MAX_SPRITES; } -void sub_8104CAC(u8 arg0) +/*static */void sub_8104CAC(u8 arg0) { u8 i; struct Task *task; @@ -3123,7 +3125,7 @@ void sub_8104CAC(u8 arg0) } } -void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +/*static */void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) { u8 i; struct Task *task = gTasks + sSlotMachine->unk3D; @@ -3137,7 +3139,7 @@ void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) } } -void sub_8104DA4(void) +/*static */void sub_8104DA4(void) { u8 i; struct Task *task = gTasks + sSlotMachine->unk3D; @@ -3153,7 +3155,7 @@ void sub_8104DA4(void) } } -bool8 sub_8104E18(void) +/*static */bool8 sub_8104E18(void) { u8 i; struct Task *task = gTasks + sSlotMachine->unk3D; @@ -3168,16 +3170,16 @@ bool8 sub_8104E18(void) return TRUE; } -void sub_8104E74_(u8 taskId) +/*static */void sub_8104E74_(u8 taskId) { gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId); } -void nullsub_69(struct Task *task) +/*static */void nullsub_69(struct Task *task) { } -void sub_8104EA8(void) +/*static */void sub_8104EA8(void) { s16 i; s16 j; @@ -3195,7 +3197,7 @@ void sub_8104EA8(void) } } -void sub_8104F18(struct Sprite *sprite) +/*static */void sub_8104F18(struct Sprite *sprite) { sprite->data[2] = sSlotMachine->unk1C[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; @@ -3204,7 +3206,7 @@ void sub_8104F18(struct Sprite *sprite) SetSpriteSheetFrameTileNum(sprite); } -void sub_8104F8C(void) +/*static */void sub_8104F8C(void) { s16 i; s16 x; @@ -3215,7 +3217,7 @@ void sub_8104F8C(void) sub_8104FF4(x, 23, 1, i); } -void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +/*static */void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) { struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); sprite->oam.priority = 2; @@ -3225,7 +3227,7 @@ void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) sprite->data[3] = -1; } -void sub_810506C(struct Sprite *sprite) +/*static */void sub_810506C(struct Sprite *sprite) { u16 tag = sSlotMachine->coins; if (sprite->data[0]) @@ -3241,14 +3243,14 @@ void sub_810506C(struct Sprite *sprite) } } -void sub_81050C4(void) +/*static */void sub_81050C4(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); gSprites[spriteId].oam.priority = 3; SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); } -void sub_8105100(void) +/*static */void sub_8105100(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3274,14 +3276,14 @@ void sub_8105100(void) sSlotMachine->unk3F = spriteId; } -void sub_810514C(void) +/*static */void sub_810514C(void) { DestroySprite(gSprites + sSlotMachine->unk3F); if (gUnknown_0203AAE4 != NULL) FREE_AND_SET_NULL(gUnknown_0203AAE4); } -void sub_8105170(struct Sprite *sprite) +/*static */void sub_8105170(struct Sprite *sprite) { sprite->pos2.y = sprite->pos2.x = 0; if (sprite->animNum == 4) @@ -3292,7 +3294,7 @@ void sub_8105170(struct Sprite *sprite) } } -void sub_81051C0(void) +/*static */void sub_81051C0(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3327,7 +3329,7 @@ void sub_81051C0(void) sSlotMachine->unk49[1] = spriteId; } -void sub_8105284_(void) +/*static */void sub_8105284_(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3348,7 +3350,7 @@ void sub_8105284_(void) sSlotMachine->unk42 = spriteId; } -void sub_81052EC(void) +/*static */void sub_81052EC(void) { u8 i; s16 r5; @@ -3363,7 +3365,7 @@ void sub_81052EC(void) } } -void sub_810535C(struct Sprite *sprite) +/*static */void sub_810535C(struct Sprite *sprite) { s16 r0 = (u16)(sSlotMachine->unk14 + sprite->data[7]); r0 %= 40; @@ -3371,7 +3373,7 @@ void sub_810535C(struct Sprite *sprite) StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20)); } -void sub_81053A0(void) +/*static */void sub_81053A0(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); struct Sprite *sprite = &gSprites[spriteId]; @@ -3388,7 +3390,7 @@ void sub_81053A0(void) sSlotMachine->unk4E[1] = spriteId; } -void sub_810545C(void) +/*static */void sub_810545C(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); struct Sprite *sprite = &gSprites[spriteId]; @@ -3398,7 +3400,7 @@ void sub_810545C(void) sSlotMachine->unk40 = spriteId; } -void sub_81054B8(void) +/*static */void sub_81054B8(void) { u8 i; @@ -3415,7 +3417,7 @@ void sub_81054B8(void) DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); } -void sub_8105524(void) +/*static */void sub_8105524(void) { u8 i; @@ -3423,14 +3425,14 @@ void sub_8105524(void) DestroySprite(&gSprites[sSlotMachine->unk4E[i]]); } -void sub_8105554(void) +/*static */void sub_8105554(void) { DestroySprite(&gSprites[sSlotMachine->unk42]); if (gUnknown_0203AAF0 != NULL) FREE_AND_SET_NULL(gUnknown_0203AAF0); } -void sub_8105578(void) +/*static */void sub_8105578(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); struct Sprite *sprite = &gSprites[spriteId]; @@ -3451,7 +3453,7 @@ void sub_8105578(void) sprite->data[7] = 0x20; } -void sub_810562C(struct Sprite *sprite) +/*static */void sub_810562C(struct Sprite *sprite) { if (sprite->data[0] != 0) { @@ -3473,13 +3475,13 @@ void sub_810562C(struct Sprite *sprite) } } -void sub_8105688(s16 a0) +/*static */void sub_8105688(s16 a0) { gSprites[sSlotMachine->unk50[0]].data[7] = a0; gSprites[sSlotMachine->unk50[1]].data[7] = a0; } -void sub_81056C0(void) +/*static */void sub_81056C0(void) { u8 i; @@ -3487,7 +3489,7 @@ void sub_81056C0(void) DestroySprite(&gSprites[sSlotMachine->unk50[i]]); } -void sub_81056F0(void) +/*static */void sub_81056F0(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); gSprites[spriteId].oam.priority = 1; @@ -3503,7 +3505,7 @@ void sub_81056F0(void) sSlotMachine->unk52[1] = spriteId; } -void sub_8105784(struct Sprite *sprite) +/*static */void sub_8105784(struct Sprite *sprite) { u8 sp[] = {16, 0}; if (sprite->data[0] && --sprite->data[6] <= 0) @@ -3515,12 +3517,12 @@ void sub_8105784(struct Sprite *sprite) } } -void sub_81057E8(s16 a0) +/*static */void sub_81057E8(s16 a0) { gSprites[sSlotMachine->unk52[0]].data[7] = a0; } -void sub_8105804(void) +/*static */void sub_8105804(void) { u8 i; MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); @@ -3528,24 +3530,24 @@ void sub_8105804(void) DestroySprite(&gSprites[sSlotMachine->unk52[i]]); } -void sub_8105854(void) +/*static */void sub_8105854(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); gSprites[spriteId].oam.priority = 1; sSlotMachine->unk41 = spriteId; } -void sub_8105894(struct Sprite *sprite) +/*static */void sub_8105894(struct Sprite *sprite) { sprite->pos2.y = gSpriteCoordOffsetY; } -void sub_81058A0(void) +/*static */void sub_81058A0(void) { DestroySprite(&gSprites[sSlotMachine->unk41]); } -void sub_81058C4(void) +/*static */void sub_81058C4(void) { u8 i; u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; @@ -3560,7 +3562,7 @@ void sub_81058C4(void) } } -void sub_810594C(struct Sprite *sprite) +/*static */void sub_810594C(struct Sprite *sprite) { sprite->data[0] -= 2; sprite->data[0] &= 0xff; @@ -3578,7 +3580,7 @@ void sub_810594C(struct Sprite *sprite) } } -void sub_81059B8(void) +/*static */void sub_81059B8(void) { u8 i; for (i = 0; i < 4; i++) @@ -3587,7 +3589,7 @@ void sub_81059B8(void) } } -void sub_81059E8(void) +/*static */void sub_81059E8(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); struct Sprite *sprite = &gSprites[spriteId]; @@ -3597,7 +3599,7 @@ void sub_81059E8(void) sSlotMachine->unk43 = spriteId; } -void sub_8105A38(struct Sprite *sprite) +/*static */void sub_8105A38(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3624,19 +3626,19 @@ void sub_8105A38(struct Sprite *sprite) sprite->pos2.y -= (sprite->data[1] >> 8); } -u8 sub_8105ACC(void) +/*static */u8 sub_8105ACC(void) { return gSprites[sSlotMachine->unk43].data[7]; } -void sub_8105AEC(void) +/*static */void sub_8105AEC(void) { struct Sprite *sprite = &gSprites[sSlotMachine->unk43]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -u8 sub_8105B1C(s16 x, s16 y) +/*static */u8 sub_8105B1C(s16 x, s16 y) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); struct Sprite *sprite = &gSprites[spriteId]; @@ -3646,25 +3648,25 @@ u8 sub_8105B1C(s16 x, s16 y) return spriteId; } -void sub_8105B70(struct Sprite *sprite) +/*static */void sub_8105B70(struct Sprite *sprite) { if (sprite->affineAnimEnded) sprite->data[7] = 1; } -void sub_8105B88(u8 spriteId) +/*static */void sub_8105B88(u8 spriteId) { struct Sprite *sprite = &gSprites[spriteId]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) +/*static */u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) { return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); } -u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +/*static */u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3683,12 +3685,12 @@ u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) return spriteId; } -void sub_8105C64(struct Sprite *sprite) +/*static */void sub_8105C64(struct Sprite *sprite) { sprite->data[7] = 0; } -void sub_8105C6C(struct Sprite *sprite) +/*static */void sub_8105C6C(struct Sprite *sprite) { s16 sp0[] = {4, -4, 4, -4}; s16 sp8[] = {4, 4, -4, -4}; @@ -3707,26 +3709,26 @@ void sub_8105C6C(struct Sprite *sprite) } } -void sub_8105CF0(struct Sprite *sprite) +/*static */void sub_8105CF0(struct Sprite *sprite) { sprite->hFlip = TRUE; sub_8105C6C(sprite); } -void sub_8105D08(struct Sprite *sprite) +/*static */void sub_8105D08(struct Sprite *sprite) { sprite->vFlip = TRUE; sub_8105C6C(sprite); } -void sub_8105D20(struct Sprite *sprite) +/*static */void sub_8105D20(struct Sprite *sprite) { sprite->hFlip = TRUE; sprite->vFlip = TRUE; sub_8105C6C(sprite); } -void sub_8105D3C(struct Sprite *sprite) +/*static */void sub_8105D3C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3753,7 +3755,7 @@ void sub_8105D3C(struct Sprite *sprite) } } -void sub_8105DA4(struct Sprite *sprite) +/*static */void sub_8105DA4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3780,7 +3782,7 @@ void sub_8105DA4(struct Sprite *sprite) } } -void sub_8105E08(struct Sprite *sprite) +/*static */void sub_8105E08(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3818,7 +3820,7 @@ void sub_8105E08(struct Sprite *sprite) } } -void sub_8105EB4(struct Sprite *sprite) +/*static */void sub_8105EB4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3858,7 +3860,7 @@ void sub_8105EB4(struct Sprite *sprite) } } -void sub_8105F54(struct Sprite *sprite) +/*static */void sub_8105F54(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3878,7 +3880,7 @@ void sub_8105F54(struct Sprite *sprite) } } -void sub_8105F9C(struct Sprite *sprite) +/*static */void sub_8105F9C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3912,7 +3914,7 @@ void sub_8105F9C(struct Sprite *sprite) } } -void sub_8106058(struct Sprite *sprite) +/*static */void sub_8106058(struct Sprite *sprite) { if (sprite->data[1] < 3) { @@ -3936,7 +3938,7 @@ void sub_8106058(struct Sprite *sprite) sprite->data[7] = 0; } -void sub_81060FC(struct Sprite *sprite) +/*static */void sub_81060FC(struct Sprite *sprite) { s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; @@ -3971,7 +3973,7 @@ void sub_81060FC(struct Sprite *sprite) } } -void sub_81061C8(struct Sprite *sprite) +/*static */void sub_81061C8(struct Sprite *sprite) { s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; @@ -3986,7 +3988,7 @@ void sub_81061C8(struct Sprite *sprite) sprite->data[1]--; } -void sub_8106230(struct Sprite *sprite) +/*static */void sub_8106230(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4040,21 +4042,21 @@ void sub_8106230(struct Sprite *sprite) } } -void nullsub_70(void) +/*static */void nullsub_70(void) { } -void sub_8106364(void) +/*static */void sub_8106364(void) { SetGpuReg(REG_OFFSET_MOSAIC, 0); } -void sub_8106370(void) +/*static */void sub_8106370(void) { LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); } -void sub_810639C(void) +/*static */void sub_810639C(void) { sSlotMachine->win0h = 0xf0; sSlotMachine->win0v = 0xa0; @@ -4062,7 +4064,7 @@ void sub_810639C(void) sSlotMachine->winOut = 0x3f; } -void sub_81063C0(void) +/*static */void sub_81063C0(void) { u8 i; @@ -4086,7 +4088,7 @@ void sub_81063C0(void) LoadSpritePalettes(gSlotMachineSpritePalettes); } -void sub_8106404(void) +/*static */void sub_8106404(void) { u8 *dest; u8 i, j; @@ -4110,7 +4112,7 @@ extern const u8 gSlotMachineMenu_Tilemap[]; extern const u8 gUnknown_08DCEC70[]; extern const u16 gSlotMachineMenu_Pal[]; -void sub_8106448(void) +/*static */void sub_8106448(void) { gUnknown_0203AAC8 = Alloc(0x2200); LZDecompressWram(gSlotMachineMenu_Gfx, gUnknown_0203AAC8); @@ -4119,18 +4121,18 @@ void sub_8106448(void) LoadPalette(gPalette_83EDE24, 208, 32); } -void sub_81064B8(void) +/*static */void sub_81064B8(void) { sub_812F968(); LoadSlotMachineWheelOverlay(); } -void sub_812F968(void) +/*static */void sub_812F968(void) { LoadBgTilemap(2, gSlotMachineMenu_Tilemap, 0x500, 0); } -void LoadSlotMachineWheelOverlay(void) +/*static */void LoadSlotMachineWheelOverlay(void) { s16 x, y, dx; @@ -4152,7 +4154,7 @@ void LoadSlotMachineWheelOverlay(void) } } -void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) +/*static */void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { gUnknown_0203AADC[0] = arg1; gUnknown_0203AADC[1] = arg2; @@ -4165,13 +4167,13 @@ void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) LoadBgTilemap(2, gUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); } -void sub_81065DC(void) +/*static */void sub_81065DC(void) { LoadBgTilemap(2, gUnknown_08DCEC70, 0x500, 0); HideBg(3); } -void SlotMachineSetup_9_0(void) +/*static */void SlotMachineSetup_9_0(void) { gUnknown_03001188[0] = gUnknown_0203AAF4; gUnknown_03001188[1] = gUnknown_0203AAF8; @@ -4201,7 +4203,7 @@ void SlotMachineSetup_9_0(void) gUnknown_03001188[25] = NULL; } -void SlotMachineSetup_8_0(void) +/*static */void SlotMachineSetup_8_0(void) { gUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; @@ -4489,3 +4491,126 @@ const s16 gUnknown_083ECE7E[][2] = { { 0xe8, 0x48}, { 0x00, 0x00} }; + +const SpriteCallback gUnknown_083ECF0C[] = { + sub_8105C64, + sub_8105F54, + sub_8105F54, + sub_8105F54, + sub_8105F54, + sub_8105F9C, + sub_8105EB4, + sub_8105C64, + sub_8105C64, + sub_8105C6C, + sub_8105CF0, + sub_8105D08, + sub_8105D20, + sub_8105D3C, + sub_8105DA4, + sub_8105E08, + sub_8105C64, + sub_8106058, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_8106230 +}; + +const struct UnkStruct1 Unknown_83ECF98[] = { + {25, 34, 0}, + {2, 0, 0}, + {9, 16, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFA8[] = { + {10, 1, 0}, + {11, 2, 0}, + {12, 3, 0}, + {13, 4, 0}, + {5, 5, 0}, + {8, 6, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFC4[] = { + {3, 7, 0}, + {8, 17, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFD0[] = { + {4, 8, 0}, + {6, 9, 0}, + {6, 10, 1}, + {6, 11, 2}, + {6, 12, 3}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFE8[] = { + {0, 13, 0}, + {1, 14, 0}, + {7, 15, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFF8[] = { + {19, 26, 0}, + {20, 27, 1}, + {21, 28, 2}, + {14, 29, 3}, + {15, 30, 4}, + {16, 31, 5}, + {17, 32, 6}, + {18, 33, 7}, + {8, 17, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ED020[] = { + {22, 18, 0}, + {23, 19, 1}, + {24, 20, 2}, + {14, 21, 3}, + {15, 22, 4}, + {16, 23, 5}, + {17, 24, 6}, + {18, 25, 7}, + {8, 17, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 *const gUnknown_083ED048[] = { + Unknown_83ECF98, + Unknown_83ECFA8, + Unknown_83ECFC4, + Unknown_83ECFD0, + Unknown_83ECFE8, + Unknown_83ED020, + Unknown_83ECFF8 +}; + +void (*const gUnknown_083ED064[])(void) = { + sub_810639C, + sub_8106364, + sub_8106370, + nullsub_70, + nullsub_70, + sub_8106370, + sub_8106370 +}; diff --git a/sym_bss.txt b/sym_bss.txt index 08b1a58bd1..7df5e30554 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -31,9 +31,7 @@ .include "src/mauville_old_man.o" .include "src/menu_helpers.o" .include "src/region_map.o" - -gUnknown_03001188: @ 3001188 - .space 0x68 + .include "src/slot_machine.o" gUnknown_030011F0: @ 30011F0 .space 0x2 diff --git a/sym_ewram.txt b/sym_ewram.txt index 8515e91198..ddd121bee1 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -448,94 +448,7 @@ gUnknown_0203A120: @ 203A120 .include "src/menu_helpers.o" .include "src/region_map.o" .include "src/decoration.o" - .align 2 - -@ slot_machine - -gUnknown_0203AAC8: @ 203AAC8 - .space 0x4 - -gUnknown_0203AACC: @ 203AACC - .space 0x4 - -gUnknown_0203AAD0: @ 203AAD0 - .space 0x4 - -gUnknown_0203AAD4: @ 203AAD4 - .space 0x4 - -gUnknown_0203AAD8: @ 203AAD8 - .space 0x4 - -gUnknown_0203AADC: @ 203AADC - .space 0x4 - -gUnknown_0203AAE0: @ 203AAE0 - .space 0x4 - -gUnknown_0203AAE4: @ 203AAE4 - .space 0x4 - -gUnknown_0203AAE8: @ 203AAE8 - .space 0x4 - -gUnknown_0203AAEC: @ 203AAEC - .space 0x4 - -gUnknown_0203AAF0: @ 203AAF0 - .space 0x4 - -gUnknown_0203AAF4: @ 203AAF4 - .space 0x4 - -gUnknown_0203AAF8: @ 203AAF8 - .space 0x4 - -gUnknown_0203AAFC: @ 203AAFC - .space 0x4 - -gUnknown_0203AB00: @ 203AB00 - .space 0x4 - -gUnknown_0203AB04: @ 203AB04 - .space 0x4 - -gUnknown_0203AB08: @ 203AB08 - .space 0x4 - -gUnknown_0203AB0C: @ 203AB0C - .space 0x4 - -gUnknown_0203AB10: @ 203AB10 - .space 0x4 - -gUnknown_0203AB14: @ 203AB14 - .space 0x4 - -gUnknown_0203AB18: @ 203AB18 - .space 0x4 - -gUnknown_0203AB1C: @ 203AB1C - .space 0x4 - -gUnknown_0203AB20: @ 203AB20 - .space 0x4 - -gUnknown_0203AB24: @ 203AB24 - .space 0x4 - -gUnknown_0203AB28: @ 203AB28 - .space 0x4 - -gUnknown_0203AB2C: @ 203AB2C - .space 0x4 - -gUnknown_0203AB30: @ 203AB30 - .space 0x4 - -sSlotMachine: @ 203AB34 - .space 0x4 - + .include "src/slot_machine.o" .include "src/battle_ai_script_commands.o" .align 2