65 行
862 B
Plaintext
65 行
862 B
Plaintext
#module \
|
|
Char
|
|
|
|
#const CHAR_WIDTH 32
|
|
#const UNKNOWN 52
|
|
|
|
#defcfunc local \
|
|
New \
|
|
str p_text
|
|
If insNum <= 0 {
|
|
NoteSel charDict
|
|
NoteLoad "dict.dat"
|
|
NoteUnsel
|
|
}
|
|
|
|
text.insNum = p_text
|
|
|
|
posX.insNum = gInfo_cX
|
|
posY.insNum = gInfo_cY
|
|
size.insNum = CHAR_WIDTH
|
|
|
|
exists.insNum = True
|
|
|
|
insNum++
|
|
|
|
Return insNum - 1
|
|
|
|
#deffunc local \
|
|
Destroy \
|
|
int p_insId
|
|
exists.insNum = False
|
|
|
|
Return
|
|
|
|
#deffunc local \
|
|
Draw \
|
|
local cnt_,\
|
|
local found,\
|
|
local zoom
|
|
Repeat insNum
|
|
If exists.cnt {
|
|
cnt_ = cnt
|
|
|
|
NoteSel charDict
|
|
Repeat StrLen (text.cnt_) / 3
|
|
Pos posX.cnt_ + cnt * size.cnt_, posY.cnt_
|
|
|
|
found = NoteFind (StrMid (text.cnt_, cnt * 3, 3))
|
|
|
|
If (found = -1) {
|
|
found = UNKNOWN
|
|
}
|
|
|
|
zoom = Double (size.cnt_) / CHAR_WIDTH
|
|
CelPut BUFFER_CHAR, found, zoom, zoom
|
|
Loop
|
|
NoteUnsel
|
|
}
|
|
Loop
|
|
|
|
Return
|
|
|
|
#global
|
|
|