diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-09-18 10:25:42 -0700 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2017-09-18 10:25:42 -0700 |
commit | a7fa00901efb9e7e90a78b3e415a56b695588ec3 (patch) | |
tree | b230aaba0df09c533d5dad99602e14afdafa2ede | |
parent | 76b0936323ba0c5d2807cec26bbea056af8aa2e0 (diff) |
Decompile DoEvolutionStoneItemEffect
-rw-r--r-- | asm/party_menu.s | 62 | ||||
-rw-r--r-- | include/party_menu.h | 1 | ||||
-rw-r--r-- | src/party_menu.c | 22 |
3 files changed, 23 insertions, 62 deletions
diff --git a/asm/party_menu.s b/asm/party_menu.s index 3b9642ee5..c9b9ee346 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -7448,68 +7448,6 @@ PartyMenuGetPopupMenuFunc: @ 806E81C .section .text_8070968 - thumb_func_start DoEvolutionStoneItemEffect -DoEvolutionStoneItemEffect: @ 8070DBC - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 16 - lsrs r6, r1, 16 - movs r0, 0x5 - bl PlaySE - ldr r1, _08070E18 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08070E1C @ =TaskDummy - str r1, [r0] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_806E8D0 - ldr r1, _08070E20 @ =gCB2_AfterEvolution - ldr r0, _08070E24 @ =sub_80A53F8 - str r0, [r1] - ldr r0, _08070E28 @ =0x0201c000 - ldrb r0, [r0, 0x5] - adds r1, r6, 0 - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - beq _08070E38 - ldr r1, _08070E2C @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect - movs r1, 0x1 - bl sub_806E834 - ldr r0, _08070E34 @ =sub_806FB0C - movs r1, 0x5 - bl CreateTask - b _08070E40 - .align 2, 0 -_08070E18: .4byte gTasks -_08070E1C: .4byte TaskDummy -_08070E20: .4byte gCB2_AfterEvolution -_08070E24: .4byte sub_80A53F8 -_08070E28: .4byte 0x0201c000 -_08070E2C: .4byte gUnknown_0202E8F4 -_08070E30: .4byte gOtherText_WontHaveAnyEffect -_08070E34: .4byte sub_806FB0C -_08070E38: - adds r0, r6, 0 - movs r1, 0x1 - bl RemoveBagItem -_08070E40: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end DoEvolutionStoneItemEffect - thumb_func_start GetItemEffectType GetItemEffectType: @ 8070E48 push {r4,r5,lr} diff --git a/include/party_menu.h b/include/party_menu.h index 68af9669b..8734cbe65 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -168,6 +168,7 @@ void PrintNewStatsInLevelUpWindow(u8 taskId); void RedrawPokemonInfoInMenu(u8, struct Pokemon *); void Task_RareCandy3(u8); void TeachMonMoveInPartyMenu(u8); +void DoEvolutionStoneItemEffect(u8 taskId, u16 evolutionStoneItem, TaskFunc c); void sub_806CA60(u8 taskId); void sub_806CD5C(u8 taskId); void DoTakeMail(u8 taskId, TaskFunc func); diff --git a/src/party_menu.c b/src/party_menu.c index 83c0afbc3..e1eb9cdae 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1669,3 +1669,25 @@ static void sub_8070D90(u8 taskId) gTasks[ewram1C000.unk4].func = ewram1C000.unk10; DestroyTask(taskId); } + +void DoEvolutionStoneItemEffect(u8 taskId, u16 evolutionStoneItem, TaskFunc c) +{ + PlaySE(SE_SELECT); + + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, evolutionStoneItem, c); + + gCB2_AfterEvolution = sub_80A53F8; + + if (ExecuteTableBasedItemEffect__(ewram1C000.unk5, evolutionStoneItem, 0)) + { + gUnknown_0202E8F4 = 0; + sub_806E834(gOtherText_WontHaveAnyEffect, 1); + + CreateTask(sub_806FB0C, 5); + } + else + { + RemoveBagItem(evolutionStoneItem, 1); + } +} |