スコアサーバーに登録する事ができます。登録をしたいときはこのオプショ
ンを有効にしてください。
-***** <allow_debug_options>
-デバッグ/詐欺オプションを許可する [allow_debug_options]
+***** <allow_debug_opts>
+デバッグ/詐欺オプションを許可する [allow_debug_opts]
デバッグコマンド(^A)、ウィザードモード(^W)、各種詐欺オプション(オ
プション画面の'C'の項目)は一度でも使用するとスコアの登録が出来なく
なる為、操作を間違って使用してしまわないように使用制限が付けられて
- います。allow_debug_optionsを有効にするとこの使用制限を解除します。
+ います。allow_debug_optsを有効にするとこの使用制限を解除します。
***** <Disturbance>
オプション追加/削除
- disturb_high 追加:レベルの高いモンスターが動いたら行動中止する
- - allow_debug_options 追加:デバッグ/詐欺オプションの使用を許可/禁止する
+ - allow_debug_opts 追加:デバッグ/詐欺オプションの使用を許可/禁止する
- 初期オプション munchkin_death は詐欺オプションに cheat_save に変更。
- 初期オプション terrain_streamsとstupid_monsters 廃止。
record of your character to the world score board on the Internet
when your character dies.
-***** <allow_debug_options>
-Allow use of debug/cheat options [allow_debug_options]
+***** <allow_debug_opts>
+Allow use of debug/cheat options [allow_debug_opts]
Since use of debug command(^A), wizard mode(^W), and Cheating
options ('C' in options panel) mark the player as a "Cheater"
who can't register their score, these debug/cheat options are
- forbidden to use on default. The allow_debug_options option removes
+ forbidden to use on default. The allow_debug_opts option removes
these restrictions, and allow the player to become a "Cheater".
- Tuned interface to list stack of items in the look command with easy_floor.
- Added new service of buildings in town which evaluate effects of your AC.
- Added disturb_high: disturb whenever high-level monster moves
-- Added allow_debug_options: allow use of debug/cheat options
+- Added allow_debug_opts: allow use of debug/cheat options
- Changed 'munchkin_death' into a cheat option 'cheat_save'.
- Removed terrain_streams and stupid_monsters.
- Fixed typos and grammar errors on English. (Thanks to John Mikula)
Y:last_words
X:auto_dump
Y:send_score
-X:allow_debug_options
+X:allow_debug_opts
##### Disturbance #####
#include "core/window-redrawer.h"
#include "flavor/object-flavor.h"
#include "game-option/cheat-types.h"
-#include "game-option/game-play-options.h"
#include "object-enchant/special-object-flags.h"
#include "object-enchant/tr-types.h"
#include "object-hook/hook-armor.h"
#include "view/display-messages.h"
#include "wizard/artifact-bias-table.h"
#include "wizard/wizard-messages.h"
+#include "world/world.h"
static bool weakening_artifact(object_type *o_ptr)
{
random_slay(o_ptr);
break;
default:
- if (allow_debug_options)
+ if (w_ptr->wizard)
msg_print("Switch error in become_random_artifact!");
(*powers)++;
player_ptr->panic_save = 0;
w_ptr->noscore = 0;
+ w_ptr->wizard = false;
player_ptr->wait_report_score = false;
player_ptr->pet_follow_distance = PET_FOLLOW_DIST;
player_ptr->pet_extra_flags = (PF_TELEPORT | PF_ATTACK_SPELL | PF_SUMMON_SPELL);
screen_save();
while (true) {
int n = OPT_NUM;
- if (!w_ptr->noscore && !allow_debug_options)
+ if (!w_ptr->noscore && !allow_debug_opts)
n--;
term_clear();
case 'B':
case 'b': {
do_cmd_options_aux(player_ptr, OPT_PAGE_BIRTH,
- allow_debug_options ? _("初期オプション((*)はスコアに影響)", "Birth Options ((*)) affect score")
- : _("初期オプション(参照のみ)", "Birth Options(browse only)"));
+ (!w_ptr->wizard || !allow_debug_opts) ? _("初期オプション(参照のみ)", "Birth Options(browse only)")
+ : _("初期オプション((*)はスコアに影響)", "Birth Options ((*)) affect score"));
break;
}
case 'C':
- case 'c':
- if (!w_ptr->noscore && !allow_debug_options) {
+ case 'c': {
+ if (!w_ptr->noscore && !allow_debug_opts) {
bell();
break;
}
do_cmd_options_cheat(player_ptr, _("詐欺師は決して勝利できない!", "Cheaters never win"));
break;
+ }
case 'a':
case 'A': {
do_cmd_options_autosave(player_ptr, _("自動セーブ", "Autosave"));
int i, k = 0, n = 0, l;
int opt[24];
char buf[80];
- bool browse_only = (page == OPT_PAGE_BIRTH) && w_ptr->character_generated && !allow_debug_options;
+ bool browse_only = (page == OPT_PAGE_BIRTH) && w_ptr->character_generated && (!w_ptr->wizard || !allow_debug_opts);
+
for (i = 0; i < 24; i++)
opt[i] = 0;
floor_type *floor_ptr = player_ptr->current_floor_ptr;
if (!floor_ptr->inside_arena) {
- if (cheat_live && !get_check(_("死にますか? ", "Die? "))) {
+ if ((w_ptr->wizard || cheat_live) && !get_check(_("死にますか? ", "Die? ")))
cheat_death(player_ptr);
- }
return;
}
bool plural = (j_ptr->number != 1);
#endif
describe_flavor(player_ptr, o_name, j_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
-
- // 破損.
if (!j_ptr->is_artifact() && (randint0(100) < chance)) {
#ifdef JP
msg_format("%sは消えた。", o_name);
#else
msg_format("The %s disappear%s.", o_name, (plural ? "" : "s"));
#endif
+ if (w_ptr->wizard)
+ msg_print(_("(破損)", "(breakage)"));
+
return 0;
}
}
}
- // ドロップグリッド確保不能.
if (!flag && !j_ptr->is_artifact()) {
#ifdef JP
msg_format("%sは消えた。", o_name);
#else
msg_format("The %s disappear%s.", o_name, (plural ? "" : "s"));
#endif
+ if (w_ptr->wizard)
+ msg_print(_("(床スペースがない)", "(no floor space)"));
+
return 0;
}
}
}
- // ドロップグリッド確保不能.
if (!candidates) {
#ifdef JP
msg_format("%sは消えた。", o_name);
#else
msg_format("The %s disappear%s.", o_name, (plural ? "" : "s"));
#endif
+
+ if (w_ptr->wizard)
+ msg_print(_("(床スペースがない)", "(no floor space)"));
+
if (preserve_mode) {
if (j_ptr->is_fixed_artifact() && !j_ptr->is_known()) {
a_info[j_ptr->name1].cur_num = 0;
if (!done)
o_idx = o_pop(floor_ptr);
- // アイテム多過.
if (!done && !o_idx) {
#ifdef JP
msg_format("%sは消えた。", o_name);
#else
msg_format("The %s disappear%s.", o_name, (plural ? "" : "s"));
#endif
+ if (w_ptr->wizard)
+ msg_print(_("(アイテムが多過ぎる)", "(too many objects)"));
+
if (j_ptr->is_fixed_artifact()) {
a_info[j_ptr->name1].cur_num = 0;
}
#include "util/bit-flags-calculator.h"
#include "view/display-messages.h"
#include "world/world-movement-processor.h"
+#include "world/world.h"
/*!
* @brief パターン終点到達時のテレポート処理を行う
ok_move = PATTERN_TILE_1;
break;
default:
- msg_format(_("おかしなパターン歩行、%d。", "Funny Pattern walking, %d."), pattern_type_cur);
- msg_print(_("不具合の可能性があります。開発者に連絡して下さい。", "There may be some problem. Please contact developers."));
+ if (w_ptr->wizard)
+ msg_format(_("おかしなパターン歩行、%d。", "Funny Pattern walking, %d."), pattern_type_cur);
return true;
}
bool auto_dump; /* Dump a character record automatically */
bool auto_debug_save; /* Dump a debug savedata every key input */
bool send_score; /* Send score dump to the world score server */
-bool allow_debug_options; /* Allow use of debug/cheat options */
+bool allow_debug_opts; /* Allow use of debug/cheat options */
extern bool auto_dump; /* Dump a character record automatically */
extern bool auto_debug_save; /* Dump a debug savedata every key input */
extern bool send_score; /* Send score dump to the world score server */
-extern bool allow_debug_options; /* Allow use of debug/cheat options */
+extern bool allow_debug_opts; /* Allow use of debug/cheat options */
{ &auto_debug_save, true, OPT_PAGE_GAMEPLAY, 4, 7, "auto_debug_save", _("デバッグ用セーブデータを自動生成する", "Create a debug save automatically") },
- { &allow_debug_options, false, OPT_PAGE_GAMEPLAY, 6, 11, "allow_debug_options", _("デバッグ/詐欺オプションを許可する", "Allow use of debug/cheat options") },
+ { &allow_debug_opts, false, OPT_PAGE_GAMEPLAY, 6, 11, "allow_debug_opts", _("デバッグ/詐欺オプションを許可する", "Allow use of debug/cheat options") },
/*** Disturbance ***/
#include "world/world.h"
/*!
+ * @brief ウィザードモードへの導入処理
+ * / Verify use of "wizard" mode
+ * @param player_ptr プレイヤーへの参照ポインタ
+ * @return 実際にウィザードモードへ移行したらTRUEを返す。
+ */
+bool enter_wizard_mode(PlayerType *player_ptr)
+{
+ if (!w_ptr->noscore) {
+ if (!allow_debug_opts) {
+ msg_print(_("ウィザードモードは許可されていません。 ", "Wizard mode is not permitted."));
+ return false;
+ }
+
+ msg_print(_("ウィザードモードはデバッグと実験のためのモードです。 ", "Wizard mode is for debugging and experimenting."));
+ msg_print(_("一度ウィザードモードに入るとスコアは記録されません。", "The game will not be scored if you enter wizard mode."));
+ msg_print(nullptr);
+ if (!get_check(_("本当にウィザードモードに入りたいのですか? ", "Are you sure you want to enter wizard mode? "))) {
+ return false;
+ }
+
+ exe_write_diary(
+ player_ptr, DIARY_DESCRIPTION, 0, _("ウィザードモードに突入してスコアを残せなくなった。", "gave up recording score to enter wizard mode."));
+ w_ptr->noscore |= 0x0002;
+ }
+
+ return true;
+}
+
+/*!
* @brief デバッグコマンドへの導入処理
* / Verify use of "debug" commands
* @param player_ptr プレイヤーへの参照ポインタ
static bool enter_debug_mode(PlayerType *player_ptr)
{
if (!w_ptr->noscore) {
- if (!allow_debug_options) {
+ if (!allow_debug_opts) {
msg_print(_("デバッグコマンドは許可されていません。 ", "Use of debug command is not permitted."));
return false;
}
/* Ignore */
break;
}
+ case KTRL('W'): {
+ if (w_ptr->wizard) {
+ w_ptr->wizard = false;
+ msg_print(_("ウィザードモード解除。", "Wizard mode off."));
+ } else if (enter_wizard_mode(player_ptr)) {
+ w_ptr->wizard = true;
+ msg_print(_("ウィザードモード突入。", "Wizard mode on."));
+ }
+
+ player_ptr->update |= (PU_MONSTERS);
+ player_ptr->redraw |= (PR_TITLE);
+ break;
+ }
case KTRL('A'): {
if (enter_debug_mode(player_ptr)) {
do_cmd_debug(player_ptr);
#pragma once
class PlayerType;
+bool enter_wizard_mode(PlayerType *player_ptr);
void process_command(PlayerType* player_ptr);
#include "io/interpret-pref-file.h"
#include "birth/character-builder.h"
#include "cmd-io/macro-util.h"
-#include "game-option/game-play-options.h"
#include "game-option/option-flags.h"
#include "game-option/option-types-table.h"
#include "grid/feature.h"
int os = option_info[i].o_set;
int ob = option_info[i].o_bit;
- if ((player_ptr->playing || w_ptr->character_xtra) && (OPT_PAGE_BIRTH == option_info[i].o_page) && !allow_debug_options) {
+ if ((player_ptr->playing || w_ptr->character_xtra) && (OPT_PAGE_BIRTH == option_info[i].o_page) && !w_ptr->wizard) {
msg_format(_("初期オプションは変更できません! '%s'", "Birth options can not be changed! '%s'"), buf);
msg_print(nullptr);
return 0;
#include "knowledge/knowledge-features.h"
#include "core/show-file.h"
#include "dungeon/dungeon.h"
-#include "game-option/game-play-options.h"
#include "game-option/special-options.h"
#include "io-dump/dump-util.h"
#include "io/input-key-acceptor.h"
if (per_page == 1) {
c_prt(attr, format("(%s)", lighting_level_str[lighting_level]), row_i, col + 1 + f_ptr->name.size());
c_prt(attr, format("%02x/%02x", f_ptr->x_attr[lighting_level], (unsigned char)f_ptr->x_char[lighting_level]), row_i,
- f_idx_col - ((allow_debug_options || visual_only) ? 6 : 2));
+ f_idx_col - ((w_ptr->wizard || visual_only) ? 6 : 2));
}
- if (allow_debug_options || visual_only) {
+ if (w_ptr->wizard || visual_only) {
c_prt(attr, format("%d", f_idx), row_i, f_idx_col);
}
prt(_("グループ", "Group"), 4, 0);
prt(_("名前", "Name"), 4, max + 3);
if (use_bigtile) {
- if (allow_debug_options || visual_only)
+ if (w_ptr->wizard || visual_only)
prt("Idx", 4, 62);
prt(_("文字 ( l/ d)", "Sym ( l/ d)"), 4, 66);
} else {
- if (allow_debug_options || visual_only)
+ if (w_ptr->wizard || visual_only)
prt("Idx", 4, 64);
prt(_("文字 (l/d)", "Sym (l/d)"), 4, 68);
}
#include "flavor/flavor-describer.h"
#include "flavor/object-flavor-types.h"
#include "flavor/object-flavor.h"
-#include "game-option/game-play-options.h"
#include "game-option/special-options.h"
#include "inventory/inventory-slot-types.h"
#include "io-dump/dump-util.h"
#include "util/int-char-converter.h"
#include "util/sort.h"
#include "view/display-messages.h"
+#include "world/world.h"
#include <numeric>
continue;
if (!(mode & 0x02)) {
- if (!allow_debug_options) {
+ if (!w_ptr->wizard) {
if (!k_ref.flavor)
continue;
if (!k_ref.aware)
c_prt(attr, o_name, row + i, col);
if (per_page == 1) {
- c_prt(attr, format("%02x/%02x", flavor_k_ptr->x_attr, flavor_k_ptr->x_char), row + i, (allow_debug_options || visual_only) ? 64 : 68);
+ c_prt(attr, format("%02x/%02x", flavor_k_ptr->x_attr, flavor_k_ptr->x_char), row + i, (w_ptr->wizard || visual_only) ? 64 : 68);
}
- if (allow_debug_options || visual_only) {
+ if (w_ptr->wizard || visual_only) {
c_prt(attr, format("%d", k_idx), row + i, 70);
}
if (direct_k_idx < 0)
prt("グループ", 4, 0);
prt("名前", 4, max + 3);
- if (allow_debug_options || visual_only)
+ if (w_ptr->wizard || visual_only)
prt("Idx", 4, 70);
prt("文字", 4, 74);
#else
if (direct_k_idx < 0)
prt("Group", 4, 0);
prt("Name", 4, max + 3);
- if (allow_debug_options || visual_only)
+ if (w_ptr->wizard || visual_only)
prt("Idx", 4, 70);
prt("Sym", 4, 75);
#endif
#include "core/show-file.h"
#include "core/stuff-handler.h"
#include "game-option/cheat-options.h"
-#include "game-option/game-play-options.h"
#include "game-option/special-options.h"
#include "io-dump/dump-util.h"
#include "io/input-key-acceptor.h"
attr = ((i + mon_top == mon_cur) ? TERM_L_BLUE : TERM_WHITE);
c_prt(attr, (r_ptr->name.c_str()), row + i, col);
if (per_page == 1)
- c_prt(attr, format("%02x/%02x", r_ptr->x_attr, r_ptr->x_char), row + i, (allow_debug_options || visual_only) ? 56 : 61);
+ c_prt(attr, format("%02x/%02x", r_ptr->x_attr, r_ptr->x_char), row + i, (w_ptr->wizard || visual_only) ? 56 : 61);
- if (allow_debug_options || visual_only)
+ if (w_ptr->wizard || visual_only)
c_prt(attr, format("%d", r_idx), row + i, 62);
term_erase(69, row + i, 255);
if (direct_r_idx < 0)
prt(_("グループ", "Group"), 4, 0);
prt(_("名前", "Name"), 4, max + 3);
- if (allow_debug_options || visual_only)
+ if (w_ptr->wizard || visual_only)
prt("Idx", 4, 62);
prt(_("文字", "Sym"), 4, 67);
if (!visual_only)
#include "dungeon/quest.h"
#include "flavor/flavor-describer.h"
#include "flavor/object-flavor-types.h"
-#include "game-option/game-play-options.h"
#include "info-reader/fixed-map-parser.h"
#include "io-dump/dump-util.h"
#include "locale/english.h"
#include "term/screen-processor.h"
#include "util/angband-files.h"
#include "util/sort.h"
+#include "world/world.h"
+
#include <numeric>
/*!
do_cmd_knowledge_quests_completed(player_ptr, fff, quest_num.data());
fputc('\n', fff);
do_cmd_knowledge_quests_failed(player_ptr, fff, quest_num.data());
- if (allow_debug_options) {
+ if (w_ptr->wizard) {
fputc('\n', fff);
do_cmd_knowledge_quests_wiz_random(fff);
}
auto c = rd_u16b();
+ if (c & 0x0002)
+ w_ptr->wizard = true;
+
cheat_peek = any_bits(c, 0x0100);
cheat_hear = any_bits(c, 0x0200);
cheat_room = any_bits(c, 0x0400);
}
old_ptr = pa_ptr->ma_ptr;
- if (cheat_xtra)
+ if (w_ptr->wizard && cheat_xtra)
msg_print(_("攻撃を再選択しました。", "Attack re-selected."));
}
#include "effect/effect-processor.h"
#include "floor/floor-object.h"
#include "game-option/birth-options.h"
-#include "game-option/game-play-options.h"
#include "game-option/play-record-options.h"
#include "io/write-diary.h"
#include "lore/lore-store.h"
a_idx = md_ptr->r_ptr->artifact_id[i];
chance = md_ptr->r_ptr->artifact_percent[i];
- if (allow_debug_options) {
- // continue process.
- // @todo ここより下の処理は関数分割で何とかしたい.
- // 処理を送るだけのif文は気持ち悪い.
- } else if (randint0(100) >= chance) {
+ if ((randint0(100) >= chance) && !w_ptr->wizard)
continue;
- }
if (drop_single_artifact(player_ptr, md_ptr, a_idx))
break;
#include "core/speed-table.h"
#include "core/stuff-handler.h"
#include "game-option/birth-options.h"
-#include "game-option/game-play-options.h"
#include "game-option/play-record-options.h"
#include "io/files-util.h"
#include "io/report.h"
m_ptr->dealt_damage = m_ptr->max_maxhp * 100;
}
- if (allow_debug_options) {
+ if (w_ptr->wizard) {
msg_format(_("合計%d/%dのダメージを与えた。", "You do %d (out of %d) damage."), m_ptr->dealt_damage, m_ptr->maxhp);
}
#include "floor/cave.h"
#include "floor/floor-object.h"
#include "floor/geometry.h"
-#include "game-option/game-play-options.h"
#include "inventory/inventory-slot-types.h"
#include "io/input-key-requester.h"
#include "monster-race/monster-race.h"
#include "term/screen-processor.h"
#include "util/bit-flags-calculator.h"
#include "view/display-messages.h"
+#include "world/world.h"
#ifdef JP
#else
project(player_ptr, 0, rad, player_ptr->y, player_ptr->x, power, AttributeType::HELL_FIRE, (PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL));
}
- if (allow_debug_options) {
+ if (w_ptr->wizard) {
msg_format(_("%d点のダメージを返した。", "You return %d damage."), power);
}
fire_ball(player_ptr, AttributeType::HELL_FIRE, dir, power, 1);
- if (allow_debug_options) {
+ if (w_ptr->wizard) {
msg_format(_("%d点のダメージを返した。", "You return %d damage."), power);
}
} else {
/*** Cheating options ***/
uint16_t c = 0;
+ if (w_ptr->wizard)
+ c |= 0x0002;
+
if (cheat_sight)
c |= 0x0040;
#include "floor/cave.h"
#include "floor/geometry.h"
#include "floor/line-of-sight.h"
-#include "game-option/game-play-options.h"
#include "grid/grid.h"
#include "inventory/inventory-slot-types.h"
#include "main/sound-definitions-table.h"
break;
}
- bool is_anywhere = allow_debug_options;
+ bool is_anywhere = w_ptr->wizard;
is_anywhere &= (mode & TELEPORT_PASSIVE) == 0;
is_anywhere
&= (player_ptr->current_floor_ptr->grid_array[y][x].m_idx > 0) || player_ptr->current_floor_ptr->grid_array[y][x].m_idx == player_ptr->riding;
#include "floor/geometry.h"
#include "floor/wild.h"
#include "game-option/birth-options.h"
-#include "game-option/game-play-options.h"
#include "game-option/play-record-options.h"
#include "game-option/special-options.h"
#include "io/input-key-acceptor.h"
else
go_up = false;
- if ((m_idx <= 0) && allow_debug_options) {
+ if ((m_idx <= 0) && w_ptr->wizard) {
if (get_check("Force to go up? "))
go_up = true;
else if (get_check("Force to go down? "))
#include "spell/spell-info.h"
-#include "game-option/game-play-options.h"
#include "io/input-key-requester.h"
#include "monster-race/monster-race.h"
#include "player-info/class-info.h"
#include "util/bit-flags-calculator.h"
#include "util/int-char-converter.h"
#include "view/display-messages.h"
+#include "world/world.h"
// 5%
static const int extra_min_magic_fail_rate = 2;
*/
void print_spells(PlayerType *player_ptr, SPELL_IDX target_spell, SPELL_IDX *spells, int num, TERM_LEN y, TERM_LEN x, int16_t use_realm)
{
- if (((use_realm <= REALM_NONE) || (use_realm > MAX_REALM)) && allow_debug_options)
+ if (((use_realm <= REALM_NONE) || (use_realm > MAX_REALM)) && w_ptr->wizard)
msg_print(_("警告! print_spell が領域なしに呼ばれた", "Warning! print_spells called with null realm"));
prt("", y, x);
#include "floor/floor-town.h"
#include "floor/geometry.h"
#include "floor/object-scanner.h"
-#include "game-option/game-play-options.h"
#include "game-option/input-options.h"
#include "grid/feature.h"
#include "grid/grid.h"
#include "view/display-messages.h"
#include "view/display-monster-status.h"
#include "window/display-sub-windows.h"
+#include "world/world.h"
static const int16_t CONTINUOUS_DESCRIPTION = 256;
}
if (!ap_r_ptr->r_tkills || m_ptr->mflag2.has(MonsterConstantFlagType::KAGE)) {
- if (!allow_debug_options) {
+ if (!w_ptr->wizard) {
sprintf(buf, "??");
return;
}
static void describe_grid_monster_all(eg_type *eg_ptr)
{
- if (!allow_debug_options) {
+ if (!w_ptr->wizard) {
#ifdef JP
sprintf(eg_ptr->out_val, "%s%s%s%s[%s]", eg_ptr->s1, eg_ptr->name, eg_ptr->s2, eg_ptr->s3, eg_ptr->info);
#else
}
#endif
- if (cheat_know) {
+ if (w_ptr->wizard || cheat_know) {
term_addstr(-1, TERM_WHITE, "[");
term_addstr(-1, TERM_L_BLUE, format("%d", r_idx));
term_addstr(-1, TERM_WHITE, "] ");
{
GAME_TEXT str[14];
concptr p = "";
- if (w_ptr->total_winner) {
+ if (w_ptr->wizard) {
+ p = _("[ウィザード]", "[=-WIZARD-=]");
+ } else if (w_ptr->total_winner) {
if (player_ptr->is_true_winner()) {
p = _("*真・勝利者*", "*TRUEWINNER*");
} else {
monster_type *m_ptr;
m_ptr = &player_ptr->current_floor_ptr->m_list[health_who];
- if (player_ptr->phase_out) {
+ if (w_ptr->wizard && player_ptr->phase_out) {
row = ROW_INFO - 1;
col = COL_INFO + 2;
#include "window/main-window-stat-poster.h"
-#include "game-option/game-play-options.h"
#include "io/input-key-requester.h"
#include "mind/stances-table.h"
#include "monster/monster-status.h"
#include "timed-effect/timed-effects.h"
#include "view/status-bars-table.h"
#include "window/main-window-row-column.h"
+#include "world/world.h"
/*!
* @brief 32ビット変数配列の指定位置のビットフラグを1にする。
*/
void print_hunger(PlayerType *player_ptr)
{
- if (allow_debug_options && player_ptr->current_floor_ptr->inside_arena)
+ if (w_ptr->wizard && player_ptr->current_floor_ptr->inside_arena)
return;
if (player_ptr->food < PY_FOOD_FAINT) {
}
}
- if ((a_ids.size() > 1) || (e_ids.size() > 1)) {
+ if (w_ptr->wizard && (a_ids.size() > 1 || e_ids.size() > 1)) {
msg_print(_("候補が多すぎる!", "Too many matches!"));
return WishResultType::FAIL;
}
ARTIFACT_IDX a_idx = a_ids.back();
if (must || (ok_art && !a_info[a_idx].cur_num)) {
create_named_art(player_ptr, a_idx, player_ptr->y, player_ptr->x);
- a_info[a_idx].cur_num = 1;
- } else {
- wishing_puff_of_smoke();
+ if (!w_ptr->wizard)
+ a_info[a_idx].cur_num = 1;
}
+ else
+ wishing_puff_of_smoke();
return WishResultType::ARTIFACT;
}
a_ptr = &a_info[a_idx];
if (must || (ok_art && !a_ptr->cur_num)) {
create_named_art(player_ptr, a_idx, player_ptr->y, player_ptr->x);
- a_info[a_idx].cur_num = 1;
- } else {
- wishing_puff_of_smoke();
+ if (!w_ptr->wizard)
+ a_info[a_idx].cur_num = 1;
}
+ else
+ wishing_puff_of_smoke();
return WishResultType::ARTIFACT;
}
bool creating_savefile{}; /* New savefile is currently created */
+ bool wizard{}; /* This world under wizard mode */
+
OBJECT_IDX max_o_idx{}; /*!< Maximum number of objects in the level */
MONSTER_IDX max_m_idx{}; /*!< Maximum number of monsters in the level */
};