diff --git a/Makefile b/Makefile index 3c2c333b0a..d9f3ec4c7b 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: ; @@ -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/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 1a2233a977..27eee478aa 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -4,10033 +4,7 @@ .syntax unified .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 - 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 sub_819ADAC -sub_819ADAC: @ 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 sub_819ADAC - - 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 - 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, =sub_819B02C - 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, =sub_819AE08 - 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 sub_819AC10 - b _0819B36E -_0819B2EA: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819B36E - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_819AC10 - 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 sub_819ABA8 - 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 sub_819ACE0 - 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 sub_819ACE0 - 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 - 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} - 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} - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _0819D964 - ldr r0, =gText_SelectPkmnToSwap - bl sub_819EBEC - b _0819D96A - .pool -_0819D964: - ldr r0, =gText_SelectPkmnToAccept - bl sub_819EBEC -_0819D96A: - ldr r0, =gUnknown_03001284 - 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 sub_819EFA8 -_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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =sub_819CE40 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 sub_819EBEC - movs r0, 0x2 - bl PutWindowTilemap - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DF30: - bl sub_819EFA8 - movs r0, 0x8 - bl PutWindowTilemap - b _0819E006 -_0819DF3C: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x15] - cmp r0, 0 - bne _0819DF4A - bl sub_819EB4C -_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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =sub_819CE40 - 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, =sub_819CD34 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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} - movs r5, 0 -_0819E53C: - ldr r6, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 sub_819E694 -sub_819E694: @ 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 sub_819E694 - - thumb_func_start sub_819E6E8 -sub_819E6E8: @ 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 sub_819E6E8 - - thumb_func_start sub_819E758 -sub_819E758: @ 819E758 - push {lr} - lsls r0, 24 - cmp r0, 0 - ble _0819E778 - ldr r0, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 sub_819E758 - - thumb_func_start sub_819E7C0 -sub_819E7C0: @ 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 sub_819E7C0 - - 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, =gUnknown_03001284 -_0819E856: - cmp r6, 0x2 - bne _0819E898 - ldr r5, =gSprites - ldr r3, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 sub_819E944 -sub_819E944: @ 819E944 - push {r4,r5,lr} - ldr r0, =gUnknown_03001284 - 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 sub_819E944 - - thumb_func_start sub_819E9E0 -sub_819E9E0: @ 819E9E0 - push {r4,r5,lr} - ldr r5, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 sub_819EB18 -sub_819EB18: @ 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 sub_819EB18 - - thumb_func_start sub_819EB4C -sub_819EB4C: @ 819EB4C - push {r4,lr} - sub sp, 0xC - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 - 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 box_print - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram -_0819EBD4: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EB4C - - thumb_func_start sub_819EBEC -sub_819EBEC: @ 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 sub_819EBEC - - thumb_func_start sub_819EC20 -sub_819EC20: @ 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 box_print - 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 box_print - 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 box_print - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EC20 - - thumb_func_start sub_819EC94 -sub_819EC94: @ 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 box_print - 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 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_819EC94 - - 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 box_print - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ECF0 - - thumb_func_start sub_819ED34 -sub_819ED34: @ 819ED34 - push {lr} - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 - 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 sub_819ED34 - - thumb_func_start sub_819ED78 -sub_819ED78: @ 819ED78 - push {lr} - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 - 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 sub_819ED78 - - thumb_func_start sub_819EDBC -sub_819EDBC: @ 819EDBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0819EDCC - cmp r0, 0x1 - beq _0819EDEC - b _0819EDF6 -_0819EDCC: - ldr r0, =gUnknown_03001284 - 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 sub_819EDBC - - thumb_func_start sub_819EE08 -sub_819EE08: @ 819EE08 - push {r4,lr} - sub sp, 0x18 - ldr r0, =gUnknown_08610918 - add r1, sp, 0xC - movs r2, 0x4 - bl CpuSet - ldr r0, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 box_print - movs r0, 0x7 - movs r1, 0x3 - bl CopyWindowToVram -_0819EED8: - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EE08 - - thumb_func_start sub_819EEF0 -sub_819EEF0: @ 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, =gUnknown_03001284 - 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 box_print - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram -_0819EF90: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EEF0 - - thumb_func_start sub_819EFA8 -sub_819EFA8: @ 819EFA8 - push {r4-r6,lr} - sub sp, 0x2C - ldr r6, =gUnknown_03001284 - 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 PrintTextOnWindow - movs r0, 0x8 - movs r1, 0x2 - bl CopyWindowToVram -_0819F03A: - add sp, 0x2C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EFA8 - - thumb_func_start sub_819F048 -sub_819F048: @ 819F048 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r4, =gUnknown_03001284 - 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 sub_819F0A0 -sub_819F0A0: @ 819F0A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_03001280 - ldr r2, =gUnknown_086108AC - ldr r1, =gUnknown_03001284 - 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 sub_819F0A0 - - thumb_func_start sub_819F0CC -sub_819F0CC: @ 819F0CC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =sub_819CE40 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =sub_819CD34 - 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 sub_819F304 -sub_819F304: @ 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, =gUnknown_03001284 - 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 sub_819F304 - - 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, =gUnknown_03001284 - 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 sub_819EBEC - ldr r0, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 sub_819EBEC -_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 sub_819EEF0 - bl sub_819EADC - ldr r0, =gUnknown_03001284 - 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, =sub_819CE40 - 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, =gUnknown_03001284 - 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 - 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 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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, =gUnknown_03001284 - 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 - + thumb_func_start sub_819F99C sub_819F99C: @ 819F99C push {r4-r7,lr} @@ -11731,7 +1705,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 @@ -12182,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 @@ -14357,7 +4331,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} @@ -14396,7 +4370,7 @@ _081A1C9E: movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 - bl PrintTextOnWindow + bl AddTextPrinterParameterized add sp, 0x34 pop {r4} pop {r0} @@ -14438,7 +4412,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 @@ -14463,7 +4437,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 @@ -14697,7 +4671,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 @@ -14707,7 +4681,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 @@ -14810,7 +4784,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 @@ -14830,7 +4804,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 @@ -14968,7 +4942,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 @@ -14978,7 +4952,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] @@ -15104,7 +5078,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 @@ -15129,7 +5103,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 @@ -15322,7 +5296,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 @@ -15332,7 +5306,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 @@ -15432,7 +5406,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 @@ -15452,7 +5426,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 @@ -15560,7 +5534,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 @@ -15569,7 +5543,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 @@ -15685,7 +5659,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 @@ -15710,7 +5684,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 @@ -15865,7 +5839,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 @@ -15874,7 +5848,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 @@ -15947,7 +5921,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 @@ -15973,7 +5947,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 @@ -15992,7 +5966,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 @@ -16248,7 +6222,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 @@ -16257,7 +6231,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 @@ -16267,7 +6241,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 @@ -16353,7 +6327,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 @@ -16378,7 +6352,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 @@ -16533,7 +6507,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 @@ -16542,7 +6516,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 @@ -16613,7 +6587,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 @@ -16631,7 +6605,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 @@ -16648,7 +6622,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 @@ -16665,7 +6639,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 @@ -16682,7 +6656,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 @@ -16691,7 +6665,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 @@ -16700,7 +6674,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 @@ -16709,7 +6683,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 @@ -16718,7 +6692,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 @@ -16727,7 +6701,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 @@ -16765,7 +6739,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 @@ -19052,7 +9026,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] @@ -19075,7 +9049,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 @@ -19111,7 +9085,7 @@ _081A4618: str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _081A465C: add sp, 0x2C pop {r3-r5} @@ -19162,7 +9136,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 @@ -19193,7 +9167,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 @@ -19234,7 +9208,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 @@ -19270,7 +9244,7 @@ _081A4778: str r7, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _081A47BC: add sp, 0x2C pop {r3-r5} @@ -19545,7 +9519,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 @@ -19567,7 +9541,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 @@ -22277,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 @@ -22285,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 @@ -22829,7 +12803,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 @@ -22995,7 +12969,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 @@ -23885,7 +13859,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 @@ -24078,8 +14052,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 @@ -24092,7 +14066,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_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/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/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/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_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/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 768311639d..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} @@ -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/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 2d1faadab5..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 @@ -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} @@ -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 a8a20594fb..e26eee8ede 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} @@ -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] @@ -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 @@ -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 @@ -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] @@ -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] @@ -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} @@ -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} @@ -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 @@ -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 @@ -22711,7 +22711,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 @@ -22732,7 +22732,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 @@ -22756,7 +22756,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 @@ -22781,7 +22781,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 @@ -22796,7 +22796,7 @@ _081D2A7E: movs r1, 0x7 adds r2, r5, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized _081D2AB6: add sp, 0x2C pop {r3-r5} @@ -22835,7 +22835,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 @@ -22851,7 +22851,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 @@ -22866,7 +22866,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 @@ -22894,7 +22894,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 @@ -22908,7 +22908,7 @@ _081D2B6C: movs r1, 0x7 adds r2, r5, 0 movs r3, 0 - bl PrintTextOnWindow + bl AddTextPrinterParameterized movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram @@ -22969,7 +22969,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} @@ -24411,7 +24411,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 @@ -24434,7 +24434,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 @@ -24465,7 +24465,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 @@ -24583,7 +24583,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 @@ -24597,7 +24597,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 @@ -28977,7 +28977,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 @@ -29000,7 +29000,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 @@ -29066,7 +29066,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..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 @@ -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 @@ -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 @@ -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] @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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: @@ -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 @@ -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 @@ -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/slot_machine.s b/asm/slot_machine.s deleted file mode 100644 index fe8acf6d6b..0000000000 --- a/asm/slot_machine.s +++ /dev/null @@ -1,8535 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .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 box_print - 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 - 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, =gUnknown_085A7D28 - 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_812E33C - - thumb_func_start sub_812E3E8 -sub_812E3E8: @ 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_812E3E8 - - 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_812E474 -sub_812E474: @ 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_812E474 - - thumb_func_start sub_812E5A8 -sub_812E5A8: @ 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_812E5A8 - - thumb_func_start sub_812E650 -sub_812E650: @ 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_812E650 - - thumb_func_start sub_812E6C4 -sub_812E6C4: @ 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_812BCE8 - 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_812E6C4 - - thumb_func_start sub_812E70C -sub_812E70C: @ 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_812E70C - - thumb_func_start sub_812E7CC -sub_812E7CC: @ 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_812E7CC - - thumb_func_start sub_812E82C -sub_812E82C: @ 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_812E82C - - thumb_func_start sub_812E8C4 -sub_812E8C4: @ 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_812E8C4 - - thumb_func_start sub_812E8F8 -sub_812E8F8: @ 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_812E8F8 - - thumb_func_start sub_812E934 -sub_812E934: @ 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_812E934 - - 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_812EA44 -sub_812EA44: @ 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_812EA44 - - thumb_func_start sub_812EA7C -sub_812EA7C: @ 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_812EA7C - - thumb_func_start sub_812EAB0 -sub_812EAB0: @ 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_812EAB0 - - 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_812EBAC -sub_812EBAC: @ 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_812EBAC - - thumb_func_start sub_812EBCC -sub_812EBCC: @ 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_812EBCC - - thumb_func_start sub_812EC20 -sub_812EC20: @ 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_812EC20 - - 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_812EC70 -sub_812EC70: @ 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_812EC70 - - thumb_func_start sub_812EC94 -sub_812EC94: @ 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_812EC94 - - 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_812ED8C -sub_812ED8C: @ 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_812ED8C - - thumb_func_start sub_812EDC0 -sub_812EDC0: @ 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_812EDC0 - - 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_812EEA8 -sub_812EEA8: @ 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_812EEA8 - - thumb_func_start sub_812EECC -sub_812EECC: @ 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_812EECC - - thumb_func_start sub_812EF00 -sub_812EF00: @ 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_812EF00 - - 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_812EF6C -sub_812EF6C: @ 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_812EF6C - - thumb_func_start sub_812EF98 -sub_812EF98: @ 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_812EFDC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812EF98 - - thumb_func_start sub_812EFDC -sub_812EFDC: @ 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_812EFDC - - 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_812DF68 - 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_812FA78 -sub_812FA78: @ 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_812FA78 - - thumb_func_start sub_812FAF4 -sub_812FAF4: @ 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_812FAF4 - - 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/asm/trade.s b/asm/trade.s index 224995de53..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 @@ -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] @@ -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 @@ -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 @@ -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 6d1be17cb5..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 @@ -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 @@ -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 4cee3c4d90..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 @@ -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/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 bbb2a2c62a..dc38826a7a 100644 --- a/data/battle_frontier_2.s +++ b/data/battle_frontier_2.s @@ -6,371 +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 - .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 -gUnknown_086108AC:: @ 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 - -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/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/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/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/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/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/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/data/slot_machine.s b/data/slot_machine.s index 0896d6348a..4a354d71c9 100644 --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -2,526 +2,8 @@ .include "constants/constants.inc" .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 - -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 - -gUnknown_085A766E:: @ 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 - .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 - - -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_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_085A7A04:: @ 85A7A04 - .4byte gUnknown_085A7954 - .4byte gUnknown_085A7964 - .4byte gUnknown_085A7980 - .4byte gUnknown_085A798C - .4byte gUnknown_085A79A4 - .4byte gUnknown_085A79DC - .4byte gUnknown_085A79B4 - -gUnknown_085A7A20:: @ 85A7A20 - .4byte sub_812F7C0 - .4byte sub_812F784 - .4byte sub_812F794 - .4byte nullsub_101 - .4byte nullsub_101 - .4byte sub_812F794 - .4byte sub_812F794 +.align 2 gUnknown_085A7A3C:: @ 85A7A3C .2byte 0 @@ -820,50 +302,50 @@ 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 - spr_template 0xFFFF, 1, gUnknown_085A7A74, gUnknown_085A7C00, NULL, gDummySpriteAffineAnimTable, sub_812E424 +gSpriteTemplate_83ED45C:: @ 85A7D28 + 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 - spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7C18, gUnknown_085A7A7C, gDummySpriteAffineAnimTable, sub_812E6C4 +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 @@ -907,8 +389,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 @@ -916,7 +398,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 @@ -927,7 +409,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 @@ -935,7 +417,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 @@ -945,7 +427,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 @@ -954,7 +436,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 @@ -962,7 +444,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 @@ -1173,7 +655,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 @@ -1201,7 +683,7 @@ gUnknown_085A8264:: @ 85A8264 .4byte gUnknown_085A7F08 .4byte gDummySpriteTemplate -gUnknown_085A82CC:: @ 85A82CC +gUnknown_083EDBC4:: @ 85A82CC .4byte gUnknown_085A8058 .4byte gUnknown_085A8070 .4byte gUnknown_085A8088 @@ -1230,7 +712,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 @@ -1252,7 +734,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 @@ -1272,29 +754,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 +789,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 @@ -1324,20 +806,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 @@ -1348,10 +830,10 @@ 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" -gUnknown_085A96E0:: @ 85A96E0 +sReelTimeWindowTilemap:: @ 85A96E0 @if anyone knows what this tilemap is please do share .incbin "graphics/slot_machine/85A96E0.bin" 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 13321eb42e..fca4b0dd51 100644 Binary files a/graphics/event_objects/pics/berry_trees/aguav.png and b/graphics/event_objects/pics/berry_trees/aguav.png differ diff --git a/graphics/event_objects/pics/berry_trees/aspear.png b/graphics/event_objects/pics/berry_trees/aspear.png index 984e598ea0..d0782166ef 100644 Binary files a/graphics/event_objects/pics/berry_trees/aspear.png and b/graphics/event_objects/pics/berry_trees/aspear.png differ diff --git a/graphics/event_objects/pics/berry_trees/cheri.png b/graphics/event_objects/pics/berry_trees/cheri.png index 527ef9dfee..ec2db0ae30 100644 Binary files a/graphics/event_objects/pics/berry_trees/cheri.png and b/graphics/event_objects/pics/berry_trees/cheri.png differ diff --git a/graphics/event_objects/pics/berry_trees/chesto.png b/graphics/event_objects/pics/berry_trees/chesto.png index 36b4520cef..3087de2b28 100644 Binary files a/graphics/event_objects/pics/berry_trees/chesto.png and b/graphics/event_objects/pics/berry_trees/chesto.png differ diff --git a/graphics/event_objects/pics/berry_trees/cornn.png b/graphics/event_objects/pics/berry_trees/cornn.png index 60ac7da8b3..de3ba7003f 100644 Binary files a/graphics/event_objects/pics/berry_trees/cornn.png and b/graphics/event_objects/pics/berry_trees/cornn.png differ diff --git a/graphics/event_objects/pics/berry_trees/dirt_pile.png b/graphics/event_objects/pics/berry_trees/dirt_pile.png index 3790fd846d..ed2a38b3f6 100644 Binary files a/graphics/event_objects/pics/berry_trees/dirt_pile.png and b/graphics/event_objects/pics/berry_trees/dirt_pile.png differ diff --git a/graphics/event_objects/pics/berry_trees/durin.png b/graphics/event_objects/pics/berry_trees/durin.png index 250cea0311..c0caf166f3 100644 Binary files a/graphics/event_objects/pics/berry_trees/durin.png and b/graphics/event_objects/pics/berry_trees/durin.png differ diff --git a/graphics/event_objects/pics/berry_trees/figy.png b/graphics/event_objects/pics/berry_trees/figy.png index 2f26d13812..6ca366296c 100644 Binary files a/graphics/event_objects/pics/berry_trees/figy.png and b/graphics/event_objects/pics/berry_trees/figy.png differ diff --git a/graphics/event_objects/pics/berry_trees/grepa.png b/graphics/event_objects/pics/berry_trees/grepa.png index 07c8554ce4..33788c4a43 100644 Binary files a/graphics/event_objects/pics/berry_trees/grepa.png and b/graphics/event_objects/pics/berry_trees/grepa.png differ diff --git a/graphics/event_objects/pics/berry_trees/hondew.png b/graphics/event_objects/pics/berry_trees/hondew.png index 45f5605eec..c07bc17f7c 100644 Binary files a/graphics/event_objects/pics/berry_trees/hondew.png and b/graphics/event_objects/pics/berry_trees/hondew.png differ diff --git a/graphics/event_objects/pics/berry_trees/iapapa.png b/graphics/event_objects/pics/berry_trees/iapapa.png index 2a8d9b7606..98eb27c1dd 100644 Binary files a/graphics/event_objects/pics/berry_trees/iapapa.png and b/graphics/event_objects/pics/berry_trees/iapapa.png differ diff --git a/graphics/event_objects/pics/berry_trees/kelpsy.png b/graphics/event_objects/pics/berry_trees/kelpsy.png index bad257fce7..7fdf1d8bd2 100644 Binary files a/graphics/event_objects/pics/berry_trees/kelpsy.png and b/graphics/event_objects/pics/berry_trees/kelpsy.png differ diff --git a/graphics/event_objects/pics/berry_trees/lansat.png b/graphics/event_objects/pics/berry_trees/lansat.png index 8ab63c9799..3271c1ceb7 100644 Binary files a/graphics/event_objects/pics/berry_trees/lansat.png and b/graphics/event_objects/pics/berry_trees/lansat.png differ diff --git a/graphics/event_objects/pics/berry_trees/leppa.png b/graphics/event_objects/pics/berry_trees/leppa.png index a0b3dccc01..601945e436 100644 Binary files a/graphics/event_objects/pics/berry_trees/leppa.png and b/graphics/event_objects/pics/berry_trees/leppa.png differ diff --git a/graphics/event_objects/pics/berry_trees/liechi.png b/graphics/event_objects/pics/berry_trees/liechi.png index a845c5ac29..b65074c80f 100644 Binary files a/graphics/event_objects/pics/berry_trees/liechi.png and b/graphics/event_objects/pics/berry_trees/liechi.png differ diff --git a/graphics/event_objects/pics/berry_trees/lum.png b/graphics/event_objects/pics/berry_trees/lum.png index e108e428ff..a2e156ddd1 100644 Binary files a/graphics/event_objects/pics/berry_trees/lum.png and b/graphics/event_objects/pics/berry_trees/lum.png differ diff --git a/graphics/event_objects/pics/berry_trees/mago.png b/graphics/event_objects/pics/berry_trees/mago.png index cc30190d20..182a3dea86 100644 Binary files a/graphics/event_objects/pics/berry_trees/mago.png and b/graphics/event_objects/pics/berry_trees/mago.png differ diff --git a/graphics/event_objects/pics/berry_trees/nomel.png b/graphics/event_objects/pics/berry_trees/nomel.png index b1c1804652..fa60688b89 100644 Binary files a/graphics/event_objects/pics/berry_trees/nomel.png and b/graphics/event_objects/pics/berry_trees/nomel.png differ diff --git a/graphics/event_objects/pics/berry_trees/oran.png b/graphics/event_objects/pics/berry_trees/oran.png index 7f98da25ec..484fb7eb23 100644 Binary files a/graphics/event_objects/pics/berry_trees/oran.png and b/graphics/event_objects/pics/berry_trees/oran.png differ diff --git a/graphics/event_objects/pics/berry_trees/pamtre.png b/graphics/event_objects/pics/berry_trees/pamtre.png index b2d7c590da..a9f3060128 100644 Binary files a/graphics/event_objects/pics/berry_trees/pamtre.png and b/graphics/event_objects/pics/berry_trees/pamtre.png differ diff --git a/graphics/event_objects/pics/berry_trees/pecha.png b/graphics/event_objects/pics/berry_trees/pecha.png index 7078d2bd1c..3bfec57534 100644 Binary files a/graphics/event_objects/pics/berry_trees/pecha.png and b/graphics/event_objects/pics/berry_trees/pecha.png differ diff --git a/graphics/event_objects/pics/berry_trees/persim.png b/graphics/event_objects/pics/berry_trees/persim.png index ff4d8f808a..eb5450b8b7 100644 Binary files a/graphics/event_objects/pics/berry_trees/persim.png and b/graphics/event_objects/pics/berry_trees/persim.png differ diff --git a/graphics/event_objects/pics/berry_trees/pomeg.png b/graphics/event_objects/pics/berry_trees/pomeg.png index 78abc73eb1..cd0e5e6c39 100644 Binary files a/graphics/event_objects/pics/berry_trees/pomeg.png and b/graphics/event_objects/pics/berry_trees/pomeg.png differ diff --git a/graphics/event_objects/pics/berry_trees/rabuta.png b/graphics/event_objects/pics/berry_trees/rabuta.png index b7a2c85d6e..59f9baff27 100644 Binary files a/graphics/event_objects/pics/berry_trees/rabuta.png and b/graphics/event_objects/pics/berry_trees/rabuta.png differ diff --git a/graphics/event_objects/pics/berry_trees/rawst.png b/graphics/event_objects/pics/berry_trees/rawst.png index e0bcac5322..aad761f5bd 100644 Binary files a/graphics/event_objects/pics/berry_trees/rawst.png and b/graphics/event_objects/pics/berry_trees/rawst.png differ diff --git a/graphics/event_objects/pics/berry_trees/razz.png b/graphics/event_objects/pics/berry_trees/razz.png index 70f56bc8b6..dc2dd1723b 100644 Binary files a/graphics/event_objects/pics/berry_trees/razz.png and b/graphics/event_objects/pics/berry_trees/razz.png differ diff --git a/graphics/event_objects/pics/berry_trees/sitrus.png b/graphics/event_objects/pics/berry_trees/sitrus.png index bdfece8608..c5392e3adb 100644 Binary files a/graphics/event_objects/pics/berry_trees/sitrus.png and b/graphics/event_objects/pics/berry_trees/sitrus.png differ diff --git a/graphics/event_objects/pics/berry_trees/spelon.png b/graphics/event_objects/pics/berry_trees/spelon.png index d9b7f41745..572b4d4f9e 100644 Binary files a/graphics/event_objects/pics/berry_trees/spelon.png and b/graphics/event_objects/pics/berry_trees/spelon.png differ diff --git a/graphics/event_objects/pics/berry_trees/sprout.png b/graphics/event_objects/pics/berry_trees/sprout.png index 8fee510bdc..e343596272 100644 Binary files a/graphics/event_objects/pics/berry_trees/sprout.png and b/graphics/event_objects/pics/berry_trees/sprout.png differ diff --git a/graphics/event_objects/pics/berry_trees/tamato.png b/graphics/event_objects/pics/berry_trees/tamato.png index d0770746bd..d12af1922c 100644 Binary files a/graphics/event_objects/pics/berry_trees/tamato.png and b/graphics/event_objects/pics/berry_trees/tamato.png differ diff --git a/graphics/event_objects/pics/berry_trees/wepear.png b/graphics/event_objects/pics/berry_trees/wepear.png index 133140843f..63e5ae53d9 100644 Binary files a/graphics/event_objects/pics/berry_trees/wepear.png and b/graphics/event_objects/pics/berry_trees/wepear.png differ diff --git a/graphics/event_objects/pics/berry_trees/wiki.png b/graphics/event_objects/pics/berry_trees/wiki.png index a78d55db4f..2fa0c0b017 100644 Binary files a/graphics/event_objects/pics/berry_trees/wiki.png and b/graphics/event_objects/pics/berry_trees/wiki.png differ diff --git a/graphics/event_objects/pics/cushions/ball_cushion.png b/graphics/event_objects/pics/cushions/ball_cushion.png index 54ecc19804..2b45f8fd2d 100644 Binary files a/graphics/event_objects/pics/cushions/ball_cushion.png and b/graphics/event_objects/pics/cushions/ball_cushion.png differ diff --git a/graphics/event_objects/pics/cushions/diamond_cushion.png b/graphics/event_objects/pics/cushions/diamond_cushion.png index 7478669413..c6c7bc7619 100644 Binary files a/graphics/event_objects/pics/cushions/diamond_cushion.png and b/graphics/event_objects/pics/cushions/diamond_cushion.png differ diff --git a/graphics/event_objects/pics/cushions/fire_cushion.png b/graphics/event_objects/pics/cushions/fire_cushion.png index aa9a70f2e8..ee67150378 100644 Binary files a/graphics/event_objects/pics/cushions/fire_cushion.png and b/graphics/event_objects/pics/cushions/fire_cushion.png differ diff --git a/graphics/event_objects/pics/cushions/grass_cushion.png b/graphics/event_objects/pics/cushions/grass_cushion.png index 8ee854f170..44862882eb 100644 Binary files a/graphics/event_objects/pics/cushions/grass_cushion.png and b/graphics/event_objects/pics/cushions/grass_cushion.png differ diff --git a/graphics/event_objects/pics/cushions/kiss_cushion.png b/graphics/event_objects/pics/cushions/kiss_cushion.png index 6a99348c90..e24bd9deaa 100644 Binary files a/graphics/event_objects/pics/cushions/kiss_cushion.png and b/graphics/event_objects/pics/cushions/kiss_cushion.png differ diff --git a/graphics/event_objects/pics/cushions/pika_cushion.png b/graphics/event_objects/pics/cushions/pika_cushion.png index 947713c399..16661bc01b 100644 Binary files a/graphics/event_objects/pics/cushions/pika_cushion.png and b/graphics/event_objects/pics/cushions/pika_cushion.png differ diff --git a/graphics/event_objects/pics/cushions/round_cushion.png b/graphics/event_objects/pics/cushions/round_cushion.png index 0e7b71ad58..2a2c6d9d97 100644 Binary files a/graphics/event_objects/pics/cushions/round_cushion.png and b/graphics/event_objects/pics/cushions/round_cushion.png differ diff --git a/graphics/event_objects/pics/cushions/spin_cushion.png b/graphics/event_objects/pics/cushions/spin_cushion.png index 81eba708c3..cfac6c811a 100644 Binary files a/graphics/event_objects/pics/cushions/spin_cushion.png and b/graphics/event_objects/pics/cushions/spin_cushion.png differ diff --git a/graphics/event_objects/pics/cushions/water_cushion.png b/graphics/event_objects/pics/cushions/water_cushion.png index 9ed16c633b..848b0cd352 100644 Binary files a/graphics/event_objects/pics/cushions/water_cushion.png and b/graphics/event_objects/pics/cushions/water_cushion.png differ diff --git a/graphics/event_objects/pics/cushions/zigzag_cushion.png b/graphics/event_objects/pics/cushions/zigzag_cushion.png index 407e6a66bc..88bb748688 100644 Binary files a/graphics/event_objects/pics/cushions/zigzag_cushion.png and b/graphics/event_objects/pics/cushions/zigzag_cushion.png differ diff --git a/graphics/event_objects/pics/dolls/azurill_doll.png b/graphics/event_objects/pics/dolls/azurill_doll.png index 1d1f7492f1..2c2a49639a 100644 Binary files a/graphics/event_objects/pics/dolls/azurill_doll.png and b/graphics/event_objects/pics/dolls/azurill_doll.png differ diff --git a/graphics/event_objects/pics/dolls/baltoy_doll.png b/graphics/event_objects/pics/dolls/baltoy_doll.png index 5205123dab..c64d260330 100644 Binary files a/graphics/event_objects/pics/dolls/baltoy_doll.png and b/graphics/event_objects/pics/dolls/baltoy_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_blastoise_doll.png b/graphics/event_objects/pics/dolls/big_blastoise_doll.png index fa295f302a..0873117d86 100644 Binary files a/graphics/event_objects/pics/dolls/big_blastoise_doll.png and b/graphics/event_objects/pics/dolls/big_blastoise_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_charizard_doll.png b/graphics/event_objects/pics/dolls/big_charizard_doll.png index 4fa5aed45f..8bf206e5ba 100644 Binary files a/graphics/event_objects/pics/dolls/big_charizard_doll.png and b/graphics/event_objects/pics/dolls/big_charizard_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_lapras_doll.png b/graphics/event_objects/pics/dolls/big_lapras_doll.png index 572d3c8106..9695a0ea52 100644 Binary files a/graphics/event_objects/pics/dolls/big_lapras_doll.png and b/graphics/event_objects/pics/dolls/big_lapras_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_regice_doll.png b/graphics/event_objects/pics/dolls/big_regice_doll.png index e437d3558a..eff1de4928 100644 Binary files a/graphics/event_objects/pics/dolls/big_regice_doll.png and b/graphics/event_objects/pics/dolls/big_regice_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_regirock_doll.png b/graphics/event_objects/pics/dolls/big_regirock_doll.png index 139abbb288..63ed272361 100644 Binary files a/graphics/event_objects/pics/dolls/big_regirock_doll.png and b/graphics/event_objects/pics/dolls/big_regirock_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_registeel_doll.png b/graphics/event_objects/pics/dolls/big_registeel_doll.png index 632a2cadd7..b7ab0821a4 100644 Binary files a/graphics/event_objects/pics/dolls/big_registeel_doll.png and b/graphics/event_objects/pics/dolls/big_registeel_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_rhydon_doll.png b/graphics/event_objects/pics/dolls/big_rhydon_doll.png index 2e059f8c94..4e439330ae 100644 Binary files a/graphics/event_objects/pics/dolls/big_rhydon_doll.png and b/graphics/event_objects/pics/dolls/big_rhydon_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_snorlax_doll.png b/graphics/event_objects/pics/dolls/big_snorlax_doll.png index 397c9baacd..dcb1699bf2 100644 Binary files a/graphics/event_objects/pics/dolls/big_snorlax_doll.png and b/graphics/event_objects/pics/dolls/big_snorlax_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_venusaur_doll.png b/graphics/event_objects/pics/dolls/big_venusaur_doll.png index 9d1961608b..1910d1c6e5 100644 Binary files a/graphics/event_objects/pics/dolls/big_venusaur_doll.png and b/graphics/event_objects/pics/dolls/big_venusaur_doll.png differ diff --git a/graphics/event_objects/pics/dolls/big_wailmer_doll.png b/graphics/event_objects/pics/dolls/big_wailmer_doll.png index a174d30f7d..13cbbccf32 100644 Binary files a/graphics/event_objects/pics/dolls/big_wailmer_doll.png and b/graphics/event_objects/pics/dolls/big_wailmer_doll.png differ diff --git a/graphics/event_objects/pics/dolls/chikorita_doll.png b/graphics/event_objects/pics/dolls/chikorita_doll.png index 6b5e6417d8..9942fc9dc0 100644 Binary files a/graphics/event_objects/pics/dolls/chikorita_doll.png and b/graphics/event_objects/pics/dolls/chikorita_doll.png differ diff --git a/graphics/event_objects/pics/dolls/clefairy_doll.png b/graphics/event_objects/pics/dolls/clefairy_doll.png index 137b202136..3aed333add 100644 Binary files a/graphics/event_objects/pics/dolls/clefairy_doll.png and b/graphics/event_objects/pics/dolls/clefairy_doll.png differ diff --git a/graphics/event_objects/pics/dolls/cyndaquil_doll.png b/graphics/event_objects/pics/dolls/cyndaquil_doll.png index b76221e1d4..2f026816ef 100644 Binary files a/graphics/event_objects/pics/dolls/cyndaquil_doll.png and b/graphics/event_objects/pics/dolls/cyndaquil_doll.png differ diff --git a/graphics/event_objects/pics/dolls/ditto_doll.png b/graphics/event_objects/pics/dolls/ditto_doll.png index da4c33018a..7b8cb48aef 100644 Binary files a/graphics/event_objects/pics/dolls/ditto_doll.png and b/graphics/event_objects/pics/dolls/ditto_doll.png differ diff --git a/graphics/event_objects/pics/dolls/duskull_doll.png b/graphics/event_objects/pics/dolls/duskull_doll.png index fdfbe3fecd..6e69796d72 100644 Binary files a/graphics/event_objects/pics/dolls/duskull_doll.png and b/graphics/event_objects/pics/dolls/duskull_doll.png differ diff --git a/graphics/event_objects/pics/dolls/gulpin_doll.png b/graphics/event_objects/pics/dolls/gulpin_doll.png index 48bf1824b3..5ffdefb0cd 100644 Binary files a/graphics/event_objects/pics/dolls/gulpin_doll.png and b/graphics/event_objects/pics/dolls/gulpin_doll.png differ diff --git a/graphics/event_objects/pics/dolls/jigglypuff_doll.png b/graphics/event_objects/pics/dolls/jigglypuff_doll.png index 1a2c8d44ac..75dcbe1eb6 100644 Binary files a/graphics/event_objects/pics/dolls/jigglypuff_doll.png and b/graphics/event_objects/pics/dolls/jigglypuff_doll.png differ diff --git a/graphics/event_objects/pics/dolls/kecleon_doll.png b/graphics/event_objects/pics/dolls/kecleon_doll.png index 92869882f1..a70feb67ce 100644 Binary files a/graphics/event_objects/pics/dolls/kecleon_doll.png and b/graphics/event_objects/pics/dolls/kecleon_doll.png differ diff --git a/graphics/event_objects/pics/dolls/lotad_doll.png b/graphics/event_objects/pics/dolls/lotad_doll.png index 9ee2182d19..69065a4240 100644 Binary files a/graphics/event_objects/pics/dolls/lotad_doll.png and b/graphics/event_objects/pics/dolls/lotad_doll.png differ diff --git a/graphics/event_objects/pics/dolls/marill_doll.png b/graphics/event_objects/pics/dolls/marill_doll.png index d5372f7ddf..d90c0cee1c 100644 Binary files a/graphics/event_objects/pics/dolls/marill_doll.png and b/graphics/event_objects/pics/dolls/marill_doll.png differ diff --git a/graphics/event_objects/pics/dolls/meowth_doll.png b/graphics/event_objects/pics/dolls/meowth_doll.png index 67ce3db4c0..cb093acfa1 100644 Binary files a/graphics/event_objects/pics/dolls/meowth_doll.png and b/graphics/event_objects/pics/dolls/meowth_doll.png differ diff --git a/graphics/event_objects/pics/dolls/mudkip_doll.png b/graphics/event_objects/pics/dolls/mudkip_doll.png index 8d6af157f2..440fde84bb 100644 Binary files a/graphics/event_objects/pics/dolls/mudkip_doll.png and b/graphics/event_objects/pics/dolls/mudkip_doll.png differ diff --git a/graphics/event_objects/pics/dolls/pichu_doll.png b/graphics/event_objects/pics/dolls/pichu_doll.png index 7a2aefc314..69bcc64ae5 100644 Binary files a/graphics/event_objects/pics/dolls/pichu_doll.png and b/graphics/event_objects/pics/dolls/pichu_doll.png differ diff --git a/graphics/event_objects/pics/dolls/pikachu_doll.png b/graphics/event_objects/pics/dolls/pikachu_doll.png index a762f1e15a..1c9342ad1c 100644 Binary files a/graphics/event_objects/pics/dolls/pikachu_doll.png and b/graphics/event_objects/pics/dolls/pikachu_doll.png differ diff --git a/graphics/event_objects/pics/dolls/seedot_doll.png b/graphics/event_objects/pics/dolls/seedot_doll.png index e00c485ae0..255b4c55d0 100644 Binary files a/graphics/event_objects/pics/dolls/seedot_doll.png and b/graphics/event_objects/pics/dolls/seedot_doll.png differ diff --git a/graphics/event_objects/pics/dolls/skitty_doll.png b/graphics/event_objects/pics/dolls/skitty_doll.png index 57ae4c5eda..6e04a9cb1d 100644 Binary files a/graphics/event_objects/pics/dolls/skitty_doll.png and b/graphics/event_objects/pics/dolls/skitty_doll.png differ diff --git a/graphics/event_objects/pics/dolls/smoochum_doll.png b/graphics/event_objects/pics/dolls/smoochum_doll.png index 4adacdfd56..7dc1180fdd 100644 Binary files a/graphics/event_objects/pics/dolls/smoochum_doll.png and b/graphics/event_objects/pics/dolls/smoochum_doll.png differ diff --git a/graphics/event_objects/pics/dolls/swablu_doll.png b/graphics/event_objects/pics/dolls/swablu_doll.png index 94e3051d7c..271576db85 100644 Binary files a/graphics/event_objects/pics/dolls/swablu_doll.png and b/graphics/event_objects/pics/dolls/swablu_doll.png differ diff --git a/graphics/event_objects/pics/dolls/togepi_doll.png b/graphics/event_objects/pics/dolls/togepi_doll.png index 4deda750c3..aa527b44bb 100644 Binary files a/graphics/event_objects/pics/dolls/togepi_doll.png and b/graphics/event_objects/pics/dolls/togepi_doll.png differ diff --git a/graphics/event_objects/pics/dolls/torchic_doll.png b/graphics/event_objects/pics/dolls/torchic_doll.png index 067eae9fb8..80969c4247 100644 Binary files a/graphics/event_objects/pics/dolls/torchic_doll.png and b/graphics/event_objects/pics/dolls/torchic_doll.png differ diff --git a/graphics/event_objects/pics/dolls/totodile_doll.png b/graphics/event_objects/pics/dolls/totodile_doll.png index b347125c94..46324159e8 100644 Binary files a/graphics/event_objects/pics/dolls/totodile_doll.png and b/graphics/event_objects/pics/dolls/totodile_doll.png differ diff --git a/graphics/event_objects/pics/dolls/treecko_doll.png b/graphics/event_objects/pics/dolls/treecko_doll.png index 3ccf44a587..6487fe8056 100644 Binary files a/graphics/event_objects/pics/dolls/treecko_doll.png and b/graphics/event_objects/pics/dolls/treecko_doll.png differ diff --git a/graphics/event_objects/pics/dolls/unused_magnemite_doll.png b/graphics/event_objects/pics/dolls/unused_magnemite_doll.png index bbf386e6ae..2c9ef10c77 100644 Binary files a/graphics/event_objects/pics/dolls/unused_magnemite_doll.png and b/graphics/event_objects/pics/dolls/unused_magnemite_doll.png differ diff --git a/graphics/event_objects/pics/dolls/unused_natu_doll.png b/graphics/event_objects/pics/dolls/unused_natu_doll.png index a2c4995e39..8087db81dd 100644 Binary files a/graphics/event_objects/pics/dolls/unused_natu_doll.png and b/graphics/event_objects/pics/dolls/unused_natu_doll.png differ diff --git a/graphics/event_objects/pics/dolls/unused_pikachu_doll.png b/graphics/event_objects/pics/dolls/unused_pikachu_doll.png index 9bf762d024..2e5181977a 100644 Binary files a/graphics/event_objects/pics/dolls/unused_pikachu_doll.png and b/graphics/event_objects/pics/dolls/unused_pikachu_doll.png differ diff --git a/graphics/event_objects/pics/dolls/unused_porygon2_doll.png b/graphics/event_objects/pics/dolls/unused_porygon2_doll.png index 465b7a0922..f68182762a 100644 Binary files a/graphics/event_objects/pics/dolls/unused_porygon2_doll.png and b/graphics/event_objects/pics/dolls/unused_porygon2_doll.png differ diff --git a/graphics/event_objects/pics/dolls/unused_squirtle_doll.png b/graphics/event_objects/pics/dolls/unused_squirtle_doll.png index ccc526aae7..0480227d0e 100644 Binary files a/graphics/event_objects/pics/dolls/unused_squirtle_doll.png and b/graphics/event_objects/pics/dolls/unused_squirtle_doll.png differ diff --git a/graphics/event_objects/pics/dolls/unused_wooper_doll.png b/graphics/event_objects/pics/dolls/unused_wooper_doll.png index 29bc8fd997..69d73eadac 100644 Binary files a/graphics/event_objects/pics/dolls/unused_wooper_doll.png and b/graphics/event_objects/pics/dolls/unused_wooper_doll.png differ diff --git a/graphics/event_objects/pics/dolls/wynaut_doll.png b/graphics/event_objects/pics/dolls/wynaut_doll.png index 3ac3d13114..5433281782 100644 Binary files a/graphics/event_objects/pics/dolls/wynaut_doll.png and b/graphics/event_objects/pics/dolls/wynaut_doll.png differ diff --git a/graphics/event_objects/pics/effects/arrow.png b/graphics/event_objects/pics/effects/arrow.png index a530b5344a..85ebdf514c 100644 Binary files a/graphics/event_objects/pics/effects/arrow.png and b/graphics/event_objects/pics/effects/arrow.png differ diff --git a/graphics/event_objects/pics/effects/ash.png b/graphics/event_objects/pics/effects/ash.png index 472583def0..8890d5ab8e 100644 Binary files a/graphics/event_objects/pics/effects/ash.png and b/graphics/event_objects/pics/effects/ash.png differ diff --git a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle.png b/graphics/event_objects/pics/effects/berry_tree_growth_sparkle.png new file mode 100644 index 0000000000..2910c2a499 Binary files /dev/null and b/graphics/event_objects/pics/effects/berry_tree_growth_sparkle.png differ 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 f3e751d3af..0000000000 Binary files a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/0.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/1.png b/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/1.png deleted file mode 100644 index d48fd12349..0000000000 Binary files a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/1.png and /dev/null differ 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 9a9abf73e4..0000000000 Binary files a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/2.png and /dev/null differ 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 857abfb0b4..0000000000 Binary files a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/3.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/4.png b/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/4.png deleted file mode 100644 index bce9df4c78..0000000000 Binary files a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/4.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/5.png b/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/5.png deleted file mode 100644 index 4c757bf6bc..0000000000 Binary files a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/5.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/berry_tree_growth_sparkle.png b/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/berry_tree_growth_sparkle.png deleted file mode 100644 index 4fd6e4d5fe..0000000000 Binary files a/graphics/event_objects/pics/effects/berry_tree_growth_sparkle/berry_tree_growth_sparkle.png and /dev/null differ 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 4546340fe7..171d23457e 100644 Binary files a/graphics/event_objects/pics/effects/bike_hop_big_splash.png and b/graphics/event_objects/pics/effects/bike_hop_big_splash.png differ 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 523238a1d4..e98ded0257 100644 Binary files a/graphics/event_objects/pics/effects/bike_hop_small_splash.png and b/graphics/event_objects/pics/effects/bike_hop_small_splash.png differ 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 0000000000..c43da9f280 Binary files /dev/null and b/graphics/event_objects/pics/effects/bike_hop_tall_grass.png differ 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 d2768ec0ce..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_hop_tall_grass/0.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/bike_hop_tall_grass/1.png b/graphics/event_objects/pics/effects/bike_hop_tall_grass/1.png deleted file mode 100644 index 7816f4d00d..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_hop_tall_grass/1.png and /dev/null differ 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 00c51d2765..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_hop_tall_grass/2.png and /dev/null differ 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 210382b933..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_hop_tall_grass/3.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/bike_hop_tall_grass/bike_hop_tall_grass.png b/graphics/event_objects/pics/effects/bike_hop_tall_grass/bike_hop_tall_grass.png deleted file mode 100644 index 805f260235..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_hop_tall_grass/bike_hop_tall_grass.png and /dev/null differ 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 0000000000..2d989d28cb Binary files /dev/null and b/graphics/event_objects/pics/effects/bike_tire_tracks.png differ 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 d4fd46f9ba..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_tire_tracks/0.png and /dev/null differ 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 9095cdd745..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_tire_tracks/1.png and /dev/null differ 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 56907c153a..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_tire_tracks/2.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/bike_tire_tracks/3.png b/graphics/event_objects/pics/effects/bike_tire_tracks/3.png deleted file mode 100644 index 397bfb4181..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_tire_tracks/3.png and /dev/null differ 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 383a393c4d..0000000000 Binary files a/graphics/event_objects/pics/effects/bike_tire_tracks/bike_tire_tracks.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/bird.png b/graphics/event_objects/pics/effects/bird.png index 3147f98f52..e9d9798fde 100644 Binary files a/graphics/event_objects/pics/effects/bird.png and b/graphics/event_objects/pics/effects/bird.png differ diff --git a/graphics/event_objects/pics/effects/bubbles.png b/graphics/event_objects/pics/effects/bubbles.png index 554fc8425e..b04ceaf095 100644 Binary files a/graphics/event_objects/pics/effects/bubbles.png and b/graphics/event_objects/pics/effects/bubbles.png differ diff --git a/graphics/event_objects/pics/effects/deep_sand_footprints.png b/graphics/event_objects/pics/effects/deep_sand_footprints.png new file mode 100644 index 0000000000..ea7484b23e Binary files /dev/null and b/graphics/event_objects/pics/effects/deep_sand_footprints.png differ 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 c449b223e9..0000000000 Binary files a/graphics/event_objects/pics/effects/deep_sand_footprints/0.png and /dev/null differ 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 2a1d5cce5d..0000000000 Binary files a/graphics/event_objects/pics/effects/deep_sand_footprints/1.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/deep_sand_footprints/deep_sand_footprints.png b/graphics/event_objects/pics/effects/deep_sand_footprints/deep_sand_footprints.png deleted file mode 100644 index 8719bd7a24..0000000000 Binary files a/graphics/event_objects/pics/effects/deep_sand_footprints/deep_sand_footprints.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/ground_impact_dust.png b/graphics/event_objects/pics/effects/ground_impact_dust.png new file mode 100644 index 0000000000..d4562fe57d Binary files /dev/null and b/graphics/event_objects/pics/effects/ground_impact_dust.png differ 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 57e2e88982..0000000000 Binary files a/graphics/event_objects/pics/effects/ground_impact_dust/0.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/ground_impact_dust/1.png b/graphics/event_objects/pics/effects/ground_impact_dust/1.png deleted file mode 100644 index d91554b6ea..0000000000 Binary files a/graphics/event_objects/pics/effects/ground_impact_dust/1.png and /dev/null differ 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 8d0235141a..0000000000 Binary files a/graphics/event_objects/pics/effects/ground_impact_dust/2.png and /dev/null differ 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 83b25a6057..0000000000 Binary files a/graphics/event_objects/pics/effects/ground_impact_dust/ground_impact_dust.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/hot_springs_water.png b/graphics/event_objects/pics/effects/hot_springs_water.png index 1b6550b196..18892239e2 100644 Binary files a/graphics/event_objects/pics/effects/hot_springs_water.png and b/graphics/event_objects/pics/effects/hot_springs_water.png differ diff --git a/graphics/event_objects/pics/effects/jump_out_of_ash.png b/graphics/event_objects/pics/effects/jump_out_of_ash.png index b5161274ab..3247b81696 100644 Binary files a/graphics/event_objects/pics/effects/jump_out_of_ash.png and b/graphics/event_objects/pics/effects/jump_out_of_ash.png differ 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 0000000000..265e45056b Binary files /dev/null and b/graphics/event_objects/pics/effects/long_grass.png differ diff --git a/graphics/event_objects/pics/effects/long_grass/0.png b/graphics/event_objects/pics/effects/long_grass/0.png deleted file mode 100644 index 4a02b3d174..0000000000 Binary files a/graphics/event_objects/pics/effects/long_grass/0.png and /dev/null differ 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 97f652c6d4..0000000000 Binary files a/graphics/event_objects/pics/effects/long_grass/1.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/long_grass/2.png b/graphics/event_objects/pics/effects/long_grass/2.png deleted file mode 100644 index 313226f8bc..0000000000 Binary files a/graphics/event_objects/pics/effects/long_grass/2.png and /dev/null differ 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 0565b40695..0000000000 Binary files a/graphics/event_objects/pics/effects/long_grass/3.png and /dev/null differ 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 5dfc3b2469..0000000000 Binary files a/graphics/event_objects/pics/effects/long_grass/long_grass.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/mountain_disguise.png b/graphics/event_objects/pics/effects/mountain_disguise.png index ad592eac89..c394855e61 100644 Binary files a/graphics/event_objects/pics/effects/mountain_disguise.png and b/graphics/event_objects/pics/effects/mountain_disguise.png differ diff --git a/graphics/event_objects/pics/effects/ripple.png b/graphics/event_objects/pics/effects/ripple.png index 0352ef2d8b..87e6dd6176 100644 Binary files a/graphics/event_objects/pics/effects/ripple.png and b/graphics/event_objects/pics/effects/ripple.png differ 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 66b9993e77..76808a53bd Binary files a/graphics/event_objects/pics/effects/sand_disguise_placeholder.png and b/graphics/event_objects/pics/effects/sand_disguise_placeholder.png differ diff --git a/graphics/event_objects/pics/effects/sand_footprints.png b/graphics/event_objects/pics/effects/sand_footprints.png new file mode 100644 index 0000000000..71c54f7872 Binary files /dev/null and b/graphics/event_objects/pics/effects/sand_footprints.png differ 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 3cc79aa184..0000000000 Binary files a/graphics/event_objects/pics/effects/sand_footprints/0.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/sand_footprints/1.png b/graphics/event_objects/pics/effects/sand_footprints/1.png deleted file mode 100644 index 80d33783b3..0000000000 Binary files a/graphics/event_objects/pics/effects/sand_footprints/1.png and /dev/null differ 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 cec011d0a5..0000000000 Binary files a/graphics/event_objects/pics/effects/sand_footprints/sand_footprints.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/shadow_extra_large.png b/graphics/event_objects/pics/effects/shadow_extra_large.png index 41b37d8fba..765a5291a8 100644 Binary files a/graphics/event_objects/pics/effects/shadow_extra_large.png and b/graphics/event_objects/pics/effects/shadow_extra_large.png differ diff --git a/graphics/event_objects/pics/effects/shadow_large.png b/graphics/event_objects/pics/effects/shadow_large.png index f0e76cd7ff..e917823b05 100644 Binary files a/graphics/event_objects/pics/effects/shadow_large.png and b/graphics/event_objects/pics/effects/shadow_large.png differ diff --git a/graphics/event_objects/pics/effects/shadow_medium.png b/graphics/event_objects/pics/effects/shadow_medium.png index 7bf9afef71..83ab6e1f6e 100644 Binary files a/graphics/event_objects/pics/effects/shadow_medium.png and b/graphics/event_objects/pics/effects/shadow_medium.png differ diff --git a/graphics/event_objects/pics/effects/shadow_small.png b/graphics/event_objects/pics/effects/shadow_small.png index 6c13c1b862..f5feada2b9 100644 Binary files a/graphics/event_objects/pics/effects/shadow_small.png and b/graphics/event_objects/pics/effects/shadow_small.png differ diff --git a/graphics/event_objects/pics/effects/short_grass.png b/graphics/event_objects/pics/effects/short_grass.png index 53eb7924e2..dc477e29fc 100644 Binary files a/graphics/event_objects/pics/effects/short_grass.png and b/graphics/event_objects/pics/effects/short_grass.png differ diff --git a/graphics/event_objects/pics/effects/splash.png b/graphics/event_objects/pics/effects/splash.png index a33a0c9dac..6e55ffae0b 100644 Binary files a/graphics/event_objects/pics/effects/splash.png and b/graphics/event_objects/pics/effects/splash.png differ diff --git a/graphics/event_objects/pics/effects/surf_blob.png b/graphics/event_objects/pics/effects/surf_blob.png index 7e91e17dc1..b5656cf16b 100644 Binary files a/graphics/event_objects/pics/effects/surf_blob.png and b/graphics/event_objects/pics/effects/surf_blob.png differ diff --git a/graphics/event_objects/pics/effects/tall_grass.png b/graphics/event_objects/pics/effects/tall_grass.png index b6b44307a9..919fc6f8a8 100644 Binary files a/graphics/event_objects/pics/effects/tall_grass.png and b/graphics/event_objects/pics/effects/tall_grass.png differ diff --git a/graphics/event_objects/pics/effects/tree_disguise.png b/graphics/event_objects/pics/effects/tree_disguise.png index 77d07ef4ed..8acbfbd5d4 100644 Binary files a/graphics/event_objects/pics/effects/tree_disguise.png and b/graphics/event_objects/pics/effects/tree_disguise.png differ diff --git a/graphics/event_objects/pics/effects/unknown_16.png b/graphics/event_objects/pics/effects/unknown_16.png new file mode 100755 index 0000000000..bb4789f9f5 Binary files /dev/null and b/graphics/event_objects/pics/effects/unknown_16.png differ 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 491801c325..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_16/0.png and /dev/null differ 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 f83ca15da5..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_16/1.png and /dev/null differ 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 073aa9b7ef..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_16/2.png and /dev/null differ 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 e7b5c96cf5..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_16/3.png and /dev/null differ 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 8972d5d810..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_16/4.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_16/5.png b/graphics/event_objects/pics/effects/unknown_16/5.png deleted file mode 100644 index d570a9a8d7..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_16/5.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_17.png b/graphics/event_objects/pics/effects/unknown_17.png index fedf86a10b..f158bebc81 100644 Binary files a/graphics/event_objects/pics/effects/unknown_17.png and b/graphics/event_objects/pics/effects/unknown_17.png differ diff --git a/graphics/event_objects/pics/effects/unknown_18.png b/graphics/event_objects/pics/effects/unknown_18.png new file mode 100644 index 0000000000..65f4d97e29 Binary files /dev/null and b/graphics/event_objects/pics/effects/unknown_18.png differ diff --git a/graphics/event_objects/pics/effects/unknown_18/0.png b/graphics/event_objects/pics/effects/unknown_18/0.png deleted file mode 100644 index 70b39df595..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_18/0.png and /dev/null differ 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 392298f5a7..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_18/1.png and /dev/null differ 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 ff418e940c..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_18/2.png and /dev/null differ 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 0e1e134386..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_18/3.png and /dev/null differ 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 19f08ac537..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_18/unknown_18.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_19.png b/graphics/event_objects/pics/effects/unknown_19.png new file mode 100644 index 0000000000..4ae851e58b Binary files /dev/null and b/graphics/event_objects/pics/effects/unknown_19.png differ diff --git a/graphics/event_objects/pics/effects/unknown_19/0.png b/graphics/event_objects/pics/effects/unknown_19/0.png deleted file mode 100644 index ef80050661..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_19/0.png and /dev/null differ 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 6fde1a2913..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_19/1.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_19/2.png b/graphics/event_objects/pics/effects/unknown_19/2.png deleted file mode 100644 index c385fd84cc..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_19/2.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_19/3.png b/graphics/event_objects/pics/effects/unknown_19/3.png deleted file mode 100644 index 084c20314a..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_19/3.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_19/unknown_19.png b/graphics/event_objects/pics/effects/unknown_19/unknown_19.png deleted file mode 100644 index d670cde5fc..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_19/unknown_19.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_20.png b/graphics/event_objects/pics/effects/unknown_20.png new file mode 100644 index 0000000000..7d6af5e0cd Binary files /dev/null and b/graphics/event_objects/pics/effects/unknown_20.png differ diff --git a/graphics/event_objects/pics/effects/unknown_20/0.png b/graphics/event_objects/pics/effects/unknown_20/0.png deleted file mode 100644 index eec853d53b..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_20/0.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_20/1.png b/graphics/event_objects/pics/effects/unknown_20/1.png deleted file mode 100644 index f4782fc670..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_20/1.png and /dev/null differ 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 416dae69db..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_20/2.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_20/3.png b/graphics/event_objects/pics/effects/unknown_20/3.png deleted file mode 100644 index 3d966e81c6..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_20/3.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_20/4.png b/graphics/event_objects/pics/effects/unknown_20/4.png deleted file mode 100644 index 6bbfbca120..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_20/4.png and /dev/null differ 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 83e35467a1..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_20/unknown_20.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_29.png b/graphics/event_objects/pics/effects/unknown_29.png new file mode 100644 index 0000000000..03f89a5f5b Binary files /dev/null and b/graphics/event_objects/pics/effects/unknown_29.png differ diff --git a/graphics/event_objects/pics/effects/unknown_29/0.png b/graphics/event_objects/pics/effects/unknown_29/0.png deleted file mode 100644 index 87fe91c975..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_29/0.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_29/1.png b/graphics/event_objects/pics/effects/unknown_29/1.png deleted file mode 100644 index c20fb34bbe..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_29/1.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_29/2.png b/graphics/event_objects/pics/effects/unknown_29/2.png deleted file mode 100644 index def972b20a..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_29/2.png and /dev/null differ 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 2da55f179d..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_29/unknown_29.png and /dev/null differ 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 0000000000..26b8522003 Binary files /dev/null and b/graphics/event_objects/pics/effects/unknown_33.png differ 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 2241eabd31..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_33/0.png and /dev/null differ 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 5f90405d83..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_33/1.png and /dev/null differ 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 3f1c3a76a4..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_33/2.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_33/3.png b/graphics/event_objects/pics/effects/unknown_33/3.png deleted file mode 100644 index 2696f4a5ac..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_33/3.png and /dev/null differ 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 c2d1785bf7..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_33/4.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_33/unknown_33.png b/graphics/event_objects/pics/effects/unknown_33/unknown_33.png deleted file mode 100644 index 67f589ece3..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_33/unknown_33.png and /dev/null differ 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 0000000000..b2072bd264 Binary files /dev/null and b/graphics/event_objects/pics/effects/unknown_35.png differ 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 c2ae128f7f..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_35/0.png and /dev/null differ 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 fe68b19fd0..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_35/1.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_35/unknown_35.png b/graphics/event_objects/pics/effects/unknown_35/unknown_35.png deleted file mode 100644 index 8dbffe36ca..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_35/unknown_35.png and /dev/null differ diff --git a/graphics/event_objects/pics/effects/unknown_4F7E38/0.png b/graphics/event_objects/pics/effects/unknown_4F7E38/0.png deleted file mode 100644 index 685aee28b7..0000000000 Binary files a/graphics/event_objects/pics/effects/unknown_4F7E38/0.png and /dev/null differ 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 0000000000..ffd68ec1da Binary files /dev/null and b/graphics/event_objects/pics/effects/unused_grass.png differ diff --git a/graphics/event_objects/pics/effects/unused_grass/0.png b/graphics/event_objects/pics/effects/unused_grass/0.png deleted file mode 100644 index 2e16f15cb6..0000000000 Binary files a/graphics/event_objects/pics/effects/unused_grass/0.png and /dev/null differ 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 dd33b0d883..0000000000 Binary files a/graphics/event_objects/pics/effects/unused_grass/1.png and /dev/null differ 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 345d454cdd..0000000000 Binary files a/graphics/event_objects/pics/effects/unused_grass/2.png and /dev/null differ 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 0876761026..0000000000 Binary files a/graphics/event_objects/pics/effects/unused_grass/3.png and /dev/null differ 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 0c573b4aa4..0000000000 Binary files a/graphics/event_objects/pics/effects/unused_grass/unused_grass.png and /dev/null differ diff --git a/graphics/event_objects/pics/misc/birchs_bag.png b/graphics/event_objects/pics/misc/birchs_bag.png index 045e5546c7..21f463b718 100644 Binary files a/graphics/event_objects/pics/misc/birchs_bag.png and b/graphics/event_objects/pics/misc/birchs_bag.png differ diff --git a/graphics/event_objects/pics/misc/birth_island_stone.png b/graphics/event_objects/pics/misc/birth_island_stone.png index 2ec134c229..3c5d82c119 100644 Binary files a/graphics/event_objects/pics/misc/birth_island_stone.png and b/graphics/event_objects/pics/misc/birth_island_stone.png differ diff --git a/graphics/event_objects/pics/misc/breakable_rock.png b/graphics/event_objects/pics/misc/breakable_rock.png index db9926804d..c5054da411 100644 Binary files a/graphics/event_objects/pics/misc/breakable_rock.png and b/graphics/event_objects/pics/misc/breakable_rock.png differ diff --git a/graphics/event_objects/pics/misc/cable_car.png b/graphics/event_objects/pics/misc/cable_car.png index e0bd21ddfa..67f581fb97 100644 Binary files a/graphics/event_objects/pics/misc/cable_car.png and b/graphics/event_objects/pics/misc/cable_car.png differ diff --git a/graphics/event_objects/pics/misc/cuttable_tree.png b/graphics/event_objects/pics/misc/cuttable_tree.png index 6071f4a61e..fba4ced1ac 100644 Binary files a/graphics/event_objects/pics/misc/cuttable_tree.png and b/graphics/event_objects/pics/misc/cuttable_tree.png differ diff --git a/graphics/event_objects/pics/misc/fossil.png b/graphics/event_objects/pics/misc/fossil.png index a8da0e8ff6..3e070a6c9b 100644 Binary files a/graphics/event_objects/pics/misc/fossil.png and b/graphics/event_objects/pics/misc/fossil.png differ diff --git a/graphics/event_objects/pics/misc/item_ball.png b/graphics/event_objects/pics/misc/item_ball.png index a30e02fb15..ef02e158c9 100644 Binary files a/graphics/event_objects/pics/misc/item_ball.png and b/graphics/event_objects/pics/misc/item_ball.png differ diff --git a/graphics/event_objects/pics/misc/moving_box.png b/graphics/event_objects/pics/misc/moving_box.png index 3cbc419006..43b65c2c15 100644 Binary files a/graphics/event_objects/pics/misc/moving_box.png and b/graphics/event_objects/pics/misc/moving_box.png differ diff --git a/graphics/event_objects/pics/misc/mr_brineys_boat.png b/graphics/event_objects/pics/misc/mr_brineys_boat.png index e790eb172d..249f25b51b 100644 Binary files a/graphics/event_objects/pics/misc/mr_brineys_boat.png and b/graphics/event_objects/pics/misc/mr_brineys_boat.png differ diff --git a/graphics/event_objects/pics/misc/pushable_boulder.png b/graphics/event_objects/pics/misc/pushable_boulder.png index a6962123c4..eba6a116f9 100644 Binary files a/graphics/event_objects/pics/misc/pushable_boulder.png and b/graphics/event_objects/pics/misc/pushable_boulder.png differ diff --git a/graphics/event_objects/pics/misc/ss_tidal.png b/graphics/event_objects/pics/misc/ss_tidal.png index 40ca9a3f3c..44510d25ae 100644 Binary files a/graphics/event_objects/pics/misc/ss_tidal.png and b/graphics/event_objects/pics/misc/ss_tidal.png differ diff --git a/graphics/event_objects/pics/misc/statue.png b/graphics/event_objects/pics/misc/statue.png index 725aa8a7bf..7b4b13cd73 100644 Binary files a/graphics/event_objects/pics/misc/statue.png and b/graphics/event_objects/pics/misc/statue.png differ diff --git a/graphics/event_objects/pics/misc/submarine_shadow.png b/graphics/event_objects/pics/misc/submarine_shadow.png index b9dfc4c553..d43bc98dc1 100644 Binary files a/graphics/event_objects/pics/misc/submarine_shadow.png and b/graphics/event_objects/pics/misc/submarine_shadow.png differ diff --git a/graphics/event_objects/pics/misc/truck.png b/graphics/event_objects/pics/misc/truck.png index 0d31ffbc20..46940a9a3a 100644 Binary files a/graphics/event_objects/pics/misc/truck.png and b/graphics/event_objects/pics/misc/truck.png differ diff --git a/graphics/event_objects/pics/people/artist.png b/graphics/event_objects/pics/people/artist.png index 7a40a2e38f..1a98032a7f 100644 Binary files a/graphics/event_objects/pics/people/artist.png and b/graphics/event_objects/pics/people/artist.png differ diff --git a/graphics/event_objects/pics/people/beauty.png b/graphics/event_objects/pics/people/beauty.png index ac07e8e9b9..dd3a3d76b1 100644 Binary files a/graphics/event_objects/pics/people/beauty.png and b/graphics/event_objects/pics/people/beauty.png differ diff --git a/graphics/event_objects/pics/people/black_belt.png b/graphics/event_objects/pics/people/black_belt.png index 88043e0c0f..e6c901933e 100644 Binary files a/graphics/event_objects/pics/people/black_belt.png and b/graphics/event_objects/pics/people/black_belt.png differ diff --git a/graphics/event_objects/pics/people/boy_1.png b/graphics/event_objects/pics/people/boy_1.png index 72cb2c2b51..cd7507c9b2 100644 Binary files a/graphics/event_objects/pics/people/boy_1.png and b/graphics/event_objects/pics/people/boy_1.png differ diff --git a/graphics/event_objects/pics/people/boy_2.png b/graphics/event_objects/pics/people/boy_2.png index c8d6db12e7..ff57b602bf 100644 Binary files a/graphics/event_objects/pics/people/boy_2.png and b/graphics/event_objects/pics/people/boy_2.png differ diff --git a/graphics/event_objects/pics/people/boy_3.png b/graphics/event_objects/pics/people/boy_3.png index dd8f2e51d9..b6dba79447 100644 Binary files a/graphics/event_objects/pics/people/boy_3.png and b/graphics/event_objects/pics/people/boy_3.png differ diff --git a/graphics/event_objects/pics/people/boy_4.png b/graphics/event_objects/pics/people/boy_4.png index 2e2fd0412a..6536d2c23a 100644 Binary files a/graphics/event_objects/pics/people/boy_4.png and b/graphics/event_objects/pics/people/boy_4.png differ diff --git a/graphics/event_objects/pics/people/boy_5.png b/graphics/event_objects/pics/people/boy_5.png index 19fff5b36e..b0b7426516 100644 Binary files a/graphics/event_objects/pics/people/boy_5.png and b/graphics/event_objects/pics/people/boy_5.png differ diff --git a/graphics/event_objects/pics/people/brendan/acro_bike.png b/graphics/event_objects/pics/people/brendan/acro_bike.png index 367fa1bd5a..183e2b7c95 100644 Binary files a/graphics/event_objects/pics/people/brendan/acro_bike.png and b/graphics/event_objects/pics/people/brendan/acro_bike.png differ diff --git a/graphics/event_objects/pics/people/brendan/decorating.png b/graphics/event_objects/pics/people/brendan/decorating.png index c0839120a8..f3771e60e4 100644 Binary files a/graphics/event_objects/pics/people/brendan/decorating.png and b/graphics/event_objects/pics/people/brendan/decorating.png differ diff --git a/graphics/event_objects/pics/people/brendan/field_move.png b/graphics/event_objects/pics/people/brendan/field_move.png index 7f85137a4c..26ef747494 100644 Binary files a/graphics/event_objects/pics/people/brendan/field_move.png and b/graphics/event_objects/pics/people/brendan/field_move.png differ diff --git a/graphics/event_objects/pics/people/brendan/fishing.png b/graphics/event_objects/pics/people/brendan/fishing.png index 8ebe7ae4d9..bb2a8f7472 100644 Binary files a/graphics/event_objects/pics/people/brendan/fishing.png and b/graphics/event_objects/pics/people/brendan/fishing.png differ diff --git a/graphics/event_objects/pics/people/brendan/mach_bike.png b/graphics/event_objects/pics/people/brendan/mach_bike.png index a1518cf9a7..661ebb7330 100644 Binary files a/graphics/event_objects/pics/people/brendan/mach_bike.png and b/graphics/event_objects/pics/people/brendan/mach_bike.png differ diff --git a/graphics/event_objects/pics/people/brendan/running.png b/graphics/event_objects/pics/people/brendan/running.png index cf5a6b61e6..a66dbf8d3e 100644 Binary files a/graphics/event_objects/pics/people/brendan/running.png and b/graphics/event_objects/pics/people/brendan/running.png differ diff --git a/graphics/event_objects/pics/people/brendan/surfing.png b/graphics/event_objects/pics/people/brendan/surfing.png index c0ddb14f6a..1baa4afc6c 100644 Binary files a/graphics/event_objects/pics/people/brendan/surfing.png and b/graphics/event_objects/pics/people/brendan/surfing.png differ diff --git a/graphics/event_objects/pics/people/brendan/underwater.png b/graphics/event_objects/pics/people/brendan/underwater.png index 86e436e55d..47f926b612 100644 Binary files a/graphics/event_objects/pics/people/brendan/underwater.png and b/graphics/event_objects/pics/people/brendan/underwater.png differ diff --git a/graphics/event_objects/pics/people/brendan/walking.png b/graphics/event_objects/pics/people/brendan/walking.png index 31b64a1af6..0560881fa5 100644 Binary files a/graphics/event_objects/pics/people/brendan/walking.png and b/graphics/event_objects/pics/people/brendan/walking.png differ diff --git a/graphics/event_objects/pics/people/brendan/watering.png b/graphics/event_objects/pics/people/brendan/watering.png index e348d8994d..999608437b 100644 Binary files a/graphics/event_objects/pics/people/brendan/watering.png and b/graphics/event_objects/pics/people/brendan/watering.png differ diff --git a/graphics/event_objects/pics/people/bug_catcher.png b/graphics/event_objects/pics/people/bug_catcher.png index 4890502514..7f733b9361 100644 Binary files a/graphics/event_objects/pics/people/bug_catcher.png and b/graphics/event_objects/pics/people/bug_catcher.png differ diff --git a/graphics/event_objects/pics/people/cameraman.png b/graphics/event_objects/pics/people/cameraman.png index 23addbab1d..b1f972438a 100644 Binary files a/graphics/event_objects/pics/people/cameraman.png and b/graphics/event_objects/pics/people/cameraman.png differ diff --git a/graphics/event_objects/pics/people/camper.png b/graphics/event_objects/pics/people/camper.png index c931d478d9..3719d64f34 100644 Binary files a/graphics/event_objects/pics/people/camper.png and b/graphics/event_objects/pics/people/camper.png differ diff --git a/graphics/event_objects/pics/people/contest_old_man.png b/graphics/event_objects/pics/people/contest_old_man.png index b5e9e5cde6..919230cb7e 100644 Binary files a/graphics/event_objects/pics/people/contest_old_man.png and b/graphics/event_objects/pics/people/contest_old_man.png differ diff --git a/graphics/event_objects/pics/people/cook.png b/graphics/event_objects/pics/people/cook.png index 66d77802cb..9ac187130b 100644 Binary files a/graphics/event_objects/pics/people/cook.png and b/graphics/event_objects/pics/people/cook.png differ diff --git a/graphics/event_objects/pics/people/cycling_triathlete_f.png b/graphics/event_objects/pics/people/cycling_triathlete_f.png index 42be9a608a..a291b79c50 100644 Binary files a/graphics/event_objects/pics/people/cycling_triathlete_f.png and b/graphics/event_objects/pics/people/cycling_triathlete_f.png differ diff --git a/graphics/event_objects/pics/people/cycling_triathlete_m.png b/graphics/event_objects/pics/people/cycling_triathlete_m.png index e2ae09033d..08a848d27d 100644 Binary files a/graphics/event_objects/pics/people/cycling_triathlete_m.png and b/graphics/event_objects/pics/people/cycling_triathlete_m.png differ diff --git a/graphics/event_objects/pics/people/elite_four/drake.png b/graphics/event_objects/pics/people/elite_four/drake.png index 74328006e9..9fde008fff 100644 Binary files a/graphics/event_objects/pics/people/elite_four/drake.png and b/graphics/event_objects/pics/people/elite_four/drake.png differ diff --git a/graphics/event_objects/pics/people/elite_four/glacia.png b/graphics/event_objects/pics/people/elite_four/glacia.png index 978d87db02..fcf6dbde24 100644 Binary files a/graphics/event_objects/pics/people/elite_four/glacia.png and b/graphics/event_objects/pics/people/elite_four/glacia.png differ diff --git a/graphics/event_objects/pics/people/elite_four/phoebe.png b/graphics/event_objects/pics/people/elite_four/phoebe.png index e5d54ed779..243057ae26 100644 Binary files a/graphics/event_objects/pics/people/elite_four/phoebe.png and b/graphics/event_objects/pics/people/elite_four/phoebe.png differ diff --git a/graphics/event_objects/pics/people/elite_four/sidney.png b/graphics/event_objects/pics/people/elite_four/sidney.png index 15892f926c..de9d087193 100644 Binary files a/graphics/event_objects/pics/people/elite_four/sidney.png and b/graphics/event_objects/pics/people/elite_four/sidney.png differ diff --git a/graphics/event_objects/pics/people/fat_man.png b/graphics/event_objects/pics/people/fat_man.png index 74d71191bc..392f0446e5 100644 Binary files a/graphics/event_objects/pics/people/fat_man.png and b/graphics/event_objects/pics/people/fat_man.png differ diff --git a/graphics/event_objects/pics/people/fisherman.png b/graphics/event_objects/pics/people/fisherman.png index ab31a44add..486fc36ed9 100644 Binary files a/graphics/event_objects/pics/people/fisherman.png and b/graphics/event_objects/pics/people/fisherman.png differ diff --git a/graphics/event_objects/pics/people/frontier_brains/anabel.png b/graphics/event_objects/pics/people/frontier_brains/anabel.png index 0b6bc0eb96..fce97a5e37 100644 Binary files a/graphics/event_objects/pics/people/frontier_brains/anabel.png and b/graphics/event_objects/pics/people/frontier_brains/anabel.png differ diff --git a/graphics/event_objects/pics/people/frontier_brains/brandon.png b/graphics/event_objects/pics/people/frontier_brains/brandon.png index 74b8ff3f9f..a6cfcbbcb8 100644 Binary files a/graphics/event_objects/pics/people/frontier_brains/brandon.png and b/graphics/event_objects/pics/people/frontier_brains/brandon.png differ diff --git a/graphics/event_objects/pics/people/frontier_brains/greta.png b/graphics/event_objects/pics/people/frontier_brains/greta.png index 441a193b5c..d8d5777742 100644 Binary files a/graphics/event_objects/pics/people/frontier_brains/greta.png and b/graphics/event_objects/pics/people/frontier_brains/greta.png differ diff --git a/graphics/event_objects/pics/people/frontier_brains/lucy.png b/graphics/event_objects/pics/people/frontier_brains/lucy.png index ebb93ad8cb..7f935612c8 100644 Binary files a/graphics/event_objects/pics/people/frontier_brains/lucy.png and b/graphics/event_objects/pics/people/frontier_brains/lucy.png differ diff --git a/graphics/event_objects/pics/people/frontier_brains/noland.png b/graphics/event_objects/pics/people/frontier_brains/noland.png index aa03eb7bd4..b71430bd16 100644 Binary files a/graphics/event_objects/pics/people/frontier_brains/noland.png and b/graphics/event_objects/pics/people/frontier_brains/noland.png differ diff --git a/graphics/event_objects/pics/people/frontier_brains/spenser.png b/graphics/event_objects/pics/people/frontier_brains/spenser.png index f27b643f08..cd8563d5e9 100644 Binary files a/graphics/event_objects/pics/people/frontier_brains/spenser.png and b/graphics/event_objects/pics/people/frontier_brains/spenser.png differ diff --git a/graphics/event_objects/pics/people/frontier_brains/tucker.png b/graphics/event_objects/pics/people/frontier_brains/tucker.png index 71ae23fa60..d9daa08385 100644 Binary files a/graphics/event_objects/pics/people/frontier_brains/tucker.png and b/graphics/event_objects/pics/people/frontier_brains/tucker.png differ diff --git a/graphics/event_objects/pics/people/gentleman.png b/graphics/event_objects/pics/people/gentleman.png index 5ae953c5e0..409c593e22 100644 Binary files a/graphics/event_objects/pics/people/gentleman.png and b/graphics/event_objects/pics/people/gentleman.png differ diff --git a/graphics/event_objects/pics/people/girl_1.png b/graphics/event_objects/pics/people/girl_1.png index 6a3a1cf327..d0666c1c3c 100644 Binary files a/graphics/event_objects/pics/people/girl_1.png and b/graphics/event_objects/pics/people/girl_1.png differ diff --git a/graphics/event_objects/pics/people/girl_2.png b/graphics/event_objects/pics/people/girl_2.png index dc04a5f5ed..fa54bd715d 100644 Binary files a/graphics/event_objects/pics/people/girl_2.png and b/graphics/event_objects/pics/people/girl_2.png differ diff --git a/graphics/event_objects/pics/people/girl_3.png b/graphics/event_objects/pics/people/girl_3.png index 73fae17f34..7e329f6284 100644 Binary files a/graphics/event_objects/pics/people/girl_3.png and b/graphics/event_objects/pics/people/girl_3.png differ diff --git a/graphics/event_objects/pics/people/gym_leaders/brawly.png b/graphics/event_objects/pics/people/gym_leaders/brawly.png index 77553369bb..1fdd98b04e 100644 Binary files a/graphics/event_objects/pics/people/gym_leaders/brawly.png and b/graphics/event_objects/pics/people/gym_leaders/brawly.png differ diff --git a/graphics/event_objects/pics/people/gym_leaders/flannery.png b/graphics/event_objects/pics/people/gym_leaders/flannery.png index 9673941ec8..3339f2c4bb 100644 Binary files a/graphics/event_objects/pics/people/gym_leaders/flannery.png and b/graphics/event_objects/pics/people/gym_leaders/flannery.png differ diff --git a/graphics/event_objects/pics/people/gym_leaders/juan.png b/graphics/event_objects/pics/people/gym_leaders/juan.png index d3320f0e13..aa246861ab 100644 Binary files a/graphics/event_objects/pics/people/gym_leaders/juan.png and b/graphics/event_objects/pics/people/gym_leaders/juan.png differ diff --git a/graphics/event_objects/pics/people/gym_leaders/liza.png b/graphics/event_objects/pics/people/gym_leaders/liza.png index 9d3f302e7b..6a1eec5367 100644 Binary files a/graphics/event_objects/pics/people/gym_leaders/liza.png and b/graphics/event_objects/pics/people/gym_leaders/liza.png differ diff --git a/graphics/event_objects/pics/people/gym_leaders/norman.png b/graphics/event_objects/pics/people/gym_leaders/norman.png index 91c6189e3e..48755d3bdc 100644 Binary files a/graphics/event_objects/pics/people/gym_leaders/norman.png and b/graphics/event_objects/pics/people/gym_leaders/norman.png differ diff --git a/graphics/event_objects/pics/people/gym_leaders/roxanne.png b/graphics/event_objects/pics/people/gym_leaders/roxanne.png index 9a3f34cbe9..c1a1421a02 100644 Binary files a/graphics/event_objects/pics/people/gym_leaders/roxanne.png and b/graphics/event_objects/pics/people/gym_leaders/roxanne.png differ diff --git a/graphics/event_objects/pics/people/gym_leaders/tate.png b/graphics/event_objects/pics/people/gym_leaders/tate.png index 5e8a770398..f73ee136b8 100644 Binary files a/graphics/event_objects/pics/people/gym_leaders/tate.png and b/graphics/event_objects/pics/people/gym_leaders/tate.png differ diff --git a/graphics/event_objects/pics/people/gym_leaders/wattson.png b/graphics/event_objects/pics/people/gym_leaders/wattson.png index ac4368679b..73ab5e8fca 100644 Binary files a/graphics/event_objects/pics/people/gym_leaders/wattson.png and b/graphics/event_objects/pics/people/gym_leaders/wattson.png differ diff --git a/graphics/event_objects/pics/people/gym_leaders/winona.png b/graphics/event_objects/pics/people/gym_leaders/winona.png index bffaeba3d4..9a1ce83eb9 100644 Binary files a/graphics/event_objects/pics/people/gym_leaders/winona.png and b/graphics/event_objects/pics/people/gym_leaders/winona.png differ diff --git a/graphics/event_objects/pics/people/hex_maniac.png b/graphics/event_objects/pics/people/hex_maniac.png index caee0bd224..b0e3b22a06 100644 Binary files a/graphics/event_objects/pics/people/hex_maniac.png and b/graphics/event_objects/pics/people/hex_maniac.png differ diff --git a/graphics/event_objects/pics/people/hiker.png b/graphics/event_objects/pics/people/hiker.png index f52467492f..8c7b026a1c 100644 Binary files a/graphics/event_objects/pics/people/hiker.png and b/graphics/event_objects/pics/people/hiker.png differ 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 82fbc489b8..874ba8a451 100644 Binary files a/graphics/event_objects/pics/people/hot_springs_old_woman.png and b/graphics/event_objects/pics/people/hot_springs_old_woman.png differ diff --git a/graphics/event_objects/pics/people/lass.png b/graphics/event_objects/pics/people/lass.png index a47f9ee3dd..9e27f70ddf 100644 Binary files a/graphics/event_objects/pics/people/lass.png and b/graphics/event_objects/pics/people/lass.png differ diff --git a/graphics/event_objects/pics/people/leaf.png b/graphics/event_objects/pics/people/leaf.png index fb110cd0d6..d96dd26638 100644 Binary files a/graphics/event_objects/pics/people/leaf.png and b/graphics/event_objects/pics/people/leaf.png differ diff --git a/graphics/event_objects/pics/people/little_boy_1.png b/graphics/event_objects/pics/people/little_boy_1.png index dc6dd8a5de..ce4f3e92cd 100644 Binary files a/graphics/event_objects/pics/people/little_boy_1.png and b/graphics/event_objects/pics/people/little_boy_1.png differ diff --git a/graphics/event_objects/pics/people/little_boy_2.png b/graphics/event_objects/pics/people/little_boy_2.png index 0982c0e1e7..1b62a36d07 100644 Binary files a/graphics/event_objects/pics/people/little_boy_2.png and b/graphics/event_objects/pics/people/little_boy_2.png differ diff --git a/graphics/event_objects/pics/people/little_girl_1.png b/graphics/event_objects/pics/people/little_girl_1.png index 6cd04a4e9b..5ce59ea1b8 100644 Binary files a/graphics/event_objects/pics/people/little_girl_1.png and b/graphics/event_objects/pics/people/little_girl_1.png differ diff --git a/graphics/event_objects/pics/people/little_girl_2.png b/graphics/event_objects/pics/people/little_girl_2.png index ee82a5659e..2540d84af9 100644 Binary files a/graphics/event_objects/pics/people/little_girl_2.png and b/graphics/event_objects/pics/people/little_girl_2.png differ diff --git a/graphics/event_objects/pics/people/man_1.png b/graphics/event_objects/pics/people/man_1.png index b83cd0367c..069cb3ed73 100644 Binary files a/graphics/event_objects/pics/people/man_1.png and b/graphics/event_objects/pics/people/man_1.png differ diff --git a/graphics/event_objects/pics/people/man_2.png b/graphics/event_objects/pics/people/man_2.png index 0cf7164ec2..6c29797ec5 100644 Binary files a/graphics/event_objects/pics/people/man_2.png and b/graphics/event_objects/pics/people/man_2.png differ diff --git a/graphics/event_objects/pics/people/man_3.png b/graphics/event_objects/pics/people/man_3.png index efa81c2c4b..a41a1ee9b5 100644 Binary files a/graphics/event_objects/pics/people/man_3.png and b/graphics/event_objects/pics/people/man_3.png differ diff --git a/graphics/event_objects/pics/people/man_4.png b/graphics/event_objects/pics/people/man_4.png index 4419e4c957..05a87d4ddb 100644 Binary files a/graphics/event_objects/pics/people/man_4.png and b/graphics/event_objects/pics/people/man_4.png differ diff --git a/graphics/event_objects/pics/people/man_5.png b/graphics/event_objects/pics/people/man_5.png index 3ab97efd31..234d679242 100644 Binary files a/graphics/event_objects/pics/people/man_5.png and b/graphics/event_objects/pics/people/man_5.png differ diff --git a/graphics/event_objects/pics/people/man_6.png b/graphics/event_objects/pics/people/man_6.png index 7832e9f2a9..f86aff0e4c 100644 Binary files a/graphics/event_objects/pics/people/man_6.png and b/graphics/event_objects/pics/people/man_6.png differ diff --git a/graphics/event_objects/pics/people/man_7.png b/graphics/event_objects/pics/people/man_7.png index 5a43e62e07..106bc58b37 100644 Binary files a/graphics/event_objects/pics/people/man_7.png and b/graphics/event_objects/pics/people/man_7.png differ diff --git a/graphics/event_objects/pics/people/maniac.png b/graphics/event_objects/pics/people/maniac.png index 9b38462793..29829c309e 100644 Binary files a/graphics/event_objects/pics/people/maniac.png and b/graphics/event_objects/pics/people/maniac.png differ diff --git a/graphics/event_objects/pics/people/mart_employee.png b/graphics/event_objects/pics/people/mart_employee.png index 7688c86eef..43bdfef796 100644 Binary files a/graphics/event_objects/pics/people/mart_employee.png and b/graphics/event_objects/pics/people/mart_employee.png differ 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 2c06a8f734..200f733b6c 100644 Binary files a/graphics/event_objects/pics/people/mauville_old_man_1.png and b/graphics/event_objects/pics/people/mauville_old_man_1.png differ 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 c70175be3d..6da0c24c4c 100644 Binary files a/graphics/event_objects/pics/people/mauville_old_man_2.png and b/graphics/event_objects/pics/people/mauville_old_man_2.png differ diff --git a/graphics/event_objects/pics/people/may/acro_bike.png b/graphics/event_objects/pics/people/may/acro_bike.png index 37e8811069..81a35b75a6 100644 Binary files a/graphics/event_objects/pics/people/may/acro_bike.png and b/graphics/event_objects/pics/people/may/acro_bike.png differ diff --git a/graphics/event_objects/pics/people/may/decorating.png b/graphics/event_objects/pics/people/may/decorating.png index 7f83dfde93..8e8e346550 100644 Binary files a/graphics/event_objects/pics/people/may/decorating.png and b/graphics/event_objects/pics/people/may/decorating.png differ diff --git a/graphics/event_objects/pics/people/may/field_move.png b/graphics/event_objects/pics/people/may/field_move.png index 41aa13627f..7882009d57 100644 Binary files a/graphics/event_objects/pics/people/may/field_move.png and b/graphics/event_objects/pics/people/may/field_move.png differ diff --git a/graphics/event_objects/pics/people/may/fishing.png b/graphics/event_objects/pics/people/may/fishing.png index e8d3533f35..69c57f12d6 100644 Binary files a/graphics/event_objects/pics/people/may/fishing.png and b/graphics/event_objects/pics/people/may/fishing.png differ diff --git a/graphics/event_objects/pics/people/may/mach_bike.png b/graphics/event_objects/pics/people/may/mach_bike.png index 4e199b84a8..14eaf36ea7 100644 Binary files a/graphics/event_objects/pics/people/may/mach_bike.png and b/graphics/event_objects/pics/people/may/mach_bike.png differ diff --git a/graphics/event_objects/pics/people/may/running.png b/graphics/event_objects/pics/people/may/running.png index 40808c9650..54fa079a0c 100644 Binary files a/graphics/event_objects/pics/people/may/running.png and b/graphics/event_objects/pics/people/may/running.png differ diff --git a/graphics/event_objects/pics/people/may/surfing.png b/graphics/event_objects/pics/people/may/surfing.png index 5b783f4991..758063ab89 100644 Binary files a/graphics/event_objects/pics/people/may/surfing.png and b/graphics/event_objects/pics/people/may/surfing.png differ diff --git a/graphics/event_objects/pics/people/may/underwater.png b/graphics/event_objects/pics/people/may/underwater.png index 8a2d654656..8c260d9327 100644 Binary files a/graphics/event_objects/pics/people/may/underwater.png and b/graphics/event_objects/pics/people/may/underwater.png differ diff --git a/graphics/event_objects/pics/people/may/walking.png b/graphics/event_objects/pics/people/may/walking.png index b50bf12295..4b71d1a55e 100644 Binary files a/graphics/event_objects/pics/people/may/walking.png and b/graphics/event_objects/pics/people/may/walking.png differ diff --git a/graphics/event_objects/pics/people/may/watering.png b/graphics/event_objects/pics/people/may/watering.png index 28c5b41beb..368b6a4627 100644 Binary files a/graphics/event_objects/pics/people/may/watering.png and b/graphics/event_objects/pics/people/may/watering.png differ diff --git a/graphics/event_objects/pics/people/mom.png b/graphics/event_objects/pics/people/mom.png index 8b78515ff6..252eccf48f 100644 Binary files a/graphics/event_objects/pics/people/mom.png and b/graphics/event_objects/pics/people/mom.png differ diff --git a/graphics/event_objects/pics/people/mystery_event_deliveryman.png b/graphics/event_objects/pics/people/mystery_event_deliveryman.png index 2181de2f12..8c1cbbc6e7 100644 Binary files a/graphics/event_objects/pics/people/mystery_event_deliveryman.png and b/graphics/event_objects/pics/people/mystery_event_deliveryman.png differ diff --git a/graphics/event_objects/pics/people/nurse.png b/graphics/event_objects/pics/people/nurse.png index d202f3c16b..6e094f9f18 100644 Binary files a/graphics/event_objects/pics/people/nurse.png and b/graphics/event_objects/pics/people/nurse.png differ diff --git a/graphics/event_objects/pics/people/old_man_1.png b/graphics/event_objects/pics/people/old_man_1.png index 2249869904..6bd5afc448 100644 Binary files a/graphics/event_objects/pics/people/old_man_1.png and b/graphics/event_objects/pics/people/old_man_1.png differ diff --git a/graphics/event_objects/pics/people/old_man_2.png b/graphics/event_objects/pics/people/old_man_2.png index 82bb66f8a9..fe2a77c6e3 100644 Binary files a/graphics/event_objects/pics/people/old_man_2.png and b/graphics/event_objects/pics/people/old_man_2.png differ diff --git a/graphics/event_objects/pics/people/old_woman_1.png b/graphics/event_objects/pics/people/old_woman_1.png index d928b8ae6c..a0d852cd44 100644 Binary files a/graphics/event_objects/pics/people/old_woman_1.png and b/graphics/event_objects/pics/people/old_woman_1.png differ diff --git a/graphics/event_objects/pics/people/old_woman_2.png b/graphics/event_objects/pics/people/old_woman_2.png index 0a6f5ebd3f..84a5ba8010 100644 Binary files a/graphics/event_objects/pics/people/old_woman_2.png and b/graphics/event_objects/pics/people/old_woman_2.png differ diff --git a/graphics/event_objects/pics/people/picnicker.png b/graphics/event_objects/pics/people/picnicker.png index 207c422006..a15eeb6448 100644 Binary files a/graphics/event_objects/pics/people/picnicker.png and b/graphics/event_objects/pics/people/picnicker.png differ diff --git a/graphics/event_objects/pics/people/prof_birch.png b/graphics/event_objects/pics/people/prof_birch.png index 5c3fda9f9e..d3ea18c319 100644 Binary files a/graphics/event_objects/pics/people/prof_birch.png and b/graphics/event_objects/pics/people/prof_birch.png differ diff --git a/graphics/event_objects/pics/people/psychic_m.png b/graphics/event_objects/pics/people/psychic_m.png index 74e8503294..3efe5c0afc 100644 Binary files a/graphics/event_objects/pics/people/psychic_m.png and b/graphics/event_objects/pics/people/psychic_m.png differ diff --git a/graphics/event_objects/pics/people/quinty_plump.png b/graphics/event_objects/pics/people/quinty_plump.png index 8b08ba7d72..49d4c70382 100644 Binary files a/graphics/event_objects/pics/people/quinty_plump.png and b/graphics/event_objects/pics/people/quinty_plump.png differ diff --git a/graphics/event_objects/pics/people/red.png b/graphics/event_objects/pics/people/red.png index b233aeaebf..7215156c1d 100644 Binary files a/graphics/event_objects/pics/people/red.png and b/graphics/event_objects/pics/people/red.png differ diff --git a/graphics/event_objects/pics/people/reporter_f.png b/graphics/event_objects/pics/people/reporter_f.png index 781b07fc69..289aef6d97 100644 Binary files a/graphics/event_objects/pics/people/reporter_f.png and b/graphics/event_objects/pics/people/reporter_f.png differ diff --git a/graphics/event_objects/pics/people/reporter_m.png b/graphics/event_objects/pics/people/reporter_m.png index 0992b12ea2..09b2b964e7 100644 Binary files a/graphics/event_objects/pics/people/reporter_m.png and b/graphics/event_objects/pics/people/reporter_m.png differ diff --git a/graphics/event_objects/pics/people/rooftop_sale_woman.png b/graphics/event_objects/pics/people/rooftop_sale_woman.png index d55d961f4c..f1f9bc72bb 100644 Binary files a/graphics/event_objects/pics/people/rooftop_sale_woman.png and b/graphics/event_objects/pics/people/rooftop_sale_woman.png differ diff --git a/graphics/event_objects/pics/people/rs_little_boy.png b/graphics/event_objects/pics/people/rs_little_boy.png index 6e8b4bdaba..41bc20afbe 100644 Binary files a/graphics/event_objects/pics/people/rs_little_boy.png and b/graphics/event_objects/pics/people/rs_little_boy.png differ 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 d7a1c22242..3a4e710f31 100644 Binary files a/graphics/event_objects/pics/people/ruby_sapphire_brendan/running.png and b/graphics/event_objects/pics/people/ruby_sapphire_brendan/running.png differ 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 833e635d52..7f3d4bde70 100644 Binary files a/graphics/event_objects/pics/people/ruby_sapphire_brendan/walking.png and b/graphics/event_objects/pics/people/ruby_sapphire_brendan/walking.png differ 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 dbde4aa307..7c546a2867 100644 Binary files a/graphics/event_objects/pics/people/ruby_sapphire_may/running.png and b/graphics/event_objects/pics/people/ruby_sapphire_may/running.png differ 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 c48b04cb20..7c600a0030 100644 Binary files a/graphics/event_objects/pics/people/ruby_sapphire_may/walking.png and b/graphics/event_objects/pics/people/ruby_sapphire_may/walking.png differ diff --git a/graphics/event_objects/pics/people/running_triathlete_f.png b/graphics/event_objects/pics/people/running_triathlete_f.png index 85494110d7..f95eb2be26 100644 Binary files a/graphics/event_objects/pics/people/running_triathlete_f.png and b/graphics/event_objects/pics/people/running_triathlete_f.png differ diff --git a/graphics/event_objects/pics/people/running_triathlete_m.png b/graphics/event_objects/pics/people/running_triathlete_m.png index 97e5d0e85e..b2b681201d 100644 Binary files a/graphics/event_objects/pics/people/running_triathlete_m.png and b/graphics/event_objects/pics/people/running_triathlete_m.png differ diff --git a/graphics/event_objects/pics/people/sailor.png b/graphics/event_objects/pics/people/sailor.png index b84eac22cc..6c8a867f4c 100644 Binary files a/graphics/event_objects/pics/people/sailor.png and b/graphics/event_objects/pics/people/sailor.png differ diff --git a/graphics/event_objects/pics/people/school_kid_m.png b/graphics/event_objects/pics/people/school_kid_m.png index e9e8e48899..ddfc28b108 100644 Binary files a/graphics/event_objects/pics/people/school_kid_m.png and b/graphics/event_objects/pics/people/school_kid_m.png differ diff --git a/graphics/event_objects/pics/people/scientist_1.png b/graphics/event_objects/pics/people/scientist_1.png index f6e79660c7..2b1f6605dd 100644 Binary files a/graphics/event_objects/pics/people/scientist_1.png and b/graphics/event_objects/pics/people/scientist_1.png differ diff --git a/graphics/event_objects/pics/people/scientist_2.png b/graphics/event_objects/pics/people/scientist_2.png index 20ce638f6e..ba4759a712 100644 Binary files a/graphics/event_objects/pics/people/scientist_2.png and b/graphics/event_objects/pics/people/scientist_2.png differ diff --git a/graphics/event_objects/pics/people/scott.png b/graphics/event_objects/pics/people/scott.png index 41c7100c49..113614f5f1 100644 Binary files a/graphics/event_objects/pics/people/scott.png and b/graphics/event_objects/pics/people/scott.png differ diff --git a/graphics/event_objects/pics/people/steven.png b/graphics/event_objects/pics/people/steven.png index ab113d3506..da692f51db 100644 Binary files a/graphics/event_objects/pics/people/steven.png and b/graphics/event_objects/pics/people/steven.png differ diff --git a/graphics/event_objects/pics/people/swimmer_f.png b/graphics/event_objects/pics/people/swimmer_f.png index d9fd2e39d0..962e60a9c9 100644 Binary files a/graphics/event_objects/pics/people/swimmer_f.png and b/graphics/event_objects/pics/people/swimmer_f.png differ diff --git a/graphics/event_objects/pics/people/swimmer_m.png b/graphics/event_objects/pics/people/swimmer_m.png index 25068830e1..eb1733da8d 100644 Binary files a/graphics/event_objects/pics/people/swimmer_m.png and b/graphics/event_objects/pics/people/swimmer_m.png differ diff --git a/graphics/event_objects/pics/people/teala.png b/graphics/event_objects/pics/people/teala.png index f38bc479ec..cfc47b112b 100644 Binary files a/graphics/event_objects/pics/people/teala.png and b/graphics/event_objects/pics/people/teala.png differ diff --git a/graphics/event_objects/pics/people/team_aqua/aqua_member_f.png b/graphics/event_objects/pics/people/team_aqua/aqua_member_f.png index 0afbfb3008..fab673878d 100644 Binary files a/graphics/event_objects/pics/people/team_aqua/aqua_member_f.png and b/graphics/event_objects/pics/people/team_aqua/aqua_member_f.png differ 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 eba838305f..4340859548 100644 Binary files a/graphics/event_objects/pics/people/team_aqua/aqua_member_m.png and b/graphics/event_objects/pics/people/team_aqua/aqua_member_m.png differ diff --git a/graphics/event_objects/pics/people/team_aqua/archie.png b/graphics/event_objects/pics/people/team_aqua/archie.png index 2117d52ad2..6ece66e060 100644 Binary files a/graphics/event_objects/pics/people/team_aqua/archie.png and b/graphics/event_objects/pics/people/team_aqua/archie.png differ 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 fe74beeec4..60bd8494ef 100644 Binary files a/graphics/event_objects/pics/people/team_magma/magma_member_f.png and b/graphics/event_objects/pics/people/team_magma/magma_member_f.png differ diff --git a/graphics/event_objects/pics/people/team_magma/magma_member_m.png b/graphics/event_objects/pics/people/team_magma/magma_member_m.png index 1a174b5a28..f7581bb39f 100644 Binary files a/graphics/event_objects/pics/people/team_magma/magma_member_m.png and b/graphics/event_objects/pics/people/team_magma/magma_member_m.png differ diff --git a/graphics/event_objects/pics/people/team_magma/maxie.png b/graphics/event_objects/pics/people/team_magma/maxie.png index 16b35d2fa2..cc8b180ed1 100644 Binary files a/graphics/event_objects/pics/people/team_magma/maxie.png and b/graphics/event_objects/pics/people/team_magma/maxie.png differ diff --git a/graphics/event_objects/pics/people/tuber_f.png b/graphics/event_objects/pics/people/tuber_f.png index 1fa7fa4217..bfcab635a3 100644 Binary files a/graphics/event_objects/pics/people/tuber_f.png and b/graphics/event_objects/pics/people/tuber_f.png differ diff --git a/graphics/event_objects/pics/people/tuber_m.png b/graphics/event_objects/pics/people/tuber_m.png index 04a5b698ef..48bc3b3b49 100644 Binary files a/graphics/event_objects/pics/people/tuber_m.png and b/graphics/event_objects/pics/people/tuber_m.png differ diff --git a/graphics/event_objects/pics/people/tuber_m_swimming.png b/graphics/event_objects/pics/people/tuber_m_swimming.png index 6cdeded89e..15dedb2590 100644 Binary files a/graphics/event_objects/pics/people/tuber_m_swimming.png and b/graphics/event_objects/pics/people/tuber_m_swimming.png differ diff --git a/graphics/event_objects/pics/people/union_room_attendant.png b/graphics/event_objects/pics/people/union_room_attendant.png index 00c76cc7c9..8e8c3851cf 100644 Binary files a/graphics/event_objects/pics/people/union_room_attendant.png and b/graphics/event_objects/pics/people/union_room_attendant.png differ diff --git a/graphics/event_objects/pics/people/unused_woman.png b/graphics/event_objects/pics/people/unused_woman.png index 393d38ddc9..395ed1c099 100644 Binary files a/graphics/event_objects/pics/people/unused_woman.png and b/graphics/event_objects/pics/people/unused_woman.png differ diff --git a/graphics/event_objects/pics/people/wallace.png b/graphics/event_objects/pics/people/wallace.png index aec7c5c06e..2ef1d60500 100644 Binary files a/graphics/event_objects/pics/people/wallace.png and b/graphics/event_objects/pics/people/wallace.png differ diff --git a/graphics/event_objects/pics/people/wally.png b/graphics/event_objects/pics/people/wally.png index 32276ad77c..190ee67132 100644 Binary files a/graphics/event_objects/pics/people/wally.png and b/graphics/event_objects/pics/people/wally.png differ diff --git a/graphics/event_objects/pics/people/woman_1.png b/graphics/event_objects/pics/people/woman_1.png index 285c2947c9..2207993f74 100644 Binary files a/graphics/event_objects/pics/people/woman_1.png and b/graphics/event_objects/pics/people/woman_1.png differ diff --git a/graphics/event_objects/pics/people/woman_2.png b/graphics/event_objects/pics/people/woman_2.png index b4381c2f43..c97fc35070 100644 Binary files a/graphics/event_objects/pics/people/woman_2.png and b/graphics/event_objects/pics/people/woman_2.png differ diff --git a/graphics/event_objects/pics/people/woman_3.png b/graphics/event_objects/pics/people/woman_3.png index 00579b200c..8d35b16537 100644 Binary files a/graphics/event_objects/pics/people/woman_3.png and b/graphics/event_objects/pics/people/woman_3.png differ diff --git a/graphics/event_objects/pics/people/woman_4.png b/graphics/event_objects/pics/people/woman_4.png index cb88cab47f..2a29acae30 100644 Binary files a/graphics/event_objects/pics/people/woman_4.png and b/graphics/event_objects/pics/people/woman_4.png differ diff --git a/graphics/event_objects/pics/people/woman_5.png b/graphics/event_objects/pics/people/woman_5.png index cc26319804..95dfc76dae 100644 Binary files a/graphics/event_objects/pics/people/woman_5.png and b/graphics/event_objects/pics/people/woman_5.png differ diff --git a/graphics/event_objects/pics/people/woman_6.png b/graphics/event_objects/pics/people/woman_6.png index 51ef095409..2ffdd5af61 100644 Binary files a/graphics/event_objects/pics/people/woman_6.png and b/graphics/event_objects/pics/people/woman_6.png differ diff --git a/graphics/event_objects/pics/people/woman_7.png b/graphics/event_objects/pics/people/woman_7.png index 522c5254d7..a7750dc4cb 100644 Binary files a/graphics/event_objects/pics/people/woman_7.png and b/graphics/event_objects/pics/people/woman_7.png differ diff --git a/graphics/event_objects/pics/people/youngster.png b/graphics/event_objects/pics/people/youngster.png index 1d26290866..c17e7c6cfa 100644 Binary files a/graphics/event_objects/pics/people/youngster.png and b/graphics/event_objects/pics/people/youngster.png differ diff --git a/graphics/event_objects/pics/pokemon/azumarill.png b/graphics/event_objects/pics/pokemon/azumarill.png index 0a03fd3d4d..84b07ea5bc 100644 Binary files a/graphics/event_objects/pics/pokemon/azumarill.png and b/graphics/event_objects/pics/pokemon/azumarill.png differ diff --git a/graphics/event_objects/pics/pokemon/azurill.png b/graphics/event_objects/pics/pokemon/azurill.png index d6050257b7..99cd25fe5c 100644 Binary files a/graphics/event_objects/pics/pokemon/azurill.png and b/graphics/event_objects/pics/pokemon/azurill.png differ diff --git a/graphics/event_objects/pics/pokemon/deoxys.png b/graphics/event_objects/pics/pokemon/deoxys.png index 2e892f0da0..9aa8dc2188 100644 Binary files a/graphics/event_objects/pics/pokemon/deoxys.png and b/graphics/event_objects/pics/pokemon/deoxys.png differ diff --git a/graphics/event_objects/pics/pokemon/dusclops.png b/graphics/event_objects/pics/pokemon/dusclops.png index faf183ff43..fb2c85576c 100644 Binary files a/graphics/event_objects/pics/pokemon/dusclops.png and b/graphics/event_objects/pics/pokemon/dusclops.png differ diff --git a/graphics/event_objects/pics/pokemon/enemy_zigzagoon.png b/graphics/event_objects/pics/pokemon/enemy_zigzagoon.png index 5c75f647f5..2684ad1302 100644 Binary files a/graphics/event_objects/pics/pokemon/enemy_zigzagoon.png and b/graphics/event_objects/pics/pokemon/enemy_zigzagoon.png differ diff --git a/graphics/event_objects/pics/pokemon/groudon.png b/graphics/event_objects/pics/pokemon/groudon.png index de569261c5..3d14c5ac9e 100644 Binary files a/graphics/event_objects/pics/pokemon/groudon.png and b/graphics/event_objects/pics/pokemon/groudon.png differ diff --git a/graphics/event_objects/pics/pokemon/ho_oh.png b/graphics/event_objects/pics/pokemon/ho_oh.png index 883bf65773..e6c7374e03 100644 Binary files a/graphics/event_objects/pics/pokemon/ho_oh.png and b/graphics/event_objects/pics/pokemon/ho_oh.png differ diff --git a/graphics/event_objects/pics/pokemon/kecleon.png b/graphics/event_objects/pics/pokemon/kecleon.png index 460d3acc47..47ae584b79 100644 Binary files a/graphics/event_objects/pics/pokemon/kecleon.png and b/graphics/event_objects/pics/pokemon/kecleon.png differ diff --git a/graphics/event_objects/pics/pokemon/kirlia.png b/graphics/event_objects/pics/pokemon/kirlia.png index b71b575ebf..bac74a9ccb 100644 Binary files a/graphics/event_objects/pics/pokemon/kirlia.png and b/graphics/event_objects/pics/pokemon/kirlia.png differ diff --git a/graphics/event_objects/pics/pokemon/kyogre.png b/graphics/event_objects/pics/pokemon/kyogre.png index b67f3b15fc..32f67aafa2 100644 Binary files a/graphics/event_objects/pics/pokemon/kyogre.png and b/graphics/event_objects/pics/pokemon/kyogre.png differ diff --git a/graphics/event_objects/pics/pokemon/latias_latios.png b/graphics/event_objects/pics/pokemon/latias_latios.png index e9355d4a60..4030d413c6 100644 Binary files a/graphics/event_objects/pics/pokemon/latias_latios.png and b/graphics/event_objects/pics/pokemon/latias_latios.png differ diff --git a/graphics/event_objects/pics/pokemon/lugia.png b/graphics/event_objects/pics/pokemon/lugia.png index d38e374b38..1dfc6858b9 100644 Binary files a/graphics/event_objects/pics/pokemon/lugia.png and b/graphics/event_objects/pics/pokemon/lugia.png differ diff --git a/graphics/event_objects/pics/pokemon/mew.png b/graphics/event_objects/pics/pokemon/mew.png index 152bdabce2..00cbd27794 100644 Binary files a/graphics/event_objects/pics/pokemon/mew.png and b/graphics/event_objects/pics/pokemon/mew.png differ diff --git a/graphics/event_objects/pics/pokemon/pikachu.png b/graphics/event_objects/pics/pokemon/pikachu.png index bd70269555..b2d15ef179 100644 Binary files a/graphics/event_objects/pics/pokemon/pikachu.png and b/graphics/event_objects/pics/pokemon/pikachu.png differ diff --git a/graphics/event_objects/pics/pokemon/poochyena.png b/graphics/event_objects/pics/pokemon/poochyena.png index 86fd9b3acb..171a551d3b 100644 Binary files a/graphics/event_objects/pics/pokemon/poochyena.png and b/graphics/event_objects/pics/pokemon/poochyena.png differ diff --git a/graphics/event_objects/pics/pokemon/rayquaza.png b/graphics/event_objects/pics/pokemon/rayquaza.png index aec6616d9a..9a74dc64f0 100644 Binary files a/graphics/event_objects/pics/pokemon/rayquaza.png and b/graphics/event_objects/pics/pokemon/rayquaza.png differ diff --git a/graphics/event_objects/pics/pokemon/rayquaza_still.png b/graphics/event_objects/pics/pokemon/rayquaza_still.png index 1c18b2ffc1..55d638f292 100644 Binary files a/graphics/event_objects/pics/pokemon/rayquaza_still.png and b/graphics/event_objects/pics/pokemon/rayquaza_still.png differ diff --git a/graphics/event_objects/pics/pokemon/regi.png b/graphics/event_objects/pics/pokemon/regi.png index 8425040dd1..c3bb15e57d 100644 Binary files a/graphics/event_objects/pics/pokemon/regi.png and b/graphics/event_objects/pics/pokemon/regi.png differ diff --git a/graphics/event_objects/pics/pokemon/skitty.png b/graphics/event_objects/pics/pokemon/skitty.png index 2b40113207..2b78104123 100644 Binary files a/graphics/event_objects/pics/pokemon/skitty.png and b/graphics/event_objects/pics/pokemon/skitty.png differ diff --git a/graphics/event_objects/pics/pokemon/sudowoodo.png b/graphics/event_objects/pics/pokemon/sudowoodo.png index ff2cc385b6..0e084dcc0e 100644 Binary files a/graphics/event_objects/pics/pokemon/sudowoodo.png and b/graphics/event_objects/pics/pokemon/sudowoodo.png differ diff --git a/graphics/event_objects/pics/pokemon/vigoroth.png b/graphics/event_objects/pics/pokemon/vigoroth.png index b90c5fddde..d9ea6dbed5 100644 Binary files a/graphics/event_objects/pics/pokemon/vigoroth.png and b/graphics/event_objects/pics/pokemon/vigoroth.png differ diff --git a/graphics/event_objects/pics/pokemon/wingull.png b/graphics/event_objects/pics/pokemon/wingull.png index 4ebb0039e7..9401d77f8a 100644 Binary files a/graphics/event_objects/pics/pokemon/wingull.png and b/graphics/event_objects/pics/pokemon/wingull.png differ diff --git a/graphics/event_objects/pics/pokemon/zigzagoon.png b/graphics/event_objects/pics/pokemon/zigzagoon.png index 2312d4f97a..2eaf2403d5 100644 Binary files a/graphics/event_objects/pics/pokemon/zigzagoon.png and b/graphics/event_objects/pics/pokemon/zigzagoon.png differ 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_main.h b/include/battle_main.h index 678f4e2db6..49329a8e29 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/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/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/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/global.h b/include/global.h index 0347e73291..882457c468 100644 --- a/include/global.h +++ b/include/global.h @@ -350,7 +350,9 @@ struct FrontierMonData struct Struct_field_E70 { u16 monId; - u8 unk2[9]; + u32 personality; + u8 ivs; + u8 abilityBit; }; struct BattleDomeTrainer @@ -419,9 +421,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/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 a13fe73ec7..cddab0870e 100644 --- a/include/menu.h +++ b/include/menu.h @@ -22,12 +22,12 @@ 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); 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); @@ -35,9 +35,8 @@ 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 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); @@ -58,7 +57,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,8 +83,9 @@ 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); +void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyToVram); #endif // GUARD_MENU_H 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/include/pokemon.h b/include/pokemon.h index 83a446b57b..fa2842d880 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/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/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/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/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/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/ld_script.txt b/ld_script.txt index 72503adfc7..2be59791c8 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); @@ -199,7 +198,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); @@ -247,6 +246,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); @@ -255,7 +255,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); @@ -381,9 +380,9 @@ 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); + src/battle_bg.o(.rodata); data/data2c.o(.rodata); src/battle_main.o(.rodata); src/battle_util.o(.rodata); @@ -456,9 +455,9 @@ 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); + src/item_use.o(.rodata); data/battle_anim_80FE840.o(.rodata); src/bike.o(.rodata); data/easy_chat.o(.rodata); @@ -514,7 +513,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); @@ -529,6 +528,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/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/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..a6c66b3c46 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); @@ -412,8 +1045,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 +1077,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 d1dab9ad4c..bfc7099469 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -437,7 +437,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 6edd38c3e8..7334b5e79c 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -1405,7 +1405,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 60e2ab63ae..fa55ee1fcd 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 new file mode 100644 index 0000000000..36c5ed2e8e --- /dev/null +++ b/src/battle_factory.c @@ -0,0 +1,4114 @@ +#include "global.h" +#include "battle_factory.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 "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 "blend_palette.h" +#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. + +#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 +#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 +{ + u16 monSetId; + u16 spriteId; + 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; + u8 menuCursor1SpriteId; + u8 menuCursor2SpriteId; + u8 cursorPos; + u8 cursorSpriteId; + u8 selectingMonsState; + bool8 fromSummaryScreen; + u8 yesNoCursorPos; + u8 unused8; + struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; + struct UnkFactoryStruct unk294[3]; + bool8 unk2A0; + u8 fadeSpeciesNameTaskId; + bool8 unk2A2; + u16 unk2A4; + bool8 unk2A6; + u8 unk2A7; + u8 unk2A8; + u8 unk2A9; +}; + +// 'Action' refers to the 3 Selectable mons, Cancel, Pknm for swap windows. +#define ACTIONS_PLAYER_SCREEN 0 +#define ACTIONS_ENEMY_SCREEN 1 + +struct SwapActionIdAndFunc +{ + u8 id; + void (*func)(u8 taskId); +}; + +struct FactorySwapMonsStruct +{ + u8 menuCursorPos; + u8 menuCursor1SpriteId; + u8 menuCursor2SpriteId; + u8 cursorPos; + u8 cursorSpriteId; + u8 ballSpriteIds[3]; + u8 unk8[2][3]; + u8 unkE[2][2]; + u8 playerMonId; + u8 enemyMonId; + bool8 inEnemyScreen; + bool8 fromSummaryScreen; + u8 yesNoCursorPos; + u8 actionsCount; + const struct SwapActionIdAndFunc *actionsData; + u8 unused1C[4]; + bool8 monSwapped; + u8 fadeSpeciesNameTaskId; + bool8 unk22; + u16 unk24; + bool8 unk26; + u8 unk27; + u8 unk28; + u8 unk29; + struct UnkFactoryStruct unk2C; + bool8 unk30; +}; + +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 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. +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); +static void Select_InitAllSprites(void); +static void Select_ShowSummaryMonSprite(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_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); +static void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1); +static void sub_819B958(u8 windowId); +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); +static bool32 Select_AreSpeciesValid(u16 monSetId); +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 +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 +static IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; +static IWRAM_DATA void (*sSwap_CurrentTableFunc)(u8 taskId); +static IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen; + +// Const rom data. +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"); + +static const struct SpriteSheet gUnknown_086103BC[] = +{ + {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}, + {}, +}; + +static const struct CompressedSpriteSheet gUnknown_086103E4[] = +{ + {gUnknown_085B18AC, 0x800, TAG_TILE_64}, + {}, +}; + +static const struct SpritePalette gUnknown_086103F4[] = +{ + {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, + {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, + {gUnknown_0860F17C, TAG_PAL_66}, + {gUnknown_0861039C, TAG_PAL_67}, + {}, +}; + +u8 static (* const sSelect_MenuOptionFuncs[])(void) = +{ + [MENU_SUMMARY] = Select_OptionSummary, + [MENU_RENT] /*Or Deselect*/ = Select_OptionRentDeselect, + [MENU_OTHERS] = Select_OptionOthers +}; + +static const struct BgTemplate sSelect_BgTemplates[] = +{ + { + .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 sSelect_WindowTemplates[] = +{ + { + .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 = TAG_TILE_64, + .paletteTag = TAG_PAL_BALL_GREY, + .oam = &gUnknown_0861047C, + .anims = gUnknown_08610504, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_819A44C +}; + +static const struct SpriteTemplate gUnknown_086105F0 = +{ + .tileTag = TAG_TILE_65, + .paletteTag = TAG_PAL_66, + .oam = &gUnknown_08610484, + .anims = gUnknown_086104FC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610608 = +{ + .tileTag = TAG_TILE_66, + .paletteTag = TAG_PAL_66, + .oam = &gUnknown_0861048C, + .anims = gUnknown_086104FC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610620 = +{ + .tileTag = TAG_TILE_67, + .paletteTag = TAG_PAL_66, + .oam = &gUnknown_0861048C, + .anims = gUnknown_086104FC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610638 = +{ + .tileTag = TAG_TILE_6D, + .paletteTag = TAG_PAL_67, + .oam = &gUnknown_08610494, + .anims = gUnknown_08610500, + .images = NULL, + .affineAnims = gUnknown_086105CC, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteSheet gUnknown_08610650[] = +{ + {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, 0x800, TAG_TILE_64}, + {}, +}; + +static const struct SpritePalette gUnknown_086106B0[] = +{ + {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, + {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, + {gUnknown_0860F17C, TAG_PAL_66}, + {gUnknown_0861039C, TAG_PAL_67}, + {}, +}; + +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 = TAG_TILE_64, + .paletteTag = TAG_PAL_BALL_GREY, + .oam = &gUnknown_086106D8, + .anims = gUnknown_08610760, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_819A44C +}; + +static const struct SpriteTemplate gUnknown_0861084C = +{ + .tileTag = TAG_TILE_65, + .paletteTag = TAG_PAL_66, + .oam = &gUnknown_086106E0, + .anims = gUnknown_08610758, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610864 = +{ + .tileTag = TAG_TILE_66, + .paletteTag = TAG_PAL_66, + .oam = &gUnknown_086106E8, + .anims = gUnknown_08610758, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_0861087C = +{ + .tileTag = TAG_TILE_67, + .paletteTag = TAG_PAL_66, + .oam = &gUnknown_086106E8, + .anims = gUnknown_08610758, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610894 = +{ + .tileTag = TAG_TILE_6D, + .paletteTag = TAG_PAL_67, + .oam = &gUnknown_086106F0, + .anims = gUnknown_0861075C, + .images = NULL, + .affineAnims = gUnknown_08610828, + .callback = SpriteCallbackDummy +}; + +void static (* const sSwap_MenuOptionFuncs[])(u8 taskId) = +{ + sub_819F114, + sub_819F0CC, + sub_819F134, +}; + +static const struct BgTemplate sSwap_BgTemplates[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 sSwap_WindowTemplates[] = +{ + { + .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, +}; + +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}; + +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[]; +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_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 +static 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); + } +} + +static void Select_CB2(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +static void Select_VblankCb(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void DoBattleFactorySelectScreen(void) +{ + sFactorySelectScreen = NULL; + SetMainCallback2(CB2_InitSelectScreen); +} + +static void CB2_InitSelectScreen(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, sSelect_BgTemplates, ARRAY_COUNT(sSelect_BgTemplates)); + InitWindows(sSelect_WindowTemplates); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 1: + sSelectMenuTilesetBuffer = Alloc(0x440); + sSelectMonCardBgTilesetBuffer = AllocZeroed(0x440); + sSelectMenuTilemapBuffer = Alloc(0x800); + sSelectMonCardBgTilemapBuffer = 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, 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); + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + gPlttBufferUnfaded[228] = sFactorySelectScreen->unk2A4; + LoadPalette(gUnknown_0861039C, 0x20, 4); + gMain.state++; + break; + case 3: + 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); + CopyBgTilemapBufferToVram(3); + gMain.state++; + break; + case 4: + LoadSpritePalettes(gUnknown_086103F4); + LoadSpriteSheets(gUnknown_086103BC); + LoadCompressedObjectPic(gUnknown_086103E4); + ShowBg(0); + ShowBg(1); + 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 (sFactorySelectScreen->fromSummaryScreen == TRUE) + { + 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)); + } + else + { + HideBg(3); + } + gMain.state++; + break; + case 5: + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + sFactorySelectScreen->cursorPos = gUnknown_0203CF20; + Select_InitMonsData(); + Select_InitAllSprites(); + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + Select_ShowSummaryMonSprite(); + gMain.state++; + break; + case 6: + Select_PrintSelectMonString(); + PutWindowTilemap(2); + gMain.state++; + break; + case 7: + Select_PrintMonCategory(); + PutWindowTilemap(5); + gMain.state++; + break; + case 8: + Select_PrintMonSpecies(); + PutWindowTilemap(1); + gMain.state++; + break; + case 9: + Select_PrintRentalPkmnString(); + PutWindowTilemap(0); + gMain.state++; + break; + case 10: + sFactorySelectScreen->fadeSpeciesNameTaskId = CreateTask(Task_SelectFadeSpeciesName, 0); + if (!sFactorySelectScreen->fromSummaryScreen) + { + gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 0; + taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0); + gTasks[taskId].data[0] = 0; + } + else + { + gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 1; + sFactorySelectScreen->unk2A2 = FALSE; + taskId = CreateTask(Task_HandleSelectionScreenMenu, 0); + gTasks[taskId].data[0] = 13; + } + SetMainCallback2(Select_CB2); + break; + } +} + +static void Select_InitMonsData(void) +{ + u8 i; + + if (sFactorySelectScreen != NULL) + return; + + sFactorySelectScreen = AllocZeroed(sizeof(*sFactorySelectScreen)); + sFactorySelectScreen->cursorPos = 0; + sFactorySelectScreen->selectingMonsState = 1; + sFactorySelectScreen->fromSummaryScreen = FALSE; + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + sFactorySelectScreen->mons[i].selectedId = 0; + + if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) + CreateFrontierFactorySelectableMons(0); + else + CreateTentFactorySelectableMons(0); +} + +static void Select_InitAllSprites(void) +{ + u8 i, cursorPos; + s16 x; + + for (i = 0; i < SELECTABLE_MONS_COUNT; 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 = 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[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; + + gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecY = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].centerToCornerVecY = 0; +} + +static void Select_DestroyAllSprites(void) +{ + u8 i; + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + DestroySprite(&gSprites[sFactorySelectScreen->mons[i].spriteId]); + + DestroySprite(&gSprites[sFactorySelectScreen->cursorSpriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->menuCursor1SpriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->menuCursor2SpriteId]); +} + +static void Select_UpdateBallCursorPosition(s8 direction) +{ + u8 cursorPos; + if (direction > 0) // Move cursor right. + { + if (sFactorySelectScreen->cursorPos != SELECTABLE_MONS_COUNT - 1) + sFactorySelectScreen->cursorPos++; + else + sFactorySelectScreen->cursorPos = 0; + } + else // Move cursor left. + { + if (sFactorySelectScreen->cursorPos != 0) + sFactorySelectScreen->cursorPos--; + else + sFactorySelectScreen->cursorPos = SELECTABLE_MONS_COUNT - 1; + } + + cursorPos = sFactorySelectScreen->cursorPos; + gSprites[sFactorySelectScreen->cursorSpriteId].pos1.x = gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].pos1.x; +} + +static void Select_UpdateMenuCursorPosition(s8 direction) +{ + if (direction > 0) // Move cursor down. + { + if (sFactorySelectScreen->menuCursorPos != MENU_OPTIONS_COUNT - 1) + sFactorySelectScreen->menuCursorPos++; + else + sFactorySelectScreen->menuCursorPos = 0; + } + else // Move cursor up. + { + if (sFactorySelectScreen->menuCursorPos != 0) + sFactorySelectScreen->menuCursorPos--; + else + sFactorySelectScreen->menuCursorPos = MENU_OPTIONS_COUNT - 1; + } + + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; +} + +static void Select_UpdateYesNoCursorPosition(s8 direction) +{ + if (direction > 0) // Move cursor down. + { + if (sFactorySelectScreen->yesNoCursorPos != 1) + sFactorySelectScreen->yesNoCursorPos++; + else + sFactorySelectScreen->yesNoCursorPos = 0; + } + else // Move cursor up. + { + if (sFactorySelectScreen->yesNoCursorPos != 0) + sFactorySelectScreen->yesNoCursorPos--; + else + sFactorySelectScreen->yesNoCursorPos = 1; + } + + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; +} + +static void Select_HandleMonSelectionChange(void) +{ + u8 i, paletteNum; + u8 cursorPos = sFactorySelectScreen->cursorPos; + if (sFactorySelectScreen->mons[cursorPos].selectedId) // Deselect a mon. + { + paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + if (sFactorySelectScreen->selectingMonsState == 3 && sFactorySelectScreen->mons[cursorPos].selectedId == 1) + { + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + if (sFactorySelectScreen->mons[i].selectedId == 2) + break; + } + if (i == SELECTABLE_MONS_COUNT) + return; + else + sFactorySelectScreen->mons[i].selectedId = 1; + } + sFactorySelectScreen->mons[cursorPos].selectedId = 0; + sFactorySelectScreen->selectingMonsState--; + } + else // Select a mon. + { + paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + sFactorySelectScreen->mons[cursorPos].selectedId = sFactorySelectScreen->selectingMonsState; + sFactorySelectScreen->selectingMonsState++; + } + + gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].oam.paletteNum = paletteNum; +} + +static void Select_SetBallSpritePaletteNum(u8 id) +{ + u8 palNum; + + if (sFactorySelectScreen->mons[id].selectedId) + palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + else + palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + + gSprites[sFactorySelectScreen->mons[id].spriteId].oam.paletteNum = palNum; +} + +static 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(sFactorySelectScreen->fadeSpeciesNameTaskId); + sub_819F444(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0); + Select_DestroyAllSprites(); + 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; + } + break; + case 8: + sFactorySelectScreen->unk2A4 = gPlttBufferUnfaded[228]; + DestroyTask(taskId); + sFactorySelectScreen->fromSummaryScreen = TRUE; + currMonId = sFactorySelectScreen->cursorPos; + sFactorySelectMons = AllocZeroed(sizeof(struct Pokemon) * SELECTABLE_MONS_COUNT); + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + sFactorySelectMons[i] = sFactorySelectScreen->mons[i].monData; + ShowPokemonSummaryScreen(1, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, CB2_InitSelectScreen); + break; + } +} + +static void Task_CloseSelectionScreen(u8 taskId) +{ + if (sFactorySelectScreen->unk2A0 != TRUE) + { + switch (gTasks[taskId].data[0]) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0]++; + break; + case 1: + if (!UpdatePaletteFade()) + { + Select_CopyMonsToPlayerParty(); + DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); + Select_DestroyAllSprites(); + FREE_AND_SET_NULL(sSelectMenuTilesetBuffer); + FREE_AND_SET_NULL(sSelectMenuTilemapBuffer); + FREE_AND_SET_NULL(sSelectMonCardBgTilemapBuffer); + FREE_AND_SET_NULL(sFactorySelectScreen); + FreeAllWindowBuffers(); + SetMainCallback2(CB2_ReturnToFieldContinueScript); + DestroyTask(taskId); + } + break; + } + } +} + +static void Task_HandleSelectionScreenYesNo(u8 taskId) +{ + if (sFactorySelectScreen->unk2A0 != TRUE) + { + switch (gTasks[taskId].data[0]) + { + case 10: + sub_819C4B4(); + gTasks[taskId].data[0] = 4; + break; + case 4: + Select_ShowYesNoOptions(); + gTasks[taskId].data[0] = 5; + break; + case 5: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (sFactorySelectScreen->yesNoCursorPos == 0) + { + sub_819C568(); + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = Task_CloseSelectionScreen; + } + else + { + sub_819B958(4); + sub_819BC9C(); + sFactorySelectScreen->unk2A2 = TRUE; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_819B958(4); + sub_819BC9C(); + sFactorySelectScreen->unk2A2 = TRUE; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + Select_UpdateYesNoCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + Select_UpdateYesNoCursorPosition(1); + } + break; + } + } +} + +static void Task_HandleSelectionScreenMenu(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 2: + if (!sFactorySelectScreen->fromSummaryScreen) + sub_819F2B4(&sFactorySelectScreen->unk294[1].field1, &sFactorySelectScreen->unk2A0, FALSE); + gTasks[taskId].data[0] = 9; + break; + case 9: + if (sFactorySelectScreen->unk2A0 != TRUE) + { + Select_ShowMenuOptions(); + sFactorySelectScreen->fromSummaryScreen = FALSE; + gTasks[taskId].data[0] = 3; + } + break; + case 3: + if (gMain.newKeys & A_BUTTON) + { + u8 retVal; + PlaySE(SE_SELECT); + retVal = Select_RunMenuOptionFunc(); + if (retVal == 1) + { + sFactorySelectScreen->unk2A2 = TRUE; + 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(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); + sub_819B958(3); + sFactorySelectScreen->unk2A2 = TRUE; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + Select_UpdateMenuCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + Select_UpdateMenuCursorPosition(1); + } + break; + case 12: + if (!gPaletteFade.active) + { + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + { + gPlttBufferFaded[228] = sFactorySelectScreen->unk2A4; + gPlttBufferUnfaded[228] = gPlttBufferUnfaded[244]; + } + sFactorySelectScreen->fromSummaryScreen = FALSE; + gTasks[taskId].data[0] = 3; + } + break; + case 13: + Select_ShowMenuOptions(); + gTasks[taskId].data[0] = 12; + break; + } +} + +static void Task_HandleSelectionScreenChooseMons(u8 taskId) +{ + if (sFactorySelectScreen->unk2A0 != TRUE) + { + switch (gTasks[taskId].data[0]) + { + case 0: + if (!gPaletteFade.active) + { + gTasks[taskId].data[0] = 1; + sFactorySelectScreen->unk2A2 = TRUE; + } + break; + case 1: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sFactorySelectScreen->unk2A2 = FALSE; + gTasks[taskId].data[0] = 2; + gTasks[taskId].func = Task_HandleSelectionScreenMenu; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + PlaySE(SE_SELECT); + Select_UpdateBallCursorPosition(-1); + Select_PrintMonCategory(); + Select_PrintMonSpecies(); + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + PlaySE(SE_SELECT); + Select_UpdateBallCursorPosition(1); + Select_PrintMonCategory(); + Select_PrintMonSpecies(); + } + break; + case 11: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); + Select_PrintSelectMonString(); + sFactorySelectScreen->unk2A2 = TRUE; + gTasks[taskId].data[0] = 1; + } + break; + } + } +} + +static 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; + 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(&sFactorySelectScreen->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(&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]); + } +} + +static 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; + sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId; + CreateMonWithEVSpreadPersonalityOTID(&sFactorySelectScreen->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(&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]); + } +} + +static void Select_CopyMonsToPlayerParty(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) + { + 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); + break; + } + } + } + CalculatePlayerPartyCount(); +} + +static void Select_ShowMenuOptions(void) +{ + if (!sFactorySelectScreen->fromSummaryScreen) + sFactorySelectScreen->menuCursorPos = 0; + + 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[sFactorySelectScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = FALSE; + + Select_PrintMenuOptions(); +} + +static void Select_ShowYesNoOptions(void) +{ + sFactorySelectScreen->yesNoCursorPos = 0; + + 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[sFactorySelectScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = FALSE; + + Select_PrintYesNoOptions(); +} + +static void sub_819B958(u8 windowId) +{ + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; + FillWindowPixelBuffer(windowId, 0); + CopyWindowToVram(windowId, 2); + ClearWindowTilemap(windowId); +} + +static void Select_PrintRentalPkmnString(void) +{ + FillWindowPixelBuffer(0, 0); + AddTextPrinterParameterized(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); + CopyWindowToVram(0, 3); +} + +static void Select_PrintMonSpecies(void) +{ + u16 species; + u8 x; + u8 monId = sFactorySelectScreen->cursorPos; + + FillWindowPixelBuffer(1, 0); + 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); +} + +static void Select_PrintSelectMonString(void) +{ + const u8 *str = NULL; + + FillWindowPixelBuffer(2, 0); + if (sFactorySelectScreen->selectingMonsState == 1) + str = gText_SelectFirstPkmn; + else if (sFactorySelectScreen->selectingMonsState == 2) + str = gText_SelectSecondPkmn; + else if (sFactorySelectScreen->selectingMonsState == 3) + str = gText_SelectThirdPkmn; + else + str = gText_TheseThreePkmnOkay; + + AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); + CopyWindowToVram(2, 2); +} + +static void Select_PrintCantSelectSameMon(void) +{ + FillWindowPixelBuffer(2, 0); + AddTextPrinterParameterized(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); + CopyWindowToVram(2, 2); +} + +static void Select_PrintMenuOptions(void) +{ + u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->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); +} + +static void Select_PrintYesNoOptions(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); +} + +static u8 Select_RunMenuOptionFunc(void) +{ + gUnknown_030062E8 = sSelect_MenuOptionFuncs[sFactorySelectScreen->menuCursorPos]; + return gUnknown_030062E8(); +} + +static u8 Select_OptionRentDeselect(void) +{ + u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId; + u16 monSetId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].monSetId; + if (selectedId == 0 && !Select_AreSpeciesValid(monSetId)) + { + Select_PrintCantSelectSameMon(); + sub_819B958(3); + return 3; + } + else + { + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); + Select_HandleMonSelectionChange(); + Select_PrintSelectMonString(); + sub_819B958(3); + if (sFactorySelectScreen->selectingMonsState > 3) + return 2; + else + return 1; + } +} + +static u8 sub_819BC9C(void) +{ + sub_819C568(); + Select_HandleMonSelectionChange(); + Select_PrintSelectMonString(); + sub_819B958(3); + if (sFactorySelectScreen->selectingMonsState > 3) + return 2; + else + return 1; +} + +static u8 Select_OptionSummary(void) +{ + return 0; +} + +static u8 Select_OptionOthers(void) +{ + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); + sub_819B958(3); + return 1; +} + +static void Select_PrintMonCategory(void) +{ + u16 species; + u8 text[30]; + u8 x; + u8 monId = sFactorySelectScreen->cursorPos; + if (monId < SELECTABLE_MONS_COUNT) + { + PutWindowTilemap(5); + FillWindowPixelBuffer(5, 0); + species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); + CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); + x = GetStringRightAlignXOffset(1, text, 0x76); + AddTextPrinterParameterized(5, 1, text, x, 1, 0, NULL); + CopyWindowToVram(5, 2); + } +} + +static void Summary_ShowMonSprite(void) +{ + 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); + + 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; + + sFactorySelectScreen->unk2A0 = FALSE; +} + +static void sub_819BE20(bool8 arg0) +{ + sFactorySelectScreen->unk2A0 = arg0; +} + +static void Select_ShowSummaryMonSprite(void) +{ + struct Pokemon *mon; + u16 species; + u32 personality, otId; + + sFactorySelectScreen->unk294[1].field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 2); + + 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); + + 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[sFactorySelectScreen->unk294[1].field1].invisible = TRUE; +} + +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 = FALSE; +} + +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 = TRUE; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = TRUE; + gSprites[sFactorySelectScreen->unk294[2].field1].invisible = TRUE; + + 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 = FALSE; + + 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, 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; + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + } + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(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 = FALSE; + gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C100; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = FALSE; + gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; + 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); + 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, 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 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 = TRUE; +} + +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 = TRUE; +} + +static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V) +{ + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + 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); +} + +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_SelectFadeSpeciesName(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; + } +} + +// Swap Screen's section begins here. + +static void Swap_CB2(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +static void Swap_VblankCb(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void CopySwappedMonData(void) +{ + u8 happiness; + + gPlayerParty[sFactorySwapScreen->playerMonId] = gEnemyParty[sFactorySwapScreen->enemyMonId]; + happiness = 0; + 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); +} + +static void Task_FromSwapScreenToSummaryScreen(u8 taskId) +{ + 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->fadeSpeciesNameTaskId); + sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); + Swap_DestroyAllSprites(); + 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; + } + break; + case 8: + DestroyTask(taskId); + sFactorySwapScreen->fromSummaryScreen = TRUE; + sFactorySwapScreen->unk24 = gPlttBufferUnfaded[244]; + ShowPokemonSummaryScreen(0, gPlayerParty, sFactorySwapScreen->cursorPos, 3 - 1, CB2_InitSwapScreen); + break; + } +} + +static void Task_CloseSwapScreen(u8 taskId) +{ + if (sFactorySwapScreen->unk30 != TRUE) + { + switch (gTasks[taskId].data[0]) + { + case 0: + if (sFactorySwapScreen->monSwapped == TRUE) + { + gTasks[taskId].data[0]++; + gSpecialVar_Result = 0; + } + else + { + gTasks[taskId].data[0] = 2; + gSpecialVar_Result = 1; + } + break; + case 1: + if (sFactorySwapScreen->monSwapped == TRUE) + { + sFactorySwapScreen->enemyMonId = sFactorySwapScreen->cursorPos; + CopySwappedMonData(); + } + gTasks[taskId].data[0]++; + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0]++; + break; + case 3: + if (!UpdatePaletteFade()) + { + DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); + Swap_DestroyAllSprites(); + 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); + DestroyTask(taskId); + } + break; + } + } +} + +static void Task_HandleSwapScreenYesNo(u8 taskId) +{ + u16 loPtr, hiPtr; + + if (sFactorySwapScreen->unk30 != TRUE) + { + switch (gTasks[taskId].data[0]) + { + case 4: + Swap_ShowYesNoOptions(); + 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; + } + } +} + +static void sub_819CBDC(u8 taskId) +{ + if (gTasks[taskId].data[1] == 1) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = Task_CloseSwapScreen; + } + 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; + } +} + +static void sub_819CC24(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0) + { + Swap_PrintOnInfoWindow(gText_QuitSwapping); + sFactorySwapScreen->monSwapped = FALSE; + 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; + } +} + +static void sub_819CC74(u8 taskId) +{ + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); + if (gTasks[taskId].data[1] == 1) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = Task_CloseSwapScreen; + } + 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; + } +} + +static void sub_819CCD4(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0) + { + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); + Swap_PrintOnInfoWindow(gText_AcceptThisPkmn); + sFactorySwapScreen->monSwapped = TRUE; + 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; + } +} + +static void Task_HandleSwapScreenMenu(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 2: + if (!sFactorySwapScreen->fromSummaryScreen) + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); + gTasks[taskId].data[0] = 9; + break; + case 9: + if (sFactorySwapScreen->unk30 != TRUE) + { + Swap_ShowMenuOptions(); + gTasks[taskId].data[0] = 3; + } + break; + case 3: + if (sFactorySwapScreen->unk30 != TRUE) + { + 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, TRUE); + 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; + } +} + +static void Task_HandleSwapScreenChooseMons(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (!gPaletteFade.active) + { + sFactorySwapScreen->unk22 = TRUE; + gTasks[taskId].data[0] = 1; + } + break; + case 1: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sFactorySwapScreen->unk22 = FALSE; + Swap_PrintMonSpecies2(); + sub_819EAC0(); + Swap_RunActionFunc(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sFactorySwapScreen->unk22 = FALSE; + Swap_PrintMonSpecies2(); + 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; + } +} + +static void Task_SwapFadeSpeciesName(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; + } +} + +static void Task_SwapFadeSpeciesName2(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; + } +} + +static void sub_819D12C(u8 taskId) +{ + s8 i; + u8 var_2C; + bool8 destroyTask; + + 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; + destroyTask = TRUE; + } + else if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x == (i * 48) + 72) + { + destroyTask = TRUE; + } + else + { + destroyTask = FALSE; + } + } + else + { + destroyTask = 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->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); + + gTasks[taskId].data[i + 1] = 1; + } + } + if (destroyTask == TRUE) + DestroyTask(taskId); + break; + } +} + +static 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; + } +} + +static void sub_819D588(u8 taskId) +{ + u8 anotherTaskId; + u16 loPtr, hiPtr; + + switch (gTasks[taskId].data[0]) + { + case 0: + LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); + 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->inEnemyScreen == TRUE) + { + 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; + } +} + +static void sub_819D770(u8 taskId) +{ + u8 anotherTaskId; + u16 loPtr, hiPtr; + if (sFactorySwapScreen->unk30 == TRUE) + return; + + switch (gTasks[taskId].data[0]) + { + case 0: + if (sFactorySwapScreen->inEnemyScreen == TRUE) + { + 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_PrintOneActionString(0); + gTasks[taskId].data[0]++; + } + break; + case 5: + Swap_PrintOneActionString(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->inEnemyScreen) + Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap); + else + Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); + if (sFactorySwapScreen->cursorPos < 3) + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = FALSE; + Swap_PrintMonCategory(); + gTasks[taskId].data[0]++; + break; + case 8: + Swap_PrintMonSpecies3(); + sub_819EADC(); + sFactorySwapScreen->unk22 = TRUE; + 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; + } +} + +static void sub_819D9EC(u8 taskId) +{ + u8 i; + if (sFactorySwapScreen->unk30 == TRUE) + return; + + switch (gTasks[taskId].data[0]) + { + case 0: + Swap_PrintMonSpecies3(); + gTasks[taskId].data[0]++; + break; + case 1: + sub_819EADC(); + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = TRUE; + gTasks[taskId].data[0]++; + break; + case 2: + CreateTask(sub_819D12C, 0); + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName2; + gTasks[taskId].data[0]++; + break; + case 3: + if (!FuncIsActiveTask(sub_819D12C) && gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[4] == 1) + { + sub_819EAC0(); + if (!sFactorySwapScreen->inEnemyScreen) + { + Swap_InitActions(ACTIONS_ENEMY_SCREEN); + } + else + { + Swap_InitActions(ACTIONS_PLAYER_SCREEN); + for (i = 0; i < 3; i++) + 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; + sFactorySwapScreen->unk27 = 0; + sFactorySwapScreen->unk28 = 6; + sFactorySwapScreen->unk26 = FALSE; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].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; + } +} + +static void Swap_InitStruct(void) +{ + if (sFactorySwapScreen == NULL) + { + sFactorySwapScreen = AllocZeroed(sizeof(*sFactorySwapScreen)); + sFactorySwapScreen->cursorPos = 0; + sFactorySwapScreen->unk30 = FALSE; + sFactorySwapScreen->fromSummaryScreen = FALSE; + } +} + +void DoBattleFactorySwapScreen(void) +{ + sFactorySwapScreen = NULL; + SetMainCallback2(CB2_InitSwapScreen); +} + +static 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, sSwap_BgTemplates, ARRAY_COUNT(sSwap_BgTemplates)); + InitWindows(sSwap_WindowTemplates); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 1: + sSwapMenuTilesetBuffer = Alloc(0x440); + sSwapMonCardBgTilesetBuffer = AllocZeroed(0x440); + sSwapMenuTilemapBuffer = Alloc(0x800); + sSwapMonCardBgTilemapBuffer = 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, 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, sizeof(gUnknown_08610918)); + LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); + LoadPalette(gUnknown_0861039C, 0x20, 4); + gMain.state++; + break; + case 3: + SetBgTilemapBuffer(3, sSwapMonCardBgTilemapBuffer); + 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(); + Swap_InitActions(ACTIONS_PLAYER_SCREEN); + 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->fadeSpeciesNameTaskId = CreateTask(Task_SwapFadeSpeciesName, 0); + if (!sFactorySwapScreen->fromSummaryScreen) + { + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 0; + taskId = CreateTask(Task_HandleSwapScreenChooseMons, 0); + gTasks[taskId].data[0] = 0; + } + else + { + sub_819EAF8(); + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 1; + sFactorySwapScreen->unk22 = FALSE; + taskId = CreateTask(Task_HandleSwapScreenMenu, 0); + gTasks[taskId].data[0] = 2; + } + SetMainCallback2(Swap_CB2); + break; + } +} + +static 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 = TRUE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; + 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 = 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 = 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) +{ + 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]]); + } +} + +static void Swap_HandleActionCursorChange(u8 cursorId) +{ + if (cursorId < 3) + { + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = FALSE; + sub_819E8EC(); + gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[cursorId]].pos1.x; + } + else + { + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = TRUE; + sub_819E838(sFactorySwapScreen->actionsData[cursorId].id); + } +} + +static 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); +} + +static 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); +} + +static 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; +} + +static 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; +} + +static void sub_819E838(u8 arg0) +{ + u8 i; + + for (i = 0; i < 3; i++) + { + if (arg0 == 2) + { + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = FALSE; + if (i < 2) + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = TRUE; + } + else if (arg0 == 3) + { + if (i < 2) + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = FALSE; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; + } + } +} + +static void sub_819E8EC(void) +{ + u8 i; + + for (i = 0; i < 3; i++) + { + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; + if (i < 2) + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = TRUE; + } +} + +static 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 = FALSE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = FALSE; + + Swap_PrintMenuOptions(); +} + +static 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 = FALSE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = FALSE; + + Swap_PrintYesNoOptions(); +} + +static void sub_819EA64(u8 windowId) +{ + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; + FillWindowPixelBuffer(windowId, 0); + CopyWindowToVram(windowId, 2); + ClearWindowTilemap(windowId); +} + +static void sub_819EAC0(void) +{ + PutWindowTilemap(1); + FillWindowPixelBuffer(1, 0); + CopyWindowToVram(1, 2); +} + +static void sub_819EADC(void) +{ + PutWindowTilemap(7); + FillWindowPixelBuffer(7, 0); + CopyWindowToVram(7, 2); +} + +static void sub_819EAF8(void) +{ + sub_819EAC0(); + PutWindowTilemap(5); + FillWindowPixelBuffer(5, 0); + CopyWindowToVram(5, 2); +} + +static void Swap_PrintPkmnSwap(void) +{ + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL); + CopyWindowToVram(0, 3); +} + +static 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->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); + } +} + +static void Swap_PrintOnInfoWindow(const u8 *str) +{ + FillWindowPixelBuffer(2, 0); + AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); + CopyWindowToVram(2, 2); +} + +static 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); +} + +static 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); +} + +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); +} + +static 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); +} + +static 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); +} + +static 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); +} + +static 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); + } +} + +static void Swap_PrintMonSpecies3(void) +{ + u16 species; + u8 x; + + LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); + 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); + } +} + +static 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); + } +} + +static 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(sSwap_PlayerScreenActions); + sFactorySwapScreen->actionsData = sSwap_PlayerScreenActions; + break; + case ACTIONS_ENEMY_SCREEN: + sFactorySwapScreen->inEnemyScreen = TRUE; + sFactorySwapScreen->cursorPos = 0; + sFactorySwapScreen->actionsCount = ARRAY_COUNT(sSwap_EnemyScreenActions); + sFactorySwapScreen->actionsData = sSwap_EnemyScreenActions; + break; + } + } +} + +static void Swap_RunMenuOptionFunc(u8 taskId) +{ + sSwap_CurrentTableFunc = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos]; + sSwap_CurrentTableFunc(taskId); +} + +static 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; +} + +static void sub_819F114(u8 taskId) +{ + gTasks[taskId].data[0] = 6; + gTasks[taskId].func = Task_FromSwapScreenToSummaryScreen; +} + +static 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; +} + +static void Swap_RunActionFunc(u8 taskId) +{ + sSwap_CurrentTableFunc = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func; + sSwap_CurrentTableFunc(taskId); +} + +static void Swap_ActionCancel(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; +} + +static void Swap_ActionPkmnForSwap(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; +} + +static void Swap_ActionMon(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; +} + +static 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; +} + +static 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 = TRUE; +} + +static 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; +} + +static void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) +{ + FreeAndDestroyMonPicSprite(arg0.field0); + FreeOamMatrix(gSprites[arg0.field1].oam.matrixNum); + DestroySprite(&gSprites[arg0.field1]); + *arg1 = FALSE; +} + +static 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 = TRUE; + gTasks[taskId].data[0] = gTasks[taskId].data[5]; + gTasks[taskId].func = Task_HandleSwapScreenChooseMons; + break; + } +} + +static 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; +} + +static void sub_819F600(struct Sprite *sprite) +{ + u8 taskId; + + if (sprite->affineAnimEnded) + { + sprite->invisible = TRUE; + taskId = CreateTask(sub_819F69C, 1); + gTasks[taskId].data[7] = sprite->data[7]; + gTasks[taskId].func(taskId); + 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 = FALSE; + 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_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 03e0f10a33..af09856773 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -1176,7 +1176,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 a7c0b884ef..07eac0b88b 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -975,13 +975,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; } @@ -1059,16 +1059,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) @@ -2591,7 +2591,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_main.c b/src/battle_main.c index 2b265ec4c2..7fe3825404 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -2058,7 +2058,7 @@ void VBlankCB_Battle(void) ScanlineEffect_InitHBlankDmaTransfer(); } -void nullsub_17(void) +void nullsub_17(struct Sprite *sprite) { } diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index bc2821d164..74a4d3f83a 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -1129,7 +1129,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) @@ -1139,7 +1139,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) @@ -1412,12 +1412,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 fc9826e5bf..feaec74dbd 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -283,7 +283,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) @@ -291,10 +291,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 { @@ -302,16 +302,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); } } @@ -325,11 +325,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/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/berry_blender.c b/src/berry_blender.c index 96c3a933d7..a5b9401892 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -3550,8 +3550,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++) { @@ -3566,7 +3566,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); @@ -3659,7 +3659,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_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/berry_tag_screen.c b/src/berry_tag_screen.c index 0c13e7085a..07fb6bd9e9 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -375,7 +375,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) @@ -408,7 +408,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; @@ -422,34 +422,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) @@ -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/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); 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 cbf77f1b3f..981b60a47f 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1197,7 +1197,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) @@ -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/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[] = 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/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" diff --git a/src/decoration.c b/src/decoration.c index e1def6d38e..94edbe9568 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -544,7 +544,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) @@ -667,7 +667,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); } @@ -681,12 +681,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) @@ -977,7 +977,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 25af28da4b..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) @@ -870,7 +870,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/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/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/field_region_map.c b/src/field_region_map.c index d77bde01b3..7e8794cab2 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -143,7 +143,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(); @@ -199,7 +199,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_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) diff --git a/src/field_specials.c b/src/field_specials.c index 14f99b426c..1139793759 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 33c85d448f..2b09046725 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -28,6 +28,8 @@ #include "overworld.h" #include "menu.h" #include "trainer_pokemon_sprites.h" +#include "data2.h" +#include "rom_81520A8.h" struct HallofFameMon { @@ -57,10 +59,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 +82,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); @@ -98,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); @@ -182,20 +169,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}, @@ -531,7 +516,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; } @@ -610,7 +595,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; } @@ -738,7 +723,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; } @@ -964,9 +949,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; } @@ -1107,7 +1092,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; } @@ -1128,7 +1113,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 +1149,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 +1158,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 +1185,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 +1208,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 +1222,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 +1240,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); } @@ -1300,8 +1285,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) @@ -1453,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; } } @@ -1517,8 +1477,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/item_menu.c b/src/item_menu.c index 082fe55587..0cdedec97d 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1057,7 +1057,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) @@ -1065,7 +1065,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); } @@ -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; @@ -2291,7 +2291,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/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) 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/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/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/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 314ac272ae..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); - 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, 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); - 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); - 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); - 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); - 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); - 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); - 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; - gSprites[spriteId].invisible = 0; + 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; - gSprites[spriteId].invisible = 0; +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 = 1; - gSprites[gTasks[taskId].data[9]].invisible = 1; - 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].invisible = 0; + 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 = 1; - if (gTasks[taskId].data[6]) - spriteId = gTasks[taskId].data[11]; + gSprites[spriteId].invisible = TRUE; + 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; - gSprites[spriteId].invisible = 0; - gTasks[taskId].data[2] = spriteId; + spriteId = gTasks[taskId].tBrendanSpriteId; + gSprites[spriteId].pos1.x = 240; + gSprites[spriteId].pos1.y = 60; + gSprites[spriteId].invisible = FALSE; + 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 = 1; - gSprites[gTasks[taskId].data[9]].invisible = 1; - 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; - gSprites[spriteId].invisible = 0; + 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].invisible = 0; - gTasks[taskId].data[2] = spriteId; + gSprites[spriteId].pos1.x = 180; + gSprites[spriteId].pos1.y = 60; + gSprites[spriteId].invisible = FALSE; + 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,10 +1993,10 @@ 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); - PrintTextOnWindow(7, 1, str, 0, 1, 2, 0); + AddTextPrinterParameterized(7, 1, str, 0, 1, 2, 0); PutWindowTilemap(7); CopyWindowToVram(7, 2); DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[7], MAIN_MENU_BORDER_TILE); @@ -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); - 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, 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); - box_print(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); - box_print(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); - box_print(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0, 33, sTextColor_PlayerGenderColor, -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, 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); - box_print(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0x6C, 33, sTextColor_PlayerGenderColor, -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, 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/map_name_popup.c b/src/map_name_popup.c index 0d22bd1263..3feffd70d8 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -329,7 +329,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..3d3408bbb6 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); } @@ -668,7 +668,7 @@ static void Task_BardSong(u8 taskId) task->tState = 3; break; } - sub_8197224(); + RunTextPrintersAndIsPrinter0Active(); } void ScrSpecial_SetMauvilleOldManEventObjGfx(void) @@ -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 3acb44985f..0e5d1b8568 100644 --- a/src/menu.c +++ b/src/menu.c @@ -157,13 +157,13 @@ void sub_8197200(void) sub_81973A4(); } -u16 sub_8197224(void) +u16 RunTextPrintersAndIsPrinter0Active(void) { RunTextPrinters(); 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; @@ -189,19 +189,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) @@ -539,7 +539,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) @@ -813,7 +813,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, @@ -849,7 +849,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, @@ -857,7 +857,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); } @@ -932,7 +932,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) @@ -1093,7 +1093,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); } @@ -1103,7 +1103,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); } @@ -1223,7 +1223,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); @@ -1317,7 +1317,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, @@ -1602,7 +1602,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); @@ -1668,7 +1668,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); @@ -1939,7 +1939,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; @@ -1960,7 +1960,7 @@ void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 spee 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; @@ -1981,7 +1981,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; @@ -2011,7 +2011,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..8cabbde426 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; } @@ -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/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 7f031c704d..8dcb960b7a 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -314,5 +314,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 42525380b4..4d4178c7a5 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -572,7 +572,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); } @@ -1488,7 +1488,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]); } @@ -1499,7 +1499,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]); } @@ -1556,7 +1556,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); } } @@ -1693,7 +1693,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(); @@ -1735,7 +1735,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); @@ -1780,7 +1780,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/option_menu.c b/src/option_menu.c index d48a1e4484..6cb208c638 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -395,7 +395,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) @@ -621,7 +621,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); } @@ -632,7 +632,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 7ac8e78d55..bdbef1b430 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -453,7 +453,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) @@ -626,7 +626,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); @@ -965,7 +965,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); } } @@ -979,7 +979,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) @@ -1008,7 +1008,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) @@ -1070,7 +1070,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(); @@ -1126,7 +1126,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) @@ -1284,7 +1284,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 0fa2cde041..d0a867b3a5 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -677,7 +677,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_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/pokemon_storage_system.c b/src/pokemon_storage_system.c index 7c622c2235..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; @@ -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/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 28b2a4cbb0..7a6e88b4a0 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2741,7 +2741,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 445014f282..497d01cc2b 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/rom_8034C54.c b/src/rom_8034C54.c index 42df512950..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) @@ -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/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/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 b207d7e747..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 { @@ -173,7 +167,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 31a4ed35a3..acaf785762 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..ef52b71716 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -22,6 +22,20 @@ #include "text_window.h" #include "constants/rgb.h" #include "main_menu.h" +#include "bg.h" +#include "window.h" + +extern u8 gOamLimit; + +// 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[]; + +// gfx +extern const u8 gSlotMachineReelTime_Gfx[]; enum { @@ -97,8 +111,6 @@ struct SlotMachineEwramStruct /*0x64*/ MainCallback prevMainCb; }; -extern struct SlotMachineEwramStruct *sSlotMachine; - struct UnkStruct1 { /*0x00*/ u8 unk00; @@ -108,213 +120,543 @@ 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_810421C(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_8104BFC(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*/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[]; +/*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. +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[]; +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]; +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[]; +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] -void Task_FadeToSlotMachine(u8 taskId) +/*static */void Task_FadeToSlotMachine(u8 taskId) { switch (gTasks[taskId].tState) { @@ -344,7 +686,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) #undef tState -void CB2_SlotMachineSetup(void) +/*static */void CB2_SlotMachineSetup(void) { switch (gMain.state) { @@ -405,7 +747,7 @@ void CB2_SlotMachineSetup(void) } } -void CB2_SlotMachineLoop(void) +/*static */void CB2_SlotMachineLoop(void) { RunTasks(); AnimateSprites(); @@ -413,7 +755,7 @@ void CB2_SlotMachineLoop(void) UpdatePaletteFade(); } -void SlotMachine_VBlankCallback(void) +/*static */void SlotMachine_VBlankCallback(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -424,28 +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) { } -extern const struct BgTemplate gUnknown_085A7424[4]; -extern const struct WindowTemplate gUnknown_085A7434[]; - -void SlotMachineSetup_0_0(void) +/*static */void SlotMachineSetup_0_0(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); @@ -456,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); @@ -493,9 +832,7 @@ void SlotMachineSetup_2_1(void) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } -extern const s16 gUnknown_083ECCF8[][2]; - -void SlotMachineSetup_0_1(void) +/*static */void SlotMachineSetup_0_1(void) { u8 i; @@ -528,9 +865,7 @@ void SlotMachineSetup_0_1(void) sub_80EDE70(GetCoins()); } -extern u8 gOamLimit; - -void SlotMachineSetup_3_0(void) +/*static */void SlotMachineSetup_3_0(void) { ResetPaletteFade(); ResetSpriteData(); @@ -539,35 +874,7 @@ 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) +/*static */void SlotMachineSetup_4_0(void) { gUnknown_0203AACC = Alloc(8); gUnknown_0203AAD0 = AllocZeroed(0xE); @@ -582,21 +889,17 @@ 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) +/*static */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); } -void SlotMachineSetup_10_0(void) +/*static */void SlotMachineSetup_10_0(void) { sub_8104EA8(); sub_8104F8C(); @@ -604,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(); @@ -612,20 +915,18 @@ void SlotMachineSetup_10_1(void) sub_8101D04(); } -void sub_8101D04(void) +/*static */void sub_8101D04(void) { sub_8101D24(CreateTask(sub_8101D24, 0)); } -extern bool8 (*const gUnknown_083ECAAC[])(struct Task *task); - -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); @@ -633,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; @@ -659,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; @@ -675,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; @@ -717,21 +1018,16 @@ 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) +/*static */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; } -bool8 sub_8101F60(struct Task *task) +/*static */bool8 sub_8101F60(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -741,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(); @@ -773,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()) { @@ -784,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) { @@ -794,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) { @@ -806,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)) { @@ -821,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(); @@ -883,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()) { @@ -913,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()) { @@ -931,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()) { @@ -944,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); @@ -953,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) { @@ -963,17 +1259,17 @@ 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); - 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); + CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); sSlotMachine->state = 22; return FALSE; } -bool8 sub_8102344(struct Task *task) +/*static */bool8 sub_8102344(struct Task *task) { s8 input = Menu_ProcessInputNoWrap_(); if (input == 0) @@ -993,16 +1289,16 @@ 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); - 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; } -bool8 sub_81023B8(struct Task *task) +/*static */bool8 sub_81023B8(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1012,16 +1308,16 @@ 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); - 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; } -bool8 sub_81023FC(struct Task *task) +/*static */bool8 sub_81023FC(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1031,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()); @@ -1040,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) { @@ -1082,7 +1378,7 @@ bool8 sub_8102460(struct Task *task) return FALSE; } -void sub_8102484(void) +/*static */void sub_8102484(void) { u8 r3; @@ -1111,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; @@ -1131,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) @@ -1139,12 +1435,7 @@ 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) +/*static */u8 sub_8102578(void) { s16 i; @@ -1158,7 +1449,7 @@ u8 sub_8102578(void) return i; } -u8 sub_81025BC(void) +/*static */u8 sub_81025BC(void) { s16 i; @@ -1184,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]; @@ -1192,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; @@ -1210,13 +1501,7 @@ 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) +/*static */bool8 sub_81026DC(u16 a0) { u16 rval = Random() & 0xff; if (rval < gUnknown_083ECE12[a0]) @@ -1225,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; @@ -1249,7 +1534,7 @@ u16 dp15_jump_random_unknown(void) return 8; } -void CheckMatch(void) +/*static */void CheckMatch(void) { sSlotMachine->matchedSymbols = 0; CheckMatch_CenterRow(); @@ -1259,7 +1544,7 @@ void CheckMatch(void) CheckMatch_Diagonals(); } -void CheckMatch_CenterRow(void) +/*static */void CheckMatch_CenterRow(void) { u8 c1, c2, c3, match; @@ -1275,7 +1560,7 @@ void CheckMatch_CenterRow(void) } } -void CheckMatch_TopAndBottom(void) +/*static */void CheckMatch_TopAndBottom(void) { u8 c1, c2, c3, match; @@ -1305,7 +1590,7 @@ void CheckMatch_TopAndBottom(void) } } -void CheckMatch_Diagonals(void) +/*static */void CheckMatch_Diagonals(void) { u8 c1, c2, c3, match; @@ -1337,9 +1622,7 @@ void CheckMatch_Diagonals(void) } } -extern const u8 sSym2Match[]; - -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]; @@ -1352,15 +1635,2982 @@ 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; else return FALSE; } + +/*static */void sub_8102A64(u8 taskId) +{ + while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)) + ; +} + +/*static */bool8 sub_8102A9C(struct Task *task) +{ + if (sub_8103E38()) + { + task->data[0]++; + if (sSlotMachine->payout == 0) + { + task->data[0] = 2; + return TRUE; + } + } + return FALSE; +} + +/*static */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; +} + +/*static */bool8 sub_8102B80(struct Task *task) +{ + if (sub_8103E7C()) + DestroyTask(FindTaskIdByFunc(sub_8102A64)); + return FALSE; +} + +/*static */u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) +{ + s16 offset = (sSlotMachine->reelPositions[x] + y) % 21; + if (offset < 0) + offset += 21; + return sReelSymbols[x][offset]; +} + +/*static */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); +} + +/*static */u8 sub_8102C48(s16 a0) +{ + s16 r1 = (sSlotMachine->unk16 + a0) % 6; + if (r1 < 0) + r1 += 6; + return gUnknown_083ECCF1[r1]; +} + +/*static */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; +} + +/*static */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; +} + +/*static */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); + } +} + +/*static */void sub_8102DEC(u8 a0) +{ + gTasks[sSlotMachine->reelTasks[a0]].data[0] = 1; + gTasks[sSlotMachine->reelTasks[a0]].data[14] = 1; +} + +/*static */void sub_8102E1C(u8 a0) +{ + gTasks[sSlotMachine->reelTasks[a0]].data[0] = 2; +} + +/*static */bool8 sub_8102E40(u8 a0) +{ + return gTasks[sSlotMachine->reelTasks[a0]].data[14]; +} + +/*static */void sub_8102E68(u8 taskId) +{ + while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)) + ; +} + +/*static */bool8 sub_8102EA0(struct Task *task) +{ + return FALSE; +} + +/*static */bool8 sub_8102EA4(struct Task *task) +{ + sub_8102C84(task->data[15], sSlotMachine->unk1A); + return FALSE; +} + + +/*static */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; +} + +/*static */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; +} + +/*static */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; +} + +/*static */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); +} + +/*static */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; +} + +/*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; + else + return FALSE; +} + +/*static */bool8 sub_8103134(void) +{ + if (sSlotMachine->unk04 & 0xc2) + return TRUE; + else + return FALSE; +} + +/*static */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; +} + +/*static */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; +} + +/*static */bool8 sub_81032C0(void) +{ + return gUnknown_083ECB70[sSlotMachine->bet - 1](); +} + +/*static */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; +} + +/*static */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; +} + +/*static */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); +} + +/*static */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; +} + +/*static */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; +} + +/*static */void sub_81034F4(void) +{ + s16 i = 0; + + while (sub_81030E0(i) != 0) + i++; + sSlotMachine->unk2E[0] = i; +} + +/*static */bool8 sub_8103520(u8 *a0) +{ + if (*a0 == 0) + { + *a0 = 1; + return TRUE; + } + if (*a0 == 1) + { + *a0 = 0; + return TRUE; + } + return FALSE; +} + +/*static */void sub_8103540(void) +{ + gUnknown_083ECB88[sSlotMachine->bet - 1](); +} + +/*static */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; + } + } + } + } +} + +/*static */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; + } + } + } + } +} + +/*static */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; + } + } + } + } + } +} + +/*static */bool8 sub_8103764(u8 a0, u8 a1) +{ + if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0)) + return TRUE; + else + return FALSE; +} + +/*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; + else + return FALSE; +} + +/*static */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; +} + +/*static */void sub_810380C(void) +{ + gUnknown_083ECB94[sSlotMachine->bet - 1](); +} + +/*static */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; +} + +/*static */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; +} + +/*static */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]++; + } +} + +/*static */void sub_8103C14(u8 a0) +{ + u8 taskId = CreateTask(sub_8103C48, 5); + gTasks[taskId].data[15] = a0; + sub_8103C48(taskId); +} + +/*static */void sub_8103C48(u8 taskId) +{ + gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); +} + +/*static */void sub_8103C78(struct Task *task, u8 taskId) +{ + sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); + task->data[0]++; +} + +/*static */void sub_8103CAC(struct Task *task, u8 taskId) +{ + if (++task->data[1] > 11) + task->data[0]++; +} + +/*static */void sub_8103CC8(struct Task *task, u8 taskId) +{ + sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); + DestroyTask(taskId); +} + +/*static */void sub_8103D00(u8 a0) +{ + LoadPalette(gUnknown_083EDD08[a0], gUnknown_083EDD30[a0], 2); +} + +/*static */void sub_8103D28(u8 a0) +{ + LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); +} + +/*static */void sub_8103D50(u8 a0) +{ + u8 i; + for (i = 0; i < gUnknown_083EDD3B[a0]; i++) + sub_8103D00(gUnknown_083EDD35[a0][i]); +} + +/*static */void sub_8103D8C(u8 a0) +{ + u8 i; + for (i = 0; i < gUnknown_083EDD3B[a0]; i++) + sub_8103D28(gUnknown_083EDD35[a0][i]); +} + +/*static */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; + } +} + +/*static */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; +} + +/*static */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; +} + +/*static */bool8 sub_8103E7C(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + if (!sub_8103EAC(sSlotMachine->unk44[i])) + return FALSE; + } + return TRUE; +} + +/*static */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]; +} + +/*static */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]); + } +} + +/*static */void sub_8103F70(void) +{ + u8 taskId = CreateTask(sub_8103FE8_, 6); + gTasks[taskId].data[3] = 1; + sub_8103FE8_(taskId); +} + +/*static */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; +} + +/*static */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); +} + +/*static */void sub_8104048(void) +{ + sSlotMachine->unk3E = CreateTask(sub_81040E8, 8); +} + +/*static */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; +} + +/*static */void sub_8104098(void) +{ + struct Task *task = gTasks + sSlotMachine->unk3E; + sub_812D394(task); + task->data[0] = 3; + task->data[15] = 1; +} + +/*static */bool8 sub_81040C8(void) +{ + return gTasks[sSlotMachine->unk3E].data[15]; +} + +/*static */void sub_81040E8(u8 taskId) +{ + gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); +} + +/*static */void nullsub_68(struct Task *task) +{ +} + +/*static */void sub_810411C(struct Task *task) +{ + task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); + task->data[0]++; +} + +/*static */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; + } +} + +/*static */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; + } +} + +/*static */void sub_812D394(struct Task *task) +{ + u8 i; + + for (i = 2; i < 16; i++) + task->data[i] = 0; +} + +/*static */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; +} + +/*static */void sub_810430C(void) +{ + u8 taskId = CreateTask(sub_810434C, 7); + sub_810434C(taskId); +} + +/*static */bool8 sub_810432C(void) +{ + if (FindTaskIdByFunc(sub_810434C) == 0xFF) + return TRUE; + return FALSE; +} + +/*static */void sub_810434C(u8 taskId) +{ + gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId); +} + +/*static */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); +} + +/*static */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); +} + +/*static */void sub_8104468(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + if (++task->data[5] >= 60) + { + task->data[0]++; + sub_8105578(); + sub_81056F0(); + } +} + +/*static */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; + } +} + +/*static */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); + } +} + +/*static */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; + } +} + +/*static */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]++; + } +} + +/*static */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]++; + } +} + +/*static */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); + } + } +} + +/*static */void sub_8104764(struct Task *task) +{ + if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) + task->data[0]++; +} + +/*static */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]++; +} + +/*static */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]++; + } +} + +/*static */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; +} + +/*static */void sub_81048A8(struct Task *task) +{ + if (sub_8104E18()) + DestroyTask(FindTaskIdByFunc(sub_810434C)); +} + +/*static */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); +} + +/*static */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; + } +} + +/*static */void sub_81049C8(struct Task *task) +{ + gSpriteCoordOffsetY = 0; + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + if (sub_8105ACC()) + { + task->data[0]++; + sub_8105AEC(); + } +} + +/*static */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)); +} + +/*static */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); + } +} + +/*static */void sub_8104A88(s16 a0) +{ + u8 i; + + for (i = 4; i < 15; i++) + { + LoadBgTilemap(1, gUnknown_085A9898, 2, 32 * i + a0); + } +} + +/*static */void sub_8104AB8(u8 a0) +{ + u8 taskId = CreateTask(sub_8104B0C, 1); + gTasks[taskId].data[1] = a0; + sub_8104B0C(taskId); +} + +/*static */bool8 sub_8104AEC(void) +{ + if (FindTaskIdByFunc(sub_8104B0C) == 0xFF) + return TRUE; + else + return FALSE; +} + +/*static */void sub_8104B0C(u8 taskId) +{ + gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId); +} + +/*static */void sub_8104B3C(struct Task *task) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + task->data[0]++; +} + +/*static */void sub_8104B60(struct Task *task) +{ + if (!gPaletteFade.active) + task->data[0]++; +} + +/*static */void sub_8104B80(struct Task *task) +{ + sub_8104DA4(); + sub_81065DC(); + AddWindow(&gUnknown_085A7444); + PutWindowTilemap(1); + FillWindowPixelBuffer(1, 0); + task->data[0]++; +} + +/*static */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]++; +} + +/*static */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]++; + } +} + +/*static */void sub_812DE14(struct Task *task) +{ + sub_812F968(); + ShowBg(3); + task->data[0]++; +} + +/*static */void sub_812DE30(struct Task *task) +{ + sub_8104CAC(task->data[1]); + task->data[0]++; +} + +/*static */void sub_8104BFC(struct Task *task) +{ + sub_810423C(sSlotMachine->pikaPower); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + task->data[0]++; +} + +/*static */void sub_8104C44(struct Task *task) +{ + DestroyTask(FindTaskIdByFunc(sub_8104B0C)); +} + +/*static */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; +} + +/*static */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; + } +} + +/*static */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; + } + } +} + +/*static */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; + } + } +} + +/*static */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; +} + +/*static */void sub_8104E74_(u8 taskId) +{ + gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId); +} + +/*static */void nullsub_69(struct Task *task) +{ +} + +/*static */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; + } + } +} + +/*static */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); +} + +/*static */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); +} + +/*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; + sprite->data[0] = a2; + sprite->data[1] = a3; + sprite->data[2] = a3 * 10; + sprite->data[3] = -1; +} + +/*static */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); + } +} + +/*static */void sub_81050C4(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); + gSprites[spriteId].oam.priority = 3; + SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); +} + +/*static */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; +} + +/*static */void sub_810514C(void) +{ + DestroySprite(gSprites + sSlotMachine->unk3F); + if (gUnknown_0203AAE4 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAE4); +} + +/*static */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; + } +} + +/*static */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; +} + +/*static */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; +} + +/*static */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; + } +} + +/*static */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)); +} + +/*static */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; +} + +/*static */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; +} + +/*static */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]]); +} + +/*static */void sub_8105524(void) +{ + u8 i; + + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk4E[i]]); +} + +/*static */void sub_8105554(void) +{ + DestroySprite(&gSprites[sSlotMachine->unk42]); + if (gUnknown_0203AAF0 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAF0); +} + +/*static */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; +} + +/*static */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; + } + } +} + +/*static */void sub_8105688(s16 a0) +{ + gSprites[sSlotMachine->unk50[0]].data[7] = a0; + gSprites[sSlotMachine->unk50[1]].data[7] = a0; +} + +/*static */void sub_81056C0(void) +{ + u8 i; + + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk50[i]]); +} + +/*static */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; +} + +/*static */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]; + } +} + +/*static */void sub_81057E8(s16 a0) +{ + gSprites[sSlotMachine->unk52[0]].data[7] = a0; +} + +/*static */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]]); +} + +/*static */void sub_8105854(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); + gSprites[spriteId].oam.priority = 1; + sSlotMachine->unk41 = spriteId; +} + +/*static */void sub_8105894(struct Sprite *sprite) +{ + sprite->pos2.y = gSpriteCoordOffsetY; +} + +/*static */void sub_81058A0(void) +{ + DestroySprite(&gSprites[sSlotMachine->unk41]); +} + +/*static */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; + } +} + +/*static */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; + } +} + +/*static */void sub_81059B8(void) +{ + u8 i; + for (i = 0; i < 4; i++) + { + DestroySprite(&gSprites[sSlotMachine->unk54[i]]); + } +} + +/*static */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; +} + +/*static */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); +} + +/*static */u8 sub_8105ACC(void) +{ + return gSprites[sSlotMachine->unk43].data[7]; +} + +/*static */void sub_8105AEC(void) +{ + struct Sprite *sprite = &gSprites[sSlotMachine->unk43]; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); +} + +/*static */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; +} + +/*static */void sub_8105B70(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + sprite->data[7] = 1; +} + +/*static */void sub_8105B88(u8 spriteId) +{ + struct Sprite *sprite = &gSprites[spriteId]; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); +} + +/*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); +} + +/*static */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; +} + +/*static */void sub_8105C64(struct Sprite *sprite) +{ + sprite->data[7] = 0; +} + +/*static */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]]; + } +} + +/*static */void sub_8105CF0(struct Sprite *sprite) +{ + sprite->hFlip = TRUE; + sub_8105C6C(sprite); +} + +/*static */void sub_8105D08(struct Sprite *sprite) +{ + sprite->vFlip = TRUE; + sub_8105C6C(sprite); +} + +/*static */void sub_8105D20(struct Sprite *sprite) +{ + sprite->hFlip = TRUE; + sprite->vFlip = TRUE; + sub_8105C6C(sprite); +} + +/*static */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; + } +} + +/*static */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; + } +} + +/*static */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; + } +} + +/*static */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; + } +} + +/*static */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; + } +} + +/*static */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; + } +} + +/*static */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; +} + +/*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}; + 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; + } +} + +/*static */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]--; +} + +/*static */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; + } +} + +/*static */void nullsub_70(void) +{ +} + +/*static */void sub_8106364(void) +{ + SetGpuReg(REG_OFFSET_MOSAIC, 0); +} + +/*static */void sub_8106370(void) +{ + LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); +} + +/*static */void sub_810639C(void) +{ + sSlotMachine->win0h = 0xf0; + sSlotMachine->win0v = 0xa0; + sSlotMachine->winIn = 0x3f; + sSlotMachine->winOut = 0x3f; +} + +/*static */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); +} + +/*static */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[]; + +/*static */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); +} + +/*static */void sub_81064B8(void) +{ + sub_812F968(); + LoadSlotMachineWheelOverlay(); +} + +/*static */void sub_812F968(void) +{ + LoadBgTilemap(2, gSlotMachineMenu_Tilemap, 0x500, 0); +} + +/*static */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); + } +} + +/*static */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); +} + +/*static */void sub_81065DC(void) +{ + LoadBgTilemap(2, gUnknown_08DCEC70, 0x500, 0); + HideBg(3); +} + +/*static */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; +} + +/*static */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} +}; + +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/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, diff --git a/src/start_menu.c b/src/start_menu.c index 4a58c146ef..9d10aeaa4b 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++; @@ -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; } @@ -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 71784b016c..179d9a05ae 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -470,7 +470,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; @@ -524,7 +524,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; @@ -582,10 +582,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); 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 f3feab1d4d..6bcfa1717e 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -668,7 +668,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); } @@ -716,7 +716,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); } @@ -783,7 +783,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_bss.txt b/sym_bss.txt index 0b861774b1..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 @@ -78,14 +76,7 @@ gUnknown_03001278: @ 3001278 gUnknown_03001279: @ 3001279 .space 0x3 -gUnknown_0300127C: @ 300127C - .space 0x4 - -gUnknown_03001280: @ 3001280 - .space 0x4 - -gUnknown_03001284: @ 3001284 - .space 0x4 + .include "src/battle_factory.o" gUnknown_03001288: @ 3001288 .space 0x4 @@ -105,9 +96,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 diff --git a/sym_ewram.txt b/sym_ewram.txt index 426ec93075..4b3f9d10c5 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 @@ -591,9 +504,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?*/ @@ -635,34 +546,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 - -gUnknown_0203CE40: @ 203CE40 - .space 0x4 - -gUnknown_0203CE44: @ 203CE44 - .space 0x4 - -gUnknown_0203CE48: @ 203CE48 - .space 0x4 - -gUnknown_0203CE4C: @ 203CE4C - .space 0x4 + .include "src/battle_factory.o" gUnknown_0203CE50: @ 203CE50 .space 0x4 diff --git a/tools/gbafix/gbafix.c b/tools/gbafix/gbafix.c index 60e4ccb4f5..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) @@ -135,6 +136,7 @@ int main(int argc, char *argv[]) int arg; char *argfile = 0; FILE *infile; + int silent = 0; int size,bit; @@ -142,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]\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 +153,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 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) @@ -145,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(); - } } } @@ -206,7 +204,7 @@ int main(int argc, char** argv) RaiseError("output filename extension is not \"s\""); if (g_asmLabel.empty()) - g_asmLabel = StripExtension(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 ba5dd654ae..09480e139c 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; void Seek(long offset) { @@ -170,6 +171,7 @@ void StartTrack() { Seek(s_trackDataStart); s_absoluteTime = 0; + s_runningStatus = 0; } void SkipEventData() @@ -181,15 +183,24 @@ void DetermineEventCategory(MidiEventCategory& category, int& typeChan, int& siz { typeChan = ReadInt8(); + if (typeChan < 0x80) + { + // If data byte was found, use the running status. + ungetc(typeChan, g_inputFile); + typeChan = s_runningStatus; + } + if (typeChan == 0xFF) { category = MidiEventCategory::Meta; size = 0; + s_runningStatus = 0; } else if (typeChan >= 0xF0) { category = MidiEventCategory::SysEx; size = 0; + s_runningStatus = 0; } else if (typeChan >= 0x80) { @@ -205,6 +216,7 @@ void DetermineEventCategory(MidiEventCategory& category, int& typeChan, int& siz size = 2; break; } + s_runningStatus = typeChan; } else { @@ -421,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; @@ -429,6 +444,7 @@ void FindNoteEnd(Event& event) ; Seek(startPos); + s_runningStatus = savedRunningStatus; } bool ReadTrackEvent(Event& event)