* Hack -- We will always extract at least one token
* </pre>
*/
-s16b tokenize(char *buf, s16b num, char **tokens, int mode)
+s16b tokenize(char *buf, s16b num, char **tokens, BIT_FLAGS mode)
{
- int i = 0;
+ s16b i = 0;
char *s = buf;
{"GF_SOUND", GF_SOUND },
{"GF_CONFUSION", GF_CONFUSION },
{"GF_FORCE", GF_FORCE },
- {"GF_INERTIA", GF_INERTIA },
+ {"GF_INERTIA", GF_INERTIAL },
{"GF_MANA", GF_MANA },
{"GF_METEOR", GF_METEOR },
{"GF_ICE", GF_ICE },
{"GF_OLD_SLOW", GF_OLD_SLOW },
{"GF_OLD_CONF", GF_OLD_CONF },
{"GF_OLD_SLEEP", GF_OLD_SLEEP },
- {"GF_OLD_DRAIN", GF_OLD_DRAIN },
+ {"GF_HYPODYNAMIA", GF_HYPODYNAMIA },
{"GF_AWAY_UNDEAD", GF_AWAY_UNDEAD },
{"GF_AWAY_EVIL", GF_AWAY_EVIL },
{"GF_AWAY_ALL", GF_AWAY_ALL },
*/
errr process_pref_file_command(char *buf)
{
- int i, j, n1, n2;
+ int i, j;
+ SYMBOL_COLOR n1;
+ SYMBOL_CODE n2;
+
char *zz[16];
switch (buf[0])
{
- /* Mega-Hack -- read external player's history file */
- /* Process "H:<history>" */
- case 'H':
- add_history_from_pref_line(buf + 2);
- return 0;
-
- /* Process "R:<num>:<a>/<c>" -- attr/char for monster races */
- case 'R':
- if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
- {
- monster_race *r_ptr;
- i = (huge)strtol(zz[0], NULL, 0);
- n1 = strtol(zz[1], NULL, 0);
- n2 = strtol(zz[2], NULL, 0);
- if (i >= max_r_idx) return 1;
- r_ptr = &r_info[i];
- if (n1 || (!(n2 & 0x80) && n2)) r_ptr->x_attr = n1; /* Allow TERM_DARK text */
- if (n2) r_ptr->x_char = n2;
+ /* Mega-Hack -- read external player's history file */
+ /* Process "H:<history>" */
+ case 'H':
+ add_history_from_pref_line(buf + 2);
return 0;
- }
- break;
- /* Process "K:<num>:<a>/<c>" -- attr/char for object kinds */
- case 'K':
- if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
- {
- object_kind *k_ptr;
- i = (huge)strtol(zz[0], NULL, 0);
- n1 = strtol(zz[1], NULL, 0);
- n2 = strtol(zz[2], NULL, 0);
- if (i >= max_k_idx) return 1;
- k_ptr = &k_info[i];
- if (n1 || (!(n2 & 0x80) && n2)) k_ptr->x_attr = n1; /* Allow TERM_DARK text */
- if (n2) k_ptr->x_char = n2;
- return 0;
- }
- break;
+ /* Process "R:<num>:<a>/<c>" -- attr/char for monster races */
+ case 'R':
+ if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
+ {
+ monster_race *r_ptr;
+ i = (huge)strtol(zz[0], NULL, 0);
+ n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ if (i >= max_r_idx) return 1;
+ r_ptr = &r_info[i];
+ if (n1 || (!(n2 & 0x80) && n2)) r_ptr->x_attr = n1; /* Allow TERM_DARK text */
+ if (n2) r_ptr->x_char = n2;
+ return 0;
+ }
+ break;
- /* Process "F:<num>:<a>/<c>" -- attr/char for terrain features */
- /* "F:<num>:<a>/<c>" */
- /* "F:<num>:<a>/<c>:LIT" */
- /* "F:<num>:<a>/<c>:<la>/<lc>:<da>/<dc>" */
- case 'F':
- {
- feature_type *f_ptr;
- int num = tokenize(buf + 2, F_LIT_MAX * 2 + 1, zz, TOKENIZE_CHECKQUOTE);
+ /* Process "K:<num>:<a>/<c>" -- attr/char for object kinds */
+ case 'K':
+ if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
+ {
+ object_kind *k_ptr;
+ i = (huge)strtol(zz[0], NULL, 0);
+ n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ if (i >= max_k_idx) return 1;
+ k_ptr = &k_info[i];
+ if (n1 || (!(n2 & 0x80) && n2)) k_ptr->x_attr = n1; /* Allow TERM_DARK text */
+ if (n2) k_ptr->x_char = n2;
+ return 0;
+ }
+ break;
+
+ /* Process "F:<num>:<a>/<c>" -- attr/char for terrain features */
+ /* "F:<num>:<a>/<c>" */
+ /* "F:<num>:<a>/<c>:LIT" */
+ /* "F:<num>:<a>/<c>:<la>/<lc>:<da>/<dc>" */
+ case 'F':
+ {
+ feature_type *f_ptr;
+ int num = tokenize(buf + 2, F_LIT_MAX * 2 + 1, zz, TOKENIZE_CHECKQUOTE);
- if ((num != 3) && (num != 4) && (num != F_LIT_MAX * 2 + 1)) return 1;
- else if ((num == 4) && !streq(zz[3], "LIT")) return 1;
+ if ((num != 3) && (num != 4) && (num != F_LIT_MAX * 2 + 1)) return 1;
+ else if ((num == 4) && !streq(zz[3], "LIT")) return 1;
- i = (huge)strtol(zz[0], NULL, 0);
- if (i >= max_f_idx) return 1;
- f_ptr = &f_info[i];
+ i = (huge)strtol(zz[0], NULL, 0);
+ if (i >= max_f_idx) return 1;
+ f_ptr = &f_info[i];
- n1 = strtol(zz[1], NULL, 0);
- n2 = strtol(zz[2], NULL, 0);
- if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[F_LIT_STANDARD] = n1; /* Allow TERM_DARK text */
- if (n2) f_ptr->x_char[F_LIT_STANDARD] = n2;
+ n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[F_LIT_STANDARD] = n1; /* Allow TERM_DARK text */
+ if (n2) f_ptr->x_char[F_LIT_STANDARD] = n2;
- /* Mega-hack -- feat supports lighting */
- switch (num)
- {
- /* No lighting support */
- case 3:
- n1 = f_ptr->x_attr[F_LIT_STANDARD];
- n2 = f_ptr->x_char[F_LIT_STANDARD];
- for (j = F_LIT_NS_BEGIN; j < F_LIT_MAX; j++)
+ /* Mega-hack -- feat supports lighting */
+ switch (num)
{
- f_ptr->x_attr[j] = n1;
- f_ptr->x_char[j] = n2;
- }
- break;
+ /* No lighting support */
+ case 3:
+ n1 = f_ptr->x_attr[F_LIT_STANDARD];
+ n2 = f_ptr->x_char[F_LIT_STANDARD];
+ for (j = F_LIT_NS_BEGIN; j < F_LIT_MAX; j++)
+ {
+ f_ptr->x_attr[j] = n1;
+ f_ptr->x_char[j] = n2;
+ }
+ break;
- /* Use default lighting */
- case 4:
- apply_default_feat_lighting(f_ptr->x_attr, f_ptr->x_char);
- break;
+ /* Use default lighting */
+ case 4:
+ apply_default_feat_lighting(f_ptr->x_attr, f_ptr->x_char);
+ break;
- /* Use desired lighting */
- case F_LIT_MAX * 2 + 1:
- for (j = F_LIT_NS_BEGIN; j < F_LIT_MAX; j++)
- {
- n1 = strtol(zz[j * 2 + 1], NULL, 0);
- n2 = strtol(zz[j * 2 + 2], NULL, 0);
- if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[j] = n1; /* Allow TERM_DARK text */
- if (n2) f_ptr->x_char[j] = n2;
+ /* Use desired lighting */
+ case F_LIT_MAX * 2 + 1:
+ for (j = F_LIT_NS_BEGIN; j < F_LIT_MAX; j++)
+ {
+ n1 = (SYMBOL_COLOR)strtol(zz[j * 2 + 1], NULL, 0);
+ n2 = (SYMBOL_CODE)strtol(zz[j * 2 + 2], NULL, 0);
+ if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[j] = n1; /* Allow TERM_DARK text */
+ if (n2) f_ptr->x_char[j] = n2;
+ }
+ break;
}
- break;
}
- }
- return 0;
-
- /* Process "S:<num>:<a>/<c>" -- attr/char for special things */
- case 'S':
- if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
- {
- j = (byte)strtol(zz[0], NULL, 0);
- n1 = strtol(zz[1], NULL, 0);
- n2 = strtol(zz[2], NULL, 0);
- misc_to_attr[j] = n1;
- misc_to_char[j] = n2;
return 0;
- }
- break;
- /* Process "U:<tv>:<a>/<c>" -- attr/char for unaware items */
- case 'U':
- if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
- {
- j = (huge)strtol(zz[0], NULL, 0);
- n1 = strtol(zz[1], NULL, 0);
- n2 = strtol(zz[2], NULL, 0);
- for (i = 1; i < max_k_idx; i++)
+ /* Process "S:<num>:<a>/<c>" -- attr/char for special things */
+ case 'S':
+ if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
{
- object_kind *k_ptr = &k_info[i];
- if (k_ptr->tval == j)
+ j = (byte)strtol(zz[0], NULL, 0);
+ n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ misc_to_attr[j] = n1;
+ misc_to_char[j] = n2;
+ return 0;
+ }
+ break;
+
+ /* Process "U:<tv>:<a>/<c>" -- attr/char for unaware items */
+ case 'U':
+ if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
+ {
+ j = (huge)strtol(zz[0], NULL, 0);
+ n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
+ for (i = 1; i < max_k_idx; i++)
{
- if (n1) k_ptr->d_attr = n1;
- if (n2) k_ptr->d_char = n2;
+ object_kind *k_ptr = &k_info[i];
+ if (k_ptr->tval == j)
+ {
+ if (n1) k_ptr->d_attr = n1;
+ if (n2) k_ptr->d_char = n2;
+ }
}
+ return 0;
+ }
+ break;
+
+ /* Process "E:<tv>:<a>" -- attribute for inventory objects */
+ case 'E':
+ if (tokenize(buf+2, 2, zz, TOKENIZE_CHECKQUOTE) == 2)
+ {
+ j = (byte)strtol(zz[0], NULL, 0) % 128;
+ n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+ if (n1) tval_to_attr[j] = n1;
+ return 0;
}
+ break;
+
+ /* Process "A:<str>" -- save an "action" for later */
+ case 'A':
+ text_to_ascii(macro__buf, buf+2);
return 0;
- }
- break;
- /* Process "E:<tv>:<a>" -- attribute for inventory objects */
- case 'E':
- if (tokenize(buf+2, 2, zz, TOKENIZE_CHECKQUOTE) == 2)
+ /* Process "P:<str>" -- normal macro */
+ case 'P':
{
- j = (byte)strtol(zz[0], NULL, 0) % 128;
- n1 = strtol(zz[1], NULL, 0);
- if (n1) tval_to_attr[j] = n1;
+ char tmp[1024];
+
+ text_to_ascii(tmp, buf+2);
+ macro_add(tmp, macro__buf);
return 0;
}
- break;
-
- /* Process "A:<str>" -- save an "action" for later */
- case 'A':
- text_to_ascii(macro__buf, buf+2);
- return 0;
- /* Process "P:<str>" -- normal macro */
- case 'P':
- {
- char tmp[1024];
-
- text_to_ascii(tmp, buf+2);
- macro_add(tmp, macro__buf);
- return 0;
- }
-
- /* Process "C:<str>" -- create keymap */
- case 'C':
- {
- int mode;
- char tmp[1024];
-
- if (tokenize(buf+2, 2, zz, TOKENIZE_CHECKQUOTE) != 2) return 1;
+ /* Process "C:<str>" -- create keymap */
+ case 'C':
+ {
+ int mode;
+ char tmp[1024];
- mode = strtol(zz[0], NULL, 0);
- if ((mode < 0) || (mode >= KEYMAP_MODES)) return 1;
+ if (tokenize(buf+2, 2, zz, TOKENIZE_CHECKQUOTE) != 2) return 1;
- text_to_ascii(tmp, zz[1]);
- if (!tmp[0] || tmp[1]) return 1;
- i = (byte)(tmp[0]);
+ mode = strtol(zz[0], NULL, 0);
+ if ((mode < 0) || (mode >= KEYMAP_MODES)) return 1;
- string_free(keymap_act[mode][i]);
+ text_to_ascii(tmp, zz[1]);
+ if (!tmp[0] || tmp[1]) return 1;
+ i = (byte)(tmp[0]);
- keymap_act[mode][i] = string_make(macro__buf);
+ string_free(keymap_act[mode][i]);
- return 0;
- }
+ keymap_act[mode][i] = string_make(macro__buf);
- /* Process "V:<num>:<kv>:<rv>:<gv>:<bv>" -- visual info */
- case 'V':
- if (tokenize(buf+2, 5, zz, TOKENIZE_CHECKQUOTE) == 5)
- {
- i = (byte)strtol(zz[0], NULL, 0);
- angband_color_table[i][0] = (byte)strtol(zz[1], NULL, 0);
- angband_color_table[i][1] = (byte)strtol(zz[2], NULL, 0);
- angband_color_table[i][2] = (byte)strtol(zz[3], NULL, 0);
- angband_color_table[i][3] = (byte)strtol(zz[4], NULL, 0);
return 0;
}
- break;
- /* Process "X:<str>" -- turn option off */
- /* Process "Y:<str>" -- turn option on */
- case 'X':
- case 'Y':
- for (i = 0; option_info[i].o_desc; i++)
- {
- if (option_info[i].o_var &&
- option_info[i].o_text &&
- streq(option_info[i].o_text, buf + 2))
+ /* Process "V:<num>:<kv>:<rv>:<gv>:<bv>" -- visual info */
+ case 'V':
+ if (tokenize(buf+2, 5, zz, TOKENIZE_CHECKQUOTE) == 5)
{
- int os = option_info[i].o_set;
- int ob = option_info[i].o_bit;
+ i = (byte)strtol(zz[0], NULL, 0);
+ angband_color_table[i][0] = (byte)strtol(zz[1], NULL, 0);
+ angband_color_table[i][1] = (byte)strtol(zz[2], NULL, 0);
+ angband_color_table[i][2] = (byte)strtol(zz[3], NULL, 0);
+ angband_color_table[i][3] = (byte)strtol(zz[4], NULL, 0);
+ return 0;
+ }
+ break;
- if ((p_ptr->playing || character_xtra) &&
- (OPT_PAGE_BIRTH == option_info[i].o_page) && !p_ptr->wizard)
+ /* Process "X:<str>" -- turn option off */
+ /* Process "Y:<str>" -- turn option on */
+ case 'X':
+ case 'Y':
+ for (i = 0; option_info[i].o_desc; i++)
+ {
+ if (option_info[i].o_var &&
+ option_info[i].o_text &&
+ streq(option_info[i].o_text, buf + 2))
{
- msg_format(_("初期オプションは変更できません! '%s'", "Birth options can not changed! '%s'"), buf);
- msg_print(NULL);
- return 0;
- }
+ int os = option_info[i].o_set;
+ int ob = option_info[i].o_bit;
- if (buf[0] == 'X')
- {
- /* Clear */
- option_flag[os] &= ~(1L << ob);
- (*option_info[i].o_var) = FALSE;
- }
- else
- {
- /* Set */
- option_flag[os] |= (1L << ob);
- (*option_info[i].o_var) = TRUE;
+ if ((p_ptr->playing || character_xtra) &&
+ (OPT_PAGE_BIRTH == option_info[i].o_page) && !p_ptr->wizard)
+ {
+ msg_format(_("初期オプションは変更できません! '%s'", "Birth options can not changed! '%s'"), buf);
+ msg_print(NULL);
+ return 0;
+ }
+
+ if (buf[0] == 'X')
+ {
+ /* Clear */
+ option_flag[os] &= ~(1L << ob);
+ (*option_info[i].o_var) = FALSE;
+ }
+ else
+ {
+ /* Set */
+ option_flag[os] |= (1L << ob);
+ (*option_info[i].o_var) = TRUE;
+ }
+ return 0;
}
- return 0;
}
- }
- /* don't know that option. ignore it.*/
- msg_format(_("オプションの名前が正しくありません: %s", "Ignored invalid option: %s"), buf);
- msg_print(NULL);
- return 0;
+ /* don't know that option. ignore it.*/
+ msg_format(_("オプションの名前が正しくありません: %s", "Ignored invalid option: %s"), buf);
+ msg_print(NULL);
+ return 0;
- /* Process "Z:<type>:<str>" -- set spell color */
- case 'Z':
- {
- /* Find the colon */
- char *t = my_strchr(buf + 2, ':');
+ /* Process "Z:<type>:<str>" -- set spell color */
+ case 'Z':
+ {
+ /* Find the colon */
+ char *t = my_strchr(buf + 2, ':');
- /* Oops */
- if (!t) return 1;
+ /* Oops */
+ if (!t) return 1;
- /* Nuke the colon */
- *(t++) = '\0';
+ /* Nuke the colon */
+ *(t++) = '\0';
- for (i = 0; gf_desc[i].name; i++)
- {
- /* Match this type */
- if (streq(gf_desc[i].name, buf + 2))
+ for (i = 0; gf_desc[i].name; i++)
{
- /* Remember this color set */
- gf_color[gf_desc[i].num] = quark_add(t);
+ /* Match this type */
+ if (streq(gf_desc[i].name, buf + 2))
+ {
+ /* Remember this color set */
+ gf_color[gf_desc[i].num] = quark_add(t);
- /* Success */
- return 0;
+ /* Success */
+ return 0;
+ }
}
- }
-
- break;
- }
- /* Initialize macro trigger names and a template */
- /* Process "T:<trigger>:<keycode>:<shift-keycode>" */
- /* Process "T:<template>:<modifier chr>:<modifier name>:..." */
- case 'T':
- {
- int tok = tokenize(buf+2, 2+MAX_MACRO_MOD, zz, 0);
+ break;
+ }
+ /* Initialize macro trigger names and a template */
+ /* Process "T:<trigger>:<keycode>:<shift-keycode>" */
/* Process "T:<template>:<modifier chr>:<modifier name>:..." */
- if (tok >= 4)
+ case 'T':
{
- int i;
- int num;
+ int tok = tokenize(buf+2, 2+MAX_MACRO_MOD, zz, 0);
- if (macro_template != NULL)
+ /* Process "T:<template>:<modifier chr>:<modifier name>:..." */
+ if (tok >= 4)
{
- num = strlen(macro_modifier_chr);
+ int num;
- /* Kill the template string */
- string_free(macro_template);
- macro_template = NULL;
+ if (macro_template != NULL)
+ {
+ num = strlen(macro_modifier_chr);
- /* Kill flag characters of modifier keys */
- string_free(macro_modifier_chr);
+ /* Kill the template string */
+ string_free(macro_template);
+ macro_template = NULL;
- /* Kill corresponding modifier names */
- for (i = 0; i < num; i++)
- {
- string_free(macro_modifier_name[i]);
- }
+ /* Kill flag characters of modifier keys */
+ string_free(macro_modifier_chr);
- /* Kill trigger name strings */
- for (i = 0; i < max_macrotrigger; i++)
- {
- string_free(macro_trigger_name[i]);
- string_free(macro_trigger_keycode[0][i]);
- string_free(macro_trigger_keycode[1][i]);
- }
+ /* Kill corresponding modifier names */
+ for (i = 0; i < num; i++)
+ {
+ string_free(macro_modifier_name[i]);
+ }
- max_macrotrigger = 0;
- }
+ /* Kill trigger name strings */
+ for (i = 0; i < max_macrotrigger; i++)
+ {
+ string_free(macro_trigger_name[i]);
+ string_free(macro_trigger_keycode[0][i]);
+ string_free(macro_trigger_keycode[1][i]);
+ }
- if (*zz[0] == '\0') return 0; /* clear template */
+ max_macrotrigger = 0;
+ }
- /* Number of modifier flags */
- num = strlen(zz[1]);
+ if (*zz[0] == '\0') return 0; /* clear template */
- /* Limit the number */
- num = MIN(MAX_MACRO_MOD, num);
+ /* Number of modifier flags */
+ num = strlen(zz[1]);
- /* Stop if number of modifier is not correct */
- if (2 + num != tok) return 1;
+ /* Limit the number */
+ num = MIN(MAX_MACRO_MOD, num);
- /* Get a template string */
- macro_template = string_make(zz[0]);
+ /* Stop if number of modifier is not correct */
+ if (2 + num != tok) return 1;
- /* Get flag characters of modifier keys */
- macro_modifier_chr = string_make(zz[1]);
+ /* Get a template string */
+ macro_template = string_make(zz[0]);
- /* Get corresponding modifier names */
- for (i = 0; i < num; i++)
- {
- macro_modifier_name[i] = string_make(zz[2+i]);
- }
- }
+ /* Get flag characters of modifier keys */
+ macro_modifier_chr = string_make(zz[1]);
- /* Process "T:<trigger>:<keycode>:<shift-keycode>" */
- else if (tok >= 2)
- {
- char buf[1024];
- int m;
- char *t, *s;
- if (max_macrotrigger >= MAX_MACRO_TRIG)
- {
- msg_print(_("マクロトリガーの設定が多すぎます!", "Too many macro triggers!"));
- return 1;
+ /* Get corresponding modifier names */
+ for (i = 0; i < num; i++)
+ {
+ macro_modifier_name[i] = string_make(zz[2+i]);
+ }
}
- m = max_macrotrigger;
- max_macrotrigger++;
- /* Take into account the escape character */
- t = buf;
- s = zz[0];
- while (*s)
+ /* Process "T:<trigger>:<keycode>:<shift-keycode>" */
+ else if (tok >= 2)
{
- if ('\\' == *s) s++;
- *t++ = *s++;
- }
- *t = '\0';
+ char buf_aux[1024];
+ int m;
+ char *t, *s;
+ if (max_macrotrigger >= MAX_MACRO_TRIG)
+ {
+ msg_print(_("マクロトリガーの設定が多すぎます!", "Too many macro triggers!"));
+ return 1;
+ }
+ m = max_macrotrigger;
+ max_macrotrigger++;
- /* Get a trigger name */
- macro_trigger_name[m] = string_make(buf);
+ /* Take into account the escape character */
+ t = buf_aux;
+ s = zz[0];
+ while (*s)
+ {
+ if ('\\' == *s) s++;
+ *t++ = *s++;
+ }
+ *t = '\0';
- /* Get the corresponding key code */
- macro_trigger_keycode[0][m] = string_make(zz[1]);
+ /* Get a trigger name */
+ macro_trigger_name[m] = string_make(buf_aux);
- if (tok == 3)
- {
- /* Key code of a combination of it with the shift key */
- macro_trigger_keycode[1][m] = string_make(zz[2]);
- }
- else
- {
- macro_trigger_keycode[1][m] = string_make(zz[1]);
+ /* Get the corresponding key code */
+ macro_trigger_keycode[0][m] = string_make(zz[1]);
+
+ if (tok == 3)
+ {
+ /* Key code of a combination of it with the shift key */
+ macro_trigger_keycode[1][m] = string_make(zz[2]);
+ }
+ else
+ {
+ macro_trigger_keycode[1][m] = string_make(zz[1]);
+ }
}
- }
- /* No error */
- return 0;
- }
+ /* No error */
+ return 0;
+ }
}
/* Failure */
{
static char tmp_player_name[32];
char *pn, *tpn;
- for (pn = player_name, tpn = tmp_player_name; *pn; pn++, tpn++)
+ for (pn = p_ptr->name, tpn = tmp_player_name; *pn; pn++, tpn++)
{
#ifdef JP
if (iskanji(*pn))
/* If the player is wielding one? */
if (o_ptr->k_idx)
{
- s16b energy_fire = bow_energy(o_ptr->sval);
+ ENERGY energy_fire = bow_energy(o_ptr->sval);
/* Calculate shots per round */
shots = p_ptr->num_fire * 100;
#else
strcat(tmp," ");
#endif
- strcat(tmp,player_name);
+ strcat(tmp,p_ptr->name);
c_put_str(TERM_L_BLUE, tmp, 1, 34);
c_put_str(TERM_L_BLUE, sp_ptr->title, 3, 9);
* Mode 4 = mutations
* </pre>
*/
-void display_player(int mode)
+void display_player(BIT_FLAGS mode)
{
int i;
{
/* Name, Sex, Race, Class */
#ifdef JP
- sprintf(tmp, "%s%s%s", ap_ptr->title, ap_ptr->no == 1 ? "の":"", player_name);
+ sprintf(tmp, "%s%s%s", ap_ptr->title, ap_ptr->no == 1 ? "の":"", p_ptr->name);
#else
- sprintf(tmp, "%s %s", ap_ptr->title, player_name);
+ sprintf(tmp, "%s %s", ap_ptr->title, p_ptr->name);
#endif
display_player_one_line(ENTRY_NAME, tmp, TERM_L_BLUE);
else
{
#ifdef JP
- sprintf(statmsg, "…あなたは、%sの%d階で%sに殺された。", map_name(), dun_level, p_ptr->died_from);
+ sprintf(statmsg, "…あなたは、%sの%d階で%sに殺された。", map_name(), (int)dun_level, p_ptr->died_from);
#else
sprintf(statmsg, "...You were killed by %s on level %d of %s.", p_ptr->died_from, dun_level, map_name());
#endif
else
{
#ifdef JP
- sprintf(statmsg, "…あなたは現在、 %s の %d 階で探索している。", map_name(), dun_level);
+ sprintf(statmsg, "…あなたは現在、 %s の %d 階で探索している。", map_name(), (int)dun_level);
#else
sprintf(statmsg, "...Now, you are exploring level %d of %s.", dun_level, map_name());
#endif
else if (p_ptr->pclass == CLASS_MAGIC_EATER)
{
char s[EATER_EXT][MAX_NLEN];
- int tval, ext, k_idx;
- int i, magic_num;
+ OBJECT_TYPE_VALUE tval;
+ int ext;
+ IDX k_idx;
+ OBJECT_SUBTYPE_VALUE i;
+ int magic_num;
fprintf(fff, _("\n\n [取り込んだ魔法道具]\n", "\n\n [Magic devices eaten]\n"));
for (i = 0; i < row; i++)
{
fprintf(fff, "\n");
- fprintf(fff, "%-11s %5d ", essence_name[id[i]], p_ptr->magic_num1[id[i]]);
- if(i + row < n) fprintf(fff, "%-11s %5d ", essence_name[id[i + row]], p_ptr->magic_num1[id[i + row]]);
- if(i + row * 2 < n) fprintf(fff, "%-11s %5d", essence_name[id[i + row * 2]], p_ptr->magic_num1[id[i + row * 2]]);
+ fprintf(fff, "%-11s %5d ", essence_name[id[i]], (int)p_ptr->magic_num1[id[i]]);
+ if(i + row < n) fprintf(fff, "%-11s %5d ", essence_name[id[i + row]], (int)p_ptr->magic_num1[id[i + row]]);
+ if(i + row * 2 < n) fprintf(fff, "%-11s %5d", essence_name[id[i + row * 2]], (int)p_ptr->magic_num1[id[i + row * 2]]);
}
fputs("\n", fff);
*/
static void dump_aux_quest(FILE *fff)
{
- int i;
- int *quest_num;
+ IDX i;
+ IDX *quest_num;
int dummy;
fprintf(fff, _("\n\n [クエスト情報]\n", "\n\n [Quest Information]\n"));
/* Allocate Memory */
- C_MAKE(quest_num, max_quests, int);
+ C_MAKE(quest_num, max_q_idx, IDX);
/* Sort by compete level */
- for (i = 1; i < max_quests; i++) quest_num[i] = i;
+ for (i = 1; i < max_q_idx; i++) quest_num[i] = i;
ang_sort_comp = ang_sort_comp_quest_num;
ang_sort_swap = ang_sort_swap_quest_num;
- ang_sort(quest_num, &dummy, max_quests);
+ ang_sort(quest_num, &dummy, max_q_idx);
/* Dump Quest Information */
fputc('\n', fff);
fputc('\n', fff);
/* Free Memory */
- C_KILL(quest_num, max_quests, int);
+ C_KILL(quest_num, max_q_idx, IDX);
}
}
else if (max_dlv[y] == d_info[y].maxdepth) seiha = TRUE;
-#ifdef JP
- fprintf(fff, " %c%-12s: %3d 階\n", seiha ? '!' : ' ', d_name+d_info[y].name, max_dlv[y]);
-#else
- fprintf(fff, " %c%-16s: level %3d\n", seiha ? '!' : ' ', d_name+d_info[y].name, max_dlv[y]);
-#endif
+ fprintf(fff, _(" %c%-12s: %3d 階\n", " %c%-16s: level %3d\n"),
+ seiha ? '!' : ' ', d_name+d_info[y].name, (int)max_dlv[y]);
}
}
{
/* Monsters slain */
- int k;
+ IDX k;
long uniq_total = 0;
long norm_total = 0;
- s16b *who;
+ IDX *who;
/* Sort by monster level */
u16b why = 2;
for (k = uniq_total - 1; k >= 0 && k >= uniq_total - 10; k--)
{
monster_race *r_ptr = &r_info[who[k]];
- fprintf(fff, _(" %-40s (レベル%3d)\n", " %-40s (level %3d)\n"), (r_name + r_ptr->name), r_ptr->level);
+ fprintf(fff, _(" %-40s (レベル%3d)\n", " %-40s (level %3d)\n"), (r_name + r_ptr->name), (int)r_ptr->level);
}
}
* Return FALSE on 'q' to exit from a deep, otherwise TRUE.
* </pre>
*/
-bool show_file(bool show_version, cptr name, cptr what, int line, int mode)
+bool show_file(bool show_version, cptr name, cptr what, int line, BIT_FLAGS mode)
{
int i, n, skey;
break;
}
- sprintf(xtmp, "%s: %s", player_name, what ? what : caption);
+ sprintf(xtmp, "%s: %s", p_ptr->name, what ? what : caption);
my_fputs(ffp, xtmp, 80);
my_fputs(ffp, "\n", 80);
if (character_generated) strcpy(old_player_base, player_base);
/* Cannot be too long */
-#if defined(MACINTOSH) || defined(USE_EMX) || defined(ACORN) || defined(VM)
- if (strlen(player_name) > 15)
+#if defined(MACINTOSH) || defined(ACORN)
+ if (strlen(p_ptr->name) > 15)
{
/* Name too long */
- quit_fmt(_("'%s'という名前は長すぎます!", "The name '%s' is too long!"), player_name);
+ quit_fmt(_("'%s'という名前は長すぎます!", "The name '%s' is too long!"), p_ptr->name);
}
#endif
/* Cannot contain "icky" characters */
- for (i = 0; player_name[i]; i++)
+ for (i = 0; p_ptr->name[i]; i++)
{
/* No control characters */
#ifdef JP
- if (iskanji(player_name[i])){i++;continue;}
- if (iscntrl( (unsigned char)player_name[i]))
+ if (iskanji(p_ptr->name[i])){i++;continue;}
+ if (iscntrl( (unsigned char)p_ptr->name[i]))
#else
- if (iscntrl(player_name[i]))
+ if (iscntrl(p_ptr->name[i]))
#endif
{
/* Illegal characters */
- quit_fmt(_("'%s' という名前は不正なコントロールコードを含んでいます。", "The name '%s' contains control chars!"), player_name);
+ quit_fmt(_("'%s' という名前は不正なコントロールコードを含んでいます。", "The name '%s' contains control chars!"), p_ptr->name);
}
}
#ifdef MACINTOSH
/* Extract "useful" letters */
- for (i = 0; player_name[i]; i++)
+ for (i = 0; p_ptr->name[i]; i++)
{
#ifdef JP
- unsigned char c = player_name[i];
+ unsigned char c = p_ptr->name[i];
#else
- char c = player_name[i];
+ char c = p_ptr->name[i];
#endif
#else
/* Extract "useful" letters */
- for (i = 0; player_name[i]; i++)
+ for (i = 0; p_ptr->name[i]; i++)
{
#ifdef JP
- unsigned char c = player_name[i];
+ unsigned char c = p_ptr->name[i];
#else
- char c = player_name[i];
+ char c = p_ptr->name[i];
#endif
/* Accept some letters */
#ifdef JP
if(iskanji(c)){
- if(k + 2 >= sizeof(player_base) || !player_name[i+1]) break;
+ if(k + 2 >= sizeof(player_base) || !p_ptr->name[i+1]) break;
player_base[k++] = c;
i++;
- player_base[k++] = player_name[i];
+ player_base[k++] = p_ptr->name[i];
}
#ifdef SJIS
else if (iskana(c)) player_base[k++] = c;
else
#endif
/* Convert path separator to underscore */
- if (!strncmp(PATH_SEP, player_name+i, strlen(PATH_SEP))){
+ if (!strncmp(PATH_SEP, p_ptr->name+i, strlen(PATH_SEP))){
player_base[k++] = '_';
i += strlen(PATH_SEP);
}
(void)sprintf(temp, "%s", player_base);
#endif
-#ifdef VM
- /* Hack -- support "flat directory" usage on VM/ESA */
- (void)sprintf(temp, "%s.sv", player_base);
-#endif /* VM */
-
/* Build the filename */
path_build(savefile, sizeof(savefile), ANGBAND_DIR_SAVE, temp);
}
char tmp[64];
/* Save the player name */
- strcpy(tmp, player_name);
+ strcpy(tmp, p_ptr->name);
/* Prompt for a new name */
if (get_string(_("キャラクターの名前を入力して下さい: ", "Enter a name for your character: "), tmp, 15))
{
/* Use the name */
- strcpy(player_name, tmp);
+ strcpy(p_ptr->name, tmp);
}
- if (0 == strlen(player_name))
+ if (0 == strlen(p_ptr->name))
{
/* Use default name */
- strcpy(player_name, "PLAYER");
+ strcpy(p_ptr->name, "PLAYER");
}
strcpy(tmp,ap_ptr->title);
#else
strcat(tmp, " ");
#endif
- strcat(tmp,player_name);
+ strcat(tmp,p_ptr->name);
/* Re-Draw the name (in light blue) */
Term_erase(34, 1, 255);
(void)strcpy(p_ptr->died_from, _("(元気に生きている)", "(alive and well)"));
/* HACK -- don't get sanity blast on updating view */
- hack_mind = FALSE;
+ is_loading_now = FALSE;
/* Update stuff */
update_stuff();
mproc_init();
/* HACK -- reset the hackish flag */
- hack_mind = TRUE;
+ is_loading_now = TRUE;
}
long total_points(void)
{
int i, mult = 100;
- s16b max_dl = 0;
+ DEPTH max_dl = 0;
u32b point, point_h, point_l;
int arena_win = MIN(p_ptr->arena_number, MAX_ARENA_MONS);
if (!fp) return;
/* Save the info */
- fprintf(fp, "%s\n", player_name);
+ fprintf(fp, "%s\n", p_ptr->name);
fprintf(fp, "%d\n", p_ptr->mhp);
fprintf(fp, "%d\n", p_ptr->prace);
fprintf(fp, "%d\n", p_ptr->pclass);
p = player_title[p_ptr->pclass][(p_ptr->lev - 1) / 5];
}
- center_string(buf, player_name);
+ center_string(buf, p_ptr->name);
put_str(buf, 6, 11);
#ifndef JP
{
if (dun_level == 0)
{
- cptr town = p_ptr->town_num ? "街" : "荒野";
+ cptr field_name = p_ptr->town_num ? "街" : "荒野";
if (streq(p_ptr->died_from, "途中終了"))
{
- sprintf(tmp, "%sで死んだ", town);
+ sprintf(tmp, "%sで死んだ", field_name);
}
else
{
- sprintf(tmp, "に%sで殺された", town);
+ sprintf(tmp, "に%sで殺された", field_name);
}
}
else
{
if (streq(p_ptr->died_from, "途中終了"))
{
- sprintf(tmp, "地下 %d 階で死んだ", dun_level);
+ sprintf(tmp, "地下 %d 階で死んだ", (int)dun_level);
}
else
{
- sprintf(tmp, "に地下 %d 階で殺された", dun_level);
+ sprintf(tmp, "に地下 %d 階で殺された", (int)dun_level);
}
}
center_string(buf, tmp);
(void)sprintf(tmp, "%-.24s", ctime(&ct));
center_string(buf, tmp);
put_str(buf, 17, 11);
- msg_format(_("さようなら、%s!", "Goodbye, %s!"), player_name);
+ msg_format(_("さようなら、%s!", "Goodbye, %s!"), p_ptr->name);
}
}