変愚蛮怒のメインリポジトリです
Revision | 53c16184f740c059226541222099081708caa481 (tree) |
---|---|
Time | 2002-03-09 18:56:33 |
Author | mogami <mogami@0568...> |
Commiter | mogami |
get_checkの [y/n]のメッセージを履歴に残すようにしてみた。
残って欲しくないところは get_check_strict("...", 4); とすればよい。
@@ -5324,9 +5324,9 @@ void do_cmd_save_screen(void) | ||
5324 | 5324 | } |
5325 | 5325 | |
5326 | 5326 | #ifdef JP |
5327 | - if (get_check("HTMLで出力しますか?")) | |
5327 | + if (get_check_strict("HTMLで出力しますか?", 4)) | |
5328 | 5328 | #else |
5329 | - if (get_check("Save screen dump as HTML? ")) | |
5329 | + if (get_check_strict("Save screen dump as HTML? ", 4)) | |
5330 | 5330 | #endif |
5331 | 5331 | { |
5332 | 5332 | do_cmd_save_screen_html(); |
@@ -5034,7 +5034,7 @@ bool take_hit(int damage_type, int damage, cptr hit_from, int monspell) | ||
5034 | 5034 | flush(); |
5035 | 5035 | |
5036 | 5036 | #ifdef JP |
5037 | -if (get_check("画面を保存しますか?")) | |
5037 | +if (get_check_strict("画面を保存しますか?", 4)) | |
5038 | 5038 | #else |
5039 | 5039 | if (get_check("Dump the screen? ")) |
5040 | 5040 | #endif |
@@ -3322,8 +3322,8 @@ bool get_check(cptr prompt) | ||
3322 | 3322 | * |
3323 | 3323 | * mode & 0x01 : force user to answer "YES" or "N" |
3324 | 3324 | * mode & 0x02 : don't allow ESCAPE key |
3325 | + * mode & 0x04 : no message_add | |
3325 | 3326 | */ |
3326 | -#define CHECK_STRICT 0 | |
3327 | 3327 | bool get_check_strict(cptr prompt, int mode) |
3328 | 3328 | { |
3329 | 3329 | int i; |
@@ -3346,20 +3346,6 @@ bool get_check_strict(cptr prompt, int mode) | ||
3346 | 3346 | /* Hack -- Build a "useful" prompt */ |
3347 | 3347 | if (mode & 1) |
3348 | 3348 | { |
3349 | -#if CHECK_STRICT | |
3350 | -#ifdef JP | |
3351 | - /* (79-8)バイトの指定, promptが長かった場合, | |
3352 | - (79-9)文字の後終端文字が書き込まれる. | |
3353 | - 英語の方のstrncpyとは違うので注意. | |
3354 | - elseの方の分岐も同様. --henkma | |
3355 | - */ | |
3356 | - mb_strlcpy(buf, prompt, 80-8); | |
3357 | -#else | |
3358 | - strncpy(buf, prompt, 79-8); | |
3359 | - buf[79-8]='\0'; | |
3360 | -#endif | |
3361 | - strcat(buf, "[yes/no]"); | |
3362 | -#else | |
3363 | 3349 | #ifdef JP |
3364 | 3350 | /* (79-8)バイトの指定, promptが長かった場合, |
3365 | 3351 | (79-9)文字の後終端文字が書き込まれる. |
@@ -3373,7 +3359,6 @@ bool get_check_strict(cptr prompt, int mode) | ||
3373 | 3359 | #endif |
3374 | 3360 | strcat(buf, "[(O)k/(C)ancel]"); |
3375 | 3361 | |
3376 | -#endif | |
3377 | 3362 | } |
3378 | 3363 | else |
3379 | 3364 | { |
@@ -3389,62 +3374,18 @@ bool get_check_strict(cptr prompt, int mode) | ||
3389 | 3374 | /* Prompt for it */ |
3390 | 3375 | prt(buf, 0, 0); |
3391 | 3376 | |
3377 | + if (!(mode & 4)) | |
3378 | + { | |
3379 | + /* HACK : Add the line to message buffer */ | |
3380 | + message_add(buf); | |
3381 | + p_ptr->window |= (PW_MESSAGE); | |
3382 | + window_stuff(); | |
3383 | + } | |
3384 | + | |
3392 | 3385 | /* Get an acceptable answer */ |
3393 | 3386 | while (TRUE) |
3394 | 3387 | { |
3395 | 3388 | i = inkey(); |
3396 | -#if CHECK_STRICT /* ここから(ちょっと長いのでコメント) */ | |
3397 | - if (i == 'y' || i == 'Y') | |
3398 | - { | |
3399 | - if (!(mode & 1)) | |
3400 | - break; | |
3401 | - else | |
3402 | - { | |
3403 | -#ifdef JP | |
3404 | - prt("y (YESと入力してください)", 0, strlen(buf)); | |
3405 | -#else | |
3406 | - prt("y (Please answer YES.)", 0, strlen(buf)); | |
3407 | -#endif | |
3408 | - i = inkey(); | |
3409 | - if (i == 'e' || i == 'E') | |
3410 | - { | |
3411 | -#ifdef JP | |
3412 | - prt("e (YESと入力してください)", 0, strlen(buf)+1); | |
3413 | -#else | |
3414 | - prt("e (Please answer YES.)", 0, strlen(buf)+1); | |
3415 | -#endif | |
3416 | - i = inkey(); | |
3417 | - if (i == 's' || i == 'S') | |
3418 | - { | |
3419 | - i = 'y'; | |
3420 | - break; | |
3421 | - } | |
3422 | - prt("", 0, strlen(buf)+1); | |
3423 | - } | |
3424 | - prt("", 0, strlen(buf)); | |
3425 | - } | |
3426 | - } | |
3427 | - if (!(mode & 2) && (i == ESCAPE)) break; | |
3428 | - if (i == 'N' || i == 'n') | |
3429 | - { | |
3430 | - if (!(mode & 1)) | |
3431 | - break; | |
3432 | - else | |
3433 | - { | |
3434 | -#ifdef JP | |
3435 | - prt("n (NOと入力してください)", 0, strlen(buf)); | |
3436 | -#else | |
3437 | - prt("n (Please answer NO.)", 0, strlen(buf)); | |
3438 | -#endif | |
3439 | - i = inkey(); | |
3440 | - if (i == 'o' || i == 'O') | |
3441 | - { | |
3442 | - break; | |
3443 | - } | |
3444 | - prt("", 0, strlen(buf)); | |
3445 | - } | |
3446 | - } | |
3447 | -#else | |
3448 | 3389 | if ( mode & 1 ) |
3449 | 3390 | { |
3450 | 3391 | if ( i == 'o' || i == 'O' ) |
@@ -3469,7 +3410,6 @@ bool get_check_strict(cptr prompt, int mode) | ||
3469 | 3410 | { |
3470 | 3411 | break; |
3471 | 3412 | } |
3472 | -#endif /* ここまで(ちょっと長いのでコメント) */ | |
3473 | 3413 | bell(); |
3474 | 3414 | } |
3475 | 3415 |