Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/engine/events/cinnabar_lab.asm
1271 views
1
GiveFossilToCinnabarLab::
2
ld hl, wStatusFlags5
3
set BIT_NO_TEXT_DELAY, [hl]
4
xor a
5
ld [wCurrentMenuItem], a
6
ld a, PAD_A | PAD_B
7
ld [wMenuWatchedKeys], a
8
ld a, [wFilteredBagItemsCount]
9
dec a
10
ld [wMaxMenuItem], a
11
ld a, 2
12
ld [wTopMenuItemY], a
13
ld a, 1
14
ld [wTopMenuItemX], a
15
ld a, [wFilteredBagItemsCount]
16
dec a
17
ld bc, 2
18
ld hl, 3
19
call AddNTimes
20
dec l
21
ld b, l
22
ld c, $d
23
hlcoord 0, 0
24
call TextBoxBorder
25
call UpdateSprites
26
call PrintFossilsInBag
27
ld hl, wStatusFlags5
28
res BIT_NO_TEXT_DELAY, [hl]
29
call HandleMenuInput
30
bit B_PAD_B, a
31
jr nz, .cancelledGivingFossil
32
ld hl, wFilteredBagItems
33
ld a, [wCurrentMenuItem]
34
ld d, 0
35
ld e, a
36
add hl, de
37
ld a, [hl]
38
ldh [hItemToRemoveID], a
39
cp DOME_FOSSIL
40
jr z, .choseDomeFossil
41
cp HELIX_FOSSIL
42
jr z, .choseHelixFossil
43
ld b, AERODACTYL
44
jr .fossilSelected
45
.choseHelixFossil
46
ld b, OMANYTE
47
jr .fossilSelected
48
.choseDomeFossil
49
ld b, KABUTO
50
.fossilSelected
51
ld [wFossilItem], a
52
ld a, b
53
ld [wFossilMon], a
54
call LoadFossilItemAndMonName
55
ld hl, .ScientistSeesFossilText
56
call PrintText
57
call YesNoChoice
58
ld a, [wCurrentMenuItem]
59
and a
60
jr nz, .cancelledGivingFossil
61
ld hl, .ScientistTakesFossilText
62
call PrintText
63
ld a, [wFossilItem]
64
ldh [hItemToRemoveID], a
65
farcall RemoveItemByID
66
ld hl, .GoForAWalkText
67
call PrintText
68
SetEvents EVENT_GAVE_FOSSIL_TO_LAB, EVENT_LAB_STILL_REVIVING_FOSSIL
69
ret
70
.cancelledGivingFossil
71
ld hl, .ComeAgainText
72
call PrintText
73
ret
74
75
.ScientistSeesFossilText:
76
text_far _CinnabarLabFossilRoomScientist1SeesFossilText
77
text_end
78
79
.ScientistTakesFossilText:
80
text_far _CinnabarLabFossilRoomScientist1TakesFossilText
81
text_end
82
83
.GoForAWalkText:
84
text_far _CinnabarLabFossilRoomScientist1GoForAWalkText2
85
text_end
86
87
.ComeAgainText:
88
text_far _CinnabarLabFossilRoomScientist1ComeAgainText
89
text_end
90
91
PrintFossilsInBag:
92
; Prints each fossil in the player's bag on a separate line in the menu.
93
ld hl, wFilteredBagItems
94
xor a
95
ldh [hItemCounter], a
96
.loop
97
ld a, [hli]
98
cp $ff
99
ret z
100
push hl
101
ld [wNamedObjectIndex], a
102
call GetItemName
103
hlcoord 2, 2
104
ldh a, [hItemCounter]
105
ld bc, SCREEN_WIDTH * 2
106
call AddNTimes
107
ld de, wNameBuffer
108
call PlaceString
109
ld hl, hItemCounter
110
inc [hl]
111
pop hl
112
jr .loop
113
114
; loads the names of the fossil item and the resulting mon
115
LoadFossilItemAndMonName::
116
ld a, [wFossilMon]
117
ld [wNamedObjectIndex], a
118
call GetMonName
119
call CopyToStringBuffer
120
ld a, [wFossilItem]
121
ld [wNamedObjectIndex], a
122
call GetItemName
123
ret
124
125