diff options
Diffstat (limited to 'src/fldeff_softboiled.c')
-rw-r--r-- | src/fldeff_softboiled.c | 71 |
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); } |