mirror of
https://github.com/pret/pokered.git
synced 2024-10-22 22:55:31 +00:00
d001ced41b
This introduces `def_script_pointers`, `def_text_pointers`, and `object_const_def` macros, and applies them to all maps. Most other map labels have also been identified.
110 lines
2.2 KiB
NASM
110 lines
2.2 KiB
NASM
CinnabarLabFossilRoom_Script:
|
|
jp EnableAutoTextBoxDrawing
|
|
|
|
CinnabarLabFossilRoom_TextPointers:
|
|
def_text_pointers
|
|
dw_const CinnabarLabFossilRoomScientist1Text, TEXT_CINNABARLABFOSSILROOM_SCIENTIST1
|
|
dw_const CinnabarLabFossilRoomScientist2Text, TEXT_CINNABARLABFOSSILROOM_SCIENTIST2
|
|
|
|
Lab4Script_GetFossilsInBag:
|
|
; construct a list of all fossils in the player's bag
|
|
xor a
|
|
ld [wFilteredBagItemsCount], a
|
|
ld de, wFilteredBagItems
|
|
ld hl, FossilsList
|
|
.loop
|
|
ld a, [hli]
|
|
and a
|
|
jr z, .done
|
|
push hl
|
|
push de
|
|
ld [wd11e], a
|
|
ld b, a
|
|
predef GetQuantityOfItemInBag
|
|
pop de
|
|
pop hl
|
|
ld a, b
|
|
and a
|
|
jr z, .loop
|
|
|
|
; A fossil's in the bag
|
|
ld a, [wd11e]
|
|
ld [de], a
|
|
inc de
|
|
push hl
|
|
ld hl, wFilteredBagItemsCount
|
|
inc [hl]
|
|
pop hl
|
|
jr .loop
|
|
.done
|
|
ld a, $ff
|
|
ld [de], a
|
|
ret
|
|
|
|
FossilsList:
|
|
db DOME_FOSSIL
|
|
db HELIX_FOSSIL
|
|
db OLD_AMBER
|
|
db 0 ; end
|
|
|
|
CinnabarLabFossilRoomScientist1Text:
|
|
text_asm
|
|
CheckEvent EVENT_GAVE_FOSSIL_TO_LAB
|
|
jr nz, .check_done_reviving
|
|
ld hl, .Text
|
|
call PrintText
|
|
call Lab4Script_GetFossilsInBag
|
|
ld a, [wFilteredBagItemsCount]
|
|
and a
|
|
jr z, .no_fossils
|
|
farcall GiveFossilToCinnabarLab
|
|
jr .done
|
|
.no_fossils
|
|
ld hl, .NoFossilsText
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
.check_done_reviving
|
|
CheckEventAfterBranchReuseA EVENT_LAB_STILL_REVIVING_FOSSIL, EVENT_GAVE_FOSSIL_TO_LAB
|
|
jr z, .done_reviving
|
|
ld hl, .GoForAWalkText
|
|
call PrintText
|
|
jr .done
|
|
.done_reviving
|
|
call LoadFossilItemAndMonNameBank1D
|
|
ld hl, .FossilIsBackToLifeText
|
|
call PrintText
|
|
SetEvent EVENT_LAB_HANDING_OVER_FOSSIL_MON
|
|
ld a, [wFossilMon]
|
|
ld b, a
|
|
ld c, 30
|
|
call GivePokemon
|
|
jr nc, .done
|
|
ResetEvents EVENT_GAVE_FOSSIL_TO_LAB, EVENT_LAB_STILL_REVIVING_FOSSIL, EVENT_LAB_HANDING_OVER_FOSSIL_MON
|
|
jr .done
|
|
|
|
.Text:
|
|
text_far _CinnabarLabFossilRoomScientist1Text
|
|
text_end
|
|
|
|
.NoFossilsText:
|
|
text_far _CinnabarLabFossilRoomScientist1NoFossilsText
|
|
text_end
|
|
|
|
.GoForAWalkText:
|
|
text_far _CinnabarLabFossilRoomScientist1GoForAWalkText
|
|
text_end
|
|
|
|
.FossilIsBackToLifeText:
|
|
text_far _CinnabarLabFossilRoomScientist1FossilIsBackToLifeText
|
|
text_end
|
|
|
|
CinnabarLabFossilRoomScientist2Text:
|
|
text_asm
|
|
ld a, TRADE_FOR_SAILOR
|
|
ld [wWhichTrade], a
|
|
predef DoInGameTradeDialogue
|
|
jp TextScriptEnd
|
|
|
|
LoadFossilItemAndMonNameBank1D:
|
|
farjp LoadFossilItemAndMonName
|