10 if (task->keyboardScale.level != 0) {
14 if (++task->keyFrame >= 4) {
19 if (task->column < 10 || task->row < 3) {
21 task->column * 14 + 0x2F + task->column / 5 * 8, task->row * 18 + 0x5A);
23 for (i = 0;
OVL_NAME(keyboard).pages[task->page].cells[task->row][task->column + i].kind != 1; i--) {
25 switch (task->column + i + task->row * 15) {
52 if (task->keyboardScale.level != ONE) {
53 sprite.
setScale(task->keyboardScale.level, ONE, ONE);
55 if (task->keyboardScale.level != ONE) {
59 if (task->mode != 2) {
60 if (task->keyboardScale.level != ONE) {
63 if (task->partner != -1) {
66 if (++task->partnerFrame >= 7 ||
67 OVL_NAME(nameAnims)[task->partner][task->partnerFrame] == -1) {
68 task->partnerFrame = 0;
72 OVL_NAME(nameAnims)[task->partner][task->partnerFrame], 0x22, 0x30);
78 if (++task->clutRow >= 14) {
82 sprite.
setLayerId(task->layer, task->depth - 1);
89 if (task->keyboardScale.level != ONE) {
92 if (task->mode != 2) {
101 if (task->keyboardScale.level != ONE) {
102 sprite.
setScale(ONE, task->keyboardScale.level, ONE);
104 if (
OVL_NAME(keyboard).pageCount >= 2) {
107 if (++task->arrowFrame >= 6) {
108 task->arrowFrame = 0;
125 sprite.
setLayerId(task->layer, task->depth - 1);
126 if (task->messageScale.level != 0) {
127 if (task->messageScale.level != ONE) {
128 sprite.
setScale(ONE, task->messageScale.level, ONE);
#define NAME_KEY_DELETE
The keyboard's special keys: row * 15 + column of their first cell.
#define NAME_ENTRY_JAPANESE
The Japanese keyboard (three pages) is for language 0 of the European version, the Japanese version's...
#define NAME_KEY_END
row 6, column 13: where Start goes
#define NAME_ENTRY_TEXT_SPRITE(sprite)
A sprite of the keyboard drawn per language, one after the other (USA: the first)
void initSpriteDrawer(SpriteDrawer *obj)
Clears a sprite drawer to neutral (no scale, gray tint, follows the scroll), gives it its methods and...
A name entry: the keyboard, the name typed so far and the panels that open and close.