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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
; prints text for bookshelves in buildings without sign events
PrintBookshelfText: ; fb50 (3:7b50)
ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
cp SPRITE_FACING_UP
jr nz, .noMatch
; facing up
ld a, [W_CURMAPTILESET]
ld b, a
aCoord 8, 7
ld c, a
ld hl, BookshelfTileIDs
.loop
ld a, [hli]
cp $ff
jr z, .noMatch
cp b
jr nz, .nextBookshelfEntry1
ld a, [hli]
cp c
jr nz, .nextBookshelfEntry2
ld a, [hl]
push af
call EnableAutoTextBoxDrawing
pop af
call PrintPredefTextID
xor a
ld [$ffdb], a
ret
.nextBookshelfEntry1
inc hl
.nextBookshelfEntry2
inc hl
jr .loop
.noMatch
ld a, $ff
ld [$ffdb], a
ld b, BANK(PrintCardKeyText)
ld hl, PrintCardKeyText
jp Bankswitch
; format: db tileset id, bookshelf tile id, text id
BookshelfTileIDs: ; fb8b (3:7b8b)
db PLATEAU, $30
db (IndigoPlateauStatues_id - TextPredefs) / 2 + 1
db HOUSE, $3D
db (TownMapText_id - TextPredefs) / 2 + 1
db HOUSE, $1E
db (BookOrSculptureText_id - TextPredefs) / 2 + 1
db MANSION, $32
db (BookOrSculptureText_id - TextPredefs) / 2 + 1
db REDS_HOUSE_1, $32
db (BookOrSculptureText_id - TextPredefs) / 2 + 1
db LAB, $28
db (BookOrSculptureText_id - TextPredefs) / 2 + 1
db LOBBY, $16
db (ElevatorText_id - TextPredefs) / 2 + 1
db GYM, $1D
db (BookOrSculptureText_id - TextPredefs) / 2 + 1
db DOJO, $1D
db (BookOrSculptureText_id - TextPredefs) / 2 + 1
db GATE, $22
db (BookOrSculptureText_id - TextPredefs) / 2 + 1
db MART, $54
db (PokemonStuffText_id - TextPredefs) / 2 + 1
db MART, $55
db (PokemonStuffText_id - TextPredefs) / 2 + 1
db POKECENTER, $54
db (PokemonStuffText_id - TextPredefs) / 2 + 1
db POKECENTER, $55
db (PokemonStuffText_id - TextPredefs) / 2 + 1
db LOBBY, $50
db (PokemonStuffText_id - TextPredefs) / 2 + 1
db LOBBY, $52
db (PokemonStuffText_id - TextPredefs) / 2 + 1
db SHIP, $36
db (BookOrSculptureText_id - TextPredefs) / 2 + 1
db $FF
IndigoPlateauStatues: ; fbbf (3:7bbf)
TX_ASM
ld hl, IndigoPlateauStatuesText1
call PrintText
ld a, [W_XCOORD]
bit 0, a
ld hl, IndigoPlateauStatuesText2
jr nz, .asm_fbd3
ld hl, IndigoPlateauStatuesText3
.asm_fbd3
call PrintText
jp TextScriptEnd
IndigoPlateauStatuesText1: ; fbd9 (3:7bd9)
TX_FAR _IndigoPlateauStatuesText1
db "@"
IndigoPlateauStatuesText2: ; fbde (3:7bde)
TX_FAR _IndigoPlateauStatuesText2
db "@"
IndigoPlateauStatuesText3: ; fbe3 (3:7be3)
TX_FAR _IndigoPlateauStatuesText3
db "@"
BookOrSculptureText: ; fbe8 (3:7be8)
TX_ASM
ld hl, PokemonBooksText
ld a, [W_CURMAPTILESET]
cp MANSION ; Celadon Mansion tileset
jr nz, .asm_fbfd
aCoord 8, 6
cp $38
jr nz, .asm_fbfd
ld hl, DiglettSculptureText
.asm_fbfd
call PrintText
jp TextScriptEnd
PokemonBooksText: ; fc03 (3:7c03)
TX_FAR _PokemonBooksText
db "@"
DiglettSculptureText: ; fc08 (3:7c08)
TX_FAR _DiglettSculptureText
db "@"
ElevatorText: ; fc0d (3:7c0d)
TX_FAR _ElevatorText
db "@"
TownMapText: ; fc12 (3:7c12)
TX_FAR _TownMapText
db $06
TX_ASM
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, wd730
set 6, [hl]
call GBPalWhiteOutWithDelay3
xor a
ld [hWY], a
inc a
ld [H_AUTOBGTRANSFERENABLED], a
call LoadFontTilePatterns
callba DisplayTownMap
ld hl, wd730
res 6, [hl]
ld de, TextScriptEnd
push de
ld a, [H_LOADEDROMBANK]
push af
jp CloseTextDisplay
PokemonStuffText: ; fc45 (3:7c45)
TX_FAR _PokemonStuffText
db "@"
|