diff options
Diffstat (limited to 'src/pokemon_jump_4.c')
-rw-r--r-- | src/pokemon_jump_4.c | 922 |
1 files changed, 0 insertions, 922 deletions
diff --git a/src/pokemon_jump_4.c b/src/pokemon_jump_4.c deleted file mode 100644 index 8ca248ada..000000000 --- a/src/pokemon_jump_4.c +++ /dev/null @@ -1,922 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "data.h" -#include "digit_obj_util.h" -#include "dynamic_placeholder_text_util.h" -#include "item.h" -#include "menu.h" -#include "new_menu_helpers.h" -#include "pokemon_jump.h" -#include "strings.h" -#include "task.h" -#include "text_window.h" -#include "constants/songs.h" -#include "constants/items.h" - -EWRAM_DATA static struct PokemonJump2 *gUnknown_203F3D8 = NULL; - -static void sub_8149D80(void (*func)(void)); -static void sub_8149DA4(u8 taskId); -static void sub_8149DC8(void); -static void sub_8149F64(void); -static void sub_8149FD0(void); -static void sub_814A03C(void); -static void sub_814A0C8(void); -static void sub_814A174(void); -static void sub_814A218(void); -static void sub_814A264(void); -static void sub_814A308(void); -static void sub_814A3AC(void); -static u32 sub_814A754(u32 left, u32 top, u32 width, u32 height); -static void sub_814A7D0(u16 left, u16 top, u8 cursorPos); -static void sub_814A84C(void); -static void sub_814A8B8(void); -static void sub_814A9C8(void); -static void sub_814AADC(void); -static void sub_814AC30(bool32 arg0); -static void sub_814AC94(void); -static void sub_814ACCC(u8 arg0); -static void sub_814AD50(u8 taskId); - -static void sub_8149D34(struct PokemonJump2 *); - -void sub_8149CEC(struct PokemonJump2 *arg0) -{ - u8 taskId; - - gUnknown_203F3D8 = arg0; - sub_8149D34(gUnknown_203F3D8); - taskId = CreateTask(sub_8149DA4, 3); - gUnknown_203F3D8->unk6 = taskId; - SetWordTaskArg(gUnknown_203F3D8->unk6, 2, (uintptr_t)gUnknown_203F3D8); - sub_8149D80(sub_8149DC8); -} - -void sub_8149D24(void) -{ - FreeAllWindowBuffers(); - DigitObjUtil_Free(); -} - -static void sub_8149D34(struct PokemonJump2 *arg0) -{ - arg0->unk4 = 0; - arg0->unk0 = 0; - arg0->unk12 = 0xFF; -} - -// Gfx -static const u16 sPkmnJumpPal3[] = INCBIN_U16("graphics/link_games/pkmnjump_pal3.gbapal"); - -static const u16 sPkmnJumpBgPal[] = INCBIN_U16("graphics/link_games/pkmnjump_bg.gbapal"); -static const u32 sPkmnJumpBgGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_bg.4bpp.lz"); -static const u32 sPkmnJumpBgTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_bg.bin.lz"); - -static const u16 sPkmnJumpVenusaurPal[] = INCBIN_U16("graphics/link_games/pkmnjump_venusaur.gbapal"); -static const u32 sPkmnJumpVenusaurGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_venusaur.4bpp.lz"); -static const u32 sPkmnJumpVenusaurTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_venusaur.bin.lz"); - -static const u16 sPkmnJumpResultsPal[] = INCBIN_U16("graphics/link_games/pkmnjump_results.gbapal"); -static const u32 sPkmnJumpResultsGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_results.4bpp.lz"); -static const u32 sPkmnJumpResultsTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_results.bin.lz"); - -static const struct BgTemplate gUnknown_846D8D4[] = -{ - { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 27, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0 - }, - { - .bg = 2, - .charBaseIndex = 1, - .mapBaseIndex = 30, - .screenSize = 2, - .paletteMode = 0, - .priority = 2, - .baseTile = 0 - }, - { - .bg = 1, - .charBaseIndex = 2, - .mapBaseIndex = 12, - .screenSize = 3, - .paletteMode = 0, - .priority = 1, - .baseTile = 0 - }, - { - .bg = 3, - .charBaseIndex = 3, - .mapBaseIndex = 29, - .screenSize = 0, - .paletteMode = 0, - .priority = 3, - .baseTile = 0 - }, -}; - -static const struct WindowTemplate gUnknown_846D8E4[] = -{ - { - .bg = 0, - .tilemapLeft = 19, - .tilemapTop = 0, - .width = 6, - .height = 2, - .paletteNum = 2, - .baseBlock = 0x13, - }, - { - .bg = 0, - .tilemapLeft = 8, - .tilemapTop = 0, - .width = 6, - .height = 2, - .paletteNum = 2, - .baseBlock = 0x1F, - }, - DUMMY_WIN_TEMPLATE, -}; - -struct -{ - int id; - void (*func)(void); -} static const gUnknown_846D8FC[] = -{ - {0x00, sub_8149DC8}, - {0x01, sub_8149F64}, - {0x02, sub_8149FD0}, - {0x03, sub_814A03C}, - {0x04, sub_814A0C8}, - {0x05, sub_814A174}, - {0x06, sub_814A218}, - {0x07, sub_814A264}, - {0x09, sub_814A3AC}, - {0x08, sub_814A308}, -}; - -void sub_8149D40(int arg0) -{ - int i; - - for (i = 0; i < NELEMS(gUnknown_846D8FC); i++) - { - if (gUnknown_846D8FC[i].id == arg0) - sub_8149D80(gUnknown_846D8FC[i].func); - } -} - -bool32 sub_8149D68(void) -{ - return (gUnknown_203F3D8->unk0 != 1); -} - -static void sub_8149D80(void (*func)(void)) -{ - SetWordTaskArg(gUnknown_203F3D8->unk6, 0, (uintptr_t)func); - gUnknown_203F3D8->unk4 = 0; - gUnknown_203F3D8->unk0 = 0; -} - -static void sub_8149DA4(u8 taskId) -{ - if (!gUnknown_203F3D8->unk0) - { - void (*func)(void) = (void *)(GetWordTaskArg(taskId, 0)); - - func(); - } -} - -static void sub_8149DC8(void) -{ - switch (gUnknown_203F3D8->unk4) - { - case 0: - ResetBgsAndClearDma3BusyFlags(FALSE); - InitBgsFromTemplates(0, gUnknown_846D8D4, NELEMS(gUnknown_846D8D4)); - InitWindows(gUnknown_846D8E4); - ResetBgPositions(); - ResetTempTileDataBuffers(); - sub_814AD6C(gUnknown_203F3D8); - sub_814A9C8(); - LoadPalette(sPkmnJumpBgPal, 0, 0x20); - DecompressAndCopyTileDataToVram(3, sPkmnJumpBgGfx, 0, 0, 0); - DecompressAndCopyTileDataToVram(3, sPkmnJumpBgTilemap, 0, 0, 1); - LoadPalette(sPkmnJumpVenusaurPal, 0x30, 0x20); - DecompressAndCopyTileDataToVram(2, sPkmnJumpVenusaurGfx, 0, 0, 0); - DecompressAndCopyTileDataToVram(2, sPkmnJumpVenusaurTilemap, 0, 0, 1); - LoadPalette(sPkmnJumpResultsPal, 0x10, 0x20); - DecompressAndCopyTileDataToVram(1, sPkmnJumpResultsGfx, 0, 0, 0); - DecompressAndCopyTileDataToVram(1, sPkmnJumpResultsTilemap, 0, 0, 1); - LoadPalette(sPkmnJumpPal3, 0x20, 0x20); - SetBgTilemapBuffer(0, gUnknown_203F3D8->tilemapBuffer); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); - sub_814A84C(); - sub_814AA24(0); - DrawWindowBorderWithStdpal3(0, 1, 0xE0); - LoadUserWindowBorderGfx(0, 0x00A, 0xD0); - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(2); - CopyBgTilemapBufferToVram(1); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!FreeTempTileDataBuffersIfPossible()) - { - sub_814A8B8(); - sub_814B294(gUnknown_203F3D8); - sub_814B348(gUnknown_203F3D8, 6); - ShowBg(3); - ShowBg(0); - ShowBg(2); - HideBg(1); - gUnknown_203F3D8->unk4++; - } - break; - case 2: - gUnknown_203F3D8->unk0 = 1; - break; - } -} - -static void sub_8149F64(void) -{ - switch (gUnknown_203F3D8->unk4) - { - case 0: - sub_814AADC(); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - { - sub_814AC30(FALSE); - gUnknown_203F3D8->unk4++; - } - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - { - sub_814AC94(); - gUnknown_203F3D8->unk4++; - } - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_203F3D8->unk0 = 1; - break; - } -} - -static void sub_8149FD0(void) -{ - switch (gUnknown_203F3D8->unk4) - { - case 0: - sub_814AADC(); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - { - sub_814AC30(TRUE); - gUnknown_203F3D8->unk4++; - } - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - { - sub_814AC94(); - gUnknown_203F3D8->unk4++; - } - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_203F3D8->unk0 = 1; - break; - } -} - -static void sub_814A03C(void) -{ - int i, numPlayers; - - numPlayers = sub_81499A4(); - switch (gUnknown_203F3D8->unk4) - { - case 0: - for (i = 0; i < numPlayers; i++) - ClearWindowTilemap(gUnknown_203F3D8->unk1C[i]); - - CopyBgTilemapBufferToVram(0); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - { - for (i = 0; i < numPlayers; i++) - RemoveWindow(gUnknown_203F3D8->unk1C[i]); - - gUnknown_203F3D8->unk0 = 1; - } - break; - } -} - -static void sub_814A0C8(void) -{ - switch (gUnknown_203F3D8->unk4) - { - case 0: - gUnknown_203F3D8->unk12 = sub_814A754(1, 8, 20, 2); - AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_WantToPlayAgain2, 0, 2, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PutWindowTilemap(gUnknown_203F3D8->unk12); - DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14); - sub_814A7D0(23, 7, 0); - CopyBgTilemapBufferToVram(0); - gUnknown_203F3D8->unk4++; - } - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_203F3D8->unk0 = 1; - break; - } -} - -static void sub_814A174(void) -{ - switch (gUnknown_203F3D8->unk4) - { - case 0: - gUnknown_203F3D8->unk12 = sub_814A754(2, 7, 26, 4); - AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SavingDontTurnOffPower, 0, 2, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PutWindowTilemap(gUnknown_203F3D8->unk12); - DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14); - CopyBgTilemapBufferToVram(0); - gUnknown_203F3D8->unk4++; - } - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_203F3D8->unk0 = 1; - break; - } -} - -static void sub_814A218(void) -{ - switch (gUnknown_203F3D8->unk4) - { - case 0: - sub_814A6CC(); - DestroyYesNoMenu(); - CopyBgTilemapBufferToVram(0); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!sub_814A6FC() && !IsDma3ManagerBusyWithBgCopy()) - gUnknown_203F3D8->unk0 = 1; - break; - } -} - -static void sub_814A264(void) -{ - switch (gUnknown_203F3D8->unk4) - { - case 0: - gUnknown_203F3D8->unk12 = sub_814A754(2, 8, 22, 4); - AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SomeoneDroppedOut2, 0, 2, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PutWindowTilemap(gUnknown_203F3D8->unk12); - DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14); - CopyBgTilemapBufferToVram(0); - gUnknown_203F3D8->unk4++; - } - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_203F3D8->unk0 = 1; - break; - } -} - -static void sub_814A308(void) -{ - switch (gUnknown_203F3D8->unk4) - { - case 0: - gUnknown_203F3D8->unk12 = sub_814A754(7, 10, 16, 2); - AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_CommunicationStandby4, 0, 2, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PutWindowTilemap(gUnknown_203F3D8->unk12); - DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14); - CopyBgTilemapBufferToVram(0); - gUnknown_203F3D8->unk4++; - } - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_203F3D8->unk0 = 1; - break; - } -} - -static void sub_814A3AC(void) -{ - switch (gUnknown_203F3D8->unk4) - { - case 0: - sub_814B43C(gUnknown_203F3D8); - gUnknown_203F3D8->unk4++; - break; - case 1: - if (!sub_814B460()) - gUnknown_203F3D8->unk0 = 1; - break; - } -} - -void sub_814A3E4(void) -{ - gUnknown_203F3D8->unkA = 0; - gUnknown_203F3D8->unkB = 0; - gUnknown_203F3D8->unkC = 6; - sub_814A95C(gUnknown_203F3D8->unkC); -} - -bool32 sub_814A408(void) -{ - switch (gUnknown_203F3D8->unkA) - { - case 0: - gUnknown_203F3D8->unkB++; - if (gUnknown_203F3D8->unkB > 10) - { - gUnknown_203F3D8->unkB = 0; - gUnknown_203F3D8->unkC++; - if (gUnknown_203F3D8->unkC >= 10) - { - gUnknown_203F3D8->unkC = 0; - gUnknown_203F3D8->unkA++; - } - } - sub_814A95C(gUnknown_203F3D8->unkC); - if (gUnknown_203F3D8->unkC != 7) - break; - case 1: - return FALSE; - } - - return TRUE; -} - -static const u8 sPluralTxt[] = _("IES"); - -void sub_814A468(u16 itemId, u16 quantity) -{ - CopyItemName(itemId, gUnknown_203F3D8->txtBuff[0]); - ConvertIntToDecimalStringN(gUnknown_203F3D8->txtBuff[1], quantity, STR_CONV_MODE_LEFT_ALIGN, 1); - if (itemId >= FIRST_BERRY_INDEX && itemId < LAST_BERRY_INDEX) - { - if (quantity > 1) - { - int endi = StringLength(gUnknown_203F3D8->txtBuff[0]); - if (endi != 0) - { - endi--; - endi[gUnknown_203F3D8->txtBuff[0]] = EOS; - StringAppend(gUnknown_203F3D8->txtBuff[0], sPluralTxt); - } - } - } - DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_203F3D8->txtBuff[0]); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_203F3D8->txtBuff[1]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_AwesomeWonF701F700); - gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4); - AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX); - gUnknown_203F3D8->unk14 = MUS_LEVEL_UP; - gUnknown_203F3D8->unkD = 0; -} - -void sub_814A53C(u16 itemId) -{ - CopyItemName(itemId, gUnknown_203F3D8->txtBuff[0]); - DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_203F3D8->txtBuff[0]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_FilledStorageSpace2); - gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4); - AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX); - gUnknown_203F3D8->unk14 = 0; - gUnknown_203F3D8->unkD = 0; -} - -void sub_814A5B4(u16 itemId) -{ - CopyItemName(itemId, gUnknown_203F3D8->txtBuff[0]); - DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_203F3D8->txtBuff[0]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_CantHoldMore); - gUnknown_203F3D8->unk12 = sub_814A754(4, 9, 22, 2); - AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX); - gUnknown_203F3D8->unk14 = 0; - gUnknown_203F3D8->unkD = 0; -} - -bool32 sub_814A62C(void) -{ - switch (gUnknown_203F3D8->unkD) - { - case 0: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PutWindowTilemap(gUnknown_203F3D8->unk12); - DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14); - CopyBgTilemapBufferToVram(0); - gUnknown_203F3D8->unkD++; - } - break; - case 1: - if (IsDma3ManagerBusyWithBgCopy()) - break; - if (gUnknown_203F3D8->unk14 == 0) - { - gUnknown_203F3D8->unkD += 2; - return FALSE; - } - PlayFanfare(gUnknown_203F3D8->unk14); - gUnknown_203F3D8->unkD++; - case 2: - if (!IsFanfareTaskInactive()) - break; - gUnknown_203F3D8->unkD++; - case 3: - return FALSE; - } - - return TRUE; -} - -void sub_814A6CC(void) -{ - if (gUnknown_203F3D8->unk12 != 0xFF) - { - rbox_fill_rectangle(gUnknown_203F3D8->unk12); - CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_MAP); - gUnknown_203F3D8->unkD = 0; - } -} - -// Can't match this without the ugly GOTO, oh well. -bool32 sub_814A6FC(void) -{ - if (gUnknown_203F3D8->unk12 == 0xFF) - { - RET_FALSE: - return FALSE; - } - - if (gUnknown_203F3D8->unkD == 0) - { - if (!IsDma3ManagerBusyWithBgCopy()) - { - RemoveWindow(gUnknown_203F3D8->unk12); - gUnknown_203F3D8->unk12 = 0xFF; - gUnknown_203F3D8->unkD++; - goto RET_FALSE; - } - } - else if (gUnknown_203F3D8->unkD == 1) - goto RET_FALSE; - - return TRUE; -} - -s8 sub_814A744(void) -{ - return Menu_ProcessInputNoWrapClearOnChoose(); -} - -static u32 sub_814A754(u32 left, u32 top, u32 width, u32 height) -{ - u32 windowId; - struct WindowTemplate window; - - window.bg = 0; - window.tilemapLeft = left; - window.tilemapTop = top; - window.width = width; - window.height = height; - window.paletteNum = 0xF; - window.baseBlock = 0x43; - - windowId = AddWindow(&window); - FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); - return windowId; -} - -static void sub_814A7D0(u16 left, u16 top, u8 cursorPos) -{ - struct WindowTemplate window; - u8 a = cursorPos; - - window.bg = 0; - window.tilemapLeft = left; - window.tilemapTop = top; - window.width = 6; - window.height = 4; - window.paletteNum = 2; - window.baseBlock = 0x2B; - - CreateYesNoMenu(&window, 2, 0, 2, 0x00a, 0xD, a); -} - -static void sub_814A84C(void) -{ - u8 color[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; - - PutWindowTilemap(0); - PutWindowTilemap(1); - FillWindowPixelBuffer(0, PIXEL_FILL(0)); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - AddTextPrinterParameterized3(0, 0, 0, 2, color, 0, gText_SpacePoints2); - AddTextPrinterParameterized3(1, 0, 0, 2, color, 0, gText_SpaceTimes3); -} - -static const u8 gUnknown_846D953[] = {2, 2, 0, 0, 1, 1, 1, 0, 0, 2, 0, 0, 0}; - -static const struct CompressedSpriteSheet gUnknown_846D960 = {gUnknown_8479688, 0, 0x320}; -static const struct SpritePalette gUnknown_846D968 = {gUnknown_8479668, 0x320}; - -static const u16 gUnknown_846D970[] = {0x06, 0x08, 0x10, 0x08}; -static const u16 gUnknown_846D978[] = {0x06, 0x08, 0x0b, 0x06, 0x10, 0x08}; -static const u16 gUnknown_846D984[] = {0x02, 0x06, 0x06, 0x08, 0x10, 0x08, 0x14, 0x06}; -static const u16 gUnknown_846D994[] = {0x02, 0x06, 0x06, 0x08, 0x0b, 0x06, 0x10, 0x08, 0x14, 0x06}; - -static const u16 *const gUnknown_846D9A8[] = -{ - gUnknown_846D970, - gUnknown_846D978, - gUnknown_846D984, - gUnknown_846D994, -}; - -static const s16 gUnknown_846D9B8[] = {0x0058, 0x0098}; -static const s16 gUnknown_846D9BC[] = {0x0058, 0x0078, 0x0098}; -static const s16 gUnknown_846D9C2[] = {0x0038, 0x0058, 0x0098, 0x00b8}; -static const s16 gUnknown_846D9CA[] = {0x0038, 0x0058, 0x0078, 0x0098, 0x00b8}; - -static const s16 *const gUnknown_846D9D4[] = -{ - gUnknown_846D9B8, - gUnknown_846D9BC, - gUnknown_846D9C2, - gUnknown_846D9CA, -}; - -static void sub_814A8B8(void) -{ - int i, y, playersCount = sub_81499A4(); - const s16 *xCoords = gUnknown_846D9D4[playersCount - 2]; - - for (i = 0; i < playersCount; i++) - { - struct PokemonJump1_MonInfo *info = sub_81499C0(i); - - y = gMonFrontPicCoords[info->species].y_offset; - sub_814ADCC(gUnknown_203F3D8, info, *xCoords, y + 112, i); - sub_814B240(gUnknown_203F3D8, *xCoords, 112, i); - xCoords++; - } -} - -void sub_814A940(u32 id, s16 y) -{ - gUnknown_203F3D8->unk81A8[id]->y2 = y; -} - -void sub_814A95C(int id) -{ - sub_814B348(gUnknown_203F3D8, id); - ChangeBgY(2, (gUnknown_846D953[id] * 5) << 0xD, 0); -} - -int sub_814A98C(u8 flags) -{ - int i, count; - - for (i = 0, count = 0; i < 5; i++) - { - if (flags & 1) - { - sub_814AF0C(gUnknown_203F3D8, i); - count++; - } - flags >>= 1; - } - - sub_814ACCC(count - 2); - return count; -} - -static void sub_814A9C8(void) -{ - struct DigitObjUtilTemplate unkStruct; - struct DigitObjUtilTemplate *ptr = &unkStruct; // This temp variable is needed to match, don't ask me why. - - ptr->shape = SPRITE_SHAPE(8x8); - ptr->size = SPRITE_SIZE(8x8); - ptr->strConvMode = 0; - ptr->priority = 1; - ptr->oamCount = 5; - ptr->xDelta = 8; - ptr->x = 108; - ptr->y = 6; - ptr->spriteSheet.compressed = &gUnknown_846D960; - ptr->spritePal = &gUnknown_846D968; - - DigitObjUtil_Init(2); - DigitObjUtil_CreatePrinter(0, 0, ptr); - - unkStruct.oamCount = 4; - unkStruct.x = 30; - unkStruct.y = 6; - DigitObjUtil_CreatePrinter(1, 0, &unkStruct); -} - -void sub_814AA24(int arg0) -{ - DigitObjUtil_PrintNumOn(0, arg0); -} - -void sub_814AA34(u16 arg0) -{ - DigitObjUtil_PrintNumOn(1, arg0); -} - -void sub_814AA48(u8 multiplayerId) -{ - sub_814AFE8(gUnknown_203F3D8, multiplayerId); -} - -void sub_814AA60(u8 multiplayerId) -{ - sub_814B080(gUnknown_203F3D8, multiplayerId); -} - -int sub_814AA78(int multiplayerId) -{ - return sub_814B010(gUnknown_203F3D8, multiplayerId); -} - -void sub_814AA8C(void) -{ - sub_814B0A8(gUnknown_203F3D8); -} - -void sub_814AAA0(void) -{ - sub_814B134(gUnknown_203F3D8); -} - -void sub_814AAB4(int multiplayerId) -{ - sub_814B168(gUnknown_203F3D8, multiplayerId); -} - -int sub_814AAC8(void) -{ - return sub_814B190(gUnknown_203F3D8); -} - -static void sub_814AADC(void) -{ - struct WindowTemplate window; - int i, playersCount = sub_81499A4(); - const u16 *winCoords = gUnknown_846D9A8[playersCount - 2]; - - window.bg = 0; - window.width = 8; - window.height = 2; - window.paletteNum = 2; - window.baseBlock = 0x2B; - - for (i = 0; i < playersCount; i++) - { - window.tilemapLeft = winCoords[0]; - window.tilemapTop = winCoords[1]; - gUnknown_203F3D8->unk1C[i] = AddWindow(&window); - ClearWindowTilemap(gUnknown_203F3D8->unk1C[i]); - window.baseBlock += 0x10; - winCoords += 2; - } - - CopyBgTilemapBufferToVram(0); -} - -static void sub_814AB98(int multiplayerId, u8 clr1, u8 clr2, u8 clr3) -{ - u32 x; - u8 colors[3] = {clr1, clr2, clr3}; - - FillWindowPixelBuffer(gUnknown_203F3D8->unk1C[multiplayerId], PIXEL_FILL(0)); - x = 64 - GetStringWidth(0, sub_81499E0(multiplayerId), -1); - x /= 2; - AddTextPrinterParameterized3(gUnknown_203F3D8->unk1C[multiplayerId], 0, x, 2, colors, -1, sub_81499E0(multiplayerId)); - CopyWindowToVram(gUnknown_203F3D8->unk1C[multiplayerId], COPYWIN_GFX); -} - -static void sub_814AC30(bool32 arg0) -{ - int i, var, playersCount = sub_81499A4(); - - if (!arg0) - { - for (i = 0; i < playersCount; i++) - sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); - } - else - { - var = sub_81499B4(); - for (i = 0; i < playersCount; i++) - { - if (var != i) - sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); - else - sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED); - } - } -} - -static void sub_814AC94(void) -{ - int i, playersCount = sub_81499A4(); - - for (i = 0; i < playersCount; i++) - PutWindowTilemap(gUnknown_203F3D8->unk1C[i]); - CopyBgTilemapBufferToVram(0); -} - -static void sub_814ACCC(u8 arg0) -{ - gUnknown_203F3D8->unk18 = 0; - ChangeBgX(1, (arg0 / 2) << 16, 0); - ChangeBgY(1, (((arg0 % 2) << 8) - 40) << 8, 0); - ShowBg(1); - CreateTask(sub_814AD50, 4); -} - -static bool32 sub_814AD18(void) -{ - if (gUnknown_203F3D8->unk18 >= 32) - { - return FALSE; - } - else - { - ChangeBgY(1, 128, 1); - if (++gUnknown_203F3D8->unk18 >= 32) - HideBg(1); - return TRUE; - } -} - -static void sub_814AD50(u8 taskId) -{ - if (!sub_814AD18()) - DestroyTask(taskId); -} |