diff options
author | Phlosioneer <mattmdrr2@gmail.com> | 2019-04-07 01:56:36 -0400 |
---|---|---|
committer | Phlosioneer <mattmdrr2@gmail.com> | 2019-04-07 01:56:36 -0400 |
commit | d84d94e29a1424dd1d12ff821957bb6b1bc847d6 (patch) | |
tree | c5ba0778afca66a91f71815cd53fe9abef1bdac6 /src/learn_move.c | |
parent | ad2a97935e1c1f4362f0dffa58ef437d191bab4e (diff) | |
parent | c3cfd6065825ec8ddd5e1782998071518efaa322 (diff) |
Merge branch 'master' into pokenav-decomp-again
Diffstat (limited to 'src/learn_move.c')
-rw-r--r-- | src/learn_move.c | 833 |
1 files changed, 0 insertions, 833 deletions
diff --git a/src/learn_move.c b/src/learn_move.c deleted file mode 100644 index 879acff6d..000000000 --- a/src/learn_move.c +++ /dev/null @@ -1,833 +0,0 @@ -#include "global.h" -#include "main.h" -#include "battle.h" -#include "bg.h" -#include "contest_effect.h" -#include "data2.h" -#include "event_data.h" -#include "field_screen_effect.h" -#include "gpu_regs.h" -#include "learn_move.h" -#include "list_menu.h" -#include "alloc.h" -#include "menu.h" -#include "menu_helpers.h" -#include "overworld.h" -#include "palette.h" -#include "pokemon_summary_screen.h" -#include "pokenav.h" -#include "script.h" -#include "sound.h" -#include "sprite.h" -#include "string_util.h" -#include "strings.h" -#include "task.h" -#include "constants/rgb.h" -#include "constants/songs.h" - -static EWRAM_DATA struct -{ - u8 state; - u8 spriteIds[16]; /*0x001*/ - u16 movesToLearn[4]; /*0x012*/ - u8 filler1A[0x44 - 0x1A]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 moveSlot; /*0x045*/ - struct ListMenuItem menuItems[20]; /*0x048*/ - u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ - u8 numMenuChoices; /*0x110*/ - u8 numToShowAtOnce; /*0x111*/ - u8 listMenuTask; /*0x112*/ - u8 scrollArrowTaskId1; /*0x113*/ - u8 scrollArrowTaskId2; /*0x114*/ - u16 scrollOffset; /*0x116*/ -} *sLearnMoveStruct = {0}; - -static EWRAM_DATA struct { - u16 listOffset; - u16 listRow; - u8 showContestInfo; -} sLearnMoveStruct2 = {0}; - -const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); -const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); - -const struct OamData gUnknown_085CEB98 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct OamData gUnknown_085CEBA0 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct OamData gUnknown_085CEBA8 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct SpriteSheet gUnknown_085CEBB0 = -{ - .data = gUnknown_085CEA18, - .size = 0x180, - .tag = 5525 -}; - -const struct SpritePalette gUnknown_085CEBB8 = -{ - .data = gUnknown_085CE9F8, - .tag = 5526 -}; - -const struct ScrollArrowsTemplate gUnknown_085CEBC0 = -{ - .firstArrowType = 0, - .firstX = 27, - .firstY = 16, - .secondArrowType = 1, - .secondX = 117, - .secondY = 16, - .fullyUpThreshold = -1, - .fullyDownThreshold = -1, - .tileTag = 5325, - .palTag = 5325, - .palNum = 0, -}; - -const struct ScrollArrowsTemplate gUnknown_085CEBD0 = -{ - .firstArrowType = 2, - .firstX = 192, - .firstY = 8, - .secondArrowType = 3, - .secondX = 192, - .secondY = 104, - .fullyUpThreshold = 0, - .fullyDownThreshold = 0, - .tileTag = 5425, - .palTag = 5425, - .palNum = 0, -}; - -const union AnimCmd gUnknown_085CEBE0[] = -{ - ANIMCMD_FRAME(8, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd gUnknown_085CEBE8[] = -{ - ANIMCMD_FRAME(9, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd gUnknown_085CEBF0[] = -{ - ANIMCMD_FRAME(10, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd gUnknown_085CEBF8[] = -{ - ANIMCMD_FRAME(11, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd *const gUnknown_085CEC00[] = -{ - gUnknown_085CEBE0, - gUnknown_085CEBE8, - gUnknown_085CEBF0, - gUnknown_085CEBF8, -}; - -const struct SpriteTemplate gUnknown_085CEC10 = -{ - .tileTag = 5525, - .paletteTag = 5526, - .oam = &gUnknown_085CEB98, - .anims = gUnknown_085CEC00, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy -}; - -const struct BgTemplate gUnknown_085CEC28[] = -{ - { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 31, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, - }, - { - .bg = 1, - .charBaseIndex = 0, - .mapBaseIndex = 30, - .screenSize = 0, - .paletteMode = 0, - .priority = 1, - .baseTile = 0, - }, -}; - -static void LearnMoveMain(void); -static void CreateMenuItemsList(void); -static void CreateHearts(void); -static void CB2_Main(void); -static void Task_WaitForFadeOut(u8 taskId); -static void CB2_InitLearnMove(void); -static void CB2_InitLearnMoveReturnFromSelectMove(void); -static void InitBGs(void); -static void AddScrollArrows(void); -static void HandleInput(u8); -static void ShowTeachMoveText(u8); -static s32 GetCurrentItemId(void); -static void FreeListMenuResources(void); -static void RemoveScrollArrows(void); -static void HideSpritesAndPrintTeachText(bool8); - -static void VBlankCB_LearnMove(void) -{ - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); -} - -void TeachMoveTutorMove(void) -{ - ScriptContext2_Enable(); - CreateTask(Task_WaitForFadeOut, 0xA); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); -} - -static void Task_WaitForFadeOut(u8 taskId) -{ - if (!gPaletteFade.active) - { - SetMainCallback2(CB2_InitLearnMove); - gFieldCallback = sub_80AF168; - DestroyTask(taskId); - } -} - -static void CB2_InitLearnMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct)); - sLearnMoveStruct->partyMon = gSpecialVar_0x8004; - SetVBlankCallback(VBlankCB_LearnMove); - - InitBGs(); - sub_81D2824(0); - - sLearnMoveStruct2.listOffset = 0; - sLearnMoveStruct2.listRow = 0; - sLearnMoveStruct2.showContestInfo = FALSE; - - CreateMenuItemsList(); - - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); - CreateHearts(); - - sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_Main); -} - -static void CB2_InitLearnMoveReturnFromSelectMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct)); - sLearnMoveStruct->state = 28; - sLearnMoveStruct->partyMon = gSpecialVar_0x8004; - sLearnMoveStruct->moveSlot = gSpecialVar_0x8005; - SetVBlankCallback(VBlankCB_LearnMove); - - InitBGs(); - sub_81D2824(sLearnMoveStruct2.showContestInfo); - CreateMenuItemsList(); - - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); - CreateHearts(); - - sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_Main); -} - -static void InitBGs(void) -{ - ResetVramOamAndBgCntRegs(); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085CEC28, 2); - ResetAllBgsCoordinates(); - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | - DISPCNT_OBJ_1D_MAP | - DISPCNT_OBJ_ON); - ShowBg(0); - ShowBg(1); - SetGpuReg(REG_OFFSET_BLDCNT, 0); -} - -static void CB2_Main(void) -{ - LearnMoveMain(); - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); - UpdatePaletteFade(); -} - -static void sub_816084C(const u8 *src) -{ - StringExpandPlaceholders(gStringVar4, src); - sub_81D2BF4(gStringVar4); -} - -static void LearnMoveMain(void) -{ - switch (sLearnMoveStruct->state) - { - case 0: - sLearnMoveStruct->state++; - HideSpritesAndPrintTeachText(FALSE); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case 1: - if (!gPaletteFade.active) - { - sLearnMoveStruct->state = 4; - } - break; - case 2: - sLearnMoveStruct->state++; - break; - case 3: - HideSpritesAndPrintTeachText(FALSE); - sLearnMoveStruct->state++; - AddScrollArrows(); - break; - case 4: - HandleInput(FALSE); - return; - case 5: - ShowTeachMoveText(FALSE); - sLearnMoveStruct->state++; - AddScrollArrows(); - break; - case 6: - HandleInput(TRUE); - break; - case 8: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state++; - } - break; - case 9: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - if (GiveMoveToMon(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId()) != 0xFFFF) - { - sub_816084C(gText_PkmnLearnedMove4); - gSpecialVar_0x8004 = 1; - sLearnMoveStruct->state = 31; - } - else - { - sLearnMoveStruct->state = 16; - } - } - else if (selection == -1 || selection == 1) - { - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - } - } - break; - case 12: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state++; - } - break; - case 13: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - gSpecialVar_0x8004 = selection; - sLearnMoveStruct->state = 14; - } - else if (selection == -1 || selection == 1) - { - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - } - } - break; - case 16: - sub_816084C(gText_PkmnTryingToLearnMove); - sLearnMoveStruct->state++; - break; - case 17: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state = 18; - } - break; - case 18: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - sub_816084C(gText_WhichMoveToForget2); - sLearnMoveStruct->state = 19; - } - else if (var == -1 || var == 1) - { - sLearnMoveStruct->state = 24; - } - } - break; - case 24: - StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]); - sub_816084C(gText_StopTryingToTeachMove); - sLearnMoveStruct->state++; - break; - case 25: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state++; - } - break; - case 26: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - sLearnMoveStruct->state = 27; - } - else if (var == -1 || var == 1) - { - // What's the point? It gets set to 16, anyway. - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - sLearnMoveStruct->state = 16; - } - } - break; - case 27: - if (!sub_81D2C3C()) - { - FillWindowPixelBuffer(3, PIXEL_FILL(1)); - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - } - break; - case 19: - if (!sub_81D2C3C()) - { - sLearnMoveStruct->state = 20; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - } - break; - case 20: - if (!gPaletteFade.active) - { - ShowSelectMovePokemonSummaryScreen(gPlayerParty, sLearnMoveStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentItemId()); - FreeListMenuResources(); - } - break; - case 21: - if (!sub_81D2C3C()) - { - sLearnMoveStruct->state = 14; - } - break; - case 22: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case 14: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sLearnMoveStruct->state++; - break; - case 15: - if (!gPaletteFade.active) - { - FreeListMenuResources(); - SetMainCallback2(CB2_ReturnToField); - } - break; - case 28: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - sLearnMoveStruct->state++; - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - HideSpritesAndPrintTeachText(TRUE); - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - ShowTeachMoveText(TRUE); - } - RemoveScrollArrows(); - CopyWindowToVram(3, 2); - break; - case 29: - if (!gPaletteFade.active) - { - if (sLearnMoveStruct->moveSlot == MAX_MON_MOVES) - { - sLearnMoveStruct->state = 24; - } - else - { - u16 moveId = GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_MOVE1 + sLearnMoveStruct->moveSlot); - - StringCopy(gStringVar3, gMoveNames[moveId]); - RemoveMonPPBonus(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->moveSlot); - SetMonMoveSlot(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId(), sLearnMoveStruct->moveSlot); - StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]); - sub_816084C(gText_12AndPoof); - sLearnMoveStruct->state = 30; - gSpecialVar_0x8004 = 1; - } - } - break; - case 30: - if (!sub_81D2C3C()) - { - sub_816084C(gText_PkmnForgotMoveAndLearnedNew); - sLearnMoveStruct->state = 31; - PlayFanfare(MUS_FANFA1); - } - break; - case 31: - if (!sub_81D2C3C()) - { - PlayFanfare(MUS_FANFA1); - sLearnMoveStruct->state = 32; - } - break; - case 32: - if (IsFanfareTaskInactive()) - { - sLearnMoveStruct->state = 33; - } - break; - case 33: - if (gMain.newKeys & A_BUTTON) - { - PlaySE(SE_SELECT); - sLearnMoveStruct->state = 14; - } - break; - } -} - -static void FreeListMenuResources(void) -{ - RemoveScrollArrows(); - DestroyListMenuTask(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); - FreeAllWindowBuffers(); - FREE_AND_SET_NULL(sLearnMoveStruct); - ResetSpriteData(); - FreeAllSpritePalettes(); -} - -static void HideSpritesAndPrintTeachText(bool8 a) -{ - s32 i; - - for (i = 0; i < 16; i++) - { - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; - } - - if (!a) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, PIXEL_FILL(1)); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void HandleInput(bool8 showContest) -{ - s32 itemId = ListMenu_ProcessInput(sLearnMoveStruct->listMenuTask); - ListMenuGetScrollAndRow(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); - - switch (itemId) - { - case LIST_NOTHING_CHOSEN: - if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) - { - break; - } - - PlaySE(SE_SELECT); - - if (showContest == FALSE) - { - PutWindowTilemap(1); - sLearnMoveStruct->state = 5; - sLearnMoveStruct2.showContestInfo = TRUE; - } - else - { - PutWindowTilemap(0); - sLearnMoveStruct->state = 3; - sLearnMoveStruct2.showContestInfo = FALSE; - } - - schedule_bg_copy_tilemap_to_vram(1); - ShowHideHearts(GetCurrentItemId()); - break; - case LIST_B_PRESSED: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sLearnMoveStruct->state = 12; - StringExpandPlaceholders(gStringVar4, gText_GiveUpTeachingNewMove); - sub_81D2BF4(gStringVar4); - break; - default: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sLearnMoveStruct->state = 8; - StringCopy(gStringVar2, gMoveNames[itemId]); - StringExpandPlaceholders(gStringVar4, gText_TeachX); - sub_81D2BF4(gStringVar4); - break; - } -} - -static s32 GetCurrentItemId(void) -{ - return sLearnMoveStruct->menuItems[sLearnMoveStruct2.listRow + sLearnMoveStruct2.listOffset].id; -} - -static void ShowTeachMoveText(bool8 showContest) -{ - if (showContest == FALSE) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, PIXEL_FILL(1)); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void CreateHearts(void) -{ - int i; - - sLearnMoveStruct->scrollArrowTaskId2 = -1; - sLearnMoveStruct->scrollArrowTaskId1 = -1; - AddScrollArrows(); - - for (i = 0; i < 8; i++) - { - sLearnMoveStruct->spriteIds[i] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); - } - - for (i = 0; i < 8; i++) - { - sLearnMoveStruct->spriteIds[i + 8] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2); - } - - for (i = 0; i < 16; i++) - { - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; - } -} - -static void AddScrollArrows(void) -{ - if (sLearnMoveStruct->scrollArrowTaskId2 == 0xFF) - { - sLearnMoveStruct->scrollArrowTaskId2 = AddScrollIndicatorArrowPair(&gUnknown_085CEBC0, &sLearnMoveStruct->scrollOffset); - } - - if (sLearnMoveStruct->scrollArrowTaskId1 == 0xFF) - { - gTempScrollArrowTemplate = gUnknown_085CEBD0; - gTempScrollArrowTemplate.fullyDownThreshold = sLearnMoveStruct->numMenuChoices - sLearnMoveStruct->numToShowAtOnce; - sLearnMoveStruct->scrollArrowTaskId1 = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sLearnMoveStruct2.listOffset); - } -} - -static void RemoveScrollArrows(void) -{ - if (sLearnMoveStruct->scrollArrowTaskId2 != 0xFF) - { - RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId2); - sLearnMoveStruct->scrollArrowTaskId2 = 0xFF; - } - - if (sLearnMoveStruct->scrollArrowTaskId1 != 0xFF) - { - RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId1); - sLearnMoveStruct->scrollArrowTaskId1 = 0xFF; - } -} - -static void CreateMenuItemsList(void) -{ - s32 i; - u8 nickname[POKEMON_NAME_LENGTH + 1]; - - sLearnMoveStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->movesToLearn); - - for (i = 0; i < sLearnMoveStruct->numMenuChoices; i++) - { - sLearnMoveStruct->menuItems[i].name = gMoveNames[sLearnMoveStruct->movesToLearn[i]]; - sLearnMoveStruct->menuItems[i].id = sLearnMoveStruct->movesToLearn[i]; - } - - GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_NICKNAME, nickname); - StringCopy10(gStringVar1, nickname); - sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].name = gText_Cancel; - sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].id = LIST_B_PRESSED; - sLearnMoveStruct->numMenuChoices++; - sLearnMoveStruct->numToShowAtOnce = sub_81D28C8(sLearnMoveStruct->menuItems, sLearnMoveStruct->numMenuChoices); -} - -void ShowHideHearts(s32 item) -{ - u16 numHearts; - u16 i; - - if (!sLearnMoveStruct2.showContestInfo || item == LIST_B_PRESSED) - { - for (i = 0; i < 16; i++) - { - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; - } - } - else - { - numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 1); - } - else - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 0); - } - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = FALSE; - } - - numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 3); - } - else - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2); - } - gSprites[sLearnMoveStruct->spriteIds[i + 8]].invisible = FALSE; - } - } -} |