Finish item_use
This commit is contained in:
+562
-4
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user