OSDN Git Service

add type casting for fprintf
[hengband/hengband.git] / src / cmd4.c
index d59dbb7..f388fb0 100644 (file)
@@ -1090,11 +1090,15 @@ void do_cmd_nikki(void)
                prt("(2) Ê¸¾Ï¤òµ­Ï¿¤¹¤ë", 5, 5);
                prt("(3) Ä¾Á°¤ËÆþ¼êËô¤Ï´ÕÄꤷ¤¿¤â¤Î¤òµ­Ï¿¤¹¤ë", 6, 5);
                prt("(4) µ­Ï¿¤ò¾Ãµî¤¹¤ë", 7, 5);
+
+               prt("(R) ¥×¥ì¥¤Æ°²è¤òµ­Ï¿¤¹¤ë/Ãæ»ß¤¹¤ë", 9, 5);
 #else
                prt("(1) Display your record", 4, 5);
                prt("(2) Add record", 5, 5);
                prt("(3) Record item you last get/identify", 6, 5);
                prt("(4) Delete your record", 7, 5);
+
+               prt("(R) Record playing movie / or stop it", 9, 5);
 #endif
 
 
@@ -1126,6 +1130,10 @@ void do_cmd_nikki(void)
                case '4':
                        do_cmd_erase_nikki();
                        break;
+               case 'r': case 'R':
+                       screen_load();
+                       prepare_movie_hooks();
+                       return;
                default: /* Unknown option */
                        bell();
                }
@@ -1344,8 +1352,10 @@ void do_cmd_messages(int num_now)
 {
        int i, n;
 
-       char shower[80];
-       char finder[80];
+       char shower_str[81];
+       char finder_str[81];
+       char back_str[81];
+       cptr shower = NULL;
        int wid, hgt;
        int num_lines;
 
@@ -1356,11 +1366,10 @@ void do_cmd_messages(int num_now)
        num_lines = hgt - 4;
 
        /* Wipe finder */
-       strcpy(finder, "");
+       strcpy(finder_str, "");
 
        /* Wipe shower */
-       strcpy(shower, "");
-
+       strcpy(shower_str, "");
 
        /* Total messages */
        n = message_num();
@@ -1386,10 +1395,10 @@ void do_cmd_messages(int num_now)
                        cptr msg = message_str(i+j);
 
                        /* Dump the messages, bottom to top */
-                       c_prt((i+j < num_now ? TERM_WHITE : TERM_SLATE), msg, num_lines + 1 - j, 0);
+                       c_prt((i + j < num_now ? TERM_WHITE : TERM_SLATE), msg, num_lines + 1 - j, 0);
 
                        /* Hilite "shower" */
-                       if (shower[0])
+                       if (shower && shower[0])
                        {
                                cptr str = msg;
 
@@ -1417,13 +1426,12 @@ void do_cmd_messages(int num_now)
 #ifdef JP
                /* translation */
                prt(format("°ÊÁ°¤Î¥á¥Ã¥»¡¼¥¸ %d-%d Á´Éô¤Ç(%d)",
-                          i, i+j-1, n), 0, 0);
+                          i, i + j - 1, n), 0, 0);
 #else
                prt(format("Message Recall (%d-%d of %d)",
-                          i, i+j-1, n), 0, 0);
+                          i, i + j - 1, n), 0, 0);
 #endif
 
-
                /* Display prompt (not very informative) */
 #ifdef JP
                prt("[ 'p' ¤Ç¹¹¤Ë¸Å¤¤¤â¤Î, 'n' ¤Ç¹¹¤Ë¿·¤·¤¤¤â¤Î, '/' ¤Ç¸¡º÷, ESC ¤ÇÃæÃÇ ]", hgt - 1, 0);
@@ -1431,7 +1439,6 @@ void do_cmd_messages(int num_now)
                prt("[Press 'p' for older, 'n' for newer, ..., or ESCAPE]", hgt - 1, 0);
 #endif
 
-
                /* Get a command */
                skey = inkey_special(TRUE);
 
@@ -1441,9 +1448,10 @@ void do_cmd_messages(int num_now)
                /* Hack -- Save the old index */
                j = i;
 
-               /* Hack -- handle show */
-               if (skey == '=')
+               switch (skey)
                {
+               /* Hack -- handle show */
+               case '=':
                        /* Prompt */
 #ifdef JP
                        prt("¶¯Ä´: ", hgt - 1, 0);
@@ -1451,104 +1459,121 @@ void do_cmd_messages(int num_now)
                        prt("Show: ", hgt - 1, 0);
 #endif
 
-
                        /* Get a "shower" string, or continue */
-                       if (!askfor(shower, 80)) continue;
+                       strcpy(back_str, shower_str);
+                       if (askfor(shower_str, 80))
+                       {
+                               /* Show it */
+                               shower = shower_str[0] ? shower_str : NULL;
+                       }
+                       else strcpy(shower_str, back_str);
 
                        /* Okay */
                        continue;
-               }
 
                /* Hack -- handle find */
-               if (skey == '/' || skey == KTRL('s'))
-               {
-                       int z;
+               case '/':
+               case KTRL('s'):
+                       {
+                               int z;
 
-                       /* Prompt */
+                               /* Prompt */
 #ifdef JP
-                       prt("¸¡º÷: ", hgt - 1, 0);
+                               prt("¸¡º÷: ", hgt - 1, 0);
 #else
-                       prt("Find: ", hgt - 1, 0);
+                               prt("Find: ", hgt - 1, 0);
 #endif
 
+                               /* Get a "finder" string, or continue */
+                               strcpy(back_str, finder_str);
+                               if (!askfor(finder_str, 80))
+                               {
+                                       strcpy(finder_str, back_str);
+                                       continue;
+                               }
+                               else if (!finder_str[0])
+                               {
+                                       shower = NULL; /* Stop showing */
+                                       continue;
+                               }
 
-                       /* Get a "finder" string, or continue */
-                       if (!askfor(finder, 80)) continue;
-
-                       /* Show it */
-                       strcpy(shower, finder);
-
-                       /* Scan messages */
-                       for (z = i + 1; z < n; z++)
-                       {
-                               cptr msg = message_str(z);
+                               /* Show it */
+                               shower = finder_str;
 
-                               /* Search for it */
-                               if (my_strstr(msg, finder))
+                               /* Scan messages */
+                               for (z = i + 1; z < n; z++)
                                {
-                                       /* New location */
-                                       i = z;
+                                       cptr msg = message_str(z);
 
-                                       /* Done */
-                                       break;
+                                       /* Search for it */
+                                       if (my_strstr(msg, finder_str))
+                                       {
+                                               /* New location */
+                                               i = z;
+
+                                               /* Done */
+                                               break;
+                                       }
                                }
                        }
-               }
+                       break;
 
                /* Recall 1 older message */
-               if (skey == SKEY_TOP)
-               {
+               case SKEY_TOP:
                        /* Go to the oldest line */
                        i = n - num_lines;
-               }
+                       break;
 
                /* Recall 1 newer message */
-               if (skey == SKEY_BOTTOM)
-               {
+               case SKEY_BOTTOM:
                        /* Go to the newest line */
                        i = 0;
-               }
+                       break;
 
                /* Recall 1 older message */
-               if (skey == '8' || skey == SKEY_UP || skey == '\n' || skey == '\r')
-               {
+               case '8':
+               case SKEY_UP:
+               case '\n':
+               case '\r':
                        /* Go older if legal */
                        i = MIN(i + 1, n - num_lines);
-               }
+                       break;
 
                /* Recall 10 older messages */
-               if (skey == '+')
-               {
+               case '+':
                        /* Go older if legal */
                        i = MIN(i + 10, n - num_lines);
-               }
+                       break;
 
                /* Recall 20 older messages */
-               if (skey == 'p' || skey == KTRL('P') || skey == ' ' || skey == SKEY_PGUP)
-               {
+               case 'p':
+               case KTRL('P'):
+               case ' ':
+               case SKEY_PGUP:
                        /* Go older if legal */
                        i = MIN(i + num_lines, n - num_lines);
-               }
+                       break;
 
                /* Recall 20 newer messages */
-               if (skey == 'n' || skey == KTRL('N') || skey == SKEY_PGDOWN)
-               {
+               case 'n':
+               case KTRL('N'):
+               case SKEY_PGDOWN:
                        /* Go newer (if able) */
                        i = MAX(0, i - num_lines);
-               }
+                       break;
 
                /* Recall 10 newer messages */
-               if (skey == '-')
-               {
+               case '-':
                        /* Go newer (if able) */
                        i = MAX(0, i - 10);
-               }
+                       break;
 
                /* Recall 1 newer messages */
-               if (skey == '2' || skey == SKEY_DOWN)
-               {
+               case '2':
+               case SKEY_DOWN:
                        /* Go newer (if able) */
                        i = MAX(0, i - 1);
+                       break;
                }
 
                /* Hack -- Error of some kind */
@@ -2311,6 +2336,55 @@ static void do_cmd_options_win(void)
 
 
 
+#define OPT_NUM 15
+
+static struct opts
+{
+       char key;
+       cptr name;
+       int row;
+}
+option_fields[OPT_NUM] =
+{
+#ifdef JP
+       { '1', "    ¥­¡¼ÆþÎÏ     ¥ª¥×¥·¥ç¥ó", 3 },
+       { '2', "   ¥Þ¥Ã¥×²èÌÌ    ¥ª¥×¥·¥ç¥ó", 4 },
+       { '3', "  ¥Æ¥­¥¹¥Èɽ¼¨   ¥ª¥×¥·¥ç¥ó", 5 },
+       { '4', "  ¥²¡¼¥à¥×¥ì¥¤   ¥ª¥×¥·¥ç¥ó", 6 },
+       { '5', "  ¹ÔÆ°Ãæ»ß´Ø·¸   ¥ª¥×¥·¥ç¥ó", 7 },
+       { '6', "  ´Ê°×¼«Æ°Ç˲õ   ¥ª¥×¥·¥ç¥ó", 8 },
+       { 'r', "   ¥×¥ì¥¤µ­Ï¿    ¥ª¥×¥·¥ç¥ó", 9 },
+
+       { 'p', "¼«Æ°½¦¤¤¥¨¥Ç¥£¥¿", 11 },
+       { 'd', " ´ðËÜ¥¦¥§¥¤¥ÈÎÌ ", 12 },
+       { 'h', "Äã¥Ò¥Ã¥È¥Ý¥¤¥ó¥È", 13 },
+       { 'm', "  ÄãËâÎÏ¿§ïçÃÍ  ", 14 },
+       { 'a', "   ¼«Æ°¥»¡¼¥Ö    ¥ª¥×¥·¥ç¥ó", 15 },
+       { 'w', "¥¦¥¤¥ó¥É¥¦¥Õ¥é¥°", 16 },
+
+       { 'b', "      ½é´ü       ¥ª¥×¥·¥ç¥ó (»²¾È¤Î¤ß)", 18 },
+       { 'c', "      º¾µ½       ¥ª¥×¥·¥ç¥ó", 19 },
+#else
+       { '1', "Input Options", 3 },
+       { '2', "Map Screen Options", 4 },
+       { '3', "Text Display Options", 5 },
+       { '4', "Game-Play Options", 6 },
+       { '5', "Disturbance Options", 7 },
+       { '6', "Easy Auto-Destroyer Options", 8 },
+       { 'r', "Play record Options", 9 },
+
+       { 'p', "Auto-picker/destroyer editor", 11 },
+       { 'd', "Base Delay Factor", 12 },
+       { 'h', "Hitpoint Warning", 13 },
+       { 'm', "Mana Color Threshold", 14 },
+       { 'a', "Autosave Options", 15 },
+       { 'w', "Window Flags", 16 },
+
+       { 'b', "Birth Options (Browse Only)", 18 },
+       { 'c', "Cheat Options", 19 },
+#endif
+};
+
 
 /*
  * Set or unset various options.
@@ -2320,8 +2394,9 @@ static void do_cmd_options_win(void)
  */
 void do_cmd_options(void)
 {
-       int k;
-
+       char k;
+       int i, d, skey;
+       int y = 0;
 
        /* Save the screen */
        screen_save();
@@ -2329,6 +2404,11 @@ void do_cmd_options(void)
        /* Interact */
        while (1)
        {
+               int n = OPT_NUM;
+
+               /* Does not list cheat option when cheat option is off */
+               if (!p_ptr->noscore && !allow_debug_opts) n--;
+
                /* Clear screen */
                Term_clear();
 
@@ -2336,87 +2416,58 @@ void do_cmd_options(void)
 #ifdef JP
                prt("[ ¥ª¥×¥·¥ç¥ó¤ÎÀßÄê ]", 1, 0);
 #else
-               prt("Options", 1, 0);
+               prt("TinyAngband options", 1, 0);
 #endif
 
-
-               /* Give some choices */
-#ifdef JP
-               prt("(1)      ¥­¡¼ÆþÎÏ        ¥ª¥×¥·¥ç¥ó", 2, 5);
-               prt("(2)     ¥Þ¥Ã¥×²èÌÌ       ¥ª¥×¥·¥ç¥ó", 3, 5);
-               prt("(3)    ¥Æ¥­¥¹¥Èɽ¼¨      ¥ª¥×¥·¥ç¥ó", 4, 5);
-               prt("(4)    ¥²¡¼¥à¥×¥ì¥¤      ¥ª¥×¥·¥ç¥ó", 5, 5);
-               prt("(5)    ¹ÔÆ°Ãæ»ß´Ø·¸      ¥ª¥×¥·¥ç¥ó", 6, 5);
-               prt("(6)    ´Ê°×¼«Æ°Ç˲õ      ¥ª¥×¥·¥ç¥ó", 7, 5);
-               prt("(R)     ¥×¥ì¥¤µ­Ï¿       ¥ª¥×¥·¥ç¥ó", 8, 5);
-
-               /* Special choices */
-               prt("(P)  ¼«Æ°½¦¤¤¥¨¥Ç¥£¥¿", 10, 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", 2, 5);
-               prt("(2) Map Screen Options", 3, 5);
-               prt("(3) Text Display Options", 4, 5);
-               prt("(4) Game-Play Options", 5, 5);
-               prt("(5) Disturbance Options", 6, 5);
-               prt("(6) Easy Auto-Destroyer Options", 7, 5);
-               prt("(R) Play-record Options", 8, 5);
-               /* Special choices */
-               prt("(P) Auto-picker/destroyer editor", 10, 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
-
-               if (!p_ptr->wizard || !allow_debug_opts)
-               {
-                       /* Birth */
-#ifdef JP
-                       prt("(B)        ½é´ü          ¥ª¥×¥·¥ç¥ó (»²¾È¤Î¤ß)", 16, 5);
-#else
-                       prt("(B) Birth Options (Browse Only)", 16, 5);
-#endif
-               }
-               else
+               while(1)
                {
-                       /* Birth */
+                       /* Give some choices */
+                       for (i = 0; i < n; i++)
+                       {
+                               byte a = TERM_WHITE;
+                               if (i == y) a = TERM_L_BLUE;
+                               Term_putstr(5, option_fields[i].row, -1, a, 
+                                       format("(%c) %s", toupper(option_fields[i].key), option_fields[i].name));
+                       }
+
 #ifdef JP
-                       prt("(B)        ½é´ü          ¥ª¥×¥·¥ç¥ó", 16, 5);
+                       prt("<Êý¸þ>¤Ç°ÜÆ°, Enter¤Ç·èÄê, ESC¤Ç¥­¥ã¥ó¥»¥ë, ?¤Ç¥Ø¥ë¥×: ", 21, 0);
 #else
-                       prt("(B) Birth Options", 16, 5);
+                       prt("Move to <dir>, Select to Enter, Cancel to ESC, ? to help: ", 21, 0);
 #endif
-               }
 
+                       /* Get command */
+                       skey = inkey_special(TRUE);
+                       if (!(skey & SKEY_MASK)) k = (char)skey;
+                       else k = 0;
 
-               if (p_ptr->noscore || allow_debug_opts)
-               {
-                       /* Cheating */
-#ifdef JP
-                       prt("(C)        º¾µ½          ¥ª¥×¥·¥ç¥ó", 17, 5);
-#else
-                       prt("(C) Cheating Options", 17, 5);
-#endif
-               }
+                       /* Exit */
+                       if (k == ESCAPE) break;
 
+                       if (my_strchr("\n\r ", k))
+                       {
+                               k = option_fields[y].key;
+                               break;
+                       }
 
-               /* Prompt */
-#ifdef JP
-               prt("¥³¥Þ¥ó¥É:", 19, 0);
-#else
-               prt("Command: ", 19, 0);
-#endif
+                       for (i = 0; i < n; i++)
+                       {
+                               if (tolower(k) == option_fields[i].key) break;
+                       }
 
+                       /* Command is found */
+                       if (i < n) break;
 
-               /* Get command */
-               k = inkey();
+                       /* Hack -- browse help */
+                       if (k == '?') break;
+
+                       /* Move cursor */
+                       d = 0;
+                       if (skey == SKEY_UP) d = 8;
+                       if (skey == SKEY_DOWN) d = 2;
+                       y = (y + ddy[d] + n) % n;
+                       if (!d) bell();
+               }
 
                /* Exit */
                if (k == ESCAPE) break;
@@ -2432,7 +2483,6 @@ void do_cmd_options(void)
 #else
                                do_cmd_options_aux(OPT_PAGE_INPUT, "Input Options");
 #endif
-
                                break;
                        }
 
@@ -2444,7 +2494,6 @@ void do_cmd_options(void)
 #else
                                do_cmd_options_aux(OPT_PAGE_MAPSCREEN, "Map Screen Options");
 #endif
-
                                break;
                        }
 
@@ -2456,7 +2505,6 @@ void do_cmd_options(void)
 #else
                                do_cmd_options_aux(OPT_PAGE_TEXT, "Text Display Options");
 #endif
-
                                break;
                        }
 
@@ -2468,7 +2516,6 @@ void do_cmd_options(void)
 #else
                                do_cmd_options_aux(OPT_PAGE_GAMEPLAY, "Game-Play Options");
 #endif
-
                                break;
                        }
 
@@ -2480,7 +2527,6 @@ void do_cmd_options(void)
 #else
                                do_cmd_options_aux(OPT_PAGE_DISTURBANCE, "Disturbance Options");
 #endif
-
                                break;
                        }
 
@@ -2518,7 +2564,6 @@ void do_cmd_options(void)
 #else
                                do_cmd_options_aux(OPT_PAGE_BIRTH, (!p_ptr->wizard || !allow_debug_opts) ? "Birth Options(browse only)" : "Birth Options((*)s effect score)");
 #endif
-
                                break;
                        }
 
@@ -2538,7 +2583,6 @@ void do_cmd_options(void)
 #else
                                do_cmd_options_cheat("Cheaters never win");
 #endif
-
                                break;
                        }
 
@@ -2550,7 +2594,6 @@ void do_cmd_options(void)
 #else
                                do_cmd_options_autosave("Autosave");
 #endif
-
                                break;
                        }
 
@@ -2580,13 +2623,13 @@ void do_cmd_options(void)
                        case 'd':
                        {
                                /* Prompt */
+                               clear_from(18);
 #ifdef JP
                                prt("¥³¥Þ¥ó¥É: ´ðËÜ¥¦¥§¥¤¥ÈÎÌ", 19, 0);
 #else
                                prt("Command: Base Delay Factor", 19, 0);
 #endif
 
-
                                /* Get a new value */
                                while (1)
                                {
@@ -2628,13 +2671,13 @@ void do_cmd_options(void)
                        case 'h':
                        {
                                /* Prompt */
+                               clear_from(18);
 #ifdef JP
                                prt("¥³¥Þ¥ó¥É: Äã¥Ò¥Ã¥È¥Ý¥¤¥ó¥È·Ù¹ð", 19, 0);
 #else
                                prt("Command: Hitpoint Warning", 19, 0);
 #endif
 
-
                                /* Get a new value */
                                while (1)
                                {
@@ -2675,13 +2718,13 @@ void do_cmd_options(void)
                        case 'm':
                        {
                                /* Prompt */
+                               clear_from(18);
 #ifdef JP
                                prt("¥³¥Þ¥ó¥É: ÄãËâÎÏ¿§ïçÃÍ", 19, 0);
 #else
                                prt("Command: Mana Color Threshold", 19, 0);
 #endif
 
-
                                /* Get a new value */
                                while (1)
                                {
@@ -3666,7 +3709,7 @@ static bool cmd_visuals_aux(int i, int *num, int max)
 static void print_visuals_menu(cptr choice_msg)
 {
 #ifdef JP
-       prt("²èÌÌɽ¼¨¤ÎÀßÄê", 1, 0);
+       prt("[ ²èÌÌɽ¼¨¤ÎÀßÄê ]", 1, 0);
 #else
        prt("Interact with Visuals", 1, 0);
 #endif
@@ -5043,6 +5086,8 @@ static cptr monster_group_text[] =
 #ifdef JP
        "¥æ¥Ë¡¼¥¯",     /* "Uniques" */
        "¾èÇϲÄǽ¤Ê¥â¥ó¥¹¥¿¡¼", /* "Riding" */
+       "¾Þ¶â¼ó", /* "Wanted */
+       "¥¢¥ó¥Ð¡¼¤Î²¦Â²", /* "Ambertite" */
        "¥¢¥ê",
        "¥³¥¦¥â¥ê",
        "¥à¥«¥Ç",
@@ -5102,6 +5147,8 @@ static cptr monster_group_text[] =
 #else
        "Uniques",
        "Ridable monsters",
+       "Wanted monsters",
+       "Ambertite",
        "Ant",
        "Bat",
        "Centipede",
@@ -5171,6 +5218,8 @@ static cptr monster_group_char[] =
 {
        (char *) -1L,
        (char *) -2L,
+       (char *) -3L,
+       (char *) -4L,
        "a",
        "b",
        "c",
@@ -5276,6 +5325,13 @@ static int collect_monsters(int grp_cur, s16b mon_idx[], byte mode)
        /* XXX Hack -- Check if this is the "Riding" group */
        bool grp_riding = (monster_group_char[grp_cur] == (char *) -2L);
 
+       /* XXX Hack -- Check if this is the "Wanted" group */
+       bool grp_wanted = (monster_group_char[grp_cur] == (char *) -3L);
+
+       /* XXX Hack -- Check if this is the "Amberite" group */
+       bool grp_amberite = (monster_group_char[grp_cur] == (char *) -4L);
+
+
        /* Check every race */
        for (i = 0; i < max_r_idx; i++)
        {
@@ -5298,6 +5354,27 @@ static int collect_monsters(int grp_cur, s16b mon_idx[], byte mode)
                        if (!(r_ptr->flags7 & RF7_RIDING)) continue;
                }
 
+               else if (grp_wanted)
+               {
+                       bool wanted = FALSE;
+                       int j;
+                       for (j = 0; j < MAX_KUBI; j++)
+                       {
+                               if (kubi_r_idx[j] == i || kubi_r_idx[j] - 10000 == i ||
+                                       (p_ptr->today_mon && p_ptr->today_mon == i))
+                               {
+                                       wanted = TRUE;
+                                       break;
+                               }
+                       }
+                       if (!wanted) continue;
+               }
+
+               else if (grp_amberite)
+               {
+                       if (!(r_ptr->flags3 & RF3_AMBERITE)) continue;
+               }
+
                else
                {
                        /* Check for race in the group */
@@ -5520,7 +5597,7 @@ static int collect_objects(int grp_cur, int object_idx[], byte mode)
                if (TV_LIFE_BOOK == group_tval)
                {
                        /* Hack -- All spell books */
-                       if (TV_LIFE_BOOK <= k_ptr->tval && k_ptr->tval <= TV_HISSATSU_BOOK)
+                       if (TV_LIFE_BOOK <= k_ptr->tval && k_ptr->tval <= TV_HEX_BOOK)
                        {
                                /* Add the object */
                                object_idx[object_cnt++] = i;
@@ -7270,9 +7347,9 @@ static void do_cmd_knowledge_kill_count(void)
 #endif
                else
 #ifdef JP
-                       fprintf(fff,"¤¢¤Ê¤¿¤Ï%ldÂΤÎŨ¤òÅݤ·¤Æ¤¤¤ë¡£\n\n", Total);
+                       fprintf(fff,"¤¢¤Ê¤¿¤Ï%ldÂΤÎŨ¤òÅݤ·¤Æ¤¤¤ë¡£\n\n", (long int)Total);
 #else
-                       fprintf(fff,"You have defeated %ld %s.\n\n", Total, (Total == 1) ? "enemy" : "enemies");
+                       fprintf(fff,"You have defeated %ld %s.\n\n", (long int)Total, (Total == 1) ? "enemy" : "enemies");
 #endif
        }
 
@@ -7352,10 +7429,10 @@ static void do_cmd_knowledge_kill_count(void)
 
        fprintf(fff,"----------------------------------------------\n");
 #ifdef JP
-       fprintf(fff,"    ¹ç·×: %lu ÂΤòÅݤ·¤¿¡£\n", Total);
+       fprintf(fff,"    ¹ç·×: %lu ÂΤòÅݤ·¤¿¡£\n", (unsigned long int)Total);
 #else
        fprintf(fff,"   Total: %lu creature%s killed.\n",
-               Total, (Total == 1 ? "" : "s"));
+               (unsigned long int)Total, (Total == 1 ? "" : "s"));
 #endif