From 330437bc57408ae318ba37ff0715a01f12c7d016 Mon Sep 17 00:00:00 2001 From: nothere Date: Fri, 28 May 2004 18:26:12 +0000 Subject: [PATCH] =?utf8?q?=E3=83=A2=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=BC?= =?utf8?q?=E3=81=8C=E5=9B=BA=E6=9C=89=E3=81=A7=E8=90=BD=E3=81=A8=E3=81=99?= =?utf8?q?=E5=9B=BA=E5=AE=9A=E3=82=A2=E3=83=BC=E3=83=86=E3=82=A3=E3=83=95?= =?utf8?q?=E3=82=A1=E3=82=AF=E3=83=88=E3=82=84=E3=83=80=E3=83=B3=E3=82=B8?= =?utf8?q?=E3=83=A7=E3=83=B3=E5=88=B6=E8=A6=87=E6=99=82=E3=81=AE=E5=A0=B1?= =?utf8?q?=E9=85=AC=20=E3=81=AE=E5=9B=BA=E5=AE=9A=E3=82=A2=E3=83=BC?= =?utf8?q?=E3=83=86=E3=82=A3=E3=83=95=E3=82=A1=E3=82=AF=E3=83=88=E3=81=AE?= =?utf8?q?=E7=94=9F=E6=88=90=E6=99=82=E3=81=ABa=5Fptr->floor=5Fid=E3=81=8C?= =?utf8?q?=E8=A8=98=E9=8C=B2=E3=81=95=E3=82=8C=E3=81=A6=E3=81=84=E3=81=AA?= =?utf8?q?=E3=81=8B=E3=81=A3=E3=81=9F=20=E3=83=90=E3=82=B0=E3=82=92?= =?utf8?q?=E4=BF=AE=E6=AD=A3.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/xtra2.c | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/xtra2.c b/src/xtra2.c index 415b8d0ce..889129335 100644 --- a/src/xtra2.c +++ b/src/xtra2.c @@ -998,6 +998,7 @@ msg_print(" if (p_ptr->pseikaku == SEIKAKU_NAMAKE) { int a_idx = 0; + artifact_type *a_ptr = NULL; if (!drop_chosen_item) break; @@ -1015,15 +1016,17 @@ msg_print(" a_idx = ART_NAMAKE_ARMOR; break; } - } - while (a_info[a_idx].cur_num); - if (a_info[a_idx].cur_num == 0) - { - /* Create the artifact */ - create_named_art(a_idx, y, x); - a_info[a_idx].cur_num = 1; + a_ptr = &a_info[a_idx]; } + while (a_ptr->cur_num); + + /* Create the artifact */ + create_named_art(a_idx, y, x); + a_ptr->cur_num = 1; + + /* Hack -- Memorize location of artifact in saved floors */ + if (character_dungeon) a_ptr->floor_id = p_ptr->floor_id; } break; @@ -1386,11 +1389,16 @@ msg_print(" if ((a_idx > 0) && ((randint0(100) < chance) || p_ptr->wizard)) { - if (a_info[a_idx].cur_num == 0) + artifact_type *a_ptr = &a_info[a_idx]; + + if (!a_ptr->cur_num) { /* Create the artifact */ create_named_art(a_idx, y, x); - a_info[a_idx].cur_num = 1; + a_ptr->cur_num = 1; + + /* Hack -- Memorize location of artifact in saved floors */ + if (character_dungeon) a_ptr->floor_id = p_ptr->floor_id; } } @@ -1402,11 +1410,16 @@ msg_print(" if (d_info[dungeon_type].final_artifact) { int a_idx = d_info[dungeon_type].final_artifact; - if (!a_info[a_idx].cur_num) + artifact_type *a_ptr = &a_info[a_idx]; + + if (!a_ptr->cur_num) { /* Create the artifact */ create_named_art(a_idx, y, x); - a_info[a_idx].cur_num = 1; + a_ptr->cur_num = 1; + + /* Hack -- Memorize location of artifact in saved floors */ + if (character_dungeon) a_ptr->floor_id = p_ptr->floor_id; /* Prevent rewarding both artifact and "default" object */ if (!d_info[dungeon_type].final_object) k_idx = 0; -- 2.11.0