diff options
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/events/basement_key.asm | 32 | ||||
-rwxr-xr-x | engine/events/card_key.asm | 37 |
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 |