Alchemy
Loading...
Searching...
No Matches

articles.c

Go to the documentation of this file.
2#include "types.h"
3#include "edition.h"
4#include "text_font.h"
5
6// Window text tables: each edition's articles and possessives, the kana
7// marks and the sprite motion curves.
8
9// Articles and possessives, by edition. An item or name carries an article
10// class (the {article_class:N} code of its message), and the message builder
11// (UiText_AppendArticleName in window.c) copies the class's word in front of
12// the name. window.c copies each table whole as a struct ArticleTable. Each
13// table's words come before it in .rodata.
14
15#if (LANGUAGE == LANGUAGE_GERMAN)
16
17const s8 gUiText_ArticleEmpty[] = "";
18
19static const s8 sArticleEin[] = "ein ";
20static const s8 sArticleEine[] = "eine ";
21static const s8 sArticleDie[] = "die ";
22static const s8 sArticleDas[] = "das ";
23
24/// The article of each article class.
25const s8 *const gUiText_ArticleTable[8] = {
26 gUiText_ArticleEmpty, sArticleEin, sArticleEine,
27 sArticleDie, sArticleDas, gUiText_ArticleEmpty,
29};
30
31/// Counted nouns, each plural before its singular; gUiText_NumberWords
32/// (graphics/text/numwords.c) pairs them as {singular, plural}. "K\xe4pfe" is
33/// the ROM's spelling of K\xe4mpfe.
34const u8 gUiText_NumberWord0[] = "K\xe4pfe";
35const u8 gUiText_NumberWord1[] = "Kampf";
36const u8 gUiText_NumberWord2[] = "Tickets";
37const u8 gUiText_NumberWord3[] = "Ticket";
38const u8 gUiText_NumberWord4[] = "Runden";
39const u8 gUiText_NumberWord5[] = "Runde";
40const u8 gUiText_NumberWord6[] = "M\xfcnzen";
41const u8 gUiText_NumberWord7[] = "M\xfcnze";
42const u8 gUiText_NumberWord8[] = "Punkte";
43const u8 gUiText_NumberWord9[] = "Punkt";
44
45static const s8 sPossessiveDein[] = "dein ";
46static const s8 sPossessiveDeine[] = "deine ";
47
48/// The possessive ("your") for each item gender (gUiText_ItemGenders).
49const s8 *const gUiText_ItemPossessives[4] = {
50 sPossessiveDein,
51 sPossessiveDeine,
52 sPossessiveDein,
54};
55
56#elif (LANGUAGE == LANGUAGE_SPANISH)
57
58const s8 gUiText_ArticleEmpty[] = "";
59
60static const s8 sArticleEl[] = "el ";
61static const s8 sArticleLa[] = "la ";
62static const s8 sArticleLos[] = "los ";
63static const s8 sArticleLas[] = "las ";
64
65/// The definite article of each article class.
66const s8 *const gUiText_ArticleTable[5] = {
67 gUiText_ArticleEmpty, sArticleEl, sArticleLa, sArticleLos, sArticleLas,
68};
69
70static const s8 sArticleUn[] = "un ";
71static const s8 sArticleUna[] = "una ";
72static const s8 sArticleUnos[] = "unos ";
73static const s8 sArticleUnas[] = "unas ";
74
75/// The indefinite article of each article class.
76const s8 *const gUiText_IndefiniteArticles[5] = {
77 gUiText_ArticleEmpty, sArticleUn, sArticleUna, sArticleUnos, sArticleUnas,
78};
79
80static const s8 sPossessiveTu[] = "tu ";
81static const s8 sPossessiveTus[] = "tus ";
82
83/// The possessive ("your") for {singular, plural}.
84const s8 *const gUiText_ItemPossessives[2] = {
85 sPossessiveTu,
86 sPossessiveTus,
87};
88
89#elif (LANGUAGE == LANGUAGE_FRENCH)
90
91const s8 gUiText_ArticleEmpty[] = "";
92
93static const s8 sArticleLe[] = "le ";
94static const s8 sArticleLa[] = "la ";
95static const s8 sArticleL[] = "l' ";
96static const s8 sArticleLes[] = "les ";
97static const s8 sArticleUn[] = "un ";
98static const s8 sArticleUne[] = "une ";
99static const s8 sArticleDes[] = "des ";
100
101/// The article of each article class.
102const s8 *const gUiText_ArticleTable[8] = {
103 gUiText_ArticleEmpty, sArticleLe, sArticleLa, sArticleL,
104 sArticleLes, sArticleUn, sArticleUne, sArticleDes,
105};
106
107const s8 gUiText_ItemPronoun[] = "vous ";
108
109#elif (LANGUAGE == LANGUAGE_ITALIAN)
110
111const s8 gUiText_ArticleEmpty[] = "";
112
113static const s8 sArticleIl[] = "il ";
114static const s8 sArticleL[] = "l' ";
115static const s8 sArticleLa[] = "la ";
116static const s8 sArticleLo[] = "lo ";
117static const s8 sArticleLe[] = "le ";
118static const s8 sArticleGli[] = "gli ";
119static const s8 sArticleUn[] = "un ";
120static const s8 sArticleUnElided[] = "un' ";
121static const s8 sArticleUno[] = "uno ";
122static const s8 sArticleUna[] = "una ";
123
124/// The article of each article class.
125const s8 *const gUiText_ArticleTable[11] = {
126 gUiText_ArticleEmpty, sArticleIl, sArticleL, sArticleLa,
127 sArticleLo, sArticleLe, sArticleGli, sArticleUn,
128 sArticleUnElided, sArticleUno, sArticleUna,
129};
130
131static const s8 sPossessiveIlTuo[] = "Il tuo ";
132static const s8 sPossessiveLaTua[] = "la tua ";
133
134/// The possessive ("your") for each item gender (gUiText_ItemGenders).
135const s8 *const gUiText_ItemPossessives[4] = {
136 sPossessiveIlTuo,
137 sPossessiveLaTua,
138 sPossessiveIlTuo,
140};
141
142#elif (LANGUAGE != LANGUAGE_JAPANESE)
143
145
146static const s8 sArticleA[] = "a ";
147static const s8 sArticleAn[] = "an ";
148static const s8 sArticleSome[] = "some ";
149static const s8 sArticleThe[] = "the ";
150
151/// The article of each article class.
152const s8 *const gUiText_ArticleTable[8] = {
157};
158
159#endif
160
161#if (LANGUAGE == LANGUAGE_JAPANESE)
162/// The glyph drawn over a kana for the mark in its code's top two bits: none,
163/// the voiced mark (dakuten) or the semi-voiced mark (handakuten).
164// clang-format off
165const u16 gUiText_MarkGlyphCodes[] = {
170};
171#endif
172
173/// The pointing hand's bob: a smooth rise and fall of 8 pixels over 80
174/// frames.
176 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5,
177 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7,
178 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7,
179 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5,
180 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1,
181};
182
183/// A swing along an arc of radius 4, as {x, y} pairs: x runs 0, 4, 0, -4, 0
184/// while y rises at each side.
186 0, 4, 1, 4, 2, 3, 3, 2,
187 4, 1, 4, 0, 4, 1, 3, 2,
188 2, 3, 1, 4, 0, 4, -1, 4,
189 -2, 3, -3, 2, -4, 1, -4, 0,
190 -4, 1, -3, 2, -2, 3, -1, 4,
191};
192
193/// Nothing in the game reads these 16 bytes.
195 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
196};
197
198/// A hop of up to 8 pixels over 16 frames.
200 0, 1, 1, 2, 3, 4, 6, 8, 6, 4, 3, 2, 1, 1, 0, 0,
201};
202// clang-format on
const u8 gUiSprite_BounceOffsets[16]
A hop of up to 8 pixels over 16 frames.
Definition articles.c:199
const s8 *const gUiText_ArticleTable[8]
The article of each article class.
Definition articles.c:152
static const s8 sArticleA[]
Definition articles.c:146
static const s8 sArticleAn[]
Definition articles.c:147
const u8 gUiSprite_WobbleTail[16]
Nothing in the game reads these 16 bytes.
Definition articles.c:194
const s8 gUiSprite_WobbleOffsets[40]
A swing along an arc of radius 4, as {x, y} pairs: x runs 0, 4, 0, -4, 0 while y rises at each side.
Definition articles.c:185
const s8 gUiText_ArticleEmpty[]
Definition articles.c:144
static const s8 sArticleThe[]
Definition articles.c:149
const u8 gUiSprite_CursorBobOffsets[80]
The pointing hand's bob: a smooth rise and fall of 8 pixels over 80 frames.
Definition articles.c:175
static const s8 sArticleSome[]
Definition articles.c:148
const u16 gUiText_MarkGlyphCodes[]
The edition's language, for C to compare (LANGUAGE == LANGUAGE_GERMAN).
const struct ArticleTable gUiText_IndefiniteArticles
The kanji glyphs and the text marks drawn with characters.
@ TEXT_MARK_SEMIVOICED
the semi-voiced mark (handakuten)
Definition text_font.h:15
@ TEXT_MARK_NONE
Definition text_font.h:13
@ TEXT_MARK_VOICED
the voiced mark (dakuten)
Definition text_font.h:14
The integer types, TRUE, UNUSED and the fixed-address macros.
signed char s8
Definition types.h:10
unsigned short u16
Definition types.h:13
unsigned char u8
Definition types.h:11