summaryrefslogtreecommitdiff
path: root/src/party_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/party_menu.c')
-rw-r--r--src/party_menu.c1505
1 files changed, 0 insertions, 1505 deletions
diff --git a/src/party_menu.c b/src/party_menu.c
deleted file mode 100644
index 1fcd2cdda..000000000
--- a/src/party_menu.c
+++ /dev/null
@@ -1,1505 +0,0 @@
-#include "global.h"
-#include "party_menu.h"
-#include "battle.h"
-#include "battle_interface.h"
-#include "battle_party_menu.h"
-#include "data2.h"
-#include "event_data.h"
-#include "item.h"
-#include "item_use.h"
-#include "mail_data.h"
-#include "main.h"
-#include "menu.h"
-#include "palette.h"
-#include "pokemon.h"
-#include "pokemon_item_effect.h"
-#include "pokemon_menu.h"
-#include "pokemon_summary_screen.h"
-#include "rom_8077ABC.h"
-#include "rom_8094928.h"
-#include "songs.h"
-#include "sound.h"
-#include "species.h"
-#include "sprite.h"
-#include "string_util.h"
-#include "strings.h"
-#include "task.h"
-#include "sprite.h"
-#include "palette.h"
-#include "event_data.h"
-#include "main.h"
-#include "item.h"
-#include "battle_interface.h"
-#include "species.h"
-#include "party_menu.h"
-
-#define DATA_COUNT (6)
-
-struct Unk2001000
-{
- u8 unk0;
- u8 unk1;
- u8 unk2;
-};
-
-struct Unk201C000
-{
- /*0x00*/ struct Pokemon *pokemon;
- /*0x04*/ u8 unk4;
- /*0x05*/ u8 unk5;
- /*0x06*/ u16 unk6;
- /*0x08*/ u16 unk8;
- /*0x0A*/ u8 pad_0A[2];
- /*0x0C*/ s32 unkC;
- /*0x10*/ TaskFunc unk10;
- /*0x14*/ TaskFunc unk14;
-};
-
-struct Unk201F000
-{
- u8 filler0[0xE00];
- u8 unkE00[3]; // not sure if this is an array or struct, or how big it is
-};
-
-struct UnknownStruct5
-{
- u8 unk0;
- u8 unk1;
- u16 *unk4;
-};
-
-extern u8 ewram[];
-#define ewram01000 (*(struct Unk2001000 *)(ewram + 0x01000))
-#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000))
-#define ewram1F000 (*(struct Unk201F000 *)(ewram + 0x1F000))
-
-extern u8 gUnknown_0202E8F4;
-extern u8 gUnknown_0202E8F6;
-extern u16 gUnknown_0202E8F8;
-extern u8 gUnknown_0202E8FA;
-extern u8 gLastFieldPokeMenuOpened;
-extern u8 gPlayerPartyCount;
-extern s32 gBattleMoveDamage;
-
-//extern const u16 gUnknown_083769A8[][6];
-//extern const u8 gUnknown_083769A8[][12];
-extern void *const gUnknown_08376858[][6];
-extern const u8 gUnknown_083769A8[];
-extern const u8 gUnknown_08376D1C[DATA_COUNT];
-extern const u16 gUnknown_08376504[];
-extern void (*const gUnknown_08376B54[])(u8);
-extern const u8 *const gUnknown_08376D04[DATA_COUNT];
-extern const struct UnknownStruct5 gUnknown_08376BB4[][6];
-
-static void sub_806E884(u8 taskId);
-
-/*
-void sub_806AEDC(void)
-{
- const struct UnknownStruct5 *r5;
- s32 i;
-
- AnimateSprites();
- BuildOamBuffer();
- r5 = gUnknown_08376BB4[gUnknown_0202E8FA];
- for (i = 0; i < 6; i++)
- sub_800142C(r5[i].unk0 * 8, r5[i].unk1 * 8, r5[i].unk4, 0, (i << 5) | 0x200);
- RunTasks();
- UpdatePaletteFade();
-}
-*/
-
-#if ENGLISH
-#define WINDOW_LEFT (3)
-#define WINDOW_RIGHT (26)
-#elif GERMAN
-#define WINDOW_LEFT (0)
-#define WINDOW_RIGHT (29)
-#endif
-
-u8 sub_806E834(const u8 *message, u8 arg1)
-{
- u8 taskId;
-
- gUnknown_0202E8F6 = 1;
-
- MenuDrawTextWindow(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
- MenuPrintMessage(message, WINDOW_LEFT + 1, 15);
-
- taskId = CreateTask(sub_806E884, 1);
- gTasks[taskId].data[0] = arg1;
-
- return taskId;
-}
-
-static void sub_806E884(u8 taskId)
-{
- if (MenuUpdateWindowText())
- {
- gUnknown_0202E8F6 = 0;
- if (gTasks[taskId].data[0] == 0)
- MenuZeroFillWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
- DestroyTask(taskId);
- }
-}
-
-void sub_806E8D0(u8 taskId, u16 b, TaskFunc c)
-{
- ewram1C000.unk10 = c;
- ewram1C000.unk4 = taskId;
- ewram1C000.unk5 = sub_806CA38(taskId);
- ewram1C000.unk6 = b;
- ewram1C000.pokemon = &gPlayerParty[ewram1C000.unk5];
-}
-
-bool8 PartyMenuUpdateMonHeldItem(struct Pokemon *pkmn, u16 item)
-{
- u8 itemData[2];
-
- if (ItemIsMail(item) == TRUE)
- {
- if (GiveMailToMon(pkmn, item) == 0xFF)
- return TRUE;
- gUnknown_0202E8F4 = 2;
- }
- else
- {
- gUnknown_0202E8F4 = 1;
- }
-
- itemData[0] = item;
- itemData[1] = item >> 8;
- SetMonData(pkmn, MON_DATA_HELD_ITEM, itemData);
- return FALSE;
-}
-
-void PartyMenuTryGiveMonHeldItem(u8 taskId, u16 newItem, TaskFunc c)
-{
- u16 currentItem;
-
- gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, newItem, c);
- currentItem = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM);
- gUnknown_0202E8F4 = 0;
- gUnknown_0202E8F8 = 0;
- if (currentItem != 0)
- {
- if (ItemIsMail(currentItem) == TRUE)
- {
- sub_806E834(gOtherText_MailMustBeRemoved, 1);
- CreateTask(party_menu_link_mon_held_item_object, 5);
- }
- else
- {
- GetMonNickname(ewram1C000.pokemon, gStringVar1);
- CopyItemName(currentItem, gStringVar2);
- StringExpandPlaceholders(gStringVar4, gOtherText_AlreadyHolding);
- sub_806E834(gStringVar4, 1);
- CreateTask(Task_ConfirmGiveHeldItem, 5);
- if (ItemIsMail(newItem) == TRUE)
- gUnknown_0202E8F8 = currentItem;
- }
- }
- else
- {
- PartyMenuUpdateMonHeldItem(ewram1C000.pokemon, newItem);
- RemoveBagItem(newItem, 1);
- if (ItemIsMail(newItem))
- {
- gTasks[taskId].func = c;
- }
- else
- {
- DisplayGiveHeldItemMessage(ewram1C000.unk5, newItem, 1);
- CreateTask(party_menu_link_mon_held_item_object, 5);
- }
- }
-}
-
-void party_menu_link_mon_held_item_object(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- SetHeldItemIconVisibility(ewram1C000.unk4, ewram1C000.unk5);
- gTasks[ewram1C000.unk4].func = ewram1C000.unk10;
- DestroyTask(taskId);
- }
-}
-
-void PartyMenuTryGiveMonHeldItem_806EACC(u8 taskId)
-{
- s8 selection = ProcessMenuInputNoWrap_();
-
- if (selection == 0)
- {
- u16 currentItem;
-
- MenuZeroFillWindowRect(23, 8, 29, 13);
- currentItem = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM);
- RemoveBagItem(ewram1C000.unk6, 1);
- if (AddBagItem(currentItem, 1) == TRUE)
- {
- PartyMenuUpdateMonHeldItem(ewram1C000.pokemon, ewram1C000.unk6);
- if (ItemIsMail(ewram1C000.unk6))
- {
- DisplayTakeHeldItemMessage(ewram1C000.unk5, currentItem, 1);
- }
- else
- {
- CopyItemName(ewram1C000.unk6, gStringVar1);
- StringExpandPlaceholders(gStringVar4, gOtherText_TakenAndReplaced);
- sub_806E834(gStringVar4, 1);
- }
- }
- else
- {
- sub_806E834(gOtherText_BagFullCannotRemoveItem, 0);
- AddBagItem(ewram1C000.unk6, 1);
- }
- }
- else
- {
- if (selection != 1 && selection != -1)
- return;
- if (selection == -1)
- PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
- }
- gTasks[taskId].func = party_menu_link_mon_held_item_object;
-}
-
-void Task_ConfirmGiveHeldItem(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- DisplayYesNoMenu(23, 8, 1);
- gTasks[taskId].func = PartyMenuTryGiveMonHeldItem_806EACC;
- }
-}
-
-void DisplayGiveHeldItemMessage(u8 a, u16 b, u8 c)
-{
- GetMonNickname(&gPlayerParty[a], gStringVar1);
- CopyItemName(b, gStringVar2);
- StringExpandPlaceholders(gStringVar4, gOtherText_WasGivenToHold);
- sub_806E834(gStringVar4, c);
-}
-
-
-// Not sure about this one for now.
-/*
-void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func)
-{
- u16 currentItem;
- struct MailStruct *r4;
-
- gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, 0, func);
- currentItem = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM);
- gUnknown_0202E8F4 = 0;
- r4 = &gSaveBlock1.mail[ewram1F000.unkE00[0] + ewram1F000.unkE00[2]];
- if (currentItem != 0)
- {
- sub_806E834(gOtherText_PokeHoldingItemCantMail, 1);
- CreateTask(party_menu_link_mon_held_item_object, 5);
- }
- else
- {
- GiveMailToMon2(ewram1C000.pokemon, r4);
- ClearMailStruct(r4);
- sub_806E834(gOtherText_MailTransferredMailbox, 1);
- CreateTask(party_menu_link_mon_held_item_object, 5);
- }
-}
-*/
-__attribute__((naked))
-void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func)
-{
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- adds r2, r1, 0\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- ldr r3, _0806ECA0 @ =gTasks\n\
- lsls r1, r0, 2\n\
- adds r1, r0\n\
- lsls r1, 3\n\
- adds r1, r3\n\
- ldr r3, _0806ECA4 @ =TaskDummy\n\
- str r3, [r1]\n\
- movs r1, 0\n\
- bl sub_806E8D0\n\
- ldr r5, _0806ECA8 @ =0x0201c000\n\
- ldr r0, [r5]\n\
- movs r1, 0xC\n\
- bl GetMonData\n\
- lsls r0, 16\n\
- ldr r2, _0806ECAC @ =gUnknown_0202E8F4\n\
- movs r1, 0\n\
- strb r1, [r2]\n\
- movs r1, 0xF8\n\
- lsls r1, 6\n\
- adds r2, r5, r1\n\
- ldrb r1, [r2]\n\
- adds r1, 0x6\n\
- ldrb r2, [r2, 0x2]\n\
- adds r1, r2\n\
- lsls r2, r1, 3\n\
- adds r2, r1\n\
- lsls r2, 2\n\
- ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C\n\
- adds r4, r2, r1\n\
- cmp r0, 0\n\
- beq _0806ECBC\n\
- ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail\n\
- movs r1, 0x1\n\
- bl sub_806E834\n\
- ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object\n\
- movs r1, 0x5\n\
- bl CreateTask\n\
- b _0806ECDA\n\
- .align 2, 0\n\
-_0806ECA0: .4byte gTasks\n\
-_0806ECA4: .4byte TaskDummy\n\
-_0806ECA8: .4byte 0x0201c000\n\
-_0806ECAC: .4byte gUnknown_0202E8F4\n\
-_0806ECB0: .4byte gSaveBlock1 + 0x2B4C\n\
-_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail\n\
-_0806ECB8: .4byte party_menu_link_mon_held_item_object\n\
-_0806ECBC:\n\
- ldr r0, [r5]\n\
- adds r1, r4, 0\n\
- bl GiveMailToMon2\n\
- adds r0, r4, 0\n\
- bl ClearMailStruct\n\
- ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox\n\
- movs r1, 0x1\n\
- bl sub_806E834\n\
- ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object\n\
- movs r1, 0x5\n\
- bl CreateTask\n\
-_0806ECDA:\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0806ECE0: .4byte gOtherText_MailTransferredMailbox\n\
-_0806ECE4: .4byte party_menu_link_mon_held_item_object\n\
- .syntax divided\n");
-}
-
-void PartyMenuTryGiveMonHeldItem_806ECE8(u8 taskId, TaskFunc func)
-{
- u16 currentItem;
-
- gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, 0, func);
- currentItem = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM);
- if (currentItem == 0)
- {
- StringExpandPlaceholders(gStringVar4, gOtherText_NotHoldingAnything);
- sub_806E834(gStringVar4, 0);
- CreateTask(party_menu_link_mon_held_item_object, 5);
- }
- else
- {
- u8 itemData[2];
-
- itemData[0] = 0;
- itemData[1] = 0;
- if (AddBagItem(currentItem, 1) == TRUE)
- {
- if (ItemIsMail(currentItem) == TRUE)
- TakeMailFromMon(ewram1C000.pokemon);
- DisplayTakeHeldItemMessage(ewram1C000.unk5, currentItem, 0);
- SetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM, itemData);
- }
- else
- {
- sub_806E834(gOtherText_BagFullCannotRemoveItem, 0);
- }
- CreateTask(party_menu_link_mon_held_item_object, 5);
- }
-}
-
-void DisplayTakeHeldItemMessage(u8 a, u16 b, u8 c)
-{
- GetMonNickname(&gPlayerParty[a], gStringVar1);
- CopyItemName(b, gStringVar2);
- StringExpandPlaceholders(gStringVar4, gOtherText_ReceivedTheThingFrom);
- sub_806E834(gStringVar4, c);
-}
-
-void DoTakeMail(u8 taskId, TaskFunc func)
-{
- gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, 0, func);
- ewram1C000.unk6 = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM);
- sub_806E834(gOtherText_SendRemovedMailPrompt, 1);
- CreateTask(Task_ConfirmTakeHeldMail, 5);
-}
-
-void Task_LoseMailMessage(u8 taskId)
-{
- s8 selection = ProcessMenuInputNoWrap_();
-
- if (selection == 0)
- {
- if (AddBagItem(ewram1C000.unk6, 1) == TRUE)
- {
- TakeMailFromMon(ewram1C000.pokemon);
- sub_806E834(gOtherText_MailTaken, 0);
- }
- else
- {
- sub_806E834(gOtherText_BagFullCannotRemoveItem, 0);
- }
- MenuZeroFillWindowRect(23, 8, 29, 13);
- gTasks[taskId].func = party_menu_link_mon_held_item_object;
- }
- else
- {
- if (selection != 1 && selection != -1)
- return;
- if (selection == -1)
- PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
- MenuZeroFillWindowRect(0, 14, 29, 19);
- gTasks[taskId].func = party_menu_link_mon_held_item_object;
- }
-}
-
-void Task_ConfirmLoseMailMessage(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- DisplayYesNoMenu(23, 8, 1);
- gTasks[taskId].func = Task_LoseMailMessage;
- }
-}
-
-void Task_TakeHeldMail(u8 taskId)
-{
- s8 selection = ProcessMenuInputNoWrap_();
-
- if (selection == 0)
- {
- MenuZeroFillWindowRect(23, 8, 29, 13);
- if (TakeMailFromMon2(ewram1C000.pokemon) != 0xFF)
- sub_806E834(gOtherText_MailWasSent, 0);
- else
- sub_806E834(gOtherText_MailboxIsFull, 0);
- gTasks[taskId].func = party_menu_link_mon_held_item_object;
- }
- else
- {
- if (selection != 1 && selection != -1)
- return;
- if (selection == -1)
- PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
- sub_806E834(gOtherText_MailRemovedMessageLost, 1);
- gTasks[taskId].func = Task_ConfirmLoseMailMessage;
- }
-}
-
-void Task_ConfirmTakeHeldMail(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- DisplayYesNoMenu(23, 8, 1);
- gTasks[taskId].func = Task_TakeHeldMail;
- }
-}
-
-u16 ItemIdToBattleMoveId(u16 item)
-{
- u16 moveId = item - 289;
-
- return gUnknown_08376504[moveId];
-}
-
-bool8 pokemon_has_move(struct Pokemon *pkmn, u16 move)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- {
- if (GetMonData(pkmn, MON_DATA_MOVE1 + i) == move)
- return TRUE;
- }
- return FALSE;
-}
-
-void TeachMonTMMove(u8 taskId, u16 move, TaskFunc func)
-{
- PlaySE(SE_SELECT);
- gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, move, func);
- CreateTask(Task_TeamMonTMMove, 5);
-}
-
-void Task_TeamMonTMMove(u8 taskId)
-{
- GetMonNickname(ewram1C000.pokemon, gStringVar1);
- ewram1C000.unk8 = ItemIdToBattleMoveId(ewram1C000.unk6);
- StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
- ewram1B000.unk282 = 0;
- if (pokemon_has_move(ewram1C000.pokemon, ewram1C000.unk8))
- {
- StringExpandPlaceholders(gStringVar4, gOtherText_AlreadyKnows);
- sub_806E834(gStringVar4, 1);
- gTasks[taskId].func = party_menu_link_mon_held_item_object;
- }
- else
- {
- if (!CanMonLearnTMHM(ewram1C000.pokemon, ewram1C000.unk6 - 33))
- {
- StringExpandPlaceholders(gStringVar4, gOtherText_NotCompatible);
- sub_806E834(gStringVar4, 1);
- gTasks[taskId].func = party_menu_link_mon_held_item_object;
- }
- else
- {
- if (GiveMoveToMon(ewram1C000.pokemon, ewram1C000.unk8) != 0xFFFF)
- {
- Task_TeamMonTMMove2(taskId);
- }
- else
- {
- StringExpandPlaceholders(gStringVar4, gOtherText_WantsToLearn);
- sub_806E834(gStringVar4, 1);
- gTasks[taskId].func = sub_806F358;
- }
- }
- }
-}
-
-void Task_TeamMonTMMove2(u8 taskId)
-{
- StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
- StringExpandPlaceholders(gStringVar4, gOtherText_LearnedMove);
- sub_806E834(gStringVar4, 1);
- AdjustFriendship(ewram1C000.pokemon, 4);
- if (ewram1B000.unk282 == 0 && ewram1C000.unk6 <= 0x152)
- RemoveBagItem(ewram1C000.unk6, 1);
- gTasks[taskId].func = Task_TeamMonTMMove3;
-}
-
-void Task_TeamMonTMMove3(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- PlayFanfare(BGM_FANFA1);
- gTasks[taskId].func = Task_TeamMonTMMove4;
- }
-}
-
-void Task_TeamMonTMMove4(u8 taskId)
-{
- if (IsFanfareTaskInactive())
- {
- if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
- {
- SetHeldItemIconVisibility(ewram1C000.unk4, ewram1C000.unk5);
- if (ewram1B000.unk282 == 1)
- {
- sub_8070C54(taskId);
- }
- else
- {
- gTasks[ewram1C000.unk4].func = ewram1C000.unk10;
- DestroyTask(taskId);
- }
- }
- }
-}
-
-void sub_806F2FC(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- SetHeldItemIconVisibility(ewram1C000.unk4, ewram1C000.unk5);
- if (ewram1B000.unk282 == 1)
- {
- sub_8070C54(taskId);
- }
- else
- {
- gTasks[ewram1C000.unk4].func = ewram1C000.unk10;
- DestroyTask(taskId);
- }
- }
-}
-
-void sub_806F358(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- DisplayYesNoMenu(23, 8, 1);
- gTasks[taskId].func = sub_806F390;
- }
-}
-
-void sub_806F390(u8 taskId)
-{
- s8 selection = ProcessMenuInputNoWrap_();
-
- if (selection == 0)
- {
- MenuZeroFillWindowRect(23, 8, 29, 13);
- sub_806E834(gOtherText_WhichMoveToForget2, 1);
- gTasks[taskId].func = sub_806F44C;
- }
- else
- {
- if (selection != 1 && selection != -1)
- return;
- if (selection == -1)
- PlaySE(SE_SELECT);
- StopTryingToTeachMove_806F614(taskId);
- }
-}
-
-void sub_806F3FC(u8 taskId)
-{
- if (!gPaletteFade.active)
- {
- sub_809D9F0(gPlayerParty, ewram1C000.unk5, gPlayerPartyCount - 1, sub_808B564, ewram1C000.unk8);
- DestroyTask(taskId);
- }
-}
-
-void sub_806F44C(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- gTasks[taskId].func = sub_806F3FC;
- }
-}
-
-void TaughtMove(u8 taskId)
-{
- if (!gPaletteFade.active)
- {
- u8 moveIndex;
- u16 r4;
-
- gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, gScriptItemId, sub_808B508);
- moveIndex = sub_809FA30();
- r4 = GetMonData(ewram1C000.pokemon, MON_DATA_MOVE1 + moveIndex);
- GetMonNickname(ewram1C000.pokemon, gStringVar1);
- StringCopy(gStringVar2, gMoveNames[r4]);
- StringExpandPlaceholders(gStringVar4, gOtherText_ForgetMove123_2);
- sub_806E834(gStringVar4, 1);
- CreateTask(TMMoveUpdateMoveSlot, 5);
- }
-}
-
-void TMMoveUpdateMoveSlot(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- RemoveMonPPBonus(ewram1C000.pokemon, sub_809FA30());
- SetMonMoveSlot(ewram1C000.pokemon, ewram1C000.unk8, sub_809FA30());
- Task_TeamMonTMMove2(taskId);
- }
-}
-
-void StopTryingToTeachMove_806F588(u8 taskId)
-{
- if (!gPaletteFade.active)
- {
- gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, gScriptItemId, sub_808B508);
- StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
- StringExpandPlaceholders(gStringVar4, gOtherText_StopTryingTo);
- sub_806E834(gStringVar4, 1);
- CreateTask(StopTryingToTeachMove_806F67C, 5);
- }
-}
-
-void StopTryingToTeachMove_806F614(u8 taskId)
-{
- MenuZeroFillWindowRect(23, 8, 29, 13);
- StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
- StringExpandPlaceholders(gStringVar4, gOtherText_StopTryingTo);
- sub_806E834(gStringVar4, 1);
- gTasks[taskId].func = StopTryingToTeachMove_806F67C;
-}
-
-void StopTryingToTeachMove_806F67C(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- DisplayYesNoMenu(23, 8, 1);
- gTasks[taskId].func = StopTryingToTeachMove_806F6B4;
- }
-}
-
-void StopTryingToTeachMove_806F6B4(u8 taskId)
-{
- s8 selection = ProcessMenuInputNoWrap_();
-
- if (selection == 0)
- {
- MenuZeroFillWindowRect(23, 8, 29, 13);
- GetMonNickname(ewram1C000.pokemon, gStringVar1);
- StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
- StringExpandPlaceholders(gStringVar4, gOtherText_DidNotLearnMove2);
- sub_806E834(gStringVar4, 1);
- gTasks[taskId].func = sub_806F2FC;
- }
- else
- {
- if (selection != 1 && selection != -1)
- return;
- if (selection == -1)
- PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
- GetMonNickname(ewram1C000.pokemon, gStringVar1);
- StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
- StringExpandPlaceholders(gStringVar4, gOtherText_WantsToLearn);
- sub_806E834(gStringVar4, 1);
- gTasks[taskId].func = sub_806F358;
- }
-}
-
-bool8 IsHMMove(u16 move)
-{
- u8 i;
-
- for (i = 0; i < 8; i++)
- {
- if (gUnknown_08376504[50 + i] == move)
- return TRUE;
- }
- return FALSE;
-}
-
-s16 sub_806F7E8(u8 taskId, struct BattleInterfaceStruct1 *b, s8 c)
-{
- s16 *taskData;
- u8 hpBarLevel;
- void *vramPtr;
-
- taskData = gTasks[taskId].data;
-
- b->unk0 = taskData[10];
- b->unk4 = taskData[11];
- b->unk8 = taskData[12] * c;
- b->unk10 = 0x100;
- hpBarLevel = GetHPBarLevel(ewram1B000.unk282, b->unk0);
- if (hpBarLevel > 2)
- b->unkC_0 = 4;
- if (hpBarLevel == 2)
- b->unkC_0 = 5;
- if (hpBarLevel < 2)
- b->unkC_0 = 6;
- vramPtr = gUnknown_08376858[IsDoubleBattle()][ewram1C000.unk5];
- return sub_80460C8(b, &ewram1C000.unkC, vramPtr, 0);
-}
-
-void sub_806F8AC(u8 taskId)
-{
- struct BattleInterfaceStruct1 sp0;
- u16 sp14;
-
- ewram1B000.unk282 = sub_806F7E8(taskId, &sp0, -1);
- if (ewram1B000.unk282 == -1)
- {
- ewram1C000.unkC = 0;
- if (-sp0.unk8 + sp0.unk4 > sp0.unk0)
- sp14 = sp0.unk0 - sp0.unk4;
- else
- sp14 = -sp0.unk8;
- gBattleMoveDamage = -sp14;
- GetMonNickname(ewram1C000.pokemon, gStringVar1);
- ConvertIntToDecimalStringN(gStringVar2, sp14, 0, 3);
- if (gTasks[taskId].data[14] == 0)
- StringExpandPlaceholders(gStringVar4, gOtherText_HPRestoredBy);
- else
- StringExpandPlaceholders(gStringVar4, gOtherText_RegainedHealth);
- SetMonIconAnim(GetMonIconSpriteId_maybe(ewram1C000.unk4, ewram1C000.unk5), ewram1C000.pokemon);
- task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle() * 12 + ewram1C000.unk5 * 2], 7);
- ewram1B000.unk261 = 2;
- sub_806E834(gStringVar4, 1);
- sp14 += sp0.unk4;
- SetMonData(ewram1C000.pokemon, MON_DATA_HP, (u8 *)&sp14);
- RemoveBagItem(ewram1C000.unk6, 1);
- sub_8032638();
- gTasks[taskId].func = sub_806FB44;
- }
- else
- {
- PartyMenuDoPrintHP(ewram1C000.unk5, IsDoubleBattle(), ewram1B000.unk282, sp0.unk0);
- }
-}
-
-void sub_806FA18(u8 taskId)
-{
- struct BattleInterfaceStruct1 sp0;
-
- ewram1B000.unk282 = sub_806F7E8(taskId, &sp0, 1);
- if (ewram1B000.unk282 == -1)
- {
- PlaySE(SE_KAIFUKU);
- ewram1C000.unkC = 0;
- gTasks[taskId].data[11] -= gTasks[taskId].data[12];
- SetMonData(ewram1C000.pokemon, MON_DATA_HP, (u8 *)&gTasks[taskId].data[11]);
- SetMonIconAnim(GetMonIconSpriteId_maybe(ewram1C000.unk4, ewram01000.unk1), ewram1C000.pokemon);
- ewram1C000.unk5 = gSprites[ewram01000.unk2].data0;
- ewram1C000.pokemon = &gPlayerParty[ewram1C000.unk5];
- gTasks[taskId].data[10] = GetMonData(ewram1C000.pokemon, MON_DATA_MAX_HP);
- gTasks[taskId].data[11] = GetMonData(ewram1C000.pokemon, MON_DATA_HP);
- ewram1C000.unkC = -32768;
- ewram1C000.unk14 = ewram1C000.unk10;
- gTasks[taskId].func = sub_806F8AC;
- ewram1B000.unk282 = gTasks[taskId].data[11];
- }
- else
- {
- PartyMenuDoPrintHP(ewram1C000.unk5, IsDoubleBattle(), ewram1B000.unk282, sp0.unk0);
- }
-}
-
-void sub_806FB0C(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- gTasks[ewram1C000.unk4].func = ewram1C000.unk10;
- DestroyTask(taskId);
- }
-}
-
-void sub_806FB44(u8 taskId)
-{
- if (gUnknown_0202E8F6 == 0)
- {
- gTasks[ewram1C000.unk4].func = ewram1C000.unk14;
- DestroyTask(taskId);
- }
-}
-
-bool8 IsHPRecoveryItem(u16 item)
-{
- const u8 *itemEffect;
-
- if (item == 0xAF)
- itemEffect = gSaveBlock1.enigmaBerry.itemEffect;
- else
- itemEffect = gItemEffectTable[item - 13];
-
- if (itemEffect[4] & 4)
- return TRUE;
- else
- return FALSE;
-}
-
-void PartyMenuUpdateLevelOrStatus(struct Pokemon *pkmn, u8 b)
-{
- PartyMenuClearLevelStatusTilemap(b);
- PartyMenuPrintMonLevelOrStatus(b, pkmn);
-}
-
-void GetMedicineItemEffectMessage(u16 item)
-{
- switch (GetItemEffectType(item))
- {
- case 3:
- StringExpandPlaceholders(gStringVar4, gOtherText_CuredPoisoning);
- break;
- case 4:
- StringExpandPlaceholders(gStringVar4, gOtherText_WokeUp);
- break;
- case 5:
- StringExpandPlaceholders(gStringVar4, gOtherText_BurnHealed);
- break;
- case 6:
- StringExpandPlaceholders(gStringVar4, gOtherText_ThawedOut);
- break;
- case 7:
- StringExpandPlaceholders(gStringVar4, gOtherText_CuredParalysis);
- break;
- case 8:
- StringExpandPlaceholders(gStringVar4, gOtherText_SnapConfusion);
- break;
- case 9:
- StringExpandPlaceholders(gStringVar4, gOtherText_GotOverLove);
- break;
- case 11:
- StringExpandPlaceholders(gStringVar4, gOtherText_BecameHealthy);
- break;
- case 13:
- StringCopy(gStringVar2, gOtherText_Hp2);
- StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised);
- break;
- case 12:
- StringCopy(gStringVar2, gOtherText_Attack);
- StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised);
- break;
- case 17:
- StringCopy(gStringVar2, gOtherText_Defense);
- StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised);
- break;
- case 16:
- StringCopy(gStringVar2, gOtherText_Speed);
- StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised);
- break;
- case 14:
- StringCopy(gStringVar2, gOtherText_SpAtk2);
- StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised);
- break;
- case 15:
- StringCopy(gStringVar2, gOtherText_SpDef2);
- StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised);
- break;
- case 19:
- case 20:
- StringExpandPlaceholders(gStringVar4, gOtherText_PPIncreased);
- break;
- case 21:
- StringExpandPlaceholders(gStringVar4, gOtherText_PPRestored);
- break;
- default:
- StringExpandPlaceholders(gStringVar4, gOtherText_WontHaveAnyEffect);
- break;
- }
-}
-
-bool8 IsMedicineIneffective(struct Pokemon *pkmn, u16 item)
-{
- if (GetItemEffectType(item) == 13
- && GetMonData(pkmn, MON_DATA_SPECIES) == SPECIES_SHEDINJA)
- return TRUE;
- else
- return FALSE;
-}
-
-bool8 ExecuteTableBasedItemEffect__(u8 a, u16 b, u8 c)
-{
- if (gMain.inBattle)
- return ExecuteTableBasedItemEffect_(&gPlayerParty[a], b, sub_8094C20(a), c);
- else
- return ExecuteTableBasedItemEffect_(&gPlayerParty[a], b, a, c);
-}
-
-void UseMedicine(u8 taskId, u16 item, TaskFunc func)
-{
- u8 r7;
- bool8 r9 = FALSE;
- bool8 r0;
-
- gTasks[taskId].func = TaskDummy;
- r7 = CreateTask(TaskDummy, 5);
- sub_806E8D0(taskId, item, func);
- if (!IsMedicineIneffective(ewram1C000.pokemon, item))
- {
- r9 = IsHPRecoveryItem(item);
- if (r9 == TRUE)
- {
- gTasks[r7].data[10] = GetMonData(ewram1C000.pokemon, MON_DATA_MAX_HP);
- gTasks[r7].data[11] = GetMonData(ewram1C000.pokemon, MON_DATA_HP);
- if (gTasks[r7].data[10] == gTasks[r7].data[11])
- {
- r9 = FALSE;
- gTasks[r7].data[10] = 0;
- gTasks[r7].data[11] = 0;
- }
- }
- r0 = ExecuteTableBasedItemEffect__(ewram1C000.unk5, item, 0);
- }
- else
- {
- r0 = TRUE;
- }
-
- if (r0)
- {
- gUnknown_0202E8F4 = 0;
- PlaySE(SE_SELECT);
- sub_806E834(gOtherText_WontHaveAnyEffect, 1);
- gTasks[r7].func = sub_806FB0C;
- }
- else
- {
- u8 statusAndPkrs;
-
- gUnknown_0202E8F4 = 1;
- if (!IsBlueYellowRedFlute(item))
- PlaySE(SE_KAIFUKU);
- else
- PlaySE(SE_BIDORO);
- statusAndPkrs = GetMonStatusAndPokerus(ewram1C000.pokemon);
- if (statusAndPkrs == 6 || statusAndPkrs == 0)
- PartyMenuUpdateLevelOrStatus(ewram1C000.pokemon, ewram1C000.unk5);
- if (r9 == TRUE)
- {
- gTasks[r7].data[12] = GetMonData(ewram1C000.pokemon, MON_DATA_HP) - gTasks[r7].data[11];
- ewram1C000.unkC = -32768;
- if (gTasks[r7].data[11] == 0)
- gTasks[r7].data[14] = 1;
- else
- gTasks[r7].data[14] = 0;
- ewram1C000.unk14 = ewram1C000.unk10;
- gTasks[r7].func = sub_806F8AC;
- ewram1B000.unk282 = gTasks[r7].data[11];
- }
- else
- {
- GetMonNickname(ewram1C000.pokemon, gStringVar1);
- if (!IsBlueYellowRedFlute(item))
- RemoveBagItem(item, 1);
- GetMedicineItemEffectMessage(item);
- TryPrintPartyMenuMonNickname(ewram1C000.unk5, ewram1C000.pokemon);
- sub_806E834(gStringVar4, 1);
- gTasks[r7].func = sub_806FB0C;
- }
- }
-}
-
-bool8 IsBlueYellowRedFlute(u16 item)
-{
- if (item == 0x27
- || item == 0x29
- || item == 0x28)
- return TRUE;
- else
- return FALSE;
-}
-
-void sub_8070048(u8 taskId, u16 item, TaskFunc func)
-{
- ewram1C000.unk10 = func;
- ewram1C000.unk4 = taskId;
- ewram1C000.unk6 = item;
- ewram1C000.unk5 = 0;
- ewram1C000.unk14 = sub_80701DC;
- ewram1B000.unk27E = 0;
- ewram1B000.unk280 = 0;
- sub_8070088(taskId);
-}
-
-void sub_8070088(u8 taskId)
-{
- u8 taskId2;
-
- gTasks[taskId].func = TaskDummy;
- if (GetMonData(&gPlayerParty[ewram1C000.unk5], MON_DATA_SPECIES) == 0)
- {
- gTasks[taskId].func = sub_80701DC;
- }
- else
- {
- s16 *taskData;
-
- taskId2 = CreateTask(TaskDummy, 5);
- taskData = gTasks[taskId2].data;
- ewram1C000.pokemon = &gPlayerParty[ewram1C000.unk5];
- taskData[10] = GetMonData(ewram1C000.pokemon, MON_DATA_MAX_HP);
- taskData[11] = GetMonData(ewram1C000.pokemon, MON_DATA_HP);
- if (ExecuteTableBasedItemEffect__(ewram1C000.unk5, ewram1C000.unk6, 0))
- {
- DestroyTask(taskId2);
- gTasks[taskId].func = sub_80701DC;
- }
- else
- {
- gUnknown_0202E8F4 = 1;
- MenuZeroFillWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
- PlaySE(SE_KAIFUKU);
- PartyMenuUpdateLevelOrStatus(ewram1C000.pokemon, ewram1C000.unk5);
- task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle() * 12 + ewram1C000.unk5 * 2], 9);
- ewram1B000.unk261 = 2;
- taskData[12] = GetMonData(ewram1C000.pokemon, MON_DATA_HP) - taskData[11];
- taskData[14] = 1;
- ewram1B000.unk27E = 1;
- ewram1B000.unk280 = 1;
- ewram1B000.unk282 = taskData[11];
- ewram1C000.unkC = -32768;
- gTasks[taskId2].func = sub_806F8AC;
- }
- }
-}
-
-void sub_80701DC(u8 taskId)
-{
- if (ewram1B000.unk27E == 1)
- {
- AddBagItem(ewram1C000.unk6, 1);
- if (GetMonData(&gPlayerParty[ewram1C000.unk5], MON_DATA_SPECIES) != 0)
- {
- task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle() * 12 + ewram1C000.unk5 * 2], 3);
- ewram1B000.unk261 = 2;
- }
- ewram1B000.unk27E = 0;
- }
- ewram1C000.unk5++;
- if (ewram1C000.unk5 == 6)
- {
- gUnknown_0202E8F4 = 0;
- if (ewram1B000.unk280 == 0)
- {
- gTasks[taskId].func = TaskDummy;
- sub_806E834(gOtherText_WontHaveAnyEffect, 1);
- CreateTask(sub_806FB0C, 8);
- }
- else
- {
- RemoveBagItem(ewram1C000.unk6, 1);
- gTasks[taskId].func = ewram1C000.unk10;
- }
- gLastFieldPokeMenuOpened = 0;
- }
- else
- {
- sub_8070088(taskId);
- }
-}
-
-void CreateItemUseMoveMenu(u8 partyMonIndex)
-{
- u8 r6;
- u8 i;
-
- r6 = 0;
- MenuDrawTextWindow(19, 10, 29, 19);
- for (i = 0; i < 4; i++)
- {
- u16 move = GetMonData(&gPlayerParty[partyMonIndex], MON_DATA_MOVE1 + i);
-
- MenuPrint(gMoveNames[move], 20, i * 2 + 11);
- if (move != 0)
- r6++;
- }
- InitMenu(0, 20, 11, r6, 0, 9);
-}
-
-void Task_HandleItemUseMoveMenuInput(u8 taskId)
-{
- if (gMain.newKeys & DPAD_UP)
- {
- PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
- }
- else if (gMain.newKeys & DPAD_DOWN)
- {
- PlaySE(SE_SELECT);
- MoveMenuCursor(1);
- }
- else if (gMain.newKeys & A_BUTTON)
- {
- gUnknown_08376B54[0](taskId);
- }
- else if (gMain.newKeys & B_BUTTON)
- {
- PlaySE(SE_SELECT);
- gUnknown_08376B54[1](taskId);
- }
-}
-
-void DoPPRecoveryItemEffect(u8 taskId, u16 b, TaskFunc c)
-{
- const u8 *itemEffect;
- u8 taskId2;
-
- if (b == 0xAF)
- itemEffect = gSaveBlock1.enigmaBerry.itemEffect;
- else
- itemEffect = gItemEffectTable[b - 13];
- gTasks[taskId].func = TaskDummy;
- taskId2 = CreateTask(TaskDummy, 5);
- sub_806E8D0(taskId, b, c);
- if (!(itemEffect[4] & 0x10))
- {
- gTasks[taskId2].data[11] = 0;
- DoRecoverPP(taskId2);
- }
- else
- {
- PlaySE(SE_SELECT);
- sub_806D538(10, 3);
- CreateItemUseMoveMenu(ewram1C000.unk5);
- gTasks[taskId2].func = Task_HandleItemUseMoveMenuInput;
- gMain.newKeys = 0;
- }
-}
-
-void ItemUseMoveMenu_HandleMoveSelection(u8 taskId)
-{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(19, 10, 29, 19);
- sub_806D5A4();
- gTasks[taskId].data[11] = GetMenuCursorPos();
- DoRecoverPP(taskId);
-}
-
-void ItemUseMoveMenu_HandleCancel(u8 taskId)
-{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(19, 10, 29, 19);
- if (gMain.inBattle)
- gTasks[ewram1C000.unk4].func = SetUpBattlePokemonMenu;
- else
- gTasks[ewram1C000.unk4].func = sub_808B0C0;
- sub_806D538(3, 0);
- DestroyTask(taskId);
-}
-
-void DoRecoverPP(u8 taskId)
-{
- u16 r5 = 0;
-
- if (ExecuteTableBasedItemEffect__(ewram1C000.unk5, ewram1C000.unk6, gTasks[taskId].data[11]))
- {
- gUnknown_0202E8F4 = r5;
- PlaySE(SE_SELECT);
- sub_806E834(gOtherText_WontHaveAnyEffect, 1);
- }
- else
- {
- gUnknown_0202E8F4 = 1;
- PlaySE(SE_KAIFUKU);
- RemoveBagItem(ewram1C000.unk6, 1);
- r5 = GetMonData(ewram1C000.pokemon, MON_DATA_MOVE1 + gTasks[taskId].data[11]);
- StringCopy(gStringVar1, gMoveNames[r5]);
- GetMedicineItemEffectMessage(ewram1C000.unk6);
- sub_806E834(gStringVar4, 1);
- }
- gTasks[taskId].func = sub_806FB0C;
-}
-
-void DoPPUpItemEffect(u8 taskId, u16 b, TaskFunc c)
-{
- gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, b, c);
- PlaySE(SE_SELECT);
- sub_806D538(11, 3);
- CreateItemUseMoveMenu(ewram1C000.unk5);
- CreateTask(Task_HandleItemUseMoveMenuInput, 5);
- gMain.newKeys = 0;
-}
-
-void DoRareCandyItemEffect(u8 taskId, u16 b, TaskFunc c)
-{
- u8 i;
- bool8 r0;
-
- gTasks[taskId].func = TaskDummy;
- sub_806E8D0(taskId, b, c);
-
- if (GetMonData(ewram1C000.pokemon, MON_DATA_LEVEL) != 100)
- {
- for (i = 0; i < 6; i++)
- ewram1B000.unk264[i] = GetMonData(ewram1C000.pokemon, gUnknown_08376D1C[i]);
- r0 = ExecuteTableBasedItemEffect__(ewram1C000.unk5, b, 0);
- }
- else
- r0 = TRUE;
-
- if (r0)
- {
- gUnknown_0202E8F4 = 0;
- PlaySE(SE_SELECT);
- sub_806E834(gOtherText_WontHaveAnyEffect, 1);
- CreateTask(sub_806FB0C, 5);
- }
- else
- {
- u8 level;
-
- gUnknown_0202E8F4 = 1;
- PlayFanfareByFanfareNum(0);
- sub_8070A20(ewram1C000.unk5, ewram1C000.pokemon);
- RemoveBagItem(b, 1);
- GetMonNickname(ewram1C000.pokemon, gStringVar1);
- level = GetMonData(ewram1C000.pokemon, MON_DATA_LEVEL);
- ConvertIntToDecimalStringN(gStringVar2, level, 0, 3);
- StringExpandPlaceholders(gStringVar4, gOtherText_ElevatedTo);
- sub_806E834(gStringVar4, 1);
- CreateTask(Task_RareCandy1, 5);
- }
-}
-
-void Task_RareCandy1(u8 taskId)
-{
- if (WaitFanfare(0) && gUnknown_0202E8F6 == 0)
- {
- if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
- {
- PlaySE(SE_SELECT);
- sub_8070848(taskId);
- gTasks[taskId].func = Task_RareCandy2;
- }
- }
-}
-
-void Task_RareCandy2(u8 taskId)
-{
- if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
- {
- PlaySE(SE_SELECT);
- sub_8070968(taskId);
- gTasks[taskId].func = Task_RareCandy3;
- }
-}
-
-#if ENGLISH
-void sub_8070848(u8 taskId)
-{
- u8 i;
-
- MenuDrawTextWindow(11, 0, 29, 7);
-
- for (i = 0; i < DATA_COUNT; i++)
- {
- u8 x;
- u8 y;
- u32 stat;
-
- stat = GetMonData(ewram1C000.pokemon, gUnknown_08376D1C[i]);
-
- ewram1B000.unk264[i + DATA_COUNT] = stat;
- ewram1B000.unk264[i] = stat - ewram1B000.unk264[i];
-
- x = (i / 3) * 9 + 11;
- y = ((i % 3) << 1) + 1;
-
- MenuPrint_PixelCoords(gUnknown_08376D04[i], (x + 1) * 8, y * 8, 1);
-
- if (i == 2)
- MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 0);
- else
- MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 1);
-
- gStringVar1[0] = EXT_CTRL_CODE_BEGIN;
- gStringVar1[1] = 0x14;
- gStringVar1[2] = 0x06;
-
- ConvertIntToDecimalStringN(gStringVar1 + 3, ewram1B000.unk264[i], 1, 2);
-
- MenuPrint_PixelCoords(gStringVar1, (x + 6) * 8 + 12, y * 8, 0);
- }
-}
-#elif GERMAN
-__attribute__((naked))
-void sub_8070848(u8 taskId) {
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- movs r0, 0xB\n\
- movs r1, 0\n\
- movs r2, 0x1D\n\
- movs r3, 0x7\n\
- bl MenuDrawTextWindow\n\
- movs r7, 0\n\
- ldr r0, _0807092C @ =gStringVar1\n\
- mov r10, r0\n\
- movs r1, 0xFC\n\
- mov r9, r1\n\
- movs r2, 0x13\n\
- mov r8, r2\n\
-_0807086C:\n\
- ldr r1, _08070930 @ =0x0201c000\n\
- ldr r0, [r1]\n\
- ldr r1, _08070934 @ =gUnknown_08376D1C\n\
- adds r1, r7, r1\n\
- ldrb r1, [r1]\n\
- bl GetMonData\n\
- adds r1, r7, 0x6\n\
- lsls r1, 1\n\
- ldr r2, _08070938 @ =0x0201b264\n\
- adds r1, r2, r1\n\
- strh r0, [r1]\n\
- lsls r6, r7, 1\n\
- adds r6, r2, r6\n\
- ldrh r1, [r6]\n\
- subs r0, r1\n\
- strh r0, [r6]\n\
- adds r0, r7, 0\n\
- movs r1, 0x3\n\
- bl __udivsi3\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- lsls r4, r0, 3\n\
- adds r4, r0\n\
- adds r4, 0xB\n\
- lsls r4, 24\n\
- lsrs r4, 24\n\
- adds r0, r7, 0\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- adds r5, r0, 0\n\
- lsls r5, 1\n\
- adds r5, 0x1\n\
- lsls r5, 24\n\
- lsrs r5, 24\n\
- ldr r1, _0807093C @ =gUnknown_08376D04\n\
- lsls r0, r7, 2\n\
- adds r0, r1\n\
- ldr r1, [r0]\n\
- mov r0, r10\n\
- bl StringCopy\n\
- adds r2, r0, 0\n\
- mov r0, r9\n\
- strb r0, [r2]\n\
- adds r2, 0x1\n\
- mov r1, r8\n\
- strb r1, [r2]\n\
- adds r2, 0x1\n\
- movs r0, 0x2E\n\
- strb r0, [r2]\n\
- adds r2, 0x1\n\
- adds r0, r2, 0\n\
- ldr r1, _08070940 @ =gOtherText_TallPlusAndRightArrow\n\
- bl StringCopy\n\
- adds r2, r0, 0\n\
- mov r0, r9\n\
- strb r0, [r2]\n\
- adds r2, 0x1\n\
- mov r1, r8\n\
- strb r1, [r2]\n\
- adds r2, 0x1\n\
- movs r0, 0x34\n\
- strb r0, [r2]\n\
- adds r2, 0x1\n\
- movs r0, 0\n\
- ldrsh r1, [r6, r0]\n\
- adds r0, r2, 0\n\
- movs r2, 0x1\n\
- movs r3, 0x2\n\
- bl ConvertIntToDecimalStringN\n\
- adds r4, 0x1\n\
- lsls r4, 24\n\
- lsrs r4, 24\n\
- mov r0, r10\n\
- adds r1, r4, 0\n\
- adds r2, r5, 0\n\
- bl MenuPrint\n\
- adds r0, r7, 0x1\n\
- lsls r0, 24\n\
- lsrs r7, r0, 24\n\
- cmp r7, 0x5\n\
- bls _0807086C\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0807092C: .4byte gStringVar1\n\
-_08070930: .4byte 0x0201c000\n\
-_08070934: .4byte gUnknown_08376D1C\n\
-_08070938: .4byte 0x0201b264\n\
-_0807093C: .4byte gUnknown_08376D04\n\
-_08070940: .4byte gOtherText_TallPlusAndRightArrow\n\
- .syntax divided\n");
-}
-#endif