summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-09-18 10:25:42 -0700
committerMarcus Huderle <huderlem@gmail.com>2017-09-18 10:25:42 -0700
commita7fa00901efb9e7e90a78b3e415a56b695588ec3 (patch)
treeb230aaba0df09c533d5dad99602e14afdafa2ede
parent76b0936323ba0c5d2807cec26bbea056af8aa2e0 (diff)
Decompile DoEvolutionStoneItemEffect
-rw-r--r--asm/party_menu.s62
-rw-r--r--include/party_menu.h1
-rw-r--r--src/party_menu.c22
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);
+ }
+}