OSDN Git Service

HP警告と同様に, MP警告のオプションを導入.
authorhenkma <henkma@0568b783-4c39-0410-ac80-bf13821ea2a2>
Thu, 4 Sep 2003 17:12:13 +0000 (17:12 +0000)
committerhenkma <henkma@0568b783-4c39-0410-ac80-bf13821ea2a2>
Thu, 4 Sep 2003 17:12:13 +0000 (17:12 +0000)
ただし効果はMPの色の変わる閾値(黄色→赤)だけで, ビープや警告メッセージは無し.

src/cmd4.c
src/defines.h
src/externs.h
src/files.c
src/load.c
src/save.c
src/variable.c
src/xtra1.c

index 2a8ea95..8e1cad6 100644 (file)
@@ -2295,34 +2295,33 @@ void do_cmd_options(void)
 
                /* Give some choices */
 #ifdef JP
-               prt("(1)     ¥­¡¼ÆþÎÏ          ¥ª¥×¥·¥ç¥ó", 4, 5);
-               prt("(2)     ²èÌ̽ÐÎÏ          ¥ª¥×¥·¥ç¥ó", 5, 5);
-               prt("(3)   ¥²¡¼¥à¥×¥ì¥¤        ¥ª¥×¥·¥ç¥ó", 6, 5);
-               prt("(4)   ¹ÔÆ°Ãæ»ß´Ø·¸        ¥ª¥×¥·¥ç¥ó", 7, 5);
-               prt("(5)      ¸úΨ²½           ¥ª¥×¥·¥ç¥ó", 8, 5);
-               prt("(6) ´Ê°×¥¢¥¤¥Æ¥à¼«Æ°Ç˲õ  ¥ª¥×¥·¥ç¥ó", 9, 5);
-               prt("(R)    ¥×¥ì¥¤µ­Ï¿         ¥ª¥×¥·¥ç¥ó", 10, 5);
+               prt("(1)     ¥­¡¼ÆþÎÏ          ¥ª¥×¥·¥ç¥ó", 3, 5);
+               prt("(2)     ²èÌ̽ÐÎÏ          ¥ª¥×¥·¥ç¥ó", 4, 5);
+               prt("(3)   ¥²¡¼¥à¥×¥ì¥¤        ¥ª¥×¥·¥ç¥ó", 5, 5);
+               prt("(4)   ¹ÔÆ°Ãæ»ß´Ø·¸        ¥ª¥×¥·¥ç¥ó", 6, 5);
+               prt("(5)      ¸úΨ²½           ¥ª¥×¥·¥ç¥ó", 7, 5);
+               prt("(6) ´Ê°×¥¢¥¤¥Æ¥à¼«Æ°Ç˲õ  ¥ª¥×¥·¥ç¥ó", 8, 5);
+               prt("(R)    ¥×¥ì¥¤µ­Ï¿         ¥ª¥×¥·¥ç¥ó", 9, 5);
                /* Special choices */
-               prt("(D)  ´ðËÜ¥¦¥§¥¤¥ÈÎÌ", 12, 5);
-               prt("(H) Äã¥Ò¥Ã¥È¥Ý¥¤¥ó¥È·Ù¹ð", 13, 5);
+               prt("(D)  ´ðËÜ¥¦¥§¥¤¥ÈÎÌ", 11, 5);
+               prt("(H) Äã¥Ò¥Ã¥È¥Ý¥¤¥ó¥È·Ù¹ð", 12, 5);
+               prt("(M) ÄãËâÎÏ¿§ïçÃÍ", 13, 5);
                prt("(A)    ¼«Æ°¥»¡¼¥Ö         ¥ª¥×¥·¥ç¥ó", 14, 5);
                /* Window flags */
                prt("(W) ¥¦¥¤¥ó¥É¥¦¥Õ¥é¥°", 15, 5);
 #else
-               prt("(1) Input Options", 4, 5);
-               prt("(2) Output Options", 5, 5);
-               prt("(3) Game-Play Options", 6, 5);
-               prt("(4) Disturbance Options", 7, 5);
-               prt("(5) Efficiency Options", 8, 5);
-               prt("(6) Easy Auto-Destroyer Options", 9, 5);
-               prt("(R) Play-record Options", 10, 5);
-
+               prt("(1) Input Options", 3, 5);
+               prt("(2) Output Options", 4, 5);
+               prt("(3) Game-Play Options", 5, 5);
+               prt("(4) Disturbance Options", 6, 5);
+               prt("(5) Efficiency Options", 7, 5);
+               prt("(6) Easy Auto-Destroyer Options", 8, 5);
+               prt("(R) Play-record Options", 9, 5);
                /* Special choices */
-               prt("(D) Base Delay Factor", 12, 5);
-               prt("(H) Hitpoint Warning", 13, 5);
+               prt("(D) Base Delay Factor", 11, 5);
+               prt("(H) Hitpoint Warning", 12, 5);
+               prt("(M) Mana Color Threshold", 13, 5);
                prt("(A) Autosave Options", 14, 5);
-
-
                /* Window flags */
                prt("(W) Window Flags", 15, 5);
 #endif
@@ -2619,6 +2618,53 @@ void do_cmd_options(void)
                                break;
                        }
 
+                       /* Hack -- mana color factor */
+                       case 'M':
+                       case 'm':
+                       {
+                               /* Prompt */
+#ifdef JP
+                               prt("¥³¥Þ¥ó¥É: ÄãËâÎÏ¿§ïçÃÍ", 18, 0);
+#else
+                               prt("Command: Mana Color Threshold", 18, 0);
+#endif
+
+
+                               /* Get a new value */
+                               while (1)
+                               {
+#ifdef JP
+                                       prt(format("¸½ºß¤ÎÄãËâÎÏ¿§ïçÃÍ: %d0%%",
+                                                  mana_warn), 22, 0);
+#else
+                                       prt(format("Current mana color threshold: %d0%%",
+                                                  mana_warn), 22, 0);
+#endif
+
+#ifdef JP
+                                       prt("ÄãËâÎÏïçÃÍ (0-9) ESC¤Ç·èÄê: ", 20, 0);
+#else
+                                       prt("Mana color Threshold (0-9 or ESC to accept): ", 20, 0);
+#endif
+
+                                       k = inkey();
+                                       if (k == ESCAPE) break;
+                                       else if (k == '?')
+                                       {
+#ifdef JP
+                                               (void)show_file(TRUE, "joption.txt#Manapoint", NULL, 0, 0);
+#else
+                                               (void)show_file(TRUE, "option.txt#Manapoint", NULL, 0, 0);
+#endif
+                                               Term_clear(); 
+                                       }
+                                       else if (isdigit(k)) mana_warn = D2I(k);
+                                       else bell();
+                               }
+
+                               break;
+                       }
+
                        case '?':
 #ifdef JP
                                (void)show_file(TRUE, "joption.txt", NULL, 0, 0);
index 2ab36e2..74816a1 100644 (file)
@@ -76,7 +76,7 @@
 #define H_VER_MAJOR 1
 #define H_VER_MINOR 6
 #define H_VER_PATCH 0
-#define H_VER_EXTRA 0
+#define H_VER_EXTRA 1
 
 
 #define ANGBAND_2_8_1
index bc276fb..797adc7 100644 (file)
@@ -314,6 +314,7 @@ extern bool record_named_pet;
 extern char record_o_name[MAX_NLEN];
 extern s32b record_turn;
 extern byte hitpoint_warn;
+extern byte mana_warn;
 extern byte delay_factor;
 extern s16b autosave_freq;
 extern bool autosave_t;
index ec3180b..d907449 100644 (file)
@@ -1873,7 +1873,7 @@ static void display_player_middle(void)
        /* Dump mana power */
        if (p_ptr->csp >= p_ptr->msp) 
                display_player_one_line(ENTRY_SP, format("%4d/%4d", p_ptr->csp , p_ptr->msp), TERM_L_GREEN);
-       else if (p_ptr->csp > (p_ptr->msp * hitpoint_warn) / 10) 
+       else if (p_ptr->csp > (p_ptr->msp * mana_warn) / 10) 
                display_player_one_line(ENTRY_SP, format("%4d/%4d", p_ptr->csp , p_ptr->msp), TERM_YELLOW);
        else
                display_player_one_line(ENTRY_SP, format("%4d/%4d", p_ptr->csp , p_ptr->msp), TERM_RED);
index 279e5e7..9a8cae6 100644 (file)
@@ -1245,6 +1245,17 @@ static void rd_options(void)
        rd_byte(&b);
        hitpoint_warn = b;
 
+       /* Read "mana_warn" */
+       if(h_older_than(1,6,0,1))
+       {
+               mana_warn=2;
+       }
+       else 
+       {
+               rd_byte(&b);
+               mana_warn = b;
+       }
+
 
        /*** Cheating options ***/
 
index 0626bd7..aab9564 100644 (file)
@@ -392,6 +392,8 @@ static void wr_options(void)
        /* Write "hitpoint_warn" */
        wr_byte(hitpoint_warn);
 
+       /* Write "mana_warn" */
+       wr_byte(mana_warn);
 
        /*** Cheating options ***/
 
index 51be713..0bf064f 100644 (file)
@@ -298,6 +298,7 @@ bool cheat_save;            /* Ask for saving death */
 /* Special options */
 
 byte hitpoint_warn;            /* Hitpoint warning (0 to 9) */
+byte mana_warn;                        /* Mana color (0 to 9) */
 
 byte delay_factor;             /* Delay factor (0 to 9) */
 
index 66d8af4..91ab35d 100644 (file)
@@ -901,7 +901,7 @@ static void prt_sp(void)
        {
                color = TERM_L_GREEN;
        }
-       else if (p_ptr->csp > p_ptr->msp / 5)
+       else if (p_ptr->csp > (p_ptr->msp * mana_warn) / 10)
        {
                color = TERM_YELLOW;
        }