diff options
Diffstat (limited to 'data')
-rw-r--r-- | data/event_scripts.s | 164 | ||||
-rw-r--r-- | data/scripts/obtain_item.inc | 161 | ||||
-rw-r--r-- | data/specials.inc | 2 |
3 files changed, 164 insertions, 163 deletions
diff --git a/data/event_scripts.s b/data/event_scripts.s index 01a61b904..1c48b8501 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -17,6 +17,7 @@ #include "constants/map_scripts.h" #include "constants/pokemon.h" #include "constants/berry.h" +#include "constants/script_menu.h" .include "include/macros.inc" .include "include/macros/event.inc" .include "constants/constants.inc" @@ -799,168 +800,7 @@ EventScript_SetBrineyLocation_Route109:: @ 819FD55 return .include "data/scripts/pkmn_center_nurse.inc" - -Std_ObtainItem: @ 819FDF7 - additem VAR_0x8000, VAR_0x8001 - copyvar VAR_0x8007, VAR_RESULT - call Std_ObtainItem_ - return - -Std_ObtainItem_: @ 819FE07 - bufferitemname 1, VAR_0x8000 - checkitemtype VAR_0x8000 - call GetItem_HandlePocket - compare VAR_0x8007, 0x1 - call_if_eq Std_ObtainItem_Success - compare VAR_0x8007, 0x0 - call_if_eq Std_ObtainItem_Fail - return - -GetItem_HandlePocket: - switch VAR_RESULT - case POCKET_ITEMS, GetItem_HandlePocket_Items - case POCKET_KEY_ITEMS, GetItem_HandlePocket_KeyItems - case POCKET_POKE_BALLS, GetItem_HandlePocket_PokeBalls - case POCKET_TM_HM, GetItem_HandlePocket_TMsHMs - case POCKET_BERRIES, GetItem_HandlePocket_Berries - end - -GetItem_HandlePocket_Items: - bufferstdstring 2, 0xE - compare VAR_0x8007, 1 - call_if_eq PlayGetItemFanfare - return - -GetItem_HandlePocket_KeyItems: - bufferstdstring 2, 0xF - compare VAR_0x8007, 1 - call_if_eq PlayGetItemFanfare - return - -GetItem_HandlePocket_PokeBalls: - bufferstdstring 2, 0x10 - compare VAR_0x8007, 1 - call_if_eq PlayGetItemFanfare - return - -GetItem_HandlePocket_TMsHMs: - bufferstdstring 2, 0x11 - compare VAR_0x8007, 1 - call_if_eq PlayGetTMHMFanfare - return - -GetItem_HandlePocket_Berries: - bufferstdstring 2, 0x12 - compare VAR_0x8007, 1 - call_if_eq PlayGetItemFanfare - return - -Std_ObtainItem_Success: @ 819FEB7 - message Message_ObtainedItem - waitfanfare - waitmessage - msgbox Message_PutAwayItem - setvar VAR_RESULT, 1 - return - -Std_ObtainItem_Fail: @ 819FECC - setvar VAR_RESULT, 0 - return - -PlayGetItemFanfare: - playfanfare MUS_FANFA4 - return - -PlayGetTMHMFanfare: - playfanfare MUS_ME_WAZA - return - -Std_ObtainDecoration: @ 819FEDA - adddecoration VAR_0x8000 - copyvar VAR_0x8007, VAR_RESULT - call Std_ObtainDecoration_ - return - -Std_ObtainDecoration_: @ 819FEE8 - bufferdecorationname 1, VAR_0x8000 - compare VAR_0x8007, 1 - call_if_eq Std_ObtainDecoration_Success - compare VAR_0x8007, 0 - call_if_eq Std_ObtainDecoration_Fail - return - -Std_ObtainDecoration_Success: @ 819FF03 - playfanfare MUS_FANFA4 - message Message_ObtainedDecoration - waitfanfare - waitmessage - msgbox Message_TransferredToPC - setvar VAR_RESULT, 1 - return - -Std_ObtainDecoration_Fail: @ 819FF1B - setvar VAR_RESULT, 0 - return - -Std_FindItem: @ 819FF21 - lock - faceplayer - waitse - additem VAR_0x8000, VAR_0x8001 - copyvar VAR_0x8007, VAR_RESULT - bufferitemname 1, VAR_0x8000 - checkitemtype VAR_0x8000 - call GetItem_HandlePocket - compare VAR_0x8007, 1 - call_if_eq Std_FindItem_Success - compare VAR_0x8007, 0 - call_if_eq Std_FindItem_Fail - release - return - -Std_FindItem_Success: @ 819FF52 - removeobject VAR_LAST_TALKED - message Message_FoundOneItem - waitfanfare - waitmessage - msgbox Message_PutAwayItem - return - -Std_FindItem_Fail: @ 819FF65 - msgbox Message_ObtainedItem - msgbox Message_BagFull - setvar VAR_RESULT, 0 - return - -HiddenItemScript:: @ 819FF7B - lockall - waitse - additem VAR_0x8005 - copyvar VAR_0x8007, VAR_RESULT - bufferitemname 0x1, VAR_0x8005 - checkitemtype VAR_0x8005 - call GetItem_HandlePocket - compare VAR_0x8007, 1 - goto_if_eq HiddenItemScript_Success - compare VAR_0x8007, 0 - goto_if_eq HiddenItemScript_Fail - end - -HiddenItemScript_Success: - message Message_FoundOneItem - waitfanfare - waitmessage - msgbox Message_PutAwayItem - special SetFlagInVar - releaseall - end - -HiddenItemScript_Fail: - msgbox Message_FoundOneItem - msgbox Message_BagFull - setvar VAR_RESULT, 0 - releaseall - end + .include "data/scripts/obtain_item.inc" UnusedMixRecordsScript: @ 819FFD5 lock diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc new file mode 100644 index 000000000..0dced2de8 --- /dev/null +++ b/data/scripts/obtain_item.inc @@ -0,0 +1,161 @@ +Std_ObtainItem: @ 819FDF7 + additem VAR_0x8000, VAR_0x8001 + copyvar VAR_0x8007, VAR_RESULT + call EventScript_ObtainItemMessage + return + +EventScript_ObtainItemMessage: @ 819FE07 + bufferitemname 1, VAR_0x8000 + checkitemtype VAR_0x8000 + call EventScript_BufferPocketNameAndTryFanfare + compare VAR_0x8007, TRUE + call_if_eq EventScript_ObtainedItem + compare VAR_0x8007, FALSE + call_if_eq EventScript_NoRoomForItem + return + +EventScript_BufferPocketNameAndTryFanfare: + switch VAR_RESULT + case POCKET_ITEMS, EventScript_BufferItemsPocket + case POCKET_KEY_ITEMS, EventScript_BufferKeyItemsPocket + case POCKET_POKE_BALLS, EventScript_BufferPokeballsPocket + case POCKET_TM_HM, EventScript_BufferTMHMsPocket + case POCKET_BERRIES, EventScript_BufferBerriesPocket + end + +EventScript_BufferItemsPocket: + bufferstdstring 2, STDSTRING_ITEMS + compare VAR_0x8007, TRUE + call_if_eq EventScript_PlayFanfareObtainedItem + return + +EventScript_BufferKeyItemsPocket: + bufferstdstring 2, STDSTRING_KEYITEMS + compare VAR_0x8007, TRUE + call_if_eq EventScript_PlayFanfareObtainedItem + return + +EventScript_BufferPokeballsPocket: + bufferstdstring 2, STDSTRING_POKEBALLS + compare VAR_0x8007, TRUE + call_if_eq EventScript_PlayFanfareObtainedItem + return + +EventScript_BufferTMHMsPocket: + bufferstdstring 2, STDSTRING_TMHMS + compare VAR_0x8007, TRUE + call_if_eq EventScript_PlayFanfareObtainedTMHM + return + +EventScript_BufferBerriesPocket: + bufferstdstring 2, STDSTRING_BERRIES + compare VAR_0x8007, TRUE + call_if_eq EventScript_PlayFanfareObtainedItem + return + +EventScript_ObtainedItem: @ 819FEB7 + message Message_ObtainedItem + waitfanfare + waitmessage + msgbox Message_PutAwayItem + setvar VAR_RESULT, TRUE + return + +EventScript_NoRoomForItem: @ 819FECC + setvar VAR_RESULT, FALSE + return + +EventScript_PlayFanfareObtainedItem: + playfanfare MUS_FANFA4 + return + +EventScript_PlayFanfareObtainedTMHM: + playfanfare MUS_ME_WAZA + return + +Std_ObtainDecoration: @ 819FEDA + adddecoration VAR_0x8000 + copyvar VAR_0x8007, VAR_RESULT + call EventScript_ObtainDecorationMessage + return + +EventScript_ObtainDecorationMessage: @ 819FEE8 + bufferdecorationname 1, VAR_0x8000 + compare VAR_0x8007, TRUE + call_if_eq EventScript_ObtainedDecor + compare VAR_0x8007, FALSE + call_if_eq EventScript_NoRoomForDecor + return + +EventScript_ObtainedDecor: @ 819FF03 + playfanfare MUS_FANFA4 + message Message_ObtainedDecoration + waitfanfare + waitmessage + msgbox Message_TransferredToPC + setvar VAR_RESULT, TRUE + return + +EventScript_NoRoomForDecor: @ 819FF1B + setvar VAR_RESULT, FALSE + return + +Std_FindItem: @ 819FF21 + lock + faceplayer + waitse + additem VAR_0x8000, VAR_0x8001 + copyvar VAR_0x8007, VAR_RESULT + bufferitemname 1, VAR_0x8000 + checkitemtype VAR_0x8000 + call EventScript_BufferPocketNameAndTryFanfare + compare VAR_0x8007, TRUE + call_if_eq EventScript_PickUpItem + compare VAR_0x8007, FALSE + call_if_eq EventScript_NoRoomToPickUpItem + release + return + +EventScript_PickUpItem: @ 819FF52 + removeobject VAR_LAST_TALKED + message Message_FoundOneItem + waitfanfare + waitmessage + msgbox Message_PutAwayItem + return + +EventScript_NoRoomToPickUpItem: @ 819FF65 + msgbox Message_ObtainedItem + msgbox Message_BagFull + setvar VAR_RESULT, FALSE + return + +EventScript_HiddenItem:: @ 819FF7B + lockall + waitse + additem VAR_0x8005 + copyvar VAR_0x8007, VAR_RESULT + bufferitemname 1, VAR_0x8005 + checkitemtype VAR_0x8005 + call EventScript_BufferPocketNameAndTryFanfare + compare VAR_0x8007, TRUE + goto_if_eq EventScript_PickUpHiddenItem + compare VAR_0x8007, FALSE + goto_if_eq EventScript_NoRoomToPickUpHiddenItem + end + +EventScript_PickUpHiddenItem: + message Message_FoundOneItem + waitfanfare + waitmessage + msgbox Message_PutAwayItem + special SetHiddenItemFlag + releaseall + end + +EventScript_NoRoomToPickUpHiddenItem: + msgbox Message_FoundOneItem + msgbox Message_BagFull + setvar VAR_RESULT, FALSE + releaseall + end diff --git a/data/specials.inc b/data/specials.inc index 1427c284e..71e39c654 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -158,7 +158,7 @@ gSpecials:: def_special GetPlayerTrainerIdOnesDigit def_special GetPlayerBigGuyGirlString def_special GetRivalSonDaughterString - def_special SetFlagInVar + def_special SetHiddenItemFlag def_special CableCarWarp def_special CableCar def_special Overworld_PlaySpecialMapMusic |