OSDN Git Service

Merge remote-tracking branch 'remotes/hengbandosx/english-mind-edits' into feature...
[hengband/hengband.git] / src / util / quarks.c
1 #include "util/quarks.h"
2
3 /*
4  * The number of quarks
5  */
6 STR_OFFSET quark__num;
7
8 /*
9  * The pointers to the quarks [QUARK_MAX]
10  */
11 concptr *quark__str;
12
13 /*
14  * Initialize the quark array
15  */
16 void quark_init(void)
17 {
18     C_MAKE(quark__str, QUARK_MAX, concptr);
19     quark__str[1] = string_make("");
20     quark__num = 2;
21 }
22
23 /*
24  * Add a new "quark" to the set of quarks.
25  */
26 u16b quark_add(concptr str)
27 {
28     u16b i;
29     for (i = 1; i < quark__num; i++) {
30         if (streq(quark__str[i], str))
31             return (i);
32     }
33
34     if (quark__num == QUARK_MAX)
35         return 1;
36
37     quark__num = i + 1;
38     quark__str[i] = string_make(str);
39     return (i);
40 }
41
42 /*
43  * This function looks up a quark
44  */
45 concptr quark_str(STR_OFFSET i)
46 {
47     concptr q;
48
49     /* Return NULL for an invalid index */
50     if ((i < 1) || (i >= quark__num))
51         return NULL;
52
53     /* Access the quark */
54     q = quark__str[i];
55
56     /* Return the quark */
57     return (q);
58 }