summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/events/basement_key.asm32
-rwxr-xr-xengine/events/card_key.asm37
2 files changed, 69 insertions, 0 deletions
diff --git a/engine/events/basement_key.asm b/engine/events/basement_key.asm
new file mode 100755
index 00000000..ab8c39ce
--- /dev/null
+++ b/engine/events/basement_key.asm
@@ -0,0 +1,32 @@
+_BasementKey:
+; Are we even in the right map to use this?
+ ld a, [wMapGroup]
+ cp GROUP_GOLDENROD_UNDERGROUND
+ jr nz, .nope
+
+ ld a, [wMapNumber]
+ cp MAP_GOLDENROD_UNDERGROUND
+ jr nz, .nope
+; Are we on the tile in front of the door?
+ call GetFacingTileCoord
+ ld a, d
+ cp 22
+ jr nz, .nope
+ ld a, e
+ cp 10
+ jr nz, .nope
+; Let's use the Basement Key
+ ld hl, .BasementKeyScript
+ call QueueScript
+ ld a, TRUE
+ ld [wItemEffectSucceeded], a
+ ret
+
+.nope
+ ld a, FALSE
+ ld [wItemEffectSucceeded], a
+ ret
+
+.BasementKeyScript:
+ closetext
+ farsjump BasementDoorScript
diff --git a/engine/events/card_key.asm b/engine/events/card_key.asm
new file mode 100755
index 00000000..c15b1def
--- /dev/null
+++ b/engine/events/card_key.asm
@@ -0,0 +1,37 @@
+_CardKey:
+; Are we even in the right map to use this?
+ ld a, [wMapGroup]
+ cp GROUP_RADIO_TOWER_3F
+ jr nz, .nope
+
+ ld a, [wMapNumber]
+ cp MAP_RADIO_TOWER_3F
+ jr nz, .nope
+; Are we facing the slot?
+ ld a, [wPlayerDirection]
+ and %1100
+ cp OW_UP
+ jr nz, .nope
+
+ call GetFacingTileCoord
+ ld a, d
+ cp 18
+ jr nz, .nope
+ ld a, e
+ cp 6
+ jr nz, .nope
+; Let's use the Card Key.
+ ld hl, .CardKeyScript
+ call QueueScript
+ ld a, TRUE
+ ld [wItemEffectSucceeded], a
+ ret
+
+.nope
+ ld a, FALSE
+ ld [wItemEffectSucceeded], a
+ ret
+
+.CardKeyScript:
+ closetext
+ farsjump CardKeySlotScript