Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/home/names2.asm
1270 views
1
NamePointers::
2
; entries correspond to *_NAME constants
3
dw MonsterNames
4
dw MoveNames
5
dw UnusedBadgeNames
6
dw ItemNames
7
dw wPartyMonOT ; player's OT names list
8
dw wEnemyMonOT ; enemy's OT names list
9
dw TrainerNames
10
11
GetName::
12
; arguments:
13
; [wNameListIndex] = which name
14
; [wNameListType] = which list
15
; [wPredefBank] = bank of list
16
;
17
; returns pointer to name in de
18
ld a, [wNameListIndex]
19
ld [wNamedObjectIndex], a
20
21
; TM names are separate from item names.
22
; BUG: This applies to all names instead of just items.
23
ASSERT NUM_POKEMON_INDEXES < HM01, \
24
"A bug in GetName will get TM/HM names for Pokémon above ${x:HM01}."
25
ASSERT NUM_ATTACKS < HM01, \
26
"A bug in GetName will get TM/HM names for moves above ${x:HM01}."
27
ASSERT NUM_TRAINERS < HM01, \
28
"A bug in GetName will get TM/HM names for trainers above ${x:HM01}."
29
cp HM01
30
jp nc, GetMachineName
31
32
ldh a, [hLoadedROMBank]
33
push af
34
push hl
35
push bc
36
push de
37
ld a, [wNameListType]
38
dec a
39
jr nz, .otherEntries
40
; 1 = MONSTER_NAME
41
call GetMonName
42
ld hl, NAME_LENGTH
43
add hl, de
44
ld e, l
45
ld d, h
46
jr .gotPtr
47
.otherEntries
48
; 2-7 = other names
49
ld a, [wPredefBank]
50
ldh [hLoadedROMBank], a
51
ld [rROMB], a
52
ld a, [wNameListType]
53
dec a
54
add a
55
ld d, 0
56
ld e, a
57
jr nc, .skip
58
inc d
59
.skip
60
ld hl, NamePointers
61
add hl, de
62
ld a, [hli]
63
ldh [hSwapTemp + 1], a
64
ld a, [hl]
65
ldh [hSwapTemp], a
66
ldh a, [hSwapTemp]
67
ld h, a
68
ldh a, [hSwapTemp + 1]
69
ld l, a
70
ld a, [wNameListIndex]
71
ld b, a ; wanted entry
72
ld c, 0 ; entry counter
73
.nextName
74
ld d, h
75
ld e, l
76
.nextChar
77
ld a, [hli]
78
cp "@"
79
jr nz, .nextChar
80
inc c
81
ld a, b
82
cp c
83
jr nz, .nextName
84
ld h, d
85
ld l, e
86
ld de, wNameBuffer
87
ld bc, NAME_BUFFER_LENGTH
88
call CopyData
89
.gotPtr
90
ld a, e
91
ld [wUnusedNamePointer], a
92
ld a, d
93
ld [wUnusedNamePointer + 1], a
94
pop de
95
pop bc
96
pop hl
97
pop af
98
ldh [hLoadedROMBank], a
99
ld [rROMB], a
100
ret
101
102