mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
64 lines
1.1 KiB
NASM
64 lines
1.1 KiB
NASM
|
|
HandleOwlStatue:
|
||
|
|
call GetRoomStatusAddressInHL
|
||
|
|
ld a, [hl]
|
||
|
|
and $20
|
||
|
|
ret nz
|
||
|
|
ld a, [hl]
|
||
|
|
or $20
|
||
|
|
ld [hl], a
|
||
|
|
|
||
|
|
ld hl, $7B16
|
||
|
|
call OffsetPointerByRoomNumber
|
||
|
|
ld a, [hl]
|
||
|
|
ldh [$F1], a
|
||
|
|
call ItemMessage
|
||
|
|
call GiveItemFromChest
|
||
|
|
ret
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
GetRoomStatusAddressInHL:
|
||
|
|
ld a, [$DBA5] ; isIndoor
|
||
|
|
ld d, a
|
||
|
|
ld hl, $D800
|
||
|
|
ldh a, [$F6] ; room nr
|
||
|
|
ld e, a
|
||
|
|
ldh a, [$F7] ; map nr
|
||
|
|
cp $FF
|
||
|
|
jr nz, .notColorDungeon
|
||
|
|
|
||
|
|
ld d, $00
|
||
|
|
ld hl, $DDE0
|
||
|
|
jr .notIndoorB
|
||
|
|
|
||
|
|
.notColorDungeon:
|
||
|
|
cp $1A
|
||
|
|
jr nc, .notIndoorB
|
||
|
|
|
||
|
|
cp $06
|
||
|
|
jr c, .notIndoorB
|
||
|
|
|
||
|
|
inc d
|
||
|
|
|
||
|
|
.notIndoorB:
|
||
|
|
add hl, de
|
||
|
|
ret
|
||
|
|
|
||
|
|
|
||
|
|
RenderOwlStatueItem:
|
||
|
|
ldh a, [$F6] ; map room
|
||
|
|
cp $B2
|
||
|
|
jr nz, .NotYipYip
|
||
|
|
; Add 2 to room to set room pointer to an empty room for trade items
|
||
|
|
add a, 2
|
||
|
|
ldh [$F6], a
|
||
|
|
call RenderItemForRoom
|
||
|
|
ldh a, [$F6] ; map room
|
||
|
|
; ...and undo it
|
||
|
|
sub a, 2
|
||
|
|
ldh [$F6], a
|
||
|
|
ret
|
||
|
|
.NotYipYip:
|
||
|
|
call RenderItemForRoom
|
||
|
|
ret
|