summaryrefslogtreecommitdiff
path: root/src/fldeff_softboiled.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fldeff_softboiled.c')
-rw-r--r--src/fldeff_softboiled.c71
1 files changed, 31 insertions, 40 deletions
diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c
index 1c1285ad9..b61b78f69 100644
--- a/src/fldeff_softboiled.c
+++ b/src/fldeff_softboiled.c
@@ -11,18 +11,10 @@
#include "task.h"
#include "ewram.h"
-struct Struct2001000 {
- u8 unk0;
- u8 unk1;
- u8 unk2;
- u8 filler3[9];
- void *unkC;
-};
-
struct Struct201C000 {
- struct Pokemon *unk0;
+ struct Pokemon *monPointer;
u8 filler4[1];
- u8 unk5;
+ u8 donorMonId;
u16 unk6;
u8 filler8[4];
s32 unkC;
@@ -40,14 +32,14 @@ struct Struct201C000 {
#endif
// extern
-extern u8 gUnknown_0202E8F6;
+extern u8 gPartyMenuMessage_IsPrinting;
extern u8 gLastFieldPokeMenuOpened;
extern u8 gUnknown_0202E8F4;
// Static
static void sub_8133D50(u8 taskId);
-static void sub_8133E74(u8 taskId);
-static void sub_8133EB8(u8 taskId);
+static void Task_ChooseNewMonForSoftboiled(u8 taskId);
+static void CantUseSoftboiled(u8 taskId);
static void sub_8133EF8(void);
bool8 SetUpFieldMove_SoftBoiled(void) {
@@ -68,60 +60,59 @@ bool8 SetUpFieldMove_SoftBoiled(void) {
}
void sub_8133D28(u8 taskid) {
- EWRAM_1000.unkC = sub_8133D50;
- EWRAM_1B000_2.unk272 = 3;
+ ePartyMenu.unkC = sub_8133D50;
+ ewram1B000.pmUnk272 = 3;
DoPokemonMenu_Switch(taskid);
}
static void sub_8133D50(u8 taskId) {
- u8 unk1, unk2;
+ u8 userPartyId, recipientPartyId;
u16 hp;
struct Pokemon *pokemon;
//struct Task *task;
struct Sprite *sprites = gSprites;
+ userPartyId = sprites[ePartyMenu.slotId].data[0];
+ recipientPartyId = sprites[ePartyMenu.slotId2].data[0];
- unk1 = sprites[EWRAM_1000.unk1].data[0];
- unk2 = sprites[EWRAM_1000.unk2].data[0];
-
- if (unk1 > 5 || unk2 > 5)
+ if (userPartyId > 5 || recipientPartyId > 5)
{
sub_806CD44(taskId);
return;
}
- EWRAM_1C000.unk0 = &gPlayerParty[sprites[EWRAM_1000.unk2].data[0]];
- hp = GetMonData(EWRAM_1C000.unk0, MON_DATA_HP);
+ EWRAM_1C000.monPointer = &gPlayerParty[sprites[ePartyMenu.slotId2].data[0]];
+ hp = GetMonData(EWRAM_1C000.monPointer, MON_DATA_HP);
- if (hp == 0 || unk1 == unk2 || GetMonData(EWRAM_1C000.unk0, MON_DATA_MAX_HP) == hp)
+ if (hp == 0 || userPartyId == recipientPartyId || GetMonData(EWRAM_1C000.monPointer, MON_DATA_MAX_HP) == hp)
{
- sub_8133EB8(taskId);
+ CantUseSoftboiled(taskId);
return;
}
PlaySE(SE_USE_ITEM);
- EWRAM_1C000.unk5 = gSprites[EWRAM_1000.unk1].data[0];
+ EWRAM_1C000.donorMonId = gSprites[ePartyMenu.slotId].data[0];
- pokemon = &gPlayerParty[EWRAM_1C000.unk5];
- EWRAM_1C000.unk0 = pokemon;
+ pokemon = &gPlayerParty[EWRAM_1C000.donorMonId];
+ EWRAM_1C000.monPointer = pokemon;
EWRAM_1C000.unk6 = 0;
EWRAM_1C000.unkC = -0x8000;
EWRAM_1C000.unk10 = sub_8133EF8;
- gTasks[taskId].data[10] = GetMonData(EWRAM_1C000.unk0, MON_DATA_MAX_HP);
- gTasks[taskId].data[11] = GetMonData(EWRAM_1C000.unk0, MON_DATA_HP);
+ gTasks[taskId].data[10] = GetMonData(EWRAM_1C000.monPointer, MON_DATA_MAX_HP);
+ gTasks[taskId].data[11] = GetMonData(EWRAM_1C000.monPointer, MON_DATA_HP);
gTasks[taskId].data[12] = gTasks[taskId].data[10] / 5;
- sub_806D5A4();
+ PartyMenuEraseMsgBoxAndFrame();
gTasks[taskId].func = sub_806FA18;
- EWRAM_1B000_2.unk282 = gTasks[taskId].data[11];
+ ewram1B000.pmUnk282 = gTasks[taskId].data[11];
}
-static void sub_8133E74(u8 taskId) {
- if (gUnknown_0202E8F6)
+static void Task_ChooseNewMonForSoftboiled(u8 taskId) {
+ if (gPartyMenuMessage_IsPrinting)
{
return;
}
@@ -131,18 +122,18 @@ static void sub_8133E74(u8 taskId) {
gTasks[taskId].func = HandlePartyMenuSwitchPokemonInput;
}
-static void sub_8133EB8(u8 taskId) {
+static void CantUseSoftboiled(u8 taskId) {
gUnknown_0202E8F4 = 0;
- sub_806D5A4();
- sub_806E834(gOtherText_CantUseOnPoke, 1);
- gTasks[taskId].func = sub_8133E74;
+ PartyMenuEraseMsgBoxAndFrame();
+ DisplayPartyMenuMessage(gOtherText_CantUseOnPoke, 1);
+ gTasks[taskId].func = Task_ChooseNewMonForSoftboiled;
}
static void sub_8133EF8(void) {
sub_806CCE4();
- EWRAM_1B000_2.unk261 = 2;
- DestroySprite(&gSprites[EWRAM_1000.unk1]);
+ ewram1B000.unk261 = 2;
+ DestroySprite(&gSprites[ePartyMenu.slotId]);
Menu_EraseWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
PrintPartyMenuPromptText(0, 0);
- SwitchTaskToFollowupFunc(EWRAM_1000.unk0);
+ SwitchTaskToFollowupFunc(ePartyMenu.unk0);
}