mirror of
https://github.com/pret/pokefirered.git
synced 2026-09-29 04:19:07 -05:00
added box link functionality
This commit is contained in:
@@ -140,6 +140,7 @@ ViridianCity_Mart_Items::
|
||||
.2byte ITEM_N_SOLARIZER
|
||||
.2byte ITEM_N_LUNARIZER
|
||||
.2byte ITEM_HONEY
|
||||
.2byte ITEM_POKEMON_BOX_LINK
|
||||
.2byte ITEM_NONE
|
||||
release
|
||||
end
|
||||
|
||||
@@ -99,3 +99,11 @@ EventScript_ExitOaksPC::
|
||||
msgbox Text_ClosedLinkToProfOaksPC
|
||||
goto EventScript_PCMainMenu
|
||||
end
|
||||
|
||||
EventScript_AccessPokemonBoxLink::
|
||||
playse SE_PC_LOGIN
|
||||
msgbox Text_OpenedPkmnStorage, MSGBOX_DEFAULT
|
||||
special ShowPokemonStorageSystemPC
|
||||
waitstate
|
||||
goto EventScript_TurnOffPC
|
||||
end
|
||||
|
||||
@@ -1169,6 +1169,7 @@ extern const u8 CableClub_Text_YouMayTradeHere[];
|
||||
extern const u8 CableClub_Text_YouMayBattleHere[];
|
||||
extern const u8 CableClub_Text_CanMakeBerryPowder[];
|
||||
extern const u8 EventScript_PC[];
|
||||
extern const u8 EventScript_AccessPokemonBoxLink[];
|
||||
|
||||
extern const u8 EventScript_RepelWoreOff[];
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ void ItemUseOutOfBattle_Mail(u8 taskId);
|
||||
void ItemUseOutOfBattle_Medicine(u8 taskId);
|
||||
void ItemUseOutOfBattle_Mint(u8 taskId);
|
||||
void ItemUseOutOfBattle_PokeFlute(u8 taskId);
|
||||
void ItemUseOutOfBattle_PokemonBoxLink(u8 taskId);
|
||||
void ItemUseOutOfBattle_PowderJar(u8 taskId);
|
||||
void ItemUseOutOfBattle_PPRecovery(u8 taskId);
|
||||
void ItemUseOutOfBattle_PPUp(u8 taskId);
|
||||
|
||||
@@ -11114,7 +11114,7 @@ const struct Item gItemsInfo[] =
|
||||
.importance = 1,
|
||||
.pocket = POCKET_KEY_ITEMS,
|
||||
.type = ITEM_TYPE_FIELD,
|
||||
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
|
||||
.fieldUseFunc = ItemUseOutOfBattle_PokemonBoxLink,
|
||||
},
|
||||
|
||||
[ITEM_COIN_CASE] =
|
||||
|
||||
@@ -226,6 +226,20 @@ bool8 PlayerHasGrassPokemonInParty(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 IsPlayerInFrontOfPC(void)
|
||||
{
|
||||
s16 x, y;
|
||||
u32 tileInFront;
|
||||
|
||||
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
|
||||
tileInFront = MapGridGetMetatileIdAt(x, y);
|
||||
|
||||
return (tileInFront == METATILE_Building_PCOff
|
||||
|| tileInFront == METATILE_Building_PCOn
|
||||
|| tileInFront == METATILE_GenericBuilding1_PlayersPCOff
|
||||
|| tileInFront == METATILE_GenericBuilding1_PlayersPCOn);
|
||||
}
|
||||
|
||||
#define tState data[0]
|
||||
#define tTimer data[1]
|
||||
|
||||
@@ -233,7 +247,7 @@ void AnimatePcTurnOn(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
if (FuncIsActiveTask(Task_AnimatePcTurnOn) != TRUE)
|
||||
if (FuncIsActiveTask(Task_AnimatePcTurnOn) != TRUE && IsPlayerInFrontOfPC() == TRUE)
|
||||
{
|
||||
taskId = CreateTask(Task_AnimatePcTurnOn, 8);
|
||||
gTasks[taskId].tState = 0;
|
||||
@@ -310,6 +324,8 @@ void AnimatePcTurnOff()
|
||||
s8 deltaY = 0;
|
||||
u8 direction = GetPlayerFacingDirection();
|
||||
|
||||
if (IsPlayerInFrontOfPC() == FALSE)
|
||||
return;
|
||||
switch (direction)
|
||||
{
|
||||
case DIR_NORTH:
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "field_effect.h"
|
||||
#include "field_fadetransition.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "event_scripts.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_specials.h"
|
||||
#include "field_weather.h"
|
||||
@@ -49,6 +50,7 @@ static void Task_ItemUse_CloseMessageBoxAndReturnToField(u8 taskId);
|
||||
static void Task_ItemUseWaitForFade(u8 taskId);
|
||||
static bool8 FieldCB2_UseItemFromField(void);
|
||||
static void CB2_CheckMail(void);
|
||||
static void Task_AccessPokemonBoxLink(u8);
|
||||
static void ItemUseOnFieldCB_Bicycle(u8 taskId);
|
||||
static bool8 CanFish(void);
|
||||
static void ItemUseOnFieldCB_Rod(u8 taskId);
|
||||
@@ -361,6 +363,18 @@ void ItemUseOutOfBattle_Itemfinder(u8 taskId)
|
||||
SetUpItemUseOnFieldCallback(taskId);
|
||||
}
|
||||
|
||||
void ItemUseOutOfBattle_PokemonBoxLink(u8 taskId)
|
||||
{
|
||||
sItemUseOnFieldCB = Task_AccessPokemonBoxLink;
|
||||
SetUpItemUseOnFieldCallback(taskId);
|
||||
}
|
||||
|
||||
static void Task_AccessPokemonBoxLink(u8 taskId)
|
||||
{
|
||||
ScriptContext_SetupScript(EventScript_AccessPokemonBoxLink);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
#define tIsFieldUse data[3]
|
||||
|
||||
void ItemUseOutOfBattle_CoinCase(u8 taskId)
|
||||
|
||||
Reference in New Issue
Block a user