pokered/scripts/CinnabarLabFossilRoom.asm

110 lines
2.2 KiB
NASM
Raw Normal View History

CinnabarLabFossilRoom_Script:
2014-05-18 18:19:10 +00:00
jp EnableAutoTextBoxDrawing
CinnabarLabFossilRoom_TextPointers:
def_text_pointers
dw_const CinnabarLabFossilRoomScientist1Text, TEXT_CINNABARLABFOSSILROOM_SCIENTIST1
dw_const CinnabarLabFossilRoomScientist2Text, TEXT_CINNABARLABFOSSILROOM_SCIENTIST2
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
Lab4Script_GetFossilsInBag:
; construct a list of all fossils in the player's bag
2014-05-18 18:19:10 +00:00
xor a
2015-08-13 05:14:31 +00:00
ld [wFilteredBagItemsCount], a
ld de, wFilteredBagItems
2014-05-18 18:19:10 +00:00
ld hl, FossilsList
.loop
2014-05-18 18:19:10 +00:00
ld a, [hli]
and a
jr z, .done
2014-05-18 18:19:10 +00:00
push hl
push de
ld [wTempByteValue], a
2014-05-18 18:19:10 +00:00
ld b, a
2015-08-13 05:14:31 +00:00
predef GetQuantityOfItemInBag
2014-05-18 18:19:10 +00:00
pop de
pop hl
ld a, b
and a
jr z, .loop
; A fossil is in the bag
ld a, [wTempByteValue]
2014-05-18 18:19:10 +00:00
ld [de], a
inc de
push hl
2015-08-13 05:14:31 +00:00
ld hl, wFilteredBagItemsCount
2014-05-18 18:19:10 +00:00
inc [hl]
pop hl
jr .loop
.done
2014-05-18 18:19:10 +00:00
ld a, $ff
ld [de], a
ret
2016-06-12 00:24:04 +00:00
FossilsList:
2014-05-18 18:19:10 +00:00
db DOME_FOSSIL
db HELIX_FOSSIL
db OLD_AMBER
db 0 ; end
2014-05-18 18:19:10 +00:00
CinnabarLabFossilRoomScientist1Text:
text_asm
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_GAVE_FOSSIL_TO_LAB
jr nz, .check_done_reviving
ld hl, .Text
2014-05-18 18:19:10 +00:00
call PrintText
2015-08-13 05:14:31 +00:00
call Lab4Script_GetFossilsInBag
ld a, [wFilteredBagItemsCount]
2014-05-18 18:19:10 +00:00
and a
jr z, .no_fossils
farcall GiveFossilToCinnabarLab
jr .done
.no_fossils
ld hl, .NoFossilsText
2014-05-18 18:19:10 +00:00
call PrintText
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.check_done_reviving
2015-07-21 17:36:03 +00:00
CheckEventAfterBranchReuseA EVENT_LAB_STILL_REVIVING_FOSSIL, EVENT_GAVE_FOSSIL_TO_LAB
jr z, .done_reviving
ld hl, .GoForAWalkText
2014-05-18 18:19:10 +00:00
call PrintText
jr .done
.done_reviving
2014-05-18 18:19:10 +00:00
call LoadFossilItemAndMonNameBank1D
ld hl, .FossilIsBackToLifeText
2014-05-18 18:19:10 +00:00
call PrintText
2015-07-21 17:36:03 +00:00
SetEvent EVENT_LAB_HANDING_OVER_FOSSIL_MON
2015-08-31 02:38:41 +00:00
ld a, [wFossilMon]
2014-05-18 18:19:10 +00:00
ld b, a
ld c, 30
2014-05-18 18:19:10 +00:00
call GivePokemon
jr nc, .done
2015-07-21 17:36:03 +00:00
ResetEvents EVENT_GAVE_FOSSIL_TO_LAB, EVENT_LAB_STILL_REVIVING_FOSSIL, EVENT_LAB_HANDING_OVER_FOSSIL_MON
jr .done
2014-05-18 18:19:10 +00:00
.Text:
text_far _CinnabarLabFossilRoomScientist1Text
text_end
2014-05-18 18:19:10 +00:00
.NoFossilsText:
text_far _CinnabarLabFossilRoomScientist1NoFossilsText
text_end
2014-05-18 18:19:10 +00:00
.GoForAWalkText:
text_far _CinnabarLabFossilRoomScientist1GoForAWalkText
text_end
2014-05-18 18:19:10 +00:00
.FossilIsBackToLifeText:
text_far _CinnabarLabFossilRoomScientist1FossilIsBackToLifeText
text_end
2014-05-18 18:19:10 +00:00
CinnabarLabFossilRoomScientist2Text:
text_asm
2020-07-16 13:32:09 +00:00
ld a, TRADE_FOR_SAILOR
2014-05-18 18:19:10 +00:00
ld [wWhichTrade], a
2015-02-07 10:43:08 +00:00
predef DoInGameTradeDialogue
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
LoadFossilItemAndMonNameBank1D:
farjp LoadFossilItemAndMonName