*
* mode & 0x01 : force user to answer "YES" or "N"
* mode & 0x02 : don't allow ESCAPE key
+ * mode & 0x04 : no message_add
*/
-#define CHECK_STRICT 0
bool get_check_strict(cptr prompt, int mode)
{
int i;
/* Hack -- Build a "useful" prompt */
if (mode & 1)
{
-#if CHECK_STRICT
-#ifdef JP
- /* (79-8)¥Ð¥¤¥È¤Î»ØÄê, prompt¤¬Ä¹¤«¤Ã¤¿¾ì¹ç,
- (79-9)ʸ»ú¤Î¸å½ªÃ¼Ê¸»ú¤¬½ñ¤¹þ¤Þ¤ì¤ë.
- ±Ñ¸ì¤ÎÊý¤Îstrncpy¤È¤Ï°ã¤¦¤Î¤ÇÃí°Õ.
- else¤ÎÊý¤Îʬ´ô¤âƱÍÍ. --henkma
- */
- mb_strlcpy(buf, prompt, 80-8);
-#else
- strncpy(buf, prompt, 79-8);
- buf[79-8]='\0';
-#endif
- strcat(buf, "[yes/no]");
-#else
#ifdef JP
/* (79-8)¥Ð¥¤¥È¤Î»ØÄê, prompt¤¬Ä¹¤«¤Ã¤¿¾ì¹ç,
(79-9)ʸ»ú¤Î¸å½ªÃ¼Ê¸»ú¤¬½ñ¤¹þ¤Þ¤ì¤ë.
#endif
strcat(buf, "[(O)k/(C)ancel]");
-#endif
}
else
{
/* Prompt for it */
prt(buf, 0, 0);
+ if (!(mode & 4))
+ {
+ /* HACK : Add the line to message buffer */
+ message_add(buf);
+ p_ptr->window |= (PW_MESSAGE);
+ window_stuff();
+ }
+
/* Get an acceptable answer */
while (TRUE)
{
i = inkey();
-#if CHECK_STRICT /* ¤³¤³¤«¤é(¤Á¤ç¤Ã¤ÈŤ¤¤Î¤Ç¥³¥á¥ó¥È) */
- if (i == 'y' || i == 'Y')
- {
- if (!(mode & 1))
- break;
- else
- {
-#ifdef JP
- prt("y (YES¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤)", 0, strlen(buf));
-#else
- prt("y (Please answer YES.)", 0, strlen(buf));
-#endif
- i = inkey();
- if (i == 'e' || i == 'E')
- {
-#ifdef JP
- prt("e (YES¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤)", 0, strlen(buf)+1);
-#else
- prt("e (Please answer YES.)", 0, strlen(buf)+1);
-#endif
- i = inkey();
- if (i == 's' || i == 'S')
- {
- i = 'y';
- break;
- }
- prt("", 0, strlen(buf)+1);
- }
- prt("", 0, strlen(buf));
- }
- }
- if (!(mode & 2) && (i == ESCAPE)) break;
- if (i == 'N' || i == 'n')
- {
- if (!(mode & 1))
- break;
- else
- {
-#ifdef JP
- prt("n (NO¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤)", 0, strlen(buf));
-#else
- prt("n (Please answer NO.)", 0, strlen(buf));
-#endif
- i = inkey();
- if (i == 'o' || i == 'O')
- {
- break;
- }
- prt("", 0, strlen(buf));
- }
- }
-#else
if ( mode & 1 )
{
if ( i == 'o' || i == 'O' )
{
break;
}
-#endif /* ¤³¤³¤Þ¤Ç(¤Á¤ç¤Ã¤ÈŤ¤¤Î¤Ç¥³¥á¥ó¥È) */
bell();
}