10 * Standard window names
12 const char angband_term_name[8][16] =
25 * Global table of color definitions
27 byte angband_color_table[256][4] =
29 {0x00, 0x00, 0x00, 0x00}, /* TERM_DARK */
30 {0x00, 0xFF, 0xFF, 0xFF}, /* TERM_WHITE */
31 {0x00, 0x80, 0x80, 0x80}, /* TERM_SLATE */
32 {0x00, 0xFF, 0x80, 0x00}, /* TERM_ORANGE */
33 {0x00, 0xC0, 0x00, 0x00}, /* TERM_RED */
34 {0x00, 0x00, 0x80, 0x40}, /* TERM_GREEN */
35 {0x00, 0x00, 0x00, 0xFF}, /* TERM_BLUE */
36 {0x00, 0x80, 0x40, 0x00}, /* TERM_UMBER */
37 {0x00, 0x40, 0x40, 0x40}, /* TERM_L_DARK */
38 {0x00, 0xC0, 0xC0, 0xC0}, /* TERM_L_WHITE */
39 {0x00, 0xFF, 0x00, 0xFF}, /* TERM_VIOLET */
40 {0x00, 0xFF, 0xFF, 0x00}, /* TERM_YELLOW */
41 {0x00, 0xFF, 0x00, 0x00}, /* TERM_L_RED */
42 {0x00, 0x00, 0xFF, 0x00}, /* TERM_L_GREEN */
43 {0x00, 0x00, 0xFF, 0xFF}, /* TERM_L_BLUE */
44 {0x00, 0xC0, 0x80, 0x40} /* TERM_L_UMBER */
48 * @brief 色名称テーブル / Hack -- the "basic" color names (see "TERM_xxx")
50 const concptr color_names[16] =
92 * @brief サブウィンドウ名称テーブル
95 * Certain "screens" always use the main screen, including News, Birth,
96 * Dungeon, Tomb-stone, High-scores, Macros, Colors, Visuals, Options.
98 * Later, special flags may allow sub-windows to "steal" stuff from the
99 * main window, including File dump (help), File dump (artifacts, uniques),
100 * Character screen, Small scale map, Previous Messages, Store screen, etc.
102 * The "ctrl-i" (tab) command flips the "Display inven/equip" and "Display
103 * equip/inven" flags for all windows.
105 * The "ctrl-g" command (or pseudo-command) should perhaps grab a snapshot
106 * of the main screen into any interested windows.
109 const concptr window_flag_desc[32] =
111 _("持ち物/装備一覧", "Display inven/equip"),
112 _("装備/持ち物一覧", "Display equip/inven"),
113 _("呪文一覧", "Display spell list"),
114 _("キャラクタ情報", "Display character"),
115 _("視界内のモンスター表示", "Display monsters in sight"),
117 _("メッセージ", "Display messages"),
118 _("ダンジョン全体図", "Display overhead view"),
119 _("モンスターの思い出", "Display monster recall"),
120 _("アイテムの詳細", "Display object recall"),
121 _("自分の周囲を表示", "Display dungeon view"),
122 _("記念撮影", "Display snap-shot"),
125 _("ボーグ・メッセージ", "Display borg messages"),
126 _("ボーグ・ステータス", "Display borg status"),
147 * @brief シンボル解説テーブル /
148 * The table of "symbol info" -- each entry is a string of the form "X:desc" where "X" is the trigger, and "desc" is the "info".
150 const concptr ident_info[] =
163 "*:財宝を含んだ鉱脈または球形の怪物",
168 "/:竿状武器(アックス/パイク/等)",
246 "}:飛び道具(弓/クロスボウ/スリング)",
250 "!:A potion (or oil)",
251 "\":An amulet (or necklace)",
252 "#:A wall (or secret door) / a plant / a gas",
253 "$:Treasure (gold or gems)",
254 "%:A vein (magma or quartz)",
259 "*:A vein with treasure or a ball monster",
261 ",:Food (or mushroom patch)",
264 "/:A polearm (Axe/Pike/etc)",
265 "0:Entrance to Museum",
266 "1:Entrance to General Store",
267 "2:Entrance to Armory",
268 "3:Entrance to Weaponsmith",
269 "4:Entrance to Temple",
270 "5:Entrance to Alchemy shop",
271 "6:Entrance to Magic store",
272 "7:Entrance to Black Market",
273 "8:Entrance to your home",
274 "9:Entrance to the bookstore",
276 ";:A glyph of warding / an explosive rune",
279 ">:A down staircase",
285 "D:Ancient Dragon/Wyrm",
294 "M:Multi-Headed Reptile",
298 "Q:Quylthulg (Pulsing Flesh Mound)",
299 "R:Reptile/Amphibian",
300 "S:Spider/Scorpion/Tick",
304 "W:Wight/Wraith/etc",
309 "\\:A hafted weapon (mace/whip/etc)",
313 "`:A figurine or statue",
321 "h:Hobbit/Elf/Dwarf",
340 "{:A missile (arrow/bolt/shot)",
341 "|:An edged weapon (sword/dagger/etc)",
342 "}:A launcher (bow/crossbow/sling)",
343 "~:Fluid terrain (or miscellaneous item)",
351 * Encode the screen colors
353 const concptr color_char = "dwsorgbuDWvyRGBU";
356 * Specify attr/char pairs for visual special effects
357 * Be sure to use "index & 0x7F" to avoid illegal access
359 TERM_COLOR misc_to_attr[256];
360 SYMBOL_CODE misc_to_char[256];
363 * Specify attr/char pairs for p_ptr->inventory_list items (by tval)
364 * Be sure to use "index & 0x7F" to avoid illegal access
366 TERM_COLOR tval_to_attr[128];
367 SYMBOL_CODE tval_to_char[128];
370 * Default spell color table (quark index)
372 TERM_COLOR gf_color[MAX_GF];
375 * @brief 万色表現用にランダムな色を選択する関数 /
376 * Get a legal "multi-hued" color for drawing "spells"
380 TERM_COLOR mh_attr(int max)
382 switch (randint1(max))
384 case 1: return (TERM_RED);
385 case 2: return (TERM_GREEN);
386 case 3: return (TERM_BLUE);
387 case 4: return (TERM_YELLOW);
388 case 5: return (TERM_ORANGE);
389 case 6: return (TERM_VIOLET);
390 case 7: return (TERM_L_RED);
391 case 8: return (TERM_L_GREEN);
392 case 9: return (TERM_L_BLUE);
393 case 10: return (TERM_UMBER);
394 case 11: return (TERM_L_UMBER);
395 case 12: return (TERM_SLATE);
396 case 13: return (TERM_WHITE);
397 case 14: return (TERM_L_WHITE);
398 case 15: return (TERM_L_DARK);
406 * @brief 魔法属性に応じたエフェクトの色を返す /
407 * Return a color to use for the bolt/ball spells
411 TERM_COLOR spell_color(EFFECT_ID type)
413 /* Check if A.B.'s new graphics should be used (rr9) */
414 if (streq(ANGBAND_GRAF, "new") || streq(ANGBAND_GRAF, "ne2"))
419 case GF_PSY_SPEAR: return (0x06);
420 case GF_MISSILE: return (0x0F);
421 case GF_ACID: return (0x04);
422 case GF_ELEC: return (0x02);
423 case GF_FIRE: return (0x00);
424 case GF_COLD: return (0x01);
425 case GF_POIS: return (0x03);
426 case GF_HOLY_FIRE: return (0x00);
427 case GF_HELL_FIRE: return (0x00);
428 case GF_MANA: return (0x0E);
430 case GF_SEEKER: return (0x0E);
431 case GF_SUPER_RAY: return (0x0E);
433 case GF_ARROW: return (0x0F);
434 case GF_WATER: return (0x04);
435 case GF_NETHER: return (0x07);
436 case GF_CHAOS: return (mh_attr(15));
437 case GF_DISENCHANT: return (0x05);
438 case GF_NEXUS: return (0x0C);
439 case GF_CONFUSION: return (mh_attr(4));
440 case GF_SOUND: return (0x09);
441 case GF_SHARDS: return (0x08);
442 case GF_FORCE: return (0x09);
443 case GF_INERTIAL: return (0x09);
444 case GF_GRAVITY: return (0x09);
445 case GF_TIME: return (0x09);
446 case GF_LITE_WEAK: return (0x06);
447 case GF_LITE: return (0x06);
448 case GF_DARK_WEAK: return (0x07);
449 case GF_DARK: return (0x07);
450 case GF_PLASMA: return (0x0B);
451 case GF_METEOR: return (0x00);
452 case GF_ICE: return (0x01);
453 case GF_ROCKET: return (0x0F);
454 case GF_DEATH_RAY: return (0x07);
455 case GF_NUKE: return (mh_attr(2));
456 case GF_DISINTEGRATE: return (0x05);
468 case GF_CAUSE_4: return (0x0E);
469 case GF_HAND_DOOM: return (0x07);
470 case GF_CAPTURE: return (0x0E);
471 case GF_IDENTIFY: return (0x01);
472 case GF_ATTACK: return (0x0F);
473 case GF_PHOTO: return (0x06);
476 /* Normal tiles or ASCII */
482 /* Lookup the default colors for this type */
483 concptr s = quark_str(gf_color[type]);
485 if (!s) return (TERM_WHITE);
487 /* Pick a random color */
488 c = s[randint0(strlen(s))];
490 /* Lookup this color */
491 a = my_strchr(color_char, c) - color_char;
493 /* Invalid color (note check for < 0 removed, gave a silly
494 * warning because bytes are always >= 0 -- RG) */
495 if (a > 15) return (TERM_WHITE);
501 /* Standard "color" */
507 * @brief 始点から終点にかけた方向毎にボルトのキャラクタを返す /
508 * Find the attr/char pair to use for a spell effect
517 * It is moving (or has moved) from (x,y) to (nx,ny).
518 * If the distance is not "one", we (may) return "*".
521 u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, EFFECT_ID typ)
531 if ((ny == y) && (nx == x)) base = 0x30;
534 else if (nx == x) base = 0x40;
537 else if (ny == y) base = 0x50;
540 else if ((ny - y) == (x - nx)) base = 0x60;
543 else if ((ny - y) == (nx - x)) base = 0x70;
548 /* Basic spell color */
549 k = spell_color(typ);
551 /* Obtain attr/char */
552 a = misc_to_attr[base + k];
553 c = misc_to_char[base + k];
563 * @brief シンボル1文字をカラーIDに変更する /
564 * Convert a "color letter" into an "actual" color
565 * The colors are: dwsorgbuDWvyRGBU, as shown below
569 TERM_COLOR color_char_to_attr(SYMBOL_CODE c)
573 case 'd': return (TERM_DARK);
574 case 'w': return (TERM_WHITE);
575 case 's': return (TERM_SLATE);
576 case 'o': return (TERM_ORANGE);
577 case 'r': return (TERM_RED);
578 case 'g': return (TERM_GREEN);
579 case 'b': return (TERM_BLUE);
580 case 'u': return (TERM_UMBER);
582 case 'D': return (TERM_L_DARK);
583 case 'W': return (TERM_L_WHITE);
584 case 'v': return (TERM_VIOLET);
585 case 'y': return (TERM_YELLOW);
586 case 'R': return (TERM_L_RED);
587 case 'G': return (TERM_L_GREEN);
588 case 'B': return (TERM_L_BLUE);
589 case 'U': return (TERM_L_UMBER);