Finish item_use

This commit is contained in:
PikalaxALT
2019-06-20 20:00:13 -04:00
parent 12f3ceb0f7
commit 7abbe42763
26 changed files with 709 additions and 1619 deletions
+85 -85
View File
@@ -29,7 +29,7 @@
"type": 0,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 0
},
{
@@ -45,7 +45,7 @@
"type": 1,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 1
},
{
@@ -61,7 +61,7 @@
"type": 2,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 2
},
{
@@ -77,7 +77,7 @@
"type": 3,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 3
},
{
@@ -93,7 +93,7 @@
"type": 4,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 4
},
{
@@ -109,7 +109,7 @@
"type": 5,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 5
},
{
@@ -125,7 +125,7 @@
"type": 6,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 6
},
{
@@ -141,7 +141,7 @@
"type": 7,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 7
},
{
@@ -157,7 +157,7 @@
"type": 8,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 8
},
{
@@ -173,7 +173,7 @@
"type": 9,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 9
},
{
@@ -189,7 +189,7 @@
"type": 10,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 10
},
{
@@ -205,7 +205,7 @@
"type": 11,
"fieldUseFunc": "NULL",
"battleUsage": 2,
"battleUseFunc": "BattleUseFunc_MasterBall",
"battleUseFunc": "BattleUseFunc_PokeBallEtc",
"secondaryId": 11
},
{
@@ -219,9 +219,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -235,9 +235,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -251,9 +251,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -267,9 +267,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -283,9 +283,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -299,9 +299,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -315,9 +315,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -331,9 +331,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -347,9 +347,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -363,9 +363,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -379,9 +379,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -395,9 +395,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -411,9 +411,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -427,9 +427,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -443,9 +443,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -459,9 +459,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -475,9 +475,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -491,9 +491,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -507,9 +507,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -523,9 +523,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -539,9 +539,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -619,9 +619,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -635,9 +635,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -653,7 +653,7 @@
"type": 1,
"fieldUseFunc": "FieldUseFunc_OakStopsYou",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -669,7 +669,7 @@
"type": 1,
"fieldUseFunc": "FieldUseFunc_OakStopsYou",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -715,9 +715,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -1019,7 +1019,7 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 0,
"battleUseFunc": "NULL",
"secondaryId": 0
@@ -1035,7 +1035,7 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 0,
"battleUseFunc": "NULL",
"secondaryId": 0
@@ -1051,7 +1051,7 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 0,
"battleUseFunc": "NULL",
"secondaryId": 0
@@ -1067,7 +1067,7 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 0,
"battleUseFunc": "NULL",
"secondaryId": 0
@@ -1083,7 +1083,7 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 0,
"battleUseFunc": "NULL",
"secondaryId": 0
@@ -1131,7 +1131,7 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_ITEMS",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 0,
"battleUseFunc": "NULL",
"secondaryId": 0
@@ -2139,9 +2139,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_BERRY_POUCH",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -2155,9 +2155,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_BERRY_POUCH",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -2171,9 +2171,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_BERRY_POUCH",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -2187,9 +2187,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_BERRY_POUCH",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -2203,9 +2203,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_BERRY_POUCH",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -2235,9 +2235,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_BERRY_POUCH",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -2253,7 +2253,7 @@
"type": 4,
"fieldUseFunc": "FieldUseFunc_OakStopsYou",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -2267,9 +2267,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_BERRY_POUCH",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
@@ -2283,9 +2283,9 @@
"exitsBagOnUse": 0,
"pocket": "POCKET_BERRY_POUCH",
"type": 1,
"fieldUseFunc": "FieldUseFunc_OpenPartyMenu",
"fieldUseFunc": "FieldUseFunc_Medicine",
"battleUsage": 1,
"battleUseFunc": "BattleUseFunc_OpenPartyMenu",
"battleUseFunc": "BattleUseFunc_Medicine",
"secondaryId": 0
},
{
+1 -1
View File
@@ -552,7 +552,7 @@ static void Task_TopMenuHandleInput(u8 taskId)
if (FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox) == 0xFF)
{
RunTextPrinters();
if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != UseFameCheckerFromMenu)
if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != ReturnToBagFromKeyItem)
task->func = Task_StartToCloseFameChecker;
else if (JOY_NEW(START_BUTTON))
{
+562 -4
View File
@@ -1,31 +1,45 @@
#include "global.h"
#include "battle.h"
#include "berry_pouch.h"
#include "berry_powder.h"
#include "bike.h"
#include "coins.h"
#include "event_data.h"
#include "field_effect.h"
#include "field_fadetransition.h"
#include "field_map_obj_helpers.h"
#include "field_player_avatar.h"
#include "field_specials.h"
#include "field_weather.h"
#include "fieldmap.h"
#include "item.h"
#include "item_menu.h"
#include "item_use.h"
#include "itemfinder.h"
#include "mail.h"
#include "main.h"
#include "malloc.h"
#include "map_obj_80688E4.h"
#include "map_obj_lock.h"
#include "metatile_behavior.h"
#include "new_menu_helpers.h"
#include "overworld.h"
#include "palette.h"
#include "party_menu.h"
#include "quest_log.h"
#include "region_map.h"
#include "script.h"
#include "sound.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "teachy_tv.h"
#include "tm_case.h"
#include "vs_seeker.h"
#include "constants/fanfares.h"
#include "constants/flags.h"
#include "constants/items.h"
#include "constants/maps.h"
#include "constants/moves.h"
#include "constants/songs.h"
@@ -43,7 +57,24 @@ void ItemUseOnFieldCB_Rod(u8 taskId);
void FieldUseFunc_EvoItem(u8 taskId);
void sub_80A1648(u8 taskId);
void sub_80A1674(u8 taskId);
void sub_813EC8C(u8 taskId);
void InitTMCaseFromBag(void);
void Task_InitTMCaseFromField(u8 taskId);
void InitBerryPouchFromBag(void);
void Task_InitBerryPouchFromField(u8 taskId);
void InitBerryPouchFromBattle(void);
void InitTeachyTvFromBag(void);
void Task_InitTeachyTvFromField(u8 taskId);
void sub_80A19E8(u8 taskId);
void sub_80A1A44(void);
void sub_80A1B48(u8 taskId);
void sub_80A1C08(u8 taskId);
void sub_80A1C44(u8 taskId);
void sub_80A1CAC(void);
void sub_80A1CC0(u8 taskId);
void sub_80A1D58(void);
void sub_80A1D68(u8 taskId);
void sub_80A1EF4(u8 taskId);
void sub_80A1F48(u8 taskId);
extern void (*const gUnknown_83E2954[])(void);
@@ -158,10 +189,10 @@ void FieldUseFunc_OrangeMail(u8 taskId)
void sub_80A1208(void)
{
u16 buffer[18];
struct MailStruct mail;
buffer[16] = gSpecialVar_ItemId;
sub_80BEBEC(buffer, UseFameCheckerFromMenu, 0);
mail.itemId = gSpecialVar_ItemId;
sub_80BEBEC(&mail, ReturnToBagFromKeyItem, 0);
}
void FieldUseFunc_MachBike(u8 taskId)
@@ -320,3 +351,530 @@ void sub_80A16D0(u8 taskId)
{
sub_80A0FBC(taskId);
}
void FieldUseFunc_Medicine(u8 taskId)
{
gUnknown_3005E98 = sub_81252D0;
sub_80A16D0(taskId);
}
void FieldUseFunc_Ether(u8 taskId)
{
gUnknown_3005E98 = sub_81256F8;
sub_80A16D0(taskId);
}
void FieldUseFunc_PpUp(u8 taskId)
{
gUnknown_3005E98 = dp05_pp_up;
sub_80A16D0(taskId);
}
void FieldUseFunc_RareCandy(u8 taskId)
{
gUnknown_3005E98 = dp05_rare_candy;
sub_80A16D0(taskId);
}
void FieldUseFunc_EvoItem(u8 taskId)
{
gUnknown_3005E98 = sub_8126B60;
sub_80A16D0(taskId);
}
void FieldUseFunc_SacredAsh(u8 taskId)
{
gUnknown_3005E98 = sub_8126894;
sub_80A0FBC(taskId);
}
void FieldUseFunc_TmCase(u8 taskId)
{
if (gTasks[taskId].data[3] == 0)
{
sub_8108EE0(InitTMCaseFromBag);
sub_8108B50(taskId);
}
else
{
sub_80CCB68();
fade_screen(1, 0);
gTasks[taskId].func = Task_InitTMCaseFromField;
}
}
void InitTMCaseFromBag(void)
{
InitTMCase(0, ReturnToBagFromKeyItem, 0);
}
void Task_InitTMCaseFromField(u8 taskId)
{
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
sub_80A1184();
InitTMCase(0, CB2_ReturnToField, 1);
DestroyTask(taskId);
}
}
void FieldUseFunc_BerryPouch(u8 taskId)
{
if (gTasks[taskId].data[3] == 0)
{
sub_8108EE0(InitBerryPouchFromBag);
sub_8108B50(taskId);
}
else
{
sub_80CCB68();
fade_screen(1, 0);
gTasks[taskId].func = Task_InitBerryPouchFromField;
}
}
void InitBerryPouchFromBag(void)
{
InitBerryPouch(0, ReturnToBagFromKeyItem, 0);
}
void Task_InitBerryPouchFromField(u8 taskId)
{
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
sub_80A1184();
InitBerryPouch(0, CB2_ReturnToField, 1);
DestroyTask(taskId);
}
}
void BattleUseFunc_BerryPouch(u8 taskId)
{
sub_8108EE0(InitBerryPouchFromBattle);
sub_8108B50(taskId);
}
void InitBerryPouchFromBattle(void)
{
InitBerryPouch(4, sub_8107ECC, 0);
}
void FieldUseFunc_TeachyTv(u8 taskId)
{
ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0)
{
sub_8108EE0(InitTeachyTvFromBag);
sub_8108B50(taskId);
}
else
{
sub_80CCB68();
fade_screen(1, 0);
gTasks[taskId].func = Task_InitTeachyTvFromField;
}
}
void InitTeachyTvFromBag(void)
{
InitTeachyTvController(0, ReturnToBagFromKeyItem);
}
void Task_InitTeachyTvFromField(u8 taskId)
{
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
sub_80A1184();
InitTeachyTvController(0, CB2_ReturnToField);
DestroyTask(taskId);
}
}
void FieldUseFunc_SuperRepel(u8 taskId)
{
if (VarGet(VAR_REPEL_STEP_COUNT) == 0)
{
PlaySE(SE_RU_GASYAN);
gTasks[taskId].func = sub_80A19E8;
}
else
// An earlier repel is still in effect
DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, sub_810A1F8);
}
void sub_80A19E8(u8 taskId)
{
if (!IsSEPlaying())
{
ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF);
VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId));
sub_80A1A44();
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
}
}
void sub_80A1A44(void)
{
RemoveBagItem(gSpecialVar_ItemId, 1);
sub_8108DC8(ItemId_GetPocket(gSpecialVar_ItemId));
sub_81089F4(ItemId_GetPocket(gSpecialVar_ItemId));
CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gUnknown_841658C);
}
void FieldUseFunc_BlackFlute(u8 taskId)
{
ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gSpecialVar_ItemId == ITEM_WHITE_FLUTE)
{
FlagSet(FLAG_WHITE_FLUTE_ACTIVE);
FlagClear(FLAG_BLACK_FLUTE_ACTIVE);
CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gUnknown_84165D2);
gTasks[taskId].func = sub_80A1B48;
gTasks[taskId].data[8] = 0;
}
else if (gSpecialVar_ItemId == ITEM_BLACK_FLUTE)
{
FlagSet(FLAG_BLACK_FLUTE_ACTIVE);
FlagClear(FLAG_WHITE_FLUTE_ACTIVE);
CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gUnknown_8416600);
gTasks[taskId].func = sub_80A1B48;
gTasks[taskId].data[8] = 0;
}
}
void sub_80A1B48(u8 taskId)
{
if (++gTasks[taskId].data[8] > 7)
{
PlaySE(SE_PN_ON);
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
}
}
bool8 sub_80A1B8C(void)
{
if (gMapHeader.escapeRope & 1)
return TRUE;
else
return FALSE;
}
void ItemUseOutOfBattle_EscapeRope(u8 taskId)
{
if (sub_80A1B8C() == TRUE)
{
ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, gMapHeader.regionMapSectionId);
sItemUseOnFieldCB = sub_80A1C08;
sub_80A103C(taskId);
}
else
sub_80A1110(taskId, gTasks[taskId].data[3]);
}
void sub_80A1C08(u8 taskId)
{
sub_8054D70();
sub_80A1A44();
gTasks[taskId].data[0] = 0;
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A1C44);
}
void sub_80A1C44(u8 taskId)
{
ResetInitialPlayerAvatarState();
sub_8085620();
DestroyTask(taskId);
}
void FieldUseFunc_TownMap(u8 taskId)
{
if (gTasks[taskId].data[3] == 0)
{
sub_8108EE0(sub_80A1CAC);
sub_8108B50(taskId);
}
else
{
sub_80CCB68();
fade_screen(1, 0);
gTasks[taskId].func = sub_80A1CC0;
}
}
void sub_80A1CAC(void)
{
sub_80BFF50(0, ReturnToBagFromKeyItem);
}
void sub_80A1CC0(u8 taskId)
{
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
sub_80A1184();
sub_80BFF50(0, CB2_ReturnToField);
DestroyTask(taskId);
}
}
void FieldUseFunc_FameChecker(u8 taskId)
{
ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0)
{
sub_8108EE0(sub_80A1D58);
sub_8108B50(taskId);
}
else
{
sub_80CCB68();
fade_screen(1, 0);
gTasks[taskId].func = sub_80A1D68;
}
}
void sub_80A1D58(void)
{
UseFameChecker(ReturnToBagFromKeyItem);
}
void sub_80A1D68(u8 taskId)
{
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
sub_80A1184();
UseFameChecker(CB2_ReturnToField);
DestroyTask(taskId);
}
}
void FieldUseFunc_VsSeeker(u8 taskId)
{
if ((gMapHeader.mapType != MAP_TYPE_ROUTE
&& gMapHeader.mapType != MAP_TYPE_TOWN
&& gMapHeader.mapType != MAP_TYPE_CITY)
|| (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(VIRIDIAN_FOREST)
&& (gSaveBlock1Ptr->location.mapNum == MAP_NUM(VIRIDIAN_FOREST)
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(MT_EMBER_EXTERIOR)
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(THREE_ISLAND_BERRY_FOREST)
|| gSaveBlock1Ptr->location.mapNum == MAP_NUM(SIX_ISLAND_PATTERN_BUSH))))
{
sub_80A1110(taskId, gTasks[taskId].data[3]);
}
else
{
sItemUseOnFieldCB = Task_VsSeeker_0;
sub_80A103C(taskId);
}
}
void sub_80A1E0C(u8 taskId)
{
sub_80A112C(taskId);
}
void BattleUseFunc_PokeBallEtc(u8 taskId)
{
if (!IsPlayerPartyAndPokemonStorageFull())
{
RemoveBagItem(gSpecialVar_ItemId, 1);
sub_8108CB4();
sub_8108B50(taskId);
}
else
{
DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, sub_810A1F8);
}
}
void BattleUseFunc_PokeFlute(u8 taskId)
{
sub_8108CB4();
sub_8108B50(taskId);
}
void BattleUseFunc_GuardSpec(u8 taskId)
{
if (ExecuteTableBasedItemEffect(&gPlayerParty[gBattlerPartyIndexes[gBattlerInMenuId]], gSpecialVar_ItemId, gBattlerPartyIndexes[gBattlerInMenuId], 0))
{
DisplayItemMessageInBag(taskId, 2, gUnknown_84169DC, sub_810A1F8);
}
else
{
gTasks[taskId].data[8] = 0;
gTasks[taskId].func = sub_80A1EF4;
}
}
void sub_80A1EF4(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (++data[8] > 7)
{
u16 itemId = gSpecialVar_ItemId;
PlaySE(SE_KAIFUKU);
RemoveBagItem(itemId, 1);
DisplayItemMessageInBag(taskId, 2, sub_8042DA4(itemId), sub_80A1F48);
}
}
void sub_80A1F48(u8 taskId)
{
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{
sub_8108CB4();
sub_8108B50(taskId);
}
}
void sub_80A1F78(u8 taskId)
{
if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH)
{
sub_813D934(sub_81279E0);
sub_813D808(taskId);
}
else
{
sub_8108EE0(sub_81279E0);
sub_8108B50(taskId);
}
}
void BattleUseFunc_Medicine(u8 taskId)
{
gUnknown_3005E98 = ItemUseCB_Medicine;
sub_80A1F78(taskId);
}
void sub_80A1FD8(u8 taskId)
{
gUnknown_3005E98 = sub_8126894;
sub_80A1F78(taskId);
}
void BattleUseFunc_Ether(u8 taskId)
{
gUnknown_3005E98 = sub_81256F8;
sub_80A1F78(taskId);
}
void BattleUseFunc_PokeDoll(u8 taskId)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER))
{
sub_80A1A44();
ItemUse_SetQuestLogEvent(4, 0, gSpecialVar_ItemId, 0xFFFF);
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_8108B50);
}
else
sub_80A1110(taskId, 0);
}
void ItemUseOutOfBattle_EnigmaBerry(u8 taskId)
{
switch (GetItemEffectType(gSpecialVar_ItemId) - 1)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
gTasks[taskId].data[4] = 1;
FieldUseFunc_Medicine(taskId);
break;
case 9:
gTasks[taskId].data[4] = 1;
FieldUseFunc_SacredAsh(taskId);
break;
case 0:
gTasks[taskId].data[4] = 1;
FieldUseFunc_RareCandy(taskId);
break;
case 18:
case 19:
gTasks[taskId].data[4] = 1;
FieldUseFunc_PpUp(taskId);
break;
case 20:
gTasks[taskId].data[4] = 1;
FieldUseFunc_Ether(taskId);
break;
default:
gTasks[taskId].data[4] = 4;
FieldUseFunc_OakStopsYou(taskId);
}
}
void ItemUseInBattle_EnigmaBerry(u8 taskId)
{
switch (GetItemEffectType(gSpecialVar_ItemId))
{
case 0:
BattleUseFunc_GuardSpec(taskId);
break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 11:
BattleUseFunc_Medicine(taskId);
break;
case 21:
BattleUseFunc_Ether(taskId);
break;
default:
FieldUseFunc_OakStopsYou(taskId);
}
}
void FieldUseFunc_OakStopsYou(u8 taskId)
{
if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH)
{
StringExpandPlaceholders(gStringVar4, gUnknown_8416425);
sub_813EB20(taskId, 4, gStringVar4, sub_813E2B8);
}
else
sub_80A1110(taskId, gTasks[taskId].data[3]);
}
void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon * pokemon, u16 itemId, u16 param)
{
struct UnkStruct_ItemUseQuestLog
{
u16 itemId;
u16 unk2;
u16 species;
u16 param;
} * questLog = Alloc(sizeof(*questLog));
questLog->itemId = itemId;
questLog->param = param;
if (pokemon != NULL)
questLog->species = GetMonData(pokemon, MON_DATA_SPECIES2);
else
questLog->species = 0xFFFF;
sub_8113550(eventId, (void *)questLog);
Free(questLog);
}
+1 -1
View File
@@ -4526,7 +4526,7 @@ void sub_8042D50(int stat)
BattleStringExpandPlaceholdersToDisplayedString(BattleText_UnknownString3);
}
u8 *sub_8042DA4(u16 itemId)
const u8 *sub_8042DA4(u16 itemId)
{
int i;
const u8 *itemEffect;
+1 -1
View File
@@ -736,7 +736,7 @@ static void TeachyTvOptionListController(u8 taskId)
{
input = ListMenuHandleInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != UseFameCheckerFromMenu))
if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != ReturnToBagFromKeyItem))
{
PlaySE(SE_SELECT);
TeachyTvQuitBeginFade(taskId);