1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
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
|