summaryrefslogtreecommitdiff
path: root/engine/hidden_object_functions3.asm
blob: 84ce6d53fae14ed9ac66b122f3d0695cec74d932 (plain)
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
; prints text for bookshelves in buildings without sign events
PrintBookshelfText:
	ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
	cp SPRITE_FACING_UP
	jr nz, .noMatch
; facing up
	ld a, [wCurMapTileset]
	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
	jpba PrintCardKeyText

; format: db tileset id, bookshelf tile id, text id
BookshelfTileIDs:
	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:
	TX_ASM
	ld hl, IndigoPlateauStatuesText1
	call PrintText
	ld a, [wXCoord]
	bit 0, a
	ld hl, IndigoPlateauStatuesText2
	jr nz, .ok
	ld hl, IndigoPlateauStatuesText3
.ok
	call PrintText
	jp TextScriptEnd

IndigoPlateauStatuesText1:
	TX_FAR _IndigoPlateauStatuesText1
	db "@"

IndigoPlateauStatuesText2:
	TX_FAR _IndigoPlateauStatuesText2
	db "@"

IndigoPlateauStatuesText3:
	TX_FAR _IndigoPlateauStatuesText3
	db "@"

BookOrSculptureText:
	TX_ASM
	ld hl, PokemonBooksText
	ld a, [wCurMapTileset]
	cp MANSION ; Celadon Mansion tileset
	jr nz, .ok
	aCoord 8, 6
	cp $38
	jr nz, .ok
	ld hl, DiglettSculptureText
.ok
	call PrintText
	jp TextScriptEnd

PokemonBooksText:
	TX_FAR _PokemonBooksText
	db "@"

DiglettSculptureText:
	TX_FAR _DiglettSculptureText
	db "@"

ElevatorText:
	TX_FAR _ElevatorText
	db "@"

TownMapText:
	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:
	TX_FAR _PokemonStuffText
	db "@"