summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/event_scripts.s164
-rw-r--r--data/scripts/obtain_item.inc161
-rw-r--r--data/specials.inc2
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