Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/engine/menus/draw_badges.asm
1271 views
1
DrawBadges:
2
; Draw 4x2 gym leader faces, with the faces replaced by
3
; badges if they are owned. Used in the player status screen.
4
5
; In Japanese versions, names are displayed above faces.
6
; Instead of removing relevant code, the name graphics were erased.
7
8
; Tile ids for face/badge graphics.
9
ld de, wBadgeOrFaceTiles
10
ld hl, .FaceBadgeTiles
11
ld bc, NUM_BADGES
12
call CopyData
13
14
; Booleans for each badge.
15
ld hl, wTempObtainedBadgesBooleans
16
ld bc, NUM_BADGES
17
xor a
18
call FillMemory
19
20
; Alter these based on owned badges.
21
ld de, wTempObtainedBadgesBooleans
22
ld hl, wBadgeOrFaceTiles
23
ld a, [wObtainedBadges]
24
ld b, a
25
ld c, NUM_BADGES
26
.CheckBadge
27
srl b
28
jr nc, .NextBadge
29
ld a, [hl]
30
add 4 ; Badge graphics are after each face
31
ld [hl], a
32
ld a, 1
33
ld [de], a
34
.NextBadge
35
inc hl
36
inc de
37
dec c
38
jr nz, .CheckBadge
39
40
; Draw two rows of badges.
41
ld hl, wBadgeNumberTile
42
ld a, $d8 ; [1]
43
ld [hli], a
44
ld [hl], $60 ; First name
45
46
hlcoord 2, 11
47
ld de, wTempObtainedBadgesBooleans
48
call .DrawBadgeRow
49
50
hlcoord 2, 14
51
ld de, wTempObtainedBadgesBooleans + 4
52
; fallthrough
53
54
.DrawBadgeRow
55
; Draw 4 badges.
56
57
ld c, 4
58
.DrawBadge
59
push de
60
push hl
61
62
; Badge no.
63
ld a, [wBadgeNumberTile]
64
ld [hli], a
65
inc a
66
ld [wBadgeNumberTile], a
67
68
; Names aren't printed if the badge is owned.
69
ld a, [de]
70
and a
71
ld a, [wBadgeNameTile]
72
jr nz, .SkipName
73
call .PlaceTiles
74
jr .PlaceBadge
75
76
.SkipName
77
inc a
78
inc a
79
inc hl
80
81
.PlaceBadge
82
ld [wBadgeNameTile], a
83
ld de, SCREEN_WIDTH - 1
84
add hl, de
85
ld a, [wBadgeOrFaceTiles]
86
call .PlaceTiles
87
add hl, de
88
call .PlaceTiles
89
90
; Shift badge array back one byte.
91
push bc
92
ld hl, wBadgeOrFaceTiles + 1
93
ld de, wBadgeOrFaceTiles
94
ld bc, NUM_BADGES
95
call CopyData
96
pop bc
97
98
pop hl
99
ld de, 4
100
add hl, de
101
102
pop de
103
inc de
104
dec c
105
jr nz, .DrawBadge
106
ret
107
108
.PlaceTiles
109
ld [hli], a
110
inc a
111
ld [hl], a
112
inc a
113
ret
114
115
.FaceBadgeTiles
116
db $20, $28, $30, $38, $40, $48, $50, $58
117
118
GymLeaderFaceAndBadgeTileGraphics:
119
INCBIN "gfx/trainer_card/badges.2bpp"
120
121