shithub: pokecrystal

ref: 01dffba78871350df2597bd43121ed23797a2d92
dir: /home/string.asm/

View raw version
InitString::
; Init a string of length c.
	push hl
	jr _InitString

InitName::
; Intended for names, so this function is limited to ten characters.
	push hl
	ld c, NAME_LENGTH - 1
_InitString::
; if the string pointed to by hl is empty (defined as "zero or more spaces
; followed by a null"), then initialize it to the string pointed to by de.
	push bc
.loop
	ld a, [hli]
	cp "@"
	jr z, .blank
	cp " "
	jr nz, .notblank
	dec c
	jr nz, .loop
.blank
	pop bc
	ld l, e
	ld h, d
	pop de
	ld b, 0
	inc c
	call CopyBytes
	ret

.notblank
	pop bc
	pop hl
	ret